• 基于自适应权重和柯西变异的鲸鱼优化算法-附代码


    基于自适应权重和柯西变异的鲸鱼优化算法


    摘要:为了改进鲸鱼算法(WOA)容易陷入局部最优和收敛精度低的问题,提出了基于自适应权重和柯西变异的鲸鱼算法(WOAWC).首先通过柯西逆累积分布函数方法对鲸鱼位置进行变异,提高了鲸鱼算法的全局搜索能力,避免了陷入局部最优.另外通过自适应权重的方法改进了鲸鱼算法的局部搜索能力,提高了收敛精度;

    1.鲸鱼优化算法

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

    2. 改进鲸鱼优化算法

    2.1 柯西分布的逆累积分布函数

    柯西分布在原点处峰值比较小, 而在两端的分 布比较长. 所以, 柯西变异可以在当前变异个体附近 生成更大的扰动, 使得柯西变异范围比较广, 因此, 采用柯西变异的两端分布更容易跳出局部极值, 所 以本文采用了柯西逆累积分布函数, 充分利用柯西 两端变异的效果.
    当鲸群在进行全局搜索时, 需要随机选取一头 鲸鱼作为参考鲸鱼, 然后其它鲸鱼向参考鲸鱼随机 选取靠近. 参考鲸鱼的选择影响鲸鱼算法的全局搜 索, 原算法中参考鲸鱼是随机选择的, 因此不容易找 到全局最优解, 针对这个问题受文献 [ 9 ] [9] [9] 的启发, 本 文选取了柯西逆累积分布函数对鲸鱼进行变异, 通 过柯西分布 [ 9 ] { }^{[9]} [9] 有很长的尾巴的特点, 让鲸鱼个体朝 更广的范围变异. 同时, 当鲸鱼进行柯西逆累积分布 函数变异时, 鲸鱼会采用螺旋行走进行局部寻优, 从 而避免了鲸鱼盲目变异的特点. 柯西逆累积分布函 数如公式 (9) 所示, 将公式 (7)、(8)改成公式 (10).
    F − 1 ( p ; x 0 , γ ) = x 0 + γ ⋅ tan ⁡ ( π ⋅ ( p − 1 2 ) ) (9) F^{-1}\left(p ; x_{0}, \gamma\right)=x_{0}+\gamma \cdot \tan \left(\pi \cdot\left(p-\frac{1}{2}\right)\right) \tag{9} F1(p;x0,γ)=x0+γtan(π(p21))(9)

    X ⃗ ( t + 1 ) = x i j ( t ) + A ⃗ ⋅ tan ⁡ ( π ⋅ ( r − 1 2 ) ) (10)

    X(t+1)=xij(t)+Atan(π(r12))" role="presentation" style="position: relative;">X(t+1)=xij(t)+Atan(π(r12))
    \tag{10} X (t+1)=xij(t)+A tan(π(r21))(10)
    式中, F − 1 F^{-1} F1 是柯西分布的逆累积分布函数, x i j x_{i j} xij 是变异前的 第 i i i 头鲸鱼的 j j j 个位置点, γ = A ⃗ , r ∈ [ 0 , 1 ] \gamma=\vec{A}, r \in[0,1] γ=A ,r[0,1] 的均匀分布.

    2.2 自适应权重

    惯性权重是粒子群中很重要的一个参数, 当惯 性权重较大时,算法搜索能力较强,可以搜索较大的 区域,当惯性权重较小时,算法后期搜索能力较强, 可以在最优解周围精细搜索.
    鲸鱼进行局部寻优时, 是以公式 (2) 和公式 (5) 进行局部搜索的, 其中当鲸鱼以公式 (2) 向局部最 优解靠近时, 这时只能靠近局部最优解, 而不能进行 更好的局部寻优, 针对这个问题受文献 [10] 的启 发, 提出了新的自适应权重方法, 鲸鱼接近食物的时 候,采用较小的自适应权重改变此时最优的鲸鱼的 位置, 使得鲸鱼局部寻优能力得到提高. 自适应权值 公式如 (11) 所示, 改进式 (2) 的公式如 (12) 所示:
    w = sin ⁡ ( π ⋅ t 2 ⋅ i t max ⁡ + π ) + 1 (11) w=\sin \left(\frac{\pi \cdot t}{2 \cdot i t_{\max }}+\pi\right)+1 \tag{11} w=sin(2itmaxπt+π)+1(11)

    X ⃗ ( t + 1 ) = w ⋅ X ∗ → ( t ) − A ⃗ ⋅ D ⃗ (12)

    X(t+1)=wX(t)AD" role="presentation" style="position: relative;">X(t+1)=wX(t)AD
    \tag{12} X (t+1)=wX (t)A D (12)
    式中, t t t 为当前迭代次数, i t max ⁡ i t_{\max } itmax 是最大迭代次数.

    请添加图片描述

    3.实验结果

    请添加图片描述

    4.参考文献

    [1]郭振洲,王平,马云峰,王琦,拱长青.基于自适应权重和柯西变异的鲸鱼优化算法[J].微电子学与计算机,2017,34(09):20-25.

    5.Matlab代码

    6.Python代码

  • 相关阅读:
    [Leetcode]6032. 得到要求路径的最小带权子图
    Redis key基本命令
    [答疑]《实现领域驱动设计》的译者其实没错?(二)
    Java.lang.Class类 getClasses()方法有什么功能呢?
    解决调用微信公众平台-获取草稿列表响应中文乱码问题
    Oracle常用对象精解(2)
    【数据结构与算法】JavaScript实现双向链表
    SpringCloud学习笔记万字整理(无广版在博客)
    详解欧拉计划第349题:兰顿的蚂蚁
    初始 List 接口
  • 原文地址:https://blog.csdn.net/u011835903/article/details/126206032