文章目录
一、理论基础
1、黑猩猩优化算法
请参考这里。
2、改进的黑猩猩优化算法
(1)Sobol序列初始化种群
初始解在解空间的分布情况很大程度上影响元启发式算法的收敛速度和寻优精度。均匀分布的种群初始解可以有效提高算法的搜索效率。标准ChOA采用随机方式初始化种群,这种方法遍历性低且种群分布不均匀。本文采用Sobol序列初始化种群,Sobol序列是一种低差异序列,使用确定性拟随机数序列代替伪随机数序列的方法,将尽可能均匀的点填充至多维超立方体。因此,Sobol序列在解决概率问题时,计算效率更高,采样点覆盖率更广。
设全局解的取值范围为
[
l
b
,
u
b
]
[lb,ub]
[lb,ub],有Sobol序列产生的第
i
i
i个随机数为
S
i
∈
[
0
,
1
]
S_i\in[0,1]
Si∈[0,1],则种群初始位置表示如式(1)所示:
X
n
=
l
b
+
S
i
⋅
(
u
b
−
l
b
)
(1)
X_n=lb+S_i\cdot(ub-lb)\tag{1}
Xn=lb+Si⋅(ub−lb)(1)假设搜索空间为二维,上下界分别为0和1,种群规模为100,对比随机初始化种群空间分布和Sobol序列初始化种群空间分布如图1所示。

