沙猫群优化算法(Sand Cat Swarm Optimization,SCSO)是由Amir Seyyedabbasi和Farzad Kiani于2022年提出的一种新的元启发式算法,该算法是一种模仿自然界中沙猫生存行为的智能优化算法。目前该算法在谷歌学术可以查询被引次数为106次。沙猫群算法的原理简单,但算法的寻优效果确实极好的,而且现在还有很多人对该算法进行改进!
首先声明:本期算法由作者自行改进,内容与创新点足够支撑写一篇论文!且第一发布渠道就是微信公众号,此前作者并未在其他任何平台进行发布!也就是说这就是第一手资料!需要的速速下载!获取代码的方式放在文末了。
本期推出的新算法为:融合麻雀警戒机制与螺旋搜索的沙猫群优化算法(SSCSO),该简写只是作者为了区分原始沙猫群算法而自己临时起的,大家可以根据自己的想法修改这个简写。
融合麻雀警戒机制是作者在仔细考虑了原始沙猫群算法的基础上,持续研究了很久才成功的。
改进亮点
①在五大经典测试集进行测试
在CEC2005,CEC2017,CEC2019,CEC2021,CEC2022五大经典测试集中,融合麻雀警戒机制与螺旋搜索的沙猫群优化算法(SSCSO)表现均为最佳!
②程序可一键运行,自动生成统计表格。
每个算法各跑30次,在当前目录下可自动生成excel表格,除了对每个算法的平均值,最佳值,标准差,最差值,中位值进行统计外,还有另外一个表格专门统计秩和检验的结果。
③与经典麻雀算法复杂度保持一致
本期推出的算法不会在循环中多次调用适应度函数,没有添加所谓的贪婪策略,反向学习等增添复杂度的手段。
④与多种智能算法进行对比试验
本期算法一共与其余5种效率或热度较高的智能算法进行对比试验。包括:原始沙猫群算法(SCSO),蜣螂算法(DBO),鹈鹕优化算法(POA),减法优化器算法(SABO),哈里斯鹰优化算法(HHO)。
改进策略详解
关于沙猫群算法的原理网上有很多,之前小淘也介绍过沙猫群算法的原理,本文就不再详细介绍,接下来直接上改进策略:
改进点1:加入Cubic混沌映射,增加沙猫群多样性
加入Cubic混沌映射,主要是增加沙猫群初始化的多样性。想要替换为其他混沌映射的小伙伴可以参考这篇文章:10种混沌映射优化灰狼算法,可一键切换。
Cubic混沌映射,公式如下:
取x0=0.3,ρ=2.595时,Cubic映射具有较好的混沌遍历性。以下两个图运行plotchaos.m可出现。
改进点2:在沙猫群的搜索猎物阶段加入螺旋搜索策略
在搜索猎物阶段加入螺旋搜索策略,使得沙猫拥有多种搜索路径来更好的调整自身位置,从而提高算法的全局搜索性能。
原始沙猫群算法的搜索猎物阶段公式为:
添加螺旋搜索策略因子:
融合螺旋搜索因子后的公式如下:
融入螺旋探索后,沙猫群将以螺旋形式在搜索空间中搜索,扩展了探索未知区域的能力,使算法跳出局部最优的可能性增加,有效提高算法的全局搜索性能。
改进点3:融合麻雀警戒机制
在沙猫群算法第二阶段结束后,增加麻雀警戒机制。沙猫群虽然长时间生活于沙漠之中,然而仍然会被捕食者发现。如野狗、狐狸、狼、一些毒蛇及各种猛禽等等。这些天敌的存在让沙漠猫变得十分敏感而又谨慎:因此笔者认为,将沙猫群融合麻雀的警戒机制,可以使得沙猫群算法更快的提升收敛速度。
当沙猫群意识到危险时,群体边缘的沙猫会迅速向安全区域移动,以获得更好的位置,位于种群中间的沙猫则会随机走动,以靠近其它沙猫。
算法原理会在压缩包中,有专门的word文档讲清楚!
结果展示
在CEC2005中测试:
这里截了一些图,可以看到在CEC2005函数的测试效果是非常不错的。
将每个算法迭代500次,种群个数设置为30个,每个函数运行30次,求最优值,标准差,平均值,最差值,中位数共五个指标如下,秩和检验结果,箱线图等如下所示。
五种指标结果:
秩和检验结果:
箱线图:
在CEC2017中测试:
这里截了一些图,可以看到在CEC2019函数的测试效果是非常不错的。
将每个算法迭代500次,种群个数设置为30个,每个函数运行30次,求最优值,标准差,平均值,最差值,中位数共五个指标如下,秩和检验结果,箱线图等如下所示。
五种指标结果:
秩和检验结果:
箱线图:
在CEC2019中测试:
由于篇幅原因这里就只放箱线图了,从箱线图也完全能看出来算法的效果了。
在CEC2021中测试:
由于篇幅原因这里就只放箱线图了,从箱线图也完全能看出来算法的效果了。
在CEC2022中测试:
由于篇幅原因这里就只放箱线图了,从箱线图也完全能看出来算法的效果了。
代码展示
代码目录如下:
每个文件子目录如下,以为CEC2005和CEC2017举例展示:
每个文件都包含一个作图的程序(plotCEC2005_Main.m,plotCEC2017_Main.m)和一个统计指标一键生成excel和箱线图的程序(runsCEC2005_Main.m,runsCEC2017_Main.m)
运行后,会直接生成表格,其中result.xls即为最优值,标准差,平均值,最差值,中位数指标统计结果,ranksumresult.xls为秩和检验结果。