李姗鸿,靳储蔚,张达敏+,张琳娜
(1.贵州大学 大数据与信息工程学院,贵阳 贵州 550025;2.贵州大学 机械工程学院,贵阳 贵州 550025)
近年来,学者们提出了一系列新的群智能优化算法[1],如鲸鱼优化算法(WOA)[2]、粒子群优化算法(PSO)[3]、蝴蝶优化算法(BOA)[4]、蜻蜓优化算法(DA)[5]、樽海鞘群优化算法(SSA)等[6],这些算法有着结构简单,运行时间短,所需参数少等优点;受数学公式所启发的算法也有较好的效果,如正余弦优化算法(SCA)[7]等,其能够作为算子移植到其它算法中是这类算法最大的优势。
针对群智能优化算法存在种群多样性低和收敛速度得不到保证等问题,众多学者针对群智能算法进行了大量的改进研究。靳储蔚等[8]为解决飞蛾扑火算法在收敛速度慢、容易陷入局部最优等问题,提出了一种全局扰动和互利因子作用的飞蛾扑火优化算法;林杰等[9]为解决针对蝗虫优化算法全局寻优能力不足等问题,提出融合正弦余弦和变异选择的蝗虫优化算法;王光等[10]为提高飞蛾扑火算法的优化性能,提出了一种基于折射原理反向学习的飞蛾扑火算法;刘景森等[11]为解决鲸鱼算法求解稳定性不强、收敛速度有时较慢、易陷入局部极值等缺点,提出一种具有轮盘赌选择和二次插值择优机制的双种群交互演化鲸鱼算法。野马优化算法[12](wild horse optimizer)是Naruei等于2021年所提出的一种群智能优化算法,由于WHO提出时间较短,针对该算法的改进策略相对较少,以上文献将为WHO的改进策略提供理论支撑。针对原始WHO算法存在的不足,提出了一种混合策略的野马优化算法。首先,在马驹位置更新公式中引入基于饥饿游戏的惯性权重,更好平衡算法的全局搜索与局部搜索能力;其次,在放牧阶段引入折射镜像学习策略,增加种群的多样性,提高算法的求解精度;最后,利用混合黄金正弦与飞蛾扑火算子,对野马种群中种马的最佳位置进行扰动,使算法跳出局部最优,使得IWHO有更优秀的最优解。
野马优化算法(wild horse optimizer,WHO)的灵感来自于野马的社会生活行为和繁殖行为。野马分为种马、母马和马驹3类,种马是群体中的领导者,决定野马种群在放牧时的移动方向和速度;母马和马驹是追随者,主要负责放牧。野马优化算法主要是模拟野马群的放牧行为、交配行为和团队领导行为进行迭代寻优。
母马和马驹通常大多数时间都在群体周围放牧,其将种马视为放牧区的中心,围绕着种马进行搜索,其位置更新公式为
Xi(t+1)=2Zcos(2πRZ)×(Si(t)-Xi(t))+Si(t)
(1)
式中:Xi(t) 是追随者(马驹或母马)的当前位置,Si(t) 是种马的位置,R是[-2,2]之间的随机数,决定追随者与领导者之间的角度,Z自适应机制,表达式如下
(2)
(3)
(4)
式中:t是当前迭代次数,Tmax是算法的最大迭代次数。
假设离开i组的雄性马驹和离开j组的雌性马驹成熟后进行交配,生下的马驹必须离开其家庭种群,加入其它的种群k。 所有的马群都会重复这种防止近亲交配的循环,表达式如下
(5)
领导者带领团队寻找合适的栖息地,假设当前栖息地已经被其它种群占领,则该群体必须离开此地,继续搜索寻找其它栖息地,其位置更新公式如下
(6)
式中:Si(t+1) 是种群i领导者的更新位置,W是栖息地的位置,Si(t) 是种群i领导者的当前位置,Z是由式(2)计算的自适应机制,R4是[0,1]之间的随机数。
WHO在算法后期阶段,根据适应度选择领导者,若成员的适应度优于领导者,则两者互换身份,表达式如下
(7)
式中:f是适应度函数,Si是种群i领导者的位置,Xi是种群成员的位置,f(Xi) 是成员Xi的适应度值,f(Si)同理。
算法的初始值对算法的效果影响非常大,若初始值接近全局最优解,则算法的最终效果会很好[13]。大多数群智能优化算法采用的是随机初始化种群,这种初始化存在着种群分布不均匀、种群多样性低和种群质量不高等问题[14]。为了避免这一问题,本文在算法种群初始化阶段中,根据马驹的行为特征和种马的位置信息,利用Tent混沌映射[15]对野马种群进行初始化,引导马驹种群有序的围绕在种马周围,其表达式如下
(8)
式中:μ为混沌参数,本文μ的取值为2,xn代表第n个混沌序列的序号,xn+1同理。因为引入的Tent混沌映射产生的迭代序列不仅存在小周期,还存在不稳定周期点,会导致个体在边界处重叠,使得种群分布不够均匀,故引入饥饿游戏搜索算法对Tent混沌映射进行改进,其中ω和λ的表达式如下
(9)
(10)
式中:ωmin为最小惯性权重,本文取值为0.2,ωmax为最大惯性权重,本文取值为0.9,ω和λ为随着迭代次数变化而随之变化的变量,t是当前迭代次数,Tmax是算法的最大迭代次数。
众多学者研究了非线性惯性权重因子对算法全局搜索与局部开发的影响,在算法前期权重因子缓慢减小使得其有很强的全局搜索能力,更快的达到收敛精度,在算法后期,较小的权重因子能够保证算法全局搜索能力的同时避免其陷入局部最优,基于饥饿游戏搜索算法改进的Tent惯性权重因子的变化趋势如图1所示。
图1 惯性权重因子变化
在传统的野马优化算法中,野马的生成位置由来自不同种群的父母位置决定,所以马驹的生成位置较固定且多样性不足,易使算法陷入局部最优位置,不利于进行全局搜索,故本文对放牧阶段中马驹的位置公式进行了改进,其表达式为
Xi(t+1)=ω×λ×(2Zcos(2πRZ)×
(Si(t)-Xi(t))+Si(t))
(11)
针对群智能算法存在的收敛速度慢的问题,众多学者利用了反向学习策略[16]对算法进行优化,该方法能够生成可行解的反向解,扩大算法的搜索范围,并能够在反向解的评价过程中选择更优的候选解,因此能够加快算法的收敛速度。反向学习[17]是寻找已知解对应的反向解,然后对两个解进行比较,选取更优解,镜像学习[18]是利用光的镜像原理,对种群个体进行突变,从根源上改变种群个体。折射镜像学习策略(refraction mirror-learning,RML)的定义请参见文献[17],其原理图如图2所示。
图2 折射镜像学习
若在自由空间中,假设入射角与法线的夹角为θ1, 出射角与法线的夹角为θ2, 入射光线的长度为l1, 出射光线的长度为l2, 由数学定理可得
n0sin(θ1)=n1sin(θ2)
(12)
式中:n0=1为自由空间的折射率,n1>1为介质空间的折射率,由数学几何关系可得
(13)
(14)
假设入射光线的长度l1与出射光线的长度l2满足表达式:l1/l2=k, 由折射定律可得
(15)
(16)
取k=n1=1时,可得
(17)
折射镜像学习策略能够生成可行解的反向解,能够解决野马在放牧阶段马驹会密集于一个位置的问题,野马个体会根据生成随机数的大小选择镜像学习策略或折射镜象学习策略进行位置的更新,在一定概率下野马个体会回到其所生成反向解的位置进行探索,促进个体历史最有位置的更新,两种策略相互交替,有效改善了算法的收敛速度和全局寻优能力,其表达式如下
(18)
(19)
式中:AP为选择概率,R4是[0,1]之间的随机数,由文献[17]的实验可知,AP=0.35时寻优效果最好。
传统的野马优化算法是以种马为中心,马驹围绕种马进行放牧,这种由种马带领马驹的探索方式虽然具有一定的局部搜索能力,但是每组只有一匹种马,由一匹种马带领队内的所有马驹进行放牧比较容易陷入局部最优解,导致其收敛精度不够。受到文献[18]启发,本文根据马驹数量的增加,在算法的团队领导阶段引入了混合黄金正弦与飞蛾扑火算子,有助于算法在迭代后期跳出局部最优值,以获得更好的收敛效果。混合黄金正弦与飞蛾扑火算子的种马位置更新公式如下
(20)
式中:Si(t) 是种马的当前位置;r1是 [0,2π] 之间的随机数;r2是 [0,π] 之间的随机数;b是当前迭代领导者与栖息地的距离;W为栖息地的位置;r3和r4的表达式如下
(21)
(22)
IWHO的伪代码如下:
算法1:IWHO算法
Begin
设置算法参数:种群大小n, 最大迭代次数Tmax, 种马比例PS, 交叉概率PC, 惯性权重ωmax和ωmin, 选择阈值概率AP。
利用Tent映射初始化种群,计算每个野马个体的适应度值,创建野马种群并选出种马。
通过式(4)计算TDR的值,式(2)计算Z的值。
whilet fori=1 tondo ifrand>PC 由式(11)更新马驹的位置。 else 由式(5)更新马驹位置。 end if ifrand 由(18)更新马驹位置。 else 由式(19)更新马驹位置, 根据R4的值由式(20)再次更新种马位置。 end if if cost(Si(t+1)) Si(t)←Si(t+1) end if 根据适应度对分组的马驹进行排序,选择适应度最小的马驹。 if cost(Xi) 由式(7)进行种马与马驹的交换。 end if end for 计算种群个体的适应度值,更新栖息位置。 end while end IWHO算法首先使用2.1节中基于饥饿游戏搜索算法改进的Tent惯性权重,利用Tent映射初始化种群,产生较均匀的初始种群,根据式(11)更新马驹位置,增强种群多样性;然后根据第2.2节中的折射镜像学习策略,选择式(18)或式(19)再次更新马驹的位置,提高算法的收敛速度;最后根据第2.3节式(20)的位置公式更新种马的位置,避免算法陷入局部最优。本文提出的混合策略改进的野马优化算法的步骤如算法1所示,其流程如图3所示。 图3 IWHO算法流程 本文为验证IWHO算法的有效性和改进策略的优越性,将优化后的野马优化算法(IWHO)与传统野马优化算法(WHO)[11]、蝴蝶优化算法(BOA)[4]、粒子群优化算法(PSO)[3]、正余弦优化算法(SCA)[7]、樽海鞘群优化算法(SSA)[6]、鲸鱼优化算法(WOA)[2]、蜻蜓优化算法(DA)[5]进行了对比实验。本文引入10个标准测试函数,如表1所示,F1-F7均为单峰函数,每个测试函数都只有一个最优值,用以检验IWHO算法的寻优速度和收敛精度;F8-F10则为多峰函数,每个测试函数都有多个局部最优值,用以检验IWHO算法跳出局部最优的能力,对算法的全局探索能力有很好的评估作用。 表1 测试函数 实验选取野马种群的数量为30,最大迭代次数为1000。各对比算法的基本参数设置见表2。本文为验证IWHO算法的改进效果,同表2的群智能算法进行了比较,实验统计30次运行的结果,其具体实验数据见表3。 表2 算法参数 表3 不同算法的结果比较 表3是对表1的12个函数进行有效定量分析的结果,记录了算法的平均值、最优值、最差值、标准差和每次独立运行的平均耗时。可以从表3明显看出,对于求解单峰函数F1、F2、F3和F4,IWHO算法的求解精度都可以达到理想的最优值,寻优能力明显强于与其对比的群智能算法,并且在独立运行30次实验后,每一次的结果都是最优值,标准差为0,说明IWHO不仅有很强的寻优能力还有极强的稳定性,其性能远超过其它的传统群智能算法;对于F5函数,虽然IWHO没有找到函数的最优解,但从表3可明显看出,其寻优时间远小于其它对比算法,说明引入的策略提高了算法的收敛速度。对于单峰函数F6和F7同样也没有找到函数最优值,但与其它算法相比,其寻优精度最高;对于多峰函数F9,虽然IWHO算法没有搜索到函数的最优值,但其标准差为0,相比于其它算法,其有极强的鲁棒性;在F8与F10多峰函数中,IWHO算法能够不断跳出局部最优,找到测试函数的最优值,且独立运行30次实验后标准差仍为0;因此,IWHO算法在求解各测试函数的过程中都具有杰出的性能。 图4给出了8个基准函数的平均收敛曲线,由图4(a)~图4(d)可知,在迭代前期,IWHO算法在一段时间内收敛曲线下降速度很快,表明引入的基于饥饿游戏搜索算法改进的Tent惯性权重能够增加种群多样性,生成均匀和较优的初始值,使算法不断进行迭代寻优并迅速找到了理论最优值,收敛速度较快。图4(e)和图4(g)的曲线有多处拐点,说明本文提出的混合黄金正弦与飞蛾扑火算子策略能够使得算法跳出局部最优,算法的收敛精度得到提升。图4(f)和图4(h)的IWHO算法的曲线虽然和其它两种群智能算法的收敛精度相差不大,但从曲线可明显的看出IWHO算法的收敛速度较其它算法有很大的优势,在迭代前期就迅速收敛,说明本文提出的折射镜像学习策略根据可行解产生相应反向解的策略大大提升了算法的收敛速度。 图4 不同算法的平均收敛曲线 Wilcoxon秩和检验不只是针对上述数据的平均值和标准差,能够检测更为复杂的数据分布,并与算法多次运行的数据进行对比,公平体现IWHO算法的优越性。本文进行Wilcoxon秩和检验实验设定显著差异在5%,判断IWHO算法在某些特定问题上是否有显著的性能提升。表4列出了所有测试函数中IWHO算法与其它算法秩和检验的P值。其中,每个数据代表IWHO算法与该数据对应的算法在对应的测试函数中相比的P值,当P值低于该显著性水平时,判定两个算法存在显著差异,反之则无显著差异。S为+表明IWHO算法显著性高于其它算法IWHO的结果有明显改善。秩和检验是基于30次独立运行进行的,每次运行最多进行1000次迭代。可从表4明显看出,与其它算法的对比中,12个函数中,无论是单峰函数还是多峰函数的检验结果P值全部小于5%,结果判断S全为+,说明IWHO算法具有显著性的优势,还验证了IWHO在统计上的优越性。 表4 Wilcoxon秩和检验的值 该问题是一种经典工程优化问题,该问题的主要目的是优化拉伸或压缩弹簧的重量。这个问题包含4个约束条件和3个用于计算权重的变量:线径d、平均线圈直径D和活动线圈数P,本文中讲3个变量表示为x=(x1,x2,x3), 对应 (d,D,N)。 问题的图示如图5所示,其数学模型如下 (23) 图5 拉/压弹簧设计 约束条件为 (24) (25) (26) 0.05≤x1≤2,0.25≤x2≤1.3,2≤x3≤15 (27) 实验结果如表5所示,IWHO算法在拉/压弹簧工程问题上有较好的表现,在独立运行30次实验后,平均值和最优值几乎相同,只有6×10-6的差别,且均优于对比算法,表明算法具有较好的稳定性和寻优性能。f(x) 通过IWHO算法优化之后,误差较小,且每次运行得到的结果都在最优值范围的附近,通过优化能够在更小搜索空间中也有较好的搜索能力。 针对传统WHO算法的缺点,首先在马驹位置更新公式中引入基于饥饿游戏的Tent惯性权重,能够增加种群的多样性,并更好平衡算法的全局搜索与局部搜索能力;其次,在放牧阶段引入折射镜像学习策略(RML),利用折射镜像学习生成可行解的反向解,加快算法的求解速度;最后,利用混合黄金正弦与飞蛾扑火算子,使算法跳出局部最优。综合实验结果表明,IWHO算法既具有良好的全局以及局部寻优能力,又具有较好的鲁棒性。最后验证IWHO算法在解决工程问题上的有效性。在接下来的研究中,会将改进的算法应用于车联网通信中以及大规模的复杂问题,以进一步验证算法的性能。3 实验仿真及分析
3.1 测试函数和参数设置
3.2 测试函数收敛曲线
3.3 Wilcoxon秩和检验
3.4 拉/压弹簧设计问题
4 结束语