• 混合正弦余弦算法和 Lévy飞行的麻雀算法-附代码


    混合正弦余弦算法和 Lévy飞行的麻雀算法


    摘要: 针对基本麻雀搜索算法抗局部最优能力弱的问题,提出了一种混合正弦余弦算法和Lévy飞行的麻雀算法(ISSA)。首先,在发现者位置更新方式中融合正弦余弦算法思想并引入非线性动态学习因子,平衡局部和全局的开掘能力,并加快收敛速度;然后,在跟随者位置更新方式中引进Lévy飞行策略,对当前最优解进行扰动变异,加强局部逃逸能力;

    1.麻雀搜索算法

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

    2. 改进麻雀算法

    2.1 融合正弦余弦算法(SCA)思想

    基本 SSA 算法中,在 R 2 非线性正弦学习因子,在搜索前期,具有较大的值,有助于全局探索,在搜索后期,具有较小的值,有助于提升局部开拓能力,提高精确度。学习因子公式和改进后的发现者位置公式如下:
    ω = ω min ⁡ + ( ω max ⁡ − ω min ⁡ ) ⋅ sin ⁡ ( t π / i t e r max ⁡ ) (7) \omega=\omega_{\min }+\left(\omega_{\max }-\omega_{\min }\right) \cdot \sin \left(t \pi / i t e r_{\max }\right) \tag{7} ω=ωmin+(ωmaxωmin)sin(tπ/itermax)(7)

    X i , j t + 1 = { ( 1 − ω ) ⋅ X i , j t + ω ⋅ sin ⁡ ( r 1 ) ⋅ ∣ r 2 ⋅ X b e t t − X i , j t ∣ R 2 < S T ( 1 − ω ) ⋅ X i , j t + ω ⋅ cos ⁡ ( r 1 ) ⋅ ∣ r 2 ⋅ X b e t t − X i , j t ∣ R 2 ⩾ S T (8) X_{i, j}^{t+1}=

    {(1ω)Xi,jt+ωsin(r1)|r2XbettXi,jt|R2<ST(1ω)Xi,jt+ωcos(r1)|r2XbettXi,jt|R2ST" role="presentation" style="position: relative;">{(1ω)Xi,jt+ωsin(r1)|r2XbettXi,jt|R2<ST(1ω)Xi,jt+ωcos(r1)|r2XbettXi,jt|R2ST
    \tag{8} Xi,jt+1={(1ω)Xi,jt+ωsin(r1) r2XbettXi,jt (1ω)Xi,jt+ωcos(r1) r2XbettXi,jt R2<STR2ST(8)
    式 (8) 中, r 1 r_{1} r1 [ 0 , 2 π ] [0,2 \pi] [0,2π] 内的随机数, r 2 r_{2} r2 [ 0 , 2 ] [0,2] [0,2] 内的随机数。

    2.2 Lévy飞行策略

    当发现者迭代一定次数且适应度值不变时, 此 时跟随者成了发现者, 为避免算法陷人局部最优, 在跟随者更新公式中引人 Lévy飞行策略, 提高全局 搜索能力。改进后的公式如下:
    X i , j t + 1 = { Q ⋅ exp ⁡ ( X worst  t − X i , j t i 2 ) i > n 2 X p t + 1 + X p t + 1 ⊗ Levy ⁡ ( d )  other  (9) X_{i, j}^{t+1}=\left\{

    Qexp(Xworst tXi,jti2)i>n2Xpt+1+Xpt+1Levy(d) other " role="presentation" style="position: relative;">Qexp(Xworst tXi,jti2)i>n2Xpt+1+Xpt+1Levy(d) other 
    \right.\tag{9} Xi,jt+1={Qexp(i2Xworst tXi,jt)Xpt+1+Xpt+1Levy(d)i>2n other (9)
    式 (9)中, X p t + 1 X_{p}^{t+1} Xpt+1 是当前发现者占领的最佳位置, Lévy飞行机制如下:
    Levy ⁡ ( x ) = 0.01 × r 3 × σ ∣ r 4 ∣ 1 / ξ ) (10) \operatorname{Levy}(x)=0.01 \times \frac{r_{3} \times \sigma}{\left|r_{4}\right|^{1 / \xi)}}\tag{10} Levy(x)=0.01×r41/ξ)r3×σ(10)
    式 (10) 中 r 3 、 r 4 r_{3} 、 r_{4} r3r4 均为 [ 0 , 1 ] [0,1] [0,1] 范围内的随机数, ξ \xi ξ 的值可取 1. 5, σ 计算方式如下:
    σ = ( Γ ( 1 + ξ ) × sin ⁡ ( π ξ / 2 ) Γ ( ( 1 + ξ ) / 2 ) × ξ × 2 ( ( ξ − 1 ) / 2 ) ) ( 1 / ξ ) (11) \sigma=\left(\frac{\Gamma(1+\xi) \times \sin (\pi \xi / 2)}{\Gamma((1+\xi) / 2) \times \xi \times 2^{((\xi-1) / 2)}}\right)^{(1 / \xi)} \tag{11} σ=(Γ((1+ξ)/2)×ξ×2((ξ1)/2)Γ(1+ξ)×sin(πξ/2))(1/ξ)(11)
    式 (11) 中 Γ ( x ) = ( x − 1 ) \Gamma(x)=(x-1) Γ(x)=(x1) !

    混合正弦余弦算法和 Lévy 飞行的麻雀算法步骤流程图如下:
    请添加图片描述

    3.实验结果

    请添加图片描述

    4.参考文献

    [1]毛清华,张强,毛承成,柏嘉旋.混合正弦余弦算法和Lévy飞行的麻雀算法[J/OL].山西大学学报(自然科学版):1-6[2021-04-09].https://doi.org/10.13451/j.sxu.ns.2020135.

    5.Matlab代码

    6.Python代码

  • 相关阅读:
    第五章. 可视化数据分析分析图表—图表的常用设置2
    当 K8s资源管理 与 JVM参数(Xms、Xmx)相遇
    使用 PyTorch Edge Delegate 加速移动设备端的 PyTorch 模型
    新闻速递 | MobTech袤博科技参与中国信通院“绿色SDK产业生态共建行动”
    [GXYCTF2019]BabyUpload - 文件上传+绕过(后缀&文件类型&文件内容&.htaccess)
    第11讲:DQL数据查询语句综合案例实战
    【软考】UML中的图之对象图
    职场Excel:求和家族,不简单
    15.cuBLAS开发指南中文版--cuBLAS中的Level-1函数rotg()
    【ESP32 IDF】用RMT控制 WS2812 彩色灯带
  • 原文地址:https://blog.csdn.net/u011835903/article/details/125946480