一种改进的鲸鱼优化算法

|

李梓成,代永强

(1.甘肃农业大学 理学院,甘肃 兰州 730070;
2.甘肃农业大学 信息科学技术学院,甘肃 兰州 730070)

探究问题的最佳处理方案,一直是大数据、人工智能等多个学科的焦点问题。通过对自然界各种现象的观察,研发者们提出了许多群智能优化算法,如灰狼算法[1](grey wolf optimization,GWO)、粒子群优化算法[2](particle swarm optimization,PSO)、蝙蝠优化算法[3](bat algorithm,BA)。还有基于统计学原理的分布估计算法[4](estimation of distribution algorithm,EDA)等,为复杂函数优化问题提供了强有力的解决方法。

鲸鱼优化算法(whale optimization algorithm,WOA)是由学者Mirjalili等通过观察座头鲸群体的觅食行为并采取了一系列的分析之后于2016年提出的,该算法需要设置的参数少,操作简洁并且寻优性能强。目前已被成功应用于云上资源调度[5]、选址路径规划[6]、电力系统最优潮流[7]、工业设计[8]、工程领域[9]等问题的求解之中。但同时也无法避免地存在群智能算法的通病,如收敛速度慢、收敛精度低和容易陷入局部最优等问题。针对上述问题,国内外许多学者提出诸多解决方法。如龙文[10]将反向学习策略应用到初始化种群阶段,将非线性收敛因子和最优个体变异策略应用到算法寻优阶段,提升了算法的寻优性能;
王坚浩等[11]提出将混沌搜索策略应用到鲸鱼优化算法,提高了算法的收敛精度和鲁棒性;
孔芝等[12]通过对算法寻优公式添加自适应权重因子策略,提高了算法跳出局部最优的能力;
李安东等[13]采取卡方分布的逆累计分布函数更新收敛因子,利用改进氏族拓扑结构强化种群全局搜索能力再结合贪婪策略保留最优解,提高了算法的收敛精度和收敛速度。

该文提出一种基于反向学习和高斯随机游走策略的鲸鱼优化算法。首先,将反向对立学习策略应用到初始化种群阶段,提升了种群复杂度,为后续步骤打下了坚实的基础。然后,将高斯随机游走策略应用到算法局部寻优阶段,通过引导当前种群最优个体,进而生成新的随机种群,避免了算法过早陷入局部最优的陷阱。

鲸鱼优化算法是Mirjalili等人针对座头鲸的觅食行为,从数学上构建的鲸鱼优化模型,该模型具体定义如下:假设在d维搜索空间中有n只鲸鱼个体,则迭代第t次的第i只个体表示为:

其中,tmax为最大迭代次数。该算法包括三种搜索机制:环绕包围猎物和水泡网攻击实现算法的局部搜索,以及随机学习机制实现算法的全局搜索。

1.1 环绕包围猎物

该过程是模仿座头鲸发现并包围猎物的行为,具体更新公式表示为:

X(t+1)=X∧(t)-A*|C*X∧(t)-X(t)|

(1)

式中,X∧(t)表示当前最优个体的位置信息;
X(t)表示当前个体的位置信息;
t表示迭代次数;
A和C是可变化的系数,可以表示为:

A=2ar1-a

(2)

C=2*r2

(3)

(4)

式中,a是一个迭代次数变化的参数;
r1和r2是[0,1]之间的随机数;
Tmax为最大迭代次数。

1.2 水泡网攻击

通过观察座头鲸用水泡网包围猎物,并采用螺旋式运动来接近猎物,更新公式为:

X(t+1)=X∧(t)+(X∧(t)-X(t))*

eblcos(2πl)

(5)

式中,X∧(t)-X(t)为座头鲸和猎物之间的距离;
b为常数;
l为[-1,1]之间的随机数。座头鲸在两种攻击猎物的方式之间随机切换,表示如下:

X(t+1)=

(6)

