伍新华 黄 利
(武汉理工大学计算机学院 武汉 430063)
无线传感器网络(wireless sensor networks, WSN)是一种由大量无线传感器节点组成的自组织多跳网络[1].WSN路由协议按网络的拓扑可分为平面路由协议和层次路由协议.平面路由协议需要维持较大的路由表,占据较多的存储空间,因而并不适合在大规模网络中采用,而分层路由协议却可以在一定程度上解决这个问题[2].低功耗自适应分簇算法(low energy adaptive clustering hierarchy,LEACH)协议是层次型路由协议的代表,比一般的平面多跳路由协议和静态分簇算法优越[3].但LEACH协议簇头选取的随机性,使簇头位置分布不均,簇头位于区域边缘,故本文着重对这些问题进行研究和改进.
LEACH主要分为簇建立阶段和稳定传输数据阶段.簇建立阶段和稳定传输数据阶段所持续的时间总和称为一轮(round).在簇建立阶段,传感器节点随机生成一个(0,1)之间的随机数,并且与阈值T(n)做比较,如果小于该阈值,则该节点就会当选为簇头.T(n)按照下列公式计算
式中:p为期望的簇头节点占所有传感器节点的百分比;r为当前的轮计数;G为在最后的1/p轮中未成为簇头节点的集合.
在稳定传输阶段,传感器节点将采集的数据传给簇头节点.簇头节点对来自所辖节点的环境数据进行融合后再将其传送给基站,基站将数据传送给监控中心,由其进行数据处理.稳定阶段持续一段时间后,LEACH重新进入簇的建立阶段,进行下一轮的工作,不断循环.
LEACH的簇头选择算法仅仅从概率角度上考虑了节点作为簇头的公平性,而没有把节点的能量值、簇头边缘化等重要因素考虑在内,这样就导致了整个网络能量消耗不均衡.因此LEACH协议在簇头选择阶段,会出现2种特殊情况:(1)如不适合充当簇头的节点仅仅依概率当选为簇头时,结果会由于能量消耗过快而死亡,导致网络生存期的缩短;(2)所选簇头有可能会出现在区域的边缘,这样的簇头的覆盖面积会变小,就会出现簇内节点离簇头太远,传输数据消耗的能量过多[4-5].
为解决上述问题,提出了一种改进的LEACH-ED(low energy adaptive clustering hierarchy-energy and distance)协议,在选举簇头时,综合考虑了节点的当前能量和节点到中心区域的距离等因素,限制所选簇头的边缘化和保证节点能耗均匀化,从而能有效地延长整个WSN的寿命.
根据LEACH-C思想[6],在节点初始化的时候,节点把自己的地理位置信息发送给基站,基站计算出各个节点到区域中心的最大距离,然后发送到各个节点.
针对第一种出现的特殊情况,考虑单个节点的能量消耗比例,在计算阈值的公式中加入节点的当前能量 Ecurrent和初始能量 Etotal,对于能量消耗比例大的节点,减小T(n)的值,降低成为簇头的概率;相反,对于能量消耗比例小的节点,增大T(n)的值,增大成为簇头的概率.其阈值T(n)计算如式(2)所示.
针对第二种特殊情况,在计算阈值的公式中加入节点到区域中心的距离,可使所选取的簇头节点的覆盖面积尽量最大化,让簇头尽量往区域的中心靠拢,就能缩短数据传输的距离.改进后的LEACH协议的簇头选举阈值T(n)计算如式(3)所示.
式中:ρ为常量参数,表示节点的能耗比例和距离比例在T(n)中所占的比重;dmax为边缘节点到区域中心的最大距离;d为节点到区域中心的距离.
在 Linux[7]平台下,利用 NS-2[8]软件对LEACH、LEACH-ED协议进行仿真、分析和比较.仿真中的参数选择如表1所列,所有的仿真实验进行50次,取这些仿真数据的平均值形成本文的仿真结果图.
在不考虑其他不可预知的破坏因素前提下,在节点初始个数为100的前提下,当传感器网络中存活的节点少于20个,就认为该网络失效.
表1 实验仿真参数
设出现第一个死亡节点的时刻为T1、节点个数小于20的时刻为T20、网络生存期内节点发送给基站的数据量为Data、所有节点在相同时刻消耗的能量总和为Energy等,因它们是衡量WSN系统生存周期的重要参数,故本文从T1,T20,Data和Energy 4个参数上来仿真比较LEACH算法与LEACH-ED算法.首先研究LEACH-ED算法中的簇头当选权值ρ的取值对上述参数的影响.其仿真结果如图1,2所示,对比分析这些实验数据,形成的统计数据如表2所列.
图1 LEACH-ED中随ρ取不同值节点存活个数变化情况(因前面0~340 s基本相同,故截断)
图2 LEACH-ED中随ρ取不同值发送数据量变化情况
表2 不同ρ取值性能参数
如图3所示,在网络生存期的大部分时刻内, ρ取不同值时的节点所消耗的能量关系是:Energy ρ 0.2<Energy ρ 0.6<Energy ρ 0.5<Energy ρ 0.8.
图3 LEACH-ED中随ρ取不同值能量消耗变化情况
分析统计依照上述方法所得到的仿真实验数据,可以得出当ρ=0.6时可兼顾 T1,T20,Data和Energy等性能参数,即能尽量地推迟第一个失效节点的出现、有效地延长网络的整体存活时间、较大地提高发送给基站的数据量和减少网络节点的能量消耗,从而获得较佳的WSN性能.
在ρ=0.6的设定下,分别对比仿真传统LEACH和LEACJ-ED两种算法的性能表现,仿真结果如图4~6所示,形成的统计数据如表3所列.
由表3得知,传统LEACH协议在380 s时节点开始死亡,在570 s时,整个网络死亡,在570 s时,向基站发送了 1 451 811 byte的数据; LEACH-ED协议在420 s时节点开始死亡,在690 s时整个网络死亡,在690 s时,向基站发送了2 001 432 byte的数据;由图6可知,在很大一部分时间,传统LEACH协议在某个时刻的能量消耗比LEACH-ED要多.仿真结果说明改进后的协议比LEACH协议在网络能量消耗、发送数据、生存寿命等方面有较好的改善.
图4 节点存活个数对比仿真结果
图5 发送数据量对比仿真结果
图6 能量消耗对比仿真结果
表3 传统LEACH和LEACH-ED数据对比
本文综合考虑了无线传感器网络中节点的剩余能量和到中心区域的距离约束条件,使得网络中剩余能量较多的节点有更大的概率成为簇头,也使得簇头不会出现在区域的边缘,从而使得簇头能覆盖更大的面积.通过对改进前和改进后的协议所进行的大量仿真及结果分析(见表3),可以得出:改进的LEACH-ED协议较LEACH,均衡了网络中节点的能量消耗,延缓了节点的死亡时间(开始死亡的时间为420 s,较LEACH晚40 s,即10.53%),有效地延长了整个WSN的生存寿命(较LEACH延长120 s,即21.05%).希望本文的研究思路及结果对研发适用性广、性能稳定高效的WSN协议有所帮助.
[1]Callaway E H.无线传感器网络:体系结构与协议[M].马伟明,编译,北京:电子工业出版社,2007.
[2]毛晓峰,杨 珉,毛迪林.无线传感器网络应用综述[J].计算机应用与软件,2008,25(3):179-181.
[3]Heinzelman W,Chandrakasan A,Balakrishnan H. Energy-efficient communication protocol for wireless microsensor networks[C]//In proceeding of the 33rd Annual Hawaii Int'l Conf.on System Sciences.Maui:IEEE ComputerSociety,2000:3005-3014.
[4]许琼方.基于簇覆盖的无线传感器网络拓扑控制算法研究[D].湖南:湖南大学计算机系,2007.
[5]李 辉,李腊元,李方云.一种基于低能量的双簇首WSN路由算法[J].武汉理工大学学报:交通科学与工程版,2009,33(3):450-453.
[6]Heinzelman W,Chandrakasan A,Balakrishnan H. An application-specific protocol architecture for wireless mi-crosensor networks[J].IEEE T ransactions on Wireless Communications,2002,1(4):660-670.
[7]红帽软件(北京)有限公司 .Red Hat Linux用户基础[M].北京:电子工业出版社,2008.
[8]刘世华,方路平.基于 NS-2网络模拟基础与应用[M].北京:国防工业出版社,2008.