一、理论基础
1、樽海鞘群算法
请参考这里。
2、樽海鞘群算法的改进
(1)精英个体引导和自适应权重
本文提出了一种结合精英个体引导和自适应权重的改进策略,该方法中,追随者的更新由式(1)、(2)完成。
x
j
i
=
{
1
2
(
w
(
t
)
×
x
j
i
+
(
1
−
w
(
t
)
)
×
x
j
i
−
1
)
,
f
(
x
j
i
−
1
)
<
f
(
x
j
i
)
1
2
(
x
j
i
+
x
j
i
−
1
)
,
f
(
x
j
i
−
1
)
=
f
(
x
j
i
)
1
2
(
(
1
−
w
(
t
)
)
×
x
j
i
+
w
(
t
)
×
x
j
i
−
1
)
,
f
(
x
j
i
−
1
)
>
f
(
x
j
i
)
(1)
x_j^i=\begin{dcases}\frac12\left(w(t)×x_j^i+(1-w(t))×x_j^{i-1}\right),\quad f(x_j^{i-1})<f(x_j^{i})\\\frac12\left(x_j^i+x_j^{i-1}\right),\quad\quad\quad\quad\quad\quad\quad\quad\quad\,\,\,\, f(x_j^{i-1})=f(x_j^{i})\\\frac12\left((1-w(t))×x_j^i+w(t)×x_j^{i-1}\right),\quad f(x_j^{i-1})>f(x_j^{i})\end{dcases}\tag{1}
xji=⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧21(w(t)×xji+(1−w(t))×xji−1),f(xji−1)<f(xji)21(xji+xji−1),f(xji−1)=f(xji)21((1−w(t))×xji+w(t)×xji−1),f(xji−1)>f(xji)(1)
w
(
t
)
=
w
s
−
(
w
s
−
w
f
)
×
2
π
arcsin
t
T
max
(2)
w(t)=w_s-(w_s-w_f)×\frac2\pi\arcsin\frac{t}{T_{\max}}\tag{2}
w(t)=ws−(ws−wf)×π2arcsinTmaxt(2)其中,
w
(
t
)
w(t)
w(t)为自适应递减的权重因子,
f
(
∗
)
f(*)
f(∗)为个体的适应度值,
w
s
w_s
ws和
w
f
w_f
wf分别为权重因子的初始值和最终值,经过多次实验发现,当
w
s
w_s
ws取0.5,
w
f
w_f
wf取0.1时,算法的寻优结果最好。为了更直观地看出权重因子的变化过程,图1给出了
w
w
w随迭代过程的变化曲线图。
由式(1)、(2)和图1可知,随着迭代过程的进行, w w w将从 w s w_s ws逐渐减小到 w f w_f wf,非精英个体所占的权重将随之逐渐减小,而精英个体所占的权重将逐渐增大,追随者将始终以精英个体为导向进行移动,从而降低其因盲目跟随前一个个体而错过较优位置的几率,提升算法的收敛速度与精度。
(2)黄金正弦领导策略
本文将黄金正弦算法作为一种优化算子引入到SSA算法中以改变领导者移动方式,在AGHSSA中,领导者的位置更新由下式完成:
x
j
i
=
x
j
i
×
∣
sin
R
1
∣
−
R
2
×
sin
R
1
×
∣
x
1
×
F
j
−
x
2
×
x
j
i
∣
(3)
x_j^i=x_j^i×|\sin R_1|-R_2×\sin R_1×|x_1×F_j-x_2×x_j^i|\tag{3}
xji=xji×∣sinR1∣−R2×sinR1×∣x1×Fj−x2×xji∣(3)其中,
R
1
R_1
R1和
R
2
R_2
R2为随机数,
R
1
R_1
R1决定下一次迭代中个体的移动距离,
R
1
∈
[
0
,
2
π
]
R_1\in[0,2\pi]
R1∈[0,2π],
R
2
R_2
R2决定下一次迭代第
i
i
i个个体的位置更新方向,
R
2
∈
[
0
,
π
]
R_2\in[0,\pi]
R2∈[0,π];
x
1
x_1
x1和
x
2
x_2
x2是通过引入黄金分割数得到的系数,这些系数缩小了搜索空间引领个体逐步趋近最优值,保证了算法的收敛性,黄金分割数是一个定义为
5
−
1
2
\frac{\sqrt5-1}{2}
25−1的无理数,记为
τ
\tau
τ,
x
1
=
−
π
+
(
1
−
τ
)
×
2
π
x_1=-\pi+(1-\tau)×2\pi
x1=−π+(1−τ)×2π,
x
2
=
−
π
+
τ
×
2
π
x_2=-\pi+\tau×2\pi
x2=−π+τ×2π。
黄金正弦领导策略能够有效改善基本SSA算法中存在的不足,并且具备被移植到基本SSA算法中的条件,由此可以得出结论,黄金正弦领导策略适用于樽海鞘群算法。
(3)邻域重心反向学习与柯西变异
(1)邻域重心反向学习
为了更好地引导个体寻优,本文将邻域重心反向学习融入到基本SSA中。
设当前迭代的最优解(食物源)位置为
F
(
F
=
(
F
1
,
F
2
,
⋯
,
F
D
)
)
F(F=(F_1,F_2,\cdots,F_D))
F(F=(F1,F2,⋯,FD)),邻域重心
M
M
M为整个樽海鞘种群的重心,则其经邻域重心反向学习后的解
F
˘
(
F
˘
=
(
F
˘
1
,
F
˘
2
,
⋯
,
F
˘
D
)
)
\breve F(\breve F=(\breve F_1,\breve F_2,\cdots,\breve F_D))
F˘(F˘=(F˘1,F˘2,⋯,F˘D))的计算方式如下:
F
˘
=
2
×
k
×
M
−
F
(4)
\breve F=2×k×M-F\tag{4}
F˘=2×k×M−F(4)
M
=
x
1
+
x
2
+
⋯
+
x
n
n
(5)
M=\frac{x_1+x_2+\cdots+x_n}{n}\tag{5}
M=nx1+x2+⋯+xn(5)其中,
k
k
k为
[
0
,
1
]
[0,1]
[0,1]区间内均匀分布的随机数。
(2)柯西变异
本文将柯西变异算子引入到SSA中对食物源位置进行扰动,计算方式如下:
F
′
=
F
+
F
×
C
a
u
c
h
y
(
0
,
1
)
(6)
F'=F+F×Cauchy(0,1)\tag{6}
F′=F+F×Cauchy(0,1)(6)其中,
F
′
F'
F′为食物源经柯西变异后产生的新位置。
(3)混合变异
为提升算法寻优能力,AGHSSA将等概率的交替执行邻域重心反向学习策略和柯西扰动策略,动态地更新食物源位置,混合变异计算方式如下:
F
n
e
w
=
{
2
×
k
×
M
−
F
,
R
3
<
0.5
F
+
F
×
C
a
u
c
h
y
(
0
,
1
)
,
R
3
≥
0.5
(7)
F_{new}=\begin{dcases}2×k×M-F,\quad\quad\quad\quad R_3<0.5\\F+F×Cauchy(0,1),\quad R_3≥0.5\end{dcases}\tag{7}
Fnew={2×k×M−F,R3<0.5F+F×Cauchy(0,1),R3≥0.5(7)其中,
R
3
R_3
R3为
[
0
,
1
]
[0,1]
[0,1]区间内均匀分布的随机数,
F
n
e
w
F_{new}
Fnew为食物源经混合变异后产生的新位置。
为了进一步提升算法收敛精度,AGHSSA在混合变异完成后将依据贪婪原则决定是否更新食物源位置,即当变异后个体的适应度优于原个体时,才对食物源进行位置更新,否则保留原食物源位置信息。
(4)算法描述
AGHSSA算法的具体执行步骤如下:
步骤1 设置种群规模
N
N
N,最大迭代次数
T
max
T_{\max}
Tmax,问题维数
D
D
D,权重因子初始值
w
s
w_s
ws和最终值
w
f
w_f
wf。
步骤2 初始化樽海鞘群,计算种群内每个个体的适应度值并排序,记录当前最优个体的位置及其适应度值,将其作为食物源。
步骤3 更新领导者和追随者位置。生成随机数
R
1
R_1
R1、
R
2
R_2
R2,根据式(2)更新权重因子
w
w
w,选取种群中前一半樽海鞘个体按式(3)更新领导者位置,另一半个体按式(1)更新追随者位置。
步骤4 计算更新后种群的适应度值,并更新食物源位置。
步骤5 混合变异。生成随机数
k
k
k、
R
3
R_3
R3,按式(5)计算种群重心
M
M
M,通过式(7)对步骤4得到的解(食物源)进行变异产生一个新解,并用目标函数对得到的新解进行评估,如果新解的适应度值比原解更好,则用新解代替原来的解,否则保留原解。
步骤6 重复步骤3~5,如果达到最大迭代次数,则终止算法,输出全局最优解。
二、仿真实验结果与分析
本文选取了基本樽海鞘群算法(SSA)、基本鲸鱼算法(WOA)、基本蝴蝶优化算法(BOA)与本文算法AGHSSA进行对比,为体现实验的公平性,将所有算法的种群规模设置为40,最大迭代次数为1000,每个算法独立运行30次,其余各算法的具体参数设置与相应的文献一致。以文献[1]中30维(F5为2维)的F1、F2、F3、F5、F8、F9、F10、F11为例。
结果显示如下:
函数:F1
SSA:最差值: 1.4875e-08,最优值:7.5145e-09,平均值:1.0231e-08,标准差:2.1408e-09
WOA:最差值: 1.5352e-164,最优值:7.506e-185,平均值:9.7909e-166,标准差:0
BOA:最差值: 1.9301e-14,最优值:1.5159e-14,平均值:1.7465e-14,标准差:1.0089e-15
AGHSSA:最差值: 0,最优值:0,平均值:0,标准差:0
函数:F2
SSA:最差值: 3.9261,最优值:0.003065,平均值:0.67195,标准差:0.87849
WOA:最差值: 9.8563e-107,最优值:8.1914e-118,平均值:7.3371e-108,标准差:2.3892e-107
BOA:最差值: 1.148e-11,最优值:2.6339e-12,平均值:9.8722e-12,标准差:2.4076e-12
AGHSSA:最差值: 0,最优值:0,平均值:0,标准差:0
函数:F3
SSA:最差值: 619.3934,最优值:29.9383,平均值:139.1345,标准差:117.5736
WOA:最差值: 29363.9582,最优值:2150.6508,平均值:14099.8192,标准差:7908.9541
BOA:最差值: 1.9464e-14,最优值:1.5512e-14,平均值:1.7468e-14,标准差:9.1192e-16
AGHSSA:最差值: 0,最优值:0,平均值:0,标准差:0
函数:F5
SSA:最差值: 1.6166e-15,最优值:7.9188e-18,平均值:3.1331e-16,标准差:3.7451e-16
WOA:最差值: 0,最优值:0,平均值:0,标准差:0
BOA:最差值: 2.4613e-15,最优值:4.5192e-21,平均值:1.4005e-15,标准差:5.5476e-16
AGHSSA:最差值: 0,最优值:0,平均值:0,标准差:0
函数:F8
SSA:最差值: 1.6858,最优值:0.00030079,平均值:0.17157,标准差:0.35396
WOA:最差值: 612.6238,最优值:313.7488,平均值:458.6354,标准差:82.7523
BOA:最差值: 1.8773e-14,最优值:1.4528e-14,平均值:1.6939e-14,标准差:1.0995e-15
AGHSSA:最差值: 0,最优值:0,平均值:0,标准差:0
函数:F9
SSA:最差值: 107.4553,最优值:23.879,平均值:53.9267,标准差:18.109
WOA:最差值: 5.6843e-14,最优值:0,平均值:1.8948e-15,标准差:1.0378e-14
BOA:最差值: 179.5808,最优值:0,平均值:5.986,标准差:32.7868
AGHSSA:最差值: 0,最优值:0,平均值:0,标准差:0
函数:F10
SSA:最差值: 3.7857,最优值:2.2838e-05,平均值:1.9184,标准差:0.86873
WOA:最差值: 7.9936e-15,最优值:8.8818e-16,平均值:4.6777e-15,标准差:2.6279e-15
BOA:最差值: 1.354e-11,最优值:2.6157e-12,平均值:1.1113e-11,标准差:2.044e-12
AGHSSA:最差值: 8.8818e-16,最优值:8.8818e-16,平均值:8.8818e-16,标准差:0
函数:F11
SSA:最差值: 0.02461,最优值:2.0881e-08,平均值:0.006977,标准差:0.0085766
WOA:最差值: 0.05678,最优值:0,平均值:0.0043751,标准差:0.013689
BOA:最差值: 5.107e-15,最优值:0,平均值:1.0917e-15,标准差:1.3952e-15
AGHSSA:最差值: 0,最优值:0,平均值:0,标准差:0
结果表明,本文所提出的改进策略可以显著提升SSA算法的寻优能力,相比于其他较新的群智能优化算法仍然具有较强的竞争力。
三、参考文献
[1] 周新, 邹海. 融合黄金正弦混合变异的自适应樽海鞘群算法[J]. 计算机工程与应用, 2021, 57(12): 75-85.