智能优化算法:探路者优化算法-附代码

智能优化算法:探路者优化算法


摘要:探路者算法(Pathfinder Algorithm, PFA)是 2019年由 Yapici 提出的一种新的元启发式算法 。该算法受群体动物的狩猎行为启发,将种群中的个体分为探路者(领导者)和跟随者;算法的寻优过程模拟了种群寻找食物的探索过程,通过探路者、跟随者二种不同种群角色间的交流来实现优化,同时在进化过程中也加强了种群三代间优良信息的保留;PFA 具有容易理解、实现简单、优化性能较好等优点。

1.算法原理

在探路者算法中,种群中的个体分为探路者(pathfinder)和跟随者(follower members),它们共同组成种群团队。探路者个体是团队的领导者,指引算法的全局搜索方向,而种群中的跟随者沿着探路者的方向进行移动。种群中个体的移动使其位置向量发生变化,其对应的工件排列也随之改变,即种群的更新。

在种群的更新过程中,探路者是该种群运动方向的探索者,先于跟随者移动,其更新方式如式(1),(2):
X p K + 1 = X p K + 2 r 1 ( X p K − X p K − 1 ) + A (1) X_p^{K+1}=X_p^{K}+2r_1(X_p^K-X_p^{K-1})+A \tag{1} XpK+1=XpK+2r1(XpKXpK1)+A(1)

A = u 1 e − 2 K / K m a x (2) A = u_1e^{-2K/K_{max}}\tag{2} A=u1e2K/Kmax(2)

式中, K K K 表示算法当前的迭代代数, K m a x K_{max} Kmax为算法的
最大迭代数; X p K X_p^K XpK表示当代探路者的位置, X p K − 1 X_p^{K-1} XpK1表示上一代探路者的位置,则 X p K + 1 X_p^{K+1} XpK+1表示探路者更新后的位置; r 1 r_1 r1为探路者移动的步长因子,在范围[0,1]内服从均匀分布; A A A表示探路者移动的多向性和随机性:多向性由 u 1 u_1 u1的取值决定, u 1 u_1 u1为[-1,1]范围内的随机数;步长大小的随机性由 − 2 K / K m a x -2K/K_{max} 2K/Kmax决定,即与算法迭代的次数有关。

此外,由于探索过程存在多向性和随机性,探路者探索到的位置可能不如原位置。因此,在探路者完成更新后加入保优操作,即更新后位置不如原位置,则探路者回到原位置。

探路者更新完成后,种群中跟随者根据探路者位置进行更新:
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) X_i^{K+1} = X_i^K+R_1(X_j^K-X_i^K)+R_2(X_p^K-X_i^K+\varepsilon),i\geq2 \tag{3} XiK+1=XiK+R1(XjKXiK)+R2(XpKXiK+ε),i2(3)

R 1 = α r 2 (4) R_1=\alpha r_2\tag{4} R1=αr2(4)

R 2 = β r 3 (5) R_2=\beta r_3\tag{5} R2=βr3(5)

ε = ( 1 − K / K m a x ) u 2 D i j (6) \varepsilon=(1-K/K_{max})u_2D_{ij}\tag{6} ε=(1K/Kmax)u2Dij(6)

D i j = ∣ ∣ X i − X j ∣ ∣ (7) D_{ij}=||X_i-X_j||\tag{7} Dij=XiXj(7)

式中, K K K 表示算法当前的迭代代数, X i K X_i^K XiK表示跟随者的当前位置,则 X i K + 1 X_i^{K+1} XiK+1表示其更新后的位置;跟随者的移动不仅与探路者 X p K X_p^K XpK有关,而且受到其他跟随者 X j K X_j^K XjK的影响, α \alpha α表示跟随者之间的相互作用系数, β \beta β表示探路者对跟随者的吸引系数,均在 [1,2]服从均匀分布; r 2 , r 3 r_2,r_3 r2,r3分别为与其他跟随者和探路者移动的步长因子均为[0,1]范围内的随机数;同理,与探路者一样, ε \varepsilon ε表示跟随者移动的随机性, u 2 , D i j u_2,D_{ij} u2,Dij决定随机运动的方向和步长, D i j D_{ij} Dij为当前跟
随者与其他跟随者之间的距离。由上述可知,无论是探路者还是跟随者,其随机步长的大小都与算法迭代的次数有关,且代数越大步长越小。这是由于算法搜索初期需要在庞大的解空间中探索优质解区域,而在后期对优质解区域进行更细致的搜索,该操作有效地平衡了 PFA 全局搜索与局部搜索的关系。

算法流程

Step1.初始化算法参数,如种群数量等等

Step2.初始化种群,计算适应度,确定探索者和跟随者。

Step3.根据式(1)更新探索者位置

Step4.根据式(3)跟新跟随者位置

Step5.计算适应度值,并更新全局最优值。

Step6.判断是否达到结束条件,如果达到则输出最优值,否则重复步骤Step1-6。

2.实验结果

在这里插入图片描述

3.参考文献

[1]胡蓉,董钰明,钱斌.基于探路者算法的绿色有限缓冲区流水线调度[J/OL].系统仿真学报:1-12[2021-01-06].https://doi.org/10.16182/j.issn1004731x.joss.20-0077.

[2] Yapici H, Cetinkaya N. A New Meta-heuristic Optimizer:Pathfinder Algorithm[J]. Applied Soft Computing(S1568-4946), 2019, 78(1):545-568.

4.Matlab代码

5.Python代码

个人资料介绍

  • 1
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智能算法研学社(Jack旭)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值