智能优化算法:蚁狮优化算法

智能优化算法:蚁狮优化算法-附代码

@[toc]
摘要:蚁狮优化(Ant Lion Optimizer,ALO)算法是Mirjalili于2015提出的一种新型元启发式群智能算法[1]。由于引入了随机游走、轮盘赌策略及精英策略,使得 ALO 算法成为一种种群多样、寻优性能强、调节参数少、易于实现的搜索技术。

1.算法原理

ALO 算法核心思想是模拟蚁狮捕猎蚂蚁的狩猎机制以实现全局寻优。蚁狮在捕猎前会在在沙质土中利用其巨大的下颚挖出一个漏斗状的陷阱,并藏在陷阱底部等待猎物到来。一旦随机游走的蚂蚁落入陷阱时,蚁狮迅速将其捕食,随后重新修缮陷阱等待下一次捕猎。ALO 算法通过数值模拟实现蚂蚁和蚁狮之间的相互作用将问题优化:引入蚂蚁的随机游走实现全局搜索,通过轮盘赌策略和精英策略保证种群的多样性和算法的寻优性能。蚁狮相当于优化问题的解,通过猎捕高适应度的蚂蚁实现对近似最优解的更新和保存。

1.1 蚂蚁的随机游走

蚂蚁在自然界中随机游走寻找食物的过程可以看作各搜索代理搜寻可行域的过程。随机游走的过程在数学上可以表示为:
X(t)=[0,cussum(2r(t_{1})-1),...,cussum(2r(t_{n})-1)]\tag{1}
式中:X(t)为蚂蚁随机游走的步数集;cumsum 为计算累加和;t 为随机游走的步数(本文取最大迭代次数);r(t)为一个随机函数,定义为
r(t)=\begin{cases} 1,rand>0.5\\0,rand\leq0.5\end{cases} \tag{2}
式中:rand为[0,1]的随机数。

由于可行域存在边界,不能直接用式(1)更新蚂蚁的位置。为确保蚂蚁在可行域范围内随机游走,需根据式(3)对其进行归一化
X_{i}^{t}=\frac {(X_{i}^{t}-a_{i})*(d_{i}^{t}-c_{i}^{t})}{(b_{i}-a_{i})}+c_{i}t\tag{3}
式中: a_{i} 为第i 维变量随机游走的最小值; b_{i}为第i 维变量随机游走的最大值;c_{t}^{i}为第i维变量再第t次迭代的最小值;d_{i}^{t}为第 i 维变量在第t 次迭代最大值。

1.2蚁狮对蚂蚁随机游走的影响

蚁狮制造的陷阱会影响蚂蚁随机游走的路线,为对此假设进行数学建模,提出
\begin{cases} c_{i}^{t}=Al_{i}^{t} + C^{t}\\d_{i}^{t}=Al_{j}^{t}-d^{t}\end{cases}\tag{4}
式中: c^{t}为所有变量在第t 次迭代的最小值; d^{t}为所有变量在第 t 次迭代的最大值; Al_{j}^{t} 为被选定的第j 只蚁狮在第 t 次迭代的位置。

1.3自适应机制

通过轮盘赌策略选择某只蚂蚁具体被哪只蚁狮捕食,每只蚂蚁只能被一只蚁狮捕食,而适应度越高的蚁狮捕获蚂蚁的概率越大。另外,蚂蚁一旦落入蚁狮制造的陷阱,蚁狮就会向陷阱边缘抛沙以防止蚂蚁逃脱。此时,蚂蚁随机游走的范围将急剧缩小。通过下列方程模拟这种现象
c^{t}=\frac {c^{t}}{I},d^{t}=\frac {d^{t}}{I}\tag{5}

I=\begin{cases}1,t\leq0.1T\\10^{v}*\frac{t}{T},t>0.1T \end{cases}\tag{6}

式中: I 为比例系数;T为最大迭代次数; v 为一个随着迭代次数增大而变化的数。当蚂蚁的适应度值比蚁狮小时,则认为蚁狮将其捕获,此时蚁狮会根据蚂蚁的位置来更新位置
Al_{j}^{t}=Ant_{i}^{t},if\quad f(Ant_{i}^{t})<f(Al_{j}^{t}) \tag{7}
式中: Ant_{i}^{t} 为第i只蚂蚁在第t次迭代的位置; f 为适应度函数。

