一、理论基础
1、黏菌算法
请参考这里。
2、均衡优化算法
请参考这里。
3、嵌入均衡池的黏菌算法
尽管SMA已显示出很好的寻优效果,但在搜索过程中仍有改进的余地。由于
X
→
A
\overrightarrow X_A
XA和
X
→
B
\overrightarrow X_B
XB是
N
N
N个黏菌的2个随机选择的个体,以优化可能陷入局部最优的情况,但这限制了搜索过程。因此,本文提出了嵌入均衡池的黏菌算法(Equilibrium slime mould algorithm, ESMA),该算法用平衡池中的位置向量替换
X
→
A
\overrightarrow X_A
XA,该位置向量由4个迄今为止最好的位置向量组成,并考虑它们的平均位置,灵感来自均衡优化器(Equilibrium optimizer, EO)。这种替换使得算法足够有效,可以更好地进行探索,以获得最优解。
均衡池的各个元素定义为:
X
→
e
q
(
1
)
=
X
(
s
o
r
t
I
n
d
e
x
(
1
)
)
X
→
e
q
(
2
)
=
X
(
s
o
r
t
I
n
d
e
x
(
2
)
)
X
→
e
q
(
3
)
=
X
(
s
o
r
t
I
n
d
e
x
(
3
)
)
X
→
e
q
(
4
)
=
X
(
s
o
r
t
I
n
d
e
x
(
4
)
)
X
→
a
v
e
=
X
→
e
q
(
1
)
+
X
→
e
q
(
2
)
+
X
→
e
q
(
3
)
+
X
→
e
q
(
4
)
4
(1)
\begin{array}{l}\overrightarrow X_{eq(1)}=X(sortIndex(1))\\\overrightarrow X_{eq(2)}=X(sortIndex(2))\\\overrightarrow X_{eq(3)}=X(sortIndex(3))\\\overrightarrow X_{eq(4)}=X(sortIndex(4))\\\\\overrightarrow X_{ave}=\frac{\overrightarrow X_{eq(1)}+\overrightarrow X_{eq(2)}+\overrightarrow X_{eq(3)}+\overrightarrow X_{eq(4)}}{4}\end{array}\tag{1}
Xeq(1)=X(sortIndex(1))Xeq(2)=X(sortIndex(2))Xeq(3)=X(sortIndex(3))Xeq(4)=X(sortIndex(4))Xave=4Xeq(1)+Xeq(2)+Xeq(3)+Xeq(4)(1)均衡池
X
→
e
q
,
p
o
o
l
\overrightarrow X_{eq,pool}
Xeq,pool由以下式子中的5个位置向量构成的:
X
→
e
q
,
p
o
o
l
=
{
X
→
e
q
(
1
)
,
X
→
e
q
(
2
)
,
X
→
e
q
(
3
)
,
X
→
e
q
(
4
)
,
X
→
a
v
e
}
(2)
\overrightarrow X_{eq,pool}=\left\{\overrightarrow X_{eq(1)},\overrightarrow X_{eq(2)},\overrightarrow X_{eq(3)},\overrightarrow X_{eq(4)},\overrightarrow X_{ave}\right\}\tag{2}
Xeq,pool={Xeq(1),Xeq(2),Xeq(3),Xeq(4),Xave}(2)第
i
i
i个黏菌
X
i
(
i
=
1
,
2
,
⋯
,
N
)
X_i(i=1,2,\cdots,N)
Xi(i=1,2,⋯,N)在新的迭代
(
t
+
1
)
(t+1)
(t+1)中的位置向量在ESMA中建模为:
X
→
i
(
t
+
1
)
=
r
1
⋅
(
U
B
−
L
B
)
+
L
B
,
when
r
1
<
z
(3a)
\overrightarrow X_i(t+1)=r_1\cdot(UB-LB)+LB,\,\,{\text{when}}\,\, r_1<z\tag{3a}
Xi(t+1)=r1⋅(UB−LB)+LB,whenr1<z(3a)
X
→
i
(
t
+
1
)
=
X
→
G
b
e
s
t
+
s
t
e
p
→
a
⋅
(
W
→
⋅
X
→
e
q
−
X
→
B
)
,
when
r
2
<
p
i
(
t
)
and
r
1
≥
z
(3b)
\overrightarrow X_i(t+1)=\overrightarrow X_{Gbest}+\overrightarrow{step}_a\cdot(\overrightarrow W\cdot\overrightarrow X_{eq}-\overrightarrow X_B),\,\,{\text{when}}\,\, r_2<p_i(t)\,\,\text{and}\,\,r_1\geq z\tag{3b}
Xi(t+1)=XGbest+stepa⋅(W⋅Xeq−XB),whenr2<pi(t)andr1≥z(3b)
X
→
i
(
t
+
1
)
=
s
t
e
p
→
b
⋅
X
→
i
(
t
)
,
when
r
2
≥
p
i
(
t
)
and
r
1
≥
z
(3c)
\overrightarrow X_i(t+1)=\overrightarrow{step}_b\cdot\overrightarrow X_i(t),\,\,{\text{when}}\,\, r_2\geq p_i(t)\,\,\text{and}\,\,r_1\geq z\tag{3c}
Xi(t+1)=stepb⋅Xi(t),whenr2≥pi(t)andr1≥z(3c)其中,
X
→
e
q
\overrightarrow X_{eq}
Xeq是来自均衡池的随机位置向量,它有助于在ESMA的探索/开发行为之间进行更好的权衡,借助权重因子
W
→
\overrightarrow W
W和随机黏菌
X
→
B
\overrightarrow X_B
XB形成搜索空间;
z
z
z有利于探索,以确保ESMA从搜索过程的开始到结束跳出局部极小值,通过实验确定
z
z
z为0.03。
首先,确定问题维数
D
D
D、具有上界
U
B
UB
UB和下界
L
B
LB
LB的搜索空间中的黏菌个体数量
N
N
N 、最大迭代次数
T
T
T、消除和分散的概率
z
z
z;以及适应度函数
f
f
f,用于评估给定问题的适应度值。提出的ESMA的伪代码如下图所示:
二、仿真实验与结果分析
将ESMA与SMA、EO、HHO、GWO和WOA进行对比,实验设置种群规模为30,最大迭代次数为500,每个算法独立运行30次,以文献[1]中F1、F2(30维/单峰函数)、F10、F11(30维/多峰函数)、F20、F23(6维、4维/固定维度多峰函数)为例,结果显示如下:
函数:F1
ESMA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
SMA:最差值: 3.7271e-260, 最优值: 0, 平均值: 1.2424e-261, 标准差: 0, 秩和检验: 0.081523
EO:最差值: 5.136e-40, 最优值: 1.3035e-42, 平均值: 7.1117e-41, 标准差: 1.2074e-40, 秩和检验: 1.2118e-12
HHO:最差值: 4e-96, 最优值: 1.1315e-110, 平均值: 1.8184e-97, 标准差: 7.4532e-97, 秩和检验: 1.2118e-12
GWO:最差值: 1.0833e-26, 最优值: 2.2287e-29, 平均值: 1.9256e-27, 标准差: 2.5399e-27, 秩和检验: 1.2118e-12
WOA:最差值: 3.8878e-72, 最优值: 6.7468e-85, 平均值: 1.3365e-73, 标准差: 7.0923e-73, 秩和检验: 1.2118e-12
函数:F2
ESMA:最差值: 1.0181e-163, 最优值: 0, 平均值: 3.3937e-165, 标准差: 0, 秩和检验: 1
SMA:最差值: 1.7752e-121, 最优值: 1.478e-296, 平均值: 5.9174e-123, 标准差: 3.2411e-122, 秩和检验: 7.0763e-08
EO:最差值: 2.5464e-23, 最优值: 9.8696e-25, 平均值: 5.4613e-24, 标准差: 5.967e-24, 秩和检验: 3.0123e-11
HHO:最差值: 1.7893e-47, 最优值: 2.1478e-58, 平均值: 6.0536e-49, 标准差: 3.2654e-48, 秩和检验: 3.0123e-11
GWO:最差值: 2.8522e-16, 最优值: 1.4279e-17, 平均值: 9.7252e-17, 标准差: 6.6141e-17, 秩和检验: 3.0123e-11
WOA:最差值: 4.6387e-49, 最优值: 7.1971e-59, 平均值: 2.1565e-50, 标准差: 8.8973e-50, 秩和检验: 3.0123e-11
函数:F10
ESMA:最差值: 8.8818e-16, 最优值: 8.8818e-16, 平均值: 8.8818e-16, 标准差: 0, 秩和检验: NaN
SMA:最差值: 8.8818e-16, 最优值: 8.8818e-16, 平均值: 8.8818e-16, 标准差: 0, 秩和检验: NaN
EO:最差值: 1.5099e-14, 最优值: 7.9936e-15, 平均值: 8.5857e-15, 标准差: 1.8853e-15, 秩和检验: 6.1337e-14
HHO:最差值: 8.8818e-16, 最优值: 8.8818e-16, 平均值: 8.8818e-16, 标准差: 0, 秩和检验: NaN
GWO:最差值: 1.2879e-13, 最优值: 7.5495e-14, 平均值: 9.5982e-14, 标准差: 1.4232e-14, 秩和检验: 1.1083e-12
WOA:最差值: 7.9936e-15, 最优值: 8.8818e-16, 平均值: 4.4409e-15, 标准差: 2.4685e-15, 秩和检验: 3.6292e-09
函数:F11
ESMA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
SMA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
EO:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
HHO:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
GWO:最差值: 0.026365, 最优值: 0, 平均值: 0.0024371, 标准差: 0.0061488, 秩和检验: 0.021577
WOA:最差值: 0.10462, 最优值: 0, 平均值: 0.0034872, 标准差: 0.0191, 秩和检验: 0.33371
函数:F20
ESMA:最差值: -3.1991, 最优值: -3.322, 平均值: -3.2701, 标准差: 0.060406, 秩和检验: 1
SMA:最差值: -3.1978, 最优值: -3.322, 平均值: -3.2424, 标准差: 0.057275, 秩和检验: 0.56922
EO:最差值: -3.1376, 最优值: -3.322, 平均值: -3.254, 标准差: 0.066615, 秩和检验: 0.039096
HHO:最差值: -3.1935, 最优值: -3.3219, 平均值: -3.2693, 标准差: 0.06103, 秩和检验: 0.0063772
GWO:最差值: -2.8426, 最优值: -3.322, 平均值: -3.2281, 标准差: 0.11188, 秩和检验: 0.20095
WOA:最差值: -2.4311, 最优值: -3.3216, 平均值: -3.177, 标准差: 0.19098, 秩和检验: 3.3681e-05
函数:F23
ESMA:最差值: -10.5353, 最优值: -10.5363, 平均值: -10.536, 标准差: 0.0002631, 秩和检验: 1
SMA:最差值: -10.5352, 最优值: -10.5364, 平均值: -10.536, 标准差: 0.00028231, 秩和检验: 0.8418
EO:最差值: -2.4217, 最优值: -10.5364, 平均值: -9.6349, 标准差: 2.3911, 秩和检验: 9.4664e-07
HHO:最差值: -2.4215, 最优值: -10.5355, 平均值: -5.3987, 标准差: 1.481, 秩和检验: 3.6897e-11
GWO:最差值: -2.8709, 最优值: -10.536, 平均值: -10.2792, 标准差: 1.3992, 秩和检验: 9.7555e-10
WOA:最差值: -1.6733, 最优值: -10.5322, 平均值: -6.6317, 标准差: 3.6019, 秩和检验: 3.0199e-11
实验结果表明:ESMA在收敛速度、收敛精度、鲁棒性方面均较对比算法有较大提升。
三、参考文献
[1] Manoj Kumar Naik, Rutuparna Panda, Ajith Abraham. An entropy minimization based multilevel colour thresholding technique for analysis of breast thermograms using equilibrium slime mould algorithm[J]. Applied Soft Computing, 2021, 113: 107955.