式中,p为[0,1]之间的随机数。

1.3 随机学习机制

该机制是通过随机改变鲸鱼位置进行学习,更新个体位置,具体公式表示为:

X(t+1)=Xround(t)-A*|C*X∧(t)-X(t)|

(7)

式中,Xround(t)为当前种群个体中随机选取的一个位置信息;
X(t)是当前种群个体位置信息。

鲸鱼优化算法寻优过程中,初始化种群对算法的收敛速度具有至关重要的作用,通过反向学习策略对初始化种群进行优化,能够有效提升种群复杂度;
随着迭代过程的进行,参数|A|小于1的概率提升,算法开始进入包围圈内寻优。根据原算法的更新公式,当前个体仅向当前最优个体移动,易陷入局部最优。通过增加高斯随机游走策略更新个体位置信息,通过仿真实验能明显观察到算法寻优性能的提升。

2.1 反向学习策略

算法的收敛速度与初始种群个体和当前领导者之间的位置信息有关,如果初始个体在种群领导者附近出现,那么在本次迭代过程中,种群收敛速度会得到明显提升。随机产生的个体由于不能掌控其位置信息,所以对其收敛速度不能把握。但是,若同时考虑当前个体和反向个体,那么这两个个体更贴近当前领导者的概率是相等的,挑选其中与领导者距离更近的个体作为初始个体,那就代表每个个体都距领导者更近一步了。初始种群的质量高低直接影响算法后续的迭代过程的好与坏,高质量的种群可以有效提高迭代过程的收敛速度和收敛精度。学者何庆等[14]将凸透镜成像的反向精英学习策略应用在黑猩猩优化算法,对最优个体产生反向个体。由于WOA算法中初始化种群是依据随机数生成的,并不能保证初始化种群的质量,为了使WOA算法更好地进行后续迭代,避免因初始种群质量过低而导致收敛速度慢及陷入早熟现象,该文将孟磊[15]的二次反向学习策略运用到WOA算法的初始化种群中,提高初始化种群的质量。具体概念如下:

定义1(反向点):

设区间[lb,ub]上存在任意实数y,它的反向点yo为:

yo=lb+ub-y

(8)

(9)

定义2(二次反向点):

设区间[lb,ub]上存在任意实数y,它的反向点为yo,那么,它的二次反向点yqo为:

yqo=rand[ym,yo]

(10)

其中,ym=(lb+ub)/2,rand[ym,yo]为ym和yo之间随机生成的数。

(11)

采取二次反向学习策略初始化种群步骤如下:

(1)通过随机策略生成初始化鲸鱼种群X,计算种群X的个体适应度。

(2)运用二次反向学习策略生成种群X的反向种群X*,并计算种群X*的个体适应度。

(3)对每个点及其反向点的适应度值进行比较,适应度值低的保留,同时记录初始种群最优个体位置信息。

由上可知,该策略通过二次反向学习,扩大可行解的范围,从而提升了初始化种群的空间多样性和质量,为后续迭代过程提供高质量的初始种群。

2.2 高斯随机游走策略

作为随机游走模型中的经典模型,高斯随机游走模型具有优秀的开发能力。因此,针对WOA算法后期易陷入局部最优,该文将高斯随机游走策略应用到WOA算法的局部寻优位置,利用高斯随机游走的特点,通过当前种群领导者引导,产生新的随机种群。下式为策略方程:

(12)

(13)

从式(13)中可以看出,通过对当前种群领导者进行引导,在种群领导者附近产生新的种群,对算法快速收敛有着至关重要的作用;
同时方差σ为一个自适应值,该公式使得算法在前期具有较大的σ值,为寻找最优解创造更多可能性,提升了跳出局部最优的能力。到了算法后期具有较小的σ值,算法波动幅度变小,增强了算法的局部寻优能力。

2.3 GFWOA算法步骤及伪代码

2.3.1 算法步骤

