码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 融合差分进化和混合多策略的麻雀搜索算法


    文章目录

    • 一、理论基础
      • 1、麻雀搜索算法
      • 2、麻雀搜索算法的改进
        • 2.1 反向学习初始化种群
        • 2.2 非线性权重因子
        • 2.3 融入差分进化和精英策略
          • 2.3.1 DE算法
          • 2.3.2 精英策略
        • 2.4 DEH-SSA算法描述
    • 二、仿真实验与结果分析
    • 三、参考文献

    一、理论基础

    1、麻雀搜索算法

    请参考这里。

    2、麻雀搜索算法的改进

    2.1 反向学习初始化种群

    反向学习作为一种智能计算中的新技术,其目的是基于当前解,找出与其对应的反向解,再通过适应度计算选择并保存较好的解。通过反向学习策略初始化能有效提高种群的多样性,避免陷入局部最优。反向学习初始化过程如下:
    (1)随机生成临时的初始化种群 X i , j X_{i,j} Xi,j​。
    (2)通过式(1)计算 X i , j X_{i,j} Xi,j​的反向解 X i , j ∗ X_{i,j}^* Xi,j∗​ X i , j ∗ = u b i , j + l b i , j − X i , j (1) X_{i,j}^*=ub_{i,j}+lb_{i,j}-X_{i,j}\tag{1} Xi,j∗​=ubi,j​+lbi,j​−Xi,j​(1)其中, u b i , j ub_{i,j} ubi,j​和 l b i , j lb_{i,j} lbi,j​分别为 X i , j X_{i,j} Xi,j​对应的第 i i i个个体当中第 j j j维的上限和下限。
    (3)生成的初始种群。根据适应度函数计算出对应的反向解 X i , j ∗ X_{i,j}^* Xi,j∗​,若 f i t ( X i , j ∗ ) < f i t ( X i , j ) fit(X_{i,j}^*)fit(Xi,j∗​)<fit(Xi,j​),则选择其反向解 X i , j ∗ X_{i,j}^* Xi,j∗​作为初始种群中的个体。

    2.2 非线性权重因子

    引入非线性权重因子 λ \lambda λ来改进种群中发现者的位置更新公式以平衡算法的局部和全局的搜索能力,同时改善算法的收敛速度。算法迭代前期,应降低发现者个体对于自身位置的依赖性,以获取更大的解空间并提升全局优化能力;迭代后期,应加大对自身位置的依赖程度,以提高收敛速度。非线性权重因子公式为 λ = ( t / i t e r max ⁡ ) 2 \lambda=(t/iter_{\max})^2 λ=(t/itermax​)2此时对发现者位置更新公式进行简化和改进为 X i , j t + 1 = { X i , j t ⋅ λ if    R 2 < S T X i , j t + Q    if    R 2 ≥ S T (3) X_{i,j}^{t+1}=

    \begin{dcases}X_{i,j}^t\cdot\lambda\quad\quad\text{if}\,\,R_2<ST\\[2ex]X_{i,j}^t+Q\quad\,\,\text{if}\,\,R_2\geq ST\end{dcases}" role="presentation" style="position: relative;">\begin{dcases}X_{i,j}^t\cdot\lambda\quad\quad\text{if}\,\,R_2\begin{dcases}X_{i,j}^t\cdot\lambda\quad\quad\text{if}\,\,R_2\tag{3} Xi,jt+1​=⎩ ⎨ ⎧​Xi,jt​⋅λifR2​<STXi,jt​+QifR2​≥ST​(3)为了简化警戒者更新公式,把具有警戒属性个体的位置更新规则改进为:不管是发现者还是追随者,当有危险信号时,处在种群外围的个体还是会朝着安全区域移动;处在种群中间的个体则会逃到最优位置和最差位置之间的 一个随机位置,此时改为 X i , j t + 1 = { X b e s t t + β ⋅ ∣ X i , j t − X b e s t t ∣     if    f i > f g X i , j t + β ⋅ ( X w o r s t t − X b e s t t ) if    f i = f g (4) X_{i,j}^{t+1}=
    \begin{dcases}X_{best}^t+\beta\cdot\left|X_{i,j}^t-X_{best}^t\right|\quad\,\,\,\text{if}\,\,f_i>f_g\\[2ex]X_{i,j}^t+\beta\cdot(X_{worst}^t-X_{best}^t)\quad\text{if}\,\,f_i=f_g\end{dcases}" role="presentation" style="position: relative;">\begin{dcases}X_{best}^t+\beta\cdot\left|X_{i,j}^t-X_{best}^t\right|\quad\,\,\,\text{if}\,\,f_i>f_g\\[2ex]X_{i,j}^t+\beta\cdot(X_{worst}^t-X_{best}^t)\quad\text{if}\,\,f_i=f_g\end{dcases}\begin{dcases}X_{best}^t+\beta\cdot\left|X_{i,j}^t-X_{best}^t\right|\quad\,\,\,\text{if}\,\,f_i>f_g\\[2ex]X_{i,j}^t+\beta\cdot(X_{worst}^t-X_{best}^t)\quad\text{if}\,\,f_i=f_g\end{dcases}
    \tag{4}
    Xi,jt+1​=⎩ ⎨ ⎧​Xbestt​+β⋅∣ ∣​Xi,jt​−Xbestt​∣ ∣​iffi​>fg​Xi,jt​+β⋅(Xworstt​−Xbestt​)iffi​=fg​​(4)

    2.3 融入差分进化和精英策略

    2.3.1 DE算法

    请参考这里。

    2.3.2 精英策略

    为了提升算法局部的寻优能力,引入精英策略在第 t t t次迭代后得到的当前最优解 b e s t best best附近产生符合正态分布的随机数,公式如式(5) X i , j t = b e s t + 0.0001 ⋅ Q (5) X_{i,j}^t=best+0.0001\cdot Q\tag{5} Xi,jt​=best+0.0001⋅Q(5)

    2.4 DEH-SSA算法描述

    综上所述,DEH-SSA算法的具体步骤如图1所示。
    在这里插入图片描述

    图1 DEH-SSA算法流程图

    二、仿真实验与结果分析

    将DEH-SSA与GWO、GSA和SSA进行对比,以文献[1]中表1的10个测试函数为例,实验设置种群规模为30,最大迭代次数为500,每种算法独立运算30次,结果显示如下:
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

    函数:F1
    GWO:最差值: 2.3662e-16, 最优值: 2.0034e-17, 平均值: 8.81e-17, 标准差: 5.284e-17, 秩和检验: 1.9469e-11
    GSA:最差值: 0.0016001, 最优值: 0.00071332, 平均值: 0.0011372, 标准差: 0.0002178, 秩和检验: 1.9469e-11
    SSA:最差值: 6.2061e-32, 最优值: 5.6451e-204, 平均值: 2.76e-33, 标准差: 1.1696e-32, 秩和检验: 1.9469e-11
    DEH-SSA:最差值: 2.3023e-321, 最优值: 0, 平均值: 1.2846e-322, 标准差: 0, 秩和检验: 1
    函数:F2
    GWO:最差值: 2.5232e-06, 最优值: 4.4383e-08, 平均值: 6.9213e-07, 标准差: 6.6774e-07, 秩和检验: 1.5302e-11
    GSA:最差值: 3.2404, 最优值: 0.00015546, 平均值: 0.59244, 标准差: 0.85353, 秩和检验: 1.5302e-11
    SSA:最差值: 6.0795e-36, 最优值: 1.5338e-190, 平均值: 2.0702e-37, 标准差: 1.1092e-36, 秩和检验: 1.5302e-11
    DEH-SSA:最差值: 6.4395e-315, 最优值: 0, 平均值: 2.1476e-316, 标准差: 0, 秩和检验: 1
    函数:F3
    GWO:最差值: 28.759, 最优值: 26.1534, 平均值: 27.1196, 标准差: 0.81453, 秩和检验: 3.0199e-11
    GSA:最差值: 298.8031, 最优值: 24.8654, 平均值: 34.6281, 标准差: 49.8986, 秩和检验: 3.0199e-11
    SSA:最差值: 0.0023779, 最优值: 1.2896e-08, 平均值: 0.00013172, 标准差: 0.00043688, 秩和检验: 0.4553
    DEH-SSA:最差值: 0.00049614, 最优值: 4.4862e-09, 平均值: 9.1409e-05, 标准差: 0.00012524, 秩和检验: 1
    函数:F4
    GWO:最差值: 1.7315, 最优值: 0.24972, 平均值: 0.80272, 标准差: 0.34301, 秩和检验: 3.0199e-11
    GSA:最差值: 8.4023e-08, 最优值: 2.5919e-08, 平均值: 4.8505e-08, 标准差: 1.5034e-08, 秩和检验: 6.6955e-11
    SSA:最差值: 4.6657e-07, 最优值: 6.74e-13, 平均值: 2.4578e-08, 标准差: 8.5011e-08, 秩和检验: 0.34783
    DEH-SSA:最差值: 3.3295e-08, 最优值: 9.8447e-12, 平均值: 8.0363e-09, 标准差: 8.7785e-09, 秩和检验: 1
    函数:F5
    GWO:最差值: 0.0071882, 最优值: 0.00065491, 平均值: 0.0023087, 标准差: 0.0015611, 秩和检验: 3.0199e-11
    GSA:最差值: 7.7826, 最优值: 0.03407, 平均值: 0.57588, 标准差: 1.5389, 秩和检验: 3.0199e-11
    SSA:最差值: 0.0013197, 最优值: 3.7654e-05, 平均值: 0.00045614, 标准差: 0.00039642, 秩和检验: 1.4733e-07
    DEH-SSA:最差值: 0.00027645, 最优值: 8.2782e-07, 平均值: 7.3442e-05, 标准差: 6.1197e-05, 秩和检验: 1
    函数:F6
    GWO:最差值: -3810.037, 最优值: -7144.588, 平均值: -6071.316, 标准差: 779.7763, 秩和检验: 3.0199e-11
    GSA:最差值: -1635.8941, 最优值: -3952.326, 平均值: -2688.7077, 标准差: 472.4738, 秩和检验: 3.0199e-11
    SSA:最差值: -5620.2471, 最优值: -9667.2631, 平均值: -8097.5567, 标准差: 855.3363, 秩和检验: 1.1937e-06
    DEH-SSA:最差值: -8117.1567, 最优值: -10234.8049, 平均值: -9184.2737, 标准差: 574.4599, 秩和检验: 1
    函数:F7
    GWO:最差值: 1.4655e-13, 最优值: 7.9048e-14, 平均值: 1.0747e-13, 标准差: 1.9189e-14, 秩和检验: 1.1183e-12
    GSA:最差值: 0.00025071, 最优值: 0.00012663, 平均值: 0.0001713, 标准差: 3.0602e-05, 秩和检验: 1.2118e-12
    SSA:最差值: 8.8818e-16, 最优值: 8.8818e-16, 平均值: 8.8818e-16, 标准差: 0, 秩和检验: NaN
    DEH-SSA:最差值: 8.8818e-16, 最优值: 8.8818e-16, 平均值: 8.8818e-16, 标准差: 0, 秩和检验: NaN
    函数:F8
    GWO:最差值: 0.10907, 最优值: 0.0087484, 平均值: 0.042806, 标准差: 0.019916, 秩和检验: 3.0199e-11
    GSA:最差值: 0.51912, 最优值: 1.7345e-10, 平均值: 0.070069, 标准差: 0.13543, 秩和检验: 2.6784e-06
    SSA:最差值: 2.0206e-08, 最优值: 5.1392e-13, 平均值: 1.0502e-09, 标准差: 3.6746e-09, 秩和检验: 0.64142
    DEH-SSA:最差值: 1.8072e-09, 最优值: 1.4747e-13, 平均值: 3.0006e-10, 标准差: 5.2324e-10, 秩和检验: 1
    函数:F9
    GWO:最差值: 12.6705, 最优值: 0.998, 平均值: 4.4238, 标准差: 4.2789, 秩和检验: 0.97033
    GSA:最差值: 9.0451, 最优值: 0.998, 平均值: 3.431, 标准差: 1.9715, 秩和检验: 0.66073
    SSA:最差值: 12.6705, 最优值: 0.998, 平均值: 7.292, 标准差: 5.7491, 秩和检验: 0.59871
    DEH-SSA:最差值: 12.6705, 最优值: 0.998, 平均值: 6.8725, 标准差: 5.6797, 秩和检验: 1
    函数:F10
    GWO:最差值: 0.020363, 最优值: 0.00030755, 平均值: 0.0030602, 标准差: 0.0069049, 秩和检验: 5.4941e-11
    GSA:最差值: 0.015849, 最优值: 0.00093105, 平均值: 0.0033569, 标准差: 0.0037192, 秩和检验: 3.0199e-11
    SSA:最差值: 0.00030811, 最优值: 0.00030749, 平均值: 0.00030755, 标准差: 1.3138e-07, 秩和检验: 0.33285
    DEH-SSA:最差值: 0.00030791, 最优值: 0.00030749, 平均值: 0.00030753, 标准差: 1.0381e-07, 秩和检验: 1
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50

    实验结果表明:DEH-SSA在局部和全局的搜索能力、收敛速度和精度、鲁棒性方面都要优于SSA、GWO等算法。

    三、参考文献

    [1] 朱鹏, 杜逆索, 欧阳智. 融合差分进化和混合多策略的麻雀搜索算法[J]. 计算机工程与设计, 2022, 43(6): 1609-1619.

  • 相关阅读:
    【数仓】数仓建模理论及步骤,ER建模,维度建模,星形模型,雪花模型,数据分层
    JDK1.8新特性介绍+Lambda+函数接口+方法、构造方法和数组引用及Stream流
    diskGenius专业版使用:windows系统下加载ext4 linux系统分区并备份还原资源(文件的拷贝进、出)
    MapReduce编程:join操作和聚合操作
    SR800-D 5G工业路由器:将无人驾驶汽车的通信能力提升到极限
    极坐标系下的交换积分次序
    ubuntu18安装常用软件命令
    深挖 ThreadLocal 底层原理?它有什么用?学会之后手撕面试官
    Android 9 第一次开机联网检测系统升级
    redis详解(内部分享版)
  • 原文地址:https://blog.csdn.net/weixin_43821559/article/details/126482555
    • 最新文章
    • 攻防演习之三天拿下官网站群
      数据安全治理学习——前期安全规划和安全管理体系建设
      企业安全 | 企业内一次钓鱼演练准备过程
      内网渗透测试 | Kerberos协议及其部分攻击手法
      0day的产生 | 不懂代码的"代码审计"
      安装scrcpy-client模块av模块异常,环境问题解决方案
      leetcode hot100【LeetCode 279. 完全平方数】java实现
      OpenWrt下安装Mosquitto
      AnatoMask论文汇总
      【AI日记】24.11.01 LangChain、openai api和github copilot
    • 热门文章
    • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
      奉劝各位学弟学妹们,该打造你的技术影响力了!
      五年了,我在 CSDN 的两个一百万。
      Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
      面试官都震惊,你这网络基础可以啊!
      你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
      心情不好的时候,用 Python 画棵樱花树送给自己吧
      通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
      13 万字 C 语言从入门到精通保姆级教程2021 年版
      10行代码集2000张美女图,Python爬虫120例,再上征途
    Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
    正则表达式工具 cron表达式工具 密码生成工具

    京公网安备 11010502049817号