LEACH算法是一種自適應分簇拓撲算法,接近開關它的執行過程是周期性的,每輪循環分為簇的建立階段和穩定的數據通信階段。在族的建立階段,相鄰節點動態地形成簇,隨機產生簇頭;在數據通信階段,簇內節點把數據發送給簇頭,簇頭進行數據融合并把結果發送給匯聚節點。由于簇頭需要完成數據融合、匯聚節點通信等工作,所以能量消耗大。LEACH算法能夠保證各節點等概率地擔任簇頭,使得網絡中的節點相對均衡地消耗能量。
接近開關LEACH算法選舉簇頭的過程如下:節點產生0-1之間的隨機數,如果這個數小于閾值T(N),則發布自己是簇頭的消息;在每輪循環中,如果節點已經當選過簇頭,則把T(N)設置為0,這樣該節點不會再次當選為簇頭;對于未當選過簇頭的節點,則將以T(N)的概率當選;隨著當選過簇頭的節點數目增加,剩余節點當選簇頭的概率增大。當只剩下一個節點未當選時,T(N)=1。
當節點選簇頭以后,發布消息靠知其他節點自己是新簇頭。非簇頭節點根據自己與簇頭之間的距離來選擇加入哪個簇,并告知該簇頭。當簇頭接收到所有的加入信息后,就產生一個TDMA定時消息,并且通知該簇中所有節點。為了避免附近簇的信號干擾,簇頭可以決定本簇中所有節點所用的CDMA編碼。這個用于當前階段的CDMA編碼連同TDMA定時一起發送。當簇內節點收到這個消息后,它們就會在各自的時間槽內發送數據。經過定時一起發送。當簇內節點收到這個消息后,它們就會在各自的時間槽內發送數據。經過一段時間的數據傳輸,簇頭節點收齊簇內節點發送的數據后,運行數據融合算法來處理數據,并將結果直接發送給匯聚節點。
接近開關經過一輪選舉過程,整個網絡覆蓋區域被劃分為5個簇,圖中黑色節點代表簇頭。可以明顯地看出經LEACH算法選舉出的簇頭的分布并不均勻,這是需要改進的方面。 |