蚁狮优化算法(ALO)

1.原理

ALO算法模拟了蚁狮在自然界中的捕猎机制。它们的名字来源于它们独特的狩猎行为和它们最喜欢的猎物。蚁狮沿着圆形的路径移动,用它巨大的下颚在沙子中挖出一个锥形的坑。在挖好陷阱后,藏在圆锥形的底部(作为坐等捕食者),等待被困在坑中的昆虫(最好是蚂蚁),如图1所示。实施了蚂蚁随机行走、设置陷阱、用陷阱诱捕蚂蚁、捕捉猎物和重建陷阱等主要步骤。

图1 蚁狮的捕猎行为

2.算法步骤

2.1觅食的蚂蚁随机行走

图2 蚂蚁的随机行走 (3次)

由于蚂蚁在觅食过程中是随机移动的,所以选择随机行走来模拟蚂蚁的移动,如下所示:

X(t)=[0,cumsum(2r(t_{1})-1),cumsum2(r(t_{2})-1),...,cumsum2(r(t_{n})-1)]

(2.1)

其中 cumsum 计算累积和, n 为最大迭代次数, t 为随机行走(迭代,步长), r(t) 以等可能的概率取0,或1.

  • 为了保持搜索空间内的随机行走,对它们进行归一化:

X_{i}^{t}=\frac{(X(t)-a_{i})*(d_{i}-c_{i}^{t})}{b_{i}-a_{i}}+c_{i} (2.7)

其中 a_{i} 表示第 i 个变量(维度)随机行走的最小值; b_{i} 表示第 i 个变量(维度)随机行走的最大值; c_{i}^{t} 表示第 t 迭代第 i 个变量的最小值(下界); d _{i}^{t} 表示第 t 迭代第 i 个变量的最大值(上界);

2.2设置陷阱

为了模拟蚁狮的捕猎能力,采用了轮盘赌的方法。如图3所示,假设蚂蚁只被困在一只选定的蚁狮中。蚁群算法在优化过程中需要利用轮盘赌轮操作器根据蚁群的适应度选择蚁群。这一机制为更适合的蚁狮捕食蚂蚁提供了更高的机会。

图3 蚂蚁在蚁狮陷阱里的随机行走

蚂蚁的随机行走受到蚁狮陷阱的影响。为了对这一假设进行数学建模,我们提出以下方程:

c_{i}^{t}=Antlion_{j}^{t}+c^{t},rand>0.5 (2.8)

d_{i}^{t}=Antlion_{j}^{t}+d^{t},rand>0.5 (2.9)

其中c^{t} 表示第 t 迭代所有变量的最小值(下界); d^{t} 表示第 t 迭代所有变量的最大值(上界); Antlion_{j}^{t} 表示第 t 次迭代第 j 个蚁狮的位置。

2.3用陷阱诱捕蚂蚁

蚁狮能够根据自身的适应性建造陷阱,而蚂蚁则需要随机移动。然而,当蚁狮发现陷阱里有一只蚂蚁时,它们会向坑中央喷射沙子。这种行为会从试图逃跑的被困蚂蚁身上滑下来。为了对这种行为进行数学建模,蚂蚁的随机行走超球半径自适应地减小。在这方面提出了以下公式:

c^{t}=\frac{c^{t}}{I} (2.10)

d^{t}=\frac{d^{t}}{I} (2.11)

其中 I=10^{w}*\frac{t}{T} , w 可以调整开发的精度水平。(w=2,t>0.1T,w=3,t>0.5T,w=4,t>0.75T,w=5,t>0.9T,w=6,t>0.95T)

2.4捕获猎物并重建洞穴

最后阶段是当一只蚂蚁到达坑底,被蚁狮的下巴夹住时。在这一阶段之后,蚁狮把蚂蚁拉到沙子里吃掉。为了模仿这一过程,假设当蚂蚁变得比相应的蚁狮更适合捕食时(进入沙地).然后,蚁狮需要更新自己的位置到被捕食蚂蚁的最新位置,以增加捕捉新猎物的机会。为此,提出如下公式:

Antlion_{j}^{t}=Ant_{i}^{t} ,如果f(Ant_{i}^{t})>f(Antlion_{j}^{t}) (2.12)

精英主义是进化算法的一个重要特征,它使进化算法能够保持在优化过程的任何阶段所获得的最优解。将每次迭代中得到的最佳蚁群保存为精英蚁群。因为精英是适应度最好的蚁狮,它能够在迭代过程中影响所有蚂蚁的移动。因此,每只蚂蚁同时通过轮盘赌轮和精英随机地围绕一个选定的蚁狮行走,如下所示:

Ant_{i}^{t} =\frac{R_{A}^{t}+R_{E}^{t}}{2} (2.13)

其中 R_{E}^{t} 是在精英(目前最好的蚁狮)周围随机游走, R_{A}^{t} 通过轮盘选择的蚁狮周围随机游走;

3.伪代码

图4 ALO算法伪代码

4.程序结果图

图5 平方求和结果图

参考资料:

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

发布于 2021-04-07 20:42