• 基于反馈机制的鲸鱼优化算法-附代码


    基于反馈机制的鲸鱼优化算法


    摘要:针对基本鲸鱼优化算法容易陷入局部最优和收敛速度慢的问题,提出了一种基于反馈机制的鲸鱼优化算法。为了提高算法的全局搜索能力以及局部开发能力,在鲸鱼寻找食物的阶段,通过鲸鱼的自我反馈以及鲸鱼间的反馈( 基于均值个体) 来提高鲸鱼算法的全局搜索能力,避免算法陷入局部最优。且通过最优位置的鲸鱼自我反馈、其它鲸鱼于最优位置的鲸鱼反馈( 基于正态分布) 来解决收敛速度慢的问题。

    1.鲸鱼优化算法

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

    2. 改进鲸鱼优化算法

    2.1 游走觅食阶段的反馈

    在这个阶段中, WOA 随机选取一头鲸鱼的位置作为指导信息进行寻优, 这种策略虽然可以有效地保 持种群的多样性, 但这种随机选择的不确定性导致 W O A \mathrm{WOA} WOA 的稳定性变差、寻优速度变慢以及寻优精度不高 的问题。因此, 将基于均值个体的反馈机制加入该阶段, 每个鲸鱼个体通过实时分享各自的位置来获取整 个种群位置的平均值, 然后所有鲸鱼都以这个平均位置作为新位置更新的指导信息。均值向量的引入可 以避免种群过早陷入局部最优, 以及出现种群大量趋同的情况; 且综合整个种群的有用信息进行寻优指 导,避免随机个体选择的过于盲目性。反馈数学模型如下:
    X ⃗ t + 1 = X ⃗ t + r ⃗ ⋅ ( X ⃗ − X ⃗ t ) (9) \vec{X}_{t+1}=\vec{X}_{t}+\vec{r} \cdot\left(\vec{X}-\vec{X}_{t}\right) \tag{9} X t+1=X t+r (X X t)(9)
    式中: X ⃗ \vec{X} X 为当前所有 X ⃗ t \vec{X}_{t} X t 的平均向量。

    2.2 包围收缩和螺旋捕食阶段的反馈

    在这个阶段中,WOA 选取一头位置最优的鲸鱼作为导航的目标,这样可以保证鲸鱼都往最优解靠拢,加快种群的收敛速度。但在进化的过程中,很有可能种群中的最优个体( 鲸鱼) 在连续的几代都得不到改进,从而减弱最优个体的引导作用,造成种群过早陷入局部最优,出现个体大量趋同的情况。因此,将基于标准差的反馈机制引入该阶段,通过计算最优个体和均值个体的标准差,再以基于该标准差和最优个体的正态分布来更新最优个体,从而避免连续多代最优个体无法改进的缺陷。基于标准差的反馈机制的数学模型如下:
    s t d → = ∣ X ⃗ ∗ − X ⃗ ∣ (10) \overrightarrow{s t d}=\left|\vec{X}^{*}-\vec{X}\right| \tag{10} std = X X (10)

    X ⃗ new  ∗ = randn ⁡ ( X ⃗ ∗ , s t d → ) (11)

    Xnew =randn(X,std)" role="presentation" style="position: relative;">Xnew =randn(X,std)
    \tag{11} X new =randn(X ,std )(11)
    式中: X ⃗ ∗ \vec{X}^{*} X 为最优位置向量; randn ⁡ ( X ⃗ ∗ , s t d → ) \operatorname{randn}\left(\vec{X}^{*}, \overrightarrow{s t d}\right) randn(X ,std ) 是以 X ⃗ ∗ \vec{X}^{*} X 为均值, s t d → \overrightarrow{s t d} std 为标准差的正态分布, 通过逐维求正太 分布随机变量求得, 最终产生一个新的最优解 X ⃗ n e w ∗ \vec{X}_{\mathrm{new}}^{*} X new, 若 X ⃗ new  ∗ \vec{X}_{\text {new }}^{*} X new  的适应度值( 函数值) 小于 X ⃗ \vec{X} X , 则 X ⃗ ∗ = X ⃗ new  ∗ \vec{X}^{*}=\vec{X}_{\text {new }}^{*} X =X new , 否 则 X ⃗ ∗ \vec{X}^{*} X 保持不变。

    请添加图片描述

    3.实验结果

    请添加图片描述

    4.参考文献

    [1]范家承,何杰光.基于反馈机制的鲸鱼优化算法[J].广东石油化工学院学报,2018,28(04):47-51.

    5.Matlab代码

    6.Python代码

  • 相关阅读:
    Linux用户和权限之一
    QT基础 - 文件目录操作
    nginx配置奇怪的问题
    学习编写代码的挑战与经验
    玄机靶场 第一章 应急响应- Linux入侵排查
    MySQL锁与死锁分析
    java毕业设计保险公司管理系统mybatis+源码+调试部署+系统+数据库+lw
    ClickHouse进阶(十一):Clickhouse数据字典-1
    使用cpolar发布群晖NAS博客网站 1(7.X版)
    Blazor 国际化多语言界面 (I18nText )
  • 原文地址:https://blog.csdn.net/u011835903/article/details/126167427