优化算法笔记(三十)海洋捕食者算法

1. 算法简介

(以下描述,均不是学术用语,仅供大家快乐的阅读)
  海洋捕食者算法(Marine Predators Algorithm)见名知意,就是根据海洋中掠食者捕获猎物的行为提出的优化算法。该算法发表于2020年,也算法是一个新算法了。
  该算法根据迭代次数分均三个阶段,每个阶段使用不同的随机策略计算步长并移动猎物位置。如果猎物的位置好于捕食者的位置,那么捕食者就移动到该猎物的位置。
  海洋捕食者算法就像一个缝合怪,缝合了布朗运动,levy飞行等随机生成策略,在不同的阶段使用不同的策略。虽然是缝合怪,但是也有着不错的寻优能力,我们也可以学习学习其策略。


(因为是缝合怪,甚至找不到对标的动物,可能作者也没找到,这次就算是鲨鱼吧。)

2. 算法流程

海洋捕食者算法中有两个概念,捕食者和猎物,在每个阶段,只有猎物会进行随机移动,而捕食者则是在猎物完成移动后,移动到优于自己的猎物处。
  在蚁狮算法中也是这样的模型,不过这里更简单,我们可以将海洋捕食者算法中的捕食者对标粒子群算法中的粒子。捕食者的位置就是粒子的历史最优位置,猎物的位置就是粒子的当前位置。猎物(粒子)不断的移动改变位置,如果找到优于捕食者(粒子的历史最优)的位置,那么捕食者移动到该猎物处(粒子更新历史最优位置)。
  初始时海洋捕食者数量为N。捕食者的位置表示为X=(x^1,x^2,...,x^D),猎物的位置为P=(p^1,p^2,...,p^D),最大迭代次数为iter_{max}

2.1阶段1

迭代次数在[0,iter_{max}/3]内。
  根据如下公式计算猎物的新位置:


  公式(1)用于计算步长,其中Rb为标准正态分布随机数,公式(2)用于计算新位置,其中R为[0,1]内均匀随机数,公式(3)是我将公式(1)代入公式(2)的到的,由于后面太多随机数相乘,其结果可以近似为0,即该阶段在当前猎物周围小范围搜索。

2.2阶段2

迭代次数在[iter_{max}/3,iter_{max}*2/3]内。
  该阶段,种群被均分为二组,第一组的猎物的位置更新公式如下:


  公式(4)用于计算步长,其中Rl为levy分布随机数,公式(5)用于计算新位置,其中R为[0,1]内均匀随机数,公式(6)是我将公式(4)代入公式(5)的到的,levy随机数的结果大多接近0,少数会取到较大的值,其结果仍可以近似为0,即组个体在当前猎物周围小范围搜索。
  第二组猎物按照如下公式更新位置:


  其中Rb为标准正态分布随机数。
  公式(9)的图像如下

  由于取值范围为[iter_{max}/3,iter_{max}*2/3],CF的取值可以近似看做从0.7631线性递减至0.2311。此时仍可以判定公式(8)加号右侧部分近似为0,该组的猎物将在其对于的捕食者周围运动。

2.3阶段3

迭代次数在[iter_{max}*2/3,iter_{max}]内。
  该阶段猎物的位置更新公式如下:


  该阶段与阶段2中第二组的区别仅是将其正态分布随机数改为了levy分布随机数。可以看出三个阶段的更新公式其实相差不大,就是将随机数在正态分布和levy分布中挑一个,搜寻目标在猎物和捕食者中选一个,一共四种组合。

2.4 更新捕食者位置

捕食者对比自己的猎物,如果猎物的位置更好,则更新自己的位置到猎物的位置。

2.5 鱼类聚集效应更新猎物位置

根据鱼类的聚集效应(Fish Aggregating Devices (FADs) effects),再次更新猎物的位置,其具体更新公式如下:


  其中FADs取值为0.2,R,r为[0,1]内均匀分布的随机数,U为{0,1}内随机数,r1,r2为群体中的随机个体编号。
  从公式中可以看出,该步骤第一个公式对猎物位置的部分维度进行了“重置“,不过这样有较大可能会超出边界,第二个公式类似于差分进化的变异公式,让猎物随机移动。

2.6 流程图


  可以看出海洋捕食者算法步骤还是挺复杂的,它的捕食者包含有贪心步骤,但是猎物没有贪心步骤。这一点也和粒子群相似,可以认为它是粒子群的子类,猎物的步长相当于粒子群的速度,但是没有向粒子群一样利用全局最优,这也是一个可以改进的地方。

3. 实验

适应度函数f(x_1,x_2)=(x_1-a)^2+(x_2-b)^2,a=b=90
实验一

问题维度(维度) 2
总群数量(种群数) 20
最大迭代次数 50
取值范围 (-100,100)
实验次数 10
FADs 0.2

  从图中可以看出海洋捕食者算法的初期收敛速度并不是很快,而后期则是会迅速收敛,。通过前面对公式的分析,该算法在局部搜索方面有着较强的性能,从图中也可以得到相似的结论。

最优值 1.2331494391841926E-8
最差值 4.9616331058766115E-5
平均值 6.0291224699999E-6

从结果来看,算法效果还是很不错的,虽然是个缝合怪,但该有的步骤和性能都不差。

实验二:分别对阶段1、2、3,进行测试,即整个算法中只有阶段1、阶段2或者阶段3中的一个。
  阶段1图像如下:

阶段1图像

  阶段二图像如下:


阶段2图像

  阶段三图像如下:


阶段3图像

  可以看出阶段一类似于全局搜索,种群较为分散,阶段二有全局搜索也有局部搜索,效果不错,阶段三局部搜索能力较强,几乎只用该阶段就搜索到了最优。
  其实按照作者的设计,阶段一应该全局搜索,阶段二全局搜索和局部搜索,阶段三局部搜索和跳出局部最优。
  不过我总觉得步长公式中随机数用的太多,下面,小小改动一下。


实验三:修改公式如下:
  公式(1)(4)(7)(10)四个步长公式中,移出了括号内的随机数,公式(8)(11)中将捕食者的位置修改为了全局最好的位置。


  图像看上去好了不少,在最后群体能够收敛到一起,集中在正解附近,结果应该不差

最优值 1.4459518186224542E-11
最差值 8.470000479932672E-7
平均值 1.393247456998955E-7

结果相对于原算法好了一丢丢。不过这个测试函数十分的简单,这个修改只能说是在该函数上较好,总体的性能还需要更全面的测试函数来测试。总的来说海洋捕食者算法的性能不错,但能够改进的地方也不少。

4.总结

海洋捕食者算法是根据海洋中的捕食者搜捕猎物的行为而提出的优化算法。该算法分为三个阶段,第一阶段,进行全局搜索,第二阶段,融合全局搜索和局部搜索,第三阶段,进行局部搜索和levy飞行跳出局部最优。该算法就算一个缝合怪,可以从中看出不少算法的特点。
参考文献
Faramarzi A , Heidarinejad M , Mirjalili S , et al. Marine Predators Algorithm: A Nature-inspired Metaheuristic[J]. Expert Systems with Applications, 2020, 152:113377.
提取码:7wfn
以下指标纯属个人yy,仅供参考

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

目录
上一篇 优化算法笔记(二十九)秃鹰算法
下一篇 优化算法笔记(三十一)阿基米德算法

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

推荐阅读更多精彩内容