一、理论基础
1、麻雀搜索算法
请参考这里。
2、改进的麻雀搜索算法
(1)混沌映射和反向学习策略
通过引入混沌序列映射初始化种群,可以增强初始种群的质量和分布均匀性,有助于算法在搜索空间进行更全面的搜索,实现改善算法的收敛精度和寻优性能的目的。在诸多混沌映射中,立方混沌映射在
[
0
,
1
]
[0,1]
[0,1]之间均匀分布性能更优,其数学模型为:
y
i
+
1
=
4
×
y
i
3
−
3
×
y
i
,
−
1
≤
y
i
≤
1
,
i
=
1
,
2
,
⋯
,
N
,
y
0
≠
0
(1)
y_{i+1}=4\times y_i^3-3\times y_i,\,\,-1\leq y_i\leq1,\,\,i=1,2,\cdots,N,\,\,y_0\neq0\tag{1}
yi+1=4×yi3−3×yi,−1≤yi≤1,i=1,2,⋯,N,y0=0(1)其中,
y
i
y_i
yi为立方序列。若
X
i
∈
[
l
b
,
u
b
]
X_i\in[lb,ub]
Xi∈[lb,ub],
l
b
lb
lb、
u
b
ub
ub为搜索空间的上界和下界,将立方序列按式(2)映射到麻雀个体上:
X
i
=
l
b
+
(
u
b
−
l
b
)
×
(
y
i
+
1
)
/
2
(2)
X_i=lb+(ub-lb)\times(y_i+1)/2\tag{2}
Xi=lb+(ub−lb)×(yi+1)/2(2)反向学习策略评估问题的可行解及其反向解,选择较优的个体作为算法可行解,扩大搜索空间,进而实现提升初始解的质量,增加算法找到最优解的可能性,降低算法在迭代寻优时的盲目性的目的。个体
X
i
X_i
Xi的反向解
O
P
i
OP_i
OPi可表示为:
O
P
i
=
k
⋅
(
l
b
+
u
b
)
−
X
i
(3)
OP_i=k\cdot(lb+ub)-X_i\tag{3}
OPi=k⋅(lb+ub)−Xi(3)其中,
k
∈
(
0
,
1
)
k\in(0,1)
k∈(0,1)的随机数。
立方序列映射和反向学习策略初始化种群的具体过程为:
(1)通过式(1)产生立方映射序列,通过式(2)将立方序列映射至麻雀个体上,并计算立方映射种群的适应度值。
(2)通过式(3)寻求立方映射后种群的反向解种群,计算反向解种群的适应度值。
(3)合并立方映射种群和反向解种群后,根据适应度值进行评估,选择适应度值较优的前
N
N
N个麻雀个体作为初始种群。
(2)改进发现者的位置更新
借鉴粒子群算法的学习策略,引入全局最优值和个体历史最优值来改进发现者的位置,使得其不仅受全局最优个体位置的影响,还受个体历史最优位置的影响,提升麻雀种群之间的信息交流能力,从而提高算法的搜索速度和寻优精度。改进后的发现者位置更新公式如下: X i t + 1 = { w ⋅ X i t + c 1 ⋅ r a n d ( x b t − X i t ) + c 2 ⋅ r a n d ( x p i t − X i t ) , R 2 < S T X i t + β 2 ⋅ L , R 2 ≥ S T (4) X_i^{t+1}=\begin{dcases}w\cdot X_i^t+c_1\cdot rand(xb^t-X_i^t)+c_2\cdot rand(xp_i^t-X_i^t),\quad R_2<ST\\[2ex]X_i^t+\beta_2\cdot L,\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\,\,\,\,\, R_2\geq ST\end{dcases}\tag{4} Xit+1=⎩⎨⎧w⋅Xit+c1⋅rand(xbt−Xit)+c2⋅rand(xpit−Xit),R2<STXit+β2⋅L,R2≥ST(4)其中, x b t xb^t xbt、 x p i t xp_i^t xpit分别是第 t t t代全局最优值和第 i i i只麻雀的历史最优值, c 1 c_1 c1、 c 2 c_2 c2为学习因子。同时为兼顾算法全局探索和局部开发之间的平衡,在发现者位置更新方式中引入动态权重因子 w w w,权重因子 w w w的计算公式为: w = exp ( 1 − T max + t T max − t ) (5) w=\exp(1-\frac{T_{\max}+t}{T_{\max}-t})\tag{5} w=exp(1−Tmax−tTmax+t)(5)在寻优初期,权重因子大,算法的全局探索性能强搜索范围广;寻优后期,权重因子快速减小,算法局部开发能力强,有利于快速收敛。
(3)差分变异策略
在SSA迭代后期,麻雀种群将快速聚集在最优解附近,导致种群趋同性严重,算法停滞不前,进而增大算法陷入局部最优值的概率。为解决此问题,融合差分进化思想至SSA中,通过随机选择两个麻雀个体计算差值与全局最优个体进行变异操作产生新的个体,并对新个体引入反向学习策略,评估比较保留适应度更好的个体,从而改善种群的多样性提升算法局部最优值的逃逸能力,新个体 X new t X_{\text{new}}^t Xnewt的数学模型可表示为: X new t = x b t + λ ( X r 1 t − X r 2 t ) (6) X_{\text{new}}^t=xb^t+\lambda(X_{r_1}^t-X_{r_2}^t)\tag{6} Xnewt=xbt+λ(Xr1t−Xr2t)(6)其中, X r 1 X_{r_1} Xr1、 X r 2 X_{r_2} Xr2是随机选择的麻雀位置, λ \lambda λ为缩放因子。
二、仿真实验与结果分析
将MISSA与PSO、DE、GWO、WOA和SSA进行对比,以文献[1]中表1的8个测试函数为例,实验设置种群规模为30,最大迭代次数为200,每种算法独立运算30次,结果显示如下:
函数:F1
PSO:最差值: 2402.7906, 最优值: 472.0808, 平均值: 1239.5932, 标准差: 514.5587, 秩和检验: 9.4001e-12
DE:最差值: 121.0297, 最优值: 25.4167, 平均值: 58.0635, 标准差: 22.4839, 秩和检验: 9.4001e-12
GWO:最差值: 2.6372e-08, 最优值: 3.4019e-10, 平均值: 7.0241e-09, 标准差: 6.1619e-09, 秩和检验: 9.4001e-12
WOA:最差值: 3.5605e-24, 最优值: 2.0769e-33, 平均值: 1.2535e-25, 标准差: 6.4922e-25, 秩和检验: 9.4001e-12
SSA:最差值: 2.0359e-53, 最优值: 0, 平均值: 6.868e-55, 标准差: 3.7157e-54, 秩和检验: 5.693e-11
MISSA:最差值: 3.058e-268, 最优值: 0, 平均值: 1.0193e-269, 标准差: 0, 秩和检验: 1
函数:F2
PSO:最差值: 27.9898, 最优值: 13.3621, 平均值: 20.213, 标准差: 3.4045, 秩和检验: 2.8646e-11
DE:最差值: 4.1225, 最优值: 1.9914, 平均值: 2.9548, 标准差: 0.58675, 秩和检验: 2.8646e-11
GWO:最差值: 1.4681e-05, 最优值: 2.1409e-06, 平均值: 5.648e-06, 标准差: 3.0144e-06, 秩和检验: 2.8646e-11
WOA:最差值: 6.1462e-18, 最优值: 3.0913e-23, 平均值: 5.3303e-19, 标准差: 1.4524e-18, 秩和检验: 2.8646e-11
SSA:最差值: 3.5192e-26, 最优值: 5.7546e-221, 平均值: 2.1433e-27, 标准差: 8.1746e-27, 秩和检验: 2.2602e-10
MISSA:最差值: 3.4363e-140, 最优值: 0, 平均值: 1.1455e-141, 标准差: 6.2738e-141, 秩和检验: 1
函数:F3
PSO:最差值: 13023.5171, 最优值: 2681.9415, 平均值: 5126.6288, 标准差: 2315.5045, 秩和检验: 5.219e-12
DE:最差值: 61964.9293, 最优值: 37368.607, 平均值: 49304.3639, 标准差: 7477.2974, 秩和检验: 5.219e-12
GWO:最差值: 54.1021, 最优值: 0.07964, 平均值: 5.8407, 标准差: 10.5664, 秩和检验: 5.219e-12
WOA:最差值: 140330.5635, 最优值: 13095.3688, 平均值: 76037.401, 标准差: 26267.4276, 秩和检验: 5.219e-12
SSA:最差值: 1.4205e-36, 最优值: 0, 平均值: 5.3546e-38, 标准差: 2.6024e-37, 秩和检验: 1.2958e-10
MISSA:最差值: 7.603e-266, 最优值: 0, 平均值: 2.5343e-267, 标准差: 0, 秩和检验: 1
函数:F4
PSO:最差值: 26.6899, 最优值: 10.6661, 平均值: 19.0333, 标准差: 3.9124, 秩和检验: 2.7218e-11
DE:最差值: 62.6906, 最优值: 28.7759, 平均值: 41.6011, 标准差: 6.2662, 秩和检验: 2.7218e-11
GWO:最差值: 0.1016, 最优值: 0.012278, 平均值: 0.037696, 标准差: 0.02226, 秩和检验: 2.7218e-11
WOA:最差值: 88.6721, 最优值: 1.8955, 平均值: 53.5027, 标准差: 25.3832, 秩和检验: 2.7218e-11
SSA:最差值: 5.9012e-27, 最优值: 1.362e-197, 平均值: 1.9673e-28, 标准差: 1.0774e-27, 秩和检验: 1.0935e-10
MISSA:最差值: 1.2638e-148, 最优值: 0, 平均值: 4.2126e-150, 标准差: 2.3074e-149, 秩和检验: 1
函数:F5
PSO:最差值: 1.0562, 最优值: 0.12989, 平均值: 0.36907, 标准差: 0.20261, 秩和检验: 3.0199e-11
DE:最差值: 0.37767, 最优值: 0.1329, 平均值: 0.25094, 标准差: 0.062029, 秩和检验: 3.0199e-11
GWO:最差值: 0.018123, 最优值: 0.0016912, 平均值: 0.0073278, 标准差: 0.0036149, 秩和检验: 3.0199e-11
WOA:最差值: 0.033597, 最优值: 0.00016462, 平均值: 0.006969, 标准差: 0.0082474, 秩和检验: 1.411e-09
SSA:最差值: 0.0030681, 最优值: 0.00018208, 平均值: 0.0011632, 标准差: 0.00094273, 秩和检验: 1.3853e-06
MISSA:最差值: 0.0014248, 最优值: 1.2709e-05, 平均值: 0.00026365, 标准差: 0.00031769, 秩和检验: 1
函数:F6
PSO:最差值: 128.9574, 最优值: 45.1972, 平均值: 94.1692, 标准差: 18.3397, 秩和检验: 1.2118e-12
DE:最差值: 217.0332, 最优值: 171.3286, 平均值: 194.6469, 标准差: 13.1892, 秩和检验: 1.2118e-12
GWO:最差值: 34.7395, 最优值: 2.5421, 平均值: 12.4396, 标准差: 6.7695, 秩和检验: 1.2118e-12
WOA:最差值: 1.1632, 最优值: 0, 平均值: 0.075992, 标准差: 0.28926, 秩和检验: 0.0055737
SSA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
MISSA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
函数:F7
PSO:最差值: 12.6661, 最优值: 6.7932, 平均值: 9.5883, 标准差: 1.2688, 秩和检验: 1.2118e-12
DE:最差值: 4.6307, 最优值: 2.5632, 平均值: 3.6377, 标准差: 0.41477, 秩和检验: 1.2118e-12
GWO:最差值: 3.7852e-05, 最优值: 6.5265e-06, 平均值: 1.6643e-05, 标准差: 6.6088e-06, 秩和检验: 1.2118e-12
WOA:最差值: 6.839e-14, 最优值: 8.8818e-16, 平均值: 2.3152e-14, 标准差: 1.2234e-14, 秩和检验: 3.7511e-12
SSA:最差值: 8.8818e-16, 最优值: 8.8818e-16, 平均值: 8.8818e-16, 标准差: 0, 秩和检验: NaN
MISSA:最差值: 8.8818e-16, 最优值: 8.8818e-16, 平均值: 8.8818e-16, 标准差: 0, 秩和检验: NaN
函数:F8
PSO:最差值: 11237.9145, 最优值: 6.3509, 平均值: 422.0364, 标准差: 2048.4224, 秩和检验: 3.0199e-11
DE:最差值: 52.57, 最优值: 7.3444, 平均值: 17.1257, 标准差: 8.3828, 秩和检验: 3.0199e-11
GWO:最差值: 0.52565, 最优值: 0.02599, 平均值: 0.10131, 标准差: 0.09302, 秩和检验: 3.0199e-11
WOA:最差值: 0.39117, 最优值: 0.024068, 平均值: 0.097116, 标准差: 0.080112, 秩和检验: 3.0199e-11
SSA:最差值: 4.2645e-07, 最优值: 9.6032e-11, 平均值: 5.6618e-08, 标准差: 8.4729e-08, 秩和检验: 2.6015e-08
MISSA:最差值: 9.9391e-08, 最优值: 2.5472e-14, 平均值: 4.1971e-09, 标准差: 1.815e-08, 秩和检验: 1
实验结果表明:MISSA具有更好的求解精度、收敛速度和鲁棒性,相较于麻雀搜索算法综合性能有明显的提升,验证了MISSA算法的改进效果。
三、参考文献
[1] 张琳, 汪廷华, 周慧颖. 一种多策略改进的麻雀搜索算法[J]. 计算机工程与应用, 2022, 58(11): 133-140.