文章目录
一、理论基础
梯度优化算法(Gradient-based optimizer, GBO)受基于梯度的牛顿方法启发,主要使用两种算子:梯度搜索规则(Gradient search rule, GSR)和局部逃逸算子(Local escaping operator, LEO)以及一组向量来探索搜索空间。GSR采用基于梯度的方法来增强搜索趋势并加快收敛速度,从而在搜索空间中获得更好的位置;LEO使得提出的GBO能够避开局部最优解。
1、初始化
优化问题涉及一组决策变量、约束和目标函数。GBO的控制参数包括从探索到开法的过渡参数( α \alpha α)和概率。迭代次数和种群规模取决于问题的复杂性。在所提出的算法中,种群中的每个成员称为“向量”。因此,GBO在 D D D维搜索空间中包括 N N N个向量。因此,向量可以表示为: X n , d = [ X n , 1 , X n , 2 , ⋯ , X n , D ] , n = 1 , 2 , ⋯ , N d = 1 , 2 , ⋯ , D (1) X_{n,d}=[X_{n,1},X_{n,2},\cdots,X_{n,D}],\quad n=1,2,\cdots,N\,\,\,\,d=1,2,\cdots,D\tag{1} Xn,d=[Xn,1,Xn,2,⋯,Xn,D],n=1,2,⋯,Nd=1,2,⋯,D(1)通常,GBO的初始向量在 D D D维搜索空间中随机生成,可定义为: X n = X min + r a n d ( 0 , 1 ) × ( X max − X min ) (2) X_n=X_{\min}+rand(0,1)\times(X_{\max}-X_{\min})\tag{2} Xn=Xmin+rand(0,1)×(Xmax−Xmin)(2)其中, X min X_{\min} Xmin和 X max X_{\max} Xmax分别是变量 X X X的下界和上界, r a n d ( 0 , 1 ) rand(0,1) rand(0,1)是 [ 0 , 1 ] [0,1] [0,1]中的一个随机数。
2、梯度搜索规则(GSR)
提出的GSR有利于GBO考虑优化过程中的随机行为,提升探索能力和避免局部最优。移动方向(Direction of movement, DM)用于产生适合的局部搜索趋势,以提高GBO算法的收敛速度。基于GSR和DM,下列公式用于更新当前向量(
x
n
m
x_n^m
xnm)的位置:
X
1
n
m
=
x
n
m
−
r
a
n
d
n
×
ρ
1
×
2
Δ
x
×
x
n
m
(
x
w
o
r
s
t
−
x
b
e
s
t
+
ε
)
+
r
a
n
d
×
ρ
2
×
(
x
b
e
s
t
−
x
n
m
)
(3)
X1_n^m=x_n^m-randn\times\rho_1\times\frac{2\Delta x\times x_n^m}{(x_{worst}-x_{best}+\varepsilon)}+rand\times\rho_2\times(x_{best}-x_n^m)\tag{3}
X1nm=xnm−randn×ρ1×(xworst−xbest+ε)2Δx×xnm+rand×ρ2×(xbest−xnm)(3)其中:
ρ
1
=
2
×
r
a
n
d
×
α
−
α
(3-1)
\rho_1=2\times rand\times\alpha-\alpha\tag{3-1}
ρ1=2×rand×α−α(3-1)
ρ
2
=
2
×
r
a
n
d
×
α
−
α
(3-2)
\rho_2=2\times rand\times\alpha-\alpha\tag{3-2}
ρ2=2×rand×α−α(3-2)
α
=
∣
β
×
sin
(
3
π
2
+
sin
(
β
×
3
π
2
)
)
∣
(3-3)
\alpha=\left|\beta\times\sin\left(\frac{3\pi}{2}+\sin\left(\beta\times\frac{3\pi}{2}\right)\right)\right|\tag{3-3}
α=∣∣∣∣β×sin(23π+sin(β×23π))∣∣∣∣(3-3)
β
=
β
min
+
(
β
max
−
β
min
)
×
(
1
−
(
m
M
)
3
)
2
(3-4)
\beta=\beta_{\min}+(\beta_{\max}-\beta_{\min})\times\left(1-\left(\frac{m}{M}\right)^3\right)^2\tag{3-4}
β=βmin+(βmax−βmin)×(1−(Mm)3)2(3-4)其中,
β
min
\beta_{\min}
βmin和
β
max
\beta_{\max}
βmax分别为0.2和1.2,
m
m
m为当前迭代次数,
M
M
M为最大迭代次数,
r
a
n
d
n
randn
randn表示标准正态分布随机数,
ε
\varepsilon
ε是
[
0
,
0.1
]
[0,0.1]
[0,0.1]之间的很小的正数。图1描述了参数
α
\alpha
α随迭代次数的变化情况。
最大迭代次数为1000次。此参数可以在每次迭代时更改。它在迭代初期有一个较大的值以增强种群多样性,然后随着迭代次数的增加其值减小以加速收敛。生成的解决方案能够探索其相应最佳解决方案周围的搜索空间。其中,参数值随着迭代次数从550到750的增加而增加,这有助于所提出的算法跳出局部最优解,因为它可以增加种群的多样性以搜索到的最佳解。
Δ
x
=
r
a
n
d
(
1
:
N
)
×
∣
s
t
e
p
∣
(3-5)
\Delta x=rand(1:N)\times|step|\tag{3-5}
Δx=rand(1:N)×∣step∣(3-5)
s
t
e
p
=
(
x
b
e
s
t
−
x
r
1
m
)
+
δ
2
(3-6)
step=\frac{(x_{best}-x_{r_1}^m)+\delta}{2}\tag{3-6}
step=2(xbest−xr1m)+δ(3-6)
δ
=
2
×
r
a
n
d
×
(
∣
x
r
1
m
+
x
r
2
m
+
x
r
3
m
+
x
r
4
m
4
−
x
n
m
∣
)
(3-7)
\delta=2\times rand\times\left(\left|\frac{x_{r_1}^m+x_{r_2}^m+x_{r_3}^m+x_{r_4}^m}{4}-x_n^m\right|\right)\tag{3-7}
δ=2×rand×(∣∣∣∣4xr1m+xr2m+xr3m+xr4m−xnm∣∣∣∣)(3-7)其中,
r
a
n
d
(
1
:
N
)
rand(1:N)
rand(1:N)是
[
0
,
1
]
[0,1]
[0,1]间的
N
N
N维随机向量,
r
1
,
r
2
,
r
3
,
r
4
(
r
1
≠
r
2
≠
r
3
≠
r
4
)
r_1,r_2,r_3,r_4(r_1\neq r_2\neq r_3\neq r_4)
r1,r2,r3,r4(r1=r2=r3=r4)是从
[
1
,
N
]
[1,N]
[1,N]中随机选择的互不相等的整数,
s
t
e
p
step
step是由
x
b
e
s
t
x_{best}
xbest和
x
r
1
m
x_{r_1}^m
xr1m决定的步长。
通过用式(3)中的当前向量(
x
n
m
x_n^m
xnm)替换最佳向量(
x
b
e
s
t
x_{best}
xbest)的位置,可以生成如下新向量(
X
2
n
m
X2_n^m
X2nm):
X
2
n
m
=
x
b
e
s
t
−
r
a
n
d
n
×
ρ
1
×
2
Δ
x
×
x
n
m
(
y
p
n
m
−
y
q
n
m
+
ε
)
+
r
a
n
d
×
ρ
2
×
(
x
r
1
m
−
x
r
2
m
)
(4)
X2_n^m=x_{best}-randn\times\rho_1\times\frac{2\Delta x\times x_n^m}{(yp_n^m-yq_n^m+\varepsilon)}+rand\times\rho_2\times(x_{r_1}^m-x_{r_2}^m)\tag{4}
X2nm=xbest−randn×ρ1×(ypnm−yqnm+ε)2Δx×xnm+rand×ρ2×(xr1m−xr2m)(4)其中:
y
p
n
=
r
a
n
d
×
(
[
z
n
+
1
+
x
n
]
2
+
r
a
n
d
×
Δ
x
)
(4-1)
yp_n=rand\times\left(\frac{[z_{n+1}+x_n]}{2}+rand\times\Delta x\right)\tag{4-1}
ypn=rand×(2[zn+1+xn]+rand×Δx)(4-1)
y
q
n
=
r
a
n
d
×
(
[
z
n
+
1
+
x
n
]
2
−
r
a
n
d
×
Δ
x
)
(4-2)
yq_n=rand\times\left(\frac{[z_{n+1}+x_n]}{2}-rand\times\Delta x\right)\tag{4-2}
yqn=rand×(2[zn+1+xn]−rand×Δx)(4-2)基于位置
X
1
n
m
X1_n^m
X1nm、
X
2
n
m
X2_n^m
X2nm和当前位置
x
n
m
x_n^m
xnm,下一次迭代产生的新位置
x
n
m
+
1
x_n^{m+1}
xnm+1定义为:
x
n
m
+
1
=
r
a
×
(
r
b
×
X
1
n
m
+
(
1
−
r
b
)
×
X
2
n
m
)
+
(
1
−
r
a
)
×
X
3
n
m
(5)
x_n^{m+1}=r_a\times(r_b\times X1_n^m+(1-r_b)\times X2_n^m)+(1-r_a)\times X3_n^m\tag{5}
xnm+1=ra×(rb×X1nm+(1−rb)×X2nm)+(1−ra)×X3nm(5)
X
3
n
m
=
x
n
m
−
ρ
1
×
(
X
2
n
m
−
X
1
n
m
)
(5-1)
X3_n^m=x_n^m-\rho_1\times(X2_n^m-X1_n^m)\tag{5-1}
X3nm=xnm−ρ1×(X2nm−X1nm)(5-1)
3、局部逃逸操作(LEO)
LEO的引入提高了GBO算法求解复杂问题的效率。LEO通过使用多个解生成一个性能优越的解 X L E O m X_{LEO}^m XLEOm,其中包括最佳位置 X b e s t X_{best} Xbest、位置 X 1 n m X1_n^m X1nm和 X 2 n m X2_n^m X2nm、两个随机位置 X r 1 m X_{r_1}^m Xr1m和 X r 2 m X_{r_2}^m Xr2m以及一个新的随机位置 X k m X_k^m Xkm。新的位置 X L E O m X_{LEO}^m XLEOm由以下公式产生: X L E O m = { X n m + 1 + f 1 × ( u 1 × x b e s t − u 2 × x k m ) + f 2 × ρ 1 × ( u 3 × ( X 2 n m − X 1 n m ) + u 2 × ( x r 1 m − x r 2 m ) ) / 2 r a n d < p r , r a n d < 0.5 X b e s t + f 1 × ( u 1 × x b e s t − u 2 × x k m ) + f 2 × ρ 1 × ( u 3 × ( X 2 n m − X 1 n m ) + u 2 × ( x r 1 m − x r 2 m ) ) / 2 r a n d < p r , r a n d ≥ 0.5 (6) X_{LEO}^m=\begin{dcases}X_n^{m+1}+f_1\times(u_1×x_{best}-u_2×x_k^m)+f_2×\rho_1×(u_3×(X2_n^m-X1_n^m)+\\u_2×(x_{r_1}^m-x_{r_2}^m))/2\quad\quad\quad\quad\quad rand <pr,\,\,rand<0.5\\X_{best}+f_1\times(u_1×x_{best}-u_2×x_k^m)+f_2×\rho_1×(u_3×(X2_n^m-X1_n^m)+\\u_2×(x_{r_1}^m-x_{r_2}^m))/2\quad\quad\quad\quad\quad rand <pr,\,\,rand\geq0.5\end{dcases}\tag{6} XLEOm=⎩⎪⎪⎪⎨⎪⎪⎪⎧Xnm+1+f1×(u1×xbest−u2×xkm)+f2×ρ1×(u3×(X2nm−X1nm)+u2×(xr1m−xr2m))/2rand<pr,rand<0.5Xbest+f1×(u1×xbest−u2×xkm)+f2×ρ1×(u3×(X2nm−X1nm)+u2×(xr1m−xr2m))/2rand<pr,rand≥0.5(6) X n m + 1 = X L E O m (6-1) X_n^{m+1}=X_{LEO}^m\tag{6-1} Xnm+1=XLEOm(6-1)其中, f 1 f_1 f1为 [ − 1 , 1 ] [-1,1] [−1,1]的随机数, f 2 f_2 f2为标准正态分布随机数, p r p_r pr为一个概率值, u 1 , u 2 , u 3 u_1,u_2,u_3 u1,u2,u3为三个随机整数,其计算如下: u 1 = { 2 × r a n d μ 1 < 0.5 1 o t h e r w i s e (6-2) u_1=\begin{dcases}2\times rand\quad \mu_1<0.5\\1\quad\quad\quad\quad\,\,otherwise\end{dcases}\tag{6-2} u1={2×randμ1<0.51otherwise(6-2) u 2 = { r a n d μ 1 < 0.5 1 o t h e r w i s e (6-3) u_2=\begin{dcases}rand\quad \mu_1<0.5\\1\quad\quad \,\,\,\,otherwise\end{dcases}\tag{6-3} u2={randμ1<0.51otherwise(6-3) u 3 = { r a n d μ 1 < 0.5 1 o t h e r w i s e (6-4) u_3=\begin{dcases}rand\quad \mu_1<0.5\\1\quad\quad\,\,\,\, otherwise\end{dcases}\tag{6-4} u3={randμ1<0.51otherwise(6-4)其中, r a n d rand rand是 [ 0 , 1 ] [0,1] [0,1]间的随机数, μ 1 \mu_1 μ1是 [ 0 , 1 ] [0,1] [0,1]间的随机数。上述公式可简化为: u 1 = L 1 × 2 × r a n d + ( 1 − L 1 ) (6-5) u_1=L_1\times 2\times rand+(1-L_1)\tag{6-5} u1=L1×2×rand+(1−L1)(6-5) u 2 = L 1 × r a n d + ( 1 − L 1 ) (6-6) u_2=L_1\times rand+(1-L_1)\tag{6-6} u2=L1×rand+(1−L1)(6-6) u 3 = L 1 × r a n d + ( 1 − L 1 ) (6-7) u_3=L_1\times rand+(1-L_1)\tag{6-7} u3=L1×rand+(1−L1)(6-7)其中, L 1 L_1 L1是一个值为0或1的二进制参数,如果参数 μ 1 \mu_1 μ1小于0.5,则 L 1 L_1 L1的值为1,否则为0。为了确定式(6)中的 x k m x_k^m xkm,采用以下方案: x k m = { x r a n d μ 2 < 0.5 x p m o t h e r w i s e (6-8) x_k^m=\begin{dcases}x_{rand}\quad \mu_2<0.5\\x_p^m\quad\,\,\,\,\, otherwise\end{dcases}\tag{6-8} xkm={xrandμ2<0.5xpmotherwise(6-8) x r a n d = X min + r a n d ( 0 , 1 ) × ( X max − X min ) (6-9) x_{rand}=X_{\min}+rand(0,1)\times(X_{\max}-X_{\min})\tag{6-9} xrand=Xmin+rand(0,1)×(Xmax−Xmin)(6-9)其中, x r a n d x_{rand} xrand是一个新解, x p m x_p^m xpm是在种群中随机选择的一个解( p ∈ [ 1 , 2 , ⋯ , N ] p\in[1,2,\cdots,N] p∈[1,2,⋯,N]), μ 2 \mu_2 μ2是 [ 0 , 1 ] [0,1] [0,1]之间的随机数。式(6-8)可简化为: x k m = L 2 × x p m + ( 1 − L 2 ) (6-10) x_k^m=L_2\times x_p^m+(1-L_2)\tag{6-10} xkm=L2×xpm+(1−L2)(6-10)其中, L 2 L_2 L2是一个值为0或1的二进制参数,如果参数 μ 2 \mu_2 μ2小于0.5,则 L 1 L_1 L1的值为1,否则为0。
4、GBO算法伪代码
GBO算法伪代码如图2所示。
二、仿真实验与分析
1、函数测试与数值分析
将GBO与GWO、WOA、CS和ABC进行对比,以文献[1]中表2和表3的F1、F2、F3(单峰函数/30维)、F8、F9、F10(多峰函数/30维)为例,种群规模设置为50,最大迭代次数设置为500,每个算法独立运算30次。结果显示如下:
函数:F1
GBO:最差值: 9.8311e-121, 最优值: 1.2386e-131, 平均值: 5.5693e-122, 标准差: 1.9474e-121, 秩和检验: 1
GWO:最差值: 1.136e-26, 最优值: 7.6469e-29, 平均值: 1.3869e-27, 标准差: 2.4064e-27, 秩和检验: 3.0199e-11
WOA:最差值: 1.4402e-74, 最优值: 3.1602e-89, 平均值: 5.4155e-76, 标准差: 2.6393e-75, 秩和检验: 3.0199e-11
CS:最差值: 10000000000, 最优值: 10000000000, 平均值: 10000000000, 标准差: 0, 秩和检验: 1.2118e-12
ABC:最差值: 420887227.652, 最优值: 138665271.6631, 平均值: 263116421.5662, 标准差: 70791130.6052, 秩和检验: 3.0199e-11
函数:F2
GBO:最差值: 2.512e-186, 最优值: 3.7875e-202, 平均值: 1.4406e-187, 标准差: 0, 秩和检验: 1
GWO:最差值: 3.8172e-94, 最优值: 1.5096e-106, 平均值: 1.3687e-95, 标准差: 6.9672e-95, 秩和检验: 3.0199e-11
WOA:最差值: 1.0685e-114, 最优值: 1.903e-142, 平均值: 3.5784e-116, 标准差: 1.9504e-115, 秩和检验: 3.0199e-11
CS:最差值: 10000000000, 最优值: 10000000000, 平均值: 10000000000, 标准差: 0, 秩和检验: 1.2118e-12
ABC:最差值: 2.191760632079967e+30, 最优值: 1.304074862659379e+27, 平均值: 3.545290857879081e+29, 标准差: 5.426726742579065e+29, 秩和检验: 3.0199e-11
函数:F3
GBO:最差值: 1.0212e-123, 最优值: 9.0284e-135, 平均值: 3.4729e-125, 标准差: 1.8633e-124, 秩和检验: 1
GWO:最差值: 3.5962e-28, 最优值: 2.7795e-31, 平均值: 5.3904e-29, 标准差: 9.1989e-29, 秩和检验: 3.0199e-11
WOA:最差值: 17696.4336, 最优值: 1577.8828, 平均值: 6525.936, 标准差: 3480.9415, 秩和检验: 3.0199e-11
CS:最差值: 1817.673, 最优值: 467.7396, 平均值: 964.7775, 标准差: 309.4372, 秩和检验: 3.0199e-11
ABC:最差值: 41345.8166, 最优值: 21482.9975, 平均值: 32821.5336, 标准差: 4981.9851, 秩和检验: 3.0199e-11
函数:F8
GBO:最差值: 3.0391e-06, 最优值: 8.7101e-09, 平均值: 2.4593e-07, 标准差: 5.5779e-07, 秩和检验: 1
GWO:最差值: 1.361, 最优值: 0.63371, 平均值: 0.99779, 标准差: 0.19703, 秩和检验: 3.0199e-11
WOA:最差值: 1.3141, 最优值: 0.04266, 平均值: 0.46438, 标准差: 0.2924, 秩和检验: 3.0199e-11
CS:最差值: 2887.6398, 最优值: 1159.9241, 平均值: 1865.9293, 标准差: 488.1511, 秩和检验: 3.0199e-11
ABC:最差值: 4147.2436, 最优值: 1819.7121, 平均值: 2809.733, 标准差: 586.6153, 秩和检验: 3.0199e-11
函数:F9
GBO:最差值: 0.00038183, 最优值: 0.00038183, 平均值: 0.00038183, 标准差: 0, 秩和检验: NaN
GWO:最差值: 0.00038183, 最优值: 0.00038183, 平均值: 0.00038183, 标准差: 6.2891e-13, 秩和检验: 1.9683e-11
WOA:最差值: 0.00038183, 最优值: 0.00038183, 平均值: 0.00038183, 标准差: 7.825e-13, 秩和检验: 0.005466
CS:最差值: 8.8297, 最优值: 1.8935, 平均值: 3.6921, 标准差: 1.2988, 秩和检验: 1.2118e-12
ABC:最差值: 2.6767, 最优值: 0.77324, 平均值: 1.8417, 标准差: 0.47809, 秩和检验: 1.2118e-12
函数:F10
GBO:最差值: 8.8818e-16, 最优值: 8.8818e-16, 平均值: 8.8818e-16, 标准差: 0, 秩和检验: NaN
GWO:最差值: 5.7732e-14, 最优值: 3.2863e-14, 平均值: 4.4231e-14, 标准差: 5.0588e-15, 秩和检验: 8.8817e-13
WOA:最差值: 7.9936e-15, 最优值: 8.8818e-16, 平均值: 4.7962e-15, 标准差: 2.3511e-15, 秩和检验: 3.3243e-10
CS:最差值: 6.6869, 最优值: 4.8332, 平均值: 5.6926, 标准差: 0.54417, 秩和检验: 1.2118e-12
ABC:最差值: 3.7931, 最优值: 2.7105, 平均值: 3.208, 标准差: 0.27867, 秩和检验: 1.2118e-12
结果表明,GBO由于具有更强的探索、开发、收敛和有效避免局部最优的能力。
2、求解压缩弹簧设计优化问题
压缩弹簧设计问题具体请参考这里。仿真实验中,5种算法的运行次数、种群规模和最大迭代次数都保持一致,即
N
=
50
,
T
=
500
N=50,T=500
N=50,T=500,每种算法分别独立运行30次。结果显示如下:
GBO:最差值: 0.012664, 最优值: 0.012663, 平均值: 0.012663, 标准差: 5.9479e-08, 秩和检验: 1
GWO:最差值: 0.012944, 最优值: 0.012664, 平均值: 0.012732, 标准差: 5.3343e-05, 秩和检验: 3.0199e-11
WOA:最差值: 0.017766, 最优值: 0.012671, 平均值: 0.01349, 标准差: 0.0010023, 秩和检验: 3.0199e-11
CS:最差值: 0.012666, 最优值: 0.012663, 平均值: 0.012664, 标准差: 7.5821e-07, 秩和检验: 3.4742e-10
ABC:最差值: 0.013331, 最优值: 0.012761, 平均值: 0.012967, 标准差: 0.00015669, 秩和检验: 3.0199e-11
结果表明,GBO在解决复杂的实际工程问题方面具有良好的性能。
3、WSN三维覆盖优化
(1)节点覆盖模型
假设三维空间中有一传感器节点 s i = ( x i , y i , z i ) s_i=(x_i, y_i, z_i) si=(xi,yi,zi),则其到空间任意点 p ( x , y , z ) p(x, y, z) p(x,y,z)的距离为 d ( s i , p ) = ( x − x i ) 2 + ( y − y i ) 2 + ( z − z i ) 2 d(s_i,p)=\sqrt{(x− x_i)^2 + (y− y_i)^2 + (z− z_i)^2} d(si,p)=(x−xi)2+(y−yi)2+(z−zi)2,即欧氏距离。采用二元探测模型可确定点 p p p被传感器节点 s i s_i si覆盖的概率为 c p ( s i ) = { 1 , d ( s i , p ) < r s 0 , d ( s i , p ) ≥ r s (7) c_p(s_i)=\begin{dcases}1,\quad d(s_i,p)<r_s\\0,\quad d(s_i,p)\geq r_s\end{dcases}\tag{7} cp(si)={1,d(si,p)<rs0,d(si,p)≥rs(7)其中, r s r_s rs表示传感器节点的感知半径,式(1)表明,若点 p p p与 s i s_i si之间欧氏距离小于传感器半径则能被覆盖,否则不被覆盖。假设网络中有 k k k个节点 s 1 , s 2 , ⋯ , s k s_1,s_2,\cdots,s_k s1,s2,⋯,sk,它们对点 p p p的覆盖率分别为 c p ( s 1 ) , c p ( s 2 ) , ⋯ , c p ( s k ) c_p(s_1),c_p(s_2),\cdots,c_p(s_k) cp(s1),cp(s2),⋯,cp(sk),则点 p p p在网络中的覆盖率为 c p ( A ) = 1 − ∏ i = 1 k ( 1 − c p ( s i ) ) (8) c_p(A)=1-\prod_{i=1}^k(1-c_p(s_i))\tag{8} cp(A)=1−i=1∏k(1−cp(si))(8)点 p p p被称为探测点,若在网络中任取 n n n个探测点,通过对这些探测点的探测概率取均值,就能得到网络的整体覆盖率为 C ( A ) = 1 n ∑ i = 1 n c i ( A ) (9) C(A)=\frac1n\sum_{i=1}^nc_i(A)\tag{9} C(A)=n1i=1∑nci(A)(9)需要说明的是, C ( A ) C(A) C(A)是实际环境中的统计值,当 n n n取足够大时,统计值与理论值就会无限接近。
(2)实验分析
设监测区域为
100
m
×
100
m
×
100
m
100 m× 100 m ×100 m
100m×100m×100m的三维空间,传感器节点个数
N
=
60
N = 60
N=60,其感知半径是
R
s
=
15
m
R_s=15m
Rs=15m,通信半径
R
c
=
30
m
R_c =30m
Rc=30m,迭代500次。初始部署、GBO优化覆盖、GBO算法覆盖率进化曲线如下图所示。
初始部署和最终部署的节点位置及对应的覆盖率分别为:
初始位置:
70.7986 63.6074 22.3116
81.3321 51.9729 83.4651
39.7013 0.99058 96.6431
95.2389 69.7163 44.7119
96.0526 28.0365 24.1697
79.2618 81.6431 18.3667
72.9343 82.3462 26.4304
56.6824 8.151 3.817
65.6001 38.2105 51.3209
59.9011 81.1989 34.9586
21.7216 92.165 16.4569
66.9387 13.8663 91.9185
6.5852 81.5805 94.8097
63.9297 10.1956 23.622
78.8205 22.4524 78.433
25.0779 16.5379 4.4726
93.5962 58.8095 20.2765
67.1857 36.8484 33.7433
27.4872 11.63 14.7473
46.3614 25.3204 47.3145
92.2384 73.5217 68.05
25.0824 77.6403 16.861
52.4558 73.998 74.3508
24.8111 19.4042 95.1289
18.3239 44.5285 25.2246
31.7279 21.4627 25.2405
87.0822 92.064 90.1414
21.6743 10.3166 91.4452
45.566 11.6079 8.3755
14.6061 82.6208 66.9501
11.0948 97.8415 52.9226
44.334 53.1037 33.8429
76.11 30.5135 6.6693
63.4458 70.0833 75.53
23.9317 67.3118 26.9091
31.0578 38.3732 13.6477
7.04 9.0925 64.6653
40.9409 70.029 8.651
4.4038 47.9756 84.0103
70.3827 9.2133 23.2729
64.099 10.6088 73.426
58.7156 58.5285 61.398
23.647 45.7851 59.7578
70.9658 45.1058 19.6951
46.3264 28.162 18.9432
25.1087 44.6019 45.1435
50.7105 5.1599 62.4773
20.3668 30.1857 40.6184
68.8929 79.6745 86.1004
69.1166 61.8433 33.0895
36.0854 87.2746 55.1761
58.2752 48.1028 82.6541
36.8564 29.9736 88.7096
31.1321 83.8653 4.9985
2.3442 50.7398 80.5865
53.3592 93.0387 83.2061
7.7878 5.2723 24.6716
66.4785 48.5362 13.1696
92.1403 51.6288 21.9681
83.9965 79.8326 70.0737
初始覆盖率:0.5447
最优位置:
59.3686 71.4591 10.695
87.3716 52.4473 86.6814
13.9151 10.4515 89.0149
86.7921 61.9611 62.0315
93.2946 11.3665 30.7443
90.2324 86.5405 21.4409
71.6699 89.1 29.4611
51.2066 12.1565 11.8147
69.818 38.6153 63.4324
56.4267 87.9166 48.3901
48.4056 88.8264 22.289
64.8274 12.5017 89.0463
15.7833 88.5207 86.83
76.01 16.8035 40.8302
86.6066 25.347 83.258
23.7133 29.245 8.2916
86.1914 67.4153 9.8297
64.6229 38.2713 35.6716
26.3351 7.6124 11.8248
45.9478 30.1728 53.4769
11.0376 73.236 13.5148
25.3983 90.7213 31.4729
53.8345 67.1044 86.1097
27.0473 58.1272 88.5643
13.5666 47.1054 24.4676
33.0776 20.183 33.3159
90.4836 79.4829 82.3088
37.7803 13.2223 86.7829
75.8538 10.8706 13.0724
14.5476 71.9005 69.2934
11.1578 89.2482 53.5313
50.4897 64.0684 35.9774
88.3268 32.9992 13.3565
70.4124 87.9671 70.3753
21.8116 70.2847 40.3846
61.5205 32.5761 7.1758
14.0072 13.1186 62.6771
35.2627 60.3561 12.1861
11.6603 37.1852 87.2074
52.7749 9.3727 36.3573
88.4768 14.4684 60.8537
58.2721 63.0428 60.9502
29.6749 52.5109 62.8087
89.7162 40.3426 46.8221
43.8244 39.4941 20.7533
34.8629 51.715 42.028
59.3911 13.4283 64.9115
13.6657 31.3003 47.3781
71.5558 87.7975 91.7385
76.3818 65.2033 38.3776
37.7883 85.5285 62.2997
60.4999 41.8344 87.8569
38.6561 34.5949 75.9017
33.7132 86.2034 8.3529
7.5695 49.5183 64.4615
42.7267 88.6258 88.13
11.1078 11.9648 29.4589
69.5695 51.3326 15.1195
94.757 53.7007 26.8448
87.7967 87.6085 50.7769
最优覆盖率:0.7242
实验结果表明,GBO算法能够有效处理三维无线传感器网络中节点的部署问题。
三、参考文献
[1] Iman Ahmadianfar, Omid Bozorg-Haddad, Xuefeng Chu. Gradient-based optimizer: A new metaheuristic optimization algorithm[J]. Information Sciences, 2020, 540: 131-159.
[2] 刘惠, 柴志杰, 杜军朝, 等. 基于组合虚拟力的传感器网络三维空间重部署算法研究[J]. 自动化学报, 2011, 37(6): 713-723.
[3] 孙爱晶, 王磊, 朱鑫鑫. 基于融合算法的三维无线传感器网络覆盖优化[J]. 传感器与微系统, 2021, 40(11): 146-149.