楊友良,李艷輝
(河北聯(lián)合大學,河北 唐山063009)
無線傳感器網(wǎng)絡通過大量布置在檢測區(qū)域內(nèi)的傳感器節(jié)點采集網(wǎng)絡覆蓋區(qū)域內(nèi)感知對象的信息,通過多跳的無線通信方式,將收集、處理后的信息提供給終端用戶。由于傳感器節(jié)點本身資源的限制,特別是WSN節(jié)點能量更為有限,因此研究分簇算法是必要的,LEACH算法[1]是最早提出的單跳分簇算法,其在無線傳感器網(wǎng)絡中占有舉足輕重的作用。然而,為了能夠更加有效的延長網(wǎng)絡生命周期,我們必須研究新的分簇路由算法。
無線傳感器網(wǎng)絡中的層次路由協(xié)議最大的特點便是采用分簇技術。利用此技術可以很明顯的將整個網(wǎng)絡內(nèi)的所有節(jié)點分成簇首、簇內(nèi)節(jié)點、匯聚節(jié)點三個層次[2]。其結構可表示為如圖1所示。LEACH協(xié)議是由Heinzelman提出的層次型路由協(xié)議算法,其在無線傳感器網(wǎng)絡中占有舉足輕重的作用。針對簇首過重的負擔導致其很快失效這一問題,LEACH協(xié)議通過輪次的方法周期性的選擇簇首。一旦節(jié)點成為簇首節(jié)點,它將會向整個網(wǎng)絡廣播其成為簇首的信息,傳感器網(wǎng)絡中的其它節(jié)點接收到整個網(wǎng)絡中所有簇首的信息后,依據(jù)接收信息的信號強度,挑選出最強的簇首所在簇群加入。在進行數(shù)據(jù)信息通訊時,簇首、簇內(nèi)節(jié)點、數(shù)據(jù)匯聚點三者之間的通訊采用單一的直接通訊方式,即簇首與簇內(nèi)節(jié)點直接傳送信息,簇首與數(shù)據(jù)匯聚點之間也是采用單跳的方式進行通訊。
圖1 分簇結構示意圖
LEACH算法中采用以下策略選擇簇首[3]:
數(shù)據(jù)匯集點首先設定一個閾值T(n),此閾值決定哪個傳感器節(jié)點成為簇首,并且,此閾值分配給每一個傳感器節(jié)點,隨著LEACH算法的運行,每個傳感器節(jié)點的閾值也將隨著改變。閾值T(n)表示如下:
其中,分子P表示在本輪中當選簇首在整個網(wǎng)絡中所有節(jié)點的比例,r表示為當前進行的輪數(shù),rmod(1/p)表示為本輪中被選為簇首的個數(shù),G表示為本輪中沒有被選擇成為簇首的其它傳感器節(jié)點的集合。當本輪建簇開始時,網(wǎng)絡中所有的傳感器節(jié)點均需要產(chǎn)生一個隨機數(shù)M(〈0〈M〈1),M的意義可以表示如下:
在LEACH算法中,每一輪開始時都將進行簇首的選擇。為了更好地延長網(wǎng)絡的生存周期,在選擇簇首時應該盡量選擇剩余能量充足的傳感器節(jié)點。但此算法還是有很多不足,所以提出新的算法是有必要的。
傳統(tǒng)的分簇協(xié)議在確定簇首后,依據(jù)傳感器節(jié)點與簇首的距離進行分簇。本文提出的分簇路由協(xié)議首先確立簇群的方位,依據(jù)此方位信息確立簇首及候選族首,保證了整個網(wǎng)絡中簇群的均勾分布。
文獻[4]中提到,在實踐運用中,為達到網(wǎng)絡無縫覆蓋率η,在監(jiān)測區(qū)域A中隨機選取的簇首數(shù)K應該為:
其中r為節(jié)點傳輸半徑。
當節(jié)點由于能量消耗殆盡導致失效時,簇群的有效節(jié)點數(shù)目會慢慢降低。新的網(wǎng)絡無縫覆蓋率ηnew與有效節(jié)點數(shù)S的關系:
本文提出的分簇路由協(xié)議采用模糊C均值聚類(FCM)算法[5]實現(xiàn)無線傳感器網(wǎng)絡中簇的形成。首次完成分簇后,當其中某一個簇群中的所有簇首的能量降低至閾值時,才開始下一輪分簇。
數(shù)據(jù)匯聚點將WSN中N個傳感器節(jié)點的坐標組成一個集合X{Xj,j=1,2……N},該集合中的N個樣本對應于N個傳感器節(jié)點。設Vi(i=1,2……K)為每個聚類的中心,U(i,j)是第j個節(jié)點對第i個簇群的隸屬度函數(shù)。J.C.Bezdek提出的模糊C均值聚類算法(FCM)是一種模糊目標函數(shù)法,其目標函數(shù)J(U,V)定義為:
其中,U=[uik](i=1,2……C;k=1,2……N)為隸屬度矩陣,且滿足下式:
其中m的最佳范圍是[1.5,2.5],dik是第k個樣本到第i類的距離,定義為:
因此,可以采用新的目標函數(shù)使式(5)達到最小值的必要條件:
這里λj(j=1,……,n)是式(5)的n個約束式的拉格朗日乘子。對上式所有的輸入?yún)?shù)進行求導運算,使式(5)達到最小的必要條件為:
和
為了防止簇首節(jié)點能量消耗過快導致節(jié)點失效,設定當簇首能量降低至閾值β時,族首向隊列中下一個節(jié)點發(fā)送信息,通知該節(jié)點成為簇首,此簇首則自動轉換為普通節(jié)點。
在完成分簇后,采用簇首轉發(fā)的原理。遠距離的簇首并不直接同基站進行數(shù)據(jù)傳送,而是選擇同其最近的簇首進行傳輸,每一個簇首在接收到其它簇首傳輸?shù)降臄?shù)據(jù)后,進行相應的數(shù)據(jù)融合處理,然后轉發(fā)下一個簇首,直至數(shù)據(jù)匯集點,此舉極大的縮短了信息的傳送距離,降低了簇首節(jié)點能量消耗。并且本策略中每一個簇群有多個節(jié)點輪流當選簇首,在仿真實驗中也證實,此舉保證了簇群穩(wěn)定,在初次確立傳輸路線后,在很長周期內(nèi)可以穩(wěn)定數(shù)據(jù)傳輸路線。
本文提出的路由算法的流程圖如圖2所示。
為了說明算法的效果,我們使用MATLAB對算法進行了仿真測試,選擇的仿真場景參數(shù)如表1所示。
比較了最傳統(tǒng)的LEACH算法和本文提出的新算法。圖3為兩種算法的生命周期比較,通過死亡節(jié)點數(shù)隨時間的變化來判定生命周期的長短,從圖中可以看出新的算法比LEACH算法的生命周期長。
表1 仿真場景參數(shù)
圖2 算法流程圖
圖3 死亡節(jié)點與時間的關系
對現(xiàn)有的LEACH路由算法進行研究時發(fā)現(xiàn),當普通節(jié)點當選為簇頭節(jié)點后,需要完成數(shù)據(jù)融合、與匯聚節(jié)點通信等任務,能量消耗較大。但是簇首數(shù)量不固定分簇不均勻,再者,對于反應式的無線傳感器網(wǎng)絡,由于簇首不周期性的發(fā)送監(jiān)測數(shù)據(jù),從而使得各節(jié)點能量消耗不均勻,LEACH決定節(jié)點的“角色”并沒有考慮節(jié)點的剩余電池能量,存在著負載均衡策略不完備的缺點[7]。而本文提出的基于FCM的分簇多跳路由算法彌補了LEACH算法的不足,有效地延長了網(wǎng)絡生存周期。
[1]宋文.無線傳感器網(wǎng)絡技術與應用[M].北京:電子工業(yè)出版社,2006.
[2]馬永波.無線傳感器網(wǎng)絡精確動態(tài)定位及其安全性問題研究[D].吉林大學2010.
[3]Heinzelman W.B.,Chandrakasan A.P.,Balakrishnan H,An application-specific protocol architecture for wireless microsensor networks,(2009)IEEE Transactions on Mireless Communications,1(4),pp.660-670.
[4]Heinzelman,W.R.;Chandrakasan,A.;Balakrishnan,H."Energy-Efficient Communication Protocol for Wireless Microsensor Networks".In Proceedings of HICSS,00:the 33rd Hawaii International Conference on System Sciences,Wailea Maui,HI,USA,4-7January 2000;Volume 8.
[5]Manjeshwar,A.;Agrawal,D.P."A Routing Protocol for Enhanced Efficiency in Wireless Sensor Networks".In Proceedings of the 15th International Parallel and Distributed Processing Symposium IPDPS 2001,San Francisco,CA,USA,23-27April 2001.
[6]紀金水.基于Zigbee無線傳感器網(wǎng)絡技術的系統(tǒng)設計[J].計算機工程與設計,2007.