基础麻雀算法的具体原理参考,我的博客:https://blog.csdn.net/u011835903/article/details/108830958
选用均匀性更好的立方混沌映射初始化麻雀种 群, 混沌算子
[
13
]
[13]
[13] 具有随机性和规律性的优点, 能够在 一定范围内对所有的状态不重复遍历, 公式如下:
−
1
<
y
i
<
1
,
y
i
≠
0
,
i
=
0
,
1
,
⋯
N
x
i
=
X
l
b
+
(
X
u
b
−
X
l
b
)
×
(
y
i
+
1
)
2
式 (4) 中,
x
i
x_i
xi 为映射后麻雀个体;
X
l
b
X_{l b}
Xlb 和
X
u
b
X_{u b}
Xub 分别 对应解空间中的下界和上界. 混沌立方映射初始化 麻雀种群的具体过程为: 随机在
[
−
1
,
1
]
[-1,1]
[−1,1] 内生成一个
d
\mathrm{d}
d 维向量作为初始个体, 然后代入式 (2) 对其每一维进 行迭代生成
N
−
1
\mathrm{N}-1
N−1 个新个体, 最后代入式 (4) 将立方映 射产生的变量值映射到麻雀个体上.
通过透镜成像反向学习方法
[
14
]
{ }^{[14]}
[14] 计算透镜成像 反向解来扩大可选解的范围, 增加选取更优解的概 率, 从而实现对初始种群个体质量的提升. 设
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
x_j^*=\frac{a_j+b_j}{2}+\frac{a_j+b_j}{2 k}-\frac{x_j}{k}
xj∗=2aj+bj+2kaj+bj−kxj
式 (5) 中,
a
j
a_j
aj 和
b
j
b_j
bj 分别表示当前种群第
j
\mathrm{j}
j 维中的 最小值和最大值,
k
\mathrm{k}
k 为透镜的缩放系数.
精英混沌反向学习策略初始化麻雀种群的具 体过程为: 随机初始化个体数为
N
\mathrm{N}
N 的初始麻雀种群
X
=
[
x
i
1
,
⋯
,
x
i
d
]
,
i
=
1
⋯
N
,
x
i
d
X=\left[x_{i 1}, \cdots, x_{i d}\right], i=1 \cdots N, x_{i d}
X=[xi1,⋯,xid],i=1⋯N,xid 表示第
i
\mathrm{i}
i 只麻雀在 第
d
\mathrm{d}
d 维的位置; 将种群
X
\mathrm{X}
X 代入式 (4) 生成混沌种群
Y
\mathrm{Y}
Y, 同时将种群
X
\mathrm{X}
X 代入式 (5) 生成透镜成像反向种群 Z;将种群
Y
\mathrm{Y}
Y 和种群
Z
\mathrm{Z}
Z 内麻雀个体根据适应度值进行排 序, 选择前
N
\mathrm{N}
N 个较优个体构成精英混沌反向种群
P
\mathrm{P}
P; 种群
P
\mathrm{P}
P 与原麻雀种群
X
\mathrm{X}
X 根据个体适应度值排序选取 前
N
\mathrm{N}
N 个个体组成新的初始麻雀种群.
X
′
=
[
x
i
1
′
,
⋯
,
x
i
d
′
]
X^{\prime}=\left[x_{i 1}^{\prime}, \cdots, x_{i d}^{\prime}\right]
X′=[xi1′,⋯,xid′]
标准 SSA 算法中的跟随者在向最优位置移动 时, 容易出现种群在短时间内迅速集聚的情况, 虽然 能够达到快速收玫的效果, 但种群的多样性骤降, 致 使算法陷入局部最优的概率大大增加. 鸡群优化算 法
[
15
]
{ }^{[15]}
[15] 是一种具有优秀全局寻优能力的随机优化算 法, 其中的随机跟随策略是母鸡以一定概率向公鸡 靠笼, 既保证了收玫性, 又没有降低种群多样性, 能 够很好地兼顾局部开发和全局搜索. 母鸡的位置更 新公式如下:
X
i
,
j
t
+
1
=
X
i
,
j
t
+
S
1
rand
(
0
,
1
)
(
X
r
,
j
t
−
X
i
,
j
t
)
+
S
2
rand
(
0
,
1
)
(
X
r
,
j
t
−
X
i
,
j
t
)
S
1
=
exp
(
(
f
i
−
f
r
)
/
(
∣
(
f
i
)
∣
+
ε
)
)
S
2
=
exp
(
f
s
−
f
i
)
式 (8) 中,
r
r
r 表示母鸡配偶中任意第
r
r
r 只公鸡; 式 (9) 中
s
\mathrm{s}
s 表示鸡群内任意第
s
\mathrm{s}
s 只公鸡或母鸡,
r
≠
s
\mathrm{r} \neq \mathrm{s}
r=s.
将随机跟随策略引入麻雀搜索算法中的跟随者 位置更新过程, 充分利用上一代个体的位置信息和 概率性变化. 改进后跟随者位置更新公式如下:
x
i
,
d
t
+
1
=
{
Q
⋅
exp
(
X
worst
t
−
x
i
,
d
t
i
2
)
,
if
i
>
n
/
2
X
i
,
d
t
+
S
3
rand
(
0
,
1
)
(
x
k
,
j
t
−
x
i
,
d
t
)
,
if
i
≤
n
/
2
x_{i, d}^{t+1}=\left\{
在基本 SSA 算法迭代的后期, 麻雀个体的快速 同化, 导致容易出现局部最优停滞的情况. 为了解决 这一问题, 采用柯西 -高斯变异策略[16], 选择当前适 应度最好的个体进行变异, 然后比较其变异前后的 位置, 选择较优的位置代入下一次迭代. 具体公式如 下:
U
best
t
=
X
best
t
[
1
+
λ
1
cauchy
(
0
,
σ
2
)
+
λ
2
Gauss
(
0
,
σ
2
)
]
σ
=
{
1
,
f
(
X
best
)
<
f
(
X
i
)
exp
(
f
(
X
best
)
−
f
(
X
i
)
∣
f
(
X
best
)
∣
)
,
otherwise
式 (11) 中,
U
best
t
U_{\text {best }}^t
Ubest t 表示最优个体变异后的位置;
σ
2
\sigma^2
σ2表示柯西 - 高斯变异策略的标准差;
cauchy
(
0
,
σ
2
)
\operatorname{cauchy}\left(0, \sigma^2\right)
cauchy(0,σ2) 是 满足柯西分布的随机变量;Gauss
(
0
,
σ
2
)
\left(0, \sigma^2\right)
(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 逐渐增大, 使算法可以跳出当前停滞, 并协调其局部开发和全局探索的能力.
[1]付华,刘昊.多策略融合的改进麻雀搜索算法及其应用[J/OL].控制与决策:1-10[2021-09-09].https://doi.org/10.13195/j.kzyjc.2021.0582.