多策略融合的改进麻雀搜索算法
文章目录
摘要:对麻雀搜索算法易陷入局部最优、收敛速度慢等不足,提出一种多策略融合的改进麻雀搜索算法.采用精英混沌反向学习策略生成初始种群,增强初始个体的质量和种群多样性,实现对更多优质搜索区域的勘探以提升算法的局部极值逃逸能力和收敛性能;结合鸡群算法的随机跟随策略优化麻雀搜索算法中跟随者的位置更新过程,平衡算法的局部开发性能和全局搜索能力;采用柯西-高斯变异策略提升算法的种群多样性保持能力和抗停滞能力。
1.麻雀搜索算法
基础麻雀算法的具体原理参考,我的博客:https://blog.csdn.net/u011835903/article/details/108830958
2.改进麻雀算法
2.1 初始种群多样化
选用均匀性更好的立方混沌映射初始化麻雀种 群, 混沌算子
[
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
\begin{aligned} &-1<y_i<1, y_i \neq 0, i=0,1, \cdots N \\ &x_i=X_{l b}+\frac{\left(X_{u b}-X_{l b}\right) \times\left(y_i+1\right)}{2} \end{aligned}
−1<yi<1,yi=0,i=0,1,⋯Nxi=Xlb+2(Xub−Xlb)×(yi+1)
式 (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′]
2.2 跟随者位置更新的改进
标准 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
)
\begin{gathered} X_{i, j}^{t+1}=X_{i, j}^t+S_1 \operatorname{rand}(0,1)\left(X_{r, j}^t-X_{i, j}^t\right)+ \\ S_2 \text { rand }(0,1)\left(X_{r, j}^t-X_{i, j}^t\right) \\ S_1=\exp \left(\left(f_i-f_r\right) /\left(\left|\left(f_i\right)\right|+\varepsilon\right)\right) \\ S_2=\exp \left(f_s-f_i\right) \end{gathered}
Xi,jt+1=Xi,jt+S1rand(0,1)(Xr,jt−Xi,jt)+S2 rand (0,1)(Xr,jt−Xi,jt)S1=exp((fi−fr)/(∣(fi)∣+ε))S2=exp(fs−fi)
式 (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\{\begin{array}{l}Q \cdot \exp \left(\frac{X_{\text {worst }}^t-x_{i, d}^t}{i^2}\right), \text { if } i>n / 2 \\ X_{i, d}^t+S_3 \operatorname{rand}(0,1)\left(x_{k, j}^t-x_{i, d}^t\right), \\ \text { if } i \leq n / 2\end{array}\right.
xi,dt+1=⎩
⎨
⎧Q⋅exp(i2Xworst t−xi,dt), if i>n/2Xi,dt+S3rand(0,1)(xk,jt−xi,dt), if i≤n/2 式 (10) 中,
S
3
=
exp
(
f
s
−
f
i
)
,
f
i
S_3=\exp \left(f_s-f_i\right), f_i
S3=exp(fs−fi),fi 表示第
i
\mathrm{i}
i 只麻雀 的适应度值
k
∈
[
1
,
N
]
\mathrm{k} \in[1, N]
k∈[1,N], 且
k
≠
i
\mathrm{k} \neq \mathrm{i}
k=i.
2.3 引入柯西高斯变异策略
在基本 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
\begin{gathered} U_{\text {best }}^t=X_{\text {best }}^t\left[1+\lambda_1 \text { cauchy }\left(0, \sigma^2\right)+\right. \\ \left.\lambda_2 \text { Gauss }\left(0, \sigma^2\right)\right] \\ \sigma=\left\{\begin{array}{l} 1, f\left(X_{\text {best }}\right)<f\left(X_i\right) \\ \exp \left(\frac{f\left(X_{\text {best }}\right)-f\left(X_i\right)}{\left|f\left(X_{\text {best }}\right)\right|}\right), \text { otherwise } \end{array}\right. \end{gathered}
Ubest t=Xbest t[1+λ1 cauchy (0,σ2)+λ2 Gauss (0,σ2)]σ={1,f(Xbest )<f(Xi)exp(∣f(Xbest )∣f(Xbest )−f(Xi)), 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 逐渐增大, 使算法可以跳出当前停滞, 并协调其局部开发和全局探索的能力.
3.实验结果
4.参考文献
[1]付华,刘昊.多策略融合的改进麻雀搜索算法及其应用[J/OL].控制与决策:1-10[2021-09-09].https://doi.org/10.13195/j.kzyjc.2021.0582.