声明:文章是从本人公众号中复制而来,因此,想最新最快了解各类智能优化算法及其改进的朋友,可关注我的公众号:强盛机器学习,不定期会有很多免费代码分享~
目录
鹦鹉优化算法(Parrot optimizer, PO)是一种新型的元启发式算法(智能优化算法),灵感来源于鹦鹉与主人的关系。该成果由Junbo Lian等人于2024年发表在SCI二区Top期刊《Computers in Biology and Medicine》上。
由于发表时间较短,谷歌学术上还没人引用!你先用,你就是创新!
原理简介
鹦鹉(Pyrrhura Molinae)表现出四种不同的行为特征:觅食、停留、交流和对陌生人的恐惧。这些行为(如图1所示)在现实环境中构成了我们设计PO动机的基础。
觅食:驯化的鹦鹉(Pyrrhura Molinae)的觅食行为令人着迷,因为个体选择在食物丰富的小群体中觅食。它们可以利用主人的位置和群体的存在,朝着食物走去。它们利用嗅觉和视觉提示来加强搜索。
停留:停留的行为包括皮茹拉在主人身体的不同部位随机栖息。
交流:这些群居鸟类发出独特的叫声,在群体中进行交流,既用于社会互动,也用于信息传播。
对陌生人的恐惧:对陌生人的天然恐惧是鸟类的共同特征,这促使鹦鹉离开不熟悉的个体,向它们的主人寻求保护。
重要的是,鹦鹉行为的不可预测性强调了我们设计的动机,因为这四种行为在驯化群的每次迭代中随机发生在每个个体身上。
一、种群初始化
考虑种群规模为N,最大迭代次数为Max_iter,搜索空间限制为lb(下界)和ub(上界),所提PO的初始化公式如下:
式中,rand(0,1)表示[0,1]范围内的随机数,X_i^0表示第i个鹦鹉在初始阶段的位置。
二、觅食行为
在觅食行为中,它们主要通过观察食物的位置或考虑主人的位置来估计食物的大致位置,然后向各自的位置飞去。因此,位置运动遵循如下公式:
在式(2)中,X_i^t表示当前位置,X_i^(t+1)表示后续更新的位置。X_mean^t表示当前种群内的平均位置,Levy(D)表示Levy分布,用于描述鹦鹉的飞行情况。X_best表示从初始化到当前搜索到的最佳位置,它也表示主人的当前位置。T表示当前迭代次数。(X_i^t- x_best)⋅Levy(dim)表示根据自己相对于主人的位置进行移动,rand(0,1)⋅(1-t/(Max_iter)) ^(2t/(Max_iter))⋅X_mean^t表示观察整个种群的位置,以进一步确定食物的方向。该过程如下图所示。
当前种群的平均位置用X_mean^t表示,使用下列公式表示:
根据下列公式中的规则可以得到Levy分布,其中γ赋值为1.5:
三、停留行为
鹦鹉(Pyrrhura Molinae)是一种高度社会化的生物,它的停留行为主要包括突然飞到主人身体的任何部位,在那里静止一段时间。该过程如图3所示。这个过程可以表示为:
式中ones(1,dim)表示维度dim的全1向量,X_best⋅Levy(dim)表示飞往宿主的过程,rand(0,1)⋅ones(1,dim)表示随机停在宿主身体某个部位的过程。
四、交流行为
鹦鹉是天生的社会性动物,其特点是群体内的密切交流。这种沟通行为包括飞向鸟群和不飞向鸟群的沟通。在PO中,假设这两种行为发生的概率相等,并使用当前种群的平均位置来象征群体的中心。该过程如下图所示。这个过程可以表示为:
式中,0.2⋅rand(0,1)⋅(1-t/(Max_iter))⋅(X_i^t- x_mean ^t)表示个体加入鹦鹉群体进行交流的过程,0.2⋅rand(0,1)⋅exp (-t/(rand(0,1)⋅Max_iter))表示个体在交流后立即飞出的过程。这两种行为都是可行的,因此,使用在[0,1]范围内随机生成的P来实现。
五、对陌生人的恐惧行为
一般来说,鸟类对陌生人表现出天然的恐惧,鹦鹉也不例外。它们与不熟悉的个体保持距离,与主人一起寻找安全环境的行为可以用以下公式和图表示:
其中rand(0,1)⋅cos (0.5π·t/(Max_iter))⋅(X_best-X_i^t)表示重新定向飞向所有者的过程,cos (rand(0,1)⋅π)⋅(t/(Max_iter)) ^(2/(Max_iter))⋅(X_i^t- x_best)表示远离陌生人的过程。
算法流程图和伪代码
为了使大家更好的理解,这边给出算法流程和伪代码,非常清晰!
Algorithm1:Pseudo-codeofthePOalgorithm |
1:InitializethePOparameters |
2: Initialize the solutions'positions randomly |
3:Fori =1:Max_iterdo |
4: Calculatethefitnessfunction |
5: Find thebestpositionandworstposition |
6: Forj =1:Ndo |
7: St = randi([1, 4]) |
8: Behavior 1: The foraging behavior |
9: IfSt==1Then |
10: UpdatepositionbyEq.(2) |
11: Behavior 2: The staying behavior |
12: ElseifSt==2Then |
13: UpdatepositionbyEq.(5) |
14: Behavior 3: The communicating behavior |
15: ElseifSt==3Then |
16: UpdatepositionbyEq.(6) |
16: Behavior 4: The fear of strangers’ behavior |
17: ElseifSt==4Then |
18: UpdatepositionbyEq.(7) |
19: End |
20: End |
21: Return thebestsolution |
22:End |
如果实在看不懂,不用担心,可以看下代码,再结合上文公式理解就一目了然了!
性能测评
原文作者采用CEC2022的经典案例和问题,并将其与八种流行的算法进行比较,并通过参数灵敏度实验探讨了所提出的PO在不同构型下的适应性。
这边为了方便大家对比与理解,采用23个标准测试函数,即CEC2005,并与23年新出的雪消融算法SAO进行对比!这边展示其中5个测试函数的图,其余十几个测试函数大家可以自行切换!
可以看到,PO的效果还是非常不错的!在大部分函数上都超过了SAO算法,收敛速度也非常快,大家应用到各类预测、优化问题中是一个不错的选择~
参考文献
[1]Lian J, Hui G, Ma L, et al. Parrot optimizer: Algorithm and applications to medical problems[J]. Computers in Biology and Medicine, 2024: 108064.
完整代码
如果需要免费获得图中的完整测试代码,只需点击下方小卡片,后台回复关键字:
鹦鹉
也可点击小卡片,后台回复个人需求定制PO优化模型(看到秒回):
1.回归/时序/分类预测类:SVM、LSSVM、ELM、KELM、HKELM、DELM、RELM、DHKELM、RF、LSTM、BiLSTM、GRU、BiGRU、PNN、CNN、BP、XGBoost、TCN、BiTCN、ESN等等均可~
2.组合预测类:CNN/TCN/BiTCN/DBN/Adaboost结合SVM/RVM/ELM/LSTM/BiLSTM/GRU/BiGRU/Attention机制类等均可(可任意搭配非常新颖)~
3.分解类:EMD、EEMD、VMD、REMD、FEEMD、CEEMDAN、ICEEMDAN、SVMD等分解模型均可~
4.其他:机器人路径规划、无人机三维路径规划、DBSCAN聚类、VRPTW路径优化、微电网优化、无线传感器覆盖优化、故障诊断等等均可~
5.原创改进优化算法(适合需要创新的同学):2024年的PO、FTTA、NRBO以及WOA等任意优化算法均可,保证测试函数效果!