周 林,陈扬扬
(重庆邮电大学通信与信息工程学院,重庆400065)
无线传感器网络是由大量传感节点构成,能够相互协作,实时地感知、采集和监测网络覆盖区域的信息[1]。因为大量的传感器节点随机分布,会出现相邻节点的监测区域是交叉重叠的,所以会获得一些相似数据。而传感节点能量有限、存储有限。节点能量制约着网络的生存周期,存储过多数据会导致网络拥塞。传感器所消耗能耗中,数据传输占了绝大部分,因此大量数据传输就会过多地消耗传感器的能量,缩短网络的寿命。为了避免这些问题,在数据采集的过程中,人们采用了数据汇聚技术。这样既可以有效地利用电源能量,又提高了带宽利用率。
数据汇聚就是利用传感器节点本地的处理能力,把采集到的大量原始数据进行筛选、合并的过程。节点在传输之前,先去除冗余的数据,只将有用的结果传输到SINK节点。数据汇聚利用了不同的时间与空间资源,把按照时序采集到的数据在一定的规则下进行分析、综合,它生成的结果更加准确、及时、有效。用户一般不关心单个传感器节点的数据,只对监测区域的环境变化感兴趣。数据汇聚就可以满足这样的需求,对监测目标做出有效的评估。数据汇聚具有自适应的能力,每一轮数据采集的过程中,动态地调整[2]。选择出合适的簇头,这将有助于提高数据采集的效率和节省能量。
本文的研究是在分簇网络拓扑结构中,如图1所示,选择簇头作为汇聚节点,簇头不仅要感知数据,同时还要在簇间进行数据的传输。汇聚位置的选择也至关重要,如果只在终端节点进行汇聚,这会影响到数据的准确性;如果只在汇聚节点进行汇聚,将会造成无线信道的拥塞。
图1 分簇网络结构
假设有N个传感器节点随机部署在正方形区域A(l×l)中,传感器网络被分成若干个簇,一个簇中包含了一个簇头和若干个簇成员节点。簇成员只负责采集和传递数据,而簇头除了具备传感节点的功能外,还要对簇内的成员进行管理。建立如下网络模型[3]:
1)观测区域A是一个静态的网络,传感节点和Sink节点在分布后就固定不变。Sink节点位于观测区域附近,这些节点分布不均匀。
2)除了Sink节点外,传感节点和簇头节点是同构的,每个节点都有自己的ID号。
3)邻近的节点在同一时刻采集到的数据具有相似性,每个节点都可以进行数据汇聚。
4)节点周期性的采集数据,并做出决策是否转发每次的数据。
5)节点能够获取自身的位置信息。
分簇网络结构能够节省能量,簇头的节点通常是采用多跳的方式与下一跳簇头或者Sink节点通信。LEACH算法[4]中节点的位置和能量是未知的,簇头的选择是随机的,该算法在统计上是均匀的,但是实际上簇头的分布是不均匀的。一方面如果簇头偏离了大多数节点,这样簇内数据传输能耗就会增加。另一方面如果剩余能量少的节点被选举为簇头,会很快耗尽能量。因此LEACH算法不能保证网络内的能耗均衡,会导致部分节点过早地耗尽能量,降低网络的稳定性。因此本文动态地选择簇头[5],可以有效地克服以上的缺陷。当选的簇头节点就会广播消息,通知周围节点加入该簇。网络中的节点布置好之后,节点间进行信息交换,可以获取邻近节点位置和到Sink节点距离的信息。由于簇头节点不仅要进行簇内节点的数据融合,还要转发簇间的数据,所以簇头节点能量消耗较多。如果不合理地选择簇头,其续航能力有限,很快成为死亡节点,影响整个网络的生命周期。假设一个区域m个节点启动并且初始化,每个节点都开始竞选簇头。每个节点成为簇头的优先权值P(i),P(i)与节点的密集程度和剩余能量成正比例关系。P(i)的值越大,节点成为簇头的概率也越大。
式中:节点i密集程度为Di,周围有m个邻居节点。节点i与旁边的第t个邻居节点的距离为dt,邻居节点与它都是单跳连接的。而节点i覆盖的区域半径为r。节点当前的剩余能量为Espare(i),μ为能量权重,λ为密集权重。由式(1),(2)可以推导出每个节点成为簇头的概率,概率较大的就成为了簇头节点。然后簇头开始广播成簇的消息[6],广播消息包含簇头ID、剩余能量、传输跳数k,在簇头的传播过程中跳数递减,直到为零。同一个节点可能收到附近几个簇的成簇消息,根据信号强度大小决定加入哪个簇。过了一段时间后,Sink节点发动新一轮的传输消息,无线传感网络进入下一个数据采集周期,要求再次选举簇头,每个节点根据自身的状况计算优先权值,从而选出新的簇头。
现有的算法绝大部分是在簇头进行数据聚合的,但是簇内的成员节点在数量上具有绝对优势,所以本文提出在簇内节点汇聚的一种算法,它能更有效地减少数据的传输量。之前也有TEEN算法[7]设置软硬门限值,用来确定是否发送监测数据。但是该算法对监测数据的不确定性,在概率统计上缺乏科学的度量,并且不适合用在周期性采集的系统中。本文提出簇内节点比较前后两次接收的数据的差别,求出该节点新鲜性信息熵[8],如)
式中:x'是当前采集到或者接收到的数据;x是前一次采集到或者接收到的数据。并且根据目标区域的特征建立一个样本,x和x'从样本(x1,x2,x3…,xn)中取值。同时满足
F的结果越小代表节点前后两次接收到的信息越相似,即存在着很大的冗余性,需要对重复的信息进行去除。这里设置一个阈值m,当F≥m时,说明数据比较新鲜,中间节点就应该把数据向上游节点传送;当F<m时,说明数据冗余,就不发送数据,但是把数据记录在节点中,用来与下次发送的数据进行比较。在一段时间内,当簇头节点接收到簇内成员节点的数据包后,通过进一步的处理,把相同的包头开销去掉[9],保留有用的信息。然后把有用的信息聚合在一起再加上包头,传送到下一个簇头或Sink节点。
传感器节点在一轮数据采集中,如果监测的物理量没有明显的变化,那么节点就不会与汇聚节点通信,用户就不能周期性采集到数据。为了避免这种情况发生,就需要对采集的数据取平均值。在一轮采集周期结束时,把平均值发送给簇头节点。传感器汇聚的算法执行中也要有学习过程[10],Sink节点接收到的数据的性质和变化规律不同,就需要设置一个不同的阈值m。服务器分析接收到数据的准确性,调整阈值m并反馈给簇内成员节点。然后传感器节点根据调整后阈值来发送数据,提高监测结果的准确性。
从节点的平均能耗和存活数量进行分析对比。选择120个相同的传感器节点,非均匀地随机部署在100 m×100 m的环境中。其中簇头所占的比例为5%,Sink节点的位置为(60 m,55 m)。每个传感器节点能够覆盖的半径为1 m,初始能量为2 J。μ=λ=1,用户监测到的物理变量取5个样本值,事件对应发生的概率为0.15,0.2,0.3,0.2,0.15。信息的阈值m取0.065,当新鲜性信息熵大于该值时就把本次的数据发送出去。
图2显示了在800 s的仿真时间内每个节点平均消耗的能量。从图中可以看出采用新鲜性信息熵算法明显降低了能耗,节约了近20%的能量。这是因为LEACH算法中传感器节点的数据不聚合,传送到簇头节点再汇聚。而新鲜性信息熵算法在簇内的传感节点就进行汇聚,只发送变化显著的数据,这样就减少了数据量,从而节约了能量。
图2 单个节点平均消耗的能量
图3 显示改进算法与LEACH算法随时间变化节点存活数量的比较,在0~300 s传感器网络刚开始工作,所有节点能量都很充足,死亡的节点很少,两种算法也相差不大。在500 s以后,改进算法比LEACH算法有明显的改进。这是因为改进算法根据剩余能量和密集程度来选择簇头,能量较多的节点被选择当簇头的概率增加,这样能耗就比较均衡。同时传感节点比较信息熵值减少了传送的数据量,从而使整个网络的能量消耗更加合理,增加了网络中节点存活的数量。
图3 节点存活数量
由于传感器节点密集分布,监测区域的物理量大部分时间保持稳定状态,以及相邻的传感器节点对同一目标区域采集相似的结果[11],所以传感器网络的数据有很大的冗余性。过多的数据传输要消耗能量,会影响网络的生命周期。本文提出根据节点的密集程度和新鲜性信息熵的概念来选举簇头,然后簇头广播成簇消息,附近的节点自动加入簇结构。与LEACH算法相比,能耗更加均衡,剩余能量较少的节点被选为簇头的概率降低,因此可以减少节点的死亡。同时簇内的成员节点采用了新鲜性信息熵算法,对没有显著变化的数据暂存本地节点中不发送,这样就有效地减少了数据的发送。仿真实验表明改进算法明显减少了能量消耗,延长了网络寿命。在以后的工作中,数据的安全和数据延迟还有待于进一步研究。
[1]崔逊学,左从菊.无线传感器网络简明教程[M].北京:清华大学出版社,2009.
[2]HUA C,YUM T S.Optimal routing and data aggregation for maxinizing lifetime of wireless sensor networks[J].IEEE/ACM Trans.Networking,2008,16(4):892-903.
[3]李菲菲,徐汀荣.基于能量感知的双簇头数据收集协议[J].计算机工程与设计,2011,32(7):2290-2293.
[4]HEINZELMAN W,CHANDRAKASAN A,BALAKRISHNAN H.Energyefficient communication protocol forwireless micmsensor networks[C]//Proc.the 33rd Annual Hawaii Int’t Conf.on System Sciences.Maui:IEEE Computer Society,2000:3005-3014.
[5]李敏,罗挺,周俊.一种无线传感器网络动态成簇数据融合算法[J].计算机系统应用,2011,20(7):61-64.
[6]孙凌逸,黄先祥,蔡伟,等.基于神经网络的无线传感器网络数据融合算法[J].传感技术学报,2011,24(1):122-126.
[7]MANJESHWAR A,AGRAWAL D,MANJESHWAR A,et al.TEEN:a protocol for enhanced efficiency in wireless sensornetworks[C]//Proc.the 15th Parallel and Distributed Processing Symp.San Francisco:IEEE Computer Society,2001:2009-2015.
[8]张强,卢潇,崔晓臣.基于分簇的无线传感器网络数据聚合方案研究[J].传感技术学报,2010,23(12):1778-1782.
[9]陈妍.无线传感器网络MAC层数据融合的研究[J].湖北工业大学学报,2011,26(5):81-84.
[10]彭爱平,郭晓松,蔡伟,等.基于估计机制的分簇传感器网络数据融合算法[J].传感技术学报,2011,24(1):128-133.
[11]林蔚,祝启龙.无线传感器网络节能型数据融合算法[J].哈尔滨工程大学学报,2011,32(10):1386-1389.