声明:文章是从本人公众号中复制而来,因此,想最新最快了解各类智能优化算法及其改进的朋友,可关注我的公众号:强盛机器学习,不定期会有很多免费代码分享~
目录
今天为大家介绍一下性能非常优异的算法——星鸦优化算法(Nutcracker Optimization Algorithm, NOA),这个算法灵感来源于美国西部和加拿大山区中的一种名叫星鸦的鸟类,由Mohamed Abdel-Bassset等人于2023年2月发表于SCI一区顶刊《Knowledge-Based Systems》上!
为什么说它性能好,作者在CEC2014、2017、2020三大测试函数中,对比了包括AL-SHADE、L-SHADE等CEC竞赛的获胜算法,也就是俗称的sota算法。结果显示,NOA算法在所有算法中性能排名第一!这是其他很多算法难以达到的效果!
谷歌学术上显示,该算法仅发表1年多,就已经被引122次,妥妥的高被引算法!
原理简介
这个算法公式比较多,但是整体思路还是比较清晰的~
NOA的行为可以分为两个主要部分:第一部分是收集松树种子(食物)并储存它们;第二个任务是搜索和检索存储地点。这两种行为的特点是发生在两个不同的时期。第一种行为发生在夏天和秋天。与此同时,第二种行为发生在冬季和春季。在提出的算法中,基于上述两个主要行为来模拟星鸦的行为。两种主要策略是(i)觅食和储存策略;(ii)缓存搜索和恢复策略。
一、觅食和储存策略
(1)觅食阶段
其中,Xt+1i为当前代第i个星鸦的新位置;Xti,j为当前代第i个星鸦的第j个位置;Uj和Lj是向量,包括优化问题中第j维的上界和下界;γ是根据莱维飞行产生的随机数;Xtbestj是目前得到的第j维最优解;A、C和B是从种群中随机选择的三个不同的指标,以便于探索高质量的食物来源;τ1,τ2, r, r1为[0,1]范围内的随机实数;Xtm,j是当前种群在第t次迭代中所有解的第j维均值;µ是基于正态分布(τ4)、 莱维飞行(τ5)、0到1的随机数 (τ3)之间生成的数,如下式所示:
其中r2和r3为[0,1]范围内的随机实数。
(2)储存阶段
其中,Xt+1(new)i是当前迭代t中星鸦存储区域的新位置,λ是根据莱维飞行生成的数字,τ3是0到1之间的随机数。l是NOA开发行为从1到0线性递减的因子。
(3)转换方式
觅食阶段与缓存之间的交换按照下式进行,保持勘探和开发之间的平衡:
其中φ是0到1之间的随机数,Pa1表示基于当前一代从1到0线性递减的概率值。
二、缓存搜索和恢复策略
(1)缓存搜索
在这一阶段,星鸦开始在搜索空间(存储区域)中占据由式(19)生成的初始位置/缓存位置。我们将这些对象定义为参考点(rp)。在NOA中,种群的每个缓存的两个rp可以使用以下矩阵定义:
其中,RPti,1和RPti,2表示当前第t代第i个星鸦的缓存位置X∈ti的rp(对象)。为了说明以下三个元素之间的关系:星鸦、缓存和参考点,我们假设这三个元素代表三角形的顶点。星鸦可以放置在不同的位置和不同的视角。下图描绘了星鸦在三维空间中的三个不同位置,其中一个缓存有三个不同的RP位置。
第一个参考点为:
第二个参考点为(下图中U1应为U2,作者写错了):
式中,RPti,1表示上述矩阵的第i行第1列;RPti,2表示上述矩阵的第i行第2列,矩阵中的每一行索引表示cache/星鸦索引。同时,矩阵中的每一列索引表示RP索引。RP是一个随机位置。α确保NOA定期收敛,允许星鸦在下一代中改进其RP选择。α可按下式计算:
其中t和Tmax分别表示当前迭代次数和最大迭代次数。
阶段最后加入贪婪策略,这里不再赘述:
(2)恢复策略
第一个RP:
式中,Xt+1i为第i个星鸦在迭代(t+1)时的新位置/缓存,Xij为当前迭代t中第i个星鸦的当前维度/缓存,Xtbest为迭代t中最佳位置/缓存,RPti,1为当前迭代t中第i个星鸦当前位置/缓存的第一个RP;r1,r2,τ3和τ4是0到1之间的随机数,C是从总体中随机选择的解的索引。
之后加入贪婪策略,这里不再赘述。
第二个RP:
其中r1,r2, τ5, τ6为区间[0,1]内的随机数。
算法围绕涉及最优解的最合适区域加强局部搜索,总结为:
对恢复行为的模拟可以总结为:
其中τ7和τ8是区间[0,1]内的随机数。上述等式中的第一种情况表示记住隐藏存储的星鸦,而第二种情况表示不记住隐藏存储的星鸦。关于第一个rp和第二个rp的探索行为之间的权衡是根据以下公式实现的:
最后,缓存搜索阶段与恢复阶段的交换按照下式进行,以保持勘探与开采的平衡:
式中φ为0 ~ 1之间的随机数,Pa2为0.2的概率值。
算法流程图和伪代码
为了使大家更好地理解,这边给出作者算法的流程图和伪代码,非常清晰!
如果实在看不懂,不用担心,可以看下源代码,再结合上文公式理解就一目了然了!
性能测评
原文作者通过23个标准测试功能、CEC-2014、CEC-2017和CEC-2020测试套件以及5个实际工程设计问题对NOA进行评估。NOA与现有的三类优化算法进行了比较:(1)最近发表的SMA、GBO、EO、RUN、AVOA、RFO和GTO算法,(2)SSA、WOA和GWO算法是高引用算法,(3)AL-SHADE、L-SHADE、LSHADE-cnEpSin和LSHADE-SPACMA算法是高性能优化器和CEC竞赛的获胜者。结果显示,NOA在所有方法中排名第一!
这边为了方便大家对比与理解,采用23个标准测试函数,即CEC2005,设置种群数量为30,迭代次数为1000,并与性能优异的黏菌优化算法SMA进行对比!这边展示其中5个测试函数的图,其余十几个测试函数大家可以自行切换尝试!
不得不说,这个算法性能确实不错,基本可以超越其他任何算法,强烈建议大家应用到各类预测、优化问题中也是一个不错的选择~
参考文献
[1]Abdel-Basset M, Mohamed R, Jameel M, et al. Nutcracker optimizer: A novel nature-inspired metaheuristic algorithm for global optimization and engineering design problems[J]. Knowledge-Based Systems, 2023, 262: 110248.
完整代码
如果需要免费获得图中的完整测试代码,只需点击下方小卡片,再后台回复关键字,不区分大小写:
NOA
也可点击下方小卡片,再后台回复个人需求(比如NOA-BP)定制以下NOA算法优化模型(看到秒回):
1.回归/时序/分类预测类:SVM、RVM、LSSVM、ELM、KELM、HKELM、DELM、RELM、DHKELM、RF、SAE、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.路径规划类:机器人路径规划、无人机三维路径规划、冷链物流路径优化、VRPTW路径优化等等~
5.优化类:光伏电池参数辨识优化、储能容量配置优化、微电网优化、PID参数整定优化、无线传感器覆盖优化、故障诊断等等均可~~
6.原创改进优化算法(适合需要创新的同学):原创改进星鸦优化算法NOA以及蛇鹫SBOA、蜣螂DBO等任意优化算法均可,保证测试函数效果!