1.背景
2022年,M Dehghani等人受到袋獾觅食行为启发,提出了袋獾优化算法(Tasmanian Devil Optimization,TDO)。
2.算法原理
2.1算法思想
TDO中袋獾任意选择吃腐肉或者打猎作为自己的进食方式。每次迭代时,袋獾选择这两
种方式中的一种进行更新,假设选择其中一种方法的概率为 50%。
2.2算法过程
食腐
每个袋獾所对应的腐肉位置,是以种群中其他袋獾在空间中的位置来假定的。第 i 个袋獾的腐肉位置为第 m 个袋獾的位置:
a
i
=
X
m
,
i
=
1
,
2
,
⋯
,
N
,
m
∈
{
1
,
2
,
⋯
,
N
,
∣
m
≠
i
}
(1)
a_i=X_m,i=1,2,\cdots,N,m\in\{1,2,\cdots,N,|m\neq i\}\tag{1}
ai=Xm,i=1,2,⋯,N,m∈{1,2,⋯,N,∣m=i}(1)
其中,ai 是第 i 个袋獾所选的腐肉。
在袋獾的运动中,如果腐肉的适应度值较好,袋獾就会靠近腐肉,反之会远离。在计算出袋獾的新位置后,比较适应度值判断新位置是否取代旧位置:
x
i
,
j
n
e
w
,
E
1
=
{
x
i
,
j
+
r
∗
(
a
i
,
j
−
C
∗
x
i
,
j
)
F
a
i
<
F
i
x
i
,
j
+
r
∗
(
x
i
,
j
−
a
i
,
j
)
otherwis
X
i
=
{
X
i
n
e
w
,
E
1
F
i
n
e
w
,
E
1
<
F
i
X
i
otherwise
(2)
\begin{aligned}x_{i,j}^{\mathrm{new},E1}&=\begin{cases}x_{i,j}+r^*&( a_{i,j}-C^* x_{i,j})&F_{a_i}<F_i\\\\x_{i,j}+r^*&( x_{i,j}-a_{i,j})&\text{otherwis}\end{cases}\\&X_{i}=\begin{cases}X_i^{\mathrm{new},E1}&F_i^{\mathrm{new},E1}<F_i\\\\X_i&\text{otherwise}\end{cases}\end{aligned}\tag{2}
xi,jnew,E1=⎩
⎨
⎧xi,j+r∗xi,j+r∗(ai,j−C∗xi,j)(xi,j−ai,j)Fai<FiotherwisXi=⎩
⎨
⎧Xinew,E1XiFinew,E1<Fiotherwise(2)
狩猎
袋獾的狩猎行为可分为两阶段:搜索与攻击,以及接近、跟踪与捕食。在第一阶段中,袋獾搜索空间,找到猎物并发起攻击。而第二阶段则包括接近猎物、跟踪并捕食。
b
i
=
X
m
,
i
=
1
,
2
,
⋯
,
N
,
m
∈
{
1
,
2
,
⋯
,
N
,
∣
m
≠
i
}
(3)
b_i=X_m,i=1,2,\cdots,N,m\in\{1,2,\cdots,N,|m\neq i\}\tag{3}
bi=Xm,i=1,2,⋯,N,m∈{1,2,⋯,N,∣m=i}(3)
在袋獾的运动中,如果腐肉的适应度值较好,袋獾就会靠近腐肉,反之会远离。在
x
i
,
j
n
e
w
,
E
2
=
{
x
i
,
j
+
r
∗
(
b
i
,
j
−
C
∗
x
i
,
j
)
F
b
i
<
F
i
x
i
,
j
+
r
∗
(
x
i
,
j
−
b
i
,
j
)
o
t
h
e
r
w
i
s
e
X
i
=
{
X
i
n
e
w
,
E
2
F
i
n
e
w
,
E
2
<
F
i
X
i
o
t
h
e
r
w
i
s
e
(4)
\begin{gathered}x_{i,j}^{\mathrm{new},E2}=\begin{cases}x_{i,j}+r^{*} ( b_{i,j}-C^{*} x_{i,j})&\quad F_{b_{i}}<F_{i}\\[2ex]x_{i,j}+r^{*} ( x_{i,j}-b_{i,j})&\quad\mathrm{otherwise}\end{cases}\\X_{i}=\begin{cases}X_i^{\mathrm{new},E2}&\quad F_i^{\mathrm{new},E2}<F_i\\[2ex]X_i&\quad\mathrm{otherwise}\end{cases}\end{gathered}\tag{4}
xi,jnew,E2=⎩
⎨
⎧xi,j+r∗(bi,j−C∗xi,j)xi,j+r∗(xi,j−bi,j)Fbi<FiotherwiseXi=⎩
⎨
⎧Xinew,E2XiFinew,E2<Fiotherwise(4)
第二阶段,以袋獾的位置为中心,领域的半径就是袋獾跟踪猎物的范围:
R
=
0.01
(
1
−
t
T
)
X
i
,
j
n
e
w
=
x
i
,
j
+
(
2
r
−
1
)
∗
R
∗
x
i
,
j
X
i
=
{
X
i
new
F
i
new
<
F
i
X
i
otherwise
(5)
\begin{gathered} R=0.01\left(\begin{array}{c}{1-\frac{t}{T}}\\\end{array}\right) \\ X_{i,j}^{\mathrm{new}}=x_{i,j}+(\begin{array}{c}2r-1)\end{array}* R^{*} x_{i,j} \\ X_i=\begin{cases}X_i^\text{new}&F_i^\text{new}<F_i\\[2ex]X_i&\text{otherwise}\end{cases} \end{gathered}\tag{5}
R=0.01(1−Tt)Xi,jnew=xi,j+(2r−1)∗R∗xi,jXi=⎩
⎨
⎧XinewXiFinew<Fiotherwise(5)
伪代码
3.结果展示
4.参考文献
[1] Dehghani M, Hubálovský Š, Trojovský P. Tasmanian devil optimization: a new bio-inspired optimization algorithm for solving optimization algorithm[J]. IEEE Access, 2022, 10: 19599-19620.