一、理论基础
1、麻雀搜索算法
请参考这里。
2、麻雀搜索算法的改进
(1)黄金正弦策略
Golden-SA是受到正弦函数的启发,利用数学中的正弦函数进行迭代寻优,具有较强的全局搜索能力。同时在位置更新过程中引入黄金分割系数来使算法能够对局部区域进行充分搜索,使全局搜索和局部开发能力达到良好的平衡,其数学模型请参考这里。
本文引入Golden-SA改进SSA中发现者的位置更新公式,改进后的位置更新方式如式(1)所示:
X
i
,
j
t
+
1
=
{
X
i
,
j
t
×
∣
sin
(
R
1
)
∣
+
R
2
×
sin
(
R
1
)
×
∣
x
1
×
X
b
e
s
t
t
−
x
2
×
X
i
,
j
t
∣
,
R
2
<
S
T
X
i
,
j
t
+
Q
⋅
L
,
R
2
≥
S
T
(1)
X_{i,j}^{t+1}=\begin{dcases}X_{i,j}^t\times|\sin(R_1)|+R_2\times\sin(R_1)\times|x_1\times X_{best}^t-x_2\times X_{i,j}^t|,\quad R_2<ST\\X_{i,j}^t+Q\cdot L,\quad\quad\quad\quad R_2≥ST\end{dcases}\tag{1}
Xi,jt+1={Xi,jt×∣sin(R1)∣+R2×sin(R1)×∣x1×Xbestt−x2×Xi,jt∣,R2<STXi,jt+Q⋅L,R2≥ST(1)改进后的位置更新公式中,一方面,在每一次迭代时麻雀个体都会与最优个体进行信息交流,以便充分利用当前最优解的信息,改善了原算法中缺乏个体间信息交流的缺陷;另一方面,针对原算法容易陷入局部最优的问题,Golden-SA的引入可以在一定程度上扩大搜索空间,从而提升算法的全局寻优能力;同时,黄金分割系数逐步缩小了搜索空间,并通过
R
1
R_1
R1和
R
2
R_2
R2控制麻雀的搜索距离和方向,优化了SSA算法的寻优方式,进一步协调了算法的全局探索和局部开发能力。
(2)自适应t分布和动态选择策略
本文采用以迭代次数
i
t
e
r
iter
iter为t分布的自由度参数的t分布变异算子对麻雀位置进行扰动,使得算法在迭代前期具有较好的全局开发能力,在迭代后期具有良好的局部探索能力,并提高算法的收敛速度,具体的位置更新方式如下:
X
i
t
+
1
=
X
i
t
+
X
i
t
⋅
t
(
i
t
e
r
)
(2)
X_i^{t+1}=X_i^t+X_i^t\cdot t(iter)\tag{2}
Xit+1=Xit+Xit⋅t(iter)(2)其中,
X
i
t
+
1
X_i^{t+1}
Xit+1为扰动后麻雀的位置,
X
i
t
X_i^t
Xit为麻雀
i
i
i第
t
t
t次迭代时位置。所提更新公式在
X
i
t
X_i^t
Xit的基础上,增加了随机干扰项
X
i
t
⋅
t
(
i
t
e
r
)
X_i^t\cdot t(iter)
Xit⋅t(iter),既充分利用了当前位置信息,又增加了随机干扰信息,有利于算法跳出局部最优。而随着迭代次数
i
t
e
r
iter
iter增加,t分布逐渐向高斯分布靠拢,有利于增强算法的收敛速度。
自适应t分布变异算子的引入,虽然能够很大程度上提升算法的寻优性能,但是若无差别的对每次迭代中的所有个体使用,一方面会增加算法的计算时间,另一方面不利于发挥原算法本身的特点。因此,本文采用动态选择概率
p
p
p来调节自适应t分布变异算子的使用。其计算公式如下:
p
=
w
1
−
w
2
×
(
m
a
x
i
t
e
r
−
i
t
e
r
)
/
m
a
x
i
t
e
r
(3)
p=w_1-w_2\times(maxiter-iter)/maxiter\tag{3}
p=w1−w2×(maxiter−iter)/maxiter(3)其中,
m
a
x
i
t
e
r
maxiter
maxiter为最大迭代次数,
i
t
e
r
iter
iter为当前迭代次数,
w
1
w_1
w1决定了动态选择概率的上限,
w
2
w_2
w2决定了动态选择概率的变化幅度,本文经过反复试验发现当
w
1
=
0.5
w_1=0.5
w1=0.5、
w
2
=
0.1
w_2=0.1
w2=0.1时,调节作用最优。动态选择概率
p
p
p使得算法在迭代前期有较大概率于利用自适应t分布变异算子对麻雀的位置进行扰动,改善原算法在迭代初期就存在收敛于最优解的倾向;同时在迭代后期,充分发挥原算法良好的局部开发能力,并以较小概率的t分布变异作为补充,提升算法的收敛速度。
(3)改进算法的流程图
t-GSSA的具体执行流程如图1所示:
二、仿真实验与结果分析
本文选取基本粒子群算法(PSO)、基本麻雀算法(SSA)、基本蝴蝶算法(BOA)以及基本鲸鱼算法(WOA)作为对比对象,各算法的共同参数包括群体规模和最大迭代次数,分别设置为30和200,其他特殊参数设置遵照文献[1]中表1。将选取的4个对比算法和所提的t-GSSA,分别在文献[1]中表2所示的10个基本测试函数(f1~f8为30维、f9和f10为4维)上独立运行30次,结果显示如下:
函数:F1
SSA:最差值: 1.0473e-53,最优值: 0,平均值: 3.5044e-55,标准差: 1.9119e-54,秩和检验: 5.5727e-10
BOA:最差值: 6.439e-08,最优值: 4.3723e-08,平均值: 5.4083e-08,标准差: 5.0473e-09,秩和检验: 3.0199e-11
WOA:最差值: 4.3455e-24,最优值: 2.2738e-35,平均值: 1.4642e-25,标准差: 7.9311e-25,秩和检验: 3.0199e-11
PSO:最差值: 2.4858,最优值: 0.089463,平均值: 0.62343,标准差: 0.51136,秩和检验: 3.0199e-11
t-GSSA:最差值: 4.1993e-218,最优值: 2.1578e-259,平均值: 1.3998e-219,标准差: 0,秩和检验: 1
函数:F2
SSA:最差值: 1.6536e-31,最优值: 0,平均值: 8.4199e-33,标准差: 3.333e-32,秩和检验: 2.0023e-06
BOA:最差值: 8.7213e-06,最优值: 4.0068e-06,平均值: 6.8817e-06,标准差: 1.2311e-06,秩和检验: 3.0199e-11
WOA:最差值: 3.031e-17,最优值: 1.066e-23,平均值: 1.3615e-18,标准差: 5.575e-18,秩和检验: 3.0199e-11
PSO:最差值: 32.7597,最优值: 0.81364,平均值: 13.1153,标准差: 10.044,秩和检验: 3.0199e-11
t-GSSA:最差值: 2.065e-103,最优值: 3.812e-124,平均值: 1.3167e-104,标准差: 4.9302e-104,秩和检验: 1
函数:F3
SSA:最差值: 2.2261e-35,最优值: 0,平均值: 7.4203e-37,标准差: 4.0643e-36,秩和检验: 1.1077e-06
BOA:最差值: 5.9872e-08,最优值: 3.0647e-08,平均值: 4.8876e-08,标准差: 5.9804e-09,秩和检验: 3.0199e-11
WOA:最差值: 115711.4203,最优值: 52194.657,平均值: 79146.7038,标准差: 17445.829,秩和检验: 3.0199e-11
PSO:最差值: 1353.7483,最优值: 151.264,平均值: 548.2052,标准差: 282.9166,秩和检验: 3.0199e-11
t-GSSA:最差值: 1.4842e-160,最优值: 1.776e-207,平均值: 4.9473e-162,标准差: 2.7132e-161,秩和检验: 1
函数:F4
SSA:最差值: 9.5233e-28,最优值: 0,平均值: 4.2858e-29,标准差: 1.7971e-28,秩和检验: 1.8731e-07
BOA:最差值: 1.1776e-05,最优值: 8.525e-06,平均值: 1.0579e-05,标准差: 6.9145e-07,秩和检验: 3.0199e-11
WOA:最差值: 88.3187,最优值: 10.9254,平均值: 61.3874,标准差: 24.8045,秩和检验: 3.0199e-11
PSO:最差值: 12.6693,最优值: 1.6774,平均值: 5.0416,标准差: 2.261,秩和检验: 3.0199e-11
t-GSSA:最差值: 5.2164e-114,最优值: 1.3432e-134,平均值: 1.8897e-115,标准差: 9.5101e-115,秩和检验: 1
函数:F5
SSA:最差值: 0.0027746,最优值: 6.8875e-05,平均值: 0.00094984,标准差: 0.00071786,秩和检验: 0.016955
BOA:最差值: 0.0062259,最优值: 0.0010389,平均值: 0.0035244,标准差: 0.0013771,秩和检验: 4.6159e-10
WOA:最差值: 0.038114,最优值: 0.00026339,平均值: 0.0077268,标准差: 0.0079261,秩和检验: 2.8314e-08
PSO:最差值: 32.3294,最优值: 0.085703,平均值: 7.755,标准差: 8.9191,秩和检验: 3.0199e-11
t-GSSA:最差值: 0.0034904,最优值: 1.1375e-06,平均值: 0.00061029,标准差: 0.00072919,秩和检验: 1
函数:F6
SSA:最差值: 0,最优值: 0,平均值: 0,标准差: 0,秩和检验: NaN
BOA:最差值: 194.9398,最优值: 5.8229e-09,平均值: 18.3416,标准差: 56.0385,秩和检验: 1.2118e-12
WOA:最差值: 4.1293,最优值: 0,平均值: 0.13764,标准差: 0.7539,秩和检验: 0.0055737
PSO:最差值: 208.4155,最优值: 78.0825,平均值: 128.2892,标准差: 30.2933,秩和检验: 1.2118e-12
t-GSSA:最差值: 0,最优值: 0,平均值: 0,标准差: 0,秩和检验: NaN
函数:F7
SSA:最差值: 8.8818e-16,最优值: 8.8818e-16,平均值: 8.8818e-16,标准差: 0,秩和检验: NaN
BOA:最差值: 1.2509e-05,最优值: 8.2377e-06,平均值: 9.6579e-06,标准差: 7.6813e-07,秩和检验: 1.2118e-12
WOA:最差值: 1.3944e-13,最优值: 7.9936e-15,平均值: 2.5047e-14,标准差: 2.6114e-14,秩和检验: 9.9713e-13
PSO:最差值: 3.6562,最优值: 0.96337,平均值: 2.062,标准差: 0.61559,秩和检验: 1.2118e-12
t-GSSA:最差值: 8.8818e-16,最优值: 8.8818e-16,平均值: 8.8818e-16,标准差: 0,秩和检验: NaN
函数:F8
SSA:最差值: 0,最优值: 0,平均值: 0,标准差: 0,秩和检验: NaN
BOA:最差值: 9.7076e-08,最优值: 5.1497e-08,平均值: 7.4012e-08,标准差: 1.2637e-08,秩和检验: 1.2118e-12
WOA:最差值: 0.3208,最优值: 0,平均值: 0.010693,标准差: 0.058569,秩和检验: 0.1608
PSO:最差值: 21.1251,最优值: 6.2438,平均值: 11.1522,标准差: 4.1647,秩和检验: 1.2118e-12
t-GSSA:最差值: 0,最优值: 0,平均值: 0,标准差: 0,秩和检验: NaN
函数:F9
SSA:最差值: 0.00032903,最优值: 0.00030749,平均值: 0.00031006,标准差: 5.2334e-06,秩和检验: 0.0035012
BOA:最差值: 0.0027987,最优值: 0.00033546,平均值: 0.00065235,标准差: 0.00044856,秩和检验: 4.0772e-11
WOA:最差值: 0.0036707,最优值: 0.00031889,平均值: 0.00094699,标准差: 0.00083039,秩和检验: 8.9934e-11
PSO:最差值: 0.022553,最优值: 0.00069554,平均值: 0.0083949,标准差: 0.0096709,秩和检验: 2.9991e-11
t-GSSA:最差值: 0.0003539,最优值: 0.00030752,平均值: 0.00031471,标准差: 1.0503e-05,秩和检验: 1
函数:F10
SSA:最差值: -5.0552,最优值: -10.1532,平均值: -7.7732,标准差: 2.5859,秩和检验: 0.2109
BOA:最差值: -2.0364,最优值: -4.736,平均值: -3.7605,标准差: 0.56819,秩和检验: 3.0199e-11
WOA:最差值: -2.57,最优值: -10.1424,平均值: -7.5136,标准差: 2.7549,秩和检验: 3.0199e-11
PSO:最差值: -2.6305,最优值: -10.1532,平均值: -6.1915,标准差: 3.1636,秩和检验: 0.0078395
t-GSSA:最差值: -10.1532,最优值: -10.1532,平均值: -10.1532,标准差: 2.183e-06,秩和检验: 1
结果表明,所提算法具有更好的收敛性和求解精度。
三、参考文献
[1] 张伟康, 刘升. 自适应t分布与黄金正弦改进的麻雀搜索算法及其应用[J]. 微电子学与计算机, 2022, 39(3): 17-24.