一种新型非线性收敛因子的灰狼优化算法-附代码

一种新型非线性收敛因子的灰狼优化算法


摘要: 针对标准灰狼优化算法在求解复杂工程优化问题时存在求解精度不高和易陷入局部最优的缺点,提出一种新型灰狼优化算法用于求解无约束连续函数优化问题。该算法首先利用反向学习策略产生初始种群个体,为算法全局搜索奠定基础;受粒子群优化算法的启发,提出一种非线性递减收敛因子更新公式,其动态调整以平衡算法的全局搜索能力和局部搜索能力;为避免算法陷入局部最优,对当前最优灰狼个体进行变异操作。

1.灰狼优化算法

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

2. 改进灰狼优化算法

2.1 反向学习初始化种群

Haupt 等人 [ 20 ] { }^{[20]} [20] 指出, 对基于种群迭代的群体智能优化算法 来说, 初始种群的好坏影响着算法的全局搜索速度和解的质 量, 多样性较好的初始种群对提高算法的寻优性能很有帮助。 然而, 标准 GWO 算法在迭代前采用随机初始化种群个体, 难 以确保初始群体的多样性, 从而在一定程度上影响了算法的搜 索效率。反向学习策略 [ 21 ] { }^{[21]} [21] 是由 Tizhoosh 于 2005 年提出的, 目 前已在 GA、DE、ACO 和 BBO 等群体智能优化算法中得到了成 功的应用。因此, 本文采用反向学习策略来产生初始种群。
定义 1 反向点。假设在 [ l , u ] [l, u] [l,u] 上存在数 x x x, 则 x x x 的反向点 定义为 x ′ = l + u − x x^{\prime}=l+u-x x=l+ux 。将反向点的定义扩展到 D D D 维空间, 设 p = p= p= ( x 1 , x 2 , ⋯   , x D ) \left(x_{1}, x_{2}, \cdots, x_{D}\right) (x1,x2,,xD) D D D 维空间中的一个点, 其中 x i ∈ [ l i , u i ] , i = x_{i} \in\left[l_{i}, u_{i}\right], i= xi[li,ui],i= 1 , 2 , ⋯   , D 1,2, \cdots, D 1,2,,D, 则其反向点 p ′ = ( x 1 ′ , x 2 ′ , ⋯   , x D ′ ) p^{\prime}=\left(x_{1}^{\prime}, x_{2}^{\prime}, \cdots, x_{D}^{\prime}\right) p=(x1,x2,,xD), 其中 x i ′ = l i + x_{i}^{\prime}=l_{i}+ xi=li+ u i − x i u_{i}-x_{i} uixi
根据上述定义, 采用反向学习策略来产生初始种群个体的 步骤如下:
a) 在搜索空间中随机初始化 N N N 个灰狼个体位置 x i , j ( i = 1 x_{i, j}(i=1 xi,j(i=1, 2 , ⋯   , D ; j = 1 , 2 , ⋯   , N 2, \cdots, D ; j=1,2, \cdots, N 2,,D;j=1,2,,N ) 作为初始种群 RP;
b) 根据定义 1 , 初始种群 RP 中的每个灰狼个体 x i x_{i} xi 的反向 个体 x i ′ x_{i}^{\prime} xi 构成反向种群 O P \mathrm{OP} OP;
c) 合并种群 R P \mathrm{RP} RP O P \mathrm{OP} OP, 将其 2 N 2 N 2N 个灰狼个体按照适应度值 进行升序排序, 选取适应度值前 N N N 个灰狼个体作为初始种群。

2. 2 收敛因子非线性调整策略

GWO 算法在搜索过程中却是非线性变化的,收敛因子 a 线性递减策略不能完全体现出实际的优化搜索过程。因此,本文提出一种非线性变化收敛因子更新公式:
a ( t ) = a initial  + ( a final  − a initial  ) × ( ( 1 − t t max  ) ) k 1 ) k 2 (8) \left.a(t)=a_{\text {initial }}+\left(a_{\text {final }}-a_{\text {initial }}\right) \times\left(\left(1-\frac{t}{t_{\text {max }}}\right)\right)^{k_{1}}\right)^{k_{2}} \tag{8} a(t)=ainitial +(afinal ainitial )×((1tmax t))k1)k2(8)
其中: a initial  a_{\text {initial }} ainitial  a final  a_{\text {final }} afinal  分别为收敛因子 a a a 初始值和终止值, t t t 为当前 迭代次数, t max ⁡ t_{\max } tmax 为最大迭代次数, k 1 k_{1} k1 k 2 k_{2} k2 为非线性调节系数。 由式 (8) 可知, 收敛因子 a a a 随进化迭代次数增加而非线性动态 变化, 从而为有效地平衡算法的全局搜索能力和局部搜索能力 提供保证。

