接近開關(guān)傳感器的GAT算法是一種依據(jù)節(jié)點(diǎn)的地理位置進(jìn)行分簇,并對(duì)簇內(nèi)的節(jié)點(diǎn)選擇性的進(jìn)行休眠的路由算法。其核心思想是:在各數(shù)據(jù)源到數(shù)據(jù)目的地之間存在有效通路的前提下,盡量減少參與數(shù)據(jù)傳輸?shù)墓?jié)點(diǎn)數(shù),從而減少用于數(shù)據(jù)包偵聽和接收的能量開銷。它將無線傳感器網(wǎng)絡(luò)劃分成若干個(gè)單元格(簇),各單元格內(nèi)任意一個(gè)節(jié)點(diǎn)都可以被選為代表,代替本單元格內(nèi)所有其他節(jié)點(diǎn)完成數(shù)據(jù)包向相鄰單元格的轉(zhuǎn)發(fā)。被選中的節(jié)點(diǎn)成為本單元格的簇頭節(jié)點(diǎn);其他節(jié)點(diǎn)都進(jìn)行休眠,不發(fā)送、接收和偵聽數(shù)據(jù)包。
接近開關(guān)傳感器的GAT算法通常分為虛擬單元格的劃分和虛擬單元格中簇頭節(jié)點(diǎn)的選擇兩個(gè)階段。
1、虛擬單元格的劃分。節(jié)點(diǎn)根據(jù)其位置信息和通信半徑將網(wǎng)絡(luò)區(qū)域劃分為若干虛擬單元格,并保證相鄰單元格中的任意兩個(gè)節(jié)點(diǎn)都可以直接通信,假設(shè)節(jié)點(diǎn)已知整個(gè)監(jiān)測(cè)區(qū)域的位置信息和本身的位置信息,節(jié)點(diǎn)可以通過計(jì)算得知自己屬于哪個(gè)單元格。
2、虛擬單元格中的簇頭節(jié)點(diǎn)的選擇。節(jié)點(diǎn)周期性進(jìn)入睡眠和工作狀態(tài),從睡眠狀態(tài)喚醒后與本單元內(nèi)其他節(jié)點(diǎn)進(jìn)行信息交換,以此確定自己是否需要成為簇頭節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)處于發(fā)現(xiàn)、活動(dòng)以及睡眠三種狀態(tài)。在網(wǎng)絡(luò)初始化時(shí),所有節(jié)點(diǎn)均處于發(fā)現(xiàn)狀態(tài),每個(gè)節(jié)點(diǎn)通過發(fā)送廣播消息通告自己的位置和ID等信息,然后每個(gè)節(jié)點(diǎn)將自身定時(shí)器設(shè)置為某個(gè)區(qū)間內(nèi)的隨機(jī)值Td,一旦定時(shí)器超時(shí),節(jié)點(diǎn)發(fā)送消息聲明其進(jìn)入活動(dòng)狀態(tài),成為簇頭。節(jié)點(diǎn)如果在定時(shí)器超時(shí)前收到來自同一單元格內(nèi)其他節(jié)點(diǎn)設(shè)置定時(shí)器T。來設(shè)置自己處于活動(dòng)狀態(tài)的時(shí)間。在T。超時(shí)前,簇頭節(jié)點(diǎn)定期廣播自己處于活動(dòng)狀態(tài)的信息,以抑制其他處于發(fā)現(xiàn)狀態(tài)的節(jié)點(diǎn)進(jìn)入活動(dòng)狀態(tài);當(dāng)T。超時(shí)后,簇頭節(jié)點(diǎn)重新回到發(fā)現(xiàn)狀態(tài),處于活動(dòng)狀態(tài)的節(jié)點(diǎn)如果發(fā)現(xiàn)本單元格出現(xiàn)了更適合成為簇頭的節(jié)點(diǎn),會(huì)自動(dòng)進(jìn)入睡眠狀態(tài)。
由于節(jié)點(diǎn)處于偵聽狀態(tài)時(shí)也會(huì)消耗很多熱量,所以讓節(jié)點(diǎn)處于睡眠狀態(tài)成為接近開關(guān)傳感器拓?fù)淇刂扑惴ㄖ谐R姷姆椒ǎ?STRONG>接近開關(guān)傳感器的GAF算法的優(yōu)點(diǎn)是在節(jié)點(diǎn)密集型分布的網(wǎng)絡(luò)中休眠了部分節(jié)點(diǎn),節(jié)省了網(wǎng)絡(luò)總能耗。但GAF算法沒有考慮移動(dòng)節(jié)點(diǎn)的存在,實(shí)際應(yīng)用環(huán)境中,簇頭節(jié)點(diǎn)很容易從一個(gè)單元格移動(dòng)的另一個(gè)單元格,從而造成某些單元格內(nèi)沒有節(jié)點(diǎn)轉(zhuǎn)發(fā)數(shù)據(jù)包,最終造成大量丟包和重復(fù)發(fā)包,導(dǎo)致總能耗的增加。 |