基于随机收敛因子和差分变异的改进灰狼优化算法-附代码

基于随机收敛因子和差分变异的改进灰狼优化算法


摘要:针对基本灰狼优化算法在求解高维复杂优化问题时存在解精度低和易陷入局部最优的缺点,提出一种改进的灰狼优化算法。受粒子群优化算法的启发,设计一种收敛因子 a 随机动态调整策略以协调算法的全局勘探和局部开采能力;为了增强种群多样性和降低算法陷入局部最优的概率,受差分进化算法的启发,构建一种随机差分变异策略产生新个体。

1.灰狼优化算法

基础灰狼算法的具体原理参考,我的博客:https://blog.csdn.net/u011835903/article/details/107716390

2. 改进灰狼优化算法

2.1 收敛因子 a 随机调整策略

本文提出一种随机调整收敛因子策略,即:
a ( t ) = a initial  − ( a initial  − a final  ) rand ⁡ ( ) + σ rand ⁡ n ( ) (7) a(t)=a_{\text {initial }}-\left(a_{\text {initial }}-a_{\text {final }}\right) \operatorname{rand}()+\sigma \operatorname{rand} n() \tag{7} a(t)=ainitial (ainitial afinal )rand()+σrandn()(7)
式(7)中,a initial 和 a final 分别为收敛因子 a 的初始值和终止值;rand()为[0,1]之间均匀分布的随机数;σ(方差)用来度量随机变量 a 与其数学期望(均值)的偏离程度;randn()为服从正态分布的随机数。

2.2 随机差分变异策略

采用一种新的变异策略,即随机差分变异策略,受差分进化算法的启发,利用当前灰狼个体、当前最优灰狼个体和在群体中随机选择的灰狼个体进行随机差分产生新的个体,其表达式为:
X ( t + 1 ) = r [ X α − X ( t ) ] − r [ X ′ ( t ) − X ( t ) ] (8) \boldsymbol{X}(t+1)=r\left[\boldsymbol{X}_{\alpha}-\boldsymbol{X}(t)\right]-r\left[\boldsymbol{X}^{\prime}(t)-\boldsymbol{X}(t)\right] \tag{8} X(t+1)=r[XαX(t)]r[X(t)X(t)](8)
式(8)中,t 为当前迭代次数;r 为[0,1]间的随机数,X α 为当前最优灰狼个体的位置,X’ 为群体中随机选取的灰狼个体。在 GWO 算法每次迭代中,采用式(8)所示的随机差分变异策略对群体进行扰动操作,产生具有较好多样性的新个体,从而帮助算法降低陷入局部最优的可能性,防止早熟现象的发生。

综上所述,改进灰狼优化(improved grey wolf optimizer,IGWO)算法的具体步骤如下:
Step 1 初始化 IGWO 算法的参数,如种群规模、最大迭代次数、a initial 和 a final 的值;
Step 2 在搜索空间中随机初始化个体构成初始种群,令 t = 1;
Step 3 计算群体中每个个体的适应度值并排序,记录当前群体中最优个体 α、次优个体 β 和第三优个体 δ;

Step 4 根据式(6)更新其他个体的位置;
Step 5 根据式(7)更新收敛因子 a 的值,更新参数 A 和 C 的值;
Step 6 根据式(8)对群体执行随机差分变异策略产生新的个体;
Step 7 判断算法是否满足终止条件,若满足,则算法结束,输出最优解;否则,令 t = t + 1,返回Step 3。

3.实验结果

请添加图片描述

4.参考文献

[1]徐松金,龙文.基于随机收敛因子和差分变异的改进灰狼优化算法[J].科学技术与工程,2018,18(23):252-256.

5.Matlab代码

6.Python代码

猜你喜欢

转载自blog.csdn.net/u011835903/article/details/125453287