技术领域
本发明涉及一种无线传感器网络基于回收替换的覆盖空洞消除方法
背景技术
在静态节点组成的传感器网络里,节点随机部署后,有覆盖空洞, 冗余节点。找到冗余节点。冗余节点造成网络能量的浪费,空洞造成 覆盖率,事件探测率的降低。另一方面,节点能量是有限的,事件频 发的区域的节点能量会很快耗尽,产生覆盖空洞,而这个区域又是需 要重点监控的区域,由于敌人攻击而损坏的节点也会产生新的空洞。 这些都会导致传感器网络的性能下降。如何解决覆盖空洞,增强覆盖 是近年的研究热点之一。解决此类问题的方法主要是冗余节点的重新 部署和增量部署。
Wang等人在所有节点都是可以移动的基础上提出了一种级联式通 过平衡能耗和节点反应时间的方法来移动冗余节点去填补空洞区域。 这些算法都是冗余节点的再部署,没有考虑需要新节点修补空洞的情 况。而且节点的重新部署要求所有或大部分传感器节点具有移动性 [6],移动节点造价比较高,会造成成本的大量增加。Yongguo Mei等 人提出了在一个大规模的静态传感器网络使用小数量的移动机器人来 取代失效的传感器。他们分别采用集中式和分布式算法协调机器人运 动,使移动机器人运动过程中能量消耗以及前期的消息最少。主要考 察了失效节点的修补问题,没有综合考虑整个网络的不同节点状态。 增量部署就是重新部署新的节点,由于节点硬件的不可再生,开销也 比较大;二是硬件和废弃电池容易造成环境污染。针对此现状,本发 明提出基于节点回收替换的空洞修复算法,以一个移动机器人回收冗 余节点,对覆盖空洞区域增量部署新节点。对一系列冗余节点(二类 节点)和覆盖空洞点,能量耗尽节点,组织适当的行车线路,使移动 修理节点有序地通过它们,在满足一定的约束条件(货物需求量、发送 量、交发货时间、车辆容量限制、行驶里程限制、时间限制等)下,达 到一定问题的目标(如路程最短、费用最少、时间尽量少等)。这既保 证网络覆盖性能,又回收了冗余节点。
发明内容
为了克服已有的覆盖空洞修补方法的不足,本发明提供一种无线 传感器网络覆盖空洞消除实现方法。
本发明解决其技术问题所采用的技术方案是:
1基于网格的覆盖空洞检测算法
在N个节点随机部署后,采用leach协议分簇,采用网格法计算 覆盖度C0,覆盖空洞数H和冗余节点数R(网络中只有这二类节点)。 sink节点收集这些信息后,通知移动节点。这时能量充电站,sink节 点,移动机器人处于同一个位置。基于网格的覆盖空洞检测算法具体 操作步骤如下:
基于网格的覆盖空洞检测算法具体操作步骤如下:
(1)将感知区间用边长为1的网格划分出来,确定网格的中心点。 计算每个网格中心点与各个节点的距离,从而判断该网格是否被覆盖。 将未被覆盖的网格位置记录下来。被第k个节点覆盖的网格标记定义 一个矩阵,其元素表示网格点,由公式1来判定网格
是否属于节 点k的感应区域。
(2)设置网格对应的覆盖矩阵,覆盖度为0的网格,ci,j=0,覆盖 度为1的网格,ci,j=1。依此类推。
(3)对连续的未被覆盖的网格进行合并,合并的时候,采用宽度搜 索和深度搜索相结合的方法可以得空洞的数量和每一个空洞面积,同 时确定漏洞的位置。
(4)计算每个节点的覆盖网格被邻居节点重叠覆盖的比率,如果节 点i覆盖范围内的网格覆盖度大于等于2,则此网格被重叠覆盖。如果 重叠覆盖率大于90%,此节点为冗余节点。
(5)分别计算覆盖空洞总数、重点空洞总数和临界空洞总数,为下 一步的空洞修补作准备。
2计算移动机器人携带的节点数。
需要回收替换的A类节点数为H1,初始布置的网络,需要回收的 节点数为H1=0,即H1=0如果空洞面积较大,可能要用2个或者更多 的节点修补空洞,这里假设空洞面积较小,最多用2个节点修补空洞 可以满足要求。需要用2个节点修补的空洞数为H2。需要一个节点修 补的空洞数为H3。则修补覆盖空洞,替换节点总共需要的节点数为 M1。
M1=Mr+H1+2H2+H3 (2) 公式(2)中,Mr表示上一周期中未被替换的剩余节点数,该值可能 为0。假设网络里冗余节点数为R,移动机器人需要携带的节点数为
在公式(3)中,In表示在第n轮替换周期中被替换之前没有冗余节点 可选的节点数。其中第三种情况表示,冗余节点数大于修补覆盖空洞 需要的节点数时,移动机器人回收,带回的冗余节点数为R-M1+In。 移动机器人实际携带的节点数为
如果需要携带节点数大于Q,这时有Mr=M-Q,先替换节点,再修补 面积较大的空洞。
3回收替换路径计算;根据距离空洞最近的冗余节点修补空洞的原则, 移动机器人在网络中移动,回收冗余节点,修补空洞。这时目标函数 变为
采用粒子群算法进行路径分析,计算移动节点替换回收节点的移动路 径。
4、移动机器人遍历各个服务点,回收替换节点,这时的覆盖密度为
5、移动节点回到能量站后立给回收的节点充电,给移动节点充电。假 设给移动节点充电时间为Tc。
6计算下一次回收替换的时间,回到步骤2,触发节点的回收替换。回 收替换周期时间计算方法如下:
假设移动机器人回到充电站的时间为T0,充电完成时间为Tc,能 量站收到第一个替换请求的时间为Tr1,依次为Tr2,Tr3......,且 Tr1<Tr2<Tr3<…<Trn<…
当在Tc内,到达的请求n>1.5Q时,认为网络需要增加节点部署。
当在Tc内,到达的请求n<0.1Q时,认为网络达到平衡状态。
本申请相对现有技术而言所具有的优点和效果。
本发明的工作原理是:设在sink节点位置上有一移动机器人,最 大载重量Q个节点,需要对n个客户(节点)进行运输配送,移动机器 人从sink出发给若干个客户送货,最终回到中初始位置,对一系列装 货点(二类节点)和卸货点(三类节点)(一类节点既要装货又要卸货), 组织适当的行车线路,使车辆有序地通过它们,在满足一定的约束条 件(货物需求量、发送量、交发货时间、车辆容量限制、行驶里程限制、 时间限制等)下,达到一定问题的目标(如路程最短、费用最少、时间 尽量少等)。
本发明方法进一步分析其性能如下:N个节点随机部署覆盖面积为 A的区域,单节点的能量为e,节点数为N。部署后空洞面积、冗余区 域、正常区域的面积分别为A1、A2、A3;节点数分别为N1、N2、N3。这 时
由公式(7)可知,此时的覆盖密度每单位面积内能量 称为能量密度,
在空洞A1处,由于没有节点,覆盖密度, 能量密度都为0,在冗余节点A2处,至少有2个以上的节点,此处的 覆盖密度C1>=2C0,和能量密度E1>=2E0。覆盖密度和能量密度差别很 大,很不均匀。在节点没有增加处,覆盖密度和能量密度为C0,E0。即,
即,
用冗余节点去修补空洞,需要的时间为tr,这期间单个节点消耗 的能量为ε,在节点没有增减区域A3,覆盖密度和能量密度为C0, 在空洞区域A1,覆盖密度和能量密度提高到C0,
因为冗余节点的移去,冗余区域A2的覆盖密度和 能量密度也降低到C0,E2。
如果冗余节点数量有限,需要额外的节点Mn去填补空洞。这时空 洞区域分为用冗余节点修补的原空洞区域A11,用Mn节点修补的原空 洞区域A12。整个覆盖区域覆盖密度变为和能量密度
在节点没有增减区域A3,覆盖密度和能量密度仍为C0,E2;在用 冗余节点修补的原空洞区域A11,覆盖密度和能量密度分布提高到C0, E2;在区域A12,覆盖密度和能量密度各自提高到了C0,这 时E3稍稍大于E2。
由以上分析可见,本发明的有益效果主要表现在:1、本发明在没有 消耗网络内的能量,而且还给网络增加了能量。2、把冗余节点移动到 覆盖空洞处,消除了无效的能量消耗;使整个网络的能量密度更均匀, 见图1,图2。
附图说明
图1是修改前后不同区域的能量密度差。
图2修改前后不同区域的覆盖密度差。
图3各个被服务节点的位置分布。
图4基于PSO的无约束路径选择图
图5基于PSO的带约束条件路径选择图
图6节点被替换时剩余可用时间
图7节点被替换时剩余可用能量
具体实施方式
下面结合附图对本发明作进一步描述。
参照图4、图5,图6,图7,本发明解决其技术问题所采用的技 术方案是:
一种基于回收替换的覆盖空洞消除方法,所述的方法包括以下步骤:
步骤1,基于网格的覆盖空洞检测算法
在N个节点随机部署后,采用leach协议分簇,采用网格法计算 覆盖度C0,覆盖空洞数H和冗余节点数R(网络中只有这二类节点); sink节点收集这些信息后,通知移动节点;这时能量充电站,sink节 点,移动机器人处于同一个位置;基于网格的覆盖空洞检测算法具体 操作步骤如下:
基于网格的覆盖空洞检测算法具体操作步骤如下:
(1.1)将感知区间用边长为1的网格划分出来,确定网格的中心点; 计算每个网格中心点与各个节点的距离,从而判断该网格是否被覆盖; 将未被覆盖的网格位置记录下来;被第k个节点覆盖的网格标记定义 一个矩阵,其元素表示网格点,由公式1来判定网格
是否属于节 点k的感应区域。;
(1.2)设置网格对应的覆盖矩阵,覆盖度为0的网格,覆盖度为1 的网格,ci,j=1,依此类推;
(1.3)对连续的未被覆盖的网格进行合并,合并的时候,采用宽度 搜索和深度搜索相结合的方法可以得空洞的数量和每一个空洞面积, 同时确定漏洞的位置;
(1.4)计算每个节点的覆盖网格被邻居节点重叠覆盖的比率,如果 节点i覆盖范围内的网格覆盖度大于等于2,则此网格被重叠覆盖;如 果重叠覆盖率大于90%,此节点为冗余节点;
(1.5)分别计算覆盖空洞总数、重点空洞总数和临界空洞总数,为 下一步的空洞修补作准备;
步骤2,计算移动机器人携带的节点数;
需要回收替换的A类节点数为H1,初始布置的网络,需要回收的 节点数为H1=0,即H1=0如果空洞面积较大,可能要用2个或者更多 的节点修补空洞,这里假设空洞面积较小,最多用2个节点修补空洞 可以满足要求;需要用2个节点修补的空洞数为H2;需要一个节点修 补的空洞数为H3;则修补覆盖空洞,替换节点总共需要的节点数为 M1;
M1=Mr+H1+2H2+H3 (2) 公式(2)中,Mr表示上一周期中未被替换的剩余节点数,该值可能 为0;假设网络里冗余节点数为R,移动机器人需要携带的节点数为
在公式(3)中,In表示在第n轮替换周期中被替换之前没有冗余节点 可选的节点数;其中第三种情况表示,冗余节点数大于修补覆盖空洞 需要的节点数时,移动机器人回收,带回的冗余节点数为R-M1+In; 移动机器人实际携带的节点数为
如果需要携带节点数大于Q,这时有Mr=M-Q,先替换节点,再修补 面积较大的空洞;
步骤3,回收替换路径计算;根据距离空洞最近的冗余节点修补空洞 的原则,移动机器人在网络中移动,回收冗余节点,修补空洞;这时 目标函数变为
采用粒子群算法进行路径分析,计算移动节点替换回收节点的移动路 径;
步骤4,移动机器人遍历各个服务点,回收替换节点,这时的覆盖密 度为
步骤5,移动节点回到能量站后立给回收的节点充电,给移动节点充 电。假设给移动节点充电时间为Tc;
步骤6,计算下一次回收替换的时间,回到步骤2,触发节点的回收替 换;回收替换周期时间计算方法如下:
假设移动机器人回到充电站的时间为T0,充电完成时间为Tc,能量站 收到第一个替换请求的时间为Tr1,依次为Tr2,Tr3......,且 Tr1<Tr2<Tr3<…<Trn<…
当在Tc内,到达的请求n>1.5Q时,认为网络需要增加节点部署;
当在Tc内,到达的请求n<0.1Q时,认为网络达到平衡状态。
各步骤的具体应用例子如下:
1基于网格的覆盖空洞检测算法
在N个节点随机部署后,采用网格法计算覆盖度,覆盖空洞数 H和冗余节点数R(网络中只有这二类节点)。sink节点收集这些信息 后,通知移动节点。这时能量充电站,sink节点,移动机器人处于同 一个位置。得到需要服务的节点如图3。节点位置结果为表1。
2计算移动机器人携带的节点数。
需要回收替换的A类节点数为H1,初始布置的网络,需要回收的 节点数为H1=0,即H1=0如果空洞面积较大,可能要用2个或者更多 的节点修补空洞,这里假设空洞面积较小,最多用2个节点修补空洞 可以满足要求。需要用2个节点修补的空洞数为H2。需要一个节点修 补的空洞数为H3。则修补覆盖空洞,替换节点总共需要的节点数为 M1。进一步计算如前所述步骤2。
表1节点的坐标分布
2计算移动机器人携带的节点数。
需要回收替换的A类节点数为H1,初始布置的网络,需要回收的 节点数为H1=0,即H1=0如果空洞面积较大,可能要用2个或者更多 的节点修补空洞,这里假设空洞面积较小,最多用2个节点修补空洞 可以满足要求。需要用2个节点修补的空洞数为H2。需要一个节点修 补的空洞数为H3。则修补覆盖空洞,替换节点总共需要的节点数为 M1。进一步计算如前所述步骤2。
3回收替换路径计算;根据距离空洞最近的冗余节点修补空洞的原 则,移动机器人在网络中移动,回收冗余节点,修补空洞。采用粒子 群算法进行路径分析,计算移动节点替换回收节点的移动路径。结果 如图4,图5所示。在图4的移动路径选择图中,路径为0→4→9→11 →7→6→1→2→5→3→10→8→12→0;图5中剔除未选择节点基于 PSO选择的路径均为0→4→9→11→7→6→1→5→3→8→12→0。从前 两者的对比中,可以很清楚地看到有两个三类节点在路径选择中被放 弃了。这是因为在路径选择的过程中,该节点是三类节点且与最近的 被选择的节点间距离超过了30m,如果不放弃2和10号冗余节点的话, 移动机器人路径将会超出本身能量的承受范围。通过图5的数据可以 看出,放弃2、10节点节省了将近一半的路程,这个对于移动机器人 的能量节约来说非常有利。被替换节点的能量可利用率也是一个衡量算法优 越性的指标。被替换节点剩余能量越少,能量利用率越高。图6、图7是被替 换节点的替换时间和替换时的剩余能量。
5、移动机器人遍历各个服务点,回收替换节点,这时的覆盖密度为
6、移动节点回到能量站后立给回收的节点充电,给移动节点充电。假 设给移动节点充电时间为Tc。计算下一次回收替换的时间,回到步骤 2,触发节点的回收替换。