文章目录

  • 一、理论基础
    • 1、基本麻雀搜索算法
    • 2、螺旋探索与自适应混合变异的麻雀搜索算法
      • (1)ICMIC混沌初始化种群
      • (2)螺旋探索策略
      • (3)基于精英差分和随机反向的自适应混合变异
      • (4)SHSSA算法的伪代码
  • 二、仿真实验与结果分析
  • 三、参考文献

一、理论基础

1、基本麻雀搜索算法

请参考这里。

2、螺旋探索与自适应混合变异的麻雀搜索算法

(1)ICMIC混沌初始化种群

混沌变量具有遍历性和规律性,常被应用于优化问题中。Logistic映射和Tent映射是最常用的混沌模型,但是两者在迭代区域内的折叠次数有限,且存在有理数不动点。ICMIC映射是一种映射折叠次数无线的混沌模型,相较于Logistic映射和Tent映射,该映射具有遍历均匀和收敛较快等优点。因此本文采用ICMIC映射初始化SSA种群,ICMIC映射的数学表达式如下:{zn+1=sin⁡(απzn),α∈(0,1)−1≤zn≤1,zn≠0(1)\begin{dcases}z_{n+1}=\sin(\frac{\alpha\pi}{z_n}),\,\,\alpha\in(0,1)\\-1\leq z_{n}\leq1,\,\,z_n\neq0\end{dcases}\tag{1}⎩⎨⎧​zn+1​=sin(zn​απ​),α∈(0,1)−1≤zn​≤1,zn​​=0​(1)将ICMIC混沌映射到搜索空间中,得到种群初始位置:xi=xlb+(xub−xlb)1+zi2(2)x_i=x_{lb}+(x_{ub}-x_{lb})\frac{1+z_i}{2}\tag{2}xi​=xlb​+(xub​−xlb​)21+zi​​(2)其中,xlbx_{lb}xlb​、xubx_{ub}xub​分别为每个个体在各维度的上下界,ziz_izi​为式(1)产生的混沌序列,本文α=0.7\alpha=0.7α=0.7。
假设种群规模为30,两种方法在二维搜索空间中产生的初始化种群分布图如图1所示,从图中可以看出,相比随机序列,通过ICMIC混沌序列产生的初始种群分布更均匀,遍历性更好。

(a)随机初始化
(b)ICMIC混沌初始化 图1 初始化种群分布图

(2)螺旋探索策略

本文在发现者位置更新方式中加入一种螺旋探索因子,使得发现者拥有多种搜索路径来更好的调整自身位置,从而提高算法的全局搜索性能。具备螺旋探索的发现者位置更新公式如下:xidt+1={z⋅xidt⋅exp⁡(−i/αT),R2<STxidt+Q⋅L⋅z,R2≥STx_{id}^{t+1}=\begin{dcases}z\cdot x_{id}^t\cdot\exp(-i/\alpha T),\quad R_2<ST\\x_{id}^t+Q\cdot L\cdot z,\quad\quad\quad\,\,\,\, R_2\geq ST\end{dcases}xidt+1​={z⋅xidt​⋅exp(−i/αT),R2​<STxidt​+Q⋅L⋅z,R2​≥ST​z=exp⁡(b×p)⋅cos⁡(2πp)(3)z=\exp(b\times p)\cdot\cos(2\pi p) \tag{3}z=exp(b×p)⋅cos(2πp)(3)其中,zzz为螺旋探索因子,bbb为螺旋形状常数,ppp表示路径系数,为[−1,1][-1,1][−1,1]中的随机数。
融入螺旋探索后,发现者将以螺旋形式在搜索空间中搜索,扩展了发现者探索未知区域的能力,使算法跳出局部最优的可能性增加,有效提高算法的全局搜索性能。

(3)基于精英差分和随机反向的自适应混合变异

为了加快算法收敛速度、改善算法跳出局部最优的能力,本文提出一种自适应混合变异策略,在每次迭代后对最优麻雀进行扰动。
(1)精英差分变异
考虑到精英个体包含更多有益信息,为了加强精英个体间的信息交流,本文提出一种精英差分变异策略,公式如下:xbest′=r1(x2−xbest)+r2(x3−xbest)(4)x_{best}'=r_1(x_2-x_{best})+r_2(x_3-x_{best})\tag{4}xbest′​=r1​(x2​−xbest​)+r2​(x3​−xbest​)(4)其中,r1r_1r1​、r2r_2r2​为(0,1)(0,1)(0,1)的随机数。xbestx_{best}xbest​为最优解,x2x_2x2​为次优解,x3x_3x3​为第三优解。
精英解的引入,使得算法的进化方向更明确,不再具有盲目性。在算法迭代后,通过式(4)产生新解,能够提升算法在当前最优解附近发现全局最优解的可能性。
(2)随机反向学习
本文提出一种新的随机反向学习策略,通过在一般反向学习中引入随机因子,进一步扩展反向解位置,增强算法跳出局部极值的能力。随机反向学习的公式如下:xbest′=k1xlb+k2(xub−xbest)(5)x_{best}'=k_1x_{lb}+k_2(x_{ub}-x_{best})\tag{5}xbest′​=k1​xlb​+k2​(xub​−xbest​)(5)其中,k1k_1k1​和k2k_2k2​为随机因子,均为(0,1)(0,1)(0,1)之间的随机数。
(3)自适应混合变异
SSA算法求得全局最优解的关键是算法能否有效跳出局部最优。若只是加入单一的变异策略,则在加快收敛速度的同时也会导致算法陷入局部最优。因此,本文将精英差分变异和随机反向学习融入到SSA中,利用判定系数rrr对最优麻雀位置进行混合变异扰动。如公式(6)所示,当r<0.5r<0.5r<0.5时,采用精英差分策略进行小范围扰动;当r≥0.5r\geq0.5r≥0.5时,采用随机反向策略进行大范围扰动。两种策略相辅相成,促使算法跳出局部极值空间,在求解不同优化问题时的适应性更强。xbest′={r1(x2−xbest)+r2(x3−xbest),r<0.5k1xlb+k2(xub−xbest),r≥0.5(6)x_{best}'=\begin{dcases}r_1(x_2-x_{best})+r_2(x_3-x_{best}),\quad r<0.5\\k_1x_{lb}+k_2(x_{ub}-x_{best}),\quad\quad\quad\quad\, r\geq 0.5\end{dcases}\tag{6}xbest′​={r1​(x2​−xbest​)+r2​(x3​−xbest​),r<0.5k1​xlb​+k2​(xub​−xbest​),r≥0.5​(6)其中,rrr为0到1的随机数。
由于变异后的麻雀位置不一定由于原始位置,因此,采用贪婪策略,选择是否将原始解用变异解替代,即只有当变异解的适应度值优于原始解时才进行替换,公式如下:x′={xbest′,f(xbest′)<f(xbest)xbest,f(xbest′)≥f(xbest)(7)x'=\begin{dcases}x_{best}',\quad f(x_{best}')<f(x_{best})\\x_{best},\quad f(x_{best}')\geq f(x_{best})\end{dcases}\tag{7}x′={xbest′​,f(xbest′​)<f(xbest​)xbest​,f(xbest′​)≥f(xbest​)​(7)其中,x′x'x′为贪婪选择后最优麻雀的位置。

(4)SHSSA算法的伪代码

螺旋探索与自适应混合变异的麻雀搜索算法伪代码如下:

算法1 SHSSA算法
输入:搜索空间和目标函数
输出:最优解
参数初始化(种群规模N, 发现者PD及侦察者SD比例, 侦察预警值ST, 最大迭代次数T等)
根据式(2)生成初始种群
计算初始适应度值, 并排序, 找出当前最优和最劣适应度的麻雀位置
for i = 1:Tfor j = 1:PD*Np = -1 + 2*rand根据式(3)计算发现者位置end forfor j = PD*N+1:N根据基本SSA相应公式计算跟随者位置end for在种群中随机选取SD*N只麻雀作为侦察者for j = 1:SD*N根据基本SSA相应公式计算侦察者位置end for计算每只个体适应度值并排序, 找到当前最优个体和最劣个体根据式(6)计算当前最优个体的变异位置根据式(7)选择是否替换最优麻雀位置
end for

二、仿真实验与结果分析

将SHSSA与SCA、WOA和SSA进行对比,设置每种算法的种群规模为30,最大迭代次数为500,为了降低随机性干扰,每种算法独立运行30次。以文献[1]中F1、F2、F8、F9、F10 (30维)、F12(4维)为例。结果显示如下:

函数:F1
SCA:最差值: 53.7679, 最优值: 0.020562, 平均值: 12.4325, 标准差: 16.6788, 秩和检验: 1.2118e-12
WOA:最差值: 1.8873e-71, 最优值: 4.5484e-83, 平均值: 6.32e-73, 标准差: 3.4453e-72, 秩和检验: 1.2118e-12
SSA:最差值: 3.2693e-66, 最优值: 0, 平均值: 1.6286e-67, 标准差: 6.5668e-67, 秩和检验: 4.5736e-12
SHSSA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
函数:F2
SCA:最差值: 0.21459, 最优值: 0.0010897, 平均值: 0.021505, 标准差: 0.04429, 秩和检验: 2.9822e-11
WOA:最差值: 1.5605e-49, 最优值: 1.9907e-57, 平均值: 1.0148e-50, 标准差: 3.7033e-50, 秩和检验: 2.9822e-11
SSA:最差值: 5.7017e-30, 最优值: 7.3561e-213, 平均值: 1.9385e-31, 标准差: 1.0405e-30, 秩和检验: 2.9822e-11
SHSSA:最差值: 4.7613e-258, 最优值: 0, 平均值: 2.2113e-259, 标准差: 0, 秩和检验: 1
函数:F8
SCA:最差值: 20.3248, 最优值: 0.039077, 平均值: 12.3176, 标准差: 9.486, 秩和检验: 1.2118e-12
WOA:最差值: 7.9936e-15, 最优值: 8.8818e-16, 平均值: 4.3225e-15, 标准差: 2.1847e-15, 秩和检验: 8.8114e-10
SSA:最差值: 8.8818e-16, 最优值: 8.8818e-16, 平均值: 8.8818e-16, 标准差: 0, 秩和检验: NaN
SHSSA:最差值: 8.8818e-16, 最优值: 8.8818e-16, 平均值: 8.8818e-16, 标准差: 0, 秩和检验: NaN
函数:F9
SCA:最差值: 2.3129, 最优值: 0.13461, 平均值: 1.1053, 标准差: 0.53636, 秩和检验: 1.2118e-12
WOA:最差值: 0.24766, 最优值: 0, 平均值: 0.012879, 标准差: 0.051059, 秩和检验: 0.1608
SSA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
SHSSA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
函数:F10
SCA:最差值: 2.5424e-55, 最优值: 2.0155e-71, 平均值: 8.4927e-57, 标准差: 4.6415e-56, 秩和检验: 1.2118e-12
WOA:最差值: 8.4447e-189, 最优值: 1.0593e-224, 平均值: 5.5671e-190, 标准差: 0, 秩和检验: 1.2118e-12
SSA:最差值: 5.1065e-154, 最优值: 0, 平均值: 1.7022e-155, 标准差: 9.3231e-155, 秩和检验: 1.6572e-11
SHSSA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
函数:F12
SCA:最差值: -0.4965, 最优值: -6.2065, 平均值: -2.5865, 标准差: 1.7162, 秩和检验: 1.9544e-11
WOA:最差值: -2.6276, 最优值: -10.1524, 平均值: -8.2766, 标准差: 2.7268, 秩和检验: 9.0138e-10
SSA:最差值: -5.0552, 最优值: -10.1532, 平均值: -8.4539, 标准差: 2.4443, 秩和检验: 0.19902
SHSSA:最差值: -5.061, 最优值: -10.1532, 平均值: -9.9577, 标准差: 0.9355, 秩和检验: 1

结果表明,SHSSA与其余3种算法相比,收敛速度更快、寻优精度更高、稳定性更强。

三、参考文献

[1] 陈功, 曾国辉, 黄勃, 等. 螺旋探索与自适应混合变异的麻雀搜索算法[J/OL]. 小型微型计算机系统: 1-12 [2021-12-23].
[2] Feng, J., Zhang, J., Zhu, X. et al. A novel chaos optimization algorithm[J]. Multimedia Tools and Applications volume, 2017, 76: 17405-17436.

螺旋探索与自适应混合变异的麻雀搜索算法相关推荐

  1. 螺旋探索与自适应混合变异的麻雀搜索-附代码

    螺旋探索与自适应混合变异的麻雀搜索 文章目录 螺旋探索与自适应混合变异的麻雀搜索 1.麻雀优化算法 2. 改进麻雀算法 2.1 ICMIC 混沌初始化种群 2.2 螺旋探索策略 2.3 基于精英差分和 ...

  2. 混合策略改进的麻雀搜索算法-附代码

    混合策略改进的麻雀搜索算法 文章目录 混合策略改进的麻雀搜索算法 1.麻雀优化算法 2. 改进麻雀算法 2.1 Circle 混沌初始化策略 2.2 蝴蝶优化策略 2.3 逐维变异策略 3.实验结果 ...

  3. 融合黄金正弦和曲线自适应的多策略麻雀搜索算法

    文章目录 一.理论基础 1.原始麻雀搜索算法(SSA) 2.融合黄金正弦和曲线自适应的多策略麻雀搜索算法(GCSSA) 2.1 Chebyshev混沌映射策略 2.2 位置更新方式改进 2.2.1 黄 ...

  4. 基于自适应t分布的麻雀搜索算法-附代码

    基于自适应t分布的麻雀搜索算法 文章目录 基于自适应t分布的麻雀搜索算法 1.自适应t分布策略 2.基于自适应t分布策略的麻雀搜索算法 3.算法结果: 4.Matlab 5.Python 1.自适应t ...

  5. 融合正余弦和柯西变异的麻雀搜索算法

    文章目录 一.理论基础 1.麻雀搜索算法 2.融合正余弦和柯西变异的麻雀搜索算法 (1)折射(小孔成像)反向学习策略 (2)正余弦策略 (3)柯西变异策略 (4)SCSSA算法流程 二.仿真实验与分析 ...

  6. 麻雀搜索算法(Sparrow Search Algorithm,SSA)

    文章目录 1 算法思想 2 算法步骤 3 求解函数最值(Python实现) 4 算法进阶 直接改进SSA 融合别的智能优化算法来改进SSA SMA及其改进的应用 原论文: [1]薛建凯. 一种新型的群 ...

  7. 智能优化算法:麻雀搜索算法-附代码

    2020智能优化算法:麻雀搜索算法 文章目录 2020智能优化算法:麻雀搜索算法 1.算法原理 2.算法结果 3.参考文献 4.Matlab代码 5.Python代码 摘要:麻雀搜索算法(Sparro ...

  8. 自适应螺旋飞行麻雀搜索算法

    文章目录 一.理论基础 1.麻雀搜索算法 2.自适应螺旋飞行麻雀搜索算法 (1)基于随机变量的Tent混沌映射 (2)自适应权重 (3)莱维飞行机制 (4)可变螺旋搜索策略 (5)改进麻雀搜索算法的步 ...

  9. 混合策略改进的麻雀优化算法

    文章目录 一.理论基础 1.麻雀优化算法 2.混合策略改进的麻雀优化算法 (1)佳点集的种群初始化 (2)黄金莱维飞行策略 (3)t-分布扰动策略 (4)动态分配侦察者策略 (5)MI-SSA算法实现 ...

最新文章

  1. linux 限制用户端口,linux – Centos 6.4只允许用户绑定到某个端口?
  2. 类加载器-扩展加载器
  3. 提升方法-Adaboost算法
  4. 使用百度编辑器--ueditor,后台接收提交编辑的内容,HTML不见了, 赋值不了,赋值之后,html暴露出来了??...
  5. js中事件处理程序的内存优化
  6. ExtJs xtype一览(转存)
  7. QT学习资料博客:《Qt 实战一二三》和《Qt 学习之路 2》等
  8. KVM虚拟化技术原理简介
  9. python画卡通兔子_用Illustrator绘制一只可爱的卡通小兔子
  10. 关于ajax同步状态及sucess,complete的顺序的理解
  11. (PC+WAP)织梦模板茶几茶盘类网站
  12. ios 去掉底部状态栏_iOS 隐藏顶部状态栏
  13. jquery $.each(data, function (index, value) { }
  14. AppStore商店App的相关信息的获取
  15. 阿里前首席人力官: 从HR思维看阿里的战略与文化
  16. 使用KeyShot Pro 11如何选择环境渲染图像
  17. 等待事件enq TX row lock contention分析
  18. 次时代游戏场景制作方法(干货)
  19. 第二章 计算机网络应用层详解
  20. 追问新知·情绪专题 | 情绪可以被破译吗?

热门文章

  1. ScrollView嵌套WebView遇到的坑
  2. Maven项目实现简单发送邮件
  3. Python通过获取用户输入来生成n*m矩阵
  4. jolt 自定义函数实现通用接口结果体返回
  5. v46.05 鸿蒙内核源码分析(特殊进程) | 老鼠生儿会打洞 | 百篇博客分析HarmonyOS源码
  6. IIS Express 配置外部访问
  7. 苹果邮件怎么添加qq邮箱_科技资讯:QQ邮箱格式怎么填写
  8. Unity链接数据库(SqlServer)
  9. 超详细!!!acer宏碁笔记本进入安全模式方法~
  10. JPG图像exif和XPM信息中GPS数据姿态数据航向角数据的提取