📜  鲸鱼优化算法 (WOA)

📅  最后修改于: 2022-05-13 01:58:09.210000             🧑  作者: Mango

鲸鱼优化算法 (WOA)

获得目标函数的最佳值(最大值或最小值)的逐步过程称为优化算法

元启发式优化算法在工程应用中越来越流行,因为它们:

  • 依赖于相当简单的概念并且易于实现
  • 不需要梯度信息
  • 可以绕过局部最优
  • 可用于涵盖不同学科的广泛问题。

许多学者和研究人员开发了几种元启发式方法来解决复杂/未解决的优化问题。示例:粒子群优化、灰狼优化、蚁群优化、遗传算法、布谷鸟搜索算法等。

本文旨在介绍一种新的元启发式优化技术,称为 Whale 优化算法 (WOA)

算法灵感:

鲸鱼优化算法 (WOA):一种受自然启发的元启发式优化算法,它模仿座头鲸的狩猎行为。该算法的灵感来自泡沫网狩猎策略



座头鲸的觅食行为称为泡泡网捕食法。座头鲸更喜欢在靠近水面的地方捕食磷虾或小鱼群。已经观察到这种觅食是通过沿着圆形或“9”形路径创建独特的气泡来完成的,如图 1 所示。

与气泡网喂食相关的两种操作是“向上螺旋”和“双环”。

  • “向上螺旋”机动中,座头鲸潜入约 12 m 处,然后开始在猎物周围形成螺旋形气泡并向上游向水面。
  • 双环”机动包括三个不同的阶段:珊瑚环、龙虾环和捕获环

图 1:座头鲸的泡泡网捕食行为。

数学模型

泡泡网喂食是一种独特的行为,只能在座头鲸身上观察到。在鲸鱼优化算法 (WOA) 中,对螺旋气泡网喂食动作进行数学建模以执行优化

  • WOA用随机或最佳搜索代理模拟狩猎行为来追逐猎物
  • WOA使用螺旋模拟座头鲸的泡泡网攻击机制

包围猎物

当前最佳候选解决方案被假定为接近目标猎物,其他解决方案将它们的位置更新为最佳代理

\vec{D} = |\vec{C}.\vec{X}_{best}(t)-\vec{X}(t)|
(1)

\vec{X}(t+1) = \vec{X}_{best}(t)-\vec{A}.\vec{D}
(2)

其中 t 表示当前迭代, \vec{A}  \vec{C}  是系数向量, \vec{X}_{best}  是最佳解的位置向量,并且\vec{X}  表示灰狼的位置向量

\vec{A} = 2\vec{a}\vec{r_1} - \vec{a}
(3)

\vec{C} = 2\vec{r_2}
(4)

在哪里\vec{r_1}  , \vec{r_2}   是 [0, 1] 中的随机向量。

泡泡网攻击方法(开发阶段)

为了对座头鲸的气泡网行为进行数学建模,设计了两种方法如下

  • 1.收缩环绕机构
    • 这种行为是通过减少值来实现的\vec{a}  . a 在迭代过程中从 2 减少到 0。
  • 2. 螺旋更新位置
    • \vec{D^`} = | \vec{X}_{best}(t) - \vec{X}(t)  |
    • \vec{X}(t+1) = \vec{D^`} . e^{bl} . \cos(2\pi l) + \vec{X}_{best}(t)  (5)
    • l  是 [-1, 1] 中的随机数

寻找猎物:

座头鲸根据彼此的位置随机搜索

\vec{D} = |\vec{C}.\vec{X}_{rand}(t)-\vec{X}(t)|
(6)

\vec{X}(t+1) = \vec{X}_{rand}(t)-\vec{A}.\vec{D}
(7)

算法

Step1:初始化鲸鱼种群X_i (i= 1, 2, ..., n) Step2:计算每个搜索代理的适应度X_{best} = 最佳搜索代理 Step3: while( t < 最大迭代次数 ) 每个搜索代理:更新a, A, C, l \hspace{0.1cm} and \hspace{0.1cm} p if(p<0.5): if(|A|<1): 通过 eq. 更新当前代理。 (1) else:选择一个随机代理X_{rand} update current agent by eq (7) else: update search agent by eq (5) end-for 检查是否有任何搜索代理超出搜索空间并修改它计算每个搜索代理的适应度更新X_{best}如果有更好的解决方案 t = t+1 end-while Step4:返回X_{best}

参考:

https://www.sciencedirect.com/science/article/pii/S0965997816300163