多策略改进的自适应动态鲸鱼优化算法

2022-10-01 03:47王梓辰窦震海司书千
计算机工程与设计 2022年9期
关键词:鲸鱼惯性全局

王梓辰,窦震海+,董 军,司书千,王 晨,2

(1.山东理工大学 电气与电子工程学院,山东 淄博 255000;2.国家电网聊城市供电公司 营销部,山东 聊城 252000)

0 引 言

群体智能算法[1-3]因其独有的搜索机制在求解优化问题方面展现出其高效性,已成为该领域的一种常用方法,鲸鱼优化算法[4](whale optimization algorithm,WOA)因独特搜索机制和简单结构在解决问题时有突出优势,已应用于电网优化[5,6]等领域,但算法依旧难以逃离收敛精度低、全局搜索能力差、易于陷入局部最优等缺陷,自算法提出以来学者就其缺陷做出以下几类改进。

一类通过改进初始化与收敛因子优化算法,HUI Chen等[7]利用Logistic混沌初始化提高算法收敛速度,基于对立学习方法平衡全局和局部开发;王涛等[8]采用Logistic映射初始化并对收敛因子非线性改进提高收敛精度;刘琨等[9]采用精英反向学习初始化并用Γ函数改进收敛因子。

仅采用第一类改进效果较差,文献中出现位置公式和惯性权重的改进,冯文涛等[10]在惯性权重基础上,采用阿基米德螺线替代对数螺旋增强全局搜索;刘磊等[11]采用变螺旋机制和惯性权重平衡全局和局部搜索;于俊洋等[12]改进收敛因子和局部扰动提升了收敛性。

部分文献在上述基础上引入其它策略,刘亮等[13]采用自适应概率阈值和小生境寻优平衡全局和局部搜索;徐航等[14]引入自适应概率阈值和混合反向学习提升收敛效果;郭振洲等[15]引入柯西变异提高全局搜索能力。

以上改进对收敛性虽有一定提升,但仍有待提高,本文就WOA收敛精度低、易于陷入局部最优等问题提出了一种多策略改进的动态鲸鱼优化算法。首先从初始解的质量考虑,采用立方混沌映射提高遍历性。其次,在引入惯性权重、改进收敛因子以平衡全局和局部搜索基础上提升收敛性。通过引入变螺旋系数对公式进行改进,提升其全局搜索能力。最后,针对算法没有跳出局部最优的机制引入了广义反向学习机制。

1 鲸鱼优化算法

鲸鱼算法是一种区别于其它算法的元启发式算法,其算法搜索机制区别于其它算法在于采用随机搜索或最佳个体模拟种群捕猎行为,算法主要分为3个阶段:包围捕食、泡网攻击和搜索觅食3种,如下文所述,下文所述公式具体参见文献[4]。

1.1 包围捕食

WOA算法假设当前最佳候选解为种群中最优个体。在定义了最佳候选解之后,种群将按式(1)向最优个体靠拢

X(t+1)=X*(t)-A·D

(1)

D=|C·X*(t)-X(t)|

(2)

A=2ar1-a

(3)

C=2r2

(4)

(5)

式中:r1,r2为[0,1]之间随机数,a为由2到0线性下降的收敛因子,Max_iter表示最大迭代次数。

1.2 泡网攻击

收缩包围:通过减小式(5)中收敛因子a得以实现,a的值随迭代次数的增大而减小,使得鲸鱼个体不断更新位置系数接近猎物完成包围。

螺旋更新:鲸鱼个体在搜索猎物时采用螺旋上升的策略调整与猎物的位置,其数学模型如式(6)所示

X(t+1)=D′·ebl·cos(2πl)+X*(t)

(6)

D′=|X*(t)-X(t)|

(7)

式中:D′表示猎物与个体之间的距离,b为定义螺旋搜索形状的常数,l是 [-1,1] 的随机数。

