目录

1. 原文

2. 算法灵感来源

3. 数学模型

3.1 蚂蚁的随机游走

3.2 困在蚁狮的坑里

3.3 构建陷阱

3.4 将蚂蚁滑向蚁狮

3.5 捕捉猎物并重建坑

3.6 精英化

4. ALO算法

5. 代码下载

6. 代码运行效果


1. 原文

《The Ant Lion Optimizer》
传送门:http://dx.doi.org/10.1016/j.advengsoft.2015.01.010

第一次精读英文文献,翻译不是特别准确,还请见谅!部分描述性语言有所修改,背景类陈述句有所删减。

2. 算法灵感来源

蚁狮(Antlions)的生命周期包括两个主要阶段:幼虫和成虫,总寿命可能长达 3 年,主要发生在幼虫阶段中(成年仅 3-5 周)。蚁狮在茧中经历变态成为成年。它们大多在幼虫中捕食,成年期是为了繁殖。

蚁狮幼虫沿着圆形路径移动并用其巨大的下颚将沙子扔出,从而在沙子中挖出一个锥形坑。挖完陷阱后,幼虫隐藏在锥体底部并等待昆虫(蚂蚁)被困在坑中 。锥体的边缘足够锋利,昆虫很容易掉到陷阱底部。一旦蚁狮意识到猎物在陷阱中,它就会试图抓住它。

然而,昆虫通常不会立即被捕获并试图逃离陷阱。在这种情况下,蚁狮会智能地将沙子扔到坑的边缘,以将猎物滑入坑底。当猎物被抓到下巴时,它会被拉到土壤下并被吃掉。吃完猎物后,蚁狮将猎物残骸扔到坑外,并修改坑进行下一次狩猎。

在蚁狮的生活方式中观察到的另一个有趣的行为是陷阱大小和两件事的相关性:饥饿程度和陷阱的形状。当蚁狮越饿或者陷阱变得更加圆时,它们往往会挖出更大的陷阱。它们已经以这种方式进化和适应,以提高它们的生存机会。

锥形陷阱和蚁狮的狩猎行为

3. 数学模型

ALO 算法模拟陷阱中蚁狮和蚂蚁之间的相互作用。为了模拟这种相互作用,蚂蚁需要在搜索空间上移动,并且允许蚁狮猎杀它们并使用陷阱变得更有效。由于蚂蚁在寻找食物时在自然界中是随机移动的,因此选择随机游走来模拟蚂蚁的运动,如下式所示:

其中 是计算的累积和, 是最大迭代次数, 是一个随机函数,定义如下:

其中 表示随机游走的步长(本研究中的迭代), 是在 [0, 1] 区间内均匀分布生成的随机数。

在优化过程中,在以下矩阵中保存蚂蚁的位置:

其中  是保存每只蚂蚁位置的矩阵, 表示第 i 只蚂蚁的第 j 个变量(维度)的值,n 是蚂蚁的数量,d 是变量的数量。蚂蚁的位置是指特定解决方案的参数。 矩阵在优化过程中保存了所有蚂蚁的位置(所有解的变量)。

为了评估每只蚂蚁,在优化过程中使用了一个适应度(目标)函数,下面的矩阵存储了所有蚂蚁的适应度值:

其中 是保存每只蚂蚁适应度的矩阵, 表示第 i 只蚂蚁的第 j 维值,n 是蚂蚁的数量,f 是目标函数。

除了蚂蚁,我们假设蚁狮也隐藏在搜索空间的某个地方。为了保存它们的位置和适应度值,使用了以下矩阵:

其中 是保存每个蚁狮位置的矩阵, 表示第 i 个蚁狮的第 j 个维度的值,n 是蚁狮的数量,d 是变量(维度)的数量。

其中 是保存每个蚁狮适应度的矩阵, 表示第 i 个蚁狮的第 j 维值,n 是蚁狮的数量,f 是目标函数。

在优化期间,应满足以下条件:

  • 蚂蚁使用不同的随机游走在搜索空间中移动;
  • 随机游走应用于蚂蚁的所有维度;
  • 随机游走受到蚁狮陷阱的影响;
  • 蚁狮可以建造与其适应度成比例的坑(适应度越高,坑越大);
  • 坑较大的蚁狮捕获蚂蚁的概率较高;
  • 每只蚂蚁在每次迭代中都可以被一只精英蚁狮捕获;
  • 随机游走的范围自适应减小以模拟蚂蚁向蚁狮滑动;
  • 如果一只蚂蚁比蚁狮的适应度更优,这意味着它被蚁狮抓住并拉到沙子下;
  • 蚁狮会根据最新捕获的猎物重新定位,并建造一个坑以改善每次狩猎后捕获另一个猎物的变化。

