先做一个声明:文章是由我的个人公众号中的推送直接复制粘贴而来,因此对智能优化算法感兴趣的朋友,可关注我的个人公众号:启发式算法讨论。我会不定期在公众号里分享不同的智能优化算法,经典的,或者是近几年提出的新型智能优化算法,并附MATLAB代码。
非洲秃鹫优化算法(African Vultures Optimization Algorithm, AVOA)是Abdollahzadeh等人在2021年提出的一种新的元启发式算法,目前已经在许多实际工程项目中得到应用。AVOA模拟了非洲秃鹫的觅食和导航行为。为了评估AVOA的性能,在36个标准Benchmark函数上进行了测试,结果证明了所提出算法与几种先进算法相比的优越性。它的原始参考文献如下:
“Abdollahzadeh B, Gharehchopogh F S, Mirjalili S. African vultures optimization algorithm: A new nature-inspired metaheuristic algorithm for global optimization problems[J]. Computers & Industrial Engineering, 2021, 158: 107408.”
01
灵感来源
秃鹫是自然界猛禽中的一种,几乎没有天敌、主要以动物的腐烂尸体为食,被誉为“草原上的清洁工”。大多数秃鹫是秃顶的,头顶没有规则的羽毛,这种生物特征使得秃鹫在进食动物尸体时防止自身受到污染。另外,研究表明裸露的皮肤在调节体温方面起着至关重要的作用。如在寒冷的天气里,秃鹫会把头浸入两翼的羽毛中,在炎热的天气则会把脖子和头露出来。非洲大陆生活着数量众多的秃鹫,但大多数有着相似的生活习性,常单独活动,偶尔也结成小群,彼此遭遇时常为食物而战。
生活在非洲的秃鹫类型大致可以分为三种,每一种都有一些独特的身体特征。第一种是身体格外强壮的秃鹫,这种秃鹫往往更容易获得食物、如肉垂秃鹫;第二种是比第一种类型稍弱的秃鹫,如非洲白背秃鹫;最后一种就是力量和身形比前两种类型都弱的秃鹫,如巾冠兀鷲。在自然环境中,秃鹫不断地进行长途飞行搜索食物,秃鹫最常见的飞行方式是旋转飞行。在觅食过程中,有时几种秃鹫会移动到同一个食物源而互相冲突,饥饿中的虚弱秃鹫会变得更具有攻击性,通过包围攻击强壮秃鷲,消耗他们的体力,使之变得疲劳来增加自己获取食物的机会。群智能算法一般分为勘探和开发两个阶段,与非洲秃鹫的长途飞行寻找食物和在食物附近盘旋、冲突等生物活动相联系。
Abdollahzadeh等人通过数学模型模拟了秃鹫种群行为,把种群个体位置移动转化为目标求解变量各维度分量的最优化过程,从而提出了AVOA。
02
算法设计
AVOA的种群初始化方法与大多数智能优化算法相同,即随机产生搜索空间中的若干候选解作为初始个体,具体可看往期的推送,这里不再赘述。
AVOA 是通过对非洲秃鹰的觅食行为和生活习惯进行模拟和建模而提出的。在AVOA中,非洲秃鹰的生活习惯和觅食行为主要包括了以下几个阶段。
第一阶段:确定群体最优
第二阶段:计算种群饥饿率
第三阶段:勘探阶段
第四阶段:开发阶段
03
计算流程
AVOA的计算流程图如图1所示:
图1 AVOA流程图
04
实验仿真
这里对AVOA的性能进行简单的测试。将AVOA用于函数寻优,算法的MATLAB程序是严格按照它的原始参考文献进行编码的。此外,种群规模取的50,Benchmark函数分别采用了CEC2005测试集、CEC2013测试集、CEC2014测试集、CEC2017测试集和CEC2020优化函数测试集。这里对仿真结果进行简要展示,就不再进一步做分析了。
首先,我们来检验一下AVOA对全局勘探和局部开发的平衡能力。如图2所示,是AVOA在CEC2005测试函数f7上的勘探和开发占比曲线。
图2 AVOA在CEC2005 f7上的勘探和开发百分占比变化曲线
其次,以CEC2005测试集中的单峰函数f2和多峰函数f10为例,展示AVOA在30维环境下的收敛效果,如图3所示。对比算法选择:灰狼优化(GWO)、鲸鱼优化(WOA)、哈里斯鹰优化(HHO)、蜣螂优化(DBO)和金豺优化(GJO)。
(a) f2
(b) f10
图3 六种进化算法在CEC2005两个测试函数上的收敛曲线
再次,以CEC2013测试集中的单峰函数F1为例,展示AVOA在30维环境下的收敛效果,如图4所示。对比算法选择:灰狼优化(GWO)、鲸鱼优化(WOA)、浣熊优化(COA)、沙猫群优化(SCSO)和火鹰优化(FHO)。
(注意是画的误差曲线)
图4 六种进化算法在CEC2013 F1上的误差收敛曲线
接着,以CEC2014测试集中的单峰函数F3为例,展示AVOA在30维环境下的收敛效果,如图5所示。对比算法选择:灰狼优化(GWO)、鲸鱼优化(WOA)、浣熊优化(COA)、沙猫群优化(SCSO)和火鹰优化(FHO)。(注意是画的误差曲线)
图5 六种进化算法在CEC2014 F3上的误差收敛曲线
再然后,以CEC2017测试集中的混合函数F14为例,展示AVOA在30维环境下的收敛效果,如图6所示。对比算法选择:灰狼优化(GWO)、鲸鱼优化(WOA)、哈里斯鹰优化(HHO)、蜣螂优化(DBO)、浣熊优化(COA)。(注意是画的误差曲线)
图6 六种进化算法在CEC2017 F14上的误差收敛曲线
最后,以CEC2020优化函数测试集中的混合函数F5为例,展示AVOA算法在10维环境下的收敛效果,如图7所示。对比算法选择:灰狼优化(GWO)、鲸鱼优化(WOA)、哈里斯鹰优化(HHO)、蜣螂优化(DBO)、浣熊优化(COA)。(注意是画的误差曲线)
图7 六种进化算法在CEC2020 F5上的误差收敛曲线
进一步,可将AVOA应用于复杂工程约束优化问题,例如之前推送的两期算法应用内容:
算法应用:基于DBO算法的工程优化设计(第1期)(含MATLAB代码)
算法应用:工程优化设计(第2期)(含MATLAB代码)
这里以压力容器设计(Pressure vessel design)问题为例,展示求解效果。在该设计问题中,目标函数为压力容器的总成本,包括材料、成形和焊接成本。如图8所示,压力容器的两端都有盖子封顶,头部一端的封盖为半球状。该优化问题包括4个决策变量:容器壁的厚度(Ts)、半球头部的厚度(Th)、内半径(R)、和圆柱截面的长度(L)。
图8 压力容器设计
其数学模型如下:
将AVOA应用于压力容器设计(Pressure vessel design)问题,采用往期推送“算法应用:基于DBO算法的工程优化设计(第1期)(含MATLAB代码)”中介绍的惩罚函数处理约束条件。对比算法选择:灰狼优化(GWO)、哈里斯鹰优化(HHO)、沙猫群优化(SCSO)、蜣螂优化(DBO)、浣熊优化(COA)。收敛曲线如图9所示。
图9 六种进化算法在压力容器设计问题上的目标函数收敛曲线
05
MATLAB代码
公众号里有,关注:启发式算法讨论