鲸鱼优化算法(WOA)
1.前言:
一种元启发式优化算法,模拟座头鲸狩猎行为的元启发式优化算法。该算法具有机制简单、参数少、寻优能力强等优点,在众多领域得到广泛的应用。
2.算法基本原理:
标准 WOA 模拟了座头鲸特有的搜索方法和围捕机制,主要包括:围捕猎物、气泡网捕食、搜索猎物三个重要阶段。WOA 中每个座头鲸的位置代表一个潜在解,通过在解空间中不断更新鲸鱼的位置,最终获得全局最优解。
(1)围捕猎物(Encircling prey)
鲸鱼的搜索范围是全局解空间,需要先确定猎物的位置以便包围。在定义了最佳搜索代理之后,其他搜索代理将尝试向最佳搜索代理更新它们的位置。这一行为由以下方程
D
=
∣
C
×
X
∗
(
t
)
−
X
∗
(
t
)
∣
D = \left| {C \times X*(t) - X*(t)} \right|
D=∣C×X∗(t)−X∗(t)∣
X
(
t
+
1
)
=
X
∗
(
t
)
−
A
∗
D
X(t + 1) = X*(t) - A*D
X(t+1)=X∗(t)−A∗D
其中:t表示当前迭代次数,A和C是系数向量,X*(t)是目前得到的最佳解的位置向量,X(t)向量是位置向量,其中向量A和C的计算方式如下
A
=
2
a
×
r
1
−
a
A = 2a \times {r_1} - a
A=2a×r1−a
C
=
2
×
r
2
C = 2 \times {r_2}
C=2×r2
在整个迭代过程中 a 由2线性降到0; r1 和 r2 是0-1中的随机向量。
(2)气泡网捕食:
座头鲸捕食主要有两个机制:包围捕食和气泡网捕食。采用气泡网捕食时,座头鲸与猎物间的位置更新用对数螺旋方程表达。
X
(
t
+
1
)
=
D
′
×
e
b
l
×
cos
(
2
π
l
)
+
X
∗
(
t
)
X(t + 1) = D' \times {e^{bl}} \times \cos (2\pi l) + X*(t)
X(t+1)=D′×ebl×cos(2πl)+X∗(t)
D
′
=
∣
X
∗
(
t
)
−
X
(
t
)
∣
D' = \left| {X*(t) - X(t)} \right|
D′=∣X∗(t)−X(t)∣
D’ ——当前搜索个体与当前最优解的距离;
b——螺旋形状参数;
l ——值域为[-1,1]均匀分布的随机数。
由于靠近猎物过程中有两种捕食行为,因此 WOA 根据概率 p 来选择气泡网捕食或者收缩包围,位置更新公式如下。
p 为[0,1]的随机数。随着迭代次数 t 的增加,参数 A 和收敛因子 a 逐渐减小,若|A| < 1,则各鲸鱼逐渐包围当前最优解,在 WOA 中属于局部寻优阶段。
(3)搜索猎物:
为保证所有鲸鱼在解空间中充分搜索,WOA 根据鲸鱼彼此之间的距离来更新位置,达到随机搜索的目的。因此,当|A| ≥ 1|时,搜索个体会游向随机鲸。
D
′
′
=
∣
C
×
X
r
a
n
d
(
t
)
−
X
(
t
)
∣
D'' = \left| {C \times {X_{rand}}(t) - X(t)} \right|
D′′=∣C×Xrand(t)−X(t)∣
X
(
t
+
1
)
=
X
r
a
n
d
(
t
)
−
A
∗
D
X(t + 1) = {X_{rand}}(t) - A*D
X(t+1)=Xrand(t)−A∗D式中:
D’'——当前搜索个体与随机个体的距离。
X
r
a
n
d
(
t
)
{X_{rand}}(t)
Xrand(t)——当前随机个体的位置