1.背景
2015年,S Mirjalili 等人受到自然界蚁狮捕食行为启发,提出了蚁狮优化算法(Ant lion optimizer,ALO)。
2.算法原理
2.1算法思想
ALO模拟自然界中蚁狮捕食蚂蚁的狩猎行为,包含蚂蚁、蚁狮和精英蚁狮3种角色,分别代表着问题的可行解、局部最优解和全局最优解。
2.2算法过程
蚂蚁随机游走:
蚂蚁的随机游走规则:
X
(
t
)
=
[
0
,
c
u
m
s
u
m
(
2
r
(
t
1
)
−
1
)
,
c
u
m
s
u
m
(
2
r
(
t
2
)
−
1
)
,
c
u
m
s
u
m
(
2
r
(
t
n
)
−
1
)
]
(1)
X(t)=[0,cumsum(2r(t_1)-1),cumsum(2r(t_2)-1),cumsum(2r(t_n)-1)] \tag{1}
X(t)=[0,cumsum(2r(t1)−1),cumsum(2r(t2)−1),cumsum(2r(tn)−1)](1)
其中,cumsum 表示蚂蚁累计游走的步长,t 表示当前的迭代次数。
为了变量越界对随机游走进行归一化来进行位置更新:
X
i
′
=
(
X
i
′
−
a
i
)
×
(
d
i
′
−
c
i
′
)
b
i
−
a
i
+
c
i
′
(2)
X_{i}^{\prime}=\frac{(X_{i}^{\prime}-a_{i})\times(d_{i}^{\prime}-c_{i}^{\prime})}{b_{i}-a_{i}}+c_{i}^{\prime}\tag{2}
Xi′=bi−ai(Xi′−ai)×(di′−ci′)+ci′(2)
蚂蚁进入陷阱:
蚂蚁的随机游走受到蚁狮陷阱范围的影响:
{
c
i
t
=
A
n
t
l
i
o
n
j
t
+
c
t
d
i
t
=
A
n
t
l
i
o
n
j
t
+
d
r
(3)
\left.\left\{\begin{array}{c}c_i^t=Antlion_j^t+c^t\\d_i^t=Antlion_j^t+d^r\end{array}\right.\right.\tag{3}
{cit=Antlionjt+ctdit=Antlionjt+dr(3)
蚂蚁滑向蚁狮:
自适应地减小陷阱范围来限制蚂蚁的随机游走:
{
c
′
=
c
′
I
d
′
=
d
′
I
(4)
\left.\left\{\begin{array}{ll}c'=\dfrac{c'}{I}\\d'=\dfrac{d'}{I}\end{array}\right.\right.\tag{4}
⎩
⎨
⎧c′=Ic′d′=Id′(4)
捕捉猎物并重铸陷阱:
捕猎的最后阶段是蚁狮吃掉蚂蚁然后会移动到被捕猎蚂蚁的最新位置,以增加捕获新猎物的可能性,蚁狮的位置更新:
A
n
t
l
i
o
n
j
t
=
A
n
t
i
t
,
i
f
f
(
A
n
t
i
t
)
>
f
(
A
n
t
l
i
o
n
j
t
)
(5)
Antlion_{j}^{t}=Ant_{i}^{t},iff(Ant_{i}^{t})>f\left(Antlion_{j}^{t}\right)\tag{5}
Antlionjt=Antit,iff(Antit)>f(Antlionjt)(5)
精英策略:
精英蚁狮指的是算法每次迭代过程中所产生的最佳蚁狮,蚂蚁在游走过程中也会受到精英蚁狮的影响:
A
n
t
i
′
=
R
A
′
+
R
E
′
2
(6)
Ant_{i}^{\prime}=\frac{R_{A}^{\prime}+R_{E}^{\prime}}{2}\tag{6}
Anti′=2RA′+RE′(6)
伪代码:
3.结果展示
4.参考文献
[1] Mirjalili S. The ant lion optimizer[J]. Advances in engineering software, 2015, 83: 80-98.