基础麻雀算法的具体原理参考,我的博客:https://blog.csdn.net/u011835903/article/details/108830958
基本 SSA 算法中,在 R 2
ω
=
ω
min
+
(
ω
max
−
ω
min
)
⋅
sin
(
t
π
/
i
t
e
r
max
)
(7)
\omega=\omega_{\min }+\left(\omega_{\max }-\omega_{\min }\right) \cdot \sin \left(t \pi / i t e r_{\max }\right) \tag{7}
ω=ωmin+(ωmax−ωmin)⋅sin(tπ/itermax)(7)
X
i
,
j
t
+
1
=
{
(
1
−
ω
)
⋅
X
i
,
j
t
+
ω
⋅
sin
(
r
1
)
⋅
∣
r
2
⋅
X
b
e
t
t
−
X
i
,
j
t
∣
R
2
<
S
T
(
1
−
ω
)
⋅
X
i
,
j
t
+
ω
⋅
cos
(
r
1
)
⋅
∣
r
2
⋅
X
b
e
t
t
−
X
i
,
j
t
∣
R
2
⩾
S
T
(8)
X_{i, j}^{t+1}=
式 (8) 中,
r
1
r_{1}
r1 为
[
0
,
2
π
]
[0,2 \pi]
[0,2π] 内的随机数,
r
2
r_{2}
r2 是
[
0
,
2
]
[0,2]
[0,2] 内的随机数。
当发现者迭代一定次数且适应度值不变时, 此 时跟随者成了发现者, 为避免算法陷人局部最优, 在跟随者更新公式中引人 Lévy飞行策略, 提高全局 搜索能力。改进后的公式如下:
X
i
,
j
t
+
1
=
{
Q
⋅
exp
(
X
worst
t
−
X
i
,
j
t
i
2
)
i
>
n
2
X
p
t
+
1
+
X
p
t
+
1
⊗
Levy
(
d
)
other
(9)
X_{i, j}^{t+1}=\left\{
式 (9)中,
X
p
t
+
1
X_{p}^{t+1}
Xpt+1 是当前发现者占领的最佳位置, Lévy飞行机制如下:
Levy
(
x
)
=
0.01
×
r
3
×
σ
∣
r
4
∣
1
/
ξ
)
(10)
\operatorname{Levy}(x)=0.01 \times \frac{r_{3} \times \sigma}{\left|r_{4}\right|^{1 / \xi)}}\tag{10}
Levy(x)=0.01×∣r4∣1/ξ)r3×σ(10)
式 (10) 中
r
3
、
r
4
r_{3} 、 r_{4}
r3、r4 均为
[
0
,
1
]
[0,1]
[0,1] 范围内的随机数,
ξ
\xi
ξ 的值可取 1. 5, σ 计算方式如下:
σ
=
(
Γ
(
1
+
ξ
)
×
sin
(
π
ξ
/
2
)
Γ
(
(
1
+
ξ
)
/
2
)
×
ξ
×
2
(
(
ξ
−
1
)
/
2
)
)
(
1
/
ξ
)
(11)
\sigma=\left(\frac{\Gamma(1+\xi) \times \sin (\pi \xi / 2)}{\Gamma((1+\xi) / 2) \times \xi \times 2^{((\xi-1) / 2)}}\right)^{(1 / \xi)} \tag{11}
σ=(Γ((1+ξ)/2)×ξ×2((ξ−1)/2)Γ(1+ξ)×sin(πξ/2))(1/ξ)(11)
式 (11) 中
Γ
(
x
)
=
(
x
−
1
)
\Gamma(x)=(x-1)
Γ(x)=(x−1) !
混合正弦余弦算法和 Lévy 飞行的麻雀算法步骤流程图如下:


[1]毛清华,张强,毛承成,柏嘉旋.混合正弦余弦算法和Lévy飞行的麻雀算法[J/OL].山西大学学报(自然科学版):1-6[2021-04-09].https://doi.org/10.13451/j.sxu.ns.2020135.