3.1 蚂蚁的随机游走

随机游走都是基于公式 。 蚂蚁在优化的每一步都通过随机游走来更新它们的位置。但是,由于每个搜索空间都有一个边界(变量范围),因此,上式不能直接用于更新蚂蚁的位置。为了将随机游走保持在搜索空间内,使用以下等式对它们进行归一化(最小-最大归一化):

其中  是第 i 个变量的随机游走的最小值,  是第 i 个变量中的随机游走的最大值, 是在第 t 次迭代时第 i 个变量的最小值, 表示第 t 次迭代的第 i 个变量的最大值。上式应在每次迭代中应用,以保证在搜索空间内随机游走的发生。

(原文感觉有点问题,我的理解是:

其中  是第 i 个变量的随机游走的最小值,  是第 i 个变量中的随机游走的最大值, 是在第 t 次迭代时第 i 个变量的最小值, 表示第 t 次迭代的第 i 个变量的最大值。)

3.2 困在蚁狮的坑里

如上所述,蚂蚁的随机游走会受到蚁狮陷阱的影响。为了对这一假设进行数学建模,提出了以下等式:

其中 是第 t 次迭代时所有变量的最小值, 表示包含第 t 次迭代时所有变量的最大值的向量, 是第 i 次蚂蚁的所有变量中的最小值, 是第 i 只蚂蚁的所有变量,而  显示了在第 t 次迭代中选定的第 j 只蚂蚁的位置。上式表明蚂蚁在一个由向量​​ c 和 d 定义的超球面中随机行走,该超球面围绕一个选定的蚁狮。

3.3 构建陷阱

为了模拟蚁狮的狩猎能力,使用了轮盘选择法。假设蚂蚁只被困在一个选定的蚁狮中。 ALO 算法需要利用轮盘选择法在优化过程中根据它们的适应度来选择蚁狮。这种机制为适应度更高的蚁狮捕捉蚂蚁提供了很高的机会。

3.4 将蚂蚁滑向蚁狮

通过目前提出的机制,蚁狮能够建立与其适应度成比例的陷阱,并且蚂蚁需要随机移动。然而,一旦蚁狮意识到有一只蚂蚁在陷阱中,它们就会从坑的中心向外射沙。这种行为会滑下试图逃跑的被困蚂蚁。为了对这种行为进行数学建模,蚂蚁随机游走超球面的半径会自适应地减小。在这方面提出了以下公式:

其中 是一个比率, 是第 次迭代时所有变量的最小值, 表示包含第 次迭代时所有变量的最大值的向量。

(根据后面的代码修改了公式)

其中 是当前迭代次数, 是最大迭代次数, 是基于当前迭代定义的常数(当 > 0.1 = 2,当 > 0.5 = 3,当 > 0.75 = 4,当 > 0.9 = 5,当 > 0.95 = 6)。基本上,常数 可以调整开发的精度水平。

3.5 捕捉猎物并重建坑

狩猎的最后阶段是当一只蚂蚁到达坑底并被蚁狮的下巴抓住时。在这个阶段之后,蚁狮将蚂蚁拉入沙子并吃掉它的身体。为了模拟这个过程,假设当蚂蚁变得比其相应的蚁狮更健康(进入沙子内)时,就会发生捕捉猎物。然后要求蚁狮将其位置更新为被猎杀蚂蚁的最新位置,以增加其捕捉新猎物的机会。在这方面提出以下公式:

其中 表示当前迭代, 表示在第 次迭代时选择的第 个蚁狮的位置,而 表示在第 次迭代时第 只蚂蚁的位置。

3.6 精英化

精英化是进化算法的一个重要特征,它允许它们保持在优化过程的任何阶段获得的最佳解决方案。在这项研究中,迄今为止在每次迭代中获得的最佳蚁狮被保存并被视为精英。由于精英是最适体的蚁狮,它应该能够在迭代过程中影响所有蚂蚁的运动。因此,假设每只蚂蚁通过轮盘赌和精英同时随机围绕一只选定的蚂蚁走动,如下所示:

其中 是在第 t 次迭代时轮盘选择的蚁狮随机游走, 是第 t 次迭代时围绕精英的随机游走, 表示第 只蚂蚁在第 次迭代的位置。

4. ALO算法

使用前面小节中建议的运算符,现在可以定义 ALO 优化算法。 ALO 算法被定义为一个三元组函数,它近似于优化问题的全局最优值,如下所示:

