智能优化算法:探路者优化算法-附代码
智能优化算法:探路者优化算法
文章目录
- 智能优化算法:探路者优化算法
- 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=u1e−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)u2Dij(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.2 空间放电体 1.3 引导放电体 2.算法结果 3.参考文献 4.Matlab ...
- 智能优化算法:布谷鸟搜索算法-附代码
智能优化算法:布谷鸟搜索算法-附代码 文章目录 智能优化算法:布谷鸟搜索算法-附代码 1.算法原理 2.算法结果 3.参考文献 4.Matlab代码 摘要:谷鸟搜索算法(cuckoo search , ...
- 基于蝙蝠算法优化BP神经网络的数据分类算法及其MATLAB实现-附代码
基于蝙蝠算法优化BP神经网络的数据分类算法及其MATLAB实现-附代码 文章目录 基于蝙蝠算法优化BP神经网络的数据分类算法及其MATLAB实现-附代码 1 蝙蝠算法与BP神经网络分类模型 1.1 蝙 ...
- 基于灰狼算法优化支持向量机的数据分类算法及其MATLAB实现-附代码
基于灰狼算法优化支持向量机的数据分类算法及其MATLAB实现-附代码 文章目录 基于灰狼算法优化支持向量机的数据分类算法及其MATLAB实现-附代码 1 GWO-SVM 模型 1.1 灰狼优化器GWO ...
- 相位 unwrap 与 wrap 算法详解(附代码)
相位 unwrap 与 wrap 算法详解(附代码) 最近接手了一个项目,光通信方面的,我负责编写初测结果的数据处理算法,其中有一个算法叫做 unwrap 与 wrap,之前没有听说过.通过询问同事与 ...
- 数据挖掘领域十大经典算法之—SVM算法(超详细附代码)
相关文章: 数据挖掘领域十大经典算法之-C4.5算法(超详细附代码) 数据挖掘领域十大经典算法之-K-Means算法(超详细附代码) 数据挖掘领域十大经典算法之-Apriori算法 数据挖掘领域十大经 ...
- 二分查找算法详解(附代码)
二分查找算法详解(附代码) 注: 现有一个升序 不重复的数组 查询target是否在此数组中并返回序号 使用条件 使用二分算法的两个条件: 有序 不重复 混淆处 二分算法两种方式容易弄混淆的地方:就是 ...
- 数据挖掘领域十大经典算法之—AdaBoost算法(超详细附代码)
相关文章: 数据挖掘领域十大经典算法之-C4.5算法(超详细附代码) 数据挖掘领域十大经典算法之-K-Means算法(超详细附代码) 数据挖掘领域十大经典算法之-SVM算法(超详细附代码) 数据挖掘领 ...
- 麻雀优化算法_多种智能优化算法应用案例分享-附代码
1.智能优化算法应用:基于灰狼算法的Otsu图像多阈值分割 智能优化算法应用:基于灰狼算法的Otsu图像多阈值分割-附代码_Jack旭的博客-CSDN博客blog.csdn.net 2.智能优化算法 ...
- 智能优化算法:麻雀搜索算法-附代码
2020智能优化算法:麻雀搜索算法 文章目录 2020智能优化算法:麻雀搜索算法 1.算法原理 2.算法结果 3.参考文献 4.Matlab代码 5.Python代码 摘要:麻雀搜索算法(Sparro ...
最新文章
- split join append
- 不用鼠标,只用键盘,你还能操作自如吗?
- python基础代码-Python基础(代码)
- maven netty 配置_SpringBoot整合Netty(附源码)
- 如何使用VAIO Care恢复和还原VAIO
- 全国计算机等级考试题库二级C操作题100套(第12套)
- 应用环境下的TIME_WAIT和CLOSE_WAIT
- 再有人问你volatile是什么,把这篇文章也发给他(深入分析)
- 【FastJson】FastJson一个Bug java.util.LinkedHashMap cannot be cast to com.alibaba.fastjson.Jsonobject
- 4款最具影响力的自助式BI工具
- python复数运算程序_python复数-python,复数
- ubuntu 移动硬盘复制小文件可以,复制大文件总是复制不成功
- 38、Power Query-背后的贤内助M语言
- STM32F407 STM32F407 LWIP速度优化测试速度可以达到1万kb每秒 相当于80兆的网络速度
- Linux学习——vi/vim编辑C程序并运行
- 在OCI中为计算实例添加第二块网卡
- python做网站怎么样_怎么用python做网站?
- 爬虫摸索中~~(PS:小小爬虫,何惧哉?且到明日,再看今朝。)
- python 删除指定后缀文件_python3 遍历删除特定后缀名文件的方法_天津SEO
- fama matlab源码_基于优化算法改造的Fama-French三因子模型
热门文章
- java操作hbase使用hbase-client2依赖
- 计算机系统的组成和应用,计算机系统组成与应用领域的考点
- python求最大值最小值求和_python3.2求和与最值
- 群晖3617可以有几个网卡_Synology 群晖 DS1621+ 六盘位NAS 开箱拆解评测
- kubernetes英语怎么读_小学三年级英语怎么学
- ubuntu 20.04命令行模式_Ubuntu18.04LTS升级到20.04LTS
- 2个flask服务器通信_nginx+uwsgi+flask环境部署
- 如何理解UCB-Upper Confidence Bound
- android for opencv (2) byte[] ,Bitmap 与 Mat 类型转换,Bitmap保存照片
- 论文阅读笔记(十五)——黑猩猩在野外的脸:用于预测灵长类身份和属性的对数欧几里得CNN