• 基于 Iterative 映射和单纯形法的改进灰狼优化算法-附代码


    基于 Iterative 映射和单纯形法的改进灰狼优化算法


    摘要:为了解决基本灰狼优化算法( GWO) 依赖初始种群和求解精度不高的问题,提出一种基于 Iterative 映射和单纯形法的改进灰狼优化算法( SMIGWO) 。该算法利用混沌 Iterative 映射产生初始灰狼种群,增强全局搜索过程中的种群多样性; 采用逆不完全 Γ 函数更新收敛因子,以平衡算法的全局搜索和局部搜索能力; 利用单纯形法的反射、扩张和收缩操作对当前较差个体进行改进,避免算法陷入局部最优。

    1.灰狼优化算法

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

    2. 改进灰狼优化算法(SMIGWO)

    2.1 混沌序列初始化

    基本 GWO 算法在搜索空间中随机初始化灰狼种群,容易造成灰狼位置分布不均匀,导致种群多样性差。混沌映射具有较好的遍历性和不重复性,因此可以用来代替种群随机初始化。文中采用 Iterative 混沌映射产生灰狼的初始位置,Iterative 映射的数学表达式为:
    x k + 1 = sin ⁡ ( b π / x k ) (7) x_{k+1}=\sin \left(b \pi / x_{k}\right) \tag{7} xk+1=sin(bπ/xk)(7)
    其中,b 是控制参数,b ∈ (0,1),文中取 b = 0. 5。

    2.2 基于逆不完全 Γ 函数的收敛因子

    当| A| > 1 时,灰狼群体将扩大搜索范围寻找猎物,即全局搜索,收敛速度快;当| A| < 1 时,灰狼群体将收缩搜索范围对猎物进行攻击,即局部搜索,收敛速度慢。因此,A 的大小与 GWO 算法的全局搜索和局部搜索能力有很大关系。由式(3)可以看出,A随着收敛因子a 的变化而变化。为了平衡算法的全局搜索和局部搜索能力,文中提出一种基于逆不完全 Γ 函数 的收敛因子:
    a = a min ⁡ + a max ⁡ − a min ⁡ λ ×  gammaincinv  ( λ , 1 − t t max ⁡ ) (8) a=a_{\min }+\frac{a_{\max }-a_{\min }}{\lambda} \times \text { gammaincinv }\left(\lambda, 1-\frac{t}{t_{\max }}\right) \tag{8} a=amin+λamaxamin× gammaincinv (λ,1tmaxt)(8)
    其中: a m a x 、 a m i n a_{max} 、a_{min} amaxamin 为收敛因子 a a a的最大、最小值,t 为当前迭代次
    数, t m a x t_{max} tmax 为最大迭代次数, λ ( λ ≥ 0 ) λ(λ ≥ 0) λ(λ0) 是随机变量,本文取
    λ = 0 . 01 λ =0. 01 λ=001

    2.3 单纯形法

    单纯形法的核心思想包括两重:一是梯度估计,它是从最差顶点 X s 到除最差顶点 X s X_s Xs 以外的所有顶点的质心 X X X的方向向量 g g g;二是通过迭代用一个更好的新顶点来代替最差顶点。新的顶点是由 4 种算子之一产生的:反射、扩张、外收缩和内收缩 。

    反射操作: X r = X c + α ( X c - X s ) X_r = X_c + α(X_c - X_s ) Xr=Xc+α(XcXs) X r X_r Xr 是反射点,反射系数
    α α α 通常取 1。
    扩张操作: $ X_e = X_c + γ(X_r - X_c ) , , X_e$ 是扩张点,扩张系数
    γ 通常取 2。
    外收缩操作: X t = X c + β ( X s - X c ) X_t = X_c + β(X_s - X_c ) Xt=Xc+β(XsXc) X t X_t Xt 是外收缩点,外收
    缩系数 β β β取 0. 5。
    内收缩操作: X w = X c - β ( X s - X c ) X_w = X_c - β(X_s - X_c ) Xw=Xcβ(XsXc) X w X_w Xw 是内收缩点,内
    收缩系数 β β β取 0. 5。

    综合以上策略描述,给出 SMIGWO 的具体步骤:

    1. 设置算法参数:种群规模N,最大迭代次数t max ,反射系数 α,扩张系数 γ,内、外收缩系数 β,随机生成 a、A、C 等参数;

    2. 利用混沌 Iterative 映射初始化灰狼种群;

    3. 计算种群中每个灰狼个体的适应度值,并按照适应度值进行排序,选择前 3 个最好的狼,记录位置 X α 、X β 和 X δ,对应的适应度值 f(X α )、f(X β ) 和 f(X δ ),中心位置为 X c =(X α +X β ) /2。

    4. 对较差灰狼位置 X s 进行反射,得到反射点 X r 。

    5. 若 f(X r ) < f(X α ) 说明反射方向正确,执行扩张操作得到扩张点 X e ,若 f(X e ) < f(X α ),则用 X e 取代 X s ;否则,用X r 取代 X s 。

    6. 若 f(X r ) > f(X s ),说明反射方向不正确,执行外收缩操作得到外收缩点 X t ,若 f(X t ) < f(X s ),则用 X t 取代 X s 。

    7. 若f(X α ) < f(X r ) < f(X s ),执行内收缩操作得到内收缩点 X w ,若 f(X w ) < f(X s ),则用 Xw 取代 X s ;否则,用 X t 取代 X s 。

    8. 利用式(5) 和(6) 更新种群中其他 X 灰狼个体的位置;

    9. 利用式(8) 计算a,然后利用式(3) 和(4) 更新A,C的值;

    10. 判断算法是否满足结束条件,若满足,则算法结束,输出最优灰狼位置 X α ;否则,执行步骤 3)。

    3.实验结果

    请添加图片描述

    4.参考文献

    [1]王梦娜,王秋萍,王晓峰.基于Iterative映射和单纯形法的改进灰狼优化算法[J].计算机应用,2018,38(S2):16-20+54.

    5.Matlab代码

    6.Python代码

  • 相关阅读:
    ES 全字段模糊检索时分词方式对检索结果的影响
    Compose 组件 - 分页器 HorizontalPager、VerticalPager
    python系列:FastAPI学习-29 uvicorn 使用 log_config 参数设置 logger 日志格式
    【MindSpore易点通】如何保存模型进行checkpoint对比以及Print算子使用说明
    java毕业设计程序设计类课程的课堂教学效果评价系统Mybatis+系统+数据库+调试部署
    该如何在Telegram上进行群组营销
    网络原理——初识
    苹果为小学生推出编程指南
    【lesson13】进程地址空间收尾
    Java面试题及答案(2021年Java面试题大全带答案)
  • 原文地址:https://blog.csdn.net/u011835903/article/details/125398575