火鹰优化(FHO)算法(含MATLAB代码)

先做一个声明:文章是由我的个人公众号中的推送直接复制粘贴而来,因此对智能优化算法感兴趣的朋友,可关注我的个人公众号:启发式算法讨论。我会不定期在公众号里分享不同的智能优化算法,经典的,或者是近几年提出的新型智能优化算法,并附MATLAB代码。

火鹰优化(Fire Hawk Optimizer, FHO)算法是一种基于黑鸢(Milvus migrans)、啸栗鸢(Haliastur sphenurus)和褐隼(Falco berigora)的觅食行为提出的进化算法。严格来说,应该叫火鹰优化器。作者为了检验性能,总共使用了十种不同的经典和新的元启发式算法作为对比算法。实验结果表明,FHO算法比文献中比较的算法具有更好的性能。它的原始参考文献如下:

Azizi M, Talatahari S, Gandomi A H. Fire Hawk Optimizer: A novel metaheuristic algorithm[J]. Artificial Intelligence Review, 2023, 56(1): 287-363.

01
灵感来源

研究人员在研究澳洲野火扑灭的过程中发现,有一些老鹰会叼着着火的木棒往没有着火的地方扔。老鹰通过叼着一只燃烧的火棍,寻找猎物的踪迹,一旦发现猎物就抛下口中燃烧的火棍,使那些昆虫和小型哺乳动物用于藏匿的树林和草丛着火,当猎物纷纷出逃时,老鹰就会乘机捕猎。

不仅如此,当老鹰经过火场时,还会将没有燃烧的木棍丢进去,点燃后就捡走,到别处进行“趁火打劫”,这一过程如同奥运会传递圣火一般,但其实它们是在纵火,当地原住民称它们为“火鹰”。火鹰不仅仅是指一种鸟类,而是三种常见的鹰类:黑鸢、啸栗鸢、褐隼。这三种鹰类体积不大,体长只有40-50厘米,翼展110厘米左右,体重约在500-800克之间。一旦火鹰们纵火成功,有些会去捕捉慌乱出逃的猎物,然而更聪明的火鹰会在附近静静地等待,一旦火被扑灭,它们就会奋勇冲刺,享受这盛大的“烤肉自助餐”。这便是火鹰的觅食行为。图1显示了这些鸟在火周围的行为。

图1 火鹰在火场周围的行为

因此,FHO算法正是通过模拟火鹰的这种捕食方式而得到的。

02
算法设计

与往期推送一样,目前我还不会在公众号里编辑数学公式。因此,这部分内容在Word文档里先写好,然后做成图片,最后导入。

03
计算流程

FHO算法的计算流程如图2所示:

图2 FHO算法计算流程

04
实验仿真

对FHO算法的性能进行简单的测试。将FHO算法用于函数寻优,它的MATLAB程序严格按照原始参考文献进行编写。此外,种群规模N为50,最大迭代次数T取1000,Benchmark函数采用的是CEC2005测试集。

这里以CEC2005测试集中的单峰函数Sphere (f1)和多峰函数Ackley (f10)为例,展示FHO算法在30维环境下的收敛效果,对比算法选择了灰狼优化(GWO)、鲸鱼优化(WOA)、人工电场算法(AEFA)、蜣螂优化(DBO)和金豺优化(GJO)。如图3所示,这里就不再做进一步的分析了。

(a) f1

(b) f10

图3 6种进化算法的收敛曲线对比

其次,我们来检验一下FHO算法对全局勘探和局部开发的平衡能力。如图4所示,是FHO算法在CEC2005测试函数f7上的勘探和开发占比曲线。可以看到,FHO算法能在勘探和开发之间达到动态平衡,且Exploitation占比最后达到了90%。

图4 FHO在CEC2005 f7上的勘探和开发百分占比变化曲线

05
MATLAB代码

FHO算法的MATLAB代码可通过复制下方链接进入获得。代码严格按照原始参考文献编写,附有详细注释。

(公众号里有,关注公众号:启发式算法讨论)

FHO算法的勘探(Exploration)和开发(Exploitation)占比分析:

(公众号里有,关注公众号:启发式算法讨论)

猜你喜欢

转载自blog.csdn.net/jieyanping/article/details/131502491
今日推荐