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