赞
踩
请参考这里。
具体原理请参考这里、这里和这里。通过对佳点集法和随机法生成二维初始种群进行对比,如图1所示。在相同的取点个数下,使用佳点集初始化方法的个体比随机初始化方法的个体更加均匀。
莱维飞行具体原理请参考这里。其次引入正弦函数与单位圆的关系,使得发现者能遍历圆上所有位置。并且通过引入黄金分割系数缩小解空间,以便获取可能好结果的搜索区域,加快算法搜索速度。综上结合莱维飞行和黄金正弦指引机制对发现者在
R
2
<
S
T
R_2<ST
R2<ST时位置更新公式如式(1)所示。
X
i
,
j
t
+
1
=
X
i
,
j
t
⋅
∣
sin
(
r
1
)
∣
+
γ
⋅
l
e
v
y
(
λ
)
⊕
d
i
s
(1)
X_{i,j}^{t+1}=X_{i,j}^t\cdot|\sin(r_1)|+\gamma\cdot levy(\lambda)\oplus dis\tag{1}
Xi,jt+1=Xi,jt⋅∣sin(r1)∣+γ⋅levy(λ)⊕dis(1)
γ
=
r
2
⋅
sin
(
r
1
)
⋅
exp
(
−
i
α
⋅
M
)
(2)
\gamma=r_2\cdot\sin(r_1)\cdot\exp\left(\frac{-i}{\alpha\cdot M}\right)\tag{2}
γ=r2⋅sin(r1)⋅exp(α⋅M−i)(2)
d
i
s
=
∣
θ
1
⋅
X
b
e
s
t
,
j
t
−
θ
2
⋅
X
i
,
j
t
∣
(3)
dis=\left|\theta_1\cdot X_{best,j}^t-\theta_2\cdot X_{i,j}^t\right|\tag{3}
dis=∣
∣θ1⋅Xbest,jt−θ2⋅Xi,jt∣
∣(3)其中,
X
i
,
j
t
+
1
X_{i,j}^{t+1}
Xi,jt+1和
X
i
,
j
t
X_{i,j}^t
Xi,jt分别表示在第
t
+
1
t+1
t+1代和第
t
t
t代时第
i
i
i只麻雀的第
j
j
j维;
r
1
∈
[
0
,
2
π
]
r_1\in[0,2\pi]
r1∈[0,2π]和
r
2
∈
[
0
,
π
]
r_2\in[0,\pi]
r2∈[0,π]的随机数;
θ
1
\theta_1
θ1和
θ
2
\theta_2
θ2是由引入黄金比例系数
τ
\tau
τ计算得到,其中
τ
=
(
5
−
1
)
/
2
\tau=(\sqrt 5-1)/2
τ=(5
−1)/2。
θ
1
=
−
π
+
2
π
⋅
(
1
−
τ
)
(4)
\theta_1=-\pi+2\pi\cdot(1-\tau)\tag{4}
θ1=−π+2π⋅(1−τ)(4)
θ
2
=
−
π
+
2
π
⋅
τ
(5)
\theta_2=-\pi+2\pi\cdot\tau\tag{5}
θ2=−π+2π⋅τ(5)相较于SSA中发现者的第一段更新策略,提出的黄金莱维飞行策略能让发现者搜索到更大范围,如图2(b)所示。
采用t-分布扰动策略对发现者位置进行扰动,以此来提升算法的灵活性和求解效果。t-分布又称学生分布 ,含有参数自由度 n n n,当 t ( n → ∞ ) → N ( 0 , 1 ) t(n\rightarrow\infty)→N(0,1) t(n→∞)→N(0,1);当 t ( n = 1 ) = C ( 0 , 1 ) t(n=1)=C(0,1) t(n=1)=C(0,1),其中 N ( 0 , 1 ) N(0,1) N(0,1)为标准的高斯分布, C ( 0 , 1 ) C(0,1) C(0,1)为柯西分布。即t-分布的两个边界分别是高斯分布和柯西分布。引入该特性对发现者 R 2 > S T R_2>ST R2>ST的更新公式进行改进,改进公式如下: X i t + 1 = X i t + t − d i s t r i b u t i o n ( t ) ⋅ X i t (6) X_i^{t+1}=X_i^{t}+t-distribution(t)\cdot X_i^t\tag{6} Xit+1=Xit+t−distribution(t)⋅Xit(6)其中,使用当前迭代次数 t t t作为 t t t分布的自由度参数。增强算法在迭代初期的全局探索能力的同时,也加强了算法在迭代后期的局部开发能力。
为了挑选出更具有跳出局部极值的麻雀个体,采用了一种动态分配侦察者策略,一半的侦察者保持原有的随机挑选机制,另一半的侦察者引入竞争机制。侦察者执行侦察任务成功率越高,竞争能力越强。将竞争能力强的个体选入下一代的侦察者。令
N
i
,
t
N_{i,t}
Ni,t表示第
i
i
i个体在
t
t
t代执行侦察任务的总次数,
N
i
,
s
N_{i,s}
Ni,s表示第
i
i
i个体在
t
t
t代成功执行侦察任务的总次数,则第
i
i
i个体在第
t
t
t代执行侦察任务的成功率
r
i
,
t
r_{i,t}
ri,t为
r
i
,
t
=
N
i
,
s
N
i
,
t
(7)
r_{i,t}=\frac{N_{i,s}}{N_{i,t}}\tag{7}
ri,t=Ni,tNi,s(7)其中,
N
i
,
s
N_{i,s}
Ni,s的大小取决于执行改进后侦察者位置更新公式前后适应度的比较,即若执行侦察任务后的适应度优于执行前的适应度,则该个体执行侦察任务成功,执行侦察任务的成功总次数加一,否则保持不变。
将执行侦察任务成功率进行排序,选取成功率较高的个体(占个体总数的10%)视为更具有跳出局部最优能力的个体,并且加入下一次侦察者。
X
i
t
+
1
=
{
sin
(
θ
3
)
⋅
r
3
⋅
(
X
b
e
s
t
t
−
X
i
t
)
+
cos
(
θ
4
)
⋅
r
4
⋅
(
X
r
a
n
d
t
−
X
i
t
)
if
f
i
>
f
g
X
i
t
+
K
⋅
(
∣
X
i
t
−
X
w
o
r
s
t
t
∣
(
f
i
−
f
w
)
+
ε
)
if
f
i
=
f
g
(8)
X_i^{t+1}=
MI-SSA算法实现流程图如图3所示。
将MI-SSA与PSO、BOA、WOA和SSA进行对比,以常用23个测试函数中的F1、F2(单峰函数/30维)、F9、F10(多峰函数/30维)、F16、F18(固定维度多峰函数/2维、2维)为例,实验设置种群规模为30,最大迭代次数为500,每种算法独立运算30次,结果显示如下:
函数:F1
PSO:最差值: 1.139, 最优值: 0.26016, 平均值: 0.57841, 标准差: 0.21317
BOA:最差值: 9.7285e-11, 最优值: 6.1802e-11, 平均值: 7.4564e-11, 标准差: 7.6992e-12
WOA:最差值: 8.7281e-69, 最优值: 1.6156e-90, 平均值: 2.9154e-70, 标准差: 1.5934e-69
SSA:最差值: 3.6724e-38, 最优值: 0, 平均值: 1.2242e-39, 标准差: 6.7049e-39
MI-SSA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0
函数:F2
PSO:最差值: 11.2003, 最优值: 2.5968, 平均值: 6.8491, 标准差: 2.4272
BOA:最差值: 3.0584e-08, 最优值: 9.5553e-09, 平均值: 2.4406e-08, 标准差: 5.3824e-09
WOA:最差值: 6.1346e-50, 最优值: 1.5969e-61, 平均值: 6.2244e-51, 标准差: 1.755e-50
SSA:最差值: 3.9911e-21, 最优值: 2.5646e-167, 平均值: 1.3571e-22, 标准差: 7.2823e-22
MI-SSA:最差值: 8.6224e-293, 最优值: 0, 平均值: 2.9252e-294, 标准差: 0
函数:F9
PSO:最差值: 107.8921, 最优值: 54.1041, 平均值: 80.521, 标准差: 14.6943
BOA:最差值: 203.1899, 最优值: 0, 平均值: 19.453, 标准差: 59.3502
WOA:最差值: 5.6843e-14, 最优值: 0, 平均值: 1.8948e-15, 标准差: 1.0378e-14
SSA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0
MI-SSA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0
函数:F10
PSO:最差值: 6.8766, 最优值: 3.0128, 平均值: 4.7005, 标准差: 0.95179
BOA:最差值: 3.8844e-08, 最优值: 1.8297e-08, 平均值: 2.968e-08, 标准差: 5.2329e-09
WOA:最差值: 7.9936e-15, 最优值: 8.8818e-16, 平均值: 5.6251e-15, 标准差: 2.5265e-15
SSA:最差值: 8.8818e-16, 最优值: 8.8818e-16, 平均值: 8.8818e-16, 标准差: 0
MI-SSA:最差值: 8.8818e-16, 最优值: 8.8818e-16, 平均值: 8.8818e-16, 标准差: 0
函数:F16
PSO:最差值: -1.0316, 最优值: -1.0316, 平均值: -1.0316, 标准差: 3.27e-09
BOA:最差值: -1.0306, 最优值: -1.0316, 平均值: -1.0312, 标准差: 0.00027372
WOA:最差值: -1.0316, 最优值: -1.0316, 平均值: -1.0316, 标准差: 2.0539e-09
SSA:最差值: -1.0316, 最优值: -1.0316, 平均值: -1.0316, 标准差: 5.1664e-16
MI-SSA:最差值: -1.0315, 最优值: -1.0316, 平均值: -1.0316, 标准差: 2.1603e-05
函数:F18
PSO:最差值: 3, 最优值: 3, 平均值: 3, 标准差: 1.0382e-07
BOA:最差值: 3.8414, 最优值: 3, 平均值: 3.0553, 标准差: 0.15894
WOA:最差值: 3.0009, 最优值: 3, 平均值: 3, 标准差: 0.00016142
SSA:最差值: 30, 最优值: 3, 平均值: 7.5, 标准差: 10.2343
MI-SSA:最差值: 3.0006, 最优值: 3, 平均值: 3.0001, 标准差: 0.00015982
实验结果表明:MI-SSA具有更好的寻优精度和收敛速度,在高维度问题求解上,具有更好的性能。
[1] 陈俊, 何庆. 混合策略改进的麻雀优化算法[J/OL]. 小型微型计算机系统: 1-9 [2022-07-27].
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。