这是本节的多页打印视图。 点击此处打印.

返回本页常规视图.

典型的单目标问题

1 - Parabola(Sphere) Formula

Code

我们先简单看一段代码, 这是 SPSO 中的一个测试函数

 #include "structs.h"

double ParabolaShpere(struct position xs, double p)
{
    int D = xs.size; // 粒子群的 d-dimension
    double f = 0, xd;
    p = 0; // Shift
    for (int d = 0; d < D; d++)
    {
        xd = xs.x[d] - p;
        f = f + xd * xd;
    }
    return f;
}
 

数学解释

如果我们有一个 点 \(x = (x_1, x_2, \cdots, x_D)\), 则这段代码的输出为: \(f = \sum_{d=0}^{D-1}(x_d - p)^2\), 这就是点 \(x\) 到 \(P = (p, p, \cdots, p)_D\) 的欧几里得范数的平方;

应用场景

  • 抛物面: 在计算抛物面上的某个点到原点的距离平方时使用
  • 球面: 在计算球面上某个点到球心的距离平方时使用