当 |A|≤1时采用泡网攻击时,在执行收缩包围和螺旋更新时各占50%的概率,当p<0.5时执行收缩包围,反之执行螺旋更新,其数学模型如式(8)所示

(8)

1.3 搜索觅食

与收缩包围阶段相反,当 |A|>1时在种群中随机选取一个个体寻优,不再追随参考鲸鱼,数学模型如下所示

X(t+1)=Xrand(t)-A·D

(9)

D=|C·Xrand(t)-X(t)|

(10)

式中:Xrand为随机选择的个体的位置向量。

2 多策略改进的鲸鱼算法

2.1 基于立方混沌映射初始化种群

初始解的位置在算法中起至关重要的作用,其直接影响算法的寻优效果和收敛性。算法初始化时,个体位置采用伪随机数生成,虽然这样可以使整个种群分布在解空间中,但会不可避免的引起种群的分布不均,造成部分区域过于密集,因此引入混沌理论进行提升,由于其伪随机性、非重复性和遍历性,使种群在整个搜索空间中得以均匀分布,采用立方混沌映射初始化种群,如式(11)所示

x(n+1)=4x(n)3-3x(n)
-1≤x(n)≤1,n=1,2,3…

(11)

混沌初始化步骤如下:

(1)在搜索空间中随机生成一个[-1,1]的d维个体;

(2)将生成的第一个个体按式(11)进行迭代生成其它个体混沌序列;

(3)所有鲸鱼个体都迭代完成后,按照式(12)映射到原搜索空间

(12)

式中:ud,ld为每个个体每个维度的上下限,Xd为映射到解空间的混沌变量。

2.2 基于正余弦变化的自适应惯性权重

通过对粒子群算法改进方法分析发现,合理设计惯性权重提高算法的收敛速度与精度,本文将自适应惯性权重引入WOA。引入的自适应惯性权重随迭代次数变化动态调整,提升了算法的搜索效率,所提自适应惯性权重策略如式(13)所示

(13)

算法初期初始值相对较大,有较强的全局搜索能力,因其非线性衰减的特性使得前期以较快的速度收敛到较高精度,算法后期鲸鱼个体进入螺旋更新阶段,ω在迭代过程中以非线性的趋势减小,不断靠近目标,提升局部搜索能力,使得算法不断逼近最优解。在平衡算法的局部搜索与全局寻优的同时提升算法寻优速度。式中的k为惯性权重系数,使其以较小的值开始衰减,避免前期衰减过快使算法陷入局部最优,后期进入螺旋更新阶段,鲸鱼螺旋靠近猎物,采用较小的权重值可增强局部寻优能力,引入ω后的位置更新公式如下

X(t+1)=ω·X*(t)-A·D

(14)

X(t+1)=ω·D′·ebl·cos(2πl)+X*(t)

(15)

X(t+1)=ω·Xrand(t)-A·D

(16)

2.3 非线性收敛因子

通过对鲸鱼优化算法进行分析发现,收敛因子a在平衡算法的全局搜索及局部搜索的过程中起着至关重要,但标准WOA算法中为线性收敛,而WOA搜索时为非线性的寻优策略,并不能很好调节全局搜索能力和局部开发能力,且在局部搜索时容易陷入局部最优,为此,本文在引入ω后对收敛因子a改进,使其随迭代次数非线性收敛,前期以较快速度衰减,收敛到最优解的搜索范围,后期衰减速度减慢,幅值变化减小增强局部搜索,提升算法收敛精度,非线性因子改进表达式如式(17)所示

(17)

式中:ainitial,afinal为a的初值和终值。

2.4 动态螺旋更新

