螺旋探索与自适应混合变异的麻雀搜索算法
文章目录
- 一、理论基础
- 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≥STz=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′=k1xlb+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.5k1xlb+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.麻雀优化算法 2. 改进麻雀算法 2.1 ICMIC 混沌初始化种群 2.2 螺旋探索策略 2.3 基于精英差分和 ...
- 混合策略改进的麻雀搜索算法-附代码
混合策略改进的麻雀搜索算法 文章目录 混合策略改进的麻雀搜索算法 1.麻雀优化算法 2. 改进麻雀算法 2.1 Circle 混沌初始化策略 2.2 蝴蝶优化策略 2.3 逐维变异策略 3.实验结果 ...
- 融合黄金正弦和曲线自适应的多策略麻雀搜索算法
文章目录 一.理论基础 1.原始麻雀搜索算法(SSA) 2.融合黄金正弦和曲线自适应的多策略麻雀搜索算法(GCSSA) 2.1 Chebyshev混沌映射策略 2.2 位置更新方式改进 2.2.1 黄 ...
- 基于自适应t分布的麻雀搜索算法-附代码
基于自适应t分布的麻雀搜索算法 文章目录 基于自适应t分布的麻雀搜索算法 1.自适应t分布策略 2.基于自适应t分布策略的麻雀搜索算法 3.算法结果: 4.Matlab 5.Python 1.自适应t ...
- 融合正余弦和柯西变异的麻雀搜索算法
文章目录 一.理论基础 1.麻雀搜索算法 2.融合正余弦和柯西变异的麻雀搜索算法 (1)折射(小孔成像)反向学习策略 (2)正余弦策略 (3)柯西变异策略 (4)SCSSA算法流程 二.仿真实验与分析 ...
- 麻雀搜索算法(Sparrow Search Algorithm,SSA)
文章目录 1 算法思想 2 算法步骤 3 求解函数最值(Python实现) 4 算法进阶 直接改进SSA 融合别的智能优化算法来改进SSA SMA及其改进的应用 原论文: [1]薛建凯. 一种新型的群 ...
- 智能优化算法:麻雀搜索算法-附代码
2020智能优化算法:麻雀搜索算法 文章目录 2020智能优化算法:麻雀搜索算法 1.算法原理 2.算法结果 3.参考文献 4.Matlab代码 5.Python代码 摘要:麻雀搜索算法(Sparro ...
- 自适应螺旋飞行麻雀搜索算法
文章目录 一.理论基础 1.麻雀搜索算法 2.自适应螺旋飞行麻雀搜索算法 (1)基于随机变量的Tent混沌映射 (2)自适应权重 (3)莱维飞行机制 (4)可变螺旋搜索策略 (5)改进麻雀搜索算法的步 ...
- 混合策略改进的麻雀优化算法
文章目录 一.理论基础 1.麻雀优化算法 2.混合策略改进的麻雀优化算法 (1)佳点集的种群初始化 (2)黄金莱维飞行策略 (3)t-分布扰动策略 (4)动态分配侦察者策略 (5)MI-SSA算法实现 ...
最新文章
- linux 限制用户端口,linux – Centos 6.4只允许用户绑定到某个端口?
- 类加载器-扩展加载器
- 提升方法-Adaboost算法
- 使用百度编辑器--ueditor,后台接收提交编辑的内容,HTML不见了, 赋值不了,赋值之后,html暴露出来了??...
- js中事件处理程序的内存优化
- ExtJs xtype一览(转存)
- QT学习资料博客:《Qt 实战一二三》和《Qt 学习之路 2》等
- KVM虚拟化技术原理简介
- python画卡通兔子_用Illustrator绘制一只可爱的卡通小兔子
- 关于ajax同步状态及sucess,complete的顺序的理解
- (PC+WAP)织梦模板茶几茶盘类网站
- ios 去掉底部状态栏_iOS 隐藏顶部状态栏
- jquery $.each(data, function (index, value) { }
- AppStore商店App的相关信息的获取
- 阿里前首席人力官: 从HR思维看阿里的战略与文化
- 使用KeyShot Pro 11如何选择环境渲染图像
- 等待事件enq TX row lock contention分析
- 次时代游戏场景制作方法(干货)
- 第二章 计算机网络应用层详解
- 追问新知·情绪专题 | 情绪可以被破译吗?
热门文章
- ScrollView嵌套WebView遇到的坑
- Maven项目实现简单发送邮件
- Python通过获取用户输入来生成n*m矩阵
- jolt 自定义函数实现通用接口结果体返回
- v46.05 鸿蒙内核源码分析(特殊进程) | 老鼠生儿会打洞 | 百篇博客分析HarmonyOS源码
- IIS Express 配置外部访问
- 苹果邮件怎么添加qq邮箱_科技资讯:QQ邮箱格式怎么填写
- Unity链接数据库(SqlServer)
- 超详细!!!acer宏碁笔记本进入安全模式方法~
- JPG图像exif和XPM信息中GPS数据姿态数据航向角数据的提取