群体智能优化算法之鲸鱼优化算法

转载自我的个人网站 https://wzw21.cn/2022/01/08/woa/

目录

  • 鲸鱼优化算法
    • 鲸鱼群体
    • 模型与算法

鲸鱼优化算法

鲸鱼群体

鲸鱼是世界上最大的哺乳动物,是有情感的高智商动物,大部分鲸鱼被认为是食肉动物且群居。座头鲸是最大的长须鲸之一,它们使用一种独特的捕猎方式来猎食虾群和鱼群,被称为泡泡网(Bubble-net)捕猎方式,如图4、图5所示。它们在捕食时以螺旋式逼近猎物,吐出气体形成气泡,迫使鱼群聚集以方便捕食。鲸鱼优化算法便是受启发于鲸鱼(特别是座头鲸)的捕猎方式。
群体智能优化算法之鲸鱼优化算法_第1张图片

图4:“泡泡网”捕猎示意图,引用自论文《The whale optimization algorithm》

群体智能优化算法之鲸鱼优化算法_第2张图片

图5:座头鲸捕猎场景

模型与算法

鲸鱼优化算法与灰狼优化算法相似,都采用对目标位置先进行包围再捕食的策略。不同点在于鲸鱼优化算法直接将当前最优解作为包围中心,且鲸鱼优化算法的捕猎逼近过程分为两种,第一种逐步降低距离,另一种以螺旋形逼近。鲸鱼优化算法的基本位置更新方式与灰狼优化算法相同,见灰狼优化算法公式(1)至(4)。

鲸鱼优化算法基于一个随机数p∈[0,1]来决定当前搜索单元的行动,有50%的概率直接根据目标位置进行移动,有50%的概率以螺旋线逼近猎物。鲸鱼在捕猎时的行为被定义为:
X ⃗ ( t + 1 ) = { X ⃗ ∗ ( t ) − A ⃗ ⋅ D ⃗ D ′ ⃗ ⋅ e b l ⋅ c o s ( 2 π l ) + X ⃗ ∗ ( t ) p < 0.5 p ≥ 0.5 (1) \vec{X}(t+1)= \left\{ \begin{array}{l} \vec{X}^*(t)-\vec{A}\cdot\vec{D} \\ \vec{D'}\cdot e^{bl}\cdot cos(2πl)+\vec{X}^*(t) \end{array} \begin{array}{r} p<0.5 \\ p≥0.5 \end{array} \right. \tag1 X (t+1)={X (t)A D D eblcos(2πl)+X (t)p<0.5p0.5(1)
其中, X ⃗ ∗ ( t ) \vec{X}^*(t) X (t)可能是当前最优解的位置也可能是一个随机搜索单元的位置,取决于 ∣ A ⃗ ∣ |\vec{A}| A 的值,b决定螺旋线形状,l为随机值∈[-1,1], D ′ ⃗ = ∣ X ⃗ ∗ ( t ) − X ⃗ ( t ) ∣ \vec{D'}=|\vec{X}^*(t)-\vec{X}(t)| D =X (t)X (t)。鲸鱼优化算法搜索机制示意图如图6所示。
群体智能优化算法之鲸鱼优化算法_第3张图片

图6:鲸鱼优化算法搜素机制,(a)缩小包围机制(b)螺旋更新位置,引用自论文《The whale optimization algorithm》

鲸鱼优化算法的伪代码如下:

初始化鲸鱼种群 Xi (i=1,2,…,n)
计算每个搜索单元的适应度
X*=最优搜索单元
while (t<最大迭代次数)
  for (每个搜索单元)
    更新a, A, C, l, p
    if1 (p<0.5)
      if2 (|A|<1)
        根据最优个体更新当前搜索单元的位置
      else if2 (|A|≥1)
        随机选择一个搜索单元Xrand
        根据Xrand更新当前搜索单元的位置
      end if2
    else if1 (p≥0.5)
      根据最优个体螺旋更新当前搜索单元的位置
    end if1
  end for
  检查是否有超出搜索范围的搜索单元,并进行修正
  计算所有搜索单元的适应度
  更新X*
  t=t+1
end while
return X*

你可能感兴趣的:(理论知识,算法)