1.4 精英策略

每次迭代后,选择适应度最好的蚁狮作为精英蚁狮。第t只蚂蚁在第t +1次迭代的位置由式(8)确定
Ant_{i}^{t+1}=\frac {R_{A}^{t}(l)+R_{E}^{t}(l)}{2}\tag{8}
式中: R_{A}^{t}(l)为蚂蚁在一只由轮盘赌在第 t 次迭代选择到的蚁狮周围随机游走第 l 步产生的值; R_{E}^{t}(l)为蚂蚁在第t代的精英蚁狮周围随机游走第l步产生的值。l为蚂蚁随机游走步数内的任何值。

2.算法步骤

(1)数据初始化。确定蚂蚁和蚁狮的数量以及变量维数,在可行域内随机初始化它们的位置,并计算相应的适应度值。

(2)确定精英蚁狮。选择初始化后蚁狮种群中适应度最好的作为精英蚁狮。

(3)通过轮盘赌为每只蚂蚁选择一只蚁狮,根据蚁狮位置更新 c_{t},d_{t},c_{i}^{t},d_{i}^{t} 的值,并使该蚂蚁按照式(1)、式(3)在蚁狮及精英蚁狮附近随机游走,最后按式(8)取平均值作为蚂蚁的位置。

(4) 每次迭代后重新计算蚂蚁和蚁狮适应度值,根据蚂蚁的位置和适应度更新蚁狮位置,适应度最好的位置为新精英蚁狮的位置。

(5)判断是否到达最大迭代次数,若到达则输出结果并结束迭代,否则重复步骤 (3)

3.算法结果

在这里插入图片描述

4.参考文献

[1]Seyedali Mirjalili. The Ant Lion Optimizer[J]. Advances in Engineering Software,2015,83.

[2]陈承滨,余岭,潘楚东,陈泽鹏.基于蚁狮优化算法与迹稀疏正则化的结构损伤识别[J].振动与冲击,2019,38(16):71-76+99.

5.Matlab代码

https://mianbaoduo.com/o/bread/Z5iUk5c=

文献复现:优选策略的自适应蚁狮优化算法(PSALO)
[1]刘景森,霍宇,李煜.优选策略的自适应蚁狮优化算法[J].模式识别与人工智能,2020,33(02):121-132.

文献复现:基于柯西变异的蚁狮优化算法(CALO)
[1]于建芳,刘升,韩斐斐,肖子雅.基于柯西变异的蚁狮优化算法[J].微电子学与计算机,2019,36(06):45-49+54.

文献复现:融合莱维飞行与黄金正弦的蚁狮优化算法(LEALO)
[1]于建芳,刘升,王俊杰,鲁晓艺.融合莱维飞行与黄金正弦的蚁狮优化算法[J].计算机应用研究,2020,37(08):2349-2353.

文献复现:具有随机分形自适应搜索策略的蚁狮优化算法(SFSALO)
[1]赵克新,黄长强,王渊.具有随机分形自适应搜索策略的蚁狮优化算法[J].火力与指挥控制,2019,44(02):41-45+49.

文献复现:精英反向学习带扰动因子的混沌蚁狮算法(EOPCALO)
[1]王茜,何庆,林杰,杨荣莹.精英反向学习带扰动因子的混沌蚁狮算法[J].智能计算机与应用,2020,10(08):51-57.

文献复现:具有自适应边界与最优引导的莱维飞行蚁狮优化算法(ABLALO)
[1]王若安,周越文,韩博,李剑峰,刘强.具有自适应边界与最优引导的莱维飞行蚁狮优化算法[J].微电子学与计算机,2018,35(09):20-25+31.

文献复现:具有 Levy 变异和精英自适应竞争机制的蚁狮优化算法(LEALO)
[1]景坤雷,赵小国,张新雨,刘丁.具有Levy变异和精英自适应竞争机制的蚁狮优化算法[J].智能系统学报,2018,13(02):236-242.

6.python代码

https://mianbaoduo.com/o/bread/YZaXmp5p

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容