基于簇的无线传感器网络的外围边界和覆盖空洞识别方法与流程

文档序号:15327680发布日期:2018-09-04 19:20阅读:149来源:国知局
本发明涉及一种基于簇的无线传感器网络的外围边界和覆盖空洞识别方法,属于无线传感器网络
技术领域

背景技术
:无线传感器网络是由大量低成本、低功耗、小体积、多功能和进行短距离通信的多跳自组织型网络,尤其在危险和无人值守的区域其可以通过机载抛洒的方式随机部署用于执行监测任务。这种优良的特性使其在军事和民用领域展现出了极大的潜在应用价值。无线传感器网络的工作模式需要高密度的网络覆盖,这也是衡量其服务质量的一个重要标识。然而,囿于无线传感器网络部署方式,节点抛洒不均匀所形成的网络覆盖空洞成为制约其服务质量的一个无法逾越的屏障,而且无人值守的工作环境使传感器节点在遭受外力破坏和能源耗竭时极难替换成为产生覆盖空洞又一重要因素。覆盖空洞的产生不仅制约了无线传感器网络的服务质量,更严重的是使监测数据无法传送或传送错误从而导致监测失败。因而覆盖空洞是无线传感器网络研究和应用中不可回避的问题。为解决覆盖空洞对无线传感器网络服务质量的影响,目前的研究中已经提出一些针对覆盖空洞的识别方法,然而目前大多数的方法主要集中在覆盖空洞边缘节点的识别,同时现存的一些覆盖空洞识别方法存在对网络密度要求高,识别精度低和识别过程能耗高的问题。技术实现要素:为了解决现有技术的不足,本发明提供了一种基于簇的无线传感器网络的外围边界和覆盖空洞识别方法,基于簇聚类实现无线传感器网络边界和覆盖空洞识别,不依赖位置信息,无需使用节点定位装置因而可有效降低无线传感器网络的部署成本和节点运行的能量消耗,也可实现在无线传感器网络定位装置失效情况下的网络边界和覆盖空洞识别问题,算法复杂度低,节省了运行时间,识别精度达到90%以上,可以有效延长无线传感器网络的生命周期。本发明为解决其技术问题所采用的技术方案是:提供了一种基于簇的无线传感器网络的外围边界和覆盖空洞识别方法,包括以下步骤:(1)设无线传感器网络的节点集为Ω,确认Ω中各节点的k跳邻居节点,用Nk(Si)表示Ω中节点Si的k跳邻居节点集;设无线传感器网络的边界节点集已知,表示为B_Nodes,Ω中节点各配置有一个随机计数单元Timer,Timer根据节点ID随机初始化为一个任意正整数;(2)在Ω中随机选择一个节点Si,以节点Si为根节点生成最短路径树在中找到任意一个深度最大的叶子节点Sk作为无线传感器网络中的第一个信标节点,k≠i;(3)以节点Sk为根节点生成最短路径树在中找到任意一个深度最大的叶子节点Sl作为无线传感器网络中的第二个信标节点,l≠k;则Sk,Sl∈B_Nodes;(4)两个信标节点Sk和Sl的Timer开始每隔设置的时间T自减1,直到为0,当信标节点的Timer值为0时将自己初始化为簇头节点,并分别向他们的属于集合B_Nodes的k跳邻居节点发送邀请消息,以邀请其加入以信标节点自己为簇头节点的簇;(5)收到邀请消息的k跳邻居节点执行以下过程:设当前收到邀请消息的k跳邻居节点为节点A,节点A查看发送邀请信息的簇头节点的簇成员是否已经达到设置的成员数目上限,若簇已满则丢弃该邀请消息;否则,节点A将自己设为簇头节点的簇的成员并向簇头节点回复确认消息,同时向其1跳邻居节点广播确认消息;(6)信标节点Sk和信标节点Sl在收到各自k跳邻居节点返回的的确认消息后分别建立簇Cluster(Sk)和Cluster(Sl);(7)阈值时间ζ后,集合B_Nodes中的非信标节点执行以下过程:设当前非信标节点为节点C,该节点的Timer开始每隔设置的时间T自减1,直到为0;检查节点C的计数器Timer值是否为0,如果为0且节点C不是簇成员也不是簇头节点,则将节点C初始化为簇头节点,向其k跳邻居节点发送邀请消息以邀请其加入节点C的簇;(8)收到邀请消息的k跳邻居节点执行以下过程:设当前收到邀请的k跳邻居节点为节点D,检查节点D是否已经是其他簇的成员,如果节点D已经属于2个其他簇则丢弃该邀请消息;否则,查看节点C的簇是否已经达到设置的成员数目上限,若节点C的簇已满则丢弃该邀请消息;否则,将节点D设为节点C的簇的成员并向节点C回复确认消息,同时向节点D的1跳邻居节点广播确认消息;(9)簇初始化结束后,节点Sk在其簇内寻找一个同时属于两个不同簇的交叉簇成员Sj,Sj∈Cluster(Sk)∩Sj∈Cluster(Sm),Cluster(Sm)为另一个以Sm为簇头节点的簇,建立由Sk到Sj的最短路径t1;(10)交叉簇成员Sj建立一条到簇头节点Sm的最短路径t2;Sm在其簇内寻找符合下述公式的交叉簇节点Sj+1,并建立由Sm到Sj+1的最短路径t3;(11)重复步骤(10)直到建立一条Sk→Sl的最短路径;(12)节点Sl在其簇内寻找一个同时属于两个不同簇的交叉簇成员Sj’,Sj′∈Cluster(Sl)∩Sj′∈Cluster(Sm′),Cluster(Sm′)为另一个以Sm′为簇头节点的簇,建立由Sl到Sj’的最短路径t1’;(13)交叉簇成员Sj’建立一条到簇头节点Sm′的最短路径t2’;Sm′在其簇内寻找符合下述公式的交叉簇节点Sj’+1,并建立由Sm′到Sj’+1的最短路径t3’;(14)重复步骤(13)直到建立一条Sl→Sk的最短路径,并且该路径不经过Sk→Sl所途径的簇或节点;(15)将Sk→Sl的最短路径和Sl→Sk的最短路径合并得到Sk→Sl→Sk闭合路径,该路径经过的簇所含的节点为无线传感器网络的外围边界节点;(16)更新B_Nodes,使集合B_Nodes除去Sk→Sl→Sk经过的簇,如果集合B_Nodes不为空则以节点号最小的簇头节点Sp建立一条到剩余簇头节点的最短路径树找出中深度最大的簇头节点Sq,p≠q,建立Sp→Sq的最短路径和Sq→Sp的最短路径,将Sp→Sq的最短路径和Sq→Sp的最短路径合并得到Sp→Sq→Sp闭合路径,该路径经过的簇所含的节点形成无线传感器网络的一个覆盖空洞;(17)更新B_Nodes,使集合B_Nodes除去Sp→Sq→Sp经过的簇,若所得B_Nodes中的簇不为空或大于1,则返回步骤(16),得到无线传感器网络的一个新的覆盖空洞;直到B_Nodes中的簇为空,得到无线传感器网络的全部覆盖空洞;如果B_Nodes中的剩余簇为1,判断剩余簇成员是否能形成一个闭合环形,如果能则将该闭合环形作为一个覆盖空洞返回并结束识别过程,如果不能形成闭合环则结束全部覆盖空洞识别过程。步骤(1)中,通过以下过程确认无线传感器网络中各节点的k跳邻居节点:无线传感器网络中各节点通过广播发送包含自身ID和剩余能量的请求报文,该发送请求报文的节点为广播节点;邻近节点如能收到该广播节点的请求报文,则邻近节点在广播节点的通信范围内,邻近节点将自己设为广播节点的1跳邻居节点,向其返回包含自身ID和剩余能量的应答报文;广播节点收到应答报文后检查邻近节点是否存在于自己的1跳邻居表内,如果不存在则将邻近节点添加至1跳邻居表;经过设置的阈值时间后广播节点不再接收应答报文,而向其所有1跳邻居节点发送交换报文;邻居节点收到交换报文后向广播节点发送自己的1跳邻居表,广播节点根据该1跳邻居表确定其2跳邻居节点;为收集k跳邻居,广播节点向其k-1跳节点发送邻居交换请求报文,k-1跳邻居节点返回交换报文后利用下面的公式计算其k跳邻居节点:其中,Si表示当前节点,v表示Si的k-1跳邻居,Nk-1(Si)表示Si的k-1跳邻居节点集,Nk(Si)表示Si的k跳邻居节点集,N1(v)表示v的1跳邻居节点集,由1跳邻居表获得,k=2,…,m。步骤(8)中,节点D如果在收到簇头节点C的邀请消息的同时接收到其他节点的邀请消息,则节点D判断其是否已经是其他簇的成员以前,找出发送邀请消息的所有簇头节点中与节点D距离最近、剩余能量最多、簇成员最少的节点,按照步骤(8)所述的过程判断节点D是否加入该节点的簇。步骤(9)执行前,集合B_Nodes中的簇头节点向各自的簇成员发送询问消息,如果簇成员在经过设置的阈值时间δ后没有再收到簇邀请消息,则簇初始化结束。步骤(16)包括以下过程:(16-1)簇头节点Sp在其簇内寻找一个同时属于两个不同簇的交叉簇成员Su,Su∈Cluster(Sp)∩Su∈Cluster(Sw),Cluster(Sw)为另一个簇头节点Sw的簇,建立由Sp到Su的最短路径t11;(16-2)交叉簇成员Su建立一条到簇头节点Sw的最短路径t12;Sw在其簇内寻找符合下述公式的交叉簇节点Su+1,并建立由Sw到Su+1的最短路径t13;(16-3)重复步骤(16-2)直到建立一条Sp→Sq的最短路径;(16-4)簇头节点Sq在其簇内寻找一个同时属于两个不同簇的交叉簇成员Su’,Su′∈Cluster(Sq)∩Su′∈Cluster(Sw′),Cluster(Sw′)为另一个簇头节点Sw′的簇,建立由Sq到Su’的最短路径t11’;(16-5)交叉簇成员Su’建立一条到簇头节点Sw′的最短路径t12’;Sw′在其簇内寻找符合下述公式的交叉簇节点Su’+1,并建立由Sw′到Su’+1的最短路径t13’;(16-6)重复步骤(16-5)直到建立一条Sq→Sp的最短路径,并且该路径不经过Sp→Sq所途径的簇或节点;(16-7)将Sp→Sq的最短路径和Sq→Sp的最短路径合并得到Sp→Sq→Sp闭合路径,该路径经过的簇所含的节点为无线传感器网络的覆盖空洞节点。本发明基于其技术方案所具有的有益效果在于:(1)本发明的基于簇的无线传感器网络的外围边界和覆盖空洞识别方法基于已识别的无线传感器网络边界节点实现了无线传感器网络节点的分类;(2)本发明的基于簇的无线传感器网络的外围边界和覆盖空洞识别方法基于簇技术实现了不依赖位置信息的无线传感器网络外围边界和内部覆盖空洞的识别;(3)本发明的基于簇的无线传感器网络的外围边界和覆盖空洞识别方法不依赖位置信息,可有效降低无线传感器网络的部署成本,也可实现在无线传感器网络定位装置失效情况下的网络边界和覆盖空洞识别问题;(4)本发明的基于簇的无线传感器网络的外围边界和覆盖空洞识别方法算法复杂度低,节省了运行时间,识别精度达到90%以上;(5)本发明不依赖节点的位置信息减少了由于节点定位带来的能量消耗,可有效延长无线传感器网络的生命周期。附图说明图1是无线传感器网络结构示意图。图2网络边界节点分簇示意图。图3由信标节点开始拓扑的最短路径示意图。图4无线传感器网络外围边界和内部空洞结构示意图。具体实施方式下面结合附图和实施例对本发明作进一步说明。本发明提供了一种基于簇的无线传感器网络的外围边界和覆盖空洞识别方法,包括以下步骤:(1)设无线传感器网络的节点集为Ω,确认Ω中各节点的k跳邻居节点,用Nk(Si)表示Ω中节点Si的k跳邻居节点集;设无线传感器网络的边界节点集已知,表示为B_Nodes,Ω中节点各配置有一个随机计数单元Timer,Timer根据节点ID随机初始化为一个任意正整数;可以通过以下过程确认无线传感器网络中各节点的k跳邻居节点:无线传感器网络中各节点通过广播发送包含自身ID和剩余能量的请求报文,该发送请求报文的节点为广播节点;邻近节点如能收到该广播节点的请求报文,则邻近节点在广播节点的通信范围内,邻近节点将自己设为广播节点的1跳邻居节点,向其返回包含自身ID和剩余能量的应答报文;广播节点收到应答报文后检查邻近节点是否存在于自己的1跳邻居表内,如果不存在则将邻近节点添加至1跳邻居表;经过设置的阈值时间后广播节点不再接收应答报文,而向其所有1跳邻居节点发送交换报文;邻居节点收到交换报文后向广播节点发送自己的1跳邻居表,广播节点根据该1跳邻居表确定其2跳邻居节点;为收集k跳邻居,广播节点向其k-1跳节点发送邻居交换请求报文,k-1跳邻居节点返回交换报文后利用下面的公式计算其k跳邻居节点:其中,Si表示当前节点,v表示Si的k-1跳邻居,Nk-1(Si)表示Si的k-1跳邻居节点集,Nk(Si)表示Si的k跳邻居节点集,N1(v)表示v的1跳邻居节点集,由1跳邻居表获得,k=2,…,m。参照图1,灰色圆点表示的是边界节点。(2)在Ω中随机选择一个节点Si,以节点Si为根节点生成最短路径树在中找到任意一个深度最大的叶子节点Sk作为无线传感器网络中的第一个信标节点,k≠i;(3)以节点Sk为根节点生成最短路径树在中找到任意一个深度最大的叶子节点Sl作为无线传感器网络中的第二个信标节点,l≠k;则Sk,Sl∈B_Nodes;(4)两个信标节点Sk和Sl的Timer开始每隔设置的时间T自减1,直到为0,当信标节点的Timer值为0时将自己初始化为簇头节点,并分别向他们的属于集合B_Nodes的k跳邻居节点发送邀请消息,以邀请其加入以信标节点自己为簇头节点的簇;(5)收到邀请消息的k跳邻居节点执行以下过程:设当前收到邀请消息的k跳邻居节点为节点A,节点A查看发送邀请信息的簇头节点的簇成员是否已经达到设置的成员数目上限,若簇已满则丢弃该邀请消息;否则,节点A将自己设为簇头节点的簇的成员并向簇头节点回复确认消息,同时向其1跳邻居节点广播确认消息;(6)信标节点Sk和信标节点Sl在收到各自k跳邻居节点返回的的确认消息后分别建立簇Cluster(Sk)和Cluster(Sl);(7)阈值时间ζ后,集合B_Nodes中的非信标节点执行以下过程:设当前非信标节点为节点C,该节点的Timer开始每隔设置的时间T自减1,直到为0;检查节点C的计数器Timer值是否为0,如果为0且节点C不是簇成员也不是簇头节点,则将节点C初始化为簇头节点,向其k跳邻居节点发送邀请消息以邀请其加入节点C的簇;(8)收到邀请消息的k跳邻居节点执行以下过程:设当前收到邀请的k跳邻居节点为节点D,检查节点D是否已经是其他簇的成员,如果节点D已经属于2个其他簇则丢弃该邀请消息;否则,查看节点C的簇是否已经达到设置的成员数目上限,若节点C的簇已满则丢弃该邀请消息;否则,将节点D设为节点C的簇的成员并向节点C回复确认消息,同时向节点D的1跳邻居节点广播确认消息;节点D如果在收到簇头节点C的邀请消息的同时接收到其他节点的邀请消息,则节点D判断其是否已经是其他簇的成员以前,找出发送邀请消息的所有簇头节点中与节点D距离最近、剩余能量最多、簇成员最少的节点,按照步骤(8)所述的过程判断节点D是否加入该节点的簇。集合B_Nodes中的簇头节点向各自的簇成员发送询问消息,如果簇成员在经过设置的阈值时间δ后没有再收到簇邀请消息,则簇初始化结束。簇初始化结果如图2所示。簇结构可以如下表所示:簇号簇头簇容量簇成员成员与簇头距离簇头剩余能量表1无线传感器网络簇结构(9)簇初始化结束后,参照图3,节点Sk在其簇内寻找一个同时属于两个不同簇的交叉簇成员Sj,Sj∈Cluster(Sk)∩Sj∈Cluster(Sm),Cluster(Sm)为另一个以Sm为簇头节点的簇,建立由Sk到Sj的最短路径t1;(10)交叉簇成员Sj建立一条到簇头节点Sm的最短路径t2;Sm在其簇内寻找符合下述公式的交叉簇节点Sj+1,并建立由Sm到Sj+1的最短路径t3;(11)重复步骤(10)直到建立一条Sk→Sl的最短路径;如图4所示。(12)节点Sl在其簇内寻找一个同时属于两个不同簇的交叉簇成员Sj’,Sj′∈Cluster(Sl)∩Sj′∈Cluster(Sm′),Cluster(Sm′)为另一个以Sm′为簇头节点的簇,建立由Sl到Sj’的最短路径t1’;(13)交叉簇成员Sj’建立一条到簇头节点Sm′的最短路径t2’;Sm′在其簇内寻找符合下述公式的交叉簇节点Sj’+1,并建立由Sm′到Sj’+1的最短路径t3’;(14)重复步骤(13)直到建立一条Sl→Sk的最短路径,并且该路径不经过Sk→Sl所途径的簇或节点;(15)将Sk→Sl的最短路径和Sl→Sk的最短路径合并得到Sk→Sl→Sk闭合路径,该路径经过的簇所含的节点为无线传感器网络的外围边界节点;如图4所示,实线连接的外层节点为网络边界节点。为节约能量,Sk→Sl→Sk路径上的节点保持活跃状态,所经过的簇内其他节点进入休眠状态;经过时间ξ后,簇头节点利用上述步骤重新建立另一条由Sk→Sl→Sk的最短路径,但是路径不经过当前的活跃节点,当前路径中的活跃节点进入休眠状态。(16)更新B_Nodes,使集合B_Nodes除去Sk→Sl→Sk经过的簇,如果集合B_Nodes不为空则以节点号最小的簇头节点Sp建立一条到剩余簇头节点的最短路径树找出中深度最大的簇头节点Sq,p≠q,建立Sp→Sq的最短路径和Sq→Sp的最短路径,将Sp→Sq的最短路径和Sq→Sp的最短路径合并得到Sp→Sq→Sp闭合路径,该路径经过的簇所含的节点形成无线传感器网络的一个覆盖空洞;具体包括以下过程:(16-1)簇头节点Sp在其簇内寻找一个同时属于两个不同簇的交叉簇成员Su,Su∈Cluster(Sp)∩Su∈Cluster(Sw),Cluster(Sw)为另一个簇头节点Sw的簇,建立由Sp到Su的最短路径t11;(16-2)交叉簇成员Su建立一条到簇头节点Sw的最短路径t12;Sw在其簇内寻找符合下述公式的交叉簇节点Su+1,并建立由Sw到Su+1的最短路径t13;(16-3)重复步骤(16-2)直到建立一条Sp→Sq的最短路径;(16-4)簇头节点Sq在其簇内寻找一个同时属于两个不同簇的交叉簇成员Su’,Su′∈Cluster(Sq)∩Su′∈Cluster(Sw′),Cluster(Sw′)为另一个簇头节点Sw′的簇,建立由Sq到Su’的最短路径t11’;(16-5)交叉簇成员Su’建立一条到簇头节点Sw′的最短路径t12’;Sw′在其簇内寻找符合下述公式的交叉簇节点Su’+1,并建立由Sw′到Su’+1的最短路径t13’;(16-6)重复步骤(16-5)直到建立一条Sq→Sp的最短路径,并且该路径不经过Sp→Sq所途径的簇或节点;(16-7)将Sp→Sq的最短路径和Sq→Sp的最短路径合并得到Sp→Sq→Sp闭合路径,该路径经过的簇所含的节点为无线传感器网络的覆盖空洞节点。(17)更新B_Nodes,使集合B_Nodes除去Sp→Sq→Sp经过的簇,若所得B_Nodes中的簇不为空或大于1,则返回步骤(16),得到无线传感器网络的一个新的覆盖空洞;直到B_Nodes中的簇为空,得到无线传感器网络的全部覆盖空洞;如果B_Nodes中的剩余簇为1,判断剩余簇成员是否能形成一个闭合环形,如果能则将该闭合环形作为一个覆盖空洞返回并结束识别过程,如果不能形成闭合环则结束全部覆盖空洞识别过程。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1