鲸鱼优化算法 (Whale optimization Algorithm, WOA)是 2016 年由 Mirjalili 等提出的一种新型启发式搜索算法,该算法通过模仿座头鲸在海洋中的捕食行为, 对鲸鱼群体搜索、包围和攻击过程模拟实现来寻找最优解. 与传统的元启发式优化算法相比, 鲸鱼优化算法具有操作简单, 需要设置的参数少, 寻优能力强等优点 . 目前 WOA 已应用在特征规划、光伏发电短期预测、云计算任务调度、路径规划等多个领域。如果你还在为你的应用寻找合适的算法,那么不妨试试这个算法,这个算法一般能在较好的效果的基础上够很好地满足约束体条件和惩罚项。

目前谷歌学术引用量达到10651次,基本上各种应用都有,使用非常广泛。

目前在中国知网上相关的额文献为2104篇,尽管它是2016年提出的,但是并不是特别久远,属于现在应用比较多、流行的算法。

可以看出,基本山各行各业都有一定的应用。

基本原理:
鲸鱼优化算法是模仿座头鲸独特的捕猎行为, 根据鲸鱼的捕食特点, 将鲸鱼的捕食行为分为三个阶段: 收缩包围,与泡网攻击, 随机搜索.
-
收缩包围
在自然界中,鲸鱼可以找到猎物的位置并对它们进行包围捕食,WOA中假设当前种群的最优个体是猎物,种群中其他鲸鱼个体均向最优鲸鱼位置包围来更新其自身位置,其位置由公式(1)和(2)更新:



2.气泡网
座头鲸在捕猎时,以螺旋运动的轨迹游向猎物,在WOA,鲸鱼个体通过公式(6)和(7)来更新位置:


3.开发阶段
鲸鱼优化算法的开发阶段包括收缩包围和气泡网攻击两个阶段。当A的绝对值小于1时,由于鲸鱼在缩小的包围圈内围绕猎物沿着螺旋轨迹游动,因此鲸鱼有50%的可能选择包围猎物,还有50的可能会选择气泡网攻击,这个过程通过公式(8)得到:

4.探索阶段(随机搜索)
当A的绝对值大于等于1时,鲸鱼根据其位置随机搜索和捕食,在WOA中,鲸鱼通过公式(9)和(10)更新其位置:


执行过程:

在cec2005上运行,
F1:

F3:

F5:

F7:

matlab代码,微信公众号:算法仓库,后台回复:WOA鲸鱼