发明内容
本发明的目的是提供一种多Sink节点移动的无线传感网生存时间优化方法。
为实现上述目的,本发明多Sink节点移动的无线传感网生存时间优化方法包括如下步骤:
步骤一:网关节点收集各Sink节点和各传感节点的位置信息,以及收集各传感节点的剩余能量信息,并将无线传感网的监测区域分成大小一致的网格;
步骤二:网关节点计算每一个网格的潜能值;
步骤三:网关节点计算各Sink节点需要停留的所有锚点,获得一个锚点集合;
步骤四:网关节点将锚点集合中的锚点分配给M个簇,M的取值为Sink节点的数量;根据分簇的结果,将每一个Sink节点分配到对应的簇中;
步骤五:网关节点计算每一个分配到对应簇中的Sink节点经过簇内的所有锚点的最短移动路径,并将各最短移动路径广播通知各对应的Sink节点;
步骤六:所有Sink节点同时沿着各自的最短移动路径相应地采用静态收集或移动收集的方法收集传感节点的数据;
步骤七:完成一个时间周期的数据收集后,网关节点重新收集各传感节点的剩余能量信息;如果无线传感网各传感节点的能量耗尽,则结束,否则网关节点返回执行步骤二。
进一步地,本发明在所述步骤一中,将无线传感网的监测区域分成n×n个大小一致的所述网格,其中,n表示在无线传感网的监测区域中每一行或每一列的网格数,n的取值范围为10-60。
进一步地,本发明在所述步骤二中,每一个网格的潜能值如式(1)所示:
式(1)中,P(v)表示网格v的潜能值,dvj表示在集合N(v)中的传感节点j到网格v的网格中心gridv的距离,gridv表示网格v的网格中心,N(v)表示在无线传感网的监测区域内到网格v的网格中心gridv的距离不超过dmax的所有传感节点的集合,dmax表示传感节点的最大通信距离,Re(j)表示传感节点j的剩余能量,Einitial表示传感节点的初始能量;α1表示距离潜能因子,取值范围为1~3;α2表示剩余能量潜能因子,取值范围为1~3;x1表示距离权重因子,取值范围为0-1;x2表示剩余能量权重因子,x2=1-x1。
进一步地,本发明所述步骤三包含如下步骤:
a1)在整个无线传感器的监测区域内的所有网格中选择潜能值最大的网格的中心作为当前锚点,记录当前锚点所在网格的潜能值P*(1),将当前锚点加入到一个此时为空的锚点集合P中;
a2)以当前锚点为当前汇聚点,确定到该当前汇聚点的最小传输跳数不超过2的所有传感节点,这些传感节点的最大通信覆盖区域内的所有网格构成集合Q1;按式(2)所示方法,将集合Q1中的各个网格的潜能值分别减去当前锚点所在网格的潜能值P*,由此相应地得到集合Q1中各网格的新的潜能值:
P(v)=P(v)-P*,v∈Q1 (2)
式(2)中,P(v)表示网格v的潜能值,Q1表示在到当前汇聚点的最小传输跳数不超过2的所有传感节点的最大通信覆盖区域内所有网格的集合,v表示在集合Q1中的一个网格,P*表示当前锚点的潜能值;
a3)如果无线传感网的监测区域内的所有网格的最大潜能值
小于等于判决因子ε和步骤a1)所述的潜能值P
*(1)的乘积,则执行步骤a5),否则执行步骤a4),ε的取值范围为0.1-0.9;
a4)重新在无线传感网的监测区域内的所有网格中选择潜能值最大的网格的中心作为新的当前锚点,将新的当前锚点加入到锚点集合P中,然后返回执行步骤a2);
a5)计算每个传感节点到锚点集合P中每一个锚点的最小传输跳数,如果无线传感网中存在到锚点集合P中的所有锚点的最小传输跳数都大于2的传感节点,则将这些传感节点作为孤立节点,并执行步骤a6);否则输出锚点集合P,结束锚点的选择;
a6)将无线传感网的监测区域内的所有网格的潜能值归零,通过式(4)重新计算无线传感网的监测区域内的所有网格的潜能值,并返回执行步骤a5):
式(4)中,P(v)表示网格v的潜能值,dvj表示在集合G(v)中的孤立传感节点j到网格v的网格中心gridv的距离,gridv表示网格v的网格中心,G(v)表示在无线传感网的监测区域内到网格v的网格中心gridv的距离不超过dmax的所有孤立传感节点的集合,dmax表示孤立传感节点的最大通信距离,Re(j)表示孤立传感节点j的剩余能量,Einitial表示孤立传感节点的初始能量;α1表示距离潜能因子,取值范围为1~3;α2表示剩余能量潜能因子,取值范围为1~3;x1表示距离权重因子,取值范围为0-1;x2表示剩余能量权重因子,x2=1-x1。
进一步地,本发明所述步骤五包含如下步骤:
为每一个Sink节点的移动路径建立如式(13)-(16)所示的优化模型:
min cx (13)
s.t.A1x=b1 (14)
A2x≤b2 (15)
式(13)中,c表示4n(n-1)个全1元素的向量;式(14)中,A
1表示(2N
m+n
2)×(4n(n-1))个元素的矩阵,b
1表示2N
m+n
2个元素的向量,其中2N
m个元素是1、其余元素都是0,N
m表示Sink节点m需要停留的锚点数量加1;式(15)中,A
2表示(2n(n-1))×(4n(n-1))个元素的矩阵。在矩阵A
2中,针对2n(n-1)个线段,在代表网格中心grid
v和其邻居网格中心grid
w之间的线段的对应行中,
和
的值为1,该行中的其它元素为0;
表示L(grid
v,grid
w)的状态指示符号,L(grid
v,grid
w)表示从网格中心grid
v到其邻居网格中心grid
w的有向线段,grid
v和grid
w分别表示网格v及其邻居网格w的中心;
表示L(grid
v,grid
w)在Sink节点m的移动路径上,
表示L(grid
v,grid
w)不在Sink节点m的移动路径上;b
2表示2n(n-1)个全1元素的向量;在式(13)-(15)中,x表示包含所有状态指示符号的向量,共有4n(n-1)个元素;式(16)中,x
i表示向量x的第i个元素;n表示在无线传感网的监测区域中,每一行或每一列的网格数;
其中,在式(13)中,向量c的具体定义如下:
(c)1,4n(n-1)=(1,1,...,1) (17)
式(17)中,n表示在无线传感网的监测区域中,每一行或每一列的网格数;
式(14)中,矩阵A1的具体定义如下:
式(18)中,在矩阵
的第i行中,代表锚点i到其所有邻居网格中心的有向线段的状态指示符号的元素值为1,其它元素值为0;在矩阵
的第i行中,代表锚点i的所有邻居网格中心到锚点i的有向线段的状态指示符号的元素值为1,其它元素值为0;在矩阵
的第i行中,代表网格中心grid
i到其所有邻居网格中心的有向线段的状态指示符号的元素值为1,代表网格中心grid
i的所有邻居网格中心到网格中心grid
i的有向线段的状态指示符号的元素值为-1,其它元素值为0;N
m表示Sink节点m需要停留的锚点数量加1;n表示在无线传感网的监测区域中,每一行或每一列的网格数;
式(14)中,向量b1的具体定义如下:
式(19)中,Nm表示Sink节点m需要停留的锚点数量加1;n表示在无线传感网的监测区域中,每一行或每一列的网格数;
在式(15)中,向量b2的具体定义如下:
(b2)2n(n-1),1=[1,1,...,1]T (20)
式(20)中,n表示在无线传感网的监测区域中,每一行或每一列的网格数;
在式(13)-(16)中,向量x的具体定义如下:
式(21)中,n表示在无线传感网的监测区域中每一行或每一列的网格数;以
表示向量x中的元素,且
表示L(grid
v,grid
w)的状态指示符号,L(grid
v,grid
w)表示从网格中心grid
v到其邻居网格中心grid
w的有向线段,grid
v和grid
w分别表示网格v及其邻居网格w的中心;其中,
表示L(grid
v,grid
w)在Sink节点m的移动路径上,
表示L(grid
v,grid
w)不在Sink节点m的移动路径上;
网关节点计算每一个所述Sink节点的优化模型的最优解,获得每一个分配到对应簇中的Sink节点经过簇内的所有锚点的最短移动路径,再将各最短移动路径广播通知各对应的Sink节点。
进一步地,本发明在所述步骤六中,Sink节点的静态收集是指当Sink节点停留在锚点上时,静态收集2跳范围内的传感节点数据;Sink节点的移动收集是指当Sink节点从一个锚点移动到另一个锚点时,动态收集周围2跳范围内的传感节点数据。
进一步地,本发明所述Sink节点的移动收集是在其移动路径经过的不包括锚点在内的每一个网格中心上的停留时间内的静态数据收集,其中,area表示无线传感网的监测区域的边长,u表示Sink节点的移动速率,n表示无线传感网的监测区域内一行的网格数。
进一步地,本发明每一个所述Sink节点的静态数据收集按以下方法进行:Sink节点启动收集数据后,不时发送数据请求包,每一个传感节点i执行如下步骤:
d1)如果传感节点i接收到Sink节点的数据请求包,则将Sink节点地址和Sink节点的最短路径权值的预测值Ds(t)=0添加到邻居节点的信息表中,并按照式(22)所示的方法计算该传感节点i到Sink节点的链路权值wis;
式(22)中,s表示Sink节点,wis表示传感节点i到Sink节点的链路权值,dis表示传感节点i到Sink节点的距离,gis表示传感节点i发送给Sink节点的数据量;Eelec表示节点收发单位比特数据时电路的电子能耗,Eelec的值为50nJ/bit;εfs表示节点放大单位比特信号时信号放大器的电子能耗,εfs的值为100pJ/bit/m2;Re(j)表示传感节点j的剩余能量;y1是能耗因子,y1的取值范围为0.1-3;y2是接收剩余能量因子,y2的取值范围为0.1-3;
d2)传感节点i的最短路径权值的预测值如果不是无穷大且到Sink节点的数据传输跳数为1,则传感节点i不时向其所有邻居传感节点发送路由信息包,所述路由信息包的内容包括传感节点i的地址、到Sink节点的数据传输跳数和传感节点i的最短路径权值的预测值Di(t);
传感节点i如果接收到其邻居传感节点j的路由信息包,并获知邻居节点j的最短路径权值的预测值Dj(t),则在邻居节点的信息表中更新邻居节点j的最短路径权值的预测值Dj(t),并执行步骤d3);传感节点i如果未收到Sink节点的数据请求包且未收到其它节点的路由信息包,则传感节点i将其最短路径权值的预测值设为无穷大,并缓存该传感节点i的数据,向邻居节点发送路由失效包;
d3)按式(23)所示的方法计算传感节点i到其邻居传感节点j的链路权值:
式(23)中,wij表示传感节点i到其邻居传感节点j的链路权值,dij表示传感节点i到其邻居传感节点j的距离,gij表示传感节点i发送给邻居传感节点j的数据量;Eelec表示节点收发单位比特数据时电路的电子能耗,Eelec的值为50nJ/bit;εfs表示节点放大单位比特信号时信号放大器的电子能耗,εfs的值为100pJ/bit/m2;Re(j)表示传感节点j的剩余能量;y1是能耗因子,y1的取值范围为0.1-3;y2是接收剩余能量因子,y2的取值范围为0.1-3;
按式(24)所示的方法计算传感节点i将邻居节点j作为其转发节点的最短路径权值的预测值
式(24)中,
表示传感节点i将邻居节点j作为其转发节点的最短路径权值的预测值,D
j(t)表示传感节点i的邻居传感节点j的最短路径权值的预测值,w
ij表示该传感节点i到邻居传感节点j的链路权值;
当传感节点i将邻居节点j作为其转发节点的最短路径权值的预测值
小于传感节点i的最短路径权值的预测值D
i(t)时,传感节点i向最小权值路径上的邻居节点j发送数据,且
其中,
表示传感节点i将邻居节点j作为其转发节点的最短路径权值的预测值,D
i(t)表示传感节点i的最短路径权值预测值;当传感节点i将邻居节点j作为其转发节点的最短路径权值的预测值
大于或等于传感节点i的最短路径权值的预测值D
i(t)时,传感节点i的转发节点保持不变;当传感节点i向Sink节点发送数据时,传感节点i到Sink节点的数据传输跳数为1;当传感节点i向其它传感节点发送数据时,传感节点i到Sink节点的数据传输跳数为2。
与现有技术相比,本发明具有的有益效果是:
本发明提出了即通过将无线传感网的监测区域分解成多个大小一致的网格,根据每一个网格的潜能值寻找Sink移动的锚点,让所有传感节点都有机会在Sink节点的周围发送数据,降低和均衡了节点的数据通信能耗,提高了网络生存时间;通过将锚点分配给不同的Sink节点和寻找每一个Sink节点的最短移动路径,降低数据收集时延。本发明这种网络生存时间优化方法与节点位置固定不变的无线传感网生存时间优化方法相比,能有效地解决能量空穴问题,充分利用节点能量,降低和均衡节点能耗,延长了网络生存时间;与单一Sink节点移动的无线传感网生存时间优化方法相比,本发明允许Sink节点移动到均匀分布在无线传感网的监测区域内的任一网格中心上收集数据,扩大了Sink节点的停留位置选择范围,延长了网络生存时间,而且采用多个Sink节点协作收集数据,有效降低了数据收集时延。在节点均匀分布和非均匀分布的无线传感网中,本发明通过确定Sink节点移动的锚点,寻找最短的移动路径,构建Sink节点2跳通信范围内的最短路径树等技术,可以延长网络生存时间,降低和平衡节点能耗,降低数据收集时延,具有很好的可用性和实用性。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步的说明。
本发明方法应用于安装有GPS模块的无线传感网的传感节点、Sink节点和网关节点,以网络生存时间为指标同时降低和均衡节点能耗,降低数据收集时延。在本发明中,网关节点为一个,所有节点通过串口与GPS模块通信,获知自身的位置信息。
如图1所示,本发明方法具体包含如下步骤:
步骤一:网关节点收集各Sink节点和各传感节点的位置信息,以及收集各传感节点的剩余能量信息,并将无线传感网的监测区域分成大小一致的网格。
在本发明中,所有传感节点监测的区域为无线传感网的监测区域。该步骤的具体方法如下:
首先,网关节点向无线传感网的所有节点发送节点信息查询包。当Sink节点接收到节点信息查询包后,判断是否接收过该节点信息查询包。如果未接收过,则将该节点信息查询包转发给周围的传感节点。如果已经接收过,则丢弃该包。当传感节点第一次接收到节点信息查询包后,将自身的位置坐标、剩余能量等信息循原路发送给网关节点,并转发该节点信息查询包。
在网关节点获知所有传感节点和Sink节点的位置坐标和剩余能量信息后,将无线传感网的监测区域分成n×n个(共n2个)大小一致的网格。其中,n表示在无线传感网的监测区域中,每一行或每一列的网格数。n可根据无线传感网的监测区域面积和传感节点个数决定,n的取值范围一般为10-60,优取经验值为30。Sink节点可以移动到每一个网格的中心收集数据。图2是网格分解和编号示意图。如图2所示,将无线传感网的监测区域分成n×n个网格,并根据网格的位置从左到右,从上到下的原则对所有网格从1到n2分别编号。
步骤二:网关节点计算每一个网格的潜能值。
具体如下:
定义每一个网格v的潜能值如式(1)所示:
式(1)中,P(v)表示网格v的潜能值,gridv表示网格v的网格中心,dvj表示在集合N(v)中的传感节点j到网格v的网格中心gridv的距离,dmax表示传感节点的最大通信距离,N(v)表示在无线传感网的监测区域内到网格v的网格中心gridv的距离不超过dmax(即一跳通信范围内)的所有传感节点的集合,Re(j)表示传感节点j的剩余能量,Einitial表示传感节点的初始能量;α1表示距离潜能因子,取值范围为1~3,优选经验值为2;α2表示剩余能量潜能因子,取值范围为1~3,优选经验值为2;x1表示距离权重因子,取值范围为0-1,优选经验值为0.5;x2表示剩余能量权重因子,x2=1-x1。步骤二中网格的潜能值权衡传感节点到网格的距离和传感节点的剩余能量,有利于充分利用节点能量,达到降低和均衡节点能耗的目的。
作为本发明的另一种实施方式,也可以使用式(1-1)计算每一个网格的潜能值:
式(1-1)中,P(v)表示网格v的潜能值,gridv表示网格v的网格中心,dvj表示在集合N(v)中的传感节点j到网格v的网格中心gridv的距离,dmax表示传感节点的最大通信距离,N(v)表示在无线传感网的监测区域内到网格v的网格中心gridv的距离不超过dmax(即一跳通信范围内)的所有传感节点的集合。α1表示距离潜能因子,取值范围为1~3,优选经验值为2。式(1-1)不考虑传感节点的剩余能量,会造成节点能耗的不均衡,缩短了网络生时间。
步骤三:网关节点计算各Sink节点需要停留的所有锚点,获得一个锚点集合。
本步骤的具体优选实施方法如下:
a1)在整个无线传感器的监测区域内的所有网格中选择潜能值最大的网格的中心作为当前锚点,记录当前锚点所在网格的潜能值P*(1),将当前锚点加入到一个此时为空的锚点集合P中;
a2)以当前锚点为当前汇聚点,确定到该当前汇聚点的最小传输跳数不超过2的所有传感节点,这些传感节点的最大通信覆盖区域内的所有网格构成集合Q1;按式(2)所示方法,将集合Q1中的各个网格的潜能值分别减去当前锚点所在网格的潜能值P*,由此相应地得到集合Q1中各网格的新的潜能值:
P(v)=P(v)-P*,v∈Q1 (2)
式(2)中,P(v)表示网格v的潜能值,Q1表示在到当前汇聚点的最小传输跳数不超过2的所有传感节点的最大通信覆盖区域内所有网格的集合,v表示在集合Q1中的一个网格,P*表示当前锚点的潜能值;
a3)如果无线传感网的监测区域内的所有网格的最大潜能值小于等于判决因子ε和步骤a1)所述的潜能值P*(1)的乘积,即以下不等式(3)成立,则执行步骤a5),否则执行步骤a4);
式(3)中,P(v)表示网格v的潜能值,
表示无线传感网的监测区域内所有网格中的最大潜能值,P
*(1)表示步骤a1)所述的潜能值;ε表示判决因子,其取值范围为0.1-0.9,优选经验值为0.4。
a4)重新在无线传感网的监测区域内的所有网格中选择潜能值最大的网格的中心作为新的当前锚点,将新的当前锚点加入到锚点集合P中,然后返回执行步骤a2);
a5)计算每个传感节点到锚点集合P中每一个锚点的最小传输跳数,如果无线传感网中存在到锚点集合P中的所有锚点的最小传输跳数都大于2的传感节点,则将这些传感节点作为孤立节点,并执行步骤a6);否则输出锚点集合P,结束锚点的选择;
a6)将无线传感网的监测区域内的所有网格的潜能值归零,通过式(4)重新计算无线传感网的监测区域内的所有网格的潜能值,并返回执行步骤a5):
式(4)中,P(v)表示网格v的潜能值,dvj表示在集合G(v)中的孤立传感节点j到网格v的网格中心gridv的距离,gridv表示网格v的网格中心,G(v)表示在无线传感网的监测区域内到网格v的网格中心gridv的距离不超过dmax的所有孤立传感节点的集合,dmax表示孤立传感节点的最大通信距离,Re(j)表示孤立传感节点j的剩余能量,Einitial表示孤立传感节点的初始能量;α1表示距离潜能因子,取值范围为1~3,优选经验值2;α2表示剩余能量潜能因子,取值范围为1~3,优选经验值2;x1表示距离权重因子,取值范围为0-1,优选经验值0.5;x2表示剩余能量权重因子,x2=1-x1。
综上,网关节点通过执行以上步骤a1)-a6),直到锚点的选择结束,获得了最终的锚点集合P。令N表示锚点集合P中的元素个数,即锚点数。在步骤a1)-a6)中,由于在选择锚点时考虑了传感节点的位置坐标、剩余能量和网络覆盖,因此锚点集合P中的N个锚点分布在无线传感网的监测区域中周围节点密集和剩余能量大的区域和一些孤立节点的周围。
作为本发明的另一种实施方式,在步骤a3)中也可以使用式(2-1)计算所述集合Q1中各网格的新的潜能值:
P(v)=P(v)-0.5P*,v∈Q1 (2-1)
式(2-1)中,P(v)表示网格v的潜能值,Q1表示在到当前汇聚点的最小传输跳数不超过2的所有传感节点的最大通信覆盖区域内所有网格的集合,v表示在集合Q1中的一个网格,P*表示当前锚点的潜能值;式(2-1)会造成锚点分布的不均衡,缩短了网络生存时间。
步骤四:网关节点将锚点集合中的锚点分配给M个簇,M的取值为Sink节点的数量。根据分簇的结果,将每一个Sink节点分配到对应的簇中。
具体地说,由于网络中存在多个Sink节点,各个Sink节点分布在无线传感网的监测区域内同时收集数据。在规划这些Sink节点的移动路径前,需要考虑锚点出现在哪个Sink节点的路径中,可具体采用以下步骤将锚点集合P中的锚点分配给不同的Sink节点:
b1)初始化M个以锚点集合P中锚点为成员的簇,即该M个簇的中心是锚点集合P中随机选择的M(M<N)个锚点所在的位置,该M个簇的成员为空。其中M表示无线传感网中Sink节点的数量。
b2)计算当前每一个锚点到经步骤b1)选择的每一个簇的中心的距离。根据当前每一个锚点到所有簇的中心的距离,按照锚点到其归属的簇的中心的距离最短的原则,将各锚点划分到对应的簇。
b3)计算每个当前簇的所有锚点的位置坐标的平均值,并以该平均值作为新的M个当前簇的中心。计算当前每一个锚点到新的每一个当前簇的中心的距离。根据当前每一个锚点到新的M个当前簇中心的距离,按照锚点到其归属的簇的中心的距离最短的原则,重新将各锚点划分到对应的当前簇中。
b4)如果每个当前簇的锚点到该簇的中心的距离之和与前一次每个簇的锚点到该簇的中心的距离之和不同,则返回执行步骤b3)。如果每个当前簇的锚点到该簇的中心的距离之和与前一次每个簇的锚点到该簇的中心的距离之和相同,则结束锚点的分配,获得M个簇和每一个簇的锚点集合P1,P2,......,PM。
网关节点通过执行步骤b1)-b4),直到结束锚点的分配,寻找到M个簇。根据分簇的结果,将每一个Sink节点m分配到其中一个的簇m中时,要求每一个Sink节点m的移动路径必须经过簇m内的所有锚点,由此获得每一个Sink节点m需要停留的所有锚点的集合Pm。同一个Sink节点需要停留的所有锚点构成一个集合,不同Sink节点需要停留的锚点构成不同的集合。
作为本发明的另一种实施方式,可以采用其它聚类算法将锚点集合中的锚点分配给M个簇,M的取值为Sink节点的数量。
步骤五:网关节点计算每一个分配到对应簇中的Sink节点经过簇内的所有锚点的最短移动路径,并将各最短移动路径广播通知各对应的Sink节点。
根据步骤四的结果,将多Sink节点移动的无线传感网生存时间优化问题转化成了M个单一Sink节点移动的无线传感网生存时间优化问题,其中M表示网络中Sink节点的数量。网关节点针对每一个单一Sink节点移动的无线传感网生存时间优化问题,建立和求解每一个Sink节点的移动路径选择的优化模型,获得每一个分配到对应簇中的Sink节点经过簇内的所有锚点的最短移动路径,再将各最短移动路径广播通知各对应的Sink节点。以下是以其中一个Sink节点m为例具体描述其Sink节点移动路径选择模型的建立和求解方法,其它各Sink节点参照此方法。
首先分析路径选择模型的约束条件。
Sink节点m的初始位置和停留锚点位置的约束为:
定义L(grid
v,grid
w)表示从网格中心grid
v到其邻居网格中心grid
w的有向线段。式(5)中,Gd表示所有网格中心集合;
表示L(grid
v,grid
w)的状态指示符号,grid
v和grid
w分别表示网格v及其邻居网格w的中心。
表示L(grid
v,grid
w)在Sink节点m的移动路径上,
表示L(grid
v,grid
w)不在Sink节点m的移动路径上。s
in表示Sink节点m的初始位置,即Sink节点m在网格中心
上。P
m表示Sink节点m需要停留的所有锚点集合。式(5)表示Sink节点m的移动路径须经过其初始位置和集合P
m中的所有锚点,则从Sink节点m的初始位置或任一停留锚点到其所有邻居网格中心的有向线段的状态指示符号值的和为1,在Sink节点m的初始位置和所有停留锚点中的任一网格中心grid
v的所有邻居网格中心到该网格中心grid
v的有向线段的状态指示符号值的和为1。
由于每一个Sink节点的移动路径是在初始位置选择其邻居网格中心移动,经过若干个网格中心和锚点后,重新返回到初始位置。如果Sink节点的移动路径不经过某一个网格中心gridv,即该网格中心gridv不出现在移动路径上,则网格中心gridv到其所有邻居网格中心的有向线段的状态指示符号值的和为0,网格中心gridv的所有邻居网格中心到网格中心gridv的有向线段的状态指示符号值的和为0。如果Sink节点经过网格中心gridv,即网格中心gridv出现在Sink节点的移动路径上,则网格中心gridv到其所有邻居网格中心的有向线段的状态指示符号值的和为1,网格中心gridv的所有邻居网格中心到网格中心gridv的有向线段的状态指示符号值的和为1。因此每一个网格中心到其所有邻居网格中心的有向线段的状态指示符号值的和等于该网格中心的所有邻居网格中心到该网格中心的有向线段的状态指示符号值的和,即得到如式(6)所示的状态平衡约束:
式(6)中,Ad表示对无线传感网的监测区域采用网格分割方法后可能出现的所有有向线段的集合,L(grid
v,grid
w)表示从网格中心grid
v到其邻居网格中心grid
w的有向线段。式(6)中的其它符号含义和式(5)中的符号含义一致。
表示网格中心grid
v到其所有邻居网格中心的有向线段的状态指示符号值的和,
表示网格中心grid
v的所有邻居网格中心到网格中心grid
v的有向线段的状态指示符号值的和。式(6)表示每一个网格中心到其所有邻居网格中心的有向线段的状态指示符号值的和等于该网格中心的所有邻居网格中心到该网格中心的有向线段的状态指示符号值的和。
为避免移动路径选择过程中的自循环问题,即避免在移动路径选择中选择Sink节点m的初始位置和所有停留锚点中的每一个网格中心到其邻居网格中心的有向线段后,又选择其邻居网格中心到原来位置的有向线段,此时可使所有有向线段的状态指示符号值也符合式(5)和(6)的约束条件。因此引入如式(7)所示的状态限制约束:
式(7)中,符号含义和式(5)中的符号含义一致。网格中心gridv和网格中心gridw间存在两个有向线段L(gridv,gridw)和L(gridw,gridv),式(7)对这两个有向线段的状态指示符号值进行了限制,即有向线段L(gridv,gridw)和L(gridw,gridv)不能同时出现在Sink节点m的移动路径上,由此避免了自循环问题。
如图2所示,Sink节点m的移动路程为
其中,u表示Sink节点m的移动速率,d
vw表示网格中心grid
v到其邻居网格中心grid
w的距离,该式中的其它符号和式(5)中的符号含义一致。由于相邻网格中心之间的距离d
vw是一个常数,而且Sink节点m的移动速率固定,因此Sink节点m的移动路径的选择模型可转化为如式(8)-(12)所示:
式(8)-(12)中的符号含义和式(5)、式(6)中的符号含义一致。式(8)表示最小化Sink节点m的移动路径经过的网格数量。由于相邻网格中心之间的距离dvw是一个常数,而且Sink节点m的移动速率固定,式(8)也代表最小化移动路径的长度。
为方便分析,将所述式(8)-(12)转换成矩阵表示形式。那么,如式(8)-(12)所示的移动路径选择的优化模型可转化成如式(13)-(16)所示的(0,1)规划问题:
min cx (13)
s.t.A1x=b1 (14)
A2x≤b2 (15)
式(13)中,c表示4n(n-1)个全1元素的向量。式(14)中,A
1表示(2N
m+n
2)×(4n(n-1))个元素的矩阵,b
1表示2N
m+n
2个元素的向量,其中2N
m个元素是1、其余元素都是0,N
m表示Sink节点m需要停留的锚点数量加1。式(15)中,A
2表示(2n(n-1))×(4n(n-1))个元素的矩阵。在矩阵A
2中,针对2n(n-1)个线段,在代表网格中心grid
v和其邻居网格中心grid
w之间的线段的对应行中,
和
的值为1,该行中其它元素为0。b
2表示2n(n-1)个全1元素的向量。式(13)-(15)中,x表示包含所有状态指示符号的向量,共有4n(n-1)个元素。式(16)中,x
i表示向量x的第i个元素。n表示在无线传感网的监测区域中,每一行或每一列的网格数。
和L(grid
v,grid
w)的符号含义和式(6)中的符号含义一致。
其中,式(13)中,向量c的具体定义如下:
(c)1,4n(n-1)=(1,1,...,1) (17)
式(17)中,n表示在无线传感网的监测区域中,每一行或每一列的网格数。其它符号含义和式(13)中的符号含义一致。
式(14)中,矩阵A1的具体定义如下:
式(18)中,在矩阵
的第i行中,代表锚点i到其所有邻居网格中心的有向线段的状态指示符号的元素值为1,其它元素值为0。在矩阵
的第i行中,代表锚点i的所有邻居网格中心到锚点i的有向线段的状态指示符号的元素值为1,其它元素值为0。在矩阵
的第i行中,代表网格中心grid
i到其所有邻居网格中心的有向线段的状态指示符号的元素值为1,代表网格中心grid
i的所有邻居网格中心到网格中心grid
i的有向线段的状态指示符号的元素值为-1,其它元素值为0。N
m表示Sink节点m需要停留的锚点数量加1。n表示在无线传感网的监测区域中,每一行或每一列的网格数。其它符号含义和式(14)中的符号含义一致。
式(14)中的向量b1的具体定义如下:
式(19)中,Nm表示Sink节点m需要停留的锚点数量加1;n表示在无线传感网的监测区域中,每一行或每一列的网格数;其它符号含义和式(14)中的符号含义一致。
式(15)中的向量b2的具体定义如下:
(b2)2n(n-1),1=[1,1,...,1]T (20)
式(20)中,n表示在无线传感网的监测区域中,每一行或每一列的网格数。其它符号含义和式(15)中的符号含义一致。
在式(13)-(16)中的向量x的具体定义如下:
式(21)中,n表示在无线传感网的监测区域中,每一行或每一列的网格数。以
表示向量x中的元素,且
表示L(grid
v,grid
w)的状态指示符号,L(grid
v,grid
w)表示从网格中心grid
v到其邻居网格中心grid
w的有向线段,grid
v和grid
w分别表示网格v及其邻居网格w的中心;其中,
表示L(grid
v,grid
w)在Sink节点m的移动路径上,
表示L(grid
v,grid
w)不在Sink节点m的移动路径上。其它符号含义和式(13)中的符号含义一致。
如式(13)-(16)所示的模型是一个典型的(0,1)规划问题,可采用以下步骤计算该模型的最优解。
c1)确定Sink节点m的初始位置,将该初始位置v0作为起点,组成初始闭路径v0v0。
c2)令{v1,...,vi}表示已加入闭路径的锚点集合,在Pm-{v1,...,vi}中寻找一条与{v0,v1,...,vi}集合中任一移动位置的距离最近的锚点vi+1,其中,Pm表示Sink节点m需要停留的所有锚点的集合。
c3)将锚点vi+1插入到最短闭路径v0 v1...vi v0中,分别得到路径v0 vi+1 v1...viv0,v0 v1 vi+1...vi v0,......,v0 v1...vi vi+1 v0,选择路程最短的路径作为新的最短闭路径。
c4)如果已加入闭路径的锚点数量小于Nm,其中,Nm表示Sink节点m需要停留的锚点数量加1,则返回执行步骤c2),否则执行步骤c5)。
c5)根据所得的最短闭路径和所示的式(14)-(16)的约束条件,确定各个状态指示符号p
v,w。如网格中心v
0移动到网格中心v
1的路程,先从网格中心v
0沿着水平方向选择纵坐标相同的网格中心。当所选择的网格中心的横坐标和网格中心v
1的横坐标一致后,再沿着垂直方向选择横坐标相同的网格中心。最终确定了一个如式(13)-(16)所示的模型的可行解
作为本发明的另一种实施方式,可以采用经典的最优化方法直接求解式(13)-(16)所示的模型,但是由于模型中变量个数较多,所以求解复杂且收敛时间慢。
步骤六:所有Sink节点同时沿着各自的最短移动路径相应地采用静态收集或移动收集两种方法收集传感节点的数据。具体如下:
Sink节点的数据收集方式可分成Sink节点的静态收集和Sink节点的移动收集。Sink节点的静态收集就是当Sink节点停留在锚点上时,静态收集2跳范围内的传感节点数据。Sink节点的移动收集是当Sink节点从一个锚点移动到另一个锚点时,动态收集周围2跳范围内的传感节点数据。以数据收集方法示意图3举例说明Sink节点的数据收集。如图3所示,Sink节点的静态收集就是2个Sink节点,其中Sink节点1停留在锚点B1和B2(图3中使用五角星表示)上,Sink节点2停留在锚点B3和B4上(图3中使用五角星表示),分别收集到Sink节点最小传输跳数不超过2的传感节点A(图3中使用圆形表示)数据。在Sink节点从一个锚点移动到另一个锚点的过程中,Sink节点也收集周围2跳范围内的传感节点数据。由于Sink节点的移动收集过程复杂,为方便评估Sink节点移动过程中的数据收集量,将移动收集过程分解成多个停留在移动路径经过的网格中心收集数据。如图3所示,Sink节点1的移动路径共经过除锚点B1和B2外的2个网格中心C1和C2(图3中使用三角形表示),Sink节点2的移动路径共经过除锚点B3和B4外的2个网格中心C3和C4(图3中使用三角形表示)。由于网格中心到其邻居网格中心的距离较短,因此认为Sink节点的移动收集是在其移动路径经过的不包括锚点在内的每一个网格中心上的
停留时间内的静态数据收集。其中,area表示无线传感网的监测区域边长,u表示Sink节点的移动速率,n表示无线传感网的监测区域内一行的网格数。由此,移动Sink节点的数据收集问题转化成求解若干个停留时间不同的静态数据收集问题。Sink节点的静态数据收集问题可以采用分布式算法求解,即Sink节点启动收集数据后,不时发送数据请求包,每一个传感节点执行如下步骤(以传感节点i为例说明实现步骤):
d1)如果传感节点i接收到Sink节点的数据请求包,则将Sink节点地址和Sink节点的最短路径权值的预测值Ds(t)=0添加到邻居节点的信息表中,并按照式(22)所示的方法计算该传感节点i到Sink节点的链路权值wis;
式(22)中,s表示Sink节点,wis表示传感节点i到Sink节点的链路权值,dis表示传感节点i到Sink节点的距离,gis表示传感节点i发送给Sink节点的数据量;Eelec表示节点收发单位比特数据时电路的电子能耗,Eelec的值为50nJ/bit;εfs表示节点放大单位比特信号时信号放大器的电子能耗,εfs的值为100pJ/bit/m2;Re(j)表示传感节点j的剩余能量;y1是能耗因子,y1的取值范围为0.1-3,优选经验值为0.7;y2是接收剩余能量因子,y2的取值范围为0.1-3,优选经验值为1;
d2)传感节点i的最短路径权值的预测值如果不是无穷大且到Sink节点的数据传输跳数为1,则传感节点i不时向其所有邻居传感节点发送路由信息包,所述路由信息包的内容包括传感节点i的地址、到Sink节点的数据传输跳数和传感节点i的最短路径权值的预测值Di(t);
传感节点i如果接收到其邻居传感节点j的路由信息包,并获知邻居节点j的最短路径权值的预测值Dj(t),则在邻居节点的信息表中更新邻居节点j的最短路径权值的预测值Dj(t),并执行步骤d3);传感节点i如果未收到Sink节点的数据请求包且未收到其它节点的路由信息包,则传感节点i将其最短路径权值的预测值设为无穷大,并缓存该传感节点i的数据,向邻居节点发送路由失效包;
d3)按式(23)所示的方法计算传感节点i到其邻居传感节点j的链路权值:
式(23)中,wij表示传感节点i到其邻居传感节点j的链路权值,dij表示传感节点i到其邻居传感节点j的距离,gij表示传感节点i发送给邻居传感节点j的数据量,式(23)中的其它符号含义和式(22)中的符号含义一致;
按式(24)所示的方法计算传感节点i将邻居节点j作为其转发节点的最短路径权值的预测值
式(24)中,
表示传感节点i将邻居节点j作为其转发节点的最短路径权值的预测值,D
j(t)表示传感节点i的邻居传感节点j的最短路径权值的预测值,w
ij表示该传感节点i到邻居传感节点j的链路权值;
当传感节点i将邻居节点j作为其转发节点的最短路径权值的预测值
小于传感节点i的最短路径权值的预测值D
i(t)时,传感节点i选择向最小权值路径上的邻居节点j发送数据,且
其中,
表示传感节点i将邻居节点j作为其转发节点的最短路径权值的预测值,D
i(t)表示传感节点i的最短路径权值预测值;当传感节点i将邻居节点j作为其转发节点的最短路径权值的预测值
大于或等于传感节点i的最短路径权值的预测值D
i(t)时,传感节点i的转发节点保持不变;当传感节点i选择向Sink节点发送数据时,传感节点i到Sink节点的数据传输跳数为1;当传感节点i选择向其它传感节点发送数据时,传感节点i到Sink节点的数据传输跳数为2。
在Sink节点的数据收集过程中,传感节点i如果没有接收到邻居传感节点的最新路由信息包或发送数据后没有接收到该邻居节点的反馈包,则认为传感节点i到该邻居节点的链路出现故障。若传感节点i认为某链路出现故障,则在邻居节点信息表中删去该邻居节点的信息。
步骤七:完成一个时间周期的数据收集后,网关节点重新收集各传感节点的剩余能量信息。该时间周期根据节点的位置和基于无线传感网的实际应用项目的需求决定,取值范围一般为12-48小时,优取经验值为24小时。如果无线传感网各传感节点能量耗尽,则结束本发明方法,否则网关节点返回执行步骤二。
在本发明中,当完成一个时间周期的数据收集后,节点能耗不均衡,锚点的1跳范围内的传感节点消耗的能量比其它传感节点多,此时网关节点需要重新收集所有节点的信息,重新计算新的锚点,从而达到均衡节点能耗和提高网络生存时间的效果。因此在本发明中,需要不断执行步骤二到步骤七,直到无线传感网各传感节点能量耗尽为止。
本发明中,通过执行步骤一到步骤三,确定所有Sink节点需要停留的所有锚点。Sink节点停留在周围传感节点密集的锚点上收集数据,降低了其2跳通信范围内的传感节点的通信距离和能耗,让剩余能量大的传感节点在Sink节点附近中继数据,均衡了节点能耗。通过执行步骤四到步骤七,让多个Sink节点沿着最短移动路径收集数据,降低数据收集时延。综上,本发明通过执行步骤一到步骤七,提高了网络生存时间。
本发明中,网络生存时间的定义为:从网络开始运行到任意一个传感节点能量耗尽时,Sink节点的数据收集时间。
本发明中,节点能耗的定义如下:
式(25)中,Etotal表示当第一个传感节点的能量耗尽时所有传感节点的总能耗,|V|表示传感节点数,Tnet表示网络生存时间。
本发明中,数据收集时延tdelay是所有Sink节点的数据收集周期的平均值的二分之一,具体如式(26)所示:
式(26)中,
表示Sink节点m的一个数据收集周期,M表示网络中Sink节点的数量。在Sink节点m的一个数据收集周期内Sink节点m停留在锚点v上收集数据的时间定义为数据收集时间
经过数据收集时间
Sink节点m移动到下一个锚点。Sink节点m的一个数据收集周期
由Sink节点的停留时间和移动时间两部分组成,即如式(27)所示:
式(27)中,
表示Sink节点m的一个数据收集周期,
表示Sink节点m停留在锚点v上的数据收集时间,
表示网络中Sink节点m需要停留的锚点数量,
表示Sink节点m在其所有锚点上的停留时间的和,
表示Sink节点的移动时间。Gd表示所有网格中心的集合,u表示Sink节点m的移动速率,d
vw表示网格中心grid
v到其邻居网格中心grid
w的距离,式(27)中的其它符号含义和式(5)中的符号含义一致。