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