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