其中 是生成随机初始解的函数, 操作由函数 提供的初始总体,当满足结束标准时, 返回 true。函数 定义如下:

其中 为蚂蚁位置矩阵, 包含蚁狮的位置, 包含蚂蚁对应的适应度, 包含蚁狮的适应度。

ALO算法的伪代码定义如下:

随机初始化第一代蚂蚁和蚁狮,计算蚂蚁和蚁狮的适应度,找到最好的蚁狮并假设它是精英(确定最优)。

当未满足结束条件时:对于每一只蚂蚁,使用轮盘赌选择一只蚁狮,根据公式 更新 ,使用公式 创建一个蚂蚁随机游走的位置信息,并用公式 对其进行归一化,再使用公式 更新蚂蚁的位置。

当满足结束条件时:计算所有蚂蚁的适应度,如果蚁狮对应的蚂蚁适应度变得更高,则用相应的蚂蚁替换该蚁狮,如果蚁狮变得比精英适应度更高,则更新精英。

从理论上讲,由于以下原因,所提出的 ALO 算法能够逼近优化问题的全局最优:

  • 蚁狮的随机选择和蚂蚁在它们周围的随机游走保证了对搜索空间的探索;
  • 蚁狮陷阱的自适应收缩边界保证了对搜索空间的利用;
  • 由于使用随机游走和轮盘赌,解决局部最优停滞的可能性很高;
  • ALO 是一种基于种群的算法,因此局部最优避免本质上很高;
  • 蚂蚁的运动强度在迭代过程中自适应降低,从而保证了 ALO 算法的收敛性;
  • 计算每只蚂蚁和每个维度的随机游走可以促进种群的多样性;
  • 蚁狮在优化过程中重新定位到最佳蚂蚁的位置,因此节省了搜索空间的有希望的区域;
  • Antlions 将蚂蚁引导到搜索空间的有希望的区域;
  • 保存每次迭代中最好的蚁狮,并与迄今为止获得的最好蚁狮(精英)进行比较;
  • ALO 算法需要调整的参数很少;
  • ALO 算法是一种无梯度算法,将问题视为黑盒。

5. 代码下载

附录 A.1-A.3 中提供了 ALO 算法的总体框架以及函数 A 和 B 的 Matlab 代码。在 ALO 算法中,蚁狮和蚂蚁矩阵使用函数 A 随机初始化。在每次迭代中,函数 B 更新每个蚂蚁相对于轮盘赌操作员和精英选择的蚁狮的位置。位置更新的边界首先定义为与当前迭代次数成正比。然后通过围绕选定的蚁狮和精英进行两次随机游走来完成更新位置。当所有蚂蚁随机行走时,通过适应度函数对其进行评估。如果任何蚂蚁变得比任何其他蚁狮适应度更高,它们的位置将被视为下一次迭代中蚁狮的新位置。将最佳蚁狮与优化期间发现的最佳蚁狮(精英)进行比较,并在必要时进行替换。这些步骤迭代,直到函数 C 返回 false。

ALO 算法和工具箱的源代码可以从 Seyedali Mirjalili 或 Seyedali Mirjalili - MATLAB Central 下载。

(原作者已经贴出代码了,大家不用再去其他地方买了,代码亲测可用)

6. 代码运行效果

At iteration 50 the elite fitness is 715.8968
At iteration 100 the elite fitness is 3.8956
At iteration 150 the elite fitness is 2.4028
At iteration 200 the elite fitness is 0.76184
At iteration 250 the elite fitness is 0.31627
At iteration 300 the elite fitness is 0.0020786
At iteration 350 the elite fitness is 0.0014784
At iteration 400 the elite fitness is 5.6721e-05
At iteration 450 the elite fitness is 8.357e-06
At iteration 500 the elite fitness is 3.1738e-09
The best solution obtained by ALO is : -7.714e-06  -3.909e-06  -1.949e-05  1.4619e-05 -3.3613e-05  2.7574e-05 -9.5583e-06 -2.0972e-05   7.966e-06 -4.5451e-06
The best optimal value of the objective funciton found by ALO is : 3.1738e-09 

