优化算法笔记(十三)鲸鱼算法

1. 鲸鱼算法简介

(以下描述,均不是学术用语,仅供大家快乐的阅读)
  鲸鱼算法(Whale Optimization Algorithm)是根据鲸鱼围捕猎物的行为而提出的算法。鲸鱼是一种群居的哺乳动物,在捕猎时它们也会相互合作对猎物进行驱赶和围捕。鲸鱼算法提出时间并不长,也是一个新兴的优化算法,研究应用案例不多。
  鲸鱼算法中,每个鲸鱼的位置代表了一个可行解。在鲸鱼群捕猎过程中,每只鲸鱼有两种行为,一种是包围猎物,所有的鲸鱼都向着其他鲸鱼前进;另一种是汽包网,鲸鱼环形游动喷出气泡来驱赶猎物。在每一代的游动中,鲸鱼们会随机选择这两种行为来进行捕猎。在鲸鱼进行包围猎物的行为中,鲸鱼将会随机选择是向着最优位置的鲸鱼游去还是随机选择一只鲸鱼作为自己的目标,并向其靠近。

2. 算法流程

鲸鱼算法,显而易见,主角就是鲸鱼了。



  在D维解空间内每个鲸鱼的位置为

X=(x_1,x_2,...,x_D)
  每只鲸鱼随机选择进行包围猎物或者是使用汽泡网驱赶猎物,每只鲸鱼选择这两种行为的该率是等的,即P(包围)=P(汽泡网)=0.5。

2.1 包围猎物

鲸鱼在包围猎物时会选择向着最优位置的鲸鱼游动或者向着一只随机鲸鱼游动。

2.1.1向着最优位置鲸鱼游动

该鲸鱼的位置更新公式入下:

X_i^{t+1}=X_{best}^{t}-A|C*X_{best}^{t}-X_i^t|
  其中X_{best} 为当前最优的鲸鱼的位置,A的每一维为均匀分布在(-a,a)内的随机数,a的初始值为2,随着迭代次数线性递减至0;C为均匀分布在(0,2)内的随机数。||表示数的绝对值,即|C*X_{best}^{t}-X_i^t|每一维的值都是非负数。

2.1.2 向着随机鲸鱼的位置游动

该鲸鱼的位置更新公式入下:

X_i^{t+1}=X_{rand}^{t}-A|C*X_{rand}^{t}-X_i^t|
  其中 为当前群体中随机选择的鲸鱼的位置。
  那么鲸鱼在什么时候选择向最优个体游动,什么时候选择随机个体为目标呢?
  这个将由A的值决定
  当 |A<1|时,鲸鱼选择向着最优个体游动。注意A是一个D维的向量,所以是A的模小于1时,鲸鱼向着最优个体游动。
  当 |A\geq 1|时,鲸鱼选择向着随机个体游动。
  可以看出在包围猎物的过程中,鲸鱼算法的搜索模式为在距最优个体较近的周围搜索或者在距随机个体较远的附近搜索。
2.2气泡网
鲸鱼在捕猎时会喷出汽包形成气泡网来驱赶猎物。


  鲸鱼为了使用气泡网来驱赶猎物,也会不断的更新自身的位置。使用气泡网时,鲸鱼的位置更新公式如下:

X_i^{t+1}=|X_{best}^{t}-X_i^t|*e^{bl}*cos(2\pi l)+X_{best}^t
  其中b为常数(没找到定义,默认取1),l为均匀分布在[-1,1]内的随机数。
  每次行动之前,每只鲸鱼都会抛个硬币,来决定是选择包围猎物还是使用气泡网来驱赶猎物。
  从上面的描述可以看出,鲸鱼算法的流程也十分的简单。


  总体上看,鲸鱼算法的搜索有两种模式:围绕最优个体搜索(包围猎物,气泡网)以及围绕随机个体搜索(包围猎物),可以明显的看出,鲸鱼算法没有跳出局部最优的操作,若快速收敛,则很可能陷入局部最优。

3. 实验

适应度函数
f(x_1,x_2)=(x_1-a)^2+(x_2-b)^2
实验一:标准鲸鱼算法

参数
问题维度(维度) 2
总群数量(种群数) 20
搜索次数(最大迭代次数) 50
a 2->0
b 1
取值范围 (-100,100)
实验次数 10
最优值 3.5627355776420206E-18
最差值 2.7797831025283263E-12
平均值 6.101150190284387E-13

从图上可以看出算法的收敛性还是很强的,在第35代左右就已经完全收敛。再看最后的结果,已经是非常好的结果了,同样也说明的算法的局部搜索能力很强。这样印证了上一节我的说法,算法收敛速度快,缺少跳出局部最优的能力。
  从算法的流程我们可以看出,算法的收敛性大概是由参数a来决定的,由于a从2递减为0,使算法的搜索范围越来越小,从而加速算法的收敛。这应该是一个优化后的参数,现在我们固定住a,来弱化算法,减弱其收敛性,看看全局搜索和跳出局部最优能力是否有所加强。

实验二:固定参数a

参数
问题维度(维度) 2
总群数量(种群数) 20
搜索次数(最大迭代次数) 50
a 1.5
b 1
取值范围 (-100,100)
实验次数 10

  从图像可以看出,算法几乎没有收敛的了,算法的收敛速度依旧很快。
看看实验结果。

最优值 1.1232782623533376E-7
最差值 0.10303082420493381
平均值 0.011153458726807865

结果比标准鲸鱼算法差,能说明参数a影响了算法的搜索精度,参数a对算法收敛性的影响在于a对向量A的影响。固定a=1.5时使A的模较之前相比有更大的概率大于1,此时鲸鱼们在包围猎物的行为中选择游向最优个体的概率更小,从而使算法的收敛速度更慢,同时算法的全局搜索能力有一定的提升。

4. 总结

鲸鱼算法作为一个新兴算法,我对它的研究也不是太多。纵观算法的流程,可以看出标准的鲸鱼算法和萤火虫算法有相似之处,它们都是在算法前期进行全局搜索,而在算法的后期进行局部搜索,也都没有跳出局部最优的操作。在面对简单问题上表现出的优秀性能到了复杂问题上可能会有所下降,但是由于算法流程、结构相对简单,算法的改进点感觉也不是太多。

以下指标纯属个人yy,仅供参考

指标 星数
复杂度 ★★☆☆☆☆☆☆☆☆
收敛速度 ★★★★★★★☆☆☆
全局搜索 ★★★★☆☆☆☆☆☆
局部搜索 ★★★★★★★☆☆☆
优化性能 ★★★★★☆☆☆☆☆
跳出局部最优 ★☆☆☆☆☆☆☆☆☆
改进点 ★★☆☆☆☆☆☆☆☆

参考文献
Mirjalili S, Lewis A. The Whale Optimization Algorithm[J]. Advances in Engineering Software, 2016, 95:51-67.提取码:b13x
目录
上一篇 优化算法笔记(十二)烟花算法
下一篇 优化算法笔记(十四)水波算法

优化算法matlab实现(十三)鲸鱼算法matlab实现

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
禁止转载,如需转载请通过简信或评论联系作者。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 196,099评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,473评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,229评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,570评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,427评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,335评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,737评论 3 386
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,392评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,693评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,730评论 2 312
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,512评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,349评论 3 314
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,750评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,017评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,290评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,706评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,904评论 2 335