2 基于距离能量选择的两层LEACH算法DE—LEACH
DE—LEACH算法与LEACH算法一样,分为簇建立阶段与稳定运行阶段。
在簇建立阶段,首先,各节点仍然利用自身产生的随机数自主决定是否成为簇头并通知网络中所有节点,在此不再赘述。不同之处在于,选出的簇头节点将自己的剩余能量和到基站的距离加入到广播数据包中进行广播。之后,在已选出的第一层簇头中根据其剩余能量和到基站的距离关系参数Th选出第二层簇头。
Th定义为:
其中i是网络中节点编号,En(i)是i节点剩余能量,Dist(i)是i节点到基站的距离。
具体的选举第二层簇头的策略为:簇头j将自己的Th(i)值与接收、计算出到的其他簇头Th值进行比较,若自己最大,则成为第二层簇头;若比较中发现簇头i节点的Th(i)值最大,则认为i是第二层簇头。这里需要注意的是:
(1)第二层簇头同时也完成第一层簇头的广播、分配时隙、采集数据和融合的工作;
(2)各个簇头节点在计算Th值并比较过后,已经能够确认哪个第一层簇头节点同时承担第二层簇头节点职能,因此第二层簇头节点不需要再就自己身份进行广播;又由于各簇头节点已经收到其他簇头节点编号,可按编号顺序进行数据传递,因此第二层簇头节点不需要为第一层簇头节点分配时隙而进行广播;这样就省去了广播开销;
(3)各个普通节点无需知道谁是第二层簇头,他们只与第一层簇头通信,而第二层簇头同时也承担第一层簇头的功能。
在稳定运行阶段,普通节点与第一层簇头通信方式与LEACH相同。但数据采集、融合工作完成之后不是将数据包直接发送到基站,而是依据簇头节点编号顺序分时隙由第一层簇头发送到第二层簇头节点。再由第二层簇头节点进行二次融合后,发送至基站。
LEACH算法假设基站离监控区域较远,若第一层簇头节点均与基站直接通信,则通信能量消耗较大,且易造成网络中各节点剩余能量差距较大的情况,使首末节点死亡时间间隔较长,产生监控盲点。而DE—LEACH算法能够有效推迟首节点死亡时间,缩小首末节点死亡时间间隔,使监控盲点出现时间明显缩短。这样,在所有节点集中死亡后再进行抛撒,无疑在经济上和控制上都将更加高效。