一种改进非线性收敛方式的灰狼优化算法研究 -附代码

一种改进非线性收敛方式的灰狼优化算法研究


摘要: 针对灰狼优化算法在求解复杂优化问题时过早收敛和易陷入局部最优的缺点,提出一种改进型灰狼优化算法( CGWO)用于求解无约束优化问题.算法首先利用引入混沌映射策略的反向学习方法初始种群个体,为算法全局寻优奠定基础;从平衡全局和局部搜索能力角度考虑,对收敛因子的递减形式提出了改进型非线性函数形式;为避免算法陷入局部最优,对当前最优灰狼个体位置进行 Cauchy变异操作 。

1.灰狼优化算法

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

2. 改进灰狼优化算法(CGWO)

2.1 引入混沌策略反向学习初始化种群

群体中个体灰狼位置的初始化对 GWO算法的收敛速度和精度有较大影响 . 随机生成方法虽在一定程度上保证了初始位置的均匀分布,但其质量无法保证,部分灰狼位置可能远离最优解,从而影响算法的收敛速度.从种群多样性和灰狼个体位置的遍历性的角度出发,本文提出的反向学习初始化方法引入了Logistic映射策略,具体实施步骤如下:

步骤 1  根据式(12) Logistic 混沌映射的表达式生成 N个初始解 x i x_i xi
x i + 1 = μ ( 1 − x i ) x i ∈ ( 0 , 1 ) (12) x_{i+1}=\mu\left(1-x_{i}\right) \quad x_{i} \in(0,1)\tag{12} xi+1=μ(1xi)xi(0,1)(12)
步骤2将 N N N个初始解 x i x_i xi 按式(13)生成相对应的 N N N个反向初始解 x i ′ x_i^{'} xi
x i ′ = r 3 ( u b ( i ) + l b ( i ) ) − x i (13) x_{i}^{\prime}=r_{3}(u b(i)+l b(i))-x_{i} \tag{13} xi=r3(ub(i)+lb(i))xi(13)
式中, r 3 r_3 r3为[0,1]区间的随机数; u b ( i ) ub(i) ub(i) l b ( i ) lb(i) lb(i) x i x_i xi的取值上下界.

步骤3  将上述两步生成的2N 个初始解按其适应度值从小到大进行排序,选出前 N 个作为灰狼的初始种群.

2.2 改进非线性收敛因子

参数 | A |>1时 ,狼群为了找到更好的猎物扩大包围圈,此时算法具有较强的探索能力;当 | A |<1时,狼群为了完成最后的攻击行为将收缩包围圈,此时算法具有较强的开发能力 . 参数 A 调节 GWO 算法的寻优能力取决于收敛因子 a ,a 数值随迭代次数线性递减策略不能完全说明实际收敛寻优过程 ,不能很好的在全局和局部搜索之间进行有力协调 . 采用非线性方式解决这一问题能够更加有效平衡全局和局部搜索能力,从而提高算法收敛精度 . 因此,本文提出一种改进型收敛因子非线性函数形式:
a = 2 − 2 [ ( e t / t max ⁡ − 1 ) / ( e − 1 ) ] k (14) a=2-2\left[\left(e^{t / t_{\max }}-1\right) /(e-1)\right]^{k} \tag{14} a=22[(et/tmax1)/(e1)]k(14)
式中,k 为非线性调节系数,改进的迭代方法在寻优前段 a 低衰减程度,能够更好寻优全局最优解,寻优后段 a 高衰减程度,能够更精确寻找局部最优解.

2.3 Cauchy 变异算子

群体中所有灰狼个体在 GWO 算法进化后期均向最优个体逼近,从而导致群体多样性的缺失,容易陷入局部最优,为了降低出现这种情况的概率,本文对当前代最优灰狼个体位置中的随机 m 维进行Cauchy变异,Cauchy分布更易于产生远离原点的随机数,从而更能防止算法陷入局部最优 .考虑到在算法初期,最优位置应获得足够的扰动以增强算法的搜索能力,而在迭代后期减小变异率可以避免最优解的动荡,从而加快收敛速度,因此,本文提出的改进变异策略见公式(15):
x i k ′ = x i k ( 1 + a 2 C ( 0 , 1 ) ) (15) x_{i k}^{\prime}=x_{i k}\left(1+a^{2} C(0,1)\right) \tag{15} xik=xik(1+a2C(0,1))(15)
式中, x i k x_{ik} xik 待变异元素; a 为 2.2 节改进后的收敛因子,收敛前阶段 a > 1时,能够增强变异扰动,收敛后阶段 a<1
时,减小变异扰动,具有自适应的作用;C(0,1)为以0为中心,尺度参数为1的 Cauchy分布的随机数.

随机选取其中一维变异的具体实现方法为:当前 代 最 优 灰 狼 在 D 维 空 间 中 的 位 置 为 以1/D 的概率随机选取其中一个元素 x i k x_{ik} xik 进行Cauchy变异,计算变异后位置向量 x i ′ x^{\prime}_i xi的适应度值,与 x i x_i xi 的适应度值进行比较,取适应度值小的为最优位置并更新其适应度值.

算法实现步骤:

步骤1 初始化种群规模 N N N ,最大迭代次数 t m a x t_{max} tmax,搜索维数 D D D ,搜索范围 [ l b , u b ] [lb,ub] [lb,ub],控制系数 k k k
步骤2 利用引入Logistic混沌映射策略的反向学习方法初始化灰狼种群.
步骤 3  根据式(14)更新收敛因子 a ,计算群体中每个个体的适应度值并排序,对其中最优个体进行 Cauchy变异,选出 α 、 β α 、β αβ δ δ δ 狼 .
步骤 4  根据公式( 3 ),( 4 )计算出 C C C A A A
步骤 5  根据式(5)至( 10)更新每只灰狼个体位置,并根据公式(11)确定猎物的位置 .
步骤 6  跳至步骤 3 直到计算达到最大迭代次数 t m a x t_{max} tmax
步骤7 输出 α α α 狼的位置,也就是寻优得到的全局最优解.

3.实验结果

请添加图片描述

4.参考文献

[1]谈发明,赵俊杰,王琪.一种改进非线性收敛方式的灰狼优化算法研究[J].微电子学与计算机,2019,36(05):89-95.

5.Matlab代码

6.python代码

猜你喜欢

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