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