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

文章目录

  • 智能优化算法:蚁狮优化算法-附代码
    • 1.算法原理
      • 1.1 蚂蚁的随机游走
      • 1.2蚁狮对蚂蚁随机游走的影响
      • 1.3自适应机制
      • 1.4 精英策略
    • 2.算法步骤
    • 3.算法结果
    • 4.参考文献
    • 5.Matlab代码
    • 6.python代码

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

1.算法原理

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

1.1 蚂蚁的随机游走

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

由于可行域存在边界,不能直接用式(1)更新蚂蚁的位置。为确保蚂蚁在可行域范围内随机游走,需根据式(3)对其进行归一化
Xit=(Xit−ai)∗(dit−cit)(bi−ai)+cit(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} Xit​=(bi​−ai​)(Xit​−ai​)∗(dit​−cit​)​+ci​t(3)
式中: aia_{i}ai​ 为第$ i$ 维变量随机游走的最小值; bib_{i}bi​为第iii 维变量随机游走的最大值;ctic_{t}^{i}cti​为第iii维变量再第ttt次迭代的最小值;ditd_{i}^{t}dit​为第 iii 维变量在第$ t$ 次迭代最大值。

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

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

1.3自适应机制

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

I={1,t≤0.1T10v∗tT,t>0.1T(6)I=\begin{cases}1,t\leq0.1T\\10^{v}*\frac{t}{T},t>0.1T \end{cases}\tag{6} I={1,t≤0.1T10v∗Tt​,t>0.1T​(6)

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

1.4 精英策略

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

2.算法步骤

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

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

(3)通过轮盘赌为每只蚂蚁选择一只蚁狮,根据蚁狮位置更新 ct,dt,cit,ditc_{t},d_{t},c_{i}^{t},d_{i}^{t}ct​,dt​,cit​,dit​ 的值,并使该蚂蚁按照式(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代码

改进算法matlab代码

名称 说明或者参考文献
优选策略的自适应蚁狮优化算法(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.
算法相关应用
名称 说明或者参考文献
基于蚁狮算法的无线传感器网(WSN)覆盖优化 https://blog.csdn.net/u011835903/article/details/109262039(原理一样,只是优化算法是蚁狮算法)

6.python代码

改进算法python代码

名称 说明或者参考文献
优选策略的自适应蚁狮优化算法(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.

智能优化算法:蚁狮优化算法-附代码相关推荐

  1. 智能优化算法:闪电搜索算法-附代码

    智能优化算法:闪电搜索算法-附代码 文章目录 智能优化算法:闪电搜索算法-附代码 1.算法原理 1.1 过渡放电体 1.2 空间放电体 1.3 引导放电体 2.算法结果 3.参考文献 4.Matlab ...

  2. 智能优化算法:布谷鸟搜索算法-附代码

    智能优化算法:布谷鸟搜索算法-附代码 文章目录 智能优化算法:布谷鸟搜索算法-附代码 1.算法原理 2.算法结果 3.参考文献 4.Matlab代码 摘要:谷鸟搜索算法(cuckoo search , ...

  3. 基于蝙蝠算法优化BP神经网络的数据分类算法及其MATLAB实现-附代码

    基于蝙蝠算法优化BP神经网络的数据分类算法及其MATLAB实现-附代码 文章目录 基于蝙蝠算法优化BP神经网络的数据分类算法及其MATLAB实现-附代码 1 蝙蝠算法与BP神经网络分类模型 1.1 蝙 ...

  4. 基于灰狼算法优化支持向量机的数据分类算法及其MATLAB实现-附代码

    基于灰狼算法优化支持向量机的数据分类算法及其MATLAB实现-附代码 文章目录 基于灰狼算法优化支持向量机的数据分类算法及其MATLAB实现-附代码 1 GWO-SVM 模型 1.1 灰狼优化器GWO ...

  5. 相位 unwrap 与 wrap 算法详解(附代码)

    相位 unwrap 与 wrap 算法详解(附代码) 最近接手了一个项目,光通信方面的,我负责编写初测结果的数据处理算法,其中有一个算法叫做 unwrap 与 wrap,之前没有听说过.通过询问同事与 ...

  6. 数据挖掘领域十大经典算法之—SVM算法(超详细附代码)

    相关文章: 数据挖掘领域十大经典算法之-C4.5算法(超详细附代码) 数据挖掘领域十大经典算法之-K-Means算法(超详细附代码) 数据挖掘领域十大经典算法之-Apriori算法 数据挖掘领域十大经 ...

  7. 二分查找算法详解(附代码)

    二分查找算法详解(附代码) 注: 现有一个升序 不重复的数组 查询target是否在此数组中并返回序号 使用条件 使用二分算法的两个条件: 有序 不重复 混淆处 二分算法两种方式容易弄混淆的地方:就是 ...

  8. 数据挖掘领域十大经典算法之—AdaBoost算法(超详细附代码)

    相关文章: 数据挖掘领域十大经典算法之-C4.5算法(超详细附代码) 数据挖掘领域十大经典算法之-K-Means算法(超详细附代码) 数据挖掘领域十大经典算法之-SVM算法(超详细附代码) 数据挖掘领 ...

  9. 智能优化算法-蚁狮优化器Ant Lion Optimizer(附Matlab代码)

    引言 蚁狮优化器(Ant Lion Optimizer,ALO)模拟了自然界蚁狮的捕猎机制.实施了蚁群随机行走.设置陷阱.设陷阱.捕捉猎物.重建陷阱等5个主要捕猎步骤.于2015年发表在Seyedal ...

  10. 麻雀优化算法_多种智能优化算法应用案例分享-附代码

    1.智能优化算法应用:基于灰狼算法的Otsu图像多阈值分割 智能优化算法应用:基于灰狼算法的Otsu图像多阈值分割-附代码_Jack旭的博客-CSDN博客​blog.csdn.net 2.智能优化算法 ...

最新文章

  1. SpringBoot2.x 不反回空值属性
  2. JavaScript停止冒泡和阻止浏览器默认行为
  3. 十分钟看懂时序数据库(III)- 压缩
  4. java 组合代码_java实现Composite组合模式的实例代码
  5. 使用 python 操作 redis
  6. HDU - 5934
  7. 新手程序员不知道的小技巧!
  8. echart 三维可视化地图_Echarts百度可视化图形库
  9. openresty模板html页面,单页面部署去Html缓存 nginx/openresty
  10. adb命令启动某个action_Android adb shell启动应用程序的方法
  11. 时钟分频中的计数值问题
  12. JSTL核心标签库详解
  13. TransformerEncoder
  14. Netty4.0学习笔记系列之三:构建简单的http服务
  15. Win10 重装系统备忘
  16. java电子小词典课程设计,java课程设计---英汉电子词典
  17. 电动汽车仿真系列-基于动态规划的混合动力汽车能量管理
  18. 最新行政区划代码省市区数据库-行政区域查询API
  19. 2000亿元贴息贷款,医疗系统上云,解锁医护协同新玩法
  20. 中电资讯-银保监会提示防范“元宇宙”风险

热门文章

  1. Kali Linux 2017 安装BloodHound后无法启动neo4j解决方案
  2. oracle添加unique,Oracle unique约束的创建步骤
  3. JavaScript的prototype是什么
  4. 【RPG Maker MZ】独立游戏制作日志①
  5. 【金融统计】R语言绘制价格-收益率曲线;SAS模拟债券价格的时间轨迹
  6. 使用RenderScript-v8 报错的问题 couldn't find librsjni.so
  7. 信息安全毕业设计题目汇总 网络安全毕设选题
  8. 湖Tohopekaliga佛罗里达赶上Lunker低音
  9. PWA系列 - Cache API 的设计与实现
  10. mysql for mac10.10配置_MySQL 5.7.10详细安装教程 (for mac10.10)