基于探路者算法的函数寻优算法

一、理论基础

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(xpKxpK1)+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=u1exp{ Kmax2K}(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} xpK1表示上一代探路者的位置, 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(xjKxiK)+R2(xpKxiK)+ε,i2(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} ε=(1KmaxK)u2Dij(5) D i j = ∣ ∣ x i − x j ∣ ∣ (6) D_{ij}=||x_i-x_j||\tag{6} Dij=xixj(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.

猜你喜欢

转载自blog.csdn.net/weixin_43821559/article/details/123744418