【蚁狮算法】《The Ant Lion Optimizer》原文翻译(附源代码)相关推荐

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

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

  2. 蚁狮算法(Ant Lion Optimization)

    蚁狮算法简单的说就是一个不断迭代搜索最优解的过程. 2015年被人提出来的一种仿生优化算法,Ant Lion Optimizer即蚁狮优化算法,具有全局优化.调节参数少.收敛精度高.鲁棒性 好的优点, ...

  3. 蚁狮优化算法( Ant Lion Optimizer,ALO)-Matlab源码

    获取更多资讯,赶快关注上面的公众号吧! 文章目录 蚁狮优化器Ant Lion Optimizer (ALO) 启发 ALO算子 随机游走 困于蚁狮坑 构造陷阱 蚂蚁滑向蚁狮 捕捉猎物和重建坑 精英 A ...

  4. 【优化求解】基于精英反向学习带扰动因子的混沌蚁狮算法(EOPCALO)求解单目标优化问题附matlab代码

    1 简介 针对蚁狮算法易陷入局部最优.收敛速度慢的缺点,本文提出了基于精英反向学习带扰动因子的混沌蚁狮算法.该算法首先通过对蚂蚁的随机游走公式引入扰动因子,有效提高了寻优精度,避免算法陷入局部最优,有 ...

  5. 【SVM分类】基于自适应蚁狮算法优化SVM分类器实现胃肠道病变附matlab代码

    1 简介 2 部分代码 function RWs=RWalks(dim,max_iter,lb,ub,antlion,current_iter)

  6. 数据结构最短路径例题_数据结构算法实验8图的最短路径问题附源代码.doc

    浙江大学城市学院实验报告 课程名称 数据结构与算法 实验项目名称 实验八 图的最短路径问题 实验成绩 指导老师(签名 ) 日期 实验目的和要求 掌握图的最短路径概念. 理解并能实现求最短路径的DijK ...

  7. 【贪心算法之“买卖股票问题”——C++实现 (附源代码及运行截图)】

    目录 问题描述 示例: 分析 算法说明: 本题使用"贪心算法"的流程 代码 输入输出 程序流程图 复杂度分析: 问题描述 假设你有一个数组,其中第i 个元素是第i天给定股票的价格. ...

  8. 基本蚁狮算法在WSN节点部署中的应用

    文章目录 一.理论基础 1.WSN节点覆盖模型 2.基本蚁狮算法 二.仿真实验与分析 三.参考文献 一.理论基础 1.WSN节点覆盖模型 请参考这里. 2.基本蚁狮算法 蚁狮优化算法 ALO(Ant ...

  9. 【智能优化算法】基于蚁狮算法求解多目标问题附Matlab代码

    1 简介 蚁狮算法( ALO) 通过对随机解的探索,逐渐寻找近似最优解.与粒子群等优化算法不同的是,在 ALO 算法中有两类种群个体,即蚂蚁和蚁狮.ALO 算法的寻优过程模拟蚁狮捕食的六个基本步骤: ...

最新文章

  1. 开源工具之valgrind
  2. python 脚本_python脚本如何同时运行多个
  3. CodeForces - 1501C Going Home(鸽巢原理+暴力)
  4. 使用高性能Pipelines构建.NET通讯程序
  5. 从程序员到项目经理(十):程序员加油站 --要执着但不要固执
  6. ios 替换数组中元素_leetcode169 数组中的主要元素
  7. 用“归并”改进“快速排序”
  8. PAT乙级.1013.数素数
  9. 【转】Popclip的JSON格式化扩展
  10. Roberts算子详细代码(Python2.7)
  11. idea关闭自动更新
  12. 【总结】1334- JS中Object的keys是无序的吗
  13. word排版技巧:论文图表目录制作步骤
  14. 使用PHP实现图片上传
  15. freebsd和linux服务器,我看Linux与FreeBSD
  16. 属于拼多多的巴别塔正在构筑
  17. K8S的 CNI 详细原理以及解释
  18. windows 8 照片详解
  19. 重启计算机请等待当前程序完成卸载,Win7卸载软件提示“请等待当前程序完成卸载或更改”三种解决方法...
  20. IDEA插件离线下载安装

热门文章

  1. python硬件驱动_从零开始:手把手教你安装深度学习操作系统、驱动和各种python库!...
  2. 全球与中国洗地吸干机市场深度研究分析报告
  3. u盘容量变小了怎么恢复
  4. 独立后台2.0全新版本微信红包封面抽奖流量主小程序 裂变快 收益高
  5. Jenkins报Failed to remove prefix from file named
  6. SpringBoot 消息转换器 HttpMessageConverter
  7. 收音机磁棒天线4根接法_收音机磁性天线绕制方法
  8. Unity-3D相机跟随控制
  9. C++课程设计------通讯录管理系统
  10. 【转载】不再纠结:从程序员的角度解读苹果为什么坚持使用1G内存