白鲸优化算法(Beluga whale optimization,BWO)
一、算法灵感
白鲸优化算法(Beluga whale optimization, BWO)是2022年提出的一种元启发式优化算法,其灵感来源于白鲸的生活行为。白鲸以成年鲸的纯白色而闻名,是高度群居的动物,它们可以成群聚集,有2到25个成员,平均有10个成员。与其他元启发式方法类似,BWO包含探索阶段和开发阶段,此外该算法还模拟了生物界中存在的鲸落现象。
二、算法介绍
2.1 初始化
探索阶段通过随机选择白鲸,保证了设计空间中的全局搜索能力,开发阶段控制着设计空间中的局部搜索。为了模拟行为,白鲸被视为搜索代理,通过改变位置向量在搜索空间中移动。此外,在BWO中考虑了鲸鱼坠落的概率,它改变了白鲸的位置。
由于BWO基于种群的机制,白鲸被视为搜索代理,而每条白鲸都是一个候选解决方案,并在优化过程中进行更新。矩阵到搜索代理位置的矩阵被建模为:
X
=
[
x
1
,
1
x
1
,
2
.
.
.
x
1
,
d
x
2
,
1
x
2
,
2
.
.
.
x
2
,
d
⋮
⋮
⋮
⋮
x
n
,
1
x
n
,
2
.
.
.
x
n
,
d
]
(1)
X{\rm{ = }}\left[ \begin{aligned} {{x_{1,1}}} & {{x_{1,2}}} & {...} & {{x_{1,d}}} \cr {{x_{2,1}}} & {{x_{2,2}}} & {...} & {{x_{2,d}}} \cr \vdots & \vdots & \vdots & \vdots \cr {{x_{n,1}}} & {{x_{n,2}}} & {...} & {{x_{n,d}}} \cr \end{aligned} \right]\tag{1}
X=
x1,1x2,1⋮xn,1x1,2x2,2⋮xn,2......⋮...x1,dx2,d⋮xn,d
(1)其中,
n
n
n 为白鲸的种群大小,
d
d
d 为设计变量的维数。对于所有的白鲸,相应的适应度值存储如下:
F
X
=
[
f
(
x
1
,
1
,
x
1
,
2
,
.
.
.
,
x
1
,
d
)
f
(
x
2
,
1
,
x
2
,
2
,
.
.
.
,
x
2
,
d
)
⋮
f
(
x
n
,
1
,
x
n
,
2
,
.
.
.
,
x
n
,
d
)
]
(2)
{F_X} = \left[ \begin{aligned} {f({x_{1,1}},{x_{1,2}},...,{x_{1,d}})} \cr {f({x_{2,1}},{x_{2,2}},...,{x_{2,d}})} \cr \vdots \cr {f({x_{n,1}},{x_{n,2}},...,{x_{n,d}})} \cr \end{aligned} \right]\tag{2}
FX=
f(x1,1,x1,2,...,x1,d)f(x2,1,x2,2,...,x2,d)⋮f(xn,1,xn,2,...,xn,d)
(2) BWO算法可以从探索转向开发,这取决于平衡因子
B
f
B_f
Bf ,其数学模型为:
B
f
=
B
0
(
1
−
t
2
T
)
(3)
{B_f} = {B_0}(1 - {t \over {2T}})\tag{3}
Bf=B0(1−2Tt)(3)其中,
t
t
t 为当前迭代,
T
T
T 为最大迭代数,
B
0
B_0
B0 在每次迭代时在
(
0
,
1
)
(0,1)
(0,1) 之间随机变化。勘探阶段发生在平衡因子
B
f
>
0.5
B_f>0.5
Bf>0.5 ,而开发阶段发生在
B
f
B_f
Bf ≤0.5。随着迭代
T
T
T 的增加,
B
f
B_f
Bf 的波动范围从
(
0
,
1
)
(0,1)
(0,1) 减小到
(
0
,
0.5
)
(0,0.5)
(0,0.5),说明开发和勘探阶段的概率发生了显著变化,而开发阶段的概率随着迭代
T
T
T 的不断增加而增加。
2.2 探索阶段
BWO的探索阶段是通过考虑白鲸的游泳行为来建立的。白鲸可以在不同的姿势下进行社会性行为,如两对白鲸以同步或镜像的方式紧密地游泳。因此,搜索代理的位置由一对白鲸的游泳决定,白鲸的位置更新如下:
{
X
i
,
j
t
+
1
=
X
i
,
p
j
t
+
(
X
r
,
p
1
t
−
X
i
,
p
j
t
)
(
1
+
r
1
)
s
i
n
(
2
π
r
2
)
,
j
=
e
v
e
n
X
i
,
j
t
+
1
=
X
i
,
p
j
t
+
(
X
r
,
p
1
t
−
X
i
,
p
j
t
)
(
1
+
r
1
)
cos
(
2
π
r
2
)
,
j
=
o
d
d
(4)
\left\{ \begin{aligned} &X_{i,j}^{t + 1} = X_{i,{p_j}}^t + (X_{r,{p_1}}^t - X_{i,{p_j}}^t)(1 + {r_1})sin(2\pi {r_2})&&,j=even \cr &X_{i,j}^{t + 1} = X_{i,{p_j}}^t + (X_{r,{p_1}}^t - X_{i,{p_j}}^t)(1 + {r_1})\cos (2\pi {r_2})&&,j= odd \cr \end{aligned} \right.\tag{4}
{Xi,jt+1=Xi,pjt+(Xr,p1t−Xi,pjt)(1+r1)sin(2πr2)Xi,jt+1=Xi,pjt+(Xr,p1t−Xi,pjt)(1+r1)cos(2πr2),j=even,j=odd(4)其中,
t
t
t 为当前迭代次数,
X
i
,
j
t
+
1
X_{i,j}^{t + 1}
Xi,jt+1 是第
i
i
i 条白鲸在第
j
j
j 维上的新位置,
P
j
(
j
=
12...
,
d
)
{P_j}(j = 12...,d)
Pj(j=12...,d) 是从
d
d
d 维中随机选择的,
X
i
,
j
t
X_{i,j}^t
Xi,jt 是第
i
i
i 条白鲸在
j
j
j 维度上的位置,
X
i
,
p
j
t
X_{i,{p_j}}^t
Xi,pjt 和
X
r
,
p
1
t
X_{r,{p_1}}^t
Xr,p1t 是第
i
i
i 和第
r
r
r 条白鲸(
r
r
r 代表随机选择的白鲸)的当前位置,
r
1
r_1
r1 和
r
2
r_2
r2 是范围在
(
0
,
1
)
(0,1)
(0,1) 的随机数,用于增强勘探阶段的随机算子。
s
i
n
(
2
π
r
2
)
sin(2πr_2)
sin(2πr2) 和
c
o
s
(
2
π
r
2
)
cos(2πr_2)
cos(2πr2) 用于平均鱼鳍之间的随机数。根据奇数和偶数选择的维度,更新后的位置反映了白鲸在游泳或潜水时的同步或镜像行为。
2.3 开发阶段
BWO的开发阶段的灵感来自于白鲸的捕食行为。白鲸可以根据相邻白鲸的位置,合作觅食和移动。因此,白鲸通过分享彼此的位置信息来猎物,考虑最好的候选解和其他解。在BWO的开发阶段引入了Levy飞行的策略,以提高收敛性。我们假设它们可以用Levy飞行策略捕捉猎物,其数学模型表示为:
X
i
t
+
1
=
r
3
X
b
e
s
t
t
−
r
4
X
i
t
+
C
1
⋅
L
F
⋅
(
X
r
t
−
X
i
t
)
(5)
X_i^{t + 1} = {r_3}X_{best}^t - {r_4}X_i^t + {C_1} \cdot {L_F} \cdot (X_r^t - X_i^t)\tag{5}
Xit+1=r3Xbestt−r4Xit+C1⋅LF⋅(Xrt−Xit)(5)其中,
T
T
T 为当前迭代次数,
X
i
t
X_i^t
Xit 和
X
r
t
X_r^t
Xrt 是第
i
i
i 条白鲸和一条随机的白鲸的当前位置,
X
i
t
+
1
X_i^{t + 1}
Xit+1 是第
i
i
i 条白鲸的新位置,
X
b
e
s
t
t
X_{best}^t
Xbestt 是鲸鱼中最佳位置,
r
3
r_3
r3 和
r
4
r_4
r4 是范围在
(
0
,
1
)
(0,1)
(0,1) 的随机数,
C
1
=
2
r
4
(
1
−
t
/
T
m
a
x
)
{C_1} = 2{r_4}(1 - t/{T_{max}})
C1=2r4(1−t/Tmax) 用于测量Levy飞行强度的随机跳跃强度。
L
F
L_F
LF 为Levy飞行函数,其计算方法如下:
L
F
=
0.05
×
u
×
σ
∣
v
∣
1
/
β
(6)
{L_F} = 0.05 \times {{u \times \sigma } \over {{{\left| v \right|}^{1/\beta }}}}\tag{6}
LF=0.05×∣v∣1/βu×σ(6)
σ
=
(
Γ
(
1
+
β
)
×
s
i
n
(
π
β
/
2
)
Γ
(
(
1
+
β
)
/
2
)
×
β
×
2
(
β
−
1
)
/
2
)
1
/
β
(7)
\sigma = {\left( {{{\Gamma (1 + \beta ) \times sin(\pi \beta /2)} \over {\Gamma ((1 + \beta )/2) \times \beta \times {2^{(\beta - 1)/2}}}}} \right)^{1/\beta }}\tag{7}
σ=(Γ((1+β)/2)×β×2(β−1)/2Γ(1+β)×sin(πβ/2))1/β(7)其中,
u
u
u 和
v
v
v 是正态分布的随机数,
β
β
β 是默认的常数,等于
1.5
1.5
1.5。
2.4 鲸落阶段
在迁徙和觅食的过程中,白鲸受到了来自虎鲸、北极熊和人类的威胁。大多数白鲸都很聪明,可以通过彼此分享信息来逃避威胁。然而,少数白鲸没有幸存下来,掉进了海底。这种现象被称为“鲸鱼坠落”,喂养了大量的生物。大量的鲨鱼和无脊椎动物聚集在一起喂养鲸鱼的尸体,暴露的死鲸鱼的骨头和尸体吸引了大量的毛发甲壳类动物。最后,骨骼被细菌和珊瑚分解或占据了几十年。
为了模拟每次迭代中鲸落的行为,我们选择鲸鱼从种群中掉落的概率作为我们主观的假设,以此模拟群体中的微小变化。我们假设这些白鲸要么转移到其他地方,要么被击落并掉入深海。为了保证种群数量不变,我们利用白鲸的位置和鲸鱼下降的步长来建立更新的位置。该数学模型表示为:
X
i
t
+
1
=
r
5
X
i
t
−
r
6
X
r
t
+
r
7
X
s
t
e
p
(8)
X_i^{t + 1} = {r_5}X_i^t - {r_6}X_r^t + {r_7}{X_{step}}\tag{8}
Xit+1=r5Xit−r6Xrt+r7Xstep(8)其中,
r
5
r_5
r5 、
r
6
r_6
r6 和
r
7
r_7
r7 是
(
0
,
1
)
(0,1)
(0,1) 之间的随机数,
X
s
t
e
p
X_{step}
Xstep 是鲸鱼坠落的步长,确定为:
X
s
t
e
p
=
(
u
b
−
l
b
)
e
x
p
(
−
C
2
t
T
)
(9)
{X_{step}} = ({u_b} - {l_b})exp( - {C_2}{t \over T})\tag{9}
Xstep=(ub−lb)exp(−C2Tt)(9)其中,
C
2
C_2
C2 为与鲸鱼下降概率和种群大小相关的步长因子(
C
2
=
2
W
f
×
n
C_2=2W_f ×n
C2=2Wf×n ),
u
b
ub
ub 和
l
b
lb
lb 分别为变量的上界和下界。可以看出,步长受设计变量、迭代次数和最大迭代数的边界的影响。
在这个模型中,鲸鱼坠落的概率(
W
f
W_f
Wf )被计算为一个线性函数:
W
f
=
0.1
−
0.05
t
/
T
(10)
{W_f} = 0.1 - 0.05t/T\tag{10}
Wf=0.1−0.05t/T(10) 鲸鱼坠落的概率从初始迭代的
0.1
0.1
0.1 下降到最后一次迭代的
0.05
0.05
0.05,说明当白鲸在优化过程中更接近食物源时,白鲸的危险降低。
2.5 算法伪代码
- 设置参数:种群的数量 N N N 最大的迭代次数 T T T
- 初始化种群,评估适应度值,得到最优解( P ∗ P^* P∗)
- While t ≤ T t ≤ T t≤T do
- 由式(10)得到鲸鱼坠落概率 W f W_f Wf ,由式(3)得到平衡因子 B f B_f Bf
- For i = 1 i = 1 i=1 to N N N do
- If B f ( i ) > 0.5 B_f(i)>0.5 Bf(i)>0.5 then
- 使用公式(4)更新第 i i i 个白鲸的新位置
- Else If B f ( i ) ≤ 0.5 B_f(i)≤0.5 Bf(i)≤0.5 then
- 更新随机跳跃强度 C 1 C_1 C1,计算Levy飞行函数
- 使用公式(5)更新第 i i i 个白鲸的新位置
- End If
- 检查新位置的边界,并评估适合度值
- End For
- For i = 1 i = 1 i=1 to N N N do
- If B f ( i ) < = W f B_f(i)<=W_f Bf(i)<=Wf then
- 使用公式(8)更新第 i i i 个白鲸的新位置
- 检查新位置的边界,并评估适合度值
- End If
- End For
- 求当前最优解 P ∗ P^* P∗
- t = t + 1 t=t+1 t=t+1
- End While
- 输出最佳解 P ∗ P^* P∗
三、实验结果
BWO在23个经典测试函数(设置维度 d i m = 30 dim=30 dim=30)的F5、F6、F7中的收敛曲线,测试函数公式如下:
函数 | 公式 | 理论值 |
---|---|---|
F5 | F 5 ( x ) = ∑ i = 1 d − 1 [ 100 ( x i + 1 − x i 2 ) 2 + ( x i − 1 ) 2 ] {F_5}(x) = \sum\nolimits_{i = 1}^{d - 1} {[100{{({x_{i + 1}} - x_i^2)}^2} + {{({x_i} - 1)}^2}]} F5(x)=∑i=1d−1[100(xi+1−xi2)2+(xi−1)2] | 0.00 0.00 0.00 |
F6 | F 6 ( x ) = ∑ i = 1 d ( x i + 5 ) 2 {F_6}(x) = {\sum\nolimits_{i = 1}^d {({x_i} + 5)} ^2} F6(x)=∑i=1d(xi+5)2 | 0.00 0.00 0.00 |
F7 | F 7 ( x ) = ∑ i = 1 d i × x i 4 + r a n d o m [ 0 , 1 ) {F_7}(x) = \sum\nolimits_{i = 1}^d {i \times x_i^4 + random[0,1)} F7(x)=∑i=1di×xi4+random[0,1) | 0.00 0.00 0.00 |
3.1 F5收敛曲线
3.2 F6收敛曲线
3.3 F7收敛曲线
四、参考文献
[1] 贾鹤鸣, 智能优化算法及 MATLAB 实现[M], 清华大学出版社, 2024。
[2] Zhong C, Li G, Meng Z. Beluga whale optimization: A novel nature-inspired metaheuristic algorithm[J]. Knowledge-Based Systems, 2022, 109215.