第八周论文学习 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<Wk (就是它的邻接点中存在比它权重大的节点,去最大权重的节点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
如下图 :

浙公网安备 33010602011771号