声明:文章是从本人公众号中复制而来,因此,想最新最快了解各类智能优化算法及其改进的朋友,可关注我的公众号:强盛机器学习,不定期会有很多免费代码分享~
目录
原理简介
一、石斑鱼追踪猎物(勘探阶段)
二、给海鳗发信号
三、对猎物的合作攻击(开发阶段)
算法流程图和伪代码
性能测评
参考文献
完整代码
鳗鱼-石斑鱼优化算法(Eel and grouper optimizer ,EGO)是一种新型的元启发式算法(智能优化算法),灵感来源于海洋生态系统中鳗鱼和石斑鱼的共生作用和觅食策略。该成果由Ali Mohammadzadeh和Seyedali Mirjalili两位作者于2024年6月发表在SCI著名期刊《Cluster Computing》上!
注意,该算法的作者中包括了Seyedali Mirjalili等优化算法领域大名鼎鼎的学者。熟悉该作者的小伙伴都知道,非常经典的鲸鱼优化算法WOA、蜻蜓优化算法DA、海洋捕食者算法MPA等性能优异的算法都包含他的名字,说明这个算法的性能是有保证的!
由于发表时间较短,谷歌学术上还没人引用!你先用,你就是创新!
原理简介
灵感:当两种生物有有益的相互作用时,就会发生互惠共生。例如,海里的珊瑚和鱼。石斑鱼是一种大型鱼类,在珊瑚礁周围的开阔水域捕猎。海鳗在夜间滑过礁石捕食。当它们一起捕猎时,猎物存活的机会很小:如果猎物藏在暗礁里,鳗鱼会吃了它,然后跑向开阔的水域,石斑鱼会抓住它们。除了人类,这是唯一已知的两种不相关的生物一起狩猎的案例。石斑鱼邀请海鳗和它们一起狩猎,就像猎人带着狗驱赶兔子一样。
一、石斑鱼追踪猎物(勘探阶段)
石斑鱼根据猎物的位置寻找最佳的适合度。而在附近休息的海鳗的位置是从初始种群中随机选择的。我们还使用两个系数C1和C2,它们的随机值大于1或小于-1,以使搜索代理远离最佳位置。我们使用随机搜索代理来更新搜索代理在探索阶段的位置,而不是迄今为止最好的搜索代理。这种机制和系数值增强了搜索能力,使EGO算法能够执行全局搜索。数学模型如下:
其中t为第i维的当前迭代,Xrand表示随机位置向量。最后一次迭代的最佳解决方案由位置向量XG表示。C1, C2表示系数向量,r1, r2表示0到1之间的随机数,•表示元素间的乘法。需要注意的是,如果存在更好的位置,则应该在每次重复中更改XG。因为石斑鱼在狩猎后正在移动。
通过减小式5和式6中变量a的值来产生收缩包络行为。变量a随重复次数的增加呈递减趋势。C1是一个在[-a, a]范围内的随机数,C2是一个在[0,2]范围内的随机数,其中a在迭代过程中从2递减到0。变量a也减小了C1的变化范围。根据公式(4),C2是r2的系数。在公式(7)中,rand是0到1之间的随机数。
二、给海鳗发信号
石斑鱼通过摇头来分享它们的攻击位置和观察情况。石斑鱼,尤其是那些饥饿的目标刚刚逃进礁石的鱼,会游到最近的海鳗白天的藏身之处,在摆动背鳍的同时表演一种奇怪的摇头舞。为了用数学方法表示这种行为,每条鳗鱼的位置与石斑鱼的位置成正比,使用公式8进行更新。在这个公式中,石斑鱼饥饿程度影响信号。通过增加石斑鱼的饥饿程度,说服海鳗的机会就增加了。在公式9中,starvation_rate是一个介于0到100之间的数字,并且随着时间的推移而增加(重复次数)。r4也可以根据式7计算。如果鳗鱼没有关联,它的位置将改变为一个新的随机位置。
三、对猎物的合作攻击(开发阶段)
海鳗在礁石上爬行捕食,而石斑鱼则在珊瑚礁附近的开阔水域游过猎物。研究人员估计,这两条鱼一起捕食猎物的成功率是它们单独捕食的五倍。在58%的观察中,鳗鱼的反应是从裂缝中钻出来,然后两条鱼游过珊瑚礁。被每一种鱼——石斑鱼和鳗鱼——捕获的概率是相等的。为了模拟这种同时发生的行为,我们估计有50%的机会使用石斑鱼狩猎或鳗鱼狩猎模型来更新位置。r3也可以根据式6计算。数学模型如下:
如下图所示,波动更新定位技术首先测量鳗鱼在(XE, YE)和猎物在(XP, YP)之间的距离。然后在鳗鱼和猎物的位置之间构建一个圆形方程来模拟海鳗的波浪运动,如式10所示。由于正弦函数的循环结构,一个解可以移动到下一个解。这可以确保探索两个解决方案之间指定的空间。
算法流程图和伪代码
为了使大家更好地理解,这边给出作者算法的流程图和伪代码,非常清晰!
如果实在看不懂,不用担心,可以看下源代码,再结合上文公式理解就一目了然了!
性能测评
原文作者采用19个基准函数和张力/压缩弹簧、压力容器、活塞杆和汽车侧面碰撞这些工程设计问题以及CEC 2020真实世界基准对EGO的性能进行了测试。结果表明,EGO算法是一种可靠的软计算技术,可以有效地解决现实世界中的优化问题,并优于已有的文献算法。
这边为了方便大家对比与理解,采用23个标准测试函数,即CEC2005,并与Seyedali Mirjalili之前提出的非常经典的鲸鱼优化算法进行对比!这边展示其中5个测试函数的图,其余十几个测试函数大家可以自行切换尝试!
可以看到,EGO在大部分函数上性能都超过了原本的的WOA算法,如果原本想用WOA算法的同学可以试试换成EGO算法哦~
参考文献
[1]Mohammadzadeh A, Mirjalili S. Eel and grouper optimizer: a nature-inspired optimization algorithm[J]. Cluster Computing, 2024: 1-42.
完整代码
如果需要免费获得图中的完整测试代码,只需点击下方小卡片,再后台回复关键字,:
EGO
也可点击下方小卡片,再后台回复个人需求(比如EGO-KELM)定制以下鳗鱼-石斑鱼算法优化模型(看到秒回):
1.回归/时序/分类预测类:SVM、RVM、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、TVFEMD、CEEMDAN、ICEEMDAN、SVMD、FMD等分解模型均可~
4.其他:机器人路径规划、无人机三维路径规划、DBSCAN聚类、VRPTW路径优化、微电网优化、无线传感器覆盖优化、故障诊断等等均可~
5.原创改进优化算法(适合需要创新的同学):原创改进鳗鱼-石斑鱼优化算法EGO以及麻雀SSA、蜣螂DBO等任意优化算法均可,保证测试函数效果!
更多免费代码链接:更多代码链接