LEACH算法是一种自适应分簇拓扑算法,接近开关它的执行过程是周期性的,每轮循环分为簇的建立阶段和稳定的数据通信阶段。在族的建立阶段,相邻节点动态地形成簇,随机产生簇头;在数据通信阶段,簇内节点把数据发送给簇头,簇头进行数据融合并把结果发送给汇聚节点。由于簇头需要完成数据融合、汇聚节点通信等工作,所以能量消耗大。LEACH算法能够保证各节点等概率地担任簇头,使得网络中的节点相对均衡地消耗能量。
接近开关LEACH算法选举簇头的过程如下:节点产生0-1之间的随机数,如果这个数小于阈值T(N),则发布自己是簇头的消息;在每轮循环中,如果节点已经当选过簇头,则把T(N)设置为0,这样该节点不会再次当选为簇头;对于未当选过簇头的节点,则将以T(N)的概率当选;随着当选过簇头的节点数目增加,剩余节点当选簇头的概率增大。当只剩下一个节点未当选时,T(N)=1。
当节点选簇头以后,发布消息靠知其他节点自己是新簇头。非簇头节点根据自己与簇头之间的距离来选择加入哪个簇,并告知该簇头。当簇头接收到所有的加入信息后,就产生一个TDMA定时消息,并且通知该簇中所有节点。为了避免附近簇的信号干扰,簇头可以决定本簇中所有节点所用的CDMA编码。这个用于当前阶段的CDMA编码连同TDMA定时一起发送。当簇内节点收到这个消息后,它们就会在各自的时间槽内发送数据。经过定时一起发送。当簇内节点收到这个消息后,它们就会在各自的时间槽内发送数据。经过一段时间的数据传输,簇头节点收齐簇内节点发送的数据后,运行数据融合算法来处理数据,并将结果直接发送给汇聚节点。
接近开关经过一轮选举过程,整个网络覆盖区域被划分为5个簇,图中黑色节点代表簇头。可以明显地看出经LEACH算法选举出的簇头的分布并不均匀,这是需要改进的方面。 |