融合黄金正弦混合变异的自适应樽海鞘群算法
2021-06-23周新,邹海
周 新,邹 海
安徽大学 计算机科学与技术学院,合肥230601
群智能优化算法通常是受自然界中生物行为和物理现象启发而构造出具有特殊理论模型的优化方法,其作为一种高效的计算方法,受到了众多学者的重视,近年来,越来越多的群智能优化算法被提出,常见的算法有粒子群算法[1]、人工蜂群算法[2]、花授粉算法[3]、蚁群算法[4]、鸡群算法[5]等。
樽海鞘群算法(Salp Swarm Algorithm,SSA)[6]是Mirjalili等人于2017年提出的一种新型群智能优化算法,该算法启发于海洋动物樽海鞘的群体觅食行为,相比于粒子群算法、人工蜂群算法等其他常见的群智能优化算法,樽海鞘群算法的数学模型更加简单,寻优机制易于理解,且算法参数较少,更易实现。近年来SSA算法受到了国内外学者的广泛关注,并已被成功应用在了特征选择[7]、图像处理[8]等领域中。
虽然SSA在求解大多数优化问题时展现出了较强的寻优能力,但是,与其他常见智能优化算法一样,在求解高维复杂函数的优化问题时,SSA算法仍然存在着收敛速度慢、寻优精度低、易陷入局部最优等缺陷。为此,国内外学者从不同的角度出发对基本SSA算法进行了改进。文献[9]提出了一种混沌策略改进的SSA算法,利用混沌变量对算法中部分参数进行优化,大幅提升了算法的全局搜索和局部开发能力;文献[10]在基本SSA算法中引入了自适应变异策略,通过对种群中的最优解进行变异,有效提升了算法跳出局部最优的能力;文献[11]利用单纯形法对种群的初始分布进行了改良,增加了种群的多样性,提升了SSA算法的搜索能力;文献[12]提出了一种基于混沌初始化和精英质心拉伸机制的SSA算法,在增强了种群多样性的同时充分利用了当前群体中精英个体的信息,有效提升了算法的全局探索和局部开发能力。
虽然以上的改进算法通过不同的策略在一定程度上提升了SSA的算法性能,但是,由于SSA提出的时间较短,其存在的寻优效率低,易陷入局部最优等问题还没有得到最有效的解决,需要更进一步的研究。因此,本文针对基本SSA算法中存在的问题,从以下三个方面出发对其进行改进:(1)引入自适应变化的权重因子,充分发挥精英个体的引导作用,提升算法收敛速度与精度;(2)将黄金正弦算法作为一种优化算子引入到SSA中以改进种群中领导者的位置更新方式,利用黄金正弦算法对解空间较强的遍历能力扩大基本SSA算法的寻优区域,从而提升SSA算法的全局搜索能力;利用黄金正弦算法中引入了黄金分割数的系数可以对解空间中能产生优秀解的区域进行充分探索,并通过随机参数控制个体移动方向和距离,引导个体快速向食物源位置靠拢,增强了算法的局部开发能力;(3)融合邻域重心反向学习策略和柯西变异算子对当前最优个体进行随机扰动,扩大算法搜索区域,增强种群多样性,使算法在迭代后期具备跳出局部最优区域的能力。
1 樽海鞘群算法
在自然界中,樽海鞘在导航和觅食的过程中会聚集成链状并快速游动以捕获食物,SSA算法通过模拟樽海鞘的这种行为建立了一种樽海鞘链模型以求解优化问题。在SSA中,樽海鞘种群被分为了两部分:领导者和追随者,领导者位于链前端,它引领着追随者在D维空间中移动并寻找食物,其他个体为追随者,领导者的位置更新方式如下:
其中,表示第一个樽海鞘个体(领导者)在第j维的位置;F j表示食物源的第j维位置;ub j和lb j分别为第j维搜索空间的上界和下界,c2和c3为[0,1]区间内的随机数,它们分别决定了樽海鞘个体在第j维的移动步长以及移动方向,c1是SSA中用于平衡算法全局搜索和局部开发能力的重要参数,其定义如下:
其中,t为当前迭代次数,Tmax为最大迭代次数。
追随者的位置更新方式如下:
基本SSA算法通过式(1)和式(3)来对樽海鞘群的移动方式进行模拟,并依此解决实际优化问题。
2 樽海鞘群算法的改进
2.1 精英个体引导和自适应权重
在SSA算法中,追随者跟随其前一个个体进行位置更新,这种盲目的移动方式使得解的分布过于局限,严重影响了算法的寻优能力。文献[13]通过在追随者的位置更新公式中引入了自适应变化的惯性权重大幅提升了算法的搜索和开发能力,该算法中追随者的更新方式如下:
其中,w(t)为第t次迭代时的惯性权重,它随着迭代过程自适应的减小。观察式(4)可知,随着w的逐渐减小,追随者的移动受前一个个体的影响将会越来越小,在迭代后期,追随者将以自身的上一次迭代位置为导向进行局部寻优,虽然此策略在一定程度上提升了算法的寻优能力,但是,由上述分析可知,该方法仅考虑了追随者的先前个体对其移动的负面影响,而忽略了先前个体带来的正面影响,即当追随者的前一个个体的位置优于其当前位置时,该策略仍会削弱先前个体的影响权重,这可能会导致个体错过适应度更好的位置,因此,本文提出了一种结合精英个体引导和自适应权重的改进策略,该方法中,追随者的更新由式(5)、(6)完成:
其中,w(t)为自适应递减的权重因子,f(∗)为个体的适应度值。w s和w f别为权重因子的初始值和最终值,在本文算法中,权重因子w的取值应满足以下三个条件:
(1)在算法的迭代寻优过程中,追随者自身所处位置和其前一个樽海鞘个体位置应始终参与追随者的位置更新。
(2)权重因子应起到积极正向的引导作用。
(3)非精英个体所占权重应始终小于等于精英个体所占权重。
由条件(1)、(2)可知,权重因子应为正数,即
由条件(1)、(2)可知,权重因子应满足:
即:
由上述分析可知,权重因子的取值应满足w∈(0,0.5],相应的,权重因子初始值w s和最终值w f的取值也应当位于(0,0.5]区间内。
经过多次实验发现,当w s取0.5,w f取0.1时,算法的寻优结果最好。为了更直观地看出权重因子的变化过程,图1给出了w随迭代过程的变化曲线图。
图1 权重因子迭代曲线
由文献[14]可知,在迭代前期迅速递减的权重将会造成种群多样性的极速丧失,从而导致算法陷入早熟收敛,观察图1可知,本文算法中权重因子w在迭代前中期保持了较为平缓的递减速度,能够减缓种群多样性的丧失,降低算法陷入早熟收敛的几率;在迭代后期,权重因子递减速度加快,意味着非精英个体所占权重将快速减小,精英个体所占权重将随之迅速增大,追随者将在精英个体邻域内进行搜索,并使算法逐渐趋于收敛状态。
在AGHSSA中,追随者在进行位置更新时将会对其自身位置与其前一个樽海鞘的位置进行比较,从中选取适应度较优的个体作为精英个体,并为精英个体和非精英个体赋予相应的权重因子,由式(5)、(6)和图1可知,随着迭代过程的进行,w将从w s逐渐减小到w f,非精英个体所占的权重将随之逐渐减小,而精英个体所占的权重将逐渐增大,追随者将始终以精英个体为导向进行移动,从而降低其因盲目跟随前一个个体而错过较优位置的几率,提升算法的收敛速度与精度。
2.2 黄金正弦领导策略
黄金正弦算法(Golden Sine Algorithm,Golden-SA)[15]是Tanyildizi等人于2017年提出的一种新型元启发式算法,该算法构造了基于正弦函数的数学模型来求解优化问题。依据正弦函数与单位圆的关系,Golden-SA可以遍历正弦函数上的所有点即单位圆上的所有点,算法具有较强的全局搜索能力,且Golden-SA在其位置更新过程中引入了黄金分割数系数,使得算法在每次迭代过程中都会对能产生优秀解的区域进行充分搜索,从而加快了算法的收敛速度,算法具有较强的局部开发能力。Golden-SA的核心是其位置更新方式,在迭代过程中,算法先随机产生s个个体的位置,之后通过式(10)对每个个体进行位置更新:
观察SSA算法中领导者的位置更新公式(1)可知,领导者始终以食物源为导向移动,种群中领导者与追随者之间缺乏信息交流,算法难以对解空间进行充分的探索,从而导致SSA出现早熟收敛,寻优效率低下等问题,受文献[15]启发,本文将黄金正弦算法作为一种优化算子引入到SSA算法中以改变领导者移动方式,在AGHSSA中,领导者的位置更新由下式完成:
Golden-SA不是模拟自然现象而设计的,而是一种利用正弦函数和黄金分割数进行迭代寻优的数学模型,算法具有很好的可移植性,由式(11)可知,引入黄金正弦算子仅需要提供樽海鞘个体i自身和最优个体(食物源)F的位置信息,而这些信息在基本SSA算法中均已给出,因此,黄金正弦算法能够被较好地移植到SSA算法中。在本文算法中,个体i在每一次迭代时都会与当前最优个体通过式(11)进行信息交互以充分吸收自身与最优个体间的位置差信息,加快种群向最优个体位置靠拢的速度,引入黄金正弦领导策略可以有效弥补基本SSA算法中领导者与追随者个体缺乏信息交流的缺陷;此外,依据正弦函数和单位圆的关系,Golden-SA可以遍历单位圆上的所有点,算法的寻优区域更加全面,针对基本SSA算法中存在的全局寻优能力差和收敛精度低等缺点,黄金正弦领导策略的引入可以在一定程度上扩大基本SSA算法的寻优区域,使算法能够发现解空间中潜在的全局最优解,从而提升算法的全局搜索能力和收敛精度;同时,针对基本SSA算法中存在的局部开发能力差和收敛速度慢等问题,利用Golden-SA中引入了黄金分割数得到的系数可以逐步缩小算法的搜索空间,对能产生优质解的区域进行充分搜索,并通过参数R1和R2可以控制樽海鞘个体的位置更新距离和方向,快速引领个体向最优解位置靠近,从而减少算法寻优时间,提升了SSA算法的局部开发能力和收敛速度。综上所述,黄金正弦领导策略能够有效改善基本SSA算法中存在的不足,并且具备被移植到基本SSA算法中的条件,由此可以得出结论,黄金正弦领导策略适用于樽海鞘群算法。
2.3 邻域重心反向学习与柯西变异
在基本SSA中,最优个体即食物源的位置更新依赖于每次迭代时种群的更新,即在每次迭代后期,将由当前适应度最好的个体来替代最优个体,算法并未主动的对最优个体位置进行扰动,算法一旦陷入局部最优则难以跳出,且由2.1节分析可知,权重因子在迭代后期的迅速减小会造成种群多样性的极速丧失,也将导致算法陷入局部最优,为此,本文提出了一种融合邻域重心反向学习与柯西扰动的混合变异策略以对当前最优个体位置进行随机扰动,增强种群多样性,提升算法跳出局部最优的能力。
(1)邻域重心反向学习
反向学习是由Tizhoosh提出的一种数学模型[17],其主要思想是通过同时评估当前解和反向解来选出较优解加以使用,反向学习的定义如下:
定义1(反向学习)设xi是D维空间中的一个可行解,x i=(x i1,x i2,…,x iD),且x ij∈[a j,b j],j=(1,2,…,D),则其对应的反向解x̆i=(x̆i1,x̆i2,…,x̆iD)为:
传统的反向学习通过最大最小边界计算反向点来获取优质解,但是,该方法没有考虑到种群间的信息交流,为此,Rahnamayan等人提出了基于重心的反向点[18],其定义如下:
定义2(重心)设(x1,x2,…,x n)是D维空间中带有单位质量的n个点,则整体的重心M定义为:
即得:
定义3(重心反向点)若一个离散均匀的整体重心为M,则该整体中某一点x i的反向点定义为:
在此基础上,文献[19]提出了邻域重心反向解的概念,其通过引入收缩因子进一步拓展了反向搜索范围,有效提升了粒子群算法的寻优精度,邻域重心反向解定义如下:
定义4(邻域重心反向解)设x i是群体X中的第i个个体,M i是它所在邻域的重心,则邻域重心反向解定义为:
其中,mi表示个体i所在邻域内个体的数目,k为收缩因子,是[0,1]间均匀分布的随机数。
为了更好地引导个体寻优,本文将邻域重心反向学习融入到基本SSA中。
设当前迭代的最优解(食物源)位置为F(F=(F1,F2,…,F D)),邻域重心M为整个樽海鞘种群的重心,则其经邻域重心反向学习后的解F̆(F̆=(F̆1,F̆2,…,F̆D))的计算方式如下:
(2)柯西变异
柯西分布是一个数学期望不存在的连续型概率分布,当随机变量x满足其概率密度函数时,称x服从柯西分布。标准柯西分布的概率密度函数如下:
柯西分布具有原点处概率密度大、分布紧凑,两端密度小,分布较长的特点,通过柯西变异可以对个体产生更大的扰动,使得个体具备跳出局部最优的能力[20]。受文献[20]启发,本文将柯西变异算子引入到SSA中对食物源位置进行扰动,计算方式如下:
其中,F′为食物源经柯西变异后产生的新位置。
(3)混合变异
为提升算法寻优能力,AGHSSA将等概率的交替执行邻域重心反向学习策略和柯西扰动策略,动态地更新食物源位置,混合变异计算方式如下:
其中,R3为[0,1]区间内均匀分布的随机数,Fnew为食物源经混合变异后产生的新位置。
改进算法利用邻域重心反向学习策略生成反向解,拓展算法的搜索范围,使算法能够发现搜索空间中更多的潜在全局最优解,提升了算法寻优精度;利用柯西变异算子对食物源进行随机扰动,在一定程度上增强了种群多样性,降低了算法陷入局部最优的几率,但是,该策略并不能保证变异后的个体优于原个体,因此,为了进一步提升算法收敛精度,AGHSSA在混合变异完成后将依据贪婪原则决定是否更新食物源位置,即当变异后个体的适应度优于原个体时,才对食物源进行位置更新,否则保留原食物源位置信息。
2.4 算法描述
AGHSSA算法的具体执行步骤如下:
步骤1设置种群规模N,迭代次数Tmax,问题维度D,权重因子初始值w s,最终值w f。
步骤2初始化樽海鞘群,计算种群内每个个体的适应度值并排序,记录当前最优个体的位置及其适应度值,将其作为食物源。
步骤3更新领导者和追随者位置。生成随机数R1、R2,根据式(6)更新权重因子w,选取种群中前一半樽海鞘个体按式(11)更新领导者位置,另一半个体按式(5)更新追随者位置。
步骤4计算更新后种群的适应度值,并更新食物源位置。
步骤5混合变异。生成随机数k、R3,按式(14)计算种群重心M,通过式(20)对步骤4得到的解(食物源)进行变异产生一个新解,并用目标函数对得到的新解进行估,如果新解的适应度值比原解更好,则用新解代替原来的解,否则保留原解。
步骤6重复步骤3~5,如果达到最大迭代次数,则终止算法,输出全局最优解。
3 仿真实验结果与分析
3.1 仿真实验环境
本仿真实验基于Intel®CoreTMi5-9300H CPU,2.4 GHz主频以及Windows 10操作系统,仿真软件是Matlab R2018a。
3.2 测试函数
为了检验算法性能,本文选取了如表1所示的12个基准测试函数进行测试,其中F1~F6是单峰函数,用于检测算法的收敛速度,F7~F12是多峰函数,具有多个局部最优点,用于评估算法的搜索和开发能力。
3.3 实验参数设置
本文选取了基本樽海鞘群算法(SSA)[6]、文献[9]中的改进SSA算法(CSSA1)、文献[12]中的改进SSA算法(CESSA)、基本鲸鱼算法(WOA)[21]、基本蝴蝶优化算法(BOA)[22]与本文算法AGHSSA进行对比,为体现实验的公平性,将所有算法的种群规模设置为40,最大迭代次数为1 000,其余各算法的具体参数设置与相应的文献一致。另外,AGHSSA中两个参数w s与w f的不同取值将会对算法的寻优能力产生重大影响,由2.1节的分析已经得知,w s与w f应位于(0,0.5]区间内,由于权重因子w是递减的,因此w f应始终小于等于w s,且由文献[23]可知,当权重过小时有可能导致算法陷入局部最优,影响算法寻优效率,因此本文算法取权重因子变化步长为0.1。当w s取0.5时,w f可取0.1、0.2、0.3、0.4、0.5,将其记为第一组;当w s取0.4时,w f可取0.1、0.2、0.3、0.4,将其记为第二组;依此类推,当w s取0.3时,w f可取0.1、0.2、0.3,将其记为第三组;当w s取0.2时,w f可取0.1、0.2,将其记为第四组;当w s取0.1时,w f仅可取0.1,将其记为第五组;为比较不同的w s与w f取值对于算法性能的影响,将每一组w s与w f应用于AGHSSA算法,并在10维的测试函数F2、F4、F12上进行测试,记录不同权重取值的AGHSSA算法独立运行30次的寻优结果,比较其最优值,平均值和标准差,由于实验数据较多,文章篇幅有限,本文仅给出了每一组中收敛结果最好的w s与w f取值,实验结果如表2所示。
表1 基准测试函数
表2 w s与w f不同取值的AGHSSA算法寻优结果
由表2可以明显看出,对于所选的3个测试函数,当w s取0.5,w f取0.1时,算法的3项评估指标均为最优,以函数F12为例,w s取0.5,w f取0.1时,AGHSSA算法的最高收敛精度达到了1E-321,相较于其他组中不同w s与w f取值的算法提高了1~9个数量级,且其平均收敛精度达到了1E-287,相较于其他取值的AGHSSA算法提高了2~10个数量级。综上可知,当w s取0.5,w f取0.1时,算法的收敛性能最佳,因此,本文算法取权重因子初始值w s为0.5,最终值w f为0.1。
3.4 实验结果与分析
本文将从以下5个方面对AGHSSA算法进行性能评估:
(1)与基本SSA算法和其他新型群智能优化算法进行对比,验证本文算法的有效性。
(2)对不同的改进策略进行性能测试,验证各策略的有效性。
(3)与其他较新的改进SSA算法进行对比,证明本文算法具有一定的竞争力。
(4)对各算法进行秩和检验与MAE排序,进一步验证本文算法的可靠性和优越性。
(5)分析本文算法的时间复杂度以评估AGHSSA的运行时间成本。
3.4.1 与其他群智能优化算法的性能对比
为了验证本文算法的有效性,将AGHSSA与基本SSA算法和文献[21-22]中的新型群智能优化算法在表1所示的测试函数上(维度为30)进行对比,记录各算法独立运行30次结果的最优值、平均值和标准差,实验结果如表3所示,其中粗体部分表示寻优结果最好的算法。
表3 与新型智能优化算法对比(30维)
由表3可知,对于所选测试函数,本文算法的寻优能力明显优于其他3种对比算法。相比于基本SSA算法,AGHSSA在函数F1、F3、F5、F7、F8、F9、F11上的3项评估指标都达到了理论最优值0,算法寻优成功率达到了100%,而基本SSA算法在所有测试函数上的寻优精度均未能达到0,虽然在其他的5个测试函数上AGHSSA无法收敛到理论最优值,但其收敛结果仍然远优于基本SSA算法,以函数F2为例,基本SSA的平均收敛精度为1E-01,而AGHSSA的平均收敛精度则达到了1E-272,相较于SSA算法提升了271个数量级,说明了本文所提出的改进策略可以有效提升基本SSA算法的收敛精度;相比于较新的BOA、WOA算法,AGHSSA仍然具有更好的寻优能力。对于BOA、WOA算法能够收敛到理论最优值的函数F5、F7、F9、F11而言,AGHSSA也能够寻找到理论最优值,对于它们无法收敛到理论最优值的函数F1、F3、F8,AGHSSA仍可以收敛到理论最优值,并且在其他测试函数上,AGHSSA均取得了最优的收敛结果,例如对于函数F12,AGHSSA相比于BOA、WOA算法分别提升了254、164个平均收敛精度,算法性能提升显著。除此之外,AGHSSA在除F6以外的所有测试函数上的标准差均为0,而SSA算法在所有函数上的标准差均不为0,证明了所提出的改进策略能够大幅提升SSA算法的稳定性。
通过以上分析可知,本文算法在低维函数上展现出了较强的寻优能力,但是一般算法在求解高维复杂函数问题时极易失效,而大部分实际优化问题都是大规模的复杂优化问题,因此,为了证明本文算法的实用性,将AGHSSA与基本BOA、WOA、SSA算法在200维的测试函数上进行对比,实验结果如表4所示,因F7是固定低维函数,故不对其进行高维测试。
表4 与其他智能优化算法对比(200维)
对比表3、表4信息可知,随着函数维度的上升,WOA算法在大部分测试函数上的收敛精度均有着不同程度的波动,BOA算法比较稳定,但其在200维的函数F2上失效,而基本SSA算法的寻优精度则有着明显的下降,以函数F1为例,SSA的30维平均收敛精度为1E-09,当维度上升到200时,其精度锐减到了1E+03,说明基本SSA算法在高维函数上的寻优能力较差。AGHSSA算法在求解高维测试函数的优化问题时仍然表现出了良好的寻优能力,对于函数F1、F3、F5、F8、F9、F11,AGHSSA的3项评估指标仍然达到了0,虽然在F2、F4、F12上,AGHSSA的平均收敛精度有着略微的下降,但是对于另外的8个测试函数,其寻优精度和标准差没有随着维度的改变而改变,可知本文算法具有较强的鲁棒性。
为了更直接地观察出AGHSSA的收敛趋势,图2给出了AGHSSA和对比算法在测试函数F1、F2、F3、F5、F8、F9、F10、F11上的收敛曲线图,为便于观察,本文实验对适应度值取以10为底的对数。观察图2可知,基本BOA算法和SSA算法的收敛速度十分缓慢,且在迭代过程中两者均出现了不同程度的停滞,极易陷入局部最优值。由图2(a)~(d)所示的单峰函数F1、F2、F3、F5的收敛曲线可以看出,AGHSSA的收敛曲线几乎是线性递减的,极少出现停滞,由此认为本文所提出的改进策略可以有效提升算法收敛速度;观察多峰函数F8、F9、F10、F11的收敛曲线(图2(e)~(h))可知,AGHSSA的收敛曲线下降很快且在函数F10上的曲线有拐点出现,证明所提出的改进策略可以有效提升SSA算法的全局搜索和局部开发能力,并且具备较强的跳出局部最优的能力。此外,不论是对于单峰函数还是多峰函数优化问题,AGHSSA的收敛效率都是最高的,以函数F11为例,如图2(h)所示,AGHSSA在第20次迭代左右就已经收敛到了理论最优值,而基本BOA算法在迭代次数达到最大时仍然没有达到收敛状态,SSA算法虽然能够达到收敛状态,但它的收敛精度远低于AGHSSA算法,优化效果较好的WOA算法虽然能够收敛到理论最优值,但其收敛于第300代左右,是AGHSSA的15倍。
综上可知,本文所提出的改进策略可以显著提升SSA算法的寻优能力,在求解高维问题时仍然有着不俗的寻优表现,算法具有一定实用价值,且相比于其他较新的群智能优化算法仍然具有较强的竞争力。
3.4.2 验证改进策略的有效性
为比较不同改进策略对算法性能的影响,将AGHSSA算法与仅采用精英引导自适应权重策略改进的SSA算法(SSA-1),仅采用黄金正弦领导策略改进的算法(SSA-2)以及仅采用混合邻域重心反向学习与柯西变异策略改进的算法(SSA-3)在表1所示的测试函数上进行对比,本节实验中的公有参数设置与3.2节完全相同,表5为对比实验结果,图3为三种改进策略在单峰函数F2、F3,多峰函数F8、F10上的收敛曲线图。
图2 算法收敛曲线
由表5和图3可知,在这三种改进策略中,采用黄金正弦领导策略的SSA-2对算法的性能提升最大,采用精英引导自适应权重策略的SSA-1次之,SSA-3的寻优精度虽然提升不是很大,但由图3(d)可知,在求解多峰函数F10的优化问题时,其收敛曲线在第300次迭代左右出现了转折,图4给出了SSA、SSA-3在函数F10上第300次迭代时的个体分布图,因30维空间难以展示,本文仅给出了二维空间中SSA和SSA-3算法的个体分布图,分别如图4(a)、图4(b)所示,由图4(a)和图4(b)可以明显看出,在第300次迭代时,引入了混合重心反向学习和柯西变异策略的SSA-3算法的种群分布相比于基本SSA算法范围更广,分布更均匀,说明了混合变异策略可以有效增强种群的多样性,并且能够在一定程度上提升算法跳出局部最优的能力。总体来看,相比于基本SSA算法,三种改进策略算法的收敛精度均有着不同程度的提升,说明了改进策略是有效的。然而,尽管这三种改进策略均在一定程度上提升了SSA的寻优能力,但是,仅采用单一策略改进的SSA算法与结合了三种改进策略的AGHSSA算法相比仍有较大差距。以函数F12和F10为例,AGHSSA算法在函数F12上的平均收敛精度相较于SSA-1、SSA-2、SSA-3分别提升了242、222、260个数量级,并且观察图3(d)可知,在求解函数F10的优化问题时,AGHSSA在第80次迭代左右就已经收敛,而三种改进策略中收敛效果最好的SSA-2收敛于第360代左右,可知AGHSSA的收敛速度与精度都要优于仅使用单一策略改进的SSA算法,进而验证了本文采用混合策略的合理性。
3.4.3 与其他改进算法的对比
为比较本文算法与其他改进算法的性能优劣,将AGHSSA与较新的改进樽海鞘群算法CSSA1[9]和CESSA[12]进行对比,本节实验中,表1中除F7以外的所有测试函数的维度设置为10,种群规模为50,最大迭代次数为500,与参考文献相同,CSSA1和CESSA的数据直接引用于文献[9]和文献[12],如表6所示。
表5 不同改进策略对比
图3 不同改进策略算法收敛曲线
图4 SSA和SSA-3算法个体分布图
表6 与其他改进SSA算法对比
由表6可知,CESSA作为较新的改进SSA算法,其在所有测试函数上的收敛结果均优于CSSA1算法,然而,对于CESSA算法能够收敛到理论最优值的函数F7、F9、F11而言,本文算法也能取得同样的收敛结果,对于CESSA无法收敛到0的函数F5,本文算法仍然能够寻找到理论最优值,此外,除了在函数F6上,AGHSSA的寻优结果要略差于CESSA之外,本文算法在其他测试函数上的收敛结果都要远优于对比算法,以函数F1为例,AGHSSA的平均收敛精度相较于CESSA、CSSA1分别提升了246、262个数量级,且AGHSSA在除F2、F4、F6、F12以外的所有测试函数上的标准差均为0,而对比算法中仅CESSA在函数F7、F9、F11上的标准差达到了0,可知本文算法的稳定性同样优于对比算法。由此可以得出结论,相比于部分新型改进SSA算法,本文算法仍具有较强的竞争优势。
3.4.4 统计检验与MAE排序
算法运行30次的结果通常不会与每一次的实验结果进行比较,仅以最优值、平均值和标准差作为评价依据是不充分的,为了验证本文算法的可靠性和优越性,在本节中对AGHSSA、BOA、WOA、SSA算法在表1所示的12个测试函数上进行了显著性水平为5%的Wilcoxon秩和检验,本节实验参数设置与3.4.1小节相同,表7记录了各算法秩和检验计算的p值,如最佳算法是AGHSSA,则在AGHSSA/BOA、AGHSSA/WOA、AGHSSA/SSA之间进行成对比较,因最佳算法无法与自身进行比较,故将最佳算法标记为N/A,表示“不适用”,说明相应的算法在秩和检验过程中没有统计数据与自身比较。当秩和检验的p值小于0.05时,说明两种对比算法具有显著性差异,否则说明两种算法的寻优结果在整体上是相同的[24]。
观察表7可知,AGHSSA在所有秩和检验过程中计算的p值均小于0.05,其中N/A是因为对比算法和AGHSSA在函数F5、F9、F11上的30次寻优结果均为0,所以该统计检验不适用,说明本文算法的优越性在统计上是显著的,即认为AGHSSA相对于其他对比算法具有更好的寻优能力。
表7 Wilcoxon秩和检验结果
文献[25]指出平均绝对误差(Mean Absolute Error,MAE)是一种有效的性能指标,可用于对优化算法进行排序。为了进一步评估算法性能,本文对各算法基于表1的测试函数进行了MAE排序,MAE计算公式如下:
其中,mi为算法取得的最优解的平均值,oi为相应的基准测试函数的理论最优值,N f为基准测试函数个数。各算法的MAE排序如表8所示。
表8 算法MAE排名
由表8可知,AGHSSA算法具有最小的MAE,算法排名第1,从而进一步表明了本文算法的优越性。
3.4.5 改进算法的时间复杂度分析
设樽海鞘种群规模为N,迭代次数最大为Tmax,问题维度为D,依据2.4节对AGHSSA算法的描述对改进算法的时间复杂度进行分析,算法随机初始化种群和找到当前最优位置(食物源)的时间复杂度均为O(N⋅D),挑选精英个体的时间复杂度为O(N⋅D),引入自适应权重因子对追随者进行位置更新的时间复杂度为O(Tmax⋅N⋅D),引入黄金正弦算法对领导者进行位置更新的时间复杂度为O(N⋅D),融合邻域重心反向学习和柯西变异对食物源位置进行扰动的时间复杂度为O(N⋅D),AGHSSA算法的总的时间复杂度为O(Tmax⋅N⋅D),与基本SSA算法的时间复杂度相同,并未增加计算负担。
综上所述,本文所提出的结合三种改进策略的AGHSSA算法能够在不增加算法时间复杂度的情况下显著提升基本SSA算法的寻优能力,并且无论对于单峰或多峰,低维或高维函数的优化问题,本文算法均取得了最优的收敛结果,与部分新型群智能优化算法和改进SSA算法相比,仍然具有较强的竞争力。
4 结束语
本文针对基本SSA算法在求解高维复杂函数时存在的寻优效率低,易陷入局部最优等问题,提出了一种融合黄金正弦混合变异的自适应樽海鞘群优化算法。改进算法在基本SSA算法的追随者位置更新处引入了精英引导和自适应变化的权重的思想,通过对精英个体和非精英个体赋予不同的权重因子,使精英个体能够充分发挥自身的引导作用,从而避免出现追随者因盲目跟随先前个体而错过更好位置的情况,提升了算法的寻优速度与精度;引入黄金正弦算法对领导者的位置更新方式进行优化,利用黄金正弦算法较强的遍历能力和寻优能力提升了樽海鞘群算法的全局搜索和局部开发能力;引入混合邻域重心反向学习和柯西变异策略对食物源进行动态随机扰动,增强了算法在迭代后期跳出局部最优的能力。将本文算法与三种新型群智能优化算法和不同改进策略的算法以及两种较新的改进的SSA算法在12个测试函数上进行实验对比,结果表明,本文所提出的改进策略能够在不增加算法时间复杂度的情况下显著提升算法性能,与其他新型群智能优化算法和改进算法相比仍然具有一定的竞争优势,且本文算法在求解低维和高维函数、单峰函数和多峰函数优化问题时均表现出了良好的寻优性能,具有一定的实际应用价值。接下来的研究重点是将所提出的算法应用到实际工程领域中。