螺旋更新阶段鲸鱼根据猎物的位置以螺旋方式更新移动,进而调整个体鲸鱼的位置。由标准WOA可知,所建立方程为对数螺旋,但标准WOA中螺旋形状参数b设为常数,这使得鲸鱼在进入螺旋搜索阶段时只能按照固定的螺旋线搜索,寻优方式过于单一,极易陷入早熟,削弱算法全局搜寻能力。针对上述问题,本文将b设置为随迭代次数变化的动态值,使鲸鱼个体进入螺旋搜索阶段后可以动态调整搜索时的螺旋形状,增强了算法的全局搜索能力以改善算法的收敛精度问题,改进后的b如式(18)所示

(18)

式中:λ为螺旋更新系数,设置为10,w=0.5。

2.5 广义反向学习机制

鲸鱼算法中,鲸鱼个体以当前最优个体为导向,与自身距离进行位置比较更新逐步向最优个体靠拢,当最优个体的位置非全局最优解时,个体将被错误引导至局部最优点使得算法陷入早熟,针对上述问题,本文在动态螺旋更新的基础上引入了广义反向学习机制,增强种群个体对其周围空间的探索能力,对当前的种群个体进行广义反向学习生成新的个体增加种群多样性,在一定程度上赋予算法跳出局部最优能力,广义反向学习机制如式(19)所示

(19)

广义反向学习机制相比于反向学习,其边界值动态变化且搜索范围更小,使得在增加种群多样性扩大搜索范围的同时有助于加快算法的收敛速度。

综上所述,采用上述改进策略改进后的MSIWOA执行步骤采用伪代码表述,如下所述。

(1)初始化参数:种群规模N,最大迭代次数Max_iter,优化问题维数D

(2)采用立方混沌映射在空间内进行种群初始化

