当前位置: 代码迷 >> 综合 >> 智能算法:鲸鱼优化算法-附代码
  详细解决方案

智能算法:鲸鱼优化算法-附代码

热度:17   发布时间:2024-01-31 16:39:36.0

智能算法:鲸鱼优化算法-附代码

文章目录

  • 智能算法:鲸鱼优化算法-附代码
    • 1.算法原理
      • 1.1包围猎物
      • 1.2 狩猎行为
      • 1.3 搜索猎物
      • 1.4 算法流程
    • 2. 算法结果:
    • 参考文献:

摘要:鲸鱼优化算法 (whale optimization algorithm,WOA)是 2016 年由澳大利亚格里菲斯大学的Mirjalili 等提出的一种新的群体智能优化算法,其优点在于操作简单,调整的参数少以及跳出局部
最优的能力强。

1.算法原理

鲸鱼优化算法(whale optimization algorithm,WOA)是模仿座头鲸的狩猎行为进而提出的一种新型启发式优化算法。在 WOA 算法中,每只座头鲸的位置代表一个可行解。在海洋活动中,座头鲸有
着一种特殊的狩猎方法,这种觅食行为称为bubble-net 捕食策略 [27] ,其狩猎行为如图 1 所示。
在这里插入图片描述

图1.座头鲸狩猎行为

1.1包围猎物

座头鲸在狩猎时要包围猎物,为了描述这种行为,Mirjalili 提出了下面的数学模型:
D = C X ? ( t ) ? X ( t ) X ( t + 1 ) = X ? ( t ) ? A D D=|CX^{*}(t)-X(t)|\\ X(t+1)=X^{*}(t)-AD
式中: t t 是当前迭代次数; A A C C 为表示系数, X ? ( t ) X^{*}(t) 表示目前为止最好的鲸鱼位置向量, X ( t ) X(t)
表示当前鲸鱼的位置向量,$A $和 C C 由下式可得到
A = 2 a r 1 ? a C = 2 r 2 a = 2 ? 2 t T m a x A=2ar_{1}-a\\ C=2r_{2}\\ a=2-\frac {2t}{T_{max}}

其中, r 1 r_{1} r 2 r_{2} 是(0,1)中的随机数,a 的值从 2到 0 线性下降, t t 表示当前的迭代次数, T m a x T_{max} 为最大迭代次数。

1.2 狩猎行为

根据座头鲸的狩猎行为,它是以螺旋运动游向猎物,故狩猎行为的数学模型如下:
X ( t + 1 ) = X ? ( t ) + D p e b l c o s ( 2 π l ) X(t+1)=X^{*}(t)+D_{p}e^{bl}cos(2\pi l)
其中, D p = X ? ( t ) ? X ( t ) D_{p} =|X^{*} (t)?X(t)| 表示鲸鱼和猎物之间的距离, X ? ( t ) X^{*}(t) 表示目前为止最好的位置向量, b b 是一个常数,用来定义螺线的形状, l l 是(?1,1)中的随机数。值得注意的是,鲸鱼以螺旋形状游向猎物的同时还要收缩包围圈。因此,在这种同步行为模型中,假设有 P i P_{i} 的概率选择收缩包围机制和 1 ? P i 1?P_{i} 的概率选择螺旋模型来更新鲸鱼的位置,其数学模型如下:
X ( t + 1 ) = { X ? ( t ) ? A D , p < P i X ( t ) = X ? ( t ) + D p e b l c o s ( 2 π l ) X(t+1)=\begin{cases} X^{*}(t)-AD, p<P_{i}\\ X(t)=X^{*}(t)+D_{p}e^{bl}cos(2\pi l) \end{cases}
攻击猎物时,在数学模型上靠近猎物设定了减小 a a 的值,这样 A A 的波动范围也随$ a$ 下降。在迭代过程中当 a a 的值从2到0下降时, A A 是在 [ ? a , a ] [?a,a] 内的随机值,当 A A 的值在[?1,1]内时,鲸鱼的下一个位置可以是它现在的位置和猎物的位置之间的任意位置,算法设定当 A < 1 A<1 时,鲸鱼向猎物发起攻击。

1.3 搜索猎物

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

1.4 算法流程

(1)初始化参数:即鲸鱼种群规模大小 S N SN ,最大迭代次数 T m a x T_{max}
(2)算法初始化鲸鱼种群的位置;
(3)计算每一头鲸鱼相应的适应度值,根据适应度值的大小排序,并选取 S N SN 个作为初始种群;
(4)计算出 $SN $个个体适应度值的大小,找出适应度值最小的个体位置作为最优位置;
(5)更新下一代的位置;
(6)若达到终止条件,则输出最优个体,即算法找到的最优解;否则,返回步骤(4)。

2. 算法结果:

在这里插入图片描述

参考文献:

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