一、理论基础
1、黏菌算法
请参考这里。
2、自适应反向学习黏菌算法
(1)反向学习
反向学习(Opposition-based learning, OBL)在搜索空间中使用了一个向量
X
o
i
Xo_i
Xoi,该向量与每个粘菌(
i
=
1
,
2
,
⋯
,
n
i=1,2,\cdots,n
i=1,2,⋯,n)的位置
X
n
i
Xn_i
Xni正好相反,并进行比较以更新下一次迭代的位置。这一步可提高避免陷入局部最优的机会,从而提高收敛性。因此,第
i
i
i个黏菌第
j
j
j维的
X
o
i
Xo_i
Xoi为:
X
o
i
j
(
t
)
=
min
(
X
n
i
(
t
)
)
+
max
(
X
n
i
(
t
)
)
−
X
n
i
j
(
t
)
(1)
Xo_i^j(t)=\min(Xn_i(t))+\max(Xn_i(t))-Xn_i^j(t)\tag{1}
Xoij(t)=min(Xni(t))+max(Xni(t))−Xnij(t)(1)其中,
i
=
1
,
2
,
⋯
,
n
i=1,2,\cdots,n
i=1,2,⋯,n,
j
=
1
,
2
,
⋯
,
d
j=1,2,\cdots,d
j=1,2,⋯,d。
将
X
s
i
Xs_i
Xsi表示为第
i
i
i个黏菌位置,该位置用于最小化问题,如下所示:
X
s
i
(
t
)
=
{
X
o
i
(
t
)
if
f
(
X
o
i
(
t
)
)
<
f
(
X
n
i
(
t
)
)
X
n
i
(
t
)
if
f
(
X
o
i
(
t
)
)
≥
f
(
X
n
i
(
t
)
)
(2)
Xs_i(t)=\begin{dcases}Xo_i(t)\quad\text{if}\,\,f(Xo_i(t))<f(Xn_i(t))\\Xn_i(t)\quad\text{if}\,\,f(Xo_i(t))\geq f(Xn_i(t))\end{dcases}\tag{2}
Xsi(t)={Xoi(t)iff(Xoi(t))<f(Xni(t))Xni(t)iff(Xoi(t))≥f(Xni(t))(2)
(2)自适应决策策略
当黏菌沿着死亡的营养路径前进时,将根据当前适应值 f ( X n i ( t ) ) f(Xn_i(t)) f(Xni(t))和旧适应值 f ( X i ( t ) ) f(X_i(t)) f(Xi(t))做出自适应决策。自适应决策有助于在需要时通过OBL补充额外的探索。最后,使用AOSMA的自适应决策策略更新下一次迭代的位置,其数学模型如下: X i ( t + 1 ) = { X n i ( t ) if f ( X n i ( t ) ) ≤ f ( X i ( t ) ) X s i ( t ) if f ( X n i ( t ) ) > f ( X i ( t ) ) (3) X_i(t+1)=\begin{dcases}Xn_i(t)\quad\text{if}\,\,f(Xn_i(t))\leq f(X_i(t))\\Xs_i(t)\quad\,\text{if}\,\,f(Xn_i(t))>f(X_i(t))\end{dcases}\tag{3} Xi(t+1)={Xni(t)iff(Xni(t))≤f(Xi(t))Xsi(t)iff(Xni(t))>f(Xi(t))(3)
(3)AOSMA算法伪代码
AOSMA算法伪代码如图1所示。
二、仿真实验与结果分析
将AOSMA与SMA、EO、HHO、SSA和WOA进行对比,实验设置种群规模为30,最大迭代次数为500,函数维度为30,每个算法独立运行30次,以文献[1]中F1、F10、F11、F15、CEC14-F24、CEC14-F27为例,结果显示如下:
函数:F1
AOSMA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
SMA:最差值: 2.5777e-259, 最优值: 0, 平均值: 8.5923e-261, 标准差: 0, 秩和检验: 0.1608
EO:最差值: 1.9826e-39, 最优值: 1.78e-44, 平均值: 9.4141e-41, 标准差: 3.6115e-40, 秩和检验: 1.2118e-12
HHO:最差值: 6.6372e-96, 最优值: 6.6047e-111, 平均值: 4.0498e-97, 标准差: 1.3836e-96, 秩和检验: 1.2118e-12
SSA:最差值: 2.9221e-06, 最优值: 2.5514e-08, 平均值: 2.9016e-07, 标准差: 6.8012e-07, 秩和检验: 1.2118e-12
WOA:最差值: 7.1835e-72, 最优值: 2.1365e-87, 平均值: 2.5491e-73, 标准差: 1.3108e-72, 秩和检验: 1.2118e-12
函数:F10
AOSMA:最差值: 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.4673e-15, 标准差: 1.5425e-15, 秩和检验: 6.1337e-14
HHO:最差值: 8.8818e-16, 最优值: 8.8818e-16, 平均值: 8.8818e-16, 标准差: 0, 秩和检验: NaN
SSA:最差值: 4.2979, 最优值: 0.10076, 平均值: 2.5012, 标准差: 0.88972, 秩和检验: 1.2118e-12
WOA:最差值: 7.9936e-15, 最优值: 8.8818e-16, 平均值: 4.9146e-15, 标准差: 2.234e-15, 秩和检验: 8.966e-11
函数:F11
AOSMA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
SMA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
EO:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
HHO:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
SSA:最差值: 0.035528, 最优值: 0.00015927, 平均值: 0.011885, 标准差: 0.0102, 秩和检验: 1.2118e-12
WOA:最差值: 0.22726, 最优值: 0, 平均值: 0.01542, 标准差: 0.054324, 秩和检验: 0.081523
函数:F15
AOSMA:最差值: 0.0005019, 最优值: 0.00030807, 平均值: 0.00039631, 标准差: 6.4434e-05, 秩和检验: 1
SMA:最差值: 0.0012233, 最优值: 0.00031025, 平均值: 0.00050936, 标准差: 0.00020961, 秩和检验: 0.074827
EO:最差值: 0.020363, 最优值: 0.00030749, 平均值: 0.0017329, 标准差: 0.0050721, 秩和检验: 0.0015966
HHO:最差值: 0.00032371, 最优值: 0.00030752, 平均值: 0.00031077, 标准差: 4.3397e-06, 秩和检验: 7.1186e-09
SSA:最差值: 0.0015181, 最优值: 0.00049345, 平均值: 0.00092156, 标准差: 0.00026949, 秩和检验: 3.3384e-11
WOA:最差值: 0.0020576, 最优值: 0.0003081, 平均值: 0.00065769, 标准差: 0.00039688, 秩和检验: 0.0010035
函数:CEC14-F24
AOSMA:最差值: 2600, 最优值: 2600, 平均值: 2600, 标准差: 0, 秩和检验: NaN
SMA:最差值: 2600, 最优值: 2600, 平均值: 2600, 标准差: 0, 秩和检验: NaN
EO:最差值: 2600.0644, 最优值: 2600.0067, 平均值: 2600.0218, 标准差: 0.012102, 秩和检验: 1.2118e-12
HHO:最差值: 2600.004, 最优值: 2600, 平均值: 2600.0003, 标准差: 0.00089869, 秩和检验: 3.4526e-07
SSA:最差值: 2665.3212, 最优值: 2630.832, 平均值: 2645.1486, 标准差: 8.0232, 秩和检验: 1.2118e-12
WOA:最差值: 2630.6305, 最优值: 2602.4225, 平均值: 2609.6181, 标准差: 7.1977, 秩和检验: 1.2118e-12
函数:CEC14-F27
AOSMA:最差值: 2900, 最优值: 2900, 平均值: 2900, 标准差: 0, 秩和检验: NaN
SMA:最差值: 2900, 最优值: 2900, 平均值: 2900, 标准差: 0, 秩和检验: NaN
EO:最差值: 3479.0808, 最优值: 3121.2413, 平均值: 3296.8543, 标准差: 77.2282, 秩和检验: 1.2118e-12
HHO:最差值: 2900, 最优值: 2900, 平均值: 2900, 标准差: 0, 秩和检验: NaN
SSA:最差值: 3969.2372, 最优值: 3112.0542, 平均值: 3617.3727, 标准差: 220.4189, 秩和检验: 1.2118e-12
WOA:最差值: 4283.9885, 最优值: 3256.6892, 平均值: 3993.8558, 标准差: 248.1743, 秩和检验: 1.2118e-12
实验结果表明:AOSMA的性能优于其他优化算法。
三、参考文献
[1] Naik, M.K., Panda, R., Abraham, A. Adaptive opposition slime mould algorithm[J]. Soft Computing, 2021, 25: 14297-14313.