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

文章目录

  • 智能优化算法:探路者优化算法
    • 1.算法原理
    • 2.实验结果
    • 3.参考文献
    • 4.Matlab代码
    • 5.Python代码

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

1.算法原理

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

在种群的更新过程中,探路者是该种群运动方向的探索者,先于跟随者移动,其更新方式如式(1),(2):
XpK+1=XpK+2r1(XpK−XpK−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​(XpK​−XpK−1​)+A(1)

A=u1e−2K/Kmax(2)A = u_1e^{-2K/K_{max}}\tag{2} A=u1​e−2K/Kmax​(2)

式中, KKK 表示算法当前的迭代代数,KmaxK_{max}Kmax​为算法的
最大迭代数;XpKX_p^KXpK​表示当代探路者的位置,XpK−1X_p^{K-1}XpK−1​表示上一代探路者的位置,则XpK+1X_p^{K+1}XpK+1​表示探路者更新后的位置;r1r_1r1​为探路者移动的步长因子,在范围[0,1]内服从均匀分布; AAA表示探路者移动的多向性和随机性:多向性由u1u_1u1​的取值决定,u1u_1u1​为[-1,1]范围内的随机数;步长大小的随机性由−2K/Kmax-2K/K_{max}−2K/Kmax​决定,即与算法迭代的次数有关。

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

探路者更新完成后,种群中跟随者根据探路者位置进行更新:
XiK+1=XiK+R1(XjK−XiK)+R2(XpK−XiK+ε),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​(XjK​−XiK​)+R2​(XpK​−XiK​+ε),i≥2(3)

R1=αr2(4)R_1=\alpha r_2\tag{4} R1​=αr2​(4)

R2=βr3(5)R_2=\beta r_3\tag{5} R2​=βr3​(5)

ε=(1−K/Kmax)u2Dij(6)\varepsilon=(1-K/K_{max})u_2D_{ij}\tag{6} ε=(1−K/Kmax​)u2​Dij​(6)

Dij=∣∣Xi−Xj∣∣(7)D_{ij}=||X_i-X_j||\tag{7} Dij​=∣∣Xi​−Xj​∣∣(7)

式中, KKK 表示算法当前的迭代代数,XiKX_i^KXiK​表示跟随者的当前位置,则XiK+1X_i^{K+1}XiK+1​表示其更新后的位置;跟随者的移动不仅与探路者XpKX_p^KXpK​有关,而且受到其他跟随者XjKX_j^KXjK​的影响,α\alphaα表示跟随者之间的相互作用系数,β\betaβ表示探路者对跟随者的吸引系数,均在 [1,2]服从均匀分布;r2,r3r_2,r_3r2​,r3​分别为与其他跟随者和探路者移动的步长因子均为[0,1]范围内的随机数;同理,与探路者一样,ε\varepsilonε表示跟随者移动的随机性,u2,Diju_2,D_{ij}u2​,Dij​决定随机运动的方向和步长,DijD_{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. 智能优化算法:闪电搜索算法-附代码

    智能优化算法:闪电搜索算法-附代码 文章目录 智能优化算法:闪电搜索算法-附代码 1.算法原理 1.1 过渡放电体 1.2 空间放电体 1.3 引导放电体 2.算法结果 3.参考文献 4.Matlab ...

  2. 智能优化算法:布谷鸟搜索算法-附代码

    智能优化算法:布谷鸟搜索算法-附代码 文章目录 智能优化算法:布谷鸟搜索算法-附代码 1.算法原理 2.算法结果 3.参考文献 4.Matlab代码 摘要:谷鸟搜索算法(cuckoo search , ...

  3. 基于蝙蝠算法优化BP神经网络的数据分类算法及其MATLAB实现-附代码

    基于蝙蝠算法优化BP神经网络的数据分类算法及其MATLAB实现-附代码 文章目录 基于蝙蝠算法优化BP神经网络的数据分类算法及其MATLAB实现-附代码 1 蝙蝠算法与BP神经网络分类模型 1.1 蝙 ...

  4. 基于灰狼算法优化支持向量机的数据分类算法及其MATLAB实现-附代码

    基于灰狼算法优化支持向量机的数据分类算法及其MATLAB实现-附代码 文章目录 基于灰狼算法优化支持向量机的数据分类算法及其MATLAB实现-附代码 1 GWO-SVM 模型 1.1 灰狼优化器GWO ...

  5. 相位 unwrap 与 wrap 算法详解(附代码)

    相位 unwrap 与 wrap 算法详解(附代码) 最近接手了一个项目,光通信方面的,我负责编写初测结果的数据处理算法,其中有一个算法叫做 unwrap 与 wrap,之前没有听说过.通过询问同事与 ...

  6. 数据挖掘领域十大经典算法之—SVM算法(超详细附代码)

    相关文章: 数据挖掘领域十大经典算法之-C4.5算法(超详细附代码) 数据挖掘领域十大经典算法之-K-Means算法(超详细附代码) 数据挖掘领域十大经典算法之-Apriori算法 数据挖掘领域十大经 ...

  7. 二分查找算法详解(附代码)

    二分查找算法详解(附代码) 注: 现有一个升序 不重复的数组 查询target是否在此数组中并返回序号 使用条件 使用二分算法的两个条件: 有序 不重复 混淆处 二分算法两种方式容易弄混淆的地方:就是 ...

  8. 数据挖掘领域十大经典算法之—AdaBoost算法(超详细附代码)

    相关文章: 数据挖掘领域十大经典算法之-C4.5算法(超详细附代码) 数据挖掘领域十大经典算法之-K-Means算法(超详细附代码) 数据挖掘领域十大经典算法之-SVM算法(超详细附代码) 数据挖掘领 ...

  9. 麻雀优化算法_多种智能优化算法应用案例分享-附代码

    1.智能优化算法应用:基于灰狼算法的Otsu图像多阈值分割 智能优化算法应用:基于灰狼算法的Otsu图像多阈值分割-附代码_Jack旭的博客-CSDN博客​blog.csdn.net 2.智能优化算法 ...

  10. 智能优化算法:麻雀搜索算法-附代码

    2020智能优化算法:麻雀搜索算法 文章目录 2020智能优化算法:麻雀搜索算法 1.算法原理 2.算法结果 3.参考文献 4.Matlab代码 5.Python代码 摘要:麻雀搜索算法(Sparro ...

最新文章

  1. split join append
  2. 不用鼠标,只用键盘,你还能操作自如吗?
  3. python基础代码-Python基础(代码)
  4. maven netty 配置_SpringBoot整合Netty(附源码)
  5. 如何使用VAIO Care恢复和还原VAIO
  6. 全国计算机等级考试题库二级C操作题100套(第12套)
  7. 应用环境下的TIME_WAIT和CLOSE_WAIT
  8. 再有人问你volatile是什么,把这篇文章也发给他(深入分析)
  9. 【FastJson】FastJson一个Bug java.util.LinkedHashMap cannot be cast to com.alibaba.fastjson.Jsonobject
  10. 4款最具影响力的自助式BI工具
  11. python复数运算程序_python复数-python,复数
  12. ubuntu 移动硬盘复制小文件可以,复制大文件总是复制不成功
  13. 38、Power Query-背后的贤内助M语言
  14. STM32F407 STM32F407 LWIP速度优化测试速度可以达到1万kb每秒 相当于80兆的网络速度
  15. Linux学习——vi/vim编辑C程序并运行
  16. 在OCI中为计算实例添加第二块网卡
  17. python做网站怎么样_怎么用python做网站?
  18. 爬虫摸索中~~(PS:小小爬虫,何惧哉?且到明日,再看今朝。)
  19. python 删除指定后缀文件_python3 遍历删除特定后缀名文件的方法_天津SEO
  20. fama matlab源码_基于优化算法改造的Fama-French三因子模型

热门文章

  1. java操作hbase使用hbase-client2依赖
  2. 计算机系统的组成和应用,计算机系统组成与应用领域的考点
  3. python求最大值最小值求和_python3.2求和与最值
  4. 群晖3617可以有几个网卡_Synology 群晖 DS1621+ 六盘位NAS 开箱拆解评测
  5. kubernetes英语怎么读_小学三年级英语怎么学
  6. ubuntu 20.04命令行模式_Ubuntu18.04LTS升级到20.04LTS
  7. 2个flask服务器通信_nginx+uwsgi+flask环境部署
  8. 如何理解UCB-Upper Confidence Bound
  9. android for opencv (2) byte[] ,Bitmap 与 Mat 类型转换,Bitmap保存照片
  10. 论文阅读笔记(十五)——黑猩猩在野外的脸:用于预测灵长类身份和属性的对数欧几里得CNN