2.3 变异算子

基于最优保存策略, 在 GWO 算法的进化后期, 由于群体 中所有灰狼个体均向最优个体区域逼近, 从而导致群体多样性 损失, 此时, 如果当前最优灰狼个体为局部最优解, 则 GWO 算 法陷入局部最优, 出现早熟收玫现象, 这也是群体智能优化算 法的固有特点。为了降低 GWO 算法出现早熟现象和陷入局 部最优的概率, 本文对群体中当前最优灰狼个体进行多样性变 异操作, 其原理如下 [22] :
假设某个体 x i = ( x 1 , x 2 , ⋯   , x D ) x_{i}=\left(x_{1}, x_{2}, \cdots, x_{D}\right) xi=(x1,x2,,xD), 以概率 1 / D 1 / D 1/D 随机从个体 x i x_{i} xi 中选取一个元素 x k ( k = 1 , 2 , ⋯   , D ) x_{k}(k=1,2, \cdots, D) xk(k=1,2,,D), 然后在 [ l i , u i ] \left[l_{i}, u_{i}\right] [li,ui] 内随机产 生一个实数替代个体 x i x_{i} xi 中的元素 x k x_{k} xk, 从而产生一个新的个体 x i ′ = ( x 1 ′ , x 2 ′ , ⋯   , x D ′ ) x_{i}^{\prime}=\left(x_{1}^{\prime}, x_{2}^{\prime}, \cdots, x_{D}^{\prime}\right) xi=(x1,x2,,xD) 。多样性变异算子为
x i ′ = { l i + λ ⋅ ( u i − l i ) i = k x i  otherwise  (9) x_{i}^{\prime}= \begin{cases}l_{i}+\lambda \cdot\left(u_{i}-l_{i}\right) & i=k \\ x_{i} & \text { otherwise }\end{cases}\tag{9} xi={ li+λ(uili)xii=k otherwise (9)
其中 : l i : l_{i} :li u i u_{i} ui 分别为变量 x i x_{i} xi 的上界和下界, λ ∈ [ 0 , 1 ] \lambda \in[0,1] λ[0,1] 为随机数。

NGWO 算法步骤

a) 设置算法参数, 种群规模 N N N, 最大迭代次数 t max ⁡ t_{\max } tmax, 收玫因 子初始值 a initial  a_{\text {initial }} ainitial  和终止值 a final  a_{\text {final }} afinal , 调节系数 k 1 、 k 2 k_{1} 、 k_{2} k1k2
b)在搜索空间中利用 2.1 2.1 2.1 节所描述的反向学习策略产生 N N N 个个体作为初始种群, 令 t = 1 t=1 t=1
c) 计算群体中每个个体的适应度值并排序, 将适应度值 排列前三位的个体位置分别记为 X α 、 X β X_{\alpha} 、 X_{\beta} XαXβ X δ X_{\delta} Xδ
d) 判断算法是否满足终止条件, 若满足, 输出最优灰狼个 体, 则算法结束; 否则, 执行步骤 e)。
e) 根据式 (8) 计算出收敛因子 a a a 的值, 然后根据式 (2) 和 (3) 计算出 A A A C C C
f)根据式 (5) 和 (6) 更新群体中每个灰狼个体的位置。
g ) \mathrm{g}) g) 对当前群体中最优灰狼个体执行 2.3 2.3 2.3 节所描述的变异 操作以产生新的灰狼个体, 令 t = t + 1 t=t+1 t=t+1, 返回步骤 c \mathrm{c} c )。

3.实验结果

请添加图片描述

4.参考文献

[1]王敏,唐明珠.一种新型非线性收敛因子的灰狼优化算法[J].计算机应用研究,2016,33(12):3648-3653.

5.Matlab代码

6.Python代码

猜你喜欢

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