一、理论基础
野狗优化算法(Dingo Optimization Algorithm, DOA)模仿澳大利亚野狗的社交行为。DOA算法的灵感来源于野狗的狩猎策略,即迫害攻击、分组策略和食腐行为。为了提高该方法的整体效率和性能,在DOA中制定了三种与四条规则相关联的搜索策略,这些策略和规则在搜索空间的强化(开发)和多样化(探索)之间提供了一种精确的平衡。
野狗种群随机初始化如式(1)所示:
x
→
i
=
l
b
i
+
r
a
n
d
i
(
u
b
i
−
l
b
i
)
(1)
\overrightarrow x_i=lb_i+rand_i(ub_i-lb_i)\tag{1}
xi=lbi+randi(ubi−lbi)(1)其中,
l
b
i
lb_i
lbi和
u
b
i
ub_i
ubi分别表示个体
x
→
i
\overrightarrow x_i
xi的下界和上界,
r
a
n
d
i
rand_i
randi是
[
0
,
1
]
[0,1]
[0,1]之间均匀生成的随机数。
1、策略一:集体攻击
捕食者通常使用高度智能的狩猎技术,野狗通常单独捕食小猎物,如兔子,但当捕食大猎物,如袋鼠时,它们会成群结队。野狗能找到猎物的位置并将其包围,其行为如式(1)所示:
x
→
i
(
t
+
1
)
=
β
1
∑
k
=
1
n
a
[
φ
k
(
t
)
→
−
x
→
i
(
t
)
]
n
a
−
x
∗
→
(
t
)
(2)
\overrightarrow x_i(t+1)=\beta_1\sum_{k=1}^{na}\frac{[\overrightarrow{\varphi_k(t)}-\overrightarrow x_i(t)]}{na}-\overrightarrow{x_*}(t)\tag{2}
xi(t+1)=β1k=1∑nana[φk(t)−xi(t)]−x∗(t)(2)其中,
x
→
i
(
t
+
1
)
\overrightarrow x_i(t+1)
xi(t+1)是搜索代理的新位置(表示野狗的移动);
n
a
na
na是在
[
2
,
SizePop
/
2
]
[2,\text{SizePop}/2]
[2,SizePop/2]的逆序中生成的随机整数,其中
SizePop
\text{SizePop}
SizePop是野狗种群的规模;
φ
k
(
t
)
→
\overrightarrow{\varphi_k(t)}
φk(t)是搜索代理(将攻击的野狗)的子集,其中
φ
⊂
X
\varphi\subset X
φ⊂X,
X
X
X是随机生成的野狗种群;
x
→
i
(
t
)
\overrightarrow x_i(t)
xi(t)是当前搜索代理;
x
∗
→
(
t
)
\overrightarrow{x_*}(t)
x∗(t)是上一次迭代中发现的最佳搜索代理;
β
1
\beta_1
β1是在
[
−
2
,
2
]
[-2,2]
[−2,2]内均匀生成的随机数,它是一个比例因子,可改变野狗轨迹的大小。野狗集体攻击行为伪代码如算法1所示。
2、策略二:迫害
野狗通常捕猎小猎物,直到单独捕获为止。式(2)模拟了这种行为:
x
→
i
(
t
+
1
)
=
x
→
∗
(
t
)
+
β
1
∗
e
β
2
∗
(
x
→
r
1
(
t
)
−
x
→
i
(
t
)
)
(3)
\overrightarrow x_i(t+1)=\overrightarrow x_*(t)+\beta_1*e^{\beta_2}*\left(\overrightarrow x_{r_1}(t)-\overrightarrow x_i(t)\right)\tag{3}
xi(t+1)=x∗(t)+β1∗eβ2∗(xr1(t)−xi(t))(3)其中,
x
→
t
+
1
\overrightarrow x_{t+1}
xt+1表示野狗的运动,
x
→
i
(
t
)
\overrightarrow x_i(t)
xi(t)是当前搜索代理,
x
→
∗
(
t
)
\overrightarrow x_*(t)
x∗(t)是上一次迭代中找到的最佳搜索代理,
β
1
\beta_1
β1的值与式(2)中的值相同,
β
2
\beta_2
β2是在
[
−
1
,
1
]
[−1,1]
[−1,1]区间内均匀生成的随机数,
r
1
r_1
r1是在从1到最大搜索代理(野狗)大小的区间内生成的随机数,
x
→
r
1
(
t
)
\overrightarrow x_{r_1}(t)
xr1(t)是随机选择的第
r
1
r_1
r1个搜索代理,其中
i
≠
r
1
i\neq r1
i=r1。
式(3)用于表示野狗在捕猎猎物时的轨迹。
3、策略三:食腐
食腐动物的行为被定义为当野狗在它们的栖息地随意行走时找到腐肉吃的行为。式(4)用于模拟这种行为:
x
→
i
(
t
+
1
)
=
1
2
[
e
β
2
∗
x
→
r
1
(
t
)
−
(
−
1
)
σ
∗
x
→
i
(
t
)
]
(4)
\overrightarrow x_i(t+1)=\frac12\left[e^{\beta_2}*\overrightarrow x_{r_1}(t)-(-1)^\sigma*\overrightarrow x_i(t)\right]\tag{4}
xi(t+1)=21[eβ2∗xr1(t)−(−1)σ∗xi(t)](4)其中,
x
→
t
+
1
\overrightarrow x_{t+1}
xt+1表示野狗的移动,
β
2
\beta_2
β2的值与式(3)中的值相同,
r
1
r_1
r1是在1到最大搜索代理(野狗种群)大小的间隔内生成的随机数,
x
→
r
1
(
t
)
\overrightarrow x_{r_1}(t)
xr1(t)是随机选择的第
r
1
r_1
r1个搜索代理,
x
→
i
(
t
)
\overrightarrow x_i(t)
xi(t)是当前搜索代理,其中
i
≠
r
1
i≠r_1
i=r1,
σ
\sigma
σ是算法2随机生成的二进制数,
σ
∈
{
0
,
1
}
\sigma\in\{0,1\}
σ∈{0,1}。
4、策略四:野狗的存活率
澳大利亚野狗面临灭绝的危险,主要是因为非法狩猎。在DOA中,野狗的存活率值由式(5)给出:
survival
(
i
)
=
fitness
max
−
fitness
(
i
)
fitness
max
−
fitness
min
(5)
\text{survival}(i)=\frac{\text{fitness}_{\max}-\text{fitness}(i)}{\text{fitness}_{\max}-\text{fitness}_{\min}}\tag{5}
survival(i)=fitnessmax−fitnessminfitnessmax−fitness(i)(5)其中,
fitness
max
\text{fitness}_{\max}
fitnessmax和
fitness
min
\text{fitness}_{\min}
fitnessmin分别是当前一代中最差和最佳的适应度值,而
fitness
(
i
)
\text{fitness}(i)
fitness(i)是第
i
i
i个搜索代理的当前适应度值。式(5)中的生存向量包含
[
0
,
1
]
[0,1]
[0,1]区间内的归一化适应度。式(6)通过算法3应用于低生存率,例如,生存率值等于或小于0.3。
x
→
i
(
t
)
=
x
→
∗
(
t
)
+
1
2
[
x
→
r
1
(
t
)
−
(
−
1
)
σ
∗
x
→
r
2
(
t
)
]
(6)
\overrightarrow x_i(t)=\overrightarrow x_*(t)+\frac12\left[\overrightarrow x_{r_1}(t)-(-1)^\sigma*\overrightarrow x_{r_2}(t)\right]\tag{6}
xi(t)=x∗(t)+21[xr1(t)−(−1)σ∗xr2(t)](6)其中,
x
→
i
(
t
)
\overrightarrow x_i(t)
xi(t)是将被更新的生存率较低的搜索代理,
r
1
r_1
r1和
r
2
r_2
r2是在从1到搜索代理(野狗种群)的最大大小的区间内生成的随机数,
r
1
≠
r
2
r_1≠r_2
r1=r2,
x
→
r
1
(
t
)
\overrightarrow x_{r_1}(t)
xr1(t)和
x
→
r
2
(
t
)
\overrightarrow x_{r_2}(t)
xr2(t)是随机选择的第
r
1
r_1
r1、
r
2
r_2
r2个搜索代理,
x
→
∗
(
t
)
\overrightarrow x_{*}(t)
x∗(t)是上一次迭代中找到的最佳搜索代理,
σ
\sigma
σ是算法2中随机生成的二进制数,
σ
∈
{
0
,
1
}
\sigma\in\{0,1\}
σ∈{0,1}。注意,式(6)是向量的加法或减法,由
σ
\sigma
σ的随机值定义。
5、DOA伪代码
DOA的伪代码在算法4中给出,而整体流程如图1所示。

