基于差分进化改进的蝗虫优化算法*

2022-04-12 08:30宋长新
自动化技术与应用 2022年3期
关键词:蝗虫标准差适应度

宋长新,马 克

(1.上海城建职业学院 机电工程与信息学院,上海 201415;2.青海师范大学 档案馆,青海 西宁 810008)

1 引言

智能群优化算法被广泛应用于各类工程优化问题[1-5]。蝗虫算法是S Saremi 等于2017年提出的一种新兴群智能算法,该算法模拟蝗虫群的迁移群体行为来对各类问题进行优化。该算法被应用于工程实践各领域,如文献[6]利用基于蝗虫优化算法分布式模型控制方法对太阳能式无人机的协同目标跟踪轨迹进行优化。文献[7]利用蝗虫优化算法对微电网进行快速频率控制。文献[8]利用蝗虫优化算法对交换膜燃料电池特性进行优化,取得了良好的效果。文献[9]利用蝗虫算法对SAR 图像进行分割优化,取得了较好的效果。

传统的蝗虫优化算法与其他智能优化算法相似,存在着容易陷入局部最优值,特别是在多峰优化问题时,容易陷入局部最优,过早收敛,无法获得全局最优值。

本文针对蝗虫算法的不足,利用差分进化算法对蝗虫优化算法进行改进,提高种群多样性,提高蝗虫优化算法跳出局部最优值的能力,进一步提升蝗虫优化算法的全局搜索能力。

2 蝗虫算法

蝗虫算法是S Saremi 等于2017年提出的一种新兴群智能算法[10-11],该算法模拟蝗虫群的迁移群体行为,来对各类问题进行优化。蝗虫算法的数学表达式如(1)所示,在蝗虫算法中,蝗虫算法的位置即为优化问题的解,第i个蝗虫的位置用Xi表示。

其中Si代表第i个蝗虫的社会行为,Gi代表第i个蝗虫的重力,Ai代表第i个蝗虫受到的风平流的作用。

其中蝗虫的社会行为可以用如下表达式所示:

其中dij代表第i只蝗虫到第j只蝗虫的距离,即dij=|Xi-Xj|。s代表蝗虫社会互动行为影响的函数,如式(3)所示。代表第i只蝗虫到第j只蝗虫的单位向量,即。

蝗虫的社会互动行为影响函数s如下式所示:

其中f代表吸引力,l代表吸引尺度。

蝗虫在飞行式会受到重力的作用,重力G对蝗虫的影响可以用如下式子表示:

其中g代表引力常数代表朝向地球中心的统一矢量。

蝗虫在飞行时会受到风的作用,风平流A 对蝗虫的影响可以用如下式子表示:

其中u代表恒定漂移,代表朝向风的统一矢量。

于是将式(2),(3),(4),(5)代入式(1)可得:

将蝗虫的边界信息,即优化问题的边界信息包括上边界ub和下边界lb引入式(6)中,由于重力蝗虫的影响非常小,省去重力的影响,并且假设风平流是朝向目标解()的,可得蝗虫的位置更新方程为:

其中,参数c的更新表达式如下所示:

其中cmin代表最小值,cmax代表最大值,L代表最大迭代次数,l代表当前迭代次数。通常cmax的值为1,cmin的值为0.00001。

3 差分进化算法

差分进化算法是一种整体结构类似与遗传算法的优化算法。该算法的主要思想是通过群体内个体变异,再经过交叉,选择以达到对群体优化的目的。该算法主要分为初始化,变异,交叉与选择这几个过程。

(1) 初始化一个种群,设种群的数量为N:X(t)={X1(t),X2(t),…,XN(t)};其中t表示迭代次数。

(2) 差分进化的变异过程是差分进化算法的关键,随机从群体中选择两个不同的个体,进行如下操作:

其中ij代表第i维第j个个体,m,n都是大于1 小于N且不相同的随机整数。F 为0 到1 之间的缩放因子。Vij(t+1)是变异后的个体向量。

(3) 差分进化算法的交叉操作如下:

其中CR为0到1之间的数,叫做交叉概率。

(4) 差分进化算法的选择过程:

其中,f 为适应度函数,这里对应最小化问题,从差分进化的选择过程中可以看到,差分进化算法用适应度值较低的结果代替原来的结果,即用变异后产生的更好的结果来代替之前较差的结果,起到了优化选择的作用,使整个种群向更加优化的方向靠近。

