目录
蚁狮群优化算法介绍:
总结概括:
ALO算法设计:
1.觅食的蚂蚁随机行走
2.设置陷阱
3.设置陷阱诱捕蚂蚁
4.捕获猎物重建洞穴
多目标MOALO算法
两种蚁狮算法求解效果
(1) ALO
(2) MOALO
Matlab代码分享:
蚁狮群优化算法介绍:
蚁狮群优化算法主要模拟了蚁狮捕猎蚂蚁的狩猎机制进而实现最优值的获取。这种虫子之所以叫作蚁狮,是源于它们独特的狩猎行为和捕食对象。
本文实现了两种蚁狮群优化算法,分别为:
- 传统蚁狮群优化(ALO)
- 多目标蚁狮群优化(MOALO)
在自然界中,蚁狮于捕猎前会在土中利用其巨大的下颚挖出一个漏斗状的陷阱,并藏在陷阱底部等待蚂蚁的到来。挖好陷阱后,蚁狮就会苟在底部静静等待猎物的到来:
从图中可以看出圆锥状陷阱的边缘坡度非常大,蚂蚁很容易不慎落入陷阱的底部。当蚁狮意识到这是猎物时就会发起攻击,但是猎物会疯狂逃跑,此时蚁狮会向斜坡上喷吐沙子以使猎物再次滑落至底部。完成捕食后蚁狮会修整陷阱以等待下一个猎物的到来。
值得一提的是,蚁狮的行为还与陷阱大小、猎物大小、月亮形状三者的相关性有关。原文中提到,当蚁狮非常饥饿或当晚月亮是满月时,它就会把陷阱挖的更大。因此,作者在ALO中引入蚂蚁的随机游走实现全局搜索,利用蚁狮的陷阱对蚂蚁进行干扰,通过自适应机制对蚂蚁的位置进行修正,最后基于轮盘赌策略和精英策略来保证种群多样性及算法整体寻优性能。
总结概括:
蚁狮群优化(antlionoptimizeralgorithm,ALO)算法是由澳大利亚学者SeyedaliMirjalili在2015年提出的一种新型优化算法。ALO算法是受蚁狮捕捉蚂蚁的过程的启发:蚁狮事先在地下做好陷阱等待蚂蚁,蚂蚁被蚁狮捉到后,蚁狮会继续挖陷阱等待下一只蚂蚁。
ALO算法是通过仿照蚁狮捕捉蚂蚁的过程来解决未知空间搜索实际问题:蚂蚁通过随意行为对解进行搜索,通过学习优秀蚁狮以确保取得全局最优值。蚂蚁和蚁狮的位置表示优化问题的解,蚁狮通过不断捕食蚂蚁寻找问题的最优解。因其良好的自适应边界收缩机制和精英主义优势,所以具有收敛速度快、全局搜索能力良好、需要调节的参数少的特点,与遗传算法和粒子群算法相比,ALO算法具有更好的优化效果。
ALO算法设计:
1.觅食的蚂蚁随机行走
2.设置陷阱
为了模拟蚁狮的捕猎能力,采用了轮盘赌的方法。如图所示,假设蚂蚁只被困在一只选定的蚁狮中。蚁群算法在优化过程中需要利用轮盘赌轮操作器根据蚁群的适应度选择蚁群。这一机制为更适合的蚁狮捕食蚂蚁提供了更高的机会。
3.设置陷阱诱捕蚂蚁
蚁狮能够根据自身的适应性建造陷阱,而蚂蚁则需要随机移动。然而,当蚁狮发现陷阱里有一只蚂蚁时,它们会向坑中央喷射沙子。这种行为会从试图逃跑的被困蚂蚁身上滑下来。为了对这种行为进行数学建模,蚂蚁的随机行走超球半径自适应地减小。在这方面提出了以下公式:
4.捕获猎物重建洞穴
最后阶段是当一只蚂蚁到达坑底,被蚁狮的下巴夹住时。在这一阶段之后,蚁狮把蚂蚁拉到沙子里吃掉。为了模仿这一过程,假设当蚂蚁变得比相应的蚁狮更适合捕食时(进入沙地).然后,蚁狮需要更新自己的位置到被捕食蚂蚁的最新位置,以增加捕捉新猎物的机会。为此,提出如下公式:
多目标MOALO算法
多目标蚁狮算法(Multi-objectiveantlionoptimizer,MOALO)是用基本蚁狮算法求解多目标问题。在单目标优化问题中,只需选择适应度函数最优的个体。而在多目标优化中,需要计算多个适应度函数的值,并通过Pareto支配关系选择最优解,放入外部存档中。用MOALO求解多目标优化模型的伪代码如下:
初始化种群(蚂蚁和蚁狮)
根据式(1)和式(2)计算个体适应度值根据支配关系,选择当前非支配解作为精英蚁狮
while不满足终止条件
for每只蚂蚁个体
从外部存档中随机选择一个蚁狮
从外部存档中用轮盘赌法选择精英
根据式(12)计算c和d
根据式(9)确定蚂蚁个体的随机位置,并根据式(10)对其进行正则化处理
根据式(14)更新蚂蚁的位置
Endfor
计算每个蚂蚁的适应度函数值
更新外部存档
If外部存档饱和
根据式(16)用轮盘赌法删除最密集的解,并更新存档
End
Endwhile
精英蚁狮的位置和对应适应度值,作为最优解(集)