1.算法原理
SCI二区|鲸鱼优化算法(WOA)原理及实现【附完整Matlab代码】
2.改进点
非线性收敛因子
WOA 主要通过控制系数向量 A 来决定鲸鱼是搜索猎物还是捕获猎物,即系数向量 A 可以实现全局搜索和局部优化迭代之间的转换,而系数向量 A 由收敛因子 a 决定,收敛因子 a 越大,系数向量 A 越大,致使算法全局搜索能力提升,收敛因子 a 越小,系数向量 A 越小,系统局部搜索能力越强:
a
=
0.1
+
(
a
s
t
−
a
e
n
d
)
e
−
(
k
t
T
m
a
x
)
3
(1)
a{=}0.1{+}(a_{\mathrm{st}}{-}a_{\mathrm{end}})\mathrm{e}^{-\left(\frac{kt}{T_{\mathrm{max}}}\right)^3}\tag{1}
a=0.1+(ast−aend)e−(Tmaxkt)3(1)
自适应惯性权重
惯性权重在一定程度上会影响算法的求解效率,进而影响算法的开发及探索能力:
w
=
(
w
s
t
−
w
e
n
d
)
⋅
cos
(
π
t
T
m
a
x
+
2
)
(2)
w=(w_{\mathrm{st}}-w_{\mathrm{end}})\cdot\cos\left(\frac{\pi t}{T_{\mathrm{max}}}+2 \right)\tag{2}
w=(wst−wend)⋅cos(Tmaxπt+2)(2)
将改进后的自适应惯性权重引入 WOA 算法的 3 个更新公式:
X
(
t
+
1
)
=
w
X
∗
(
t
)
−
A
D
X
(
t
+
1
)
=
D
′
e
bl
cos
(
2
π
l
)
+
w
X
∗
(
t
)
X
(
t
+
1
)
=
w
X
r
a
n
d
(
t
)
−
A
D
(3)
\begin{aligned} &X(t+1)= wX^{*}(t){-}AD \\ &X\left(t+1\right)= D'e^\text{bl}{\cos(2\pi l)+wX^*(t)} \\ &X\left(t+1\right)= wX_{\mathrm{rand}}(t){-}AD \end{aligned}\tag{3}
X(t+1)=wX∗(t)−ADX(t+1)=D′eblcos(2πl)+wX∗(t)X(t+1)=wXrand(t)−AD(3)
动态螺旋更新
鲸鱼通过气泡螺旋进行捕食,该过程中螺旋形状由参数 b 决定。 改进后螺旋更新系数的公式为:
b
=
k
cos
[
π
(
1
−
t
T
max
)
]
(4)
b{=}k\cos\Big[ \pi\Big( 1{-}\frac{t}{T_{\max}}\Big) \Big]\tag{4}
b=kcos[π(1−Tmaxt)](4)
3.结果展示
4.参考文献
[1] 刘妍,都威,黄琦.基于自适应动态鲸鱼优化算法的路径规划研究[J].自动化应用,2024,65(09):30-34+41.