一、理论基础
1、问题描述
假设一个二维平面区域A可以离散成s×s的网格,每个网格的面积为 1。若整个区域内分布着
n
n
n个无线传感器节点,每个节点都可以通过某种特殊方式(像北斗导航)来获取自身位置,并拥有相同的感知半径
R
R
R。因此,区域 A 上的所有WSN节点集可被描述成:
S
=
{
s
1
,
s
2
,
⋯
,
s
n
}
(1)
S=\{s_1,s_2,\cdots,s_n\}\tag{1}
S={s1,s2,⋯,sn}(1)其中,
s
i
=
(
x
i
,
y
i
)
(
i
=
1
,
2
,
⋯
,
n
)
s_i=(x_i,y_i)(i=1,2,\cdots,n)
si=(xi,yi)(i=1,2,⋯,n),
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi)为节点
s
i
s_i
si在区域A中的坐标。对于任意网格点
p
j
=
(
x
j
,
y
j
)
(
j
=
1
,
2
,
⋯
,
m
×
n
)
p_j=(x_j,y_j)(j=1,2,\cdots,m×n)
pj=(xj,yj)(j=1,2,⋯,m×n),它与节点
s
i
s_i
si之间的距离为
d
i
j
=
(
x
i
−
x
j
)
2
+
(
y
i
−
y
j
)
2
(2)
d_{ij}=\sqrt{(x_i-x_j)^2+(y_i-y_j)^2}\tag{2}
dij=(xi−xj)2+(yi−yj)2(2)WSN节点测量模型主要有两种:(1)二元测量模型;(2)概率测量模型。文中采用比较常见的概率测量模型来计算其覆盖率
C
i
j
=
{
1
d
i
j
≤
R
−
R
e
e
x
p
(
−
λ
1
α
1
ε
1
α
2
ε
2
+
λ
2
)
R
−
R
e
<
d
i
j
<
R
+
R
e
0
e
l
s
e
(3)
C_{ij}=\begin{dcases}1\quad d_{ij}≤R-R_e\\exp\left(\frac{-\lambda_1\alpha_1^{\varepsilon_1}}{\alpha_2^{\varepsilon_2}+\lambda_2}\right)\quad R-R_e<d_{ij}<R+R_e\\0\quad else\end{dcases}\tag{3}
Cij=⎩⎪⎪⎨⎪⎪⎧1dij≤R−Reexp(α2ε2+λ2−λ1α1ε1)R−Re<dij<R+Re0else(3)其中,
R
e
(
0
<
R
e
<
R
)
R_e(0<R_e<R)
Re(0<Re<R)为传感器的有效测量半径;
α
1
=
R
e
−
R
+
d
i
j
\alpha_1=R_e-R+d_{ij}
α1=Re−R+dij;
α
2
=
R
e
+
R
−
d
i
j
\alpha_2=R_e+R-d_{ij}
α2=Re+R−dij,其他量为测量参数。
如果所有节点被检测都是相互独立事件,那么由点
p
j
p_j
pj被单个节点检测的概率可得到它同时被所有节点检测到的综合概率为
C
j
=
1
−
∏
i
=
1
n
(
1
−
C
i
j
)
(4)
C_j=1-\prod_{i=1}^n (1-C_{ij})\tag{4}
Cj=1−i=1∏n(1−Cij)(4)其中,若
C
j
C_j
Cj大于或等于某个特定阈值
C
t
C_t
Ct,则认为点
p
j
p_j
pj可被节点检测;;反之,若
C
j
C_j
Cj小于
C
t
C_t
Ct,则认为
p
j
p_j
pj不能被检测到。通过多次试验,文中选择
C
t
=
0.75
C_t=0. 75
Ct=0.75。
进而,通过点
p
j
p_j
pj被检测到的综合概率来衡量每个网格的覆盖率,即通过式 (4) 来计算每个网格点的被检测概率,将被检测到的网格点个数占网格总数的比例作为WSN的覆盖率。具体的数学描述为
C
s
=
∑
j
=
1
m
×
n
C
j
m
×
n
(5)
C_s=\frac{\displaystyle\sum_{j=1}^{m×n}C_j}{m×n}\tag{5}
Cs=m×nj=1∑m×nCj(5)因此,WSN 节点分布优化问题可描述成目标区域A上的
n
n
n个无线传感器节点通过优化算法达到对整个目标区域的覆盖。也就是,该问题可转换为式
(5) 的最大化问题,即
m
a
x
(
∑
j
=
1
m
×
n
C
j
m
×
n
)
(6)
max\left(\frac{\sum_{j=1}^{m×n}C_j}{m×n}\right)\tag{6}
max(m×n∑j=1m×nCj)(6)
2、改进的杂草算法
(1)IWO算法描述
请参考这里。
(2)立方混沌算子
采用立方映射混沌算子来改进杂草位置的初始化,使得产生的种群位置更均匀。根据下式产生混沌序列
y
(
n
+
1
)
=
4
y
(
n
)
3
−
3
y
(
n
)
(
n
=
0
,
1
,
⋯
⋯
)
(7)
y(n+1)=4y(n)^3-3y(n)(n=0,1,\cdots\cdots\tag{7})
y(n+1)=4y(n)3−3y(n)(n=0,1,⋯⋯)(7)其中,
y
(
n
)
∈
[
−
1
,
1
]
y(n)∈[-1,1]
y(n)∈[−1,1]。将混沌序列映射到优化变量的取值空间内,利用混沌特性来实现对杂草初始位置的搜索。具体步骤为
(1)对于D维空间内的M个个体,随机产生一个D维向量
Y
=
{
y
1
,
⋯
,
y
d
}
\boldsymbol Y=\{y_1,\cdots,y_d\}
Y={y1,⋯,yd}作为第一个杂草个体,其中
y
i
∈
[
−
1
,
1
]
,
1
≤
i
≤
d
y_i∈[-1,1],1≤i≤d
yi∈[−1,1],1≤i≤d。
(2)利用式(7)对
Y
\boldsymbol Y
Y逐维进行
M
−
1
M-1
M−1次迭代,产生其余
M
−
1
M-1
M−1个个体。
(3)将产生的混沌变量根据式(8)映射到解的搜索空间内
x
i
d
=
x
L
+
(
1
+
y
i
d
)
x
U
−
x
L
2
(8)
x_{id}=x_L+(1+y_{id})\frac{x_U-x_L}{2}\tag{8}
xid=xL+(1+yid)2xU−xL(8)其中,
x
i
d
x_{id}
xid为杂草
i
i
i在第
d
d
d维的位置;
y
i
d
y_{id}
yid为式(7)产生的杂草
i
i
i的第
d
d
d维值;
x
U
x_U
xU和
x
L
x_L
xL分别为
x
i
d
x_{id}
xid取值的上下限。
(3)高斯变异算子
为避免IWO算法陷入局部最优,在随机选择一定数量的杂草种子后,采用高斯变异算子对其进行操作。变异后的个体 V i \boldsymbol V_i Vi可由下列公式计算: V i = X i + e ( X B − X i ) (9) \boldsymbol V_i=\boldsymbol X_i+e(\boldsymbol X_B-\boldsymbol X_i)\tag{9} Vi=Xi+e(XB−Xi)(9)其中, e e e表示均值为0、方差为1的高斯分布; X B \boldsymbol X_B XB为当前种群中适应度值最高的个体。当变异个体 V i \boldsymbol V_i Vi的值不在搜索范围内时,通过下式来重新寻找位置 V i = X L + e ( X U − X L ) (10) \boldsymbol V_i=\boldsymbol X_L+e(\boldsymbol X_U-\boldsymbol X_L)\tag{10} Vi=XL+e(XU−XL)(10)
(4)算法伪代码
引入立方混沌算子和高斯变异算子来改进传统的IWO算法,产生了改进的IWO算法。IIWO算法的伪代码如下所示:
二、仿真分析
为了检验IIWO算法在处理WSN节点分布优化问题的有效性,仿真设WSN的有效监控范围为
50
m
×
50
m
50m ×50m
50m×50m的正方形区域,每个传感器节点的感知半径
R
R
R为5m,在监控范围内随机分布着35个WSN节点。通过IWO算法、CPSO算法和IIWO算法分别对这些节点的布局进行优化,都迭代300代,3 种算法的种群数均设置为30。3种算法的网络覆盖率对比图如图2所示。
图3~6分别是WSN节点初始部署、IWO优化覆盖图、CPSO优化覆盖图和IIWO优化覆盖图。
三、参考文献
[1] 单文桃, 王鑫, 丁力. 改进杂草算法求解WSN节点分布优化问题[J]. 机床与液压, 2018, 46(22): 84-88.
[2] 心升明月. 基于入侵杂草算法的函数寻优算法. CSDN博客.