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

一、理论基础

1、基本麻雀搜索算法

请参考这里

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

(1)ICMIC混沌初始化种群

混沌变量具有遍历性和规律性,常被应用于优化问题中。Logistic映射和Tent映射是最常用的混沌模型,但是两者在迭代区域内的折叠次数有限,且存在有理数不动点。ICMIC映射是一种映射折叠次数无线的混沌模型,相较于Logistic映射和Tent映射,该映射具有遍历均匀和收敛较快等优点。因此本文采用ICMIC映射初始化SSA种群,ICMIC映射的数学表达式如下: { z n + 1 = sin ⁡ ( α π z n ) ,    α ∈ ( 0 , 1 ) − 1 ≤ z n ≤ 1 ,    z n ≠ 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)1zn1,zn=0(1)将ICMIC混沌映射到搜索空间中,得到种群初始位置: x i = x l b + ( x u b − x l b ) 1 + z i 2 (2) x_i=x_{lb}+(x_{ub}-x_{lb})\frac{1+z_i}{2}\tag{2} xi=xlb+(xubxlb)21+zi(2)其中, x l b x_{lb} xlb x u b x_{ub} xub分别为每个个体在各维度的上下界, z i z_i zi为式(1)产生的混沌序列,本文 α = 0.7 \alpha=0.7 α=0.7
假设种群规模为30,两种方法在二维搜索空间中产生的初始化种群分布图如图1所示,从图中可以看出,相比随机序列,通过ICMIC混沌序列产生的初始种群分布更均匀,遍历性更好。
在这里插入图片描述

(a)随机初始化

在这里插入图片描述
(b)ICMIC混沌初始化

图1 初始化种群分布图

(2)螺旋探索策略

本文在发现者位置更新方式中加入一种螺旋探索因子,使得发现者拥有多种搜索路径来更好的调整自身位置,从而提高算法的全局搜索性能。具备螺旋探索的发现者位置更新公式如下: x i d t + 1 = { z ⋅ x i d t ⋅ exp ⁡ ( − i / α T ) , R 2 < S T x i d t + Q ⋅ L ⋅ z ,      R 2 ≥ S T x_{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={zxidtexp(i/αT),R2<STxidt+QLz,R2ST 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)其中, z z z为螺旋探索因子, b b b为螺旋形状常数, p p p表示路径系数,为 [ − 1 , 1 ] [-1,1] [1,1]中的随机数。
融入螺旋探索后,发现者将以螺旋形式在搜索空间中搜索,扩展了发现者探索未知区域的能力,使算法跳出局部最优的可能性增加,有效提高算法的全局搜索性能。

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

为了加快算法收敛速度、改善算法跳出局部最优的能力,本文提出一种自适应混合变异策略,在每次迭代后对最优麻雀进行扰动。
(1)精英差分变异
考虑到精英个体包含更多有益信息,为了加强精英个体间的信息交流,本文提出一种精英差分变异策略,公式如下: x b e s t ′ = r 1 ( x 2 − x b e s t ) + r 2 ( x 3 − x b e s t ) (4) x_{best}'=r_1(x_2-x_{best})+r_2(x_3-x_{best})\tag{4} xbest=r1(x2xbest)+r2(x3xbest)(4)其中, r 1 r_1 r1 r 2 r_2 r2 ( 0 , 1 ) (0,1) (0,1)的随机数。 x b e s t x_{best} xbest为最优解, x 2 x_2 x2为次优解, x 3 x_3 x3为第三优解。
精英解的引入,使得算法的进化方向更明确,不再具有盲目性。在算法迭代后,通过式(4)产生新解,能够提升算法在当前最优解附近发现全局最优解的可能性。
(2)随机反向学习
本文提出一种新的随机反向学习策略,通过在一般反向学习中引入随机因子,进一步扩展反向解位置,增强算法跳出局部极值的能力。随机反向学习的公式如下: x b e s t ′ = k 1 x l b + k 2 ( x u b − x b e s t ) (5) x_{best}'=k_1x_{lb}+k_2(x_{ub}-x_{best})\tag{5} xbest=k1xlb+k2(xubxbest)(5)其中, k 1 k_1 k1 k 2 k_2 k2为随机因子,均为 ( 0 , 1 ) (0,1) (0,1)之间的随机数。
(3)自适应混合变异
SSA算法求得全局最优解的关键是算法能否有效跳出局部最优。若只是加入单一的变异策略,则在加快收敛速度的同时也会导致算法陷入局部最优。因此,本文将精英差分变异和随机反向学习融入到SSA中,利用判定系数 r r r对最优麻雀位置进行混合变异扰动。如公式(6)所示,当 r < 0.5 r<0.5 r<0.5时,采用精英差分策略进行小范围扰动;当 r ≥ 0.5 r\geq0.5 r0.5时,采用随机反向策略进行大范围扰动。两种策略相辅相成,促使算法跳出局部极值空间,在求解不同优化问题时的适应性更强。 x b e s t ′ = { r 1 ( x 2 − x b e s t ) + r 2 ( x 3 − x b e s t ) , r < 0.5 k 1 x l b + k 2 ( x u b − x b e s t ) ,   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(x2xbest)+r2(x3xbest),r<0.5k1xlb+k2(xubxbest),r0.5(6)其中, r r r为0到1的随机数。
由于变异后的麻雀位置不一定由于原始位置,因此,采用贪婪策略,选择是否将原始解用变异解替代,即只有当变异解的适应度值优于原始解时才进行替换,公式如下: x ′ = { x b e s t ′ , f ( x b e s t ′ ) < f ( x b e s t ) x b e s t , f ( x b e s t ′ ) ≥ f ( x b e s t ) (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:T
	for j = 1:PD*N
		p = -1 + 2*rand
		根据式(3)计算发现者位置
	end for
	for 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]. 小型微型计算机系统, 2023, 44(4): 779-786.
[2] Feng, J., Zhang, J., Zhu, X. et al. A novel chaos optimization algorithm[J]. Multimedia Tools and Applications volume, 2017, 76: 17405-17436.

  • 2
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论
螺旋滑膜是一种具有自适应特性的材料,它可以根据外界条件的变化来调整自身的性能。而Matlab是一种强大的数值计算和数据分析工具,可以用于模拟和分析各种系统。 当超螺旋滑膜与Matlab相结合时,可以实现一系列有趣的应用。首先,我们可以使用Matlab来模拟超螺旋滑膜在不同外界条件下的性能变化。通过改变输入参数,我们可以观察超螺旋滑膜的应变、强度、刚度等性能如何随着环境变化而变化。这有助于我们更好地理解和设计超螺旋滑膜。 其次,结合Matlab的数值计算功能,我们可以利用超螺旋滑膜的自适应性能来解决一些实际问题。例如,我们可以将超螺旋滑膜应用于传感器和执行器中,用于测量和调节环境参数。通过将超螺旋滑膜与Matlab的数据处理和控制算法相结合,我们可以实现自动调节系统,使其在不同环境中保持最佳性能。 此外,通过将超螺旋滑膜与Matlab的图形界面功能相结合,我们可以开发出一些有趣的应用。例如,我们可以设计一个交互式界面,通过输入不同参数来改变超螺旋滑膜的形状和性能,然后实时观察其变化。这对于教学和科普宣传可以起到很好的作用。 总之,将超螺旋滑膜加入自适应Matlab中具有很大的潜力。通过模拟、应用和可视化等方面的结合,我们可以更好地理解、应用和推广超螺旋滑膜的自适应特性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

心️升明月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值