文章目录
一、理论基础
1、麻雀搜索算法
请参考这里。
2、改进麻雀搜索算法
对SSA算法从以下三方面进行改进:
1)提出精英混沌反向学习策略并引入麻雀种群初始化过程,扩大全局勘探范围的同时避免初始种群的随机性引起算法的不确定性,提升算法规避局部极值的能力和收敛速度;
2)在跟随者位置更新过程引入随机跟随策略,协调算法的全局搜索性能和局部开采能力;
3)采用柯西-高斯变异策略提升算法的种群多样性保持能力和抗停滞能力,帮助算法跳出局部最优。
2.1 种群初始化的改进
2.1.1 初始种群多样化
选用均匀性更好的立方混沌映射初始化麻雀种群,混沌算子具有随机性和规律性的优点,能够在一定范围内对所有的状态不重复遍历,公式如下: 2 y i + 1 = 4 y i 3 − 3 y i (1) 2y_{i+1}=4y_i^3-3y_i\tag{1} 2yi+1=4yi3−3yi(1) − 1 < y i < 1 , y i ≠ 0 , i = 0 , 1 , ⋯ , N (2) -1<y_i<1,y_i≠0,i=0,1,\cdots,N\tag{2} −1<yi<1,yi=0,i=0,1,⋯,N(2) x i = X l b + ( X u b − X l b ) × ( y i + 1 ) 2 (3) x_i=X_{lb}+\frac{(X_{ub}-X_{lb})×(y_i+1)}{2}\tag{3} xi=Xlb+2(Xub−Xlb)×(yi+1)(3)式(3)中, x i x_i xi为映射后麻雀个体; X l b X_{lb} Xlb和 X u b X_{ub} Xub分别对应解空间中的下界和上界。混沌立方映射初始化麻雀种群的具体过程为:随机在 [ − 1 , 1 ] [-1,1] [−1,1]内生成一个 d d d维向量作为初始个体,然后代入式(1)对其每一维进行迭代生成 N − 1 N-1 N−1个新个体,最后代入式(3)将立方映射产生的变量值映射到麻雀个体上。
2.1.2 初始种群精英化
通过透镜成像反向学习方法计算透镜成像反向解来扩大可选解的范围,增加选取更优解的概率,从而实现对初始种群个体质量的提升。设
x
j
x_j
xj和
x
j
∗
x_j^*
xj∗分别表示当前麻雀个体及其透镜成像反向后个体,
x
j
∗
=
a
j
+
b
j
2
+
a
j
+
b
j
2
k
−
x
j
k
(4)
x_j^*=\frac{a_j+b_j}{2}+\frac{a_j+b_j}{2k}-\frac{x_j}{k}\tag{4}
xj∗=2aj+bj+2kaj+bj−kxj(4)其中,
a
j
a_j
aj和
b
j
b_j
bj分别为当前种群中第
j
j
j维的最大值和最小值,
k
k
k为透镜的缩放系数,本文
k
=
10000
k=10000
k=10000。
精英混沌反向学习策略初始化麻雀种群的具体过程为:随机初始化个体数为
N
N
N的初始麻雀种群
X
=
[
x
i
1
,
x
i
2
,
⋯
,
x
i
d
]
,
i
=
1
,
2
,
⋯
,
N
X=[x_{i1},x_{i2},\cdots,x_{id}],i=1,2,\cdots,N
X=[xi1,xi2,⋯,xid],i=1,2,⋯,N,
x
i
d
x_{id}
xid表示第
i
i
i只麻雀在第
d
d
d维的位置;将种群
X
X
X代入式(3)生成混沌种群
Y
Y
Y,同时将种群
X
X
X代入式(4)生成透镜成像反向种群
Z
Z
Z;将种群
Y
Y
Y和种群
Z
Z
Z内麻雀个体根据适应度值进行排序,选择前
N
N
N个较优个体构成精英混沌反向种群
P
P
P;种群
P
P
P与原麻雀种群
X
X
X根据个体适应度值排序选取前
N
N
N个个体组成新的初始麻雀种群。
X
′
=
[
x
i
1
′
,
x
i
2
′
,
⋯
,
x
i
d
′
]
(5)
X'=[x_{i1}',x_{i2}',\cdots,x_{id}']\tag{5}
X′=[xi1′,xi2′,⋯,xid′](5)
2.2 跟随者位置更新的改进
将鸡群优化算法中的随机跟随策略引入麻雀搜索算法中的跟随者位置更新过程,充分利用上一代个体的位置信息和概率性变化。改进后跟随者位置更新公式如下: X i d t + 1 = { Q ⋅ exp ( X w o r s t t − X i d t i 2 ) , i > n / 2 X i d t + S 3 ⋅ r a n d ( 0 , 1 ) ⋅ ( X s d t − X i d t ) , i ≤ n / 2 (6) X_{id}^{t+1}=\begin{dcases}Q\cdot\exp\left(\frac{X_{worst}^t-X_{id}^t}{i^2}\right),\quad\quad\quad\quad\quad\, i>n/2\\X_{id}^t+S_3\cdot rand(0,1)\cdot(X_{sd}^t-X_{id}^t),\quad i≤n/2\end{dcases}\tag{6} Xidt+1=⎩⎨⎧Q⋅exp(i2Xworstt−Xidt),i>n/2Xidt+S3⋅rand(0,1)⋅(Xsdt−Xidt),i≤n/2(6)其中, S 3 = exp ( f s − f i ) S_3=\exp(f_s-f_i) S3=exp(fs−fi), f i f_i fi表示第 i i i只麻雀的适应度值, k ∈ [ 1 , N ] k\in[1,N] k∈[1,N],且 k ≠ i k≠i k=i。
2.3 引入柯西高斯变异策略
在基本SSA算法迭代的后期,麻雀个体的快速同化,导致容易出现局部最优停滞的情况。为了解决这一问题,采用柯西-高斯变异策略,选择当前适应度最好的个体进行变异,然后比较其变异前后的位置,选择较优的位置代入下一次迭代。具体公式如下: U b e s t t = X b e s t t [ 1 + λ 1 c a u c h y ( 0 , σ 2 ) + λ 2 G a u s s ( 0 , σ 2 ) ] (7) U_{best}^t=X_{best}^t\left[1+\lambda_1cauchy(0,\sigma^2)+\lambda_2Gauss(0,\sigma^2)\right]\tag{7} Ubestt=Xbestt[1+λ1cauchy(0,σ2)+λ2Gauss(0,σ2)](7) σ = { 1 , f ( X b e s t ) < f ( X i ) exp ( f ( X b e s t ) − f ( X i ) ∣ f ( X b e s t ) ∣ ) , o t h e r w i s e (8) \sigma=\begin{dcases}1,\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\, f(X_{best})<f(X_i)\\\exp\left(\frac{f(X_{best})-f(X_{i})}{|f(X_{best})|}\right),\quad otherwise\end{dcases}\tag{8} σ=⎩⎨⎧1,f(Xbest)<f(Xi)exp(∣f(Xbest)∣f(Xbest)−f(Xi)),otherwise(8)其中, U b e s t t U_{best}^t Ubestt表示最优个体变异后的位置; σ 2 \sigma^2 σ2表示柯西-高斯变异策略的标准差; c a u c h y ( 0 , σ 2 ) cauchy(0,\sigma^2) cauchy(0,σ2)是满足柯西分布的随机变量; G a u s s ( 0 , σ 2 ) Gauss(0,\sigma^2) Gauss(0,σ2)是满足高斯分布的随机变量; λ 1 = 1 − t 2 / T max 2 \lambda_1=1-t^2/T_{\max}^2 λ1=1−t2/Tmax2和 λ 2 = t 2 / T max 2 \lambda_2=t^2/T_{\max}^2 λ2=t2/Tmax2是随迭代次数自适应调整的动态参数。在寻优过程中, λ 1 \lambda_1 λ1逐渐减小, λ 2 \lambda_2 λ2逐渐增大,使算法可以跳出当前停滞,并协调其局部开发和全局探索的能力。
二、仿真实验与分析
选取麻雀搜索算法、改进麻雀搜索算法、粒子群算法(Particle Swarm Optimization,PSO)、鲸鱼优化算法(Whale Optimization Algorithm, WOA)和灰狼优化算法(Grey Wolf Optimizer, GWO)进行测试函数寻优对比,各算法的参数设置如文献[1]中表2所示,所有算法的共有参数保持一致,种群规模设置为50,最大迭代次数设置为500。为了去除偶然性引起的误差,分别对文献[1]中30维的10个测试函数进行30次独立试验。结果显示如下:
函数:F1
PSO:最大值: 94.1718,最小值:17.6926,平均值:43.1902,标准差:21.5546
GWO:最大值: 2.3984e-32,最小值:3.8255e-35,平均值:2.3802e-33,标准差:4.9171e-33
WOA:最大值: 3.3871e-84,最小值:3.2334e-97,平均值:1.4843e-85,标准差:6.3226e-85
SSA:最大值: 1.9781e-128,最小值:0,平均值:6.5937e-130,标准差:3.6115e-129
ISSA:最大值: 7.0119e-145,最小值:0,平均值:2.3373e-146,标准差:1.2802e-145
函数:F2
PSO:最大值: 22.4617,最小值:8.3081,平均值:14.7181,标准差:3.3139
GWO:最大值: 2.7549e-19,最小值:8.4841e-21,平均值:7.5663e-20,标准差:6.5594e-20
WOA:最大值: 3.5085e-53,最小值:3.2133e-61,平均值:1.2074e-54,标准差:6.3988e-54
SSA:最大值: 2.7213e-67,最小值:0,平均值:9.0717e-69,标准差:4.9684e-68
ISSA:最大值: 3.1039e-71,最小值:0,平均值:1.0462e-72,标准差:5.665e-72
函数:F3
PSO:最大值: 1006.0408,最小值:113.1589,平均值:404.6592,标准差:208.4944
GWO:最大值: 1.4311e-07,最小值:7.2939e-12,平均值:1.5049e-08,标准差:2.9366e-08
WOA:最大值: 43586.0771,最小值:5103.9347,平均值:27484.4536,标准差:10315.9446
SSA:最大值: 5.6306e-98,最小值:0,平均值:1.8769e-99,标准差:1.028e-98
ISSA:最大值: 4.3727e-142,最小值:0,平均值:1.7094e-143,标准差:8.0547e-143
函数:F4
PSO:最大值: 9.1564,最小值:3.7073,平均值:5.7951,标准差:1.3134
GWO:最大值: 5.2453e-08,最小值:2.2348e-09,平均值:1.719e-08,标准差:1.3886e-08
WOA:最大值: 88.9979,最小值:0.0011268,平均值:34.206,标准差:31.6887
SSA:最大值: 3.2885e-69,最小值:0,平均值:1.0989e-70,标准差:6.0035e-70
ISSA:最大值: 4.8263e-78,最小值:0,平均值:2.7736e-79,标准差:1.0282e-78
函数:F5
PSO:最大值: 13586.9939,最小值:476.0513,平均值:4443.7836,标准差:2976.608
GWO:最大值: 27.95,最小值:25.7358,平均值:26.6093,标准差:0.65434
WOA:最大值: 28.7226,最小值:26.289,平均值:27.3783,标准差:0.50655
SSA:最大值: 0.00021528,最小值:3.5465e-08,平均值:3.7463e-05,标准差:5.9155e-05
ISSA:最大值: 6.6921e-07,最小值:1.1515e-10,平均值:9.2932e-08,标准差:1.5127e-07
函数:F6
PSO:最大值: 507,最小值:54,平均值:213,标准差:120.0698
GWO:最大值: 0,最小值:0,平均值:0,标准差:0
WOA:最大值: 0,最小值:0,平均值:0,标准差:0
SSA:最大值: 0,最小值:0,平均值:0,标准差:0
ISSA:最大值: 0,最小值:0,平均值:0,标准差:0
函数:F7
PSO:最大值: 2.1261,最小值:0.20768,平均值:0.71418,标准差:0.44671
GWO:最大值: 0.00316,最小值:0.00035024,平均值:0.0010796,标准差:0.00058815
WOA:最大值: 0.011361,最小值:8.1668e-06,平均值:0.0017113,标准差:0.0026093
SSA:最大值: 0.0012206,最小值:6.8919e-06,平均值:0.00028975,标准差:0.00027191
ISSA:最大值: 0.0012369,最小值:6.4683e-05,平均值:0.00044429,标准差:0.00031557
函数:F8
PSO:最大值: -2586.1539,最小值:-4001.1163,平均值:-3118.0535,标准差:300.6732
GWO:最大值: -3455.1784,最小值:-7447.7589,平均值:-6058.3656,标准差:801.597
WOA:最大值: -6773.6387,最小值:-12568.7061,平均值:-10613.429,标准差:1871.9202
SSA:最大值: -7081.2722,最小值:-9624.2635,平均值:-8277.0795,标准差:644.6189
ISSA:最大值: -6811.2203,最小值:-12568.9849,平均值:-9880.1618,标准差:1802.1352
函数:F9
PSO:最大值: 138.8482,最小值:61.9705,平均值:94.4587,标准差:18.1114
GWO:最大值: 6.3524,最小值:0,平均值:0.89469,标准差:1.8793
WOA:最大值: 0,最小值:0,平均值:0,标准差:0
SSA:最大值: 0,最小值:0,平均值:0,标准差:0
ISSA:最大值: 0,最小值:0,平均值:0,标准差:0
函数:F10
PSO:最大值: 1.8337,最小值:0.90763,平均值:1.1396,标准差:0.21535
GWO:最大值: 0.021544,最小值:0,平均值:0.0014906,标准差:0.0048577
WOA:最大值: 0.081078,最小值:0,平均值:0.0027026,标准差:0.014803
SSA:最大值: 0,最小值:0,平均值:0,标准差:0
ISSA:最大值: 0,最小值:0,平均值:0,标准差:0
结果证明改进策略具有一定的协作互补性,ISSA算法具有更好的收敛性能、整体寻优协同能力和求解稳定性,相较SSA算法综合性能提升显著。
三、参考文献
[1] 付华, 刘昊. 多策略融合的改进麻雀搜索算法及其应用[J]. 控制与决策, 2022, 37(1): 87-96.