(1)确定种群个数N,最大迭代次数Tmax,空间维度dim,螺旋形状常数b=1,随机常数l,r1,r2,r3,r4等算法参数;

(2)在函数可行解范围随机产生初始化种群个体,并计算个体适应度值;

(3)采用二次反向学习策略优化初始化种群,计算反向之后的个体适应度值,并与原个体适应度值进行比较,保留较优值,同时记录当前种群最优位置信息;

(4)根据参数值选择不同阶段进行个体位置更新,当p<0.5时,若|A|≥1,则通过式(7)更新鲸鱼个体位置;
若|A|<1,则通过式(12)更新鲸鱼个体位置信息,并计算个体相应的适应度值;

(5)当p≥0.5时,通过式(5)更新鲸鱼个体位置信息,并计算个体相应的适应度值;

(6)判断是否达到最大迭代次数,若满足条件,算法迭代过程结束,输出最优个体位置和适应度函数值,否则返回步骤(4)继续优化搜索。

2.3.2 伪代码

初始化各参数SearchAgents_no,dim,Tmax,适应度函数f(x),生成初始化种群X并制定反向学习策略,生成反向种群X*。

t=1

whilet

foriin range(0,SearchAgents_no):

forjin range(dim):

检查种群X和X*是否超过边界

计算种群X和X*的适应度值fitness1和fitness2

if fitness2

fitness = fitness2

else:

fitness=fitness1

if fitness

Leader_score=fitness

根据公式(4)计算a值

foriin range(0,SearchAgents_no):

初始化参数r1,r2,r3,r4,b,p,l。根据公式(2)、(3)计算A、C值

forjin range(dim):

ifp<0.5:

if |A|≥1:

由公式(7)更新鲸鱼位置

elif |A|<1:

由公式(13)计算sigma值

根据公式(12)更新鲸鱼位置

elifp≥0.5:

根据公式(15)更新鲸鱼位置

输出最优种群适应度Leader_score

ift% 1==0:

print("在第t代,种群最优适应度值为Leader_score")

t=t+1

3.1 与其他算法比较

为充分验证GFWOA算法的寻优能力,将其与灰狼算法(GWO)[1]、粒子群算法(PSO)[2]、萤火虫算法(FA)[16]、麻雀搜索算法(SSA)[17]、飞蛾扑火算法(MFO)[18]进行对比。实验维度如表中D所示,种群规模设定为50,并进行30次独立重复实验。测试函数见表1。其中F1~F7为单峰测试函数,主要测试算法的寻优性能;
F8~F12为多峰测试函数,主要测试算法跳出局部最优的能力;
F13~F18为低维多峰测试函数,主要测试算法在低维度下跳出局部最优的能力以及寻优性能。该文采用python3.9进行仿真,运行环境为Intel(R)Core(TM)i5-7200U处理器,12G内存,操作系统为Windows10(64)位。

表1 基准测试函数

续表1

由表2数据可知,在单峰函数F1~F5,F7测试中,GFWOA虽未达到理论最优值,但是相较于其他算法收敛精度亦或稳定性有显著提升,且GFWOA取得了最优的平均值和方差,体现了改进策略对算法寻优能力的提升。在单峰函数F6测试中,麻雀搜索算法(SSA)表现最优,GFWOA表现虽然不是最优的,但是也明显强于另外几种优化算法。在多峰函数测试中,GFWOA在测试函数F9和F10均找到理论最优值,并且标准差也为0,突出表现了GFWOA算法较强的局部和全局协调开发能力,较好的稳定性,证明改进策略对WOA算法寻优能力的显著提升起到了积极作用。在函数F16~F18测试中,GFWOA同样达到了理论最优值,并且标准差也是对比算法中最小的。在其他多峰函数的测试中,GFWOA表现虽然不是最优,但是其综合能力依然处于前列。

表2 仿真实验结果

续表2

