1 引言
無線傳感器網(wǎng)絡(luò)(Wireless Sensor Network,WSN)是由大量具有特定功能的傳感器節(jié)點通過自組織的無線通信方式,相互傳遞信息,協(xié)同地完成特定功能的智能專用網(wǎng)絡(luò)。它綜合了傳感器、嵌入式計算、通信、分布式信息處理、計算機技術(shù)、微電子制造技術(shù),能實時監(jiān)測、感知和采集所監(jiān)控區(qū)域內(nèi)的各種信息,并對收集到的信息進行處理后傳送給終端用戶,在軍事、災(zāi)難現(xiàn)場、環(huán)境監(jiān)測和醫(yī)療救護等領(lǐng)域有廣闊的應(yīng)用前景。傳感器網(wǎng)絡(luò)一般投放在條件惡劣的環(huán)境或者難以涉足的地域中,節(jié)點電池的更換或能量的補充幾乎是不可能的,所以節(jié)能路由協(xié)議的設(shè)計,對無線傳感器網(wǎng)絡(luò)來說意義十分重大。目前,提出的WSN路由協(xié)議主要有平面路由協(xié)議和層次路由協(xié)議兩類,其中基于簇結(jié)構(gòu)的層次路由協(xié)議是當(dāng)前國內(nèi)外研究的熱點口。
1相關(guān)研究
WSN分簇路由協(xié)議設(shè)計的首要目標(biāo)是通過高效的分簇算法形成合理的網(wǎng)絡(luò)結(jié)構(gòu),通過主動的能量管理阻止網(wǎng)絡(luò)連通性下降,延長網(wǎng)絡(luò)的生命周期。最典型的無線傳感器網(wǎng)絡(luò)分簇路由協(xié)議是LEACH協(xié)議,人們在LEACH協(xié)議的基礎(chǔ)上也研究出很多改進的分簇路由協(xié)議,EECS(Energy Efficient Clustering Scheme)協(xié)議就是其中一種經(jīng)典的改進算法。
1.1LEACH協(xié)議
LEACH是分布式成簇協(xié)議的代表。每個節(jié)點產(chǎn)生一個0~1的隨機數(shù),如果這個數(shù)小于閾值,則該節(jié)點向整個網(wǎng)絡(luò)廣播它是簇頭。閾值的計算公式為:
式中:p是簇頭占所有節(jié)點的百分比,即節(jié)點當(dāng)選為簇頭的初始概率,實際的簇頭概率以p為中心上下浮動;r是目前循環(huán)進行的輪;G是在最近1/p輪中沒有當(dāng)選過簇頭的節(jié)點集合?梢钥闯,當(dāng)選過簇頭的節(jié)點在接下來的1輪中將不能成為簇頭,而其他節(jié)點,因節(jié)點產(chǎn)生小于T(n)隨機數(shù)的概率隨之增大,所以節(jié)點當(dāng)選為簇頭的概率也增大。競爭成功的簇頭節(jié)點廣播當(dāng)選的消息后,其他節(jié)點根據(jù)簇頭廣播信號的強弱決定加入哪個簇。由于簇頭是隨機挑選的,因此LEACH協(xié)議不能保證簇頭在網(wǎng)絡(luò)中分布均勻,而且節(jié)點根據(jù)自身通信代價最小原則選擇加入哪個簇的成簇算法,但不能保證簇的負載均衡。
1.2 EECS協(xié)議
如前所述,LEACH等算法中,節(jié)點根據(jù)自身通信代價最小原則選擇加入哪個簇,不能保證簇的負載平衡,而且沒有考慮距基站較遠的簇頭能量耗費過快等問題。針對這些問題,EECS提出一個新的通信代價公式(2)來決定節(jié)點加入哪個簇:
式中:cost(j,i)是節(jié)點Pj加入簇頭i的代價;d(Pj,CHi)是節(jié)點到簇頭的距離。式(3)中f子函數(shù)保證最小化節(jié)點與簇頭之間的通信代價;d(CHi,BS)是簇頭i到基站的距離,式(3)中g(shù)子函數(shù)保證最小化簇頭i到基站的通信代價;權(quán)值w的設(shè)置則根據(jù)具體應(yīng)用,在成員節(jié)點能量與簇頭能量消耗之間折衷,目標(biāo)是最大化網(wǎng)絡(luò)生命周期。節(jié)點Pj選擇cost(j,i)最小的簇頭i加入,從而保證每個簇頭負載均衡。實驗結(jié)果顯示,EECS協(xié)議的網(wǎng)絡(luò)生命周期較LEACH協(xié)議提高了30%以上。
2問題的描述
EECS算法的實質(zhì)是在簇頭選擇階段,總是讓剩余能量最大的節(jié)點當(dāng)選為簇頭;在成簇階段,聯(lián)合考慮普通節(jié)點與簇頭的距離,以及簇頭與基站的距離。其創(chuàng)新之處在于:只有小部分節(jié)點參加簇頭的競選;在局部范圍內(nèi)廣播消息,選舉過程沒有迭代;以節(jié)點的剩余能量為競選參數(shù);設(shè)計了簇頭之間負載均衡的策略。
EECS協(xié)議存在的問題:
(1)EECS算法在成簇階段讓候選節(jié)點同時廣播競選消息COMPETE_HEAD,容易造成簇頭分布漏洞問題。如圖1所示,節(jié)點C在B的競選半徑內(nèi);節(jié)點B在A的競選半徑內(nèi),且剩余能量方面A>B>C。在這種情況下,C收到B的競選消息退出競選的同時,B收到A的競選消息退出競選,這就會造成局部簇頭分布漏洞的情況。
(2)EECS算法在成簇階段的通信代價只考慮了普通節(jié)點與簇頭的距離,以及簇頭與基站的距離,沒有考慮簇頭的剩余能量。這樣就會造成部分剩余能量相對較少簇頭節(jié)點的早死現(xiàn)象。
針對EECS協(xié)議存在的問題提出了ADEECS(Advanced EECS)協(xié)議,該算法在簇頭選舉階段使用了競爭延遲的方法,在成簇階段設(shè)計了新的通信代價計算公式。
3 ADEECS路由協(xié)議
方案中,假設(shè)已知發(fā)送節(jié)點的發(fā)射功率,接收節(jié)點可以根據(jù)接收信號的強度,計算二者之間距離的近似值;發(fā)射功率可控,即節(jié)點可以根據(jù)自身需要調(diào)整發(fā)射功率。采用與文獻[5]相同的無線傳輸能量消耗模型。ADEECS協(xié)議按輪執(zhí)行,每一輪分為網(wǎng)絡(luò)部署,簇頭選舉,成簇,數(shù)據(jù)傳輸這4個階段。
具體實現(xiàn)過程如下:
階段1:網(wǎng)絡(luò)部署階段在網(wǎng)絡(luò)部署階段,讓基站以一定的功率向網(wǎng)絡(luò)內(nèi)廣播一個消息HELLO_MSG。傳感器節(jié)點根據(jù)接收信號的強度計算出自己到基站的近似距離,在與基站通信時,依據(jù)這個距離選擇適當(dāng)?shù)陌l(fā)射功率。在成簇階段,還將利用這個信息來均衡簇頭的負載。
階段2:簇頭選舉階段全局范圍內(nèi)預(yù)先設(shè)定一個0~1之間的閾值T,用來控制參加簇頭競選的節(jié)點比例。每一個節(jié)點生成一個0~1之間的隨機數(shù),記為u。若
式中:T為最大約定的最大延遲時間;Eresidual為節(jié)點剩余能量;Eini是節(jié)點原始能量。
階段3:成簇階段簇頭向網(wǎng)絡(luò)所有節(jié)點廣播自己成為簇頭的消息HEAD_AD,內(nèi)容為簇頭節(jié)點的標(biāo)識及該節(jié)點與基站的距離。普通節(jié)點接收到此消息后選擇一個通信代價cost(CH)最小的聚類加入,并發(fā)送消息JOIN_REQ。通信代價表達式為:
式(5)中參數(shù)與式(2)和式(4)表示的意義相同。從式(5)可以看出,該通信代價綜合考慮了節(jié)點與簇頭的距離、簇頭與基站的距離及簇頭的剩余能量。從而實現(xiàn)了由聚類成員節(jié)點選擇剩余能量較大,與自己距離較近,與基站距離較小的簇頭形成簇,達到能量均衡的目的。