基于鲸鱼优化算法的函数寻优算法

文章目录

  • 一、理论基础
    • 1、启发
    • 2、包围猎物
    • 3、狩猎行为
    • 4、搜索猎物
  • 二、结果显示
  • 三、参考文献

一、理论基础

1、启发

鲸鱼优化算法 (whale optimization algorithm,WOA)是 2016 年由澳大利亚格里菲斯大学的Mirjalili等提出的一种新的群体智能优化算法,其优点在于操作简单、参数少以及跳出局部最优的能力强。
基于鲸鱼优化算法的函数寻优算法_第1张图片

图1 座头鲸的狩猎摄食行为

2、包围猎物

座头鲸能识别猎物的位置并围着它们转。由于最优位置在搜索空间中的位置是未知的,WOA算法假设当前的最佳候选解是目标猎物或接近最优解。在定义了最佳候选解之后,其他候选位置将尝试向最佳位置移动并更新其位置。此行为由以下等式表示: D → = ∣ C → X ∗ → ( t ) − X → ( t ) ∣ (1) \overrightarrow{\boldsymbol D}=|\overrightarrow{\boldsymbol C}\overrightarrow{\boldsymbol X^*}(\boldsymbol{t})-\overrightarrow{\boldsymbol X}(\boldsymbol{t})|\tag{1} D =C X (t)X (t)(1) X → ( t + 1 ) = X ∗ → ( t ) − A → ⋅ D → (2) \overrightarrow{\boldsymbol X}(t+1)=\overrightarrow{\boldsymbol X^*}(t)-\overrightarrow{\boldsymbol A}\boldsymbol\cdot \overrightarrow{\boldsymbol D}\tag{2} X (t+1)=X (t)A D (2)其中, t t t是当前迭代次数; A → \overrightarrow{\boldsymbol A} A C → \overrightarrow{\boldsymbol C} C 为系数向量, X ∗ ( t ) \boldsymbol X^*(t) X(t)表示目前为止最好的鲸鱼位置向量, X ( t ) \boldsymbol X(t) X(t)表示当前鲸鱼的位置向量。
向量 A → \overrightarrow{\boldsymbol A} A C → \overrightarrow{\boldsymbol C} C 可由以下计算得到: A → = 2 a → ⋅ r → − a → (3) \overrightarrow{\boldsymbol A}=2\overrightarrow{\boldsymbol a}\cdot\overrightarrow{\boldsymbol r}-\overrightarrow{\boldsymbol a}\tag{3} A =2a r a (3) C → = 2 ⋅ r → (4) \overrightarrow{\boldsymbol C}=2\cdot \overrightarrow{\boldsymbol r}\tag{4} C =2r (4)其中, a \boldsymbol a a的值从2线性减少到0, r → \overrightarrow{\boldsymbol r} r 是[0,1]中的随机向量。

3、狩猎行为

根据座头鲸的狩猎行为,它是以螺旋运动游向猎物,故狩猎行为的数学模型如下: X → ( t + 1 ) = D ′ → ⋅ e b l ⋅ c o s ( 2 π l ) + X ∗ → ( t ) (5) \overrightarrow{\boldsymbol X}(t+1)=\overrightarrow{\boldsymbol D'}\cdot e^{bl}\cdot cos(2\pi l)+\overrightarrow{\boldsymbol X^*}(t)\tag{5} X (t+1)=D eblcos(2πl)+X (t)(5)其中, D ′ → = ∣ X ∗ → ( t ) − X → ( t ) ∣ \overrightarrow{\boldsymbol D'}=|\overrightarrow{\boldsymbol X^*}(t)-\overrightarrow{\boldsymbol X}(t)| D =X (t)X (t)表示鲸鱼和猎物之间的距离, X ∗ → ( t ) \overrightarrow{\boldsymbol X^*}(t) X (t)表示目前为止最好的位置向量, b b b是对数螺线形状的常数, l l l是[-1,1]中的一个随机数。
注意到座头鲸在一个缩小的包围圈内绕着猎物游动,同时沿着螺旋形的路径游动。为了模拟这种同时发生的行为,我们假设有50%的可能性来选择收缩包围机制或螺旋模型来更新优化过程中鲸鱼的位置。数学模型如下: X → ( t + 1 ) = { X ∗ → ( t ) − A → ⋅ D → i f     p < 0.5 X → ( t + 1 ) = D ′ → ⋅ e b l ⋅ c o s ( 2 π l ) + X ∗ → ( t ) i f     p > 0.5 (6) \overrightarrow{\boldsymbol X}(t+1)=\begin{dcases}\overrightarrow{\boldsymbol X^*}(t)-\overrightarrow{\boldsymbol A}\cdot\overrightarrow{\boldsymbol D}\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad if\,\,\, p < 0.5\\\overrightarrow{\boldsymbol X}(t+1)=\overrightarrow{\boldsymbol D'}\cdot e^{bl}\cdot cos(2\pi l)+\overrightarrow{\boldsymbol X^*}(t)\quad if\,\,\, p > 0.5\end{dcases}\tag{6} X (t+1)=X (t)A D ifp<0.5X (t+1)=D eblcos(2πl)+X (t)ifp>0.5(6)算法设定当 ∣ A → ∣ < 1 |\overrightarrow{\boldsymbol A}|<1 A <1时,鲸鱼向猎物发起攻击。

4、搜索猎物

数学模型如下: D → = ∣ C → ⋅ X r a n d → − X → ∣ (7) \overrightarrow{\boldsymbol D}=|\overrightarrow{\boldsymbol C}\cdot\overrightarrow{\boldsymbol X_{rand}}-\overrightarrow{\boldsymbol X}|\tag{7} D =C Xrand X (7) X → ( t + 1 ) = X r a n d → − A → ⋅ D → (8) \overrightarrow{\boldsymbol X}(t+1)=\overrightarrow{\boldsymbol X_{rand}}-\overrightarrow{\boldsymbol A}\cdot\overrightarrow{\boldsymbol D}\tag{8} X (t+1)=Xrand A D (8)其中, X r a n d → \overrightarrow{\boldsymbol X_{rand}} Xrand 是随机选择的鲸鱼位置向量,算法设定当 ∣ A → ∣ > 1 |\overrightarrow{\boldsymbol A}|>1 A >1时,随机选择一个搜索个体,根据随机选择的鲸鱼位置来更新其他鲸鱼的位置,迫使鲸鱼偏离猎物,借此找到一个更合适的猎物,这样可以加强算法的探索能力使WOA算法能够进行全局搜索。

二、结果显示

基于鲸鱼优化算法的函数寻优算法_第2张图片

图2 基准函数的三维图形

基于鲸鱼优化算法的函数寻优算法_第3张图片

图3 算法进化过程

三、参考文献

[1] Seyedali Mirjalili, Andrew Lewis. The Whale Optimization Algorithm[J]. Advances in Engineering Software, 2016, 95: 51-67.

你可能感兴趣的:(matlab,最优化问题,matlab,鲸鱼优化算法)