蜣螂优化(DBO)算法:
一、理论基础
蜣螂优化算法( Dung beetle optimizer, DBO),是2022年提出来的一种新型群智能优化算法,该算法原理简单,且易实现。
1.1 滚球行为
滚球分为两种情况:一种是当前路径没有障碍物的情况;另一种是当前路径有障碍物的情况。
1)当前路径没有障碍物的情况:光源强度会影响其行进路径,在滚动过程中没有障碍物的情况下其位置更新如下:
x
i
(
t
+
1
)
=
x
i
(
t
)
+
∂
k
x
i
(
t
−
1
)
+
b
x
{x_i}(t + 1) = {x_i}(t) + \partial k{x_i}(t - 1) + bx
xi(t+1)=xi(t)+∂kxi(t−1)+bx
x
=
∣
x
i
(
t
)
−
X
w
∣
x = \left| {{x_i}(t) - {X^w}} \right|
x=∣xi(t)−Xw∣
2)当前路径有障碍物的情况:
若在行进路线上有障碍物时,蜣螂需要进行跳舞行为来改变行进方向,采用正切函数来模仿跳舞行为,在确定了新的行进方向时,其位置更新如下:
x
i
(
t
+
1
)
=
x
i
(
t
)
+
tan
(
θ
)
∣
x
i
(
t
)
−
x
i
(
t
−
1
)
∣
{x_i}(t + 1) = {x_i}(t) + \tan (\theta )\left| {{x_i}(t) - {x_i}(t - 1)} \right|
xi(t+1)=xi(t)+tan(θ)∣xi(t)−xi(t−1)∣
1.2 繁殖行为
为了给后代提供安全的环境,雌性蜣螂会将食物移动到安全的地方进行产卵,采用边界选择策略来模仿雌性蜣螂产卵的区域,公式如下:
在确定产卵区域后,每只雌性蜣螂在每次迭代中只会产生一个卵,由公式(59)可知产卵区域是动态变化的,因此卵球的位置在迭代过程中也是动态变化的,公式如下:
B
i
(
t
+
1
)
=
X
b
+
b
1
[
B
i
(
t
)
−
L
b
∗
]
+
b
2
[
B
i
(
t
)
−
U
b
∗
]
{B_i}(t + 1) = {X^b} + {b_1}[{B_i}(t) - L{b^*}] + {b_2}[{B_i}(t) - U{b^*}]
Bi(t+1)=Xb+b1[Bi(t)−Lb∗]+b2[Bi(t)−Ub∗]
1.3 觅食行为
当卵球中的蜣螂发育到一定程度后,便会出来觅食,其最佳的觅食区域是动态更新的,公式如下:
在迭代过程中小蜣螂的位置更新如下:
y
i
(
t
+
1
)
=
y
i
(
t
)
+
C
1
[
y
i
(
t
)
−
L
b
b
]
+
C
2
[
y
i
(
t
)
−
U
b
b
]
{y_i}(t + 1) = {y_i}(t) + {C_1}[{y_i}(t) - L{b^b}] + {C_2}[{y_i}(t) - U{b^b}]
yi(t+1)=yi(t)+C1[yi(t)−Lbb]+C2[yi(t)−Ubb]
1.4 偷窃行为
在蜣螂种群中会有一些偷窃者,会偷取其他蜣螂的食物,
X
B
{X^B}
XB是最佳食物源,因此假设
X
B
{X^B}
XB附近是竞争食物的最佳地点,在迭代过程中偷窃者的位置更新如下:
z
i
(
t
+
1
)
=
X
B
+
s
g
(
∣
z
i
(
t
)
−
X
b
∣
+
∣
z
i
(
t
)
−
X
B
∣
)
{z_i}(t + 1) = {X^B} + sg(\left| {{z_i}(t) - {X^b}} \right| + \left| {{z_i}(t) - {X^B}} \right|)
zi(t+1)=XB+sg(
zi(t)−Xb
+
zi(t)−XB
)
1.5 种群划分
在实际应用蜣螂优化算法时,将种群内蜣螂按照一定比例划分为不同类型的蜣螂,根据不同类型的蜣螂选择合适的方式进行更新位置,最后输出最优位置和适应度值。
二、算法结果
三、参考文献
[1]Xue, J., Shen, B. Dung beetle optimizer: a new meta-heuristic algorithm for global optimization. J Supercomput (2022).