混合正弦余弦算法和Lévy飞行的麻雀算法

文章目录

  • 一、理论基础
    • 1、基本麻雀搜索算法
    • 2、混合正弦余弦算法和Lévy飞行的麻雀算法(ISSA)
      • (1)融合正弦余弦算法(SCA)思想
      • (2)Lévy飞行策略
  • 二、ISSA算法流程图
  • 三、算法性能测试
  • 四、参考文献

一、理论基础

1、基本麻雀搜索算法

请参考这里。

2、混合正弦余弦算法和Lévy飞行的麻雀算法(ISSA)

(1)融合正弦余弦算法(SCA)思想

基本SSA算法中,在 R 2 < S T R_2R2<ST时,发现者随着迭代次数的进行,麻雀个体每一维都在变小,搜索空间逐渐减小,增大了坠入局部空间的概率,为改善此问题,在发现者位置更新方式中融合正弦余弦(SCA)算法思想,并引入非线性正弦学习因子,在搜索前期,具有较大的值,有助于全局探索,在搜索后期,具有较小的值,有助于提升局部开拓能力,提高精确度。学习因子公式和改进后的发现者位置公式如下: w = w m i n + ( w m a x − w m i n ) ⋅ sin ⁡ ( t π / i t e r m a x ) (1) w=w_{min}+(w_{max}-w_{min})\cdot\sin(t\pi/iter_{max})\tag{1} w=wmin+(wmaxwmin)sin(tπ/itermax)(1) X i , j t + 1 = { ( 1 − w ) ⋅ X i , j t + w ⋅ sin ⁡ ( r 1 ) ⋅ ∣ r 2 ⋅ X b e s t − X i , j t ∣ , R 2 < S T ( 1 − w ) ⋅ X i , j t + w ⋅ cos ⁡ ( r 1 ) ⋅ ∣ r 2 ⋅ X b e s t − X i , j t ∣ , R 2 ≥ S T (2) X_{i,j}^{t+1}=\begin{dcases}(1-w)\cdot X_{i,j}^t+w\cdot\sin(r_1)\cdot|r_2\cdot X_{best}-X{i,j}^t|,R_2Xi,jt+1={(1w)Xi,jt+wsin(r1)r2XbestXi,jt,R2<ST(1w)Xi,jt+wcos(r1)r2XbestXi,jt,R2ST(2)式(8)中, r 1 r_1 r1 [ 0 , 2 π ] [0,2\pi] [0,2π]内的随机数, r 2 r_2 r2 [ 0 , 2 ] [0,2] [0,2]内的随机数。

(2)Lévy飞行策略

当发现者迭代一定次数且适应度值不变时,此时跟随者成了发现者,为避免算法陷入局部最优,在跟随者更新公式中引入Lévy飞行策略,提高全局搜索能力。改进后的公式如下: X i , j t + 1 = { Q ⋅ exp ⁡ ( X w o r s t t − X i , j t i 2 ) i > n 2 X p t + 1 + X p t + 1 ⊕ L e v y ( d )     o t h e r w i s e (3) X_{i,j}^{t+1}=\begin{dcases}Q\cdot\exp\left(\frac{X_{worst}^t-X_{i,j}^t}{i^2}\right)\quad i>\frac n2\\X_p^{t+1}+X_p^{t+1}\oplus Levy(d)\quad \,\,\,otherwise\end{dcases}\tag{3} Xi,jt+1=Qexp(i2XworsttXi,jt)i>2nXpt+1+Xpt+1Levy(d)otherwise(3)其中, X p t + 1 X_p^{t+1} Xpt+1是当前发现者占领的最优位置。
Lévy飞行的机制请参考这里。

二、ISSA算法流程图

混合正弦余弦算法和Lévy飞行的麻雀算法_第1张图片

图1 ISSA算法流程图

三、算法性能测试

为验证ISSA算法的有效性,以及发现者比例对算法性能的影响,选取粒子群算法(PSO)、灰狼优化算法(GWO)、飞蛾火焰算法(MFO)、基本麻雀算法(SSA)以及改变发现者比例的两种麻雀算法SSA1、SSA2 进行对比。算法参数设置如表1所示:

表1 参数设置表

在这里插入图片描述表2位常用的8个基准测试函数。

表2 基准测试函数

在这里插入图片描述注:f8是2维,现更正
一个基准测试函数上独立运行30次。下图为F1~F8的收敛曲线对比图。
混合正弦余弦算法和Lévy飞行的麻雀算法_第2张图片混合正弦余弦算法和Lévy飞行的麻雀算法_第3张图片混合正弦余弦算法和Lévy飞行的麻雀算法_第4张图片混合正弦余弦算法和Lévy飞行的麻雀算法_第5张图片混合正弦余弦算法和Lévy飞行的麻雀算法_第6张图片混合正弦余弦算法和Lévy飞行的麻雀算法_第7张图片混合正弦余弦算法和Lévy飞行的麻雀算法_第8张图片混合正弦余弦算法和Lévy飞行的麻雀算法_第9张图片最大值、最小值、平均值及标准差显示如下:

函数:F1
GWO:最大值: 0.022279,最小值:0.00092834,平均值:0.005218,标准差:0.0042906
PSO:最大值: 2741.5836,最小值:363.5828,平均值:1477.1141,标准差:570.8515
MFO:最大值: 16933.8998,最小值:4025.8665,平均值:10305.4706,标准差:3612.337
SSA:最大值: 2.0306e-35,最小值:0,平均值:6.7687e-37,标准差:3.7074e-36
SSA1:最大值: 2.5991e-18,最小值:9.8735e-272,平均值:8.7246e-20,标准差:4.7443e-19
SSA2:最大值: 6.5598e-66,最小值:0,平均值:2.3334e-67,标准差:1.1967e-66
ISSA:最大值: 8.6414e-123,最小值:3.4652e-130,平均值:4.7172e-124,标准差:1.6137e-123
函数:F2
GWO:最大值: 0.32478,最小值:0.096963,平均值:0.19193,标准差:0.064504
PSO:最大值: 73.3565,最小值:46.5177,平均值:55.9762,标准差:5.2107
MFO:最大值: 570.5601,最小值:125.8508,平均值:191.2388,标准差:75.4
SSA:最大值: 1.8856e-16,最小值:3.784e-120,平均值:6.5381e-18,标准差:3.4405e-17
SSA1:最大值: 3.5996e-08,最小值:3.4841e-57,平均值:3.4397e-09,标准差:9.3317e-09
SSA2:最大值: 4.5494e-33,最小值:0,平均值:1.5196e-34,标准差:8.3055e-34
ISSA:最大值: 1.2586e-60,最小值:4.2612e-64,平均值:2.3047e-61,标准差:3.0634e-61
函数:F3
GWO:最大值: 102848.065,最小值:38169.3252,平均值:63335.7687,标准差:13517.8142
PSO:最大值: 215231.2073,最小值:59475.1398,平均值:121778.773,标准差:42480.0679
MFO:最大值: 579577.1315,最小值:231705.7404,平均值:404113.4675,标准差:97583.1362
SSA:最大值: 1.0786e-26,最小值:0,平均值:3.5953e-28,标准差:1.9692e-27
SSA1:最大值: 2.0428e-13,最小值:1.0295e-144,平均值:8.5485e-15,标准差:3.8101e-14
SSA2:最大值: 1.6843e-35,最小值:0,平均值:5.6144e-37,标准差:3.0751e-36
ISSA:最大值: 1.8178e-104,最小值:1.5078e-116,平均值:6.0642e-106,标准差:3.3187e-105
函数:F4
GWO:最大值: 126.1756,最小值:6.1017,平均值:21.4325,标准差:35.9099
PSO:最大值: 18951715.324,最小值:12667.9681,平均值:1125831.0405,标准差:3431439.0199
MFO:最大值: 152249.7817,最小值:880.2497,平均值:19962.7372,标准差:34323.6352
SSA:最大值: 0.006041,最小值:1.2822e-06,平均值:0.000989,标准差:0.0014519
SSA1:最大值: 0.0029553,最小值:2.1975e-08,平均值:0.00027328,标准差:0.00055568
SSA2:最大值: 0.0062152,最小值:4.4576e-06,平均值:0.0011461,标准差:0.0017177
ISSA:最大值: 0.028434,最小值:1.4953e-05,平均值:0.0031644,标准差:0.0058409
函数:F5
GWO:最大值: 2.6696,最小值:0.90234,平均值:1.608,标准差:0.45913
PSO:最大值: 789.6813,最小值:231.5663,平均值:451.8055,标准差:132.8068
MFO:最大值: 7522.2637,最小值:4953.7679,平均值:6281.3394,标准差:592.977
SSA:最大值: 0.0025406,最小值:8.935e-05,平均值:0.0012459,标准差:0.00074506
SSA1:最大值: 0.011599,最小值:7.3676e-05,平均值:0.0023874,标准差:0.0027949
SSA2:最大值: 0.0053441,最小值:4.6881e-05,平均值:0.0012048,标准差:0.0012694
ISSA:最大值: 0.002631,最小值:8.0743e-07,平均值:0.00085138,标准差:0.00071482
函数:F6
GWO:最大值: 91.0105,最小值:28.5954,平均值:48.4467,标准差:13.4131
PSO:最大值: 260.2053,最小值:156.5665,平均值:187.8549,标准差:22.9038
MFO:最大值: 300.7532,最小值:177.2899,平均值:223.2052,标准差:29.8382
SSA:最大值: 0,最小值:0,平均值:0,标准差:0
SSA1:最大值: 0,最小值:0,平均值:0,标准差:0
SSA2:最大值: 0,最小值:0,平均值:0,标准差:0
ISSA:最大值: 0,最小值:0,平均值:0,标准差:0
函数:F7
GWO:最大值: 0.3515,最小值:0.081312,平均值:0.17591,标准差:0.071789
PSO:最大值: 11.8173,最小值:8.8329,平均值:10.0263,标准差:0.74675
MFO:最大值: 20.264,最小值:19.2077,平均值:19.9746,标准差:0.25369
SSA:最大值: 8.8818e-16,最小值:8.8818e-16,平均值:8.8818e-16,标准差:0
SSA1:最大值: 4.977e-10,最小值:8.8818e-16,平均值:2.6324e-11,标准差:9.6197e-11
SSA2:最大值: 8.8818e-16,最小值:8.8818e-16,平均值:8.8818e-16,标准差:0
ISSA:最大值: 8.8818e-16,最小值:8.8818e-16,平均值:8.8818e-16,标准差:0
函数:F8
GWO:最大值: -1.0305,最小值:-1.0316,平均值:-1.0316,标准差:0.00021157
PSO:最大值: -1.0316,最小值:-1.0316,平均值:-1.0316,标准差:6.2532e-16
MFO:最大值: -1.0316,最小值:-1.0316,平均值:-1.0316,标准差:4.7373e-16
SSA:最大值: -1.0316,最小值:-1.0316,平均值:-1.0316,标准差:1.8264e-08
SSA1:最大值: -1.0316,最小值:-1.0316,平均值:-1.0316,标准差:5.9323e-09
SSA2:最大值: -1.0316,最小值:-1.0316,平均值:-1.0316,标准差:4.7267e-09
ISSA:最大值: -1.0316,最小值:-1.0316,平均值:-1.0316,标准差:2.9263e-07

由此可以看出,ISSA算法除了在F4和F8表现略微不佳之外,其余6个测试函数均取得了很好的效果,可以表明,ISSA寻优精度和求解效率得到较大提升。

四、参考文献

[1] 毛清华, 张强, 毛承成, 等. 混合正弦余弦算法和Lévy飞行的麻雀算法[J]. 山西大学学报(自然科学版), 2021, 44(6): 1086-1091.

你可能感兴趣的:(matlab,最优化问题,matlab,改进麻雀搜索算法)