1.算法原理
——复现文章,本篇论文是东华大学沈波实验室(原麻雀搜索算法SSA提出实验室)提出的改进麻雀搜索算法:基于矢量包围模型的麻雀搜索算法用于工程优化和数值优化问题(A vector-encirclement-model-based sparrow search algorithm for engineering optimization and numerical optimization problems)
2.摘要
麻雀搜索算法(SSA)是一种新的高性能全局优化算法。为了进一步提高其全局和局部搜索能力,本文提出了一种改进的SSA(ISSA),其主要创新在于生产者集中策略、矢量包围模型和方向选择策略。生产者集中策略旨在更新生产者的位置,以期提高生产者的全局搜索能力;而矢量包围模型和方向选择策略则旨在更新觅食者的位置,以期提高觅食者的局部搜索能力。
3.改进点
Producer centralization strategy
在生产者中随机选择一只麻雀作为生产者探索的中心。当更新生产者的位置时,所有生产者都朝选中的麻雀移动。改进后的生产者位置更新:
G
i
,
k
r
+
1
=
{
B
i
,
k
r
if
(
R
1
≤
R
p
1
)
G
i
,
k
r
otherwise
B
i
,
k
r
=
G
r
1
,
k
r
+
ϕ
⋅
∣
G
r
2
,
k
r
−
G
r
3
,
k
r
∣
G_{i,k}^{r+1}=\begin{cases}B_{i,k}^r&\text{if} \left(R_1\leq R_{p1}\right)\\G_{i,k}^r&\text{otherwise}\end{cases}\\B_{i,k}^{r}=G_{r_{1},k}^{r}+\phi\cdot\left|G_{r_{2},k}^{r}-G_{r_{3},k}^{r}\right|
Gi,kr+1={Bi,krGi,krif(R1≤Rp1)otherwiseBi,kr=Gr1,kr+ϕ⋅
Gr2,kr−Gr3,kr
其中,r1,r2和r3是随机互不相等的正整数。 ϕ \phi ϕ表述扰动幅度,R1代表生成者移动概率,Rp1是安全阈值。
Vector encirclement model
在搜索空间中,有两个特殊位置Gbest和Gworst,其中Gbest是当前迭代中生产者中适应度值最好的麻雀的位置,Gworst是当前迭代中麻雀群体中适应度值最差的麻雀的位置。更新后的麻雀位置将位于由向量Gi-Gworst和Gbest-Gi形成的平行四边形内。矢量包围模型来更新觅食者的位置:
G
i
,
k
r
+
1
=
G
i
,
k
r
+
r
4
ω
1
(
G
i
,
k
r
−
G
w
o
r
s
t
,
k
r
)
+
r
5
ω
2
(
G
b
e
s
t
,
k
r
−
G
i
,
k
r
)
G_{\mathrm{i},k}^{r+1}=G_{\mathrm{i},k}^{r}+r_{4}\omega_{1}\left(G_{\mathrm{i},k}^{r}-G_{\mathrm{worst},k}^{r}\right)+r_{5}\omega_{2}\left(G_{\mathrm{best},k}^{r}-G_{\mathrm{i},k}^{r}\right)
Gi,kr+1=Gi,kr+r4ω1(Gi,kr−Gworst,kr)+r5ω2(Gbest,kr−Gi,kr)
Scrounger direction selection strategy
基于矢量包围模型,进一步提出了觅食者的方向选择策略。在这一新策略下,麻雀群体的搜索范围可以大幅扩展,同时还能保留觅食者的局部搜索能力。觅食者的方向选择规则表述为:
G
i
,
k
r
+
1
=
G
i
,
k
r
+
r
6
ω
1
(
G
i
,
k
r
−
G
d
1
,
k
r
)
+
r
7
ω
2
(
G
d
2
,
k
r
−
G
i
,
k
r
)
G_{\mathrm{i},k}^{r+1}=G_{\mathrm{i},k}^{r}+r_{6}\omega_{1}\left(G_{\mathrm{i},k}^{r}-G_{d_{1},k}^{r}\right)+r_{7}\omega_{2}\left(G_{d_{2},k}^{r}-G_{\mathrm{i},k}^{r}\right)
Gi,kr+1=Gi,kr+r6ω1(Gi,kr−Gd1,kr)+r7ω2(Gd2,kr−Gi,kr)
其中,d1和d2计算方式为:
d
1
=
{
w
o
r
s
t
if
(
R
2
≤
R
p
2
)
r
a
n
d
W
otherwise
d
2
=
{
b
e
s
t
if
(
R
3
≤
R
p
3
)
r
a
n
d
B
otherwise
d_1=\begin{cases}worst&\text{if} \left(R_2\leq R_{p2}\right)\\randW&\text{otherwise}\end{cases}\\d_2=\begin{cases}best&\text{if} \left(R_3\leq R_{p3}\right)\\randB&\text{otherwise}\end{cases}
d1={worstrandWif(R2≤Rp2)otherwised2={bestrandBif(R3≤Rp3)otherwise
Rp2和Rp3是选择概率,设置Rp2 = Rp3 = 0.5。根据它们的适应度值从低到高对m只麻雀进行排序。其中,Worst和best分别表示适应度最差和最佳位置的指标。randB为[1,0.1 m]中随机选取的麻雀,randW为[0.9 m, m]中随机选取的麻雀。
伪代码
4.结果展示
CEC2017
5.参考文献
[1] Hong J, Shen B, Xue J, et al. A vector-encirclement-model-based sparrow search algorithm for engineering optimization and numerical optimization problems[J]. Applied Soft Computing, 2022, 131: 109777.