目录
- 1.算法原理
- 2.改进点
- 3.结果展示
- 4.参考文献
- 5.代码获取
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.