LEACH算法

LEACH算法

LEACH(low energy adaptive clustering hierarchy)算法是一种自适应分簇拓扑算法,它的执行过程是周期性的,每轮循环分为族的建立阶段和稳定的数据通信阶段。在获的建立阶段,相邻节点动态地形成簇,随机产生簇头;在数据通信阶段,簇内节点把数据发送给簇头,簇头进行数据融合并把结果发送给汇聚节点。由于族头需要完成数据融合、与汇聚节点通信等工作,所以能量消耗大。LEACH算法能够保证各节点等概率地担任簇头,使得网络中的节点相对均衡地消耗能量。

1.簇头选举方法

LEACH算法选举簇头的过程如下:节点产生一个0~1之间的随机数,如果这个数小于阀值T(n),则发布自己是簇头的公告消息。在每轮循环中,如果节点已经当选过簇头,则把T(n)设置为0,这样该节点不会再次当选为簇头。对于未当选过簇头的节点,则将以T(n)的概率当选;随着当选过簇头的节点数目增加,剩余节点当选簇头的阀值T(n)随之增大,节点产生小于T(n)的随机数的概率随之增大,所以节点当选簇头的概率增大。当只剩下一个节点未当选时,T(n)=1,表示这个节点一定当选。T(n)可表示为

                                                                     

其中,P是簇头在所有节点中所占的百分比,r是选举轮数,rmod(1/P)代表这一轮循环中当选过簇头的节点个数,G是这一轮循环中未当选过簇头的节点集合。

        节点当选簇头以后,发布通告消息告知其他节点自己是新簇头。非簇头节点根据自己与簇头之间的距离来选择加入哪个簇,并告知该簇头。当簇头接收到所有的加入信息后,就产生一个TDMA定时消息,并且通知该簇中所有节点。为了避免附近簇的信号干扰,簇头可以决定本簇中所有节点所用的CDMA编码。这个用于当前阶段的CDMA编码连同TDMA定时一起发送。当簇内节点收到这个消息后,它们就会在各自的时间槽内发送数据。经过一段时间的数据传输,簇头节点收齐簇内节点发送的数据后,运行数据融合算法来处理数据,并将结果直接发送给汇聚节点。

        经过一轮选举过程,我们可以看到如图所示的簇的分布,整个网络覆盖区域被划分成5个簇,图中黑色节点代表簇头。可以明显地看出经LEACH算法选举出的簇头的分布并不均匀,这是需要改进的一个方面。

猜你喜欢

转载自blog.csdn.net/m0_37516824/article/details/80886650