• 非线性参数的精英学习灰狼优化算法-附代码


    非线性参数的精英学习灰狼优化算法


    摘要:为了有效提高灰狼优化算法的收敛速度以及求解精度,本文结合精英反向学习策略增加种群的多样性,将收敛因子从线性变为非线性,重新设计位置更新公式提高算法的收敛精度,提出了非线性参数的精英学习灰狼优化算法。

    1.灰狼优化算法

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

    2. 改进灰狼优化算法

    2.1 精英反向学习

    反向学习策略是近年来计算智能领域出现的新概念 [ 20 ] { }^{[20]} [20], 该策略可以增加种群的多样性, 从而 避免早熟现象, 其主要思想是对一个问题的可行解, 求其反向解, 并对原解和反向解进行评估, 从中选出较优的解作为下一代个体。
    反向解:
    假设当前种群的一个可行解为 X = ( x 1 , x 2 , ⋯   , x d ) , ( d X=\left(x_{1}, x_{2}, \cdots, x_{d}\right), \quad\left(d\right. X=(x1,x2,,xd),(d 维搜索空间; x i ∈ [ a i , b i ] x_{i} \in\left[a_{i}, b_{i}\right] xi[ai,bi] ), 则其反向 解为 X ˉ = ( x 1 ‾ , x 2 ‾ , ⋯   , x d ‾ ) \bar{X}=\left(\overline{x_{1}}, \overline{x_{2}}, \cdots, \overline{x_{d}}\right) Xˉ=(x1,x2,,xd) ,式中 x j ‾ = ω ( a j + b j ) − x j , ω \overline{x_{j}}=\omega\left(a_{j}+b_{j}\right)-x_{j} , \omega xj=ω(aj+bj)xjω 为在 [ 0 , 1 ] [0,1] [0,1] 上均匀分布的系数。
    精英反向学习(elite opposition-based learning, EOBL) 是通过当前问题的可行解构造其反向解, 以此来增加种群的多样性, 并从当前解和反向解中选取最优解作为新一代个体。
    精英反向解: ( i = 1 , 2 , 3 , ⋯   , s ; j = 1 , 2 , ⋯   , d ) (i=1,2,3, \cdots, s ; j=1,2, \cdots, d) (i=1,2,3,,s;j=1,2,,d), 其反向解 X i , j e ‾ = ( X i , 1 e ‾ , X i , 2 e ‾ , ⋯   , X i , d e ‾ ) \overline{X_{i, j}^{e}}=\left(\overline{X_{i, 1}^{e}}, \overline{X_{i, 2}^{e}}, \cdots, \overline{X_{i, d}^{e}}\right) Xi,je=(Xi,1e,Xi,2e,,Xi,de) 可以定义为:
    X i , j e ‾ = K ⋅ ( α j + β j ) − X i , j e (12) \overline{X_{i, j}^{e}}=K \cdot\left(\alpha_{j}+\beta_{j}\right)-X_{i, j}^{e} \tag{12} Xi,je=K(αj+βj)Xi,je(12)
    式中: K K K ( 0 , 1 ) (0,1) (0,1) 上的动态系数; X i , j e ∈ [ α j , β j ] , α j = min ⁡ ( X i , j ) , α i X_{i, j}^{e} \in\left[\alpha_{j}, \beta_{j}\right], \alpha_{j}=\min \left(X_{i, j}\right), \alpha_{i} Xi,je[αj,βj],αj=min(Xi,j),αi β j \beta_{j} βj 为动态边界, 动态边界 克服了固定边界难以保存搜索经验的缺点, 使精英反向解可以在狭窄的空间中进行搜索, 不易陷 于局部最优。若动态边界操作使 X i , j e X_{i, j}^{e} Xi,je 越过边界成为非可行解, 可以利用随机生成的方法重置, 重 置方式如下:
    X i , j e ‾ = rand ⁡ ( α j , β j ) (13) \overline{X_{i, j}^{e}}=\operatorname{rand}\left(\alpha_{j}, \beta_{j}\right)\tag{13} Xi,je=rand(αj,βj)(13)

    2. 2 调整收敛因子 a

    由 GWO 算法的搜索机制知道, 当 A ≥ 1 A \geq 1 A1 时, 狼群不断扩大包围范围, 此时算法在进行全局搜 索; 而当 A < 1 A<1 A<1 时, 狼群将缩小包围范围, 对猎物展开攻击, 说明算法进行局部精确搜索。系数 A A A 调节 GWO 算法的寻优能力, 换句换说 GWO算法的全局搜索和局部寻优取决于收敛因子 a a a 的变化, 由于算法搜索过程复杂, 收敛因子 a a a 随迭代次数增加线性递减, 该更新方法很难适应实际搜索情 况, 并不能完全说明实际收敛寻优过程, 在全局搜索和局部寻优之间得不到有力协调。因此, 本文采用非线性调整的策略即:
    a = a initial  − ( a initial  − a final  ) ⋅ exp ⁡ ( t / t max  − 1 ) (14) a=a_{\text {initial }}-\left(a_{\text {initial }}-a_{\text {final }}\right) \cdot \exp \left(t / t_{\text {max }}-1\right) \tag{14} a=ainitial (ainitial afinal )exp(t/tmax 1)(14)
    a a a 随着迭代次数不断增加呈现非线性动态变化, 相比较线性变化有效地平衡算法的全局搜索能 力和局部寻优能力, 进而提高算法的寻优性能。

    2.3改造位置更新公式

    由公式(11)可以看出, GWO 算法后期对灰狼位置进行更新时朝着历史最优位置移动, 从而 缺失种群多样性, 即使该更新原则具有较好的开发能力, 但是搜索能力有待提高, 容易陷入局部 最优。为进一步平衡 GWO 算法的全局搜索能力和局部寻优能力, 受差分进化算法的启发, 再结 合 G W O \mathrm{GWO} GWO 算法的更新原则, 本文设计出一种新的位置更新公式为
    X ( t + 1 ) = r 1 ( X 1 − X t ) + r 2 ( X 2 − X t ) + r 3 ( X 3 − X t ) 3 (15) X(t+1)=\frac{r_{1}\left(X_{1}-X_{t}\right)+r_{2}\left(X_{2}-X_{t}\right)+r_{3}\left(X_{3}-X_{t}\right)}{3}\tag{15} X(t+1)=3r1(X1Xt)+r2(X2Xt)+r3(X3Xt)(15)
    式中: r 1 , r 2 ∈ [ 0 , 1 ] r_{1}, r_{2} \in[0,1] r1,r2[0,1] 的随机数; X 1 、 X 2 、 X 3 X_{1} 、 X_{2} 、 X_{3} X1X2X3 分别表示 α 、 β 、 δ \alpha 、 \beta 、 \delta αβδ 狼所经历的最佳位置。 X t X_{t} Xt 为群体中 任一个体, 采用式(15)的更新方法产生新个体, 该方法有效帮助算法降低陷入局部最优的可能 性, 防止早熟现象的发生。

    为了改善算法的搜索精度低, 收敛速度慢的缺陷, 本文结合精英反向学习策略达到增加种群 的多样性的目的, 使灰狼个体可以更广泛的分布于搜索空间的各个位置, 从而使算法的全局搜索 能力得到明显提高, 对参数 a a a 进行非线性变化, 以及改造位置更新公式, 提高算法的局部寻优能力。 因此, 改进的灰狼优化算法有效的平衡算法的全局搜索能力和局部寻优能力。具体算法描述如下: Step 1:设置相关参数 A 、 a 、 C A 、 a 、 C AaC; 种群规模 N N N; 最大迭代次数 T max ⁡ T_{\max } Tmax; 搜索维度 D D D; 搜索范围 [ l b , u b ] \left[l_{\mathrm{b}}, u_{\mathrm{b}}\right] [lb,ub]
    Step 2:根据 2.1 2.1 2.1 节描述的精英反向学习策略进行种群个体的初始化。
    Step 3: 计算灰狼个体的适应度值, 保存适应度值最好的前三匹狼记为 α 、 β 、 δ \alpha 、 \beta 、 \delta αβδ

    Step 4:根据公式(3)、(4)、(14)依次对参数 C 、 A 、 a C 、 A 、 a CAa 进行更新。
    Step 5:根据公式 (5) (7) 计算种群中灰狼个体与最优的前三匹狼 α 、 β 、 δ \alpha 、 \beta 、 \delta αβδ 的距离, 根据 公式(8) (10)更新当前灰狼位置, 根据公式(15)更新猎物位置。

    Step 6:判断是否满足最大迭代次数, 若满足输出结果, 即为最优灰狼位置, 否则返回步骤 Step3。

    3.实验结果

    请添加图片描述

    4.参考文献

    [1]逯苗,何登旭,曲良东.非线性参数的精英学习灰狼优化算法[J/OL].广西师范大学学报(自然科学版):1-12[2021-07-25].https://doi.org/10.16088/j.issn.1001-6600.2020093002.

    5.Matlab代码

    6.Python代码

  • 相关阅读:
    韩语难学吗
    Shopify独立站如何做好邮件营销
    用Canvas绘制一个数字键盘
    webpack:详解entry和output一些重要API的使用
    华为机试真题 Java 实现【全量和已占用字符集】
    分销商城小程序开发运营逻辑是什么?
    SQLAlchemy关联表删除策略设置
    搭建域环境
    某地110KV水电站电气一次及发电机保护设计
    【C语言】指针&数组
  • 原文地址:https://blog.csdn.net/u011835903/article/details/126717274