鲸鱼优化算法(Whale Optimization Algorithm,WOA)
- 一、算法灵感
- 二、算法介绍
- 2.1 初始化
- 2.2 包围猎物阶段
- 2.3 气泡网捕食法
- 2.3.1 收缩包围
- 2.3.2 螺旋更新
- 2.4 搜索猎物
- 2.5 WOA的伪代码
- 三、实验结果
- 3.1 F1收敛曲线
- 3.2 F5收敛曲线
- 3.3 F8收敛曲线
- 四、参考文献
一、算法灵感
鲸鱼优化算法(Whale Optimization Algorithm, WOA)是2016年提出的一种元启发式优化算法,其灵感来自于座头鲸的狩猎行为。通过模拟随机或最佳个体捕食猎物的狩猎行为,研究者发现鲸鱼的气泡网捕食法可以分为两种,并将它们命名为“向上螺旋策略”和“双螺旋策略”。“向上螺旋策略”中,座头鲸会先下潜约12米,然后开始在螺旋中制造泡泡,并向水面游去。“双螺旋策略”包括三个不同的环节:珊瑚环节、鲸尾拍打水面环节和捕获环节。在WOA算法中只模拟了“向上螺旋策略”,并使用螺旋模拟座头鲸的气泡网捕食法,如图1所示。
图1 鲸鱼的气泡网捕食示意图
二、算法介绍
2.1 初始化
在WOA中,初始化鲸鱼种群位置的计算公式如下:
式中, 为个体 的位置, 和 是搜索空间的下界和上界, 为 到
2.2 包围猎物阶段
在现实中座头鲸能够识别猎物的位置并将其围成一圈。但由于在搜索空间中的最优位置是未知的,因此,WOA算法假设当前最佳候选解位置为目标猎物位置。在定义了目标猎物位置后,其他鲸鱼将进行尝试包围到目标猎物的位置。该过程的计算公式如下:
其中, 为当前迭代次数, 和 为系数, 是当前解的位置, 是当前最优解的位置, 在迭代过程中逐渐从 减小至 。
图2(a)展示了式(2)在应对二维问题时,通过调整A和C可以到达当前最优解周围的不同位置。图2(b)展示了式(2)在应对三维问题时,通过随机变量 ,可以达到当前最优解周围的不同位置。从而模拟了鲸鱼包围猎物。
图2 鲸鱼下一个可能的位置
2.3 气泡网捕食法
2.3.1 收缩包围
的值来实现收缩包围,由于 的范围为 。因此,当a减小时, 的波动范围也会缩小。图3(a)展示了在二维空间中 时从 到
2.3.2 螺旋更新
图3 鲸鱼的气泡网捕食示意图
到 之间的距离,然后使用螺旋更新公式(6)来模拟鲸鱼的螺旋前进。
其中, 表示第 个个体与最优个体之间的距离, 为常数,用于定义对数螺线的形状, 为 之间的随机数。
为了同时模拟鲸鱼的收缩包围机制和螺旋更新机制,假设这两种机制执行的概率相等,可以用数学表达式表示如下:
2.4 搜索猎物
图4 鲸鱼下一个可能的位置
的值来实现。当 的绝对值大于 时,鲸鱼将会远离目标猎物,如图4所示。与气泡网捕食阶段相反,这里将随机选择一个个体的位置作为参考来更新下一个位置,而不是目前为止最优的个体位置。该阶段相当于探索阶段。数学公式如下:
其中,为随机一条鲸鱼的位置。
2.5 WOA的伪代码
- 初始化鲸鱼数量 和最大迭代次数
- 初始化种群:
- While do
- 检查是否有鲸鱼超出了搜索空间并进行修改
- For to do
- ,,,
- If then
- If then
- 使用公式(2)执行收缩包围策略
- Else
- 使用公式(9)执行搜索猎物策略
- End If
- Else
- 使用公式(6)执行螺旋更新策略
- End If
- End For
- End While
- 返回吃的最饱的鲸鱼(最优解)
三、实验结果
WOA在23个经典测试函数(设置维度 )的F1、F5、F8中的收敛曲线,测试函数公式如下:
函数 | 公式 | 理论值 |
F1 | ||
F5 | ||
F8 |
3.1 F1收敛曲线
3.2 F5收敛曲线
3.3 F8收敛曲线