摘要:在分析了经典的LEACH分簇路由算法,以及基于LEACH算法基础上的几种经典的改进算法后,针对小规模无线测距网络的特点,在传输数据量较少、簇首节点无需进行大量数据融合的情况下,对LEACH算法进行改进,增加了节点与基站直接通信的个数,减少了多跳累加误差对测距的影响。使用MATLAB软件进行仿真,理论与实验仿真表明,本文提出的改进算法能够延长整个网络的生存时间,减少了一些不必要的能量浪费。
关键词:无线传感器网络;分簇路由算法;LEACH;性能分析
引言
无线传感器网络是当前网络技术界备受关注的前沿热点研究领域,涉及多学科,高度交叉,知识高度集成。无线传感器网络集成了传感器技术、计算机技术和通信技术,在军事、环境、健康、家庭、商业等许多方面有着巨大的潜在应用前景。无线传感器网络由大量密集分布的传感器节点通过自组织的方式形成网络,节点通过网络协议快速形成自主构建、自主组织和自主管理的通信网络。这种通过数千个微小的节点之间互相通信,通过接力的方法实现大范围监控的模式极大地提高了工作效率。然而节点大都需要在无人看管、不更换电池或者不可能更换电池的条件下长时间地工作,因此高效、低功耗路由算法在无线传感器网络中就显得非常重要。
1 基于LEACH的经典分簇算法分析
1.1 LEACH路由算法分析
为了提高整个网络的的生存时间,将功耗均衡的分配到网络中的每个节点,麻省理工学院的Wendi Rabiner Heinzelman等人提出了一种低功耗的自适应路由协议——LEACH协议(Low-Energy Adaptive ClusteriingHierarchy)。在LEACH协议中,每个传感节点都有机会充当簇头节点,簇头节点的选择主要依据网络中所需要的簇头节点个数与到目前为止每个节点已经充当簇头节点的次数来判定的。网络中每个节点在0~1之间随机选择一个数,如果选择的数小于规定阀值T(n),则该节点就充当簇首节点。T(n)的计算如下:
式(1)中,p表示在无线网络中簇头节点所占的百分比,r为当前循环次数,G是在前1/p轮中未充当过簇头节点的集合。LEACH算法通过设置T(n)值,以保证每个节点在1/p轮内都有机会充当一次簇头节点,从而平衡了节点的能量消耗。簇头节点确定之后,簇头节点通过广播告知整个网络自己已经成为簇头节点,簇头节点在广播过程中采用CSMA MAC协议来避免冲突。这时,网络中的非簇头节点可以根据接收到的信号强度来决定自己要从属于哪个簇,选择信号强度最强的源节点作为自己的簇头节点,并告知相关的簇头节点,自己则成为簇内组员。
LEACH分簇算法缺点:
①刚开始假设每个节点能量相同,在现实环境中很难做到。
②每个节点成为簇首节点的概率相同,这样可能导致一些高能量节点没机会成为簇首节点,而一些低能量节点成为簇首节点。一旦这些低能量节点成为簇首节点,将会很快耗尽其能量。
③LEACH协议不能保证簇头在每个区域都分布均匀,虽然统计上面是均匀的,但是由于簇头产生带有极大的随机性,有些区域可能簇头数会较多。
④簇首节点在通信过程中采用单跳与基站通信,这样就会导致较远的簇首节点能量消耗过大,而过早死亡,影响整个网络的性能。
⑤整个网络节点在两跳范围内,这样不符合大规模网络需求。
1.2 根据节点初始能量不同改进
根据整个网络中节点能量的初始不同,Georgios Smaragdakis等人提出了一种改进行分簇算法——SEP算法(a Stable Election Proto-col for clustered heterogeneous),先把整个网络分成两类节点,能量较高的节点称为高能量节点,能量低的称为正常节点。高能量节点则根据式(2)进行选择成为簇首节点的概率,而正常节点则根据式(3)选择成为簇首节点的概率。可以看出,高能量节点成为簇首节点的机会大于低能量节点。相较于LEACH算法,充分利用了整个网络的功耗。
为整个网络簇首节点的概率,Pnrm为正常节点成为簇首节点的概率,Padv为高能量节点成为簇首节点的概率。r为当前循环次数,G1是在前1/p轮中正常节点未充当过簇头节点的集合。G2是在前1/p轮中高能量节点未充当过簇头节点的集合。m为网络中高能量节点的比例。a为高能量节点高于正常节点能量部分。