文章来源于我的个人公众号:KAU的云实验台,主要更新智能优化算法的原理、应用、改进
CEC2005中的测试
本文KAU将介绍一个2023年发表在1区期刊KBS上的优化算法——星鸦优化算法(Nutcracker Optimization Algorithm,NOA)[1]
该算法由Mohamed Abdel-Basset等于2023年提出,Mohamed Abdel-Basset教授同时也是开普勒、光谱、蜘蛛蜂等优化器的提出者。
而本文要介绍的NOA灵感来源于生活在美国西部和加拿大山区中的一种名叫星鸦的鸟类,该优化器模拟了星鸦觅食、存储以及缓存搜索、恢复的行为
算法性能上,在23个标准测试函数、CEC2014、CEC2017、CEC2020及5个工程设计问题上进行评估,对比算法包含:
(1)SMA、GBO、AVOA等近年发表的算法;
(2)SSA、WOA、GWO等高引算法;
(3)AL-SHADE、L-SHADE等CEC竞赛的获胜算法
NOA是所有方法中排名第一!
图源文献[1]
因此KAU对这个性能如此出彩的算法也很感兴趣,遂出此文章以学习,本文将介绍该算法的相关原理并给出其MATLAB实现。
00 目录
1 星鸦优化算法(NOA)原理
2 代码目录
3 算法性能
4 源码获取
01 星鸦优化算法(NOA)原理
图源文献[1]
NOA同样是基于种群的元启发式算法,模拟了星鸦在夏季和秋季寻找食物并将其存储在合适的场所,冬季和春季寻找储存的地方并取回食物的行为。共四种行为,下面讲解NOA原理:
1.1 初始化
星鸦的位置可视为搜索代理,其遵循随机初始化的方法:
1.2 觅食与存储策略
1.2.1 觅食阶段——勘探1
此阶段星鸦检查初始位置旁包含种子的球果,若有好种子,则带到储藏区,若没有,则到另一个松树上寻找,对该行为的建模如下:
其中,Uj和Lj是上下界,γ是Levy飞行产生的随机数,A、B、C是种群中的随机个体,τ1, τ2, r和r1是[0,1]之间的随机数,Xmtj是第j维的平均值,u是一个在正态分布随机数、levy飞行、随机数之间随机生成的数字,如下:
觅食阶段的第一个状态表明星鸦不改变位置,第二个状态表明将对空间进行随机的全局搜索,第三个状态将探索位置周围的空间。
1.2.2 存储阶段——开发1
星鸦将觅食阶段获得的食物运到储藏区,其数学模型为:
其中,λ是levy飞行生成的随机数,τ3是(0,1)之间的随机数,I是1到0随机线性递减的因子。
1.2.3 位置更新
根据以下公式进行觅食和存储之间的转换,以维持勘探和开发之间的平衡:
Eq(1)即选择觅食阶段的更新方式,Eq(2)即选择存储阶段的更新方式,ϕ是一个随机数,Pa1从1到0递减。即两种策略只选用一种执行。
1.3 寻找储藏区与找回策略
冬季来临后,星鸦将进行第二次探索,它从储藏模式转换到搜索模式,星鸦用两个参考点RP作为单个储藏区的标记。这些参考点可以用不同的方程表示:(这个参考点是星鸦用来找回食物的依据,是个很有意思的设计,可以作为一个改进策略的构想)
参考点:
第一层参考点为:
其中,theta表示[0,pi]之间的随机数,𝛼为:
第二层参考点为:
其中,L和U是上下界,U2(下图中U1应为U2)如下:
1.3.1 寻找储藏区阶段——勘探2
寻找储藏区阶段的位置更新公式为:
其中,Eq(13)为:
Eq(15)为:
其中C是随机选择一个个体。
新的位置将以贪婪策略选择性保留:
1.3.2 找回食物阶段——开发2
找回食物时其位置更新方式为:
Eq(12)
Eq(14)
同样,新的位置将以贪婪策略选择性保留:
1.3.3 位置更新
和上一节一样,第二阶段的搜索同样也是从勘探和开发中进行随机选择,其选择公式如下:
其中,Eq(16)即为勘探,Eq(17)即为开发。φ为(0,1)之间的随机数,而Pa2是经过实验确定的,原文中等于0.2。
1.4 算法流程
NOA算法共分两个阶段,每个阶段都包含勘探与开发两种策略,并且每个阶段的运行只会择其一种策略进行更新,同时,一次迭代只会选择一个阶段执行(按一定概率选择),保证了算法的快速迭代,其总体流程如下(流程图为KAU结合原文,根据自己的理解所画,若有误欢迎指正):
02 代码目录
代码为MATLAB,。考虑到很多同学获取代码后,MATLAB代码部分有乱码(MATLAB版本问题),有几个方法:
①可以将MATLAB版本改为2020及以上;
②将m文件用记事本打开,再将记事本中的代码复制到Matlab即可
代码都经过作者重新注释,代码更清爽,可读性强。
03 算法性能
采用标准测试函数初步检验其寻优性能,在MATLAB中,进行标准函数的测试,执行程序结果如下:
04 源码获取
在公众号(KAU的云实验台 )后台回复 NOA 即可
参考文献
[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-.
另:如果有伙伴有待解决的优化问题(各种领域都可),可以发我,我会选择性的更新利用优化算法解决这些问题的文章。
如果这篇文章对你有帮助或启发,可以点击右下角的赞/在看(ง •̀_•́)ง(不点也行),你们的鼓励就是我坚持的动力!若有定制需求,可私信作者。