4 基于差分进化改进的蝗虫算法

本文在蝗虫算法的基础上引入差分进化算法,将差分进化算法的优点融入蝗虫算法中提出了一种基于差分进化改进的蝗虫算法(DE-GOA)。在算法的搜索过程引进差分进化,增加种群的多样性,提高算法的全局寻优能力。在基本的蝗虫算法搜索结束后,对蝗虫种群进行差分进化操作,使得群体之间的信息共享性更好,同时使种群的多样性增加。基于差分进化改进的蝗虫算法具体流程如图1所示。

图1 基于差分进化改进的蝗虫算法流程图

主要步骤如下:

(1) 初始化蝗虫种群数量,迭代次数,cmin,cmax的值,权重系数,交叉,变异概率等等。

(2) 计算各蝗虫个体的适应度值。

(3) 对蝗虫个体的适应度值进行排序并记录最优位置。

(4) 利用式(7)对蝗虫的位置进行更新。

(5) 对蝗虫个体进行变异操作。

(6) 对蝗虫个体进行交叉操作。

(7) 对蝗虫个体进行选择操作。

(8) 是否达到迭代结束条件,如果没有则返回(2),否则停止迭代输出最优个体位置及适应度值。

5 实验与分析

为了验证本文的DE-GOA 算法的优化效果和稳定性。将本文算法与其他6 种优化算法包括粒子群算法PSO[12],遗传算法GA[13],蝙蝠算法BA[14],蝗虫算法GOA,花授粉算法FPA[15],萤火虫算法FA[16],在11 个标准测试函数上进行寻优求解,对算法性能进行对比。为了保证实验结果的可信性,各算法的种群数量均为30,最大迭代次数为500,对每个测试函数测试300次,取各数据的平均值进行对比。

本文在Centrino 2 PC,2.3 Ghz,Matlab 2014a 环境中进行实验,各算法的参数设置如表1所示。各测试函数如表2所示。表3为各优化算法的测试结果,测试结果主要包括平均误差和标准差。平均误差衡量算法的寻优能力,标准差衡量算法的可重复性。

表1 各算法的参数设置

表2 测试函数信息

从表3的实验结果来看,对于f1,f2,f3,f4,f5,f8,f10函数,DE-GOA算法的平均误差最小,次之为GOA算法,但是DE-GOA的误差仍然比GOA算法的误差小一个数量级,而其他算法的误差相比DE-GOA算法的误差相差比较大,其他5 种算法的误差比DE-GOA 算法的误差大几个甚至几十个数量级,表明DE-GOA算法的寻优能力最好。从标准差来看,DE-GOA算法的标准差最小,GOA算法次之,其他5种算法的标准差均较大。表明DE-GOA算法的稳定性更强。对于f6,f7 函数,DE-GOA 算法与GOA算法均能取得较好的结果,并且相比其他5种算法,平均误差和标准差值均最小,相比其他5种算法仍然具有明显的优势。对于f9 函数,虽然DE-GOA 算法与GOA算法的平均误差一样,但是DE-GOA算法的标准差仍然比GOA 算法的标准差小一个数量级,表明DE-GOA 算法相比GOA 算法在算法稳定性上仍然有较大的提升。综合来看,DE-GOA 算法由于引进差分进化,改善了GOA算法的寻优能力,无论是算法的性能还是算法的稳定性均得到了提高。

表3 实验结果

6 结束语

本文成功的将差分进化算法与蝗虫优化算法结合,提出了一种基于差分进化改进的蝗虫优化算法。该算法针对基本蝗虫算法,容易陷入局部最优,收敛精度不高的缺点,将差分进化引入蝗虫算法中,增加了种群的多样性,实验结果表明本文提出的优化算法相比基础的蝗虫算法能够起到明显地改进的作用。并且相比其他5 种智能优化算法无论是在精度还是稳定性上均具有明显的优势。

猜你喜欢
蝗虫标准差适应度
改进的自适应复制、交叉和突变遗传算法
你真的认识蝗虫吗
订正
Risk score for predicting abdominal complications after coronary artery bypass grafting
蝗虫
人多势众的蝗虫
蝗虫
启发式搜索算法进行乐曲编辑的基本原理分析
基于人群搜索算法的上市公司的Z—Score模型财务预警研究
医学科技论文中有效数字的确定