另一方面,为了探究改进策略对算法收敛速度的影响,该文画出了上述算法在部分测试函数(F1,F5,F11,F18)上的收敛图,横坐标为迭代次数,纵坐标中对函数值为正值的做取对数处理。具体分析如下:在单峰函数中,由图1中b初始种群适应度可知,精英反向策略显著提高了初始种群的质量,奠定了后续种群快速迭代的基础;
由图1中a可知,在迭代中期,GFWOA收敛速度相较于比较算法是最快的。在多峰函数中,由图1中b可以看出,GFWOA在一开始便能找到较为优秀的初始值,并且未像其他算法一样重复陷入局部最优陷阱,收敛速度也比其他算法更快。在迭代初期,无论是单峰还是多峰函数,GFWOA相较于对比算法,总能一开始便达到较高的精度(如图1中b,c),充分验证了改进策略对WOA算法寻优性能的显著提升。在迭代中期,GFWOA在某些函数上能保持一定的速度继续提升精度(如图1中a,d),算法跳出局部最优的能力显著提升。在迭代后期,GFWOA除了在少数函数(如图1中c)上比某些算法稍差一点,其余均表现为最优,也体现了改进之后的GFWOA具有优越的性能。

图1 与其他算法比较收敛图

3.2 假设检验

仅仅通过平均值和方差的简单比较来判断算法之间的性能显得过于草率,为了充分验证GFWOA算法的优越性能,该文采用弗里德曼秩检验,实验设定显著性差异为5%,当p值低于该显著性水平时,就判定该测试函数上两个算法存在显著差异。

弗里德曼检验是多个相关样本奇一性检验,通过弗里德曼检验可以得出检验样本是否来自同一个总体,应用于算法上,即为所检验的算法是否存在显著差异。此检验原假设H0=GFWOA,PSO,FA,GWO,MFO,SSA来自大小没有明显差异的总体,即这些算法性能没有明显区别。H1=GFWOA,PSO,FA,GWO,MFO,SSA来自大小有明显差异的总体,即这些算法性能有明显区别。表3为GFWOA与其他算法之间的两两比较详细内容。

表3 假设检验

续表3

由表3数据可知,大部分p值小于0.05,说明算法之间确实存在差异,且从表中数据可知,GFWOA在均值和方差方面均优于对比算法,由此可知,GFWOA算法对比其他算法具有更好的优越性。

针对传统WOA算法具有收敛速度慢、易于陷入局部最优等问题,提出一种基于反向学习和高斯随机游走策略改进的鲸鱼优化算法。首先,通过引入二次反向学习策略,提高了初始种群质量。然后,通过引入高斯随机游走策略到鲸鱼的局部寻优环节,增强了WOA算法跳出局部最优能力,加快了收敛速度。为验证GFWOA算法可行性以及性能,与其他智能优化算法进行比较,通过对18个常用测试函数进行仿真实验,并对实验结果进行FRIENMEN统计检验,验证了GFWOA算法具有优越的寻优性能。

猜你喜欢测试函数鲸鱼适应度小鲸鱼幼儿100(2022年41期)2022-11-24改进的自适应复制、交叉和突变遗传算法计算机仿真(2022年8期)2022-09-28解信赖域子问题的多折线算法太原科技大学学报(2022年1期)2022-02-24迷途鲸鱼数学大王·趣味逻辑(2020年9期)2020-09-06基于博弈机制的多目标粒子群优化算法计算机工程与设计(2020年4期)2020-04-23鲸鱼小天使·二年级语数英综合(2019年4期)2019-10-06鲸鱼岛——拖延症动漫星空(2018年4期)2018-10-26一种基于改进适应度的多机器人协作策略郑州大学学报(工学版)(2018年2期)2018-04-13具有收缩因子的自适应鸽群算法用于函数优化问题物联网技术(2017年5期)2017-06-03带势函数的双调和不等式组的整体解的不存在性上海理工大学学报(2016年2期)2016-06-02

推荐访问:鲸鱼 算法 改进