一、背景知识
探路者算法(Pathfinder Algorithm, PFA)是 2019年由 Yapici 提出的一种新的元启发式算法 。该算法受群体动物的狩猎行为启发,将种群中的个体分为探路者(领导者)和跟随者;算法的寻优过程模拟了种群寻找食物的探索过程,通过探路者、跟随者二种不同种群角色间的交流来实现优化,同时在进化过程中也加强了种群三代间优良信息的保留;PFA 具有容易理解、实现简单、优化性能较好等优点。
二、算法原理
在探路者算法中,种群中的个体分为探路者(pathfinder)和跟随者(follower members),它们共同组成种群团队。探路者个体是团队的领导者,指引算法的全局搜索方向,而种群中的跟随者沿着探路者的方向进行移动。种群中个体的移动使其位置向量发生变化,其对应的工件排列也随之改变,即种群的更新。
(1)探路者位置更新
在种群的更新过程中,探路者是该种群运动方向的探索者,先于跟随者移动,其更新方式如式(1)所示:
(1)
(2)
其中,K表示当前迭代次数,Kmax表示最大迭代次数,表示当前探路者的位置, 表示上一代探路者的位置, 表示探路者更新后的位置;A是一组扰动向量,表示探路者移动的多向性和随机性,为探路者位置更新时提供随机移动;多向性由u1的取值决定,u1是一组[−1,1]范围内的随机向量,步长大小与算法迭代的次数有关,其随机性由−2K/Kmax决定。
(2)跟随者位置更新
探路者位置更新完成后,其他追随者根据探路者进行位置更新,更新方式如式(3)所示:
(3)
(4)
(5)
(6)
其中,K表示当前迭代次数,表示第i个追随者的当前位置,表示第j个追随者的当前的位置,表示当前探路者的位置,表示第i个追随者更新后的位置,跟随者的移动不仅与探路者有关,而且受到其他跟随者的影响;R1和R2是2组随机向量,分别由α 、r2和β 、r3确定,r2和r3是在[0,1]范围内均匀生成的随机向量,α 表示跟随者之间的相互作用系数,β 表示探路者对跟随者的吸引系数,在每次迭代过程中,α和β 均在区间[1,2]内服从均匀分布,并随机产生;ε是一组扰动向量,表示为所有追随者提供随机移动,u2是一组[−1,1]范围内的随机向量;Dij为第i个追随者和第j个追随者之间的距离。
三、算法流程
Step1.初始化算法参数,种群数量、最大迭代次数、设置位置边界范围与速度边界范围。
Step2.初始化种群,计算适应度,确定探索者和跟随者。
Step3.根据式(1)更新探索者位置
Step4.根据式(3)跟新跟随者位置
Step5.计算适应度值,并更新全局最优值。
Step6.判断是否达到结束条件,如果达到则输出最优值,否则重复步骤Step1-6