二、实验仿真与分析
将DOA与DE、WOA、GSA和GWO进行对比,设置种群规模为30,最大迭代次数为500,每个算法独立运行30次,以文献[1]中F4、F7(单峰函数/30维)、F10、F11(多峰函数/30维)、F22、F23(固定维度多峰函数/4维、4维)为例,结果显示如下:
函数:F4
DE:最差值: 14.808, 最优值: 8.9991, 平均值: 11.235, 标准差: 1.3666, 秩和检验: 3.0199e-11
WOA:最差值: 87.1303, 最优值: 0.0053179, 平均值: 50.5426, 标准差: 28.3815, 秩和检验: 3.0199e-11
GSA:最差值: 10.3283, 最优值: 3.357, 平均值: 6.6449, 标准差: 1.6678, 秩和检验: 3.0199e-11
GWO:最差值: 2.6592e-06, 最优值: 5.9891e-08, 平均值: 7.0639e-07, 标准差: 6.8762e-07, 秩和检验: 3.0199e-11
DOA:最差值: 8.1677e-35, 最优值: 1.9639e-250, 平均值: 2.7226e-36, 标准差: 1.4912e-35, 秩和检验: 1
函数:F7
DE:最差值: 0.16163, 最优值: 0.069493, 平均值: 0.12353, 标准差: 0.026683, 秩和检验: 3.0199e-11
WOA:最差值: 0.0069934, 最优值: 7.6901e-05, 平均值: 0.0020844, 标准差: 0.0018921, 秩和检验: 2.3768e-07
GSA:最差值: 9.084, 最优值: 0.046226, 平均值: 0.87199, 标准差: 1.796, 秩和检验: 3.0199e-11
GWO:最差值: 0.0038269, 最优值: 0.00053595, 平均值: 0.0022598, 标准差: 0.00090528, 秩和检验: 8.891e-10
DOA:最差值: 0.0062926, 最优值: 5.1544e-06, 平均值: 0.00040989, 标准差: 0.0011297, 秩和检验: 1
函数:F10
DE:最差值: 0.0074158, 最优值: 0.0032897, 平均值: 0.0045297, 标准差: 0.001097, 秩和检验: 3.1507e-12
WOA:最差值: 7.9936e-15, 最优值: 8.8818e-16, 平均值: 4.0856e-15, 标准差: 2.5294e-15, 秩和检验: 2.1919e-06
GSA:最差值: 1.1551, 最优值: 7.4163e-09, 平均值: 0.038505, 标准差: 0.2109, 秩和检验: 3.1507e-12
GWO:最差值: 1.3234e-13, 最优值: 7.5495e-14, 平均值: 1.0261e-13, 标准差: 1.3791e-14, 秩和检验: 2.8541e-12
DOA:最差值: 4.4409e-15, 最优值: 8.8818e-16, 平均值: 1.2434e-15, 标准差: 1.084e-15, 秩和检验: 1
函数:F11
DE:最差值: 0.033245, 最优值: 0.00051667, 平均值: 0.0045107, 标准差: 0.0072221, 秩和检验: 1.2118e-12
WOA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
GSA:最差值: 48.7711, 最优值: 16.3188, 平均值: 29.3579, 标准差: 8.1948, 秩和检验: 1.2118e-12
GWO:最差值: 0.025852, 最优值: 0, 平均值: 0.0036119, 标准差: 0.007229, 秩和检验: 0.0055843
DOA:最差值: 0, 最优值: 0, 平均值: 0, 标准差: 0, 秩和检验: NaN
函数:F22
DE:最差值: -9.9787, 最优值: -10.4029, 平均值: -10.3877, 标准差: 0.077343, 秩和检验: 0.017624
WOA:最差值: -1.8326, 最优值: -10.4016, 平均值: -6.7664, 标准差: 3.3648, 秩和检验: 0.092936
GSA:最差值: -2.7519, 最优值: -10.4029, 平均值: -7.8446, 标准差: 2.8129, 秩和检验: 0.21341
GWO:最差值: -10.3991, 最优值: -10.4025, 平均值: -10.4013, 标准差: 0.00084789, 秩和检验: 0.076906
DOA:最差值: -2.6881, 最优值: -10.4029, 平均值: -7.1985, 标准差: 3.0894, 秩和检验: 1
函数:F23
DE:最差值: -10.5327, 最优值: -10.5364, 平均值: -10.5363, 标准差: 0.00067011, 秩和检验: 0.97561
WOA:最差值: -1.6706, 最优值: -10.5352, 平均值: -7.3224, 标准差: 3.3841, 秩和检验: 0.00018236
GSA:最差值: -5.1285, 最优值: -10.5364, 平均值: -8.0127, 标准差: 2.7441, 秩和检验: 0.12518
GWO:最差值: -10.5327, 最优值: -10.5364, 平均值: -10.5346, 标准差: 0.0010471, 秩和检验: 0.026113
DOA:最差值: -2.4217, 最优值: -10.5364, 平均值: -8.7653, 标准差: 3.0498, 秩和检验: 1
结果表明,DOA与其余4种算法相比,具有更快的收敛速度、更高的收敛精度以及更强的稳定性。
三、参考文献
[1] Hernán Peraza-Vázquez, Adrián F. Peña-Delgado, Gustavo Echavarría-Castillo, et al. A Bio-Inspired Method for Engineering Design Optimization Inspired by Dingoes Hunting Strategies[J]. Mathematical Problems in Engineering, 2021, 2021: 9107547.