• 基于混沌权重和精英引导的鲸鱼优化算法-附代码


    基于混沌权重和精英引导的鲸鱼优化算法


    摘要: 针对鲸鱼优化算法( WOA) 存在收敛精度低和收敛速度慢的问题,提出基于混沌权重和精英引导的先进鲸鱼优化算法( AWOA) 。考虑算法前期搜索的随机性对收敛速度的影响,引入精英个体引导机制,利用精英个体的进化反馈信息及时调整种群的搜索方向,加强算法的全局搜索能力。在算法后期引入混沌动态权重因子加强算法的局部搜索能力,提高算法的收敛精度。

    1.鲸鱼优化算法

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

    2. 改进鲸鱼优化算法

    2.1 精英个体引导机制

    在基本的 WOA 中,鲸鱼游走阶段的个体位置是通过选取随机个体来引导更新, 虽然能增加种群的搜索范围, 但 完全依靠随机性, 增加了种群无效搜索的次数, 影响收玫速 度。为了加快对猎物搜索的速度, 提出一种精英个体引导 机制。选取当前种群最优个体作为精英个体引导种群位置 更新,位置更新公式变为
    X ( t + 1 ) = X p ( t ) − d i r ⋅ A ⋅ D (7) \boldsymbol{X}(t+1)=\boldsymbol{X}_{p}(t)-\boldsymbol{d i r} \cdot \boldsymbol{A} \cdot \boldsymbol{D} \tag{7} X(t+1)=Xp(t)dirAD(7)
    式中 X p ( t ) X_{\mathrm{p}}(t) Xp(t) 为第 t t t 次迭代时,种群适应度最优的个体位 置。dir 为种群搜索方向因子, 比较当前种群最优个体的适 应度值 fit ( X p ( t ) ) \left(\boldsymbol{X}_{\mathrm{p}}(t)\right) (Xp(t)) 与上一代种群最优个体适应度 f i t ( X p f i t\left(\boldsymbol{X}_{\mathrm{p}}\right. fit(Xp ( t − 1 ) ) (t-1)) (t1)), 若 f i t ( X p ( t ) ) > f i t ( X p ( t − 1 ) ) f i t\left(\boldsymbol{X}_{\mathrm{p}}(t)\right)>f i t\left(\boldsymbol{X}_{\mathrm{p}}(t-1)\right) fit(Xp(t))>fit(Xp(t1)), 则 dir ⁡ \operatorname{dir} dir 为单位向 量, 否则 dir ⁡ \operatorname{dir} dir 向量的每一维通过下式得到
    d i r j = { − 1 , A j ⋅ [ X p j ( t ) − X p j ( t − 1 ) ] > 0 1 ,  其他  (8) d i r_{j}=\left\{

    1,Aj[Xpj(t)Xpj(t1)]>01, 其他 " role="presentation" style="position: relative;">1,Aj[Xpj(t)Xpj(t1)]>01, 其他 
    \right. \tag{8} dirj={1,Aj[Xpj(t)Xpj(t1)]>01, 其他 (8)
    由式 (7)、式 (8) 可知, 精英个体使种群朝靠近最优解 位置进行搜索, 搜索方向因子则利用最优个体的进化反馈 信息对种群的搜索方向进行调整, 两者的加入使种群搜索 更具有目的性, 避免了因随机个体与搜索矢量 A A A 的随机性 而导致收玫速度较慢的问题。值得注意的是, 精英个体的 引入使得最优鲸鱼个体在鲸鱼种群搜索中扮演着领导者的 角色, 所以, 其位置的好坏决定了种群的搜索效率, 为了提 高领导者的质量, 在每次迭代中, 对精英个体进行一次随机 扰动与反向搜索操作 [ 15 ] { }^{[15]} [15], 得到两个新的个体 X p ∗ , X p ∗ ∗ X_{\mathrm{p}}^{*}, X_{\mathrm{p}}^{* *} Xp,Xp∗∗, 其 求解公式如下
    X p ∗ = X min ⁡ + r ⋅ ( X max ⁡ − X min ⁡ ) , X p ∗ k = X max ⁡ + X min ⁡ − X p ∗ (9) \boldsymbol{X}_{\mathrm{p}}^{*}=\boldsymbol{X}_{\min }+\boldsymbol{r} \cdot\left(\boldsymbol{X}_{\max }-\mathrm{X}_{\min }\right), \boldsymbol{X}_{p}^{* k}=\boldsymbol{X}_{\max }+\boldsymbol{X}_{\min }-\boldsymbol{X}_{\mathrm{p}}^{*} \tag{9} Xp=Xmin+r(XmaxXmin),Xpk=Xmax+XminXp(9)
    式中 X min  , X max  X_{\text {min }}, X_{\text {max }} Xmin ,Xmax  分别为搜索空间的上界和下界, r r r [ 0 , 1 ] [0,1] [0,1] 区间的随机向量。将得到的 X p ∗ , X p ∗ k X_{\mathrm{p}}^{*}, \boldsymbol{X}_{\mathrm{p}}^{* k} Xp,Xpk 替换种群中适应度最 差的两个个体, 并更新当前种群最优个体 X p X_{p} Xp

    2.2 混沌动态权重因子

    鲸鱼算法在进入气泡网攻击阶段后, 为了加快对全局 最优值的搜索采取收缩包围机制, 然而这种机制末充分利 用全局最优解的位置信息, 只能使鲸鱼个体缓慢靠近局部 最优解, 无法在猎物附近进行快速精细搜索, 导致算法收玫 速度较慢、收敛精度较低。文献 提出非线性自适 应权重策略, 提高了 WOA 的局部寻优能力, 算法寻优速度 得到了提高, 但同时也增加了算法的计算复杂度。本文引 入一种计算简单的动态混沌权重因子, 其表达式如下
    ω ( t + 1 ) = 4 ω ( t ) ⋅ ( 1 − ω ( t ) ) , t = 1 , ⋯   , t max ⁡ (10) \omega(t+1)=4 \omega(t) \cdot(1-\omega(t)), t=1, \cdots, t_{\max }\tag{10} ω(t+1)=4ω(t)(1ω(t)),t=1,,tmax(10)
    式中 ω ( 1 ) \omega(1) ω(1) [ 0 , 1 ] [0,1] [0,1] 区间的随机数, 将式 (10) 代入式 (6), 并引入一个随迭代次数变化的收㪉因子 λ \lambda λ, 改进后的位置 更新
    X ( t + 1 ) = ω ( t ) ⋅ λ ⋅ X best  − A ⋅ D , λ = ( t max ⁡ − t ) / t max ⁡ (11) \boldsymbol{X}(t+1)=\omega(t) \cdot \lambda \cdot \boldsymbol{X}_{\text {best }}-\boldsymbol{A} \cdot \boldsymbol{D}, \lambda=\left(t_{\max }-t\right) / t_{\max }\tag{11} X(t+1)=ω(t)λXbest AD,λ=(tmaxt)/tmax(11)
    从式 (10) 中可知, 本文选取 Logistic 混沌映射, 利用其随机性、遍历性等优点动态调整惯性权重,使鲸鱼个体能在猎物周围进行更加精细、彻底地搜索,加快了算法的收敛速度,同时也降低了算法陷入局部最优的概率。其次,参数 λ随着迭代次数的增加而自适应的减小,能有效控制权重因子混沌变化的范围,缩小鲸鱼种群的寻优区域,使算法迅速收敛于全局最优解,保证了算法的收敛性。

    改进算法步骤:

    初始化参数。设置种群规模大小为 N N N, 解空间维度为 d d d, 最大迭代次数为 t max ⁡ t_{\max } tmax, 产生初始化鲸鱼种群 { X i , i = 1 , 2 \left\{\boldsymbol{X}_{i}, i=1,2\right. {Xi,i=1,2, ⋯   , N } \cdots, N\} ,N};
    while ( t < t max ⁡ ) \left(t(t<tmax) do
    计算每一个鲸鱼个体的适应度值 { f ( X i ) , i = 1 , 2 , ⋯   \left\{f\left(X_{i}\right), i=1,2, \cdots\right. {f(Xi),i=1,2,, N } N\} N}, 根据式 (9) 得到 X p ∗ , X p ∗ k \boldsymbol{X}_{\mathrm{p}}^{*}, \boldsymbol{X}_{\mathrm{p}}^{* k} Xp,Xpk 并替换当前种群最差与次差 的两个个体, 选出当前种群最优个体 X p X_{\mathrm{p}} Xp, 更新迄今为止找 到的最优个体 X best  X_{\text {best }} Xbest ;
    for i = 1 i=1 i=1 to N N N do
    按式 (3) 更新 a a a 的值, 更新其他参数 A , C , l A, C, l A,C,l p p p;
    if ( ∣ A ∣ ⩾ 1 ) (|A| \geqslant 1) (A1) do
    根据式 (7)、式 (8) 更新当前个体位置;
    else if ( ∣ A ∣ < 1 ) (|A|<1) (A<1) do
    if ( p ⩾ 0.5 ) d o (p \geqslant 0.5) \mathrm{do} (p0.5)do
    根据式 (11) 更新当前个体位置;
    else if ( p < 0.5 ) (p<0.5) (p<0.5) do
    根据式 (5) 更新当前个体的位置;
    end if
    end if
    end for
    t = t + 1 t=t+1 t=t+1
    ω ( t + 1 ) = 4 ω ( t ) ⋅ ( 1 − ω ( t ) ) ; \omega(t+1)=4 \omega(t) \cdot(1-\omega(t)) ; ω(t+1)=4ω(t)(1ω(t));
    end while

    3.实验结果

    请添加图片描述

    4.参考文献

    [1]黄辉先,张广炎,陈思溢,胡拚.基于混沌权重和精英引导的鲸鱼优化算法[J].传感器与微系统,2020,39(05):113-116.

    5.Matlab代码

    6.Python代码

  • 相关阅读:
    Linux驱动开发十六.input系统——3.系统自带的input驱动
    Drone-Yolo:一种高效的无人机图像目标检测神经网络方法
    laravel+sse实现实时推送
    [13]javascript的类型检测的方法
    STM32 HAL库高级定时器输入捕获脉宽测量
    docker安装和使用
    ExoPlayer架构详解与源码分析(2)——Player
    Docker总结
    【微积分】算法数学基础之微积分
    Rust安装(windows)
  • 原文地址:https://blog.csdn.net/u011835903/article/details/125964937