一、理论基础
1、探路者算法
探路者(Pathfinder algorithm, PFA)算法是由土耳其学者Yapici等人于2019年提出的一种新的元启发式优化算法。该算法的灵感来源于群体动物的集体活动行为,模仿种群的领导者带领种群寻找最佳食物区域或觅食。算法将整个种群个体划分为探路者(领导者)和追随者,假定当前最优个体为探路者,其他个体为追随者,通过不断动态调整种群角色,协同探寻全局最优解。
在探路者算法中,如果一个成员在任何时候都位于最有希望的区域,那么它将被选为领导者,称之为探路者。在算法的初期,随机化群体成员的位置,计算每个个体的适应度,选择适应度最好的个体作为初始探路者,其他个体作为追随者。在以后的每次迭代中,总是选取当前迭代中的最优位置作为探路者的位置,其他追随者都朝着它移动。
在种群的更新过程中,探路者是该种群运动方向的探索者,先于跟随者移动,其更新方式如式(1)所示:
x
p
K
+
1
=
x
p
K
+
2
r
1
⋅
(
x
p
K
−
x
p
K
−
1
)
+
A
(1)
\boldsymbol x_p^{K+1}=\boldsymbol x_p^K+2\boldsymbol r_1\cdot\left(\boldsymbol x_p^{K}-\boldsymbol x_p^{K-1}\right)+\boldsymbol A\tag{1}
xpK+1=xpK+2r1⋅(xpK−xpK−1)+A(1)
A
=
u
1
⋅
e
x
p
{
−
2
K
K
max
}
(2)
\boldsymbol A=\boldsymbol u_1\cdot exp\left\{\frac{-2K}{K_{\max}}\right\}\tag{2}
A=u1⋅exp{Kmax−2K}(2)其中,
K
K
K表示当前迭代次数,
K
max
K_{\max}
Kmax表示最大迭代次数,
x
p
K
\boldsymbol x_p^K
xpK表示当前探路者的位置,
x
p
K
−
1
\boldsymbol x_p^{K-1}
xpK−1表示上一代探路者的位置,
x
p
K
+
1
\boldsymbol x_p^{K+1}
xpK+1表示探路者更新后的位置;
r
1
\boldsymbol r_1
r1是在
[
0
,
1
]
[0,1]
[0,1]范围内均匀生成的随机向量;
A
\boldsymbol A
A是一组扰动向量,为探路者位置更新时提供随机移动;
u
1
\boldsymbol u_1
u1是一组
[
−
1
,
1
]
[-1,1]
[−1,1]范围内的随机向量。
探路者位置更新完成后,其他追随者根据探路者进行位置更新,更新方式如式(3)所示:
x
i
K
+
1
=
x
i
K
+
R
1
⋅
(
x
j
K
−
x
i
K
)
+
R
2
⋅
(
x
p
K
−
x
i
K
)
+
ε
,
i
≥
2
(3)
\boldsymbol x_i^{K+1}=\boldsymbol x_i^K+\boldsymbol R_1\cdot\left(\boldsymbol x_j^{K}-\boldsymbol x_i^{K}\right)+\boldsymbol R_2\cdot\left(\boldsymbol x_p^{K}-\boldsymbol x_i^{K}\right)+\boldsymbol \varepsilon,\,\,i\geq2\tag{3}
xiK+1=xiK+R1⋅(xjK−xiK)+R2⋅(xpK−xiK)+ε,i≥2(3)
R
1
=
α
⋅
r
2
,
R
2
=
β
⋅
r
3
(4)
\boldsymbol R_1=\alpha\cdot \boldsymbol r_2,\,\,\boldsymbol R_2=\beta\cdot \boldsymbol r_3\tag{4}
R1=α⋅r2,R2=β⋅r3(4)
ε
=
(
1
−
K
K
max
)
⋅
u
2
⋅
D
i
j
(5)
\boldsymbol \varepsilon=\left(1-\frac{K}{K_{\max}}\right)\cdot\boldsymbol u_2\cdot D_{ij}\tag{5}
ε=(1−KmaxK)⋅u2⋅Dij(5)
D
i
j
=
∣
∣
x
i
−
x
j
∣
∣
(6)
D_{ij}=||x_i-x_j||\tag{6}
Dij=∣∣xi−xj∣∣(6)其中,
K
K
K表示当前迭代次数,
x
i
K
\boldsymbol x_i^{K}
xiK表示第
i
i
i个追随者的当前位置,
x
j
K
\boldsymbol x_j^{K}
xjK表示第
j
j
j个追随者的当前的位置,
x
p
\boldsymbol x_p^{}
xp表示当前探路者的位置,
x
i
K
+
1
\boldsymbol x_i^{K+1}
xiK+1表示第
i
i
i个追随者更新后的位置;
R
1
\boldsymbol R_1
R1和
R
2
\boldsymbol R_2
R2是2组随机向量,分别由
α
r
2
\alpha\boldsymbol r_2
αr2和
β
r
3
\beta\boldsymbol r_3
βr3确定,
r
2
\boldsymbol r_2
r2和
r
3
\boldsymbol r_3
r3是在
[
0
,
1
]
[0,1]
[0,1]范围内均匀生成的随机向量,
α
\alpha
α表示跟随者之间的相互作用系数,
β
\beta
β表示探路者对跟随者的吸引系数,在每次迭代过程中,
α
\alpha
α和
β
\beta
β均在区间
[
1
,
2
]
[1,2]
[1,2]内随机产生;
ε
\boldsymbol\varepsilon
ε是一组扰动向量,表示为所有追随者提供随机移动,
u
2
\boldsymbol u_2
u2是一组
[
−
1
,
1
]
[-1,1]
[−1,1]范围内的随机向量;
D
i
j
D_{ij}
Dij为第
i
i
i个追随者和第
j
j
j个追随者之间的距离。
2、PFA算法伪代码
PFA算法伪代码如下图所示。
二、仿真实验与分析
以文献[1]中表1和表2列出的17个测试函数中的F1、F2、F3、F10、F11、F12为例,实验设置种群规模为30,最大迭代次数为1000,PFA算法独立运行30次,结果显示如下:
函数:F1
PFA:最差值: 155.2848, 最优值: 19.1727, 平均值: 45.7847, 标准差: 32.0622
函数:F2
PFA:最差值: 0.2401, 最优值: 0.0019768, 平均值: 0.043816, 标准差: 0.056484
函数:F3
PFA:最差值: 0.08723, 最优值: 0.0014821, 平均值: 0.017879, 标准差: 0.018094
函数:F10
PFA:最差值: -3.8628, 最优值: -3.8628, 平均值: -3.8628, 标准差: 2.5973e-15
函数:F11
PFA:最差值: -10.1532, 最优值: -10.1532, 平均值: -10.1532, 标准差: 6.3877e-15
函数:F12
PFA:最差值: -2.7659, 最优值: -10.4029, 平均值: -10.1484, 标准差: 1.3943
实验结果表明:PFA算法的收敛速度和求解精度较好。
三、参考文献
[1] Hamza Yapici, Nurettin Cetinkaya. A new meta-heuristic optimizer: Pathfinder algorithm[J]. Applied Soft Computing Journal, 2019, 78: 545-568.
[2] 王淑平, 李敏, 杜敏, 等. 基于改进探路者算法的多阈值图像分割[J]. 计算机与现代化, 2022(1): 61-69.