(2)基于凸透镜成像的反向学习策略
凸透镜成像的反向学习的数学模型请参考这里。本文在此基础上提出一种基于非线性动态递减的伸缩因子策略,在算法迭代前期可以获得较大值,使算法可以在不同维度区域进行更大范围的搜索,提高群体的多样性;在算法迭代后期获得较小值,在最优个体附近进行精细搜索,提高局部寻优能力。非线性动态伸缩因子计算公式如式(2)所示:
η
=
η
max
−
(
η
max
−
η
min
)
⋅
(
t
/
t
max
)
2
(2)
\eta=\eta_{\max}-(\eta_{\max}-\eta_{\min})\cdot(t/t_{\max})^2\tag{2}
η=ηmax−(ηmax−ηmin)⋅(t/tmax)2(2)其中,
η
max
\eta_{\max}
ηmax和
η
min
\eta_{\min}
ηmin分别为最大伸缩因子和最小伸缩因子;
t
max
t_{\max}
tmax为最大迭代次数。
将凸透镜成像的反向学习的数学公式推广至
D
D
D维搜索空间可得:
X
j
∗
=
u
b
j
+
l
b
j
2
+
u
b
j
+
l
b
j
2
⋅
η
−
X
j
η
(3)
X_j^*=\frac{ub_j+lb_j}{2}+\frac{ub_j+lb_j}{2\cdot\eta}-\frac{X_j}{\eta}\tag{3}
Xj∗=2ubj+lbj+2⋅ηubj+lbj−ηXj(3)其中,
X
j
X_j
Xj和
X
j
∗
X_j^*
Xj∗分别为
X
X
X和
X
∗
X^*
X∗的第
j
j
j维向量,
u
b
j
ub_j
ubj和
l
b
j
lb_j
lbj分别为决策变量的第
j
j
j维向量的上下界。通过对算法中全局最优个体进行凸透镜成像反向学习,将各维度的值映射到空间中得到反向解,不仅避免各维度之间的干扰,而且扩大算法的搜索范围。虽然凸透镜的反向学习策略极大程度地提高算法的求解精度,在一定程度上帮助种群跳出局部最优,但是无法直接判断产生新的反向个体是否优于原始个体。因此,采用贪婪机制比较新旧个体适应度值,进而筛选出最优个体,通过这种方式不断获得更优解,提高算法的寻优能力。其中贪婪机制的数学模型描述如式(4)所示:
X
new
(
t
)
=
{
X
∗
f
(
X
)
≥
f
(
X
∗
)
X
f
(
X
)
<
f
(
X
∗
)
(4)
X_{\text{new}}(t)=\begin{dcases}X^*\quad f(X)≥f(X^*)\\X\quad\,\, f(X)<f(X^*)\end{dcases}\tag{4}
Xnew(t)={X∗f(X)≥f(X∗)Xf(X)<f(X∗)(4)
(3)水波动态自适应因子
本文在攻击者位置更新公式中加入水波动态自适应因子,利用水波的动态变化的不确定性使得攻击者能在更广泛的区域搜索,降低其他个体跟随的盲目性,增强群体间的信息交流和学习,保持种群多样性,有效避免了趋同性,进而提高算法跳出局部最优的能力。
水波动态自适应因子的数学模型如式(5)所示:
λ
=
1
−
sin
(
π
⋅
t
2
⋅
t
max
+
2
⋅
π
)
(5)
\lambda=1-\sin\left(\frac{\pi\cdot t}{2\cdot t_{\max}}+2\cdot\pi\right)\tag{5}
λ=1−sin(2⋅tmaxπ⋅t+2⋅π)(5)ChOA引入水波动态自适应因子后攻击者位置更新公式为:
X
1
=
λ
⋅
X
a
t
t
a
c
k
e
r
−
a
1
⋅
∣
C
1
⋅
X
a
t
t
a
c
k
e
r
−
m
1
⋅
X
∣
(6)
X_1=\lambda\cdot X_{attacker}-a_1\cdot|C_1\cdot X_{attacker}-m_1\cdot X|\tag{6}
X1=λ⋅Xattacker−a1⋅∣C1⋅Xattacker−m1⋅X∣(6)
(4)SLWChOA实现步骤
综合上述改进方法,本文所提SLWChOA实现步骤如下所示:
step 1:初始化算法相关参数:种群规模
N
N
N、空间维度
d
i
m
dim
dim、搜索空间
[
u
b
,
l
b
]
[ub, lb]
[ub,lb]、最大迭代次数
t
max
t_{\max}
tmax;
step 2:按照式(1)利用Sobol序列初始化种群;
step 3:计算每个黑猩猩个体的适应度值,并选择适应度最小的前四个个体位置,分别记录为
X
a
t
t
a
c
k
e
r
X_{attacker}
Xattacker、
X
b
a
r
r
i
e
r
X_{barrier}
Xbarrier、
X
c
h
a
s
e
r
X_{chaser}
Xchaser和
X
d
r
i
v
e
r
X_{driver}
Xdriver;
step 4:按照ChOA的相应公式计算参数
a
,
m
,
C
a, m, C
a,m,C的值;
step 5:按照式(3)对
X
a
t
t
a
c
k
e
r
X_{attacker}
Xattacker进行凸透镜成像反向学习,产生反向解
X
a
t
t
a
c
k
e
r
∗
X_{attacker}^*
Xattacker∗,根据式(4)的贪婪机制选择适应度值低的解;
step 6:按照ChOA的相应公式更新
X
b
a
r
r
i
e
r
X_{barrier}
Xbarrier、
X
c
h
a
s
e
r
X_{chaser}
Xchaser、
X
d
r
i
v
e
r
X_{driver}
Xdriver,按照式(6)更新
X
a
t
t
a
c
k
e
r
X_{attacker}
Xattacker,并进一步更新黑猩猩种群位置;
step 7:判断是否满足迭代终止条件,满足则输出全局最优黑猩猩位置
X
a
t
t
a
c
k
e
r
X_{attacker}
Xattacker,否则进入step 3继续执行。
二、仿真实验与结果分析
为充分验证SLWChOA的有效性和优越性,将基本ChOA与本文加入Sobol序列初始化的黑猩猩算法(SChOA)、加入凸透镜成像反向学习策略的黑猩猩算法(LChOA)、加入水波动态自适应因子的黑猩猩算法(WChOA)在文献[1]中表1的函数F1、F2、F6、F7、F9、F10进行仿真实验对比。算法通用条件设置为相同,种群大小
N
=
30
N=30
N=30,空间维度
d
i
m
=
30
dim=30
dim=30,最大迭代次数
t
max
=
1000
t_{\max}=1000
tmax=1000。每个算法运行20次,结果显示如下:
函数:F1
ChOA:最差值: 1.0946e-13,最优值: 2.5017e-20,平均值: 1.1923e-14,标准差: 2.6573e-14,秩和检验: 8.0065e-09
SChOA:最差值: 2.1979e-14,最优值: 1.2159e-21,平均值: 2.0484e-15,标准差: 4.9721e-15,秩和检验: 8.0065e-09
LChOA:最差值: 0,最优值: 0,平均值: 0,标准差: 0,秩和检验: NaN
WChOA:最差值: 5.1672e-91,最优值: 1.3799e-96,平均值: 3.1947e-92,标准差: 1.1512e-91,秩和检验: 8.0065e-09
SLWChOA:最差值: 0,最优值: 0,平均值:0,标准差: 0,秩和检验: NaN
函数:F2
ChOA:最差值: 4.7998e-10,最优值: 1.5913e-14,平均值: 8.8262e-11,标准差: 1.4059e-10,秩和检验: 8.0065e-09
SChOA:最差值: 1.1273e-09,最优值: 6.6346e-15,平均值: 9.1823e-11,标准差: 2.5123e-10,秩和检验: 8.0065e-09
LChOA:最差值: 0,最优值: 0,平均值: 0,标准差: 0,秩和检验: NaN
WChOA:最差值: 2.4489e-50,最优值: 8.0319e-54,平均值: 2.0413e-51,标准差: 5.3544e-51,秩和检验: 8.0065e-09
SLWChOA:最差值: 0,最优值: 0,平均值:0,标准差: 0,秩和检验: NaN
函数:F6
ChOA:最差值: 49.1311,最优值: 8.5151e-11,平均值: 9.2217,标准差: 11.897,秩和检验: 8.0065e-09
SChOA:最差值: 11.1021,最优值: 1.1369e-13,平均值: 3.0746,标准差: 3.4226,秩和检验: 8.0065e-09
LChOA:最差值: 0,最优值: 0,平均值: 0,标准差: 0,秩和检验: NaN
WChOA:最差值: 0,最优值: 0,平均值: 0,标准差: 0,秩和检验: NaN
SLWChOA:最差值: 0,最优值: 0,平均值:0,标准差: 0,秩和检验: NaN
函数:F7
ChOA:最差值: 19.9641,最优值: 19.9579,平均值: 19.9618,标准差: 0.0015098,秩和检验: 8.0065e-09
SChOA:最差值: 1.7015e-07,最优值: 1.7737e-12,平均值: 1.7522e-08,标准差: 3.8807e-08,秩和检验: 8.0065e-09
LChOA:最差值: 8.8818e-16,最优值: 8.8818e-16,平均值: 8.8818e-16,标准差: 0,秩和检验: NaN
WChOA:最差值: 19.9642,最优值: 19.9594,平均值: 19.9622,标准差: 0.001347,秩和检验: 8.0065e-09
SLWChOA:最差值: 8.8818e-16,最优值: 8.8818e-16,平均值:8.8818e-16,标准差: 0,秩和检验: NaN
函数:F9
ChOA:最差值: 0.99846,最优值: 0.998,平均值: 0.99804,标准差: 0.00010239,秩和检验: 0.056517
SChOA:最差值: 0.99825,最优值: 0.998,平均值: 0.99802,标准差: 5.9278e-05,秩和检验: 0.0019533
LChOA:最差值: 0.99812,最优值: 0.998,平均值: 0.99802,标准差: 3.0614e-05,秩和检验: 0.027483
WChOA:最差值: 0.99901,最优值: 0.998,平均值: 0.99816,标准差: 0.00027276,秩和检验: 0.59786
SLWChOA:最差值: 0.99883,最优值: 0.998,平均值:0.99814,标准差: 0.00022294,秩和检验: 1
函数:F10
ChOA:最差值: 3.0003,最优值: 3,平均值: 3,标准差: 6.5821e-05,秩和检验: 0.04388
SChOA:最差值: 3.0001,最优值: 3,平均值: 3,标准差: 3.0048e-05,秩和检验: 0.0051153
LChOA:最差值: 3.0002,最优值: 3,平均值: 3.0001,标准差: 6.2804e-05,秩和检验: 0.10173
WChOA:最差值: 3.0001,最优值: 3,平均值: 3,标准差: 3.4633e-05,秩和检验: 0.013321
SLWChOA:最差值: 3.0003,最优值: 3,平均值:3.0001,标准差: 9.2831e-05,秩和检验: 1
实验结果表明,所提算法在寻优精度、收敛速度和鲁棒性上均较对比算法有较大提升。
三、参考文献
[1] 何庆, 罗仕杭. 混合改进策略的黑猩猩优化算法及其机械应用[J/OL]. 控制与决策: 1-11 [2021-12-04].