(3)while(t

(7) 保持种群不变

(8) else

(9) 利用反向解代替原始解更新种群

(10) end if

(11) end for

(13) 根据公式更新w,a,A,C,b

(15) if (p<0.5)

(16) if (|A|≤1)

(17) 采用式(14)执行包围捕食

(18) else if (|A|>1)

(19) 采用式(16)执行搜索觅食

(20) end if

(21) else if(p≥0.5)

(22) 采用式(15)执行螺旋更新

(23) end if

(24) end for

(25) end for

(26)t=t+1

(27)end while

2.6 改进算法的复杂度分析

算法参数设置为:种群的数量为N,优化问题的维数为D,最大迭代次数为T,可得算法的时间复杂度为O(NDT),本文所提MSIWOA改进算法在WOA算法基础上引入的改进策略中,自适应惯性权、非线性收敛因子以及动态螺旋更新均未在原有基础上增加循环嵌套,时间复杂度仍为O(NDT),引入的混沌初始化时间复杂度为O(ND),广义反向学习的时间复杂度为O(NDT),综上所述,改进MSIWOA算法的时间复杂度与标准WOA保持一致。

3 算例分析

3.1 算法实验参数及测试函数

设算法种群规模N=30,迭代次数T=500。为验证MSIWOA性能,选取12个典型基准测试函数见表1,表1公式均取自文献[4],其中f1~f7为单峰测试函数,f8~f13为非线性多峰测试函数,函数维数均设为30。不同形式的测试函数可用于测试算法的优化效果和改进的有效性。

表1 基准测试函数

3.2 测试结果分析

测试结果从以下两点对比进行讨论:第一,在相同的迭代次数、相同种群规模、相同运行次数下对比粒子群算法(PSO)、灰狼算法(GWO)、WOA、EWOA[10]算法的收敛曲线与收敛精度,算法收敛曲线对比如图1所示,收敛精度对比见表2;第二,在相同的条件下与其它的文献中的改进算法对比验证本文改进算法的有效性,收敛精度对比见表3,本文采用独立运行30次后的最优值(Best)、平均精度(Mean)与标准差(Std)作为算法性能评价依据(“—”表示参考文献未做此项实验)。

图1 收敛曲线对比效果

表2 与经典算法性能对比

表3 与其它改进算法寻优效果对比

本文改进算法中自适应惯性权重的惯性系数取值为k=0.2,动态螺旋更新系数取值为λ=10,w=0.5,PSO算法中c1=2,c2=2,GWO算法参数与文献[3]中一致。EWOA中权重因子的调节系数k=2,变异尺度因子F=0.6,其它参数与WOA一致。

由表2可知,对比PSO、GWO、WOA算法,MSIWOA有着十分优异的寻优效果,从所选12个基准测试函数的测试结果中可以看出,MSIWOA算法均为最优,从改进算法的平均收敛精度与最优值来看,均优于其它算法,表明算法的收敛精度得以提高,标准差均为最低,算法的稳定性显著提升。从收敛曲线对比效果图可以得出,就EWOA而言,对于函数f9、f11本文改进算法与其均可达到最优解,而对比其它函数本文算法有着更为明显的收敛精度,EWOA算法在求解f6、f8、f12时有着较好的前期收敛速度,但出现收敛效果低于标准WOA的情况,收敛精度难以保证。而MSIWOA采用惯性权重和收敛因子改进,前期以较快收敛速度达到一定的精度,对于函数f1~f4,算法凭借动态螺旋搜索的改进提升了全局搜索能力收敛到最优解,对于函数f6、f7、f12,其它算法均陷入局部最优值,而MSIWOA得益于动态螺旋和广义反向学习引入,使得算法突破局部最优寻找到更高精度的解,收敛过程中出现多次拐点,表明改进算法有更强的跳出局部最优能力,收敛精度更高,结合了上述改进策略的优点,本文所提改进策略有效改善了早熟现象,具有更强的跳出局部最优能力,提升了算法的收敛精度,验证了改进策略的有效性。

为对比MSIWOA与其它改进算法的改进效果,通过引用OBCWOA算法[7]、EWOA算法[10]、APN-WOA算法[13]、IWOA算法[16]的数据,在相同的测试条件下对表1的基准测试函数进行求解,比较指标为算法求解结果的平均值与标准差,算法对比结果见表3。

由表3可以看出,本文算法对比其它改进鲸鱼算法有着更好的寻优效果,对于单峰函数f1~f4而言,本文算法与APN-WOA、OBCWOA算法均有着较好的收敛精度和稳定性,MSIWOA与OBCWOA可以在有限的迭代次数收敛到理论最优值,且具有较高的稳定性,而IWOA、EOWA收敛精度较低,对于多峰函数f8~f11,结合图1可以看出,MSIWOA算法可以更少的迭代次数收敛到最优解,而对于多峰函数f12,MSIWOA虽未收敛到理论最优解,但在采用本文改进策略后,相比较其它算法有着更强的寻优最优的能力,收敛到更高精度的解,且有着更高的稳定性。综上所述,本文所提策略对WOA改进有效提升了算法的收敛精度,相比于其它改进算法有着更为优越的寻优效果。

4 结束语

本文针对鲸鱼算法精度低,易早熟的固有缺陷,采用多种策略改进,提出一种自适应动态鲸鱼优化算法。为提高算法初始解的质量采用了立方混沌映射进行种群初始化;引入了自适应惯性权重的同时对收敛因子非线性改进,实现算法全局搜索和局部搜索的平衡;采用动态螺旋更新提高算法的全局搜索能力以改善算法的收敛精度问题,同时引入了广义反向学习机制提升了个体对空间区域的探索,增强跳出局部最优的能力避免早熟。对12个测试函数仿真验证分析结果表明,改进算法在收敛精度方面有着显著提升,通过与经典算法和其它改进算法对比检验了改进算法的有效性。

猜你喜欢
鲸鱼惯性全局
小鲸鱼
基于改进空间通道信息的全局烟雾注意网络
冲破『惯性』 看惯性
认清生活中的“惯性”
迷途鲸鱼
鲸鱼
鲸鱼岛——拖延症
落子山东,意在全局
记忆型非经典扩散方程在中的全局吸引子
高超声速飞行器全局有限时间姿态控制方法