王亮云 陈建 马宇豪 管星宇
摘 要:无线传感器网络的节点总能量有限,如何有效利用节点能量,延长网络节点存活时间,是网络设计的重要内容。文章在LEACH算法的基础上提出一种改进算法—RLEACH算法。该算法通过在阈值计算公式中引入当前节点剩余能量与网络中存活节点平均能量的比值,并且将β作调节因子,提高了剩余能量高于平均值的节点当选簇头的概率,从而实现了对每一个节点能量的优化利用。经过试验仿真,结果表明,RLEACH算法与LEACH算法相比,网络生命周期延长约28.9%,传输数据量增长约196.9%。
关键词:LEACH算法,无线传感网络,簇头选取,网络平均能量
0 引言
无线传感器网络(Wireless Sensor Networks,WSN)是一种分布式传感网络,其主要以LEACH算法为基本算法,网络的末梢是一个可以感知和检查外部世界的传感器。WSN以无线的方式与外界进行联系,因此其具备易随时随地设置和跟互联网进行有线或无线方式的连接等优点。但相较于传统式的网络和其他传感器,无线传感器网络具有网络拓扑结构的不确定性、控制方式不集中,安全性不高的缺点。WSN在可靠的环境监测、各种商业和军事应用中都很重要。例如,声学、安全系统的各个方面,是我国科学发展的重要支柱。
WSN的路由算法以逻辑结构方式分为平面型路由算法和层次型路由算法,其中在层次型路由算法方面,提出了LEACH(Low-Energy Adaptive Clustering Hierarchy)算法。伴随着科技的高速发展,LEACH算法能量利用率低,生存周期短,抗干扰能力差的缺点日益突出[1]。本文提出一种新型算法—RLEACH(Radical-Low-Energy Adaptive Clustering Hierarchy),对选取簇头节点环节进行改良。本算法对阈值进行修改,使其值与当前节点与网络平均能量的比值相关联,从而使得WSN生产周期延长,降低循环的总能量。
1 LEACH协议
1.1 LEACH原理
LEACH协议是一种基于分簇的路由协议,它通过在不同的时间点将负载分配给所有的节点来使全局能量使用最小化。它要求节点自愿成为高能量簇头,在不同时刻,每个节点都有从集群中的节点获取数据和融合数据来获得聚合信号,并将该信号发送到基站。LEACH协议的运行过程有簇的建立阶段和数据传输阶段,在簇的建立阶段,相邻节点随机形成簇头;在数据通信阶段,簇内节点把数据发送给簇头,簇头进行数据融合并把结果发送给汇聚节点。为了减少分簇带来的额外能耗,簇稳定阶段远远长于簇形成阶段[2]。
1.2 簇头选举方式
LEACH算法在运行过程中不断地循环执行簇的重构。算法按轮进行操作,每一轮操作由建立簇和传输数据两个阶段组成。当算法处于建立阶段时,算法在每个节点中随机产生一个介于0~1之间的数,并将随机产生的数与阈值T(n)作比较,若随机产生的数小于T(n),则命令该节点当选簇头。若节点在运行轮数前已经当选过簇头,则设阈值为0,使该节点在运行轮次中不会再次成为簇头;若节点未当选过簇头,则该节点将以T(n)的概率当选。由此可知,随着轮数的增加,未当选过簇头的节点数目将会减少,剩余节点的阈值T(n)增大,从而节点产生小于T(n)的随机数的概率增大,故节点当选簇头的概率增大,最终所有节点均当选过簇头[3]。T(n)可表示为:
公式中p是预先设定的节点当选为簇头的概率(这里设为5%)[4],r是当前轮次(0~1/p-1),rmod(1/p)是当前轮数中已经当选过簇头的节点个数,G是未当选过簇头的节点的集合。
1.3 网络传输能量模型
LEACH算法模型由发射、放大和接收部分组成,具体如下。
(1)发射。若已知节点发送的数据量Kbit,数据传输距离d,则发射装置消耗的能量ETX(K,d)的表达式为:
其中d0为门限距离,其值为;ξfs、ξmp分别表示自由空间模型和多径衰减模型下功率放大器的能耗系数;若发射装置到接收节点的距离d≤d0时,功率放大器采用多径衰减模型ξmpd4;d>d0时,功率放大器采用自由空间模型ξfsd2;Eel表示每发送或者接收1bit数据时电路消耗的能量;K表示传输数据包的长度。
(2)接收。节点接收Kbit数据后消耗的能量为:
其中Ei是第i个节点的能量(i=1, 2, …, 100);dmin为普通节点与簇头的最近距离。
簇头发送Kbit数据到基站并进行数据融合后的剩余能量为:
其中EDA为簇头数据融合1bit数据所消耗的能量。各参数初始化值EDA=5×10-9 J、Eel=5×10-8 J、ξfs=10-11 J、ξm=1.3×10-15 J、K=4 000 bit。
1.4 LEACH协议的不足
由于在传输信息的过程中簇头起着重要作用,故在建立传输模型环节选择簇头也至关重要。由于LEACH算法选举簇头的方式有很大的随机性,所以会导致能量分配不均衡,进而导致能量传递速率大幅度降低。当能量低的节点当选为簇头时,此簇头会较快消亡,不利于生命周期的延长以及能量的传输。
2 LEACH改進算法
考虑到LEACH的不足以及节点剩余能量的影响,在T(n)计算式的基础上引入当前节点剩余能量与网络中存活节点平均能量的比值,并且为了使比值的大小更合理,再引入调节因子β,改进后的T(n)公式如下:
其中Etot是当前轮数所有节点的剩余能量总和;Nalive是当前轮数存活的节点数;β是调节因子(且由实验可得β取值范围为0.01<β<0.314时,网络生命周期与传输数据量得以改进,β<0.01时,选取簇头概率过低,不利于传输数据量的增加,β>0.314时,选取簇头概率过高,不利于延长网络生命周期);若对阈值进行如此设定,即致使能量高于平均值的节点大概率当选簇头,使得能量利用更加合理,延长节点寿命,进而延长网络生命周期。
图1是RLEACH算法的程序流程图,算法首先进行初始化参数等一系列初步准备工作,然后进入建立簇头的阶段:在每个节点中按照公式(6)T(n)随机产生数值,并且将该数值作为当前轮数该节点当选为簇头的概率,随后计算并保存存活节点的个数,便于之后下一轮数公式(6)T(n)的计算,当随机产生的数值小于公式(6)得到的阈值时,将该节点作为簇头。簇内节点将所要发送的数据传输至簇头,簇头接收数据,随后将其融合,最后发送至汇聚节点。
3 仿真试验分析
在MATLAB中按照如下方式进行节点布局:节点总数为100个,将节点随机分布在100 m×100 m的区域中, sink节点位于中心点,进行5 000轮循环。每一节点具有的初始能量为0.5 J,故系统初始总能量为50 J,节点发送和接收数据消耗的能量为50 nJ/bit。在多次实验后得出,当β值小于0.314时,网络生命周期开始增大。为了使实验现象更加明显,实验中取β值分别为0.053,0.075,0.095,开始进行仿真,并随后做出对比。下图为未做改进的LEACH与取β=0.095,β=0.075,β=0.053时得出的结果。
图2体现了网络存活周期:横坐标为时间(轮数),纵坐标为当前剩余节点个数。由于网络在传输后期时能量较低,故在分析剩余节点个数时,将分析基准设定在剩余节点数量为20时的轮数,并将此刻对应的轮数设定为截至轮数。由图2可得,RLEACH算法在实验所给不同参数取值的条件下,生存周期有显著提升。
图3体现了传输的信息能量:横坐标为时间(轮数),纵坐标为截至当前轮数传递信息量。由图3可得,RLEACH算法在实验所给不同参数取值的条件下,传输数据能量有显著提升。
由图2、图3可得,RLEACH算法在生命周期和传输数据量方面皆比LEACH算法效果好,且当参数β的取值范围小于0.095時,网络生命周期、数据传输量皆与β值成反比关系,故在实际应用中应当按照一定的前提条件选择β值,以达到理想的效果。
为了对生命周期有更好的比较,列出表1,对生命周期的比较进行说明。为了减少实验的偶然性,做五组实验并得出相关数据。从结果可知,RLEACH算法在β为0.075时相较原LEACH算法延长了约28.9%的生命周期。
为了对传输数据量有更好的比较,列出表2,对传输数据量的比较进行说明。为了减少实验的偶然性,做五组实验并得出相关数据。从结果可知,RLEACH算法在β为0.075时相较原LEACH算法增长了约196.9%的传输数据量。
4 结语
在原有LEACH算法的基础上,RLEACH算法通过引入节点剩余能量与节点能量平均值比值的β倍作为阈值,合理地对能量进行分布与使用,在β=0.075时,相较原LEACH算法延长了约28.9%的生命周期,增长了约196.9%的传输数据量。该算法虽在一定程度上减弱了随机性,但是由于选举簇头时根据节点生成的随机数的大小进行选举,因此还是有概率使得低能量的节点当选簇头,故期待下一步在此方面做出完善。
[参考文献]
[1]周志强,刘森,王允臣.无线传感器网络LEACH路由协议的改进算法[J].科技资讯,2012(17):15,17.
[2]武春涛,胡艳军.无线传感器网络LEACH算法的改进[J].计算机技术与发展,2009(3):80-83.
[3]聂芯雨,李勤勤,李竹.基于延长WSN生命周期的LEACH算法的改进[J].电脑与电信,2020(8):27-30.
[4]王薇.无线传感器网络低功耗分级路由协议研究[D].杭州:浙江大学,2006.
(编辑 傅金睿)