适合做应用的算法-鲸鱼优化算法(WOA)详细原理-附matlab代码

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

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

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

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

基本原理:

鲸鱼优化算法是模仿座头鲸独特的捕猎行为, 根据鲸鱼的捕食特点, 将鲸鱼的捕食行为分为三个阶段: 收缩包围,与泡网攻击, 随机搜索.

  1. 收缩包围

    在自然界中,鲸鱼可以找到猎物的位置并对它们进行包围捕食,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鲸鱼

相关推荐
一只肥瘫瘫22 分钟前
编码器 PLL 角度与速度观测器原理
人工智能·算法
Nil2081 小时前
leetcode 146LRU缓存
算法·leetcode·缓存
郝学胜_神的一滴1 小时前
干货版《算法导论》18:遍历增删原理、时间复杂度与集合序列实现全解
数据结构·算法
-dzk-2 小时前
【滑动窗口】LC 3.无重复字符的最长子串
算法·滑动窗口
zzxdear2 小时前
用 OR-Tools CP-SAT 求解最简单的柔性作业车间调度(FJSP)
算法
Evand J2 小时前
【MATLAB例程,车联网12】基于模型预测控制(MPC)的网联车辆交叉口生态驾驶动态优化仿真分析。附完整代码的下载链接
物联网·matlab·车联网·mpc·模型预测控制·车辆·网联车辆
luj_17682 小时前
变频技术核心原理揭秘
服务器·c语言·开发语言·经验分享·算法
rannn_1112 小时前
【力扣hot100】图论专题+模板|DFS、BFS、拓扑排序...
java·算法·leetcode·深度优先·图论
_Narcissus_2 小时前
B树概念及操作笔记(含完整代码实现)
c语言·数据结构·数据库·c++·笔记·b树·算法
l1258652 小时前
# RAG多轮对话检索设计:Query重写如何让“那它呢“变成完整问题
前端·数据库·人工智能·python·算法·fastapi·milvus