JoshWindsor 发表于 2021-12-5 06:51

优化算法 | 鲸鱼优化算法

今天为各位讲解鲸鱼优化算法(WOA),推文内容来源于《MATLAB智能优化算法:从写代码到算法思想》第10章。
▎鲸鱼优化算法背景介绍
在介绍鲸鱼优化算法之前,我们有必要了解鲸鱼的社会行为。大多数鲸鱼成群结队地生活,它们的一些物种(例如虎鲸)可以在整个生命周期中生活在一个家庭中。最大的须鲸之一是座头鲸,一头成年座头鲸几乎和一辆校车一样大。下图为座头鲸。



图片来源:https://en.m.wikiversity.org/wiki/Whale_Optimization_Algorithm#

座头鲸最有趣的地方是它们特殊的捕食方式。这种觅食行为称为发泡网攻击觅食法。座头鲸喜欢在靠近水面的地方捕食磷虾或小鱼群。据观察,这种觅食是通过沿着圆形或“9”形路径产生独特的气泡来完成的。

下图是一组座头鲸正在采用发泡网攻击的方式进行捕食。



图片来源:https://en.m.wikiversity.org/wiki/Whale_Optimization_Algorithm#

下图为座头鲸正在气泡网螺旋的中心猛扑。



图片来源:https://en.m.wikiversity.org/wiki/Whale_Optimization_Algorithm#

也许你觉的气泡能有多大威力,怎么可能挡得住鱼群?那得看是多大的气泡,来看看下面这图,对比旁边的人群,如此巨大的气泡连成串要挡住鱼群还不是轻而易举。



发泡网攻击捕食方式如下:基本就是由一头或几头鲸围绕鱼群绕圈的同时呼出气泡,将鱼群圈在当中,然后继续绕圈呼出气泡,使气泡圈的范围越来越小,将鱼群围在一个很小的区域内,然后鲸群从气泡圈底部向上垂直冲出,张开巨口将鱼群兜进嘴里。整个过程示意图如下图所示。



图片来源:https://www.bilibili.com/read/cv4038715/

座头鲸发泡网捕食的完整视频如下:




https://www.zhihu.com/video/1437715033543872512
视频来源:https://youtu.be/JZlqNCPWld8

▎鲸鱼优化算法基本思想

鲸鱼优化算法是模仿自然界中鲸鱼捕食行为的新型群体智能优化算法,而鲸鱼的捕食行为主要分为3类:1)包围猎物;2)发泡网攻击;3)搜索捕食。因此,在使用WOA求解问题之前,需要对上述3类捕食行为进行建模,即用数学公式表达上述3类捕食行为。

鲸鱼捕食行为的目的是捕获猎物,一群鲸鱼在共同寻找猎物时,一定会存在某条鲸鱼先发现猎物的情况,这时候其它鲸鱼一定会向这条发现猎物的鲸鱼游来争抢猎物。
将上述捕食过程可以应用到WOA求解问题的过程中,即一个解就可以用一个鲸鱼个体表示,若干个解就可以用若干个鲸鱼个体表示。在使用WOA搜索问题解的过程就可以看作是若干个鲸鱼个体不断更新个体位置,直至搜索到满意的解为止。
▎鲸鱼优化算法数学公式推导
在对鲸鱼的捕食行为,以及WOA求解问题的过程有一个直观的了解后,接下来分别对上述3类捕食行为用数学公式进行表示。







▎鲸鱼优化算法流程图


▎参考
1.
2.

咱们下期再见
▎近期你可能错过了的好文章:
新书上架 | 《MATLAB智能优化算法:从写代码到算法思想》
优化算法 | 灰狼优化算法(文末有福利)
遗传算法(GA)求解带时间窗的车辆路径(VRPTW)问题MATLAB代码

mypro334 发表于 2021-12-5 06:56

和pso没啥太大区别
页: [1]
查看完整版本: 优化算法 | 鲸鱼优化算法