1. 引言
作为一种受生物群体行为启发的方法,群智能算法已被成功应用到各个领域,并且仍有大量性能优良的群智能算法被提出以解决不同类型的问题,这其中包含灰狼优化算法(Gray Wolf Optimization, GWO) [1] 、蒲公英优化算法(Dandelion Optimization, DO) [2] 、海鸥优化算法(Seagull Optimization Algorithm, SOA) [3] 、爬行动物搜索算法(Reptile Search Algorithm, RSA) [4] 、金豺优化算法(Golden Jackal Optimization, GJO) [5] 、蜜獾优化算法(Honey Badger Optimization Algorithm, HBA) [6] 等。
海马算法(Sea-horse Optimizer, SHO)是一种2022年提出的较新的模拟海马行为的群智能算法 [7] 。海马作为一种长相奇特、行为也奇特的水生生物,喜欢栖息在多海藻、珊瑚的水域,靠着尾巴缠绕海藻随着波涛在水中浮动,在繁殖行为中,由长有育儿袋的雄性海马进行生育。海马算法在简单优化问题中寻优精度高、稳定性强,但是在面对复杂问题时容易陷入局部最优且收敛速度慢。针对这类群智能算法常见问题,一些学者提出了改进方法,文献 [8] 中利用二次插值策略生成新的个体,并贪心保留适应度值更优的个体,有效提高算法的寻优精度;文献 [9] 中利用平均适应度值将种群划分为先进子群和普通子群,并对不同的子群设计不同的位置更新方式,有效提高了算法求解问题的能力;文献 [10] 中分别对最优个体和劣等个体进行逐维变异优化和混沌干扰,有效提高了算法的寻优性能。
因此,本文针对SHO存在的问题,提出了一种改进海马算法(Improved Sea-horse Optimizer, ISHO)。首先利用Singer混沌映射生成初始海马种群,提升种群多样性,提高算法的搜索准确度;其次,利用失败者放逐策略,提高算法跳出局部极值的能力;最后,利用动态繁殖策略影响产生子代时亲本的权重,保留前代优秀遗传信息,减小过快陷入局部最优值的可能。本文选用10个基准测试函数和6个较新的群智能算法进行测试,对结果进行秩和检验,利用10个CEC2013函数对改进前后算法进行测试,结果验证了改进方法的有效性,证明了ISHO是一种寻优精度高、收敛速度快的稳定算法。
2. 标准海马算法
在海马的众多行为中,海马算法主要模拟了海马的运动行为、捕食行为以及繁殖行为。在运动行为中,海马个体的移动分为在搜索空间全局搜索以及在可能最优位置附近局部开发两种情况,为了便于区分,引入按照正态分布的随机数
,当
为正数时,海马个体做螺旋运动向精英个体移动,表达式如下,
(1)
其中t是迭代次数,Elite是精英个体位置,Levy是莱维飞行函数,表达式如下,
(2)
其中s是固定常数0.01,w和k为取值为
的随机数,
取值范围是
,
的表达式如下,
(3)
x、y和z分别是螺旋运动下坐标的三维分量,表达式如下,
(4)
(5)
(6)
其中
,
为取值在
的随机数,对数螺旋常数u和v均为0.05。
当
为负数的时候,海马个体随海洋变化进行布朗运动
(7)
rand是0到1之间的随机数,参数l为0.05,布朗运动的随机游走系数
表达式如下,
(8)
在海马的捕食行为中,精英个体位置被设定为食物位置,海马捕食成功概率被设定为90%,按照随机数
来区分海马捕食成功或失败两种情况。捕食行为描述如下,当
取值大于0.1时,海马捕食成功,此时海马个体的位置更新公式为公式9。
(9)
当
小于等于0.1,海马捕食失败的时候,转向全局搜索,即
(10)
其中调整影响因子的权重
线性递减,以等式11计算。
(11)
其中
为最大迭代次数。
在海马的繁殖行为中,模拟了海马最特殊的一种行为,即由雄性生育下一代,为了更好地继承前一代的寻优成果,根据适应度值排序结果,将排名在前的一半个体设定为雄性,排名在后的一半个体设定为雌性,随机交配产生一个子代海马个体的表达式如下,
(12)
其中
是产生的子代的位置,father为参与繁殖的雄性的位置,mother为雌性位置,
为取值为
之间的随机数。繁殖行为产生的后代再次进行适应度值排序,按照原先设定种群规模筛选排名靠前的海马个体组成新的种群参与下一次迭代。
3. 改进海马算法
3.1. Singer混沌初始化
标准海马算法随机在搜索空间中生成初始的海马个体,随机出现在搜索空间的海马个体位置可能聚集在一处,导致种群多样性不足,容易使算法陷入局部最优,也可能遍历性不够,导致有的算法空间没有被覆盖到,使得算法寻优精度不足。混沌映射初始化是解决这一问题的常用方法,但是不同的混沌映射方式解决问题的效果也有所不同。本文拟采用Singer混沌映射来生成初始的海马种群,Singer混沌映射表达式如下。
(13)
其中,
,在30维下取1500个散点,将不同
取值下的散点图在图1中给出。
图1. 不同方法初始化种群散点图
从图1中可以看出,随着参数
的增加,Singer混沌映射生成的散点图趋向覆盖搜索空间,重合的无效散点数量减少,有效的分散散点数量增多。本文选取
为1.07。将Singer混沌生成的序列映射到搜索空间的表达式如下,
(14)
其中N为种群规模,dim为维度,
和
分别是搜索空间的上下界。
3.2. 失败者放逐策略
在描述海马捕食行为时,标准SHO利用随机数
来区分捕食的两种结果,当捕食成功的时候,海马个体更靠近精英个体,如果捕食失败,则转为全局搜索,表达式为公式9和10。在海马个体进行捕食的时候,大概率已经处于靠近精英个体的位置,在算法进行到后期的时候,如果捕食失败,再增加精英个体影响力,不仅会加重算法陷入局部极值的情况,还会消耗较多时间在对算法寻优无帮助的行为上。因此为了提高算法寻优精度、增强算法跳出局部最优的能力,引入失败者放逐策略,表达式如下,
(15)
其中Step为莱维飞行的步长,即在原位置有一定概率以大步长进行位移。
3.3. 动态繁殖策略
由于海马是由雄性生育的,因此在标准SHO中选择种群中适应度值更好的一半个体作为雄性海马,较差的一半个体作为雌性个体,由公式12表示海马的繁殖行为。在选取亲本的权重时使用的是随机数,随机数值大就意味着父本的权重大、母本占的权重小,但是这并未考虑到算法实际情况,如果想要种群多样性好、算法寻优精度高,应当增强新生个体在算法前期受到母本影响的权重,想要算法收敛速度快,那么应当增强新生个体在算法后期受到父本影响的权重。除此以外,还要防止算法过快陷入局部极值,因此选用动态繁殖策略,其中变化的边界的表达式为公式16。
(16)
p非线性递减,当随机数大于p时,在算法后期父本权重占比大的概率更大,当随机数较小的时候,在算法前期父本和母本以相同权重影响产生的后代。使用动态繁殖策略后的海马繁殖行为表达式如下,
(17)
其中father为父本个体位置,mother为母本个体位置,
为产生的后代的位置。改进后的海马繁殖行为增强了算法后期父本作为较优秀个体的影响能力,提高了产生的后代的质量,同时保留了一部分概率使得产生个体受到母本影响,防止算法过早收敛到局部最优。
3.4. ISHO主要步骤
改进SHO算法的主要步骤如下:
第一步:设置种群规模为N,最大迭代次数为
,对数螺旋常数u和v以及常数系数l。
第二步:利用Singer混沌映射生成初始的海马种群。
第三步:计算海马个体的适应度值并进行排序,将适应度值最好的设定为精英个体,同时设定精英个体位置为食物源位置。
第四步:模拟海马的运动行为,根据随机数
的正负选择运动方式,取正数时进行螺旋运动,反之进行布朗运动。
第五步:模拟海马的捕食行为,根据随机数
选择海马个体捕食成功或失败两种情况下的位置更新方式,捕食成功就向精英个体靠近,捕食失败就进行莱维放逐。
第六步:模拟海马的繁殖行为,将适应度值靠前的一半个体设定为父本,靠后的一半个体设定为母本,根据随机数
和动态边界的关系,按照公式17对父本和母本的选择不同的影响权重。
第七步:为保证种群不扩张,再次进行适应度值排序,将排名靠前的N个海马个体作为新的种群参与下一次算法迭代。
第八步:检查算法是否满足结束条件,若满足就结束循环,输出最优解,否则继续执行循环直至满足结束条件。
改进SHO算法的流程图如图2所示。
4. 实验结果
4.1. 基准函数测试实验
4.1.1. 基准函数
在验证算法性能的方法中,最为经典的就是23个基准测试函数 [11] 。本文选取10个基本函数进行实验,其中F1~F3为单峰函数,F4、F5为多峰函数,F6~F10为固定维度多峰函数,其求解的难度逐步提升。选取的函数的基本信息在表1中列出。
Table 1. System resulting data of standard experiment
表1. 标准试验系统结果数据
4.1.2. 算法性能比较与分析
在算法性能测试实验中,除了标准SHO算法,本文选取了DO、SOA、HBA、RSA、GJO以及GWO作为对比算法,用以验证ISHO的有效性和可行性。实验环境为Windows 11系统,1.80 GHz CPU,16 GB内存,编程语言为MATLAB R2020b。算法参数信息在表2中给出。
Table 2. Algorithm parameter settings
表2. 算法参数设置
由于算法每次进行实验得到的结果具有偶然性,为了便于对比分析算法性能,将算法独立运行30次后得出的结果列在表3中。评价指标为平均值、标准差、最优值以及最差值,其中优先级排在首位的是平均值,可以反映出算法的寻优精度。将最优结果加粗表示。
Table 3. The test results of each algorithm under different functions
表3. 各个算法在不同函数下的测试结果
分析表3数据可知,本文改进方法ISHO在F1~F6以及F8这7个基准测试函数中排名第一,其中在F1~F3和F5均得到了理想最优值,在所选10个测试函数中均比标准SHO有提升,除此以外,在F7中排名第四,在F9和F10中均排名第三,仅次于GWO和GJO。而GWO和GJO在单峰函数下的寻优效果无法得到理想值。另外,同样在F1、F2、F3和F5中能找到理想最优值的HBA和RSA在应对固定维多峰函数时效果没有ISHO好。在F7中排名第一的DO算法在处理单峰函数时同样效果欠佳。综合来看,ISHO能够在单峰函数、多峰函数、固定维多峰函数中取得不错的结果,不仅算法寻优精度高,且算法稳定性好。
为了更加直观地看出ISHO与对比算法的区别,画出各对比算法在所选测试函数下寻优的收敛曲线对比图(图3),ISHO的收敛曲线用标有五角星的曲线表示。
在单峰函数F1~F3的收敛曲线图中,SHO和ISHO明显在其他对比算法的曲线下方,说明标准SHO算法在处理单峰函数时就相对有较快的收敛速度和较高的寻优精度,ISHO的曲线在SHO下方,说明算法性能又有了提升。在F6中,ISHO率先开始收敛,尽管DO算法在第400次迭代后有超过ISHO的趋势,但是ISHO保持较高的寻优精度,在第1800次迭代左右赶超DO,排名第一。在F7中,尽管ISHO没有排名第一,但是收敛曲线紧挨着排名在前的曲线,与标准SHO形成明显对比。在F8处,ISHO最先开始收敛,紧跟着100次迭代附近HBA收敛到较高精度值附近,在1900次迭代附近,ISHO超过HBA成为得到最高寻优精度的算法。在F9、F10中,尽管ISHO的收敛曲线不是在最下方的,但是仍然接近理想最优值,排名靠前,与标准SHO的曲线对比明显。综合来看,ISHO以较快的收敛速度达到最优值,在个别函数中给与更多的迭代次数能得到更高的寻优精度,与SHO收敛曲线对比明显,证明了改进的有效性。
4.1.3. 统计检验
除了可以利用收敛曲线来观察算法的性能,Wilcoxon秩和检验是一种具有权威性的方法 [12] ,常用于检验所改进的算法相较于对比算法是否有显著性优势。显著性检验的标准一般设置为0.05,当检验结果低于0.05就说明存在显著性优势,反之不显著或无优势。将各个对比算法在这10个所选函数下的寻优结果与本文改进ISHO的结果进行Wilcoxon秩和检验,将检验结果列在表4中。
Table 4. Rank sum test results under different test functions
表4. 不同测试函数下的秩和检验结果
观察表4可知,在绝大多数情况下,本文所提ISHO相比对比算法有着显著性优势,只有极少数情况例外,如SHO和RSA在F1下的检验结果超过0.05的标准,结合表3可知,SHO和RSA在F1时和ISHO一样,均达到了理想值,因此ISHO在F1情况下相比SHO和RSA没有显著优势,结合在F1的收敛曲线图可知,ISHO以更早收敛到理想值相比SHO和RSA有较小优势,同样在F1达到理想值的HBA由于需要较多的迭代次数才收敛到最优,和ISHO有一定的差距,因此ISHO相比HBA有显著性优势,尽管在F11处,ISHO也达到了理想最优值,但是结合收敛曲线来看,GJO仅仅在50代左右就收敛到了最优值,因此ISHO相比GJO在F11处没有体现出显著优势。在F21算法运行到后期,ISHO和GWO的收敛曲线越来越近,因此秩和检验结果没有证明ISHO有显著性优势,但是从表3可知,ISHO在F21处的寻优精度高于GWO。同理,在F22处,GJO和ISHO的收敛曲线逐渐靠近,因此秩和检验结果大于0.05,但是从排名上来说,ISHO排名第三,在寻优精度上保持了较高的水平。总的来说,ISHO相比其他算法在各个函数上有着显著性优势,在极少数情况下,尽管秩和检验结果超过0.05,但是ISHO仍然保持较快的收敛速度和较高的寻优精度,是一种有较强竞争力的算法。
4.2. CEC函数测试实验
在测试算法性能的时候,CEC测试函数集求解极为困难,对于算法来说更具挑战性。本文选取CEC2013函数集 [13] 中的10个函数进行测试,所选函数的详细信息在表5中给出。
Table 5. The selected CEC2013 functions
表5. 选取的CEC2013函数
为了进一步检验SHO算法的改进效果,将ISHO与SHO在所选CEC函数下进行实验,将实验结果的平均值和标准差在表6中给出。
Table 6. The test results of SHO and ISHO under CEC functions
表6. SHO和ISHO在CEC函数下测试结果
从表6可以看到,在所选的10个CEC测试函数的实验结果中,ISHO的平均值均小于SHO的结果,尽管没有达到理想最优值,但是仍能够说明ISHO的性能相较于SHO有了进一步提升,有了更强的能力应对复杂问题的求解。
5. 总结
本文针对标准SHO算法寻优精度不高、收敛较慢等问题,提出了改进ISHO。在生成初始海马种群的时候,利用Singer混沌映射,提高初始海马个体在搜索空间的遍历性和均匀性;在捕食阶段,引用失败者放逐策略,将10%捕食失败的海马个体转向莱维飞行,有几率大步长跳跃的特性增加算法跳出局部最优值的能力;在海马繁殖行为中,利用非线性变化的边界动态设定雄性海马和雌性海马参与繁殖下一代的影响权重,在防止陷入局部极值的同时提高算法的寻优精度。在算法性能测试中分别用10个基准测试函数和10个CEC2013函数进行实验,并分别与6个较新的对比算法和改进前的算法对比,实验结果表明ISHO相较于SHO在复杂函数改进效果明显,在单峰函数、多峰函数、固定维多峰函数和CEC2013函数中均表现出良好的性能,证明了ISHO是一种有较强寻优能力的算法。