第八周论文学习 A tree-cluster-based data-gathering algorithm for industrial WSNs

    出版源 :《Access IEEE》, 2015, 3:381-396   声明:以下均为阅读论文笔记。


 

算法简称为:TCBDGA

 

问题:无线传感器网络讨论最多的的就是网络生存周期(能量消耗),数据延迟以及网络连接性能的优化。

 

以下主要介绍基于树-簇结构的数据收集算法,应用于工业无线传感器网络,主要是能量消耗的优化。

WSNs中影响能耗的因素有三方面:监测、接受、转发。其中监测相较于其他两种方式,能耗可以忽略。所以当K bits大小的数据传输时我们的能耗计算公式如下:

 

模型建立 : 如图1

假设在LXL区域内随机分布了N个传感器节点。 基站BS位于中心,并且移动节点有无线能能量(随时可以充能)、内存以及计算能力。

所有传感器节点的初始能量均为E0; 

每一个传感器节点的地理位置可测(利用其它技术可以做到,这里不做介绍),这样移动节点就可以知道每一个传感器节点的位置;

每一个node(传感器节点简称,以下同)的传输范围为Rs,不考虑通信失败的存在;

每一轮的数据收集过程中,同一个node只收集、转发一次数据。

TCBDGA算法的具体实现过程

先看图有个大概的理解,理解了之后,再看具体实现算法。

                                               

 

首先,LXL区域中的node,根据各自剩余能量、自身到BS的距离、相邻节点的个数等,划分为小块区域(图中虚线包围的即是);

然后是tree-cluster-based 结构的形成:以左上角第一个区域为例,node根据TCBDGA算法,形成树结构,抽象如右边图所示(数字是区别表示,4,7没有显示出来),成节点12为RP(root point);

最后是Data-Gathering过程:每块区域内的node向该区域的根节点(RP)发送信息,由于根节点的位置信息已知,所以移动节点(Mobile Sink)只需要与所有的根节点进行数据交换即可。从而达到节省能量的效果。

 

具体算法实现如下:

1)树结构形成

首先,每个node需要计算它的一步邻接点和两部邻接点的数量以及自身的权重

       举例:node 7 的one-hop(一步邻接点)有【4,5,8】,two-hop(两步)有【1,3,4,5,6,8,12只要两步到达的都算】

因此,我们让每一个node广播一个信息BRO_MSG_T(包含它自身的ID number、剩余能量Ei、生存时间T=2,每经过一个node,T减1),任意一个node收到这样的信息时,检查T值,T值为0时,则抛弃。否则,记录该信息。

       举例:node 1 的广播信息,只有two-hop以内的node可以收到,并且分别记录自己收到的所有有效广播信息。

如此,任意node i都有了one-hop 和 two-hop 的邻接点node的信息。令他们的数量分别为Ni1-hop、Ni2-hop有一下公式:

 

要形成树,就要有衡量的标准。这里我们用权重Wi来表示。其中Di表示node i 与基站BS之间的距离(采用一定技术是可以计算出来的)

有了权重,就可以根据权重的大小进行排序,显然权重小的node在树结构中的深度h越大。当然,肯定有特殊情况,大致分为如以下三种:

我们定义节点i的one-hop范围内其他节点的权重的最大值为Wk k=1,2,3..... 

------Wi<W(就是它的邻接点中存在比它权重大的节点,去最大权重的节点k为父节点) 此时,i节点是K节点的叶子节点;

------Wi=Wk  (邻接点中最大的权重与它的权重相等) 还记得我们一开始的广播信息BRO_MSG_T,其中有一项是 ID number,比较它们两的ID number,如果i<k, node K作为父节点(ID number没有理解是什么。。。。),i>K 如果node i 有子节点,那么不必寻找父节点,否则按照第三种情况处理

------Wi>Wk  (邻接点中所有的权重都小于它) 如果node i 没有子节点,选择K作为它的父节点,以避免落单!!!如下图,node 1 选择node 5 作为父节点。

 node 1 的邻接点2,3,4,5 权重都小于node 1的,假定node 5是邻接点中权重最大的节点。

经过以上过程,我们就把LXL区域内的所有节点,抽象成了一颗一颗树的结构,但是,里面会有一些树的深度过于太大,反而会加大能量的损耗,为此需要进一步优化树的结构,具体如下:

树名以根节点的 ID number来表示,形成树结构以后,根节点广播一条信息BRO_MSG_H (有两部分构成:根节点ID和跳数h(原文成为hop level类似于深度)),h的初始值为0,每经过一个node,h值加1。如此一来,所有node都知道了自己所在树结构的根节点ID,以及自己到root 节点的跳数。

首先,根据之前的算法,根节点一定是具有最高的剩余能量和最多的邻接点,因此,我们选择所有的根节点为汇聚节点,成为RPs(Rendezvous Point)

其次,当树的深度太大时,我们选择在该树种选择一些子汇聚节点(SRP Sub-RP),以达到能量负载均衡,延长网络生存周期的目的。

SRP选择的实现过程如下:

根据BRO_MG_H信息,每一个node可以获得很多信息:

----自身到根节点的深度H(i,RP)

----子节点数CN(i);

----kbits的数据传输时,节点i传输的数据大小DS(i)=(CN(i)+1)X k;

 If  H(i,RP) > 2 and  CN(i) > = 2

     node i set itself SRP-candidates    and its weight CW(i) = H(i,RP) x DS(i);              // 如此,距离RP较远或者拥有大量缓存的node都成为SRP-candidate

                                                                                                                          //All SRP-candidate exchange information with their 2-hop child nodes

If node i 的父节点不是SRP-candidate 并且它的子节点中拥有不止一个SRP-candidate,令子节点中权重最大的为CW(k)

     then node k 为子节点中的SRP

          then  compare(CW(i),CW(k))

             if 相等,跳数小的为SRP

               else 最大权重者为SRP

if SRP-candidates are 2-hops away from each other

     all claim to be SRP


如下图 :

 

 

 

 

 

 

          

 

posted @ 2016-10-18 18:49  哇咔咔2016  阅读(266)  评论(0)    收藏  举报