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

news/2024/7/4 23:49:39

文章目录

  • 一、理论基础
    • 1、麻雀搜索算法
    • 2、自适应螺旋飞行麻雀搜索算法
      • (1)基于随机变量的Tent混沌映射
      • (2)自适应权重
      • (3)莱维飞行机制
      • (4)可变螺旋搜索策略
      • (5)改进麻雀搜索算法的步骤
  • 二、仿真实验与结果分析
  • 三、参考文献

一、理论基础

1、麻雀搜索算法

请参考这里。

2、自适应螺旋飞行麻雀搜索算法

(1)基于随机变量的Tent混沌映射

由于SSA具有随机性大的缺点,因此决定引入有序和均匀Tent映射对其进行改进。然而,基本Tent映射不是很稳定。为了减少这种影响,本文引入了基于随机变量的帐篷映射策略来改进SSA的初始化,使种群的初始化更加有序,增强了算法的可控性。其具体公式如下: z i + 1 = { 2 z i + rand ( 0 , 1 ) × 1 N ,     0 ≤ z i ≤ 1 2 2 ( 1 − z i ) + rand ( 0 , 1 ) × 1 N , 1 2 < z i ≤ 1 (1) z_{i+1}=\begin{dcases}2z_i+\text{rand}(0,1)\times\frac1N,\quad\quad\quad\,\,\, 0\leq z_i\leq\frac12\\[2ex]2(1-z_i)+\text{rand}(0,1)\times\frac1N,\quad\frac12<z_i\leq1\end{dcases}\tag{1} zi+1=2zi+rand(0,1)×N1,0zi212(1zi)+rand(0,1)×N1,21<zi1(1)经过伯努利变换后的表达式为: z i + 1 = ( 2 z i ) mod   1 + rand ( 0 , 1 ) × 1 N (2) z_{i+1}=(2z_i)\text{mod}\,1+\text{rand}(0,1)\times\frac1N\tag{2} zi+1=(2zi)mod1+rand(0,1)×N1(2)其中, N N N是混沌序列中的粒子总数。
根据Tent映射的特点,在可行域中产生混沌的序列步骤如下:
(1)随机生成 ( 0 , 1 ) (0,1) (0,1)中的初始值 z 0 z_0 z0,令 i = 1 i=1 i=1
(2)使用式(2)进行迭代以生成 z z z序列, i i i自增1;
(3)如果迭代次数达到最大值,则停止,并保存生成的 z z z序列。

(2)自适应权重

权重策略在粒子群优化算法中很常见。通常,粒子群算法通过在设定的最大值和最小值之间自适应地改变,在一定程度上减少陷入局部最优的情况。受此启发,本文在麻雀优化的发现阶段添加了惯性权重 w w w,该权重随迭代次数而变化。在算法的初始阶段,它削弱了随机初始化的影响,平衡了下面的Levy飞行机制,从而增强了算法的局部搜索和全局搜索。
发现者引导群体中的其他个体搜索食物,因此自适应权重的引入提高了个体位置的质量,使其他个体能够更快地收敛到最优位置,并且总体上加快了收敛速度。基于麻雀的特性,自适应权重的公式如下: w ( t ) = 0.2 cos ⁡ ( π 2 ⋅ ( 1 − t iter max ⁡ ) ) (3) w(t)=0.2\cos\left(\frac\pi2\cdot\left(1-\frac{t}{\text{iter}_{\max}}\right)\right)\tag{3} w(t)=0.2cos(2π(1itermaxt))(3)式(3)的含义是 w w w [ 0 , 1 ] [0,1] [0,1]之间具有非线性变化的性质。根据 cos ⁡ \cos cos函数的特点,算法开始时权值较小,但优化速度较快,后期权值较大,但变化速度较慢,因此算法的收敛性是平衡的。改进的发现者位置更新如下: X i , j t + 1 = { w ( t ) ⋅ X i , j t ⋅ exp ⁡ ( − i α ⋅ iter max ⁡ ) , if    R 2 < ST w ( t ) ⋅ X i , j t + Q ⋅ L ,   if    R 2 ≥ ST (4) X_{i,j}^{t+1}=\begin{dcases}w(t)\cdot X_{i,j}^t\cdot\exp\left(\frac{-i}{\alpha\cdot\text{iter}_{\max}}\right),\quad\text{if}\,\,R_2<\text{ST}\\[2ex]w(t)\cdot X_{i,j}^t+Q\cdot L,\quad\quad\quad\quad\quad\quad\,\text{if}\,\,R_2\geq\text{ST}\end{dcases}\tag{4} Xi,jt+1=w(t)Xi,jtexp(αitermaxi),ifR2<STw(t)Xi,jt+QL,ifR2ST(4)通过引入自适应权重来动态调整麻雀的位置变化,发现者在不同时间的不同引导模式使算法搜索灵活。随着迭代次数的增加,单个麻雀向最优位置收敛,权重越大,个体移动越快,从而提高了算法的收敛速度。

(3)莱维飞行机制

当面对高维复杂问题时,仍然存在陷入局部最优的可能性。因此,引入Levy飞行策略来提高算法解的随机性,从而丰富种群位置的多样性,还可以有效地提高算法的运行效率。
莱维飞行服从莱维分布。它使用随机长距离和短距离机制来覆盖大面积。在加入Levy飞行机制后,可以提高算法的性能。加入Levy飞行策略的位置更新公式如下: x i ′ ( t ) = x i ( t ) + l ⊕ levy ( λ ) (5) x_i'(t)=x_i(t)+l\oplus\text{levy}(\lambda)\tag{5} xi(t)=xi(t)+llevy(λ)(5)其中, x i ( t ) x_i(t) xi(t)表示第 i i i个个体在第 t t t次迭代中的位置; ⊕ \oplus 表示点到点乘法的算术符号; l l l表示步长控制参数,其值为 l = 0.01 ( x i ( t ) − x p ) l=0.01(x_i(t)-x_p) l=0.01(xi(t)xp) levy ( λ ) \text{levy}(\lambda) levy(λ)是服从莱维分布的路径,表示引入莱维飞行策略,并满足 levy ∼ u = t − λ , 1 < λ ≤ 3 \text{levy}\sim u=t^{-\lambda},1<\lambda\leq3 levyu=tλ,1<λ3
由于莱维分布非常复杂,通常使用蒙特卡洛算法对其进行模拟。步长计算的公式如下: s = μ ∣ ν ∣ 1 / γ (6) s=\frac{\mu}{|\nu|^{1/\gamma}}\tag{6} s=ν1/γμ(6) μ ∼ N ( 0 , σ μ 2 ) (7) \mu\sim N(0,\sigma_\mu^2)\tag{7} μN(0,σμ2)(7) ν ∼ N ( 0 , σ ν 2 ) (8) \nu\sim N(0,\sigma_\nu^2)\tag{8} νN(0,σν2)(8) σ μ = { Γ ( 1 + γ ) sin ⁡ ( π γ / 2 ) γ ⋅ Γ [ ( γ + 1 ) / 2 ] ⋅ 2 ( γ + 1 ) / 2 } 1 / γ (9) \sigma_\mu=\left\{\frac{\Gamma(1+\gamma)\sin(\pi\gamma/2)}{\gamma\cdot\Gamma[(\gamma+1)/2]\cdot2^{(\gamma+1)/2}}\right\}^{1/\gamma}\tag{9} σμ={γΓ[(γ+1)/2]2(γ+1)/2Γ(1+γ)sin(πγ/2)}1/γ(9)其中, σ ν = 1 \sigma_\nu=1 σν=1 γ = 1.5 \gamma=1.5 γ=1.5

(4)可变螺旋搜索策略

跟随者随着发现者的位置而动态更新,这导致了他们搜索方式的盲目性和单一性。受鲸鱼优化算法螺旋操作的启发,引入了可变螺旋位置更新策略,以使跟随者位置更新更灵活,开发各种位置更新搜索路径,并平衡算法的全局和局部搜索。
在跟随者位置更新过程中,螺旋参数 z z z不能是固定数值,这导致搜索方法单调,可能陷入局部最优,从而削弱了算法的搜索能力。因此参数 z z z被设计为一个自适应变量,用于动态调整跟随者搜索的螺旋形状,从而拓宽了跟随者探索未知区域的能力,提高了算法的搜索效率和全局搜索性能。跟随者可变螺旋位置更新策略的公式如下: X i , j t + 1 = { e z l ⋅ cos ⁡ ( 2 π l ) ⋅ Q ⋅ exp ⁡ ( X worst t − X i , j t i 2 ) , if    i > n 2 X P t + 1 + ∣ X i , j t − X P t + 1 ∣ ⋅ A + ⋅ L ⋅ e z l ⋅ cos ⁡ ( 2 π l ) , otherwise (10) X_{i,j}^{t+1}=\begin{dcases}e^{zl}\cdot\cos(2\pi l)\cdot Q\cdot\exp\left(\frac{X_{\text{worst}}^t-X_{i,j}^t}{i^2}\right),\quad\quad\quad\text{if}\,\,i>\frac n2\\[2ex]X_P^{t+1}+\left|X_{i,j}^t-X_P^{t+1}\right|\cdot A^+\cdot L\cdot e^{zl}\cdot\cos(2\pi l),\quad\text{otherwise}\end{dcases}\tag{10} Xi,jt+1=ezlcos(2πl)Qexp(i2XworsttXi,jt),ifi>2nXPt+1+Xi,jtXPt+1A+Lezlcos(2πl),otherwise(10) z = e k ⋅ cos ⁡ ( π ⋅ ( 1 − ( i / i max ⁡ ) ) ) (11) z=e^{k\cdot\cos(\pi\cdot(1-(i/i_{\max})))}\tag{11} z=ekcos(π(1(i/imax)))(11)其中, k k k是变化系数, k = 5 k=5 k=5 l l l [ − 1 , 1 ] [-1,1] [1,1]的均匀分布的随机数。随着跟随者位置更新的范围从大到小,在早期找到更多高质量的解,后期优化减少了空闲工作的增加,从而提高了算法的全局最优搜索性能。同时,根据螺旋线的特点,在一定程度上提高了算法的优化精度。

(5)改进麻雀搜索算法的步骤

自适应螺旋飞行麻雀搜索算法(ASFSSA)的具体步骤如下:
步骤1:初始化麻雀种群参数,如:种群数 p o p pop pop、发现者总数 p N u m pNum pNum、最大迭代次数 iter max ⁡ \text{iter}_{\max} itermax和求解精度 ε \varepsilon ε等。
步骤2:使用式(1)的Tent映射初始化种群个体的位置,产生 p o p pop pop个麻雀个体。
步骤3:根据优化的目标函数计算每个个体的适应度值 f i f_i fi,并找到最小适应度值 f g f_g fg和最大适应度值 f w f_w fw
步骤4:根据适应度值对群体进行排序。
步骤5:选择 p N u m pNum pNum个适应度较优的个体作为发现者,其余为跟随者,在添加策略后使用式(4)和(5)更新发现者的位置。
步骤6:使用式(10)更新跟随者的位置。
步骤7:使用基本麻雀算法的对应公式更新警戒者的位置。
步骤8:在一次迭代完成后,重新计算每个个体的适应度值 f i f_i fi,并更新最小适应度值 f g f_g fg、最大适应度值 f w f_w fw和相应的位置。
步骤9:判断算法是否已达到最大迭代次数或解的准确度。如果达到,则输出优化结果;否则,它将返回到步骤4。

二、仿真实验与结果分析

将ASFSSA与PSO、GWO、SSA和CSSA[2]进行对比,以文献[1]中表1的F1、F2、F3、F8、F9、F10、F16、F17、F18为例,实验设置种群规模为100,最大迭代次数为200,每种算法独立运算30次,结果显示如下:
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

函数:F1
PSO:最差值: 36.2222, 最优值: 3.3372, 平均值: 13.6704, 标准差: 7.5121, 秩和检验: 1.2118e-12
GWO:最差值: 1.5074e-13, 最优值: 3.4305e-15, 平均值: 2.896e-14, 标准差: 2.7859e-14, 秩和检验: 1.2118e-12
SSA:最差值: 5.7147e-176, 最优值: 0, 平均值: 1.9049e-177, 标准差: 0, 秩和检验: 0.00066167
CSSA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
ASFSSA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
函数:F2
PSO:最差值: 9.7974, 最优值: 1.8171, 平均值: 4.3593, 标准差: 1.5399, 秩和检验: 1.2118e-12
GWO:最差值: 2.5083e-08, 最优值: 2.5608e-09, 平均值: 8.4577e-09, 标准差: 5.3152e-09, 秩和检验: 1.2118e-12
SSA:最差值: 9.0305e-92, 最优值: 0, 平均值: 3.5082e-93, 标准差: 1.6614e-92, 秩和检验: 5.8522e-09
CSSA:最差值: 2.1668e-159, 最优值: 0, 平均值: 7.2226e-161, 标准差: 3.956e-160, 秩和检验: 2.213e-06
ASFSSA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
函数:F3
PSO:最差值: 1154.4407, 最优值: 145.9255, 平均值: 436.1113, 标准差: 202.8757, 秩和检验: 1.2118e-12
GWO:最差值: 0.071841, 最优值: 0.00025149, 平均值: 0.015366, 标准差: 0.018831, 秩和检验: 1.2118e-12
SSA:最差值: 1.5258e-134, 最优值: 0, 平均值: 5.0861e-136, 标准差: 2.7858e-135, 秩和检验: 0.00031349
CSSA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
ASFSSA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
函数:F8
PSO:最差值: 13.4788, 最优值: 0.51689, 平均值: 3.0278, 标准差: 2.6519, 秩和检验: 1.2118e-12
GWO:最差值: 0.00016935, 最优值: 1.0188e-05, 平均值: 6.0761e-05, 标准差: 3.3525e-05, 秩和检验: 1.2118e-12
SSA:最差值: 1.4849e-184, 最优值: 0, 平均值: 4.9496e-186, 标准差: 0, 秩和检验: 0.0055843
CSSA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
ASFSSA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
函数:F9
PSO:最差值: 2.545785568985982e+16, 最优值: 653648260.9772, 平均值: 1102052804318338, 标准差: 4695031609008598, 秩和检验: 1.2118e-12
GWO:最差值: 1.4333e-35, 最优值: 1.0188e-45, 平均值: 5.6523e-37, 标准差: 2.6126e-36, 秩和检验: 1.2118e-12
SSA:最差值: 1.7358e-63, 最优值: 0, 平均值: 5.7861e-65, 标准差: 3.1692e-64, 秩和检验: 3.4526e-07
CSSA:最差值: 1.5716e-149, 最优值: 0, 平均值: 5.2386e-151, 标准差: 2.8693e-150, 秩和检验: 6.6096e-05
ASFSSA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
函数:F10
PSO:最差值: 0.12631, 最优值: 0.027397, 平均值: 0.058827, 标准差: 0.026412, 秩和检验: 3.0199e-11
GWO:最差值: 0.0047975, 最优值: 0.00039792, 平均值: 0.0020318, 标准差: 0.0011046, 秩和检验: 3.0199e-11
SSA:最差值: 0.0010802, 最优值: 3.8144e-06, 平均值: 0.00030218, 标准差: 0.00026607, 秩和检验: 0.00076973
CSSA:最差值: 0.00036871, 最优值: 1.1244e-06, 平均值: 0.00010135, 标准差: 0.00011246, 秩和检验: 0.37108
ASFSSA:最差值: 0.00036209, 最优值: 1.1872e-06, 平均值: 0.00010759, 标准差: 9.5646e-05, 秩和检验: 1
函数:F16
PSO:最差值: 4.3585e-17, 最优值: 2.7222e-21, 平均值: 4.4102e-18, 标准差: 9.0741e-18, 秩和检验: 1.2118e-12
GWO:最差值: 1.8653e-114, 最优值: 8.5392e-173, 平均值: 6.2176e-116, 标准差: 3.4055e-115, 秩和检验: 1.2118e-12
SSA:最差值: 1.2904e-149, 最优值: 0, 平均值: 6.0689e-151, 标准差: 2.5161e-150, 秩和检验: 0.00066167
CSSA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
ASFSSA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
函数:F17
PSO:最差值: 1.8263e-16, 最优值: 1.4617e-21, 平均值: 2.0378e-17, 标准差: 4.0282e-17, 秩和检验: 2.3692e-11
GWO:最差值: 2.7542e-06, 最优值: 8.1184e-09, 平均值: 4.2415e-07, 标准差: 5.374e-07, 秩和检验: 2.3692e-11
SSA:最差值: 1.3593e-15, 最优值: 2.8125e-21, 平均值: 1.0532e-16, 标准差: 3.3378e-16, 秩和检验: 2.3692e-11
CSSA:最差值: 7.7736e-15, 最优值: 3.0315e-22, 平均值: 2.8089e-16, 标准差: 1.4159e-15, 秩和检验: 2.3692e-11
ASFSSA:最差值: 1.9909e-29, 最优值: 0, 平均值: 1.0365e-30, 标准差: 3.6905e-30, 秩和检验: 1
函数:F18
PSO:最差值: 6.9033, 最优值: 0.998, 平均值: 1.7576, 标准差: 1.2063, 秩和检验: 0.0055747
GWO:最差值: 10.7632, 最优值: 0.998, 平均值: 2.4428, 标准差: 2.4451, 秩和检验: 1.2224e-10
SSA:最差值: 12.6705, 最优值: 0.998, 平均值: 4.2858, 标准差: 5.0449, 秩和检验: 0.10391
CSSA:最差值: 0.998, 最优值: 0.998, 平均值: 0.998, 标准差: 1.934e-16, 秩和检验: 0.0011992
ASFSSA:最差值: 2.9821, 最优值: 0.998, 平均值: 1.0641, 标准差: 0.36225, 秩和检验: 1

实验结果验证了ASFSSA算法的有效性。

三、参考文献

[1] Chengtian Ouyang, Yaxian Qiu, Donglin Zhu. Adaptive Spiral Flying Sparrow Search Algorithm[J]. Scientific Programming, 2021, 2021: 6505253.
[2] 吕鑫, 慕晓冬, 张钧, 等. 混沌麻雀搜索优化算法[J]. 北京航空航天大学学报, 2021, 47(8): 1712-1720.


http://www.niftyadmin.cn/n/2132472.html

相关文章

MySQL 4种事务的隔离级别

2019独角兽企业重金招聘Python工程师标准>>> 事务的ACID&#xff1a; 1)原子性(Atomic)&#xff1a;事务中各项操作&#xff0c;要么全做要么全不做&#xff0c;任何一项操作的失败都会导致整个事务的失败&#xff1b; 2)一致性(Consistent)&#xff1a;事务结束后系…

基于随机无迹sigma点变异策略的改进哈里斯鹰优化算法

文章目录一、理论基础1、哈里斯鹰优化算法2、改进的哈里斯鹰优化算法&#xff08;1&#xff09;反向学习策略&#xff08;2&#xff09;非线性收敛因子调整策略&#xff08;3&#xff09;随机无迹sigma点变异策略&#xff08;4&#xff09;IHHO算法流程图二、仿真实验与结果分析…

GO语言学习笔记(三) - 递归查找目录及子目录下的文件

GO语言学习笔记&#xff08;三&#xff09; - 递归查找目录及子目录下的文件 递归查找目录及子目录下的文件递归查找文件夹及子文件夹下的文件 代码 package mainimport ("fmt""io/ioutil""os""strings" )// 查找目录及子目录下的文件…

一种基于金鹰优化和灰狼优化的混合算法

文章目录一、理论基础1、金鹰优化算法2、灰狼优化算法3、提出的混合算法3.1 个体示例学习GEO(PELGEO)3.2 差分变异的简化GWO(DMSGWO)3.2.1 差分变异策略3.2.2 简化策略3.2.3 混合差异变异策略和简化策略3.3 自适应混合策略二、仿真实验与结果分析三、参考文献一、理论基础 1、…

算术优化与阿奎拉鹰优化的混合算法

文章目录一、理论基础1、阿奎拉鹰优化算法2、算术优化算法3、AO与AOA的混合(AOAAO)&#xff08;1&#xff09;改进逃逸能量参数&#xff08;2&#xff09;AOAAO算法伪代码二、仿真实验与结果分析三、参考文献一、理论基础 1、阿奎拉鹰优化算法 请参考这里。 2、算术优化算法…

酒瓶换酒

""" 一开始有5瓶啤酒 两个空酒瓶换一瓶啤酒 四个瓶盖换一瓶啤酒 问你最后能够喝到多少瓶啤酒 """def get(n):bottle, head n, ndrink 0while 1:drink bottleuse bottle // 2 head // 4if use 0:breakbottle % 2head % 4bottle usehead u…

基于随机无迹σ变异的改进HHO算法

文章目录一、理论基础1、哈里斯鹰优化算法HHO2、改进哈里斯鹰优化算法OSHHO&#xff08;1&#xff09;伪对立和伪反射学习机制&#xff08;2&#xff09;随机无迹点变异机制&#xff08;3&#xff09;能量因子非线性调整机制&#xff08;4&#xff09;OSHHO算法执行流程二、仿真…

基于亨利气体溶解度优化算法的函数寻优算法

文章目录一、理论基础1、亨利气体溶解度优化算法&#xff08;1&#xff09;步骤1&#xff1a;初始化过程&#xff08;2&#xff09;步骤2&#xff1a;分簇&#xff08;3&#xff09;步骤3&#xff1a;评价&#xff08;4&#xff09;步骤4&#xff1a;更新亨利系数&#xff08;5…