黃海輝,王海麗,張曉迪
(重慶郵電大學(xué) 通信與信息工程學(xué)院,重慶400065)
無線傳感器網(wǎng)絡(luò)(wireless sensor networks,WSNs)由于大量的傳感器節(jié)點(diǎn)隨機(jī)分布,會(huì)出現(xiàn)相鄰節(jié)點(diǎn)的監(jiān)測(cè)區(qū)域交叉重疊,所以,采集的信息可能具有很大的冗余度。如果數(shù)據(jù)不加處理地發(fā)送到匯聚節(jié)點(diǎn),將極大地消耗網(wǎng)絡(luò)能量,同時(shí)存儲(chǔ)過多的數(shù)據(jù)還會(huì)導(dǎo)致網(wǎng)絡(luò)擁塞。實(shí)驗(yàn)表明:傳輸1 bit數(shù)據(jù)100 m 需要的能耗大約可以用來執(zhí)行3 000 條計(jì)算指令[1],因此,在WSNs 中采用數(shù)據(jù)融合技術(shù)顯得尤為重要。
隨著WSNs 理論研究向?qū)嶋H應(yīng)用的加速進(jìn)展,WSNs 數(shù)據(jù)融合技術(shù)成為重要研究方向,也是當(dāng)今熱門研究領(lǐng)域[2]。數(shù)據(jù)融合技術(shù)就是充分利用傳感器節(jié)點(diǎn)本地計(jì)算能力和處理能力,將多份數(shù)據(jù)或者信息去除冗余、提取互補(bǔ),組合出更有效、更符合用戶需求的數(shù)據(jù),從而達(dá)到節(jié)省能量和帶寬以及延長網(wǎng)絡(luò)生存期的目的。
目前提出的WSNs 數(shù)據(jù)融合算法有很多,也各有其優(yōu)點(diǎn),但是也都存在一定缺陷,而且沒有一種是用矩陣的概念來解決數(shù)據(jù)融合的問題。本文針對(duì)數(shù)據(jù)變化范圍大、數(shù)據(jù)需要分段處理的情況,提出新的數(shù)據(jù)融合算法,即基于矩陣的數(shù)據(jù)融合方案。該算法架構(gòu)于分簇路由協(xié)議基礎(chǔ)上,在確定新的簇頭選舉機(jī)制的同時(shí),利用矩陣的思想對(duì)簇內(nèi)節(jié)點(diǎn)進(jìn)行融合處理,以減少能量消耗,延長網(wǎng)絡(luò)生存期[3]。
本文假設(shè)有n 個(gè)傳感器節(jié)點(diǎn)隨機(jī)部署在監(jiān)測(cè)區(qū)域內(nèi),監(jiān)測(cè)區(qū)域假設(shè)是邊長為a 的正方形區(qū)域,基站設(shè)置在監(jiān)測(cè)區(qū)域外。網(wǎng)絡(luò)節(jié)點(diǎn)通過自組織形成WSNs,在分簇式網(wǎng)絡(luò)中,節(jié)點(diǎn)又被分為簇頭節(jié)點(diǎn)和簇內(nèi)普通節(jié)點(diǎn)兩類,每個(gè)節(jié)點(diǎn)除具有采集和傳遞數(shù)據(jù)的功能外,還具備數(shù)據(jù)融合的功能。對(duì)網(wǎng)絡(luò)模型作如下假設(shè)[4]:
1)監(jiān)測(cè)區(qū)域是一個(gè)靜態(tài)網(wǎng)絡(luò),傳感器節(jié)點(diǎn)和基站分布后位置不再移動(dòng)。
2)Sink 節(jié)點(diǎn)不考慮能量消耗,具有向全網(wǎng)廣播的能力,并且有足夠的存儲(chǔ)能力和計(jì)算能力。
3)網(wǎng)絡(luò)中節(jié)點(diǎn)是同構(gòu)的,每個(gè)節(jié)點(diǎn)都有唯一的標(biāo)識(shí)(ID),具有相同的系統(tǒng)硬件配置和電池容量。
4)節(jié)點(diǎn)周期性地采集融合數(shù)據(jù),并根據(jù)融合結(jié)果決定是否轉(zhuǎn)發(fā)數(shù)據(jù)。
5)節(jié)點(diǎn)可根據(jù)與接收節(jié)點(diǎn)的距離調(diào)整發(fā)射功率,以此來節(jié)約能量。
簇頭節(jié)點(diǎn)的選擇直接決定簇的大小和網(wǎng)絡(luò)的能量消耗,簇頭節(jié)點(diǎn)要對(duì)簇內(nèi)節(jié)點(diǎn)的數(shù)據(jù)進(jìn)行融合處理并轉(zhuǎn)發(fā)數(shù)據(jù),所以,簇頭節(jié)點(diǎn)要比普通節(jié)點(diǎn)消耗更多的能量。LEACH協(xié)議[5]中簇頭節(jié)點(diǎn)是隨機(jī)選擇的,如果剩余能量較少的節(jié)點(diǎn)被選舉為簇頭節(jié)點(diǎn),那么,該節(jié)點(diǎn)會(huì)因能量耗盡而較早死亡,這不僅縮短了網(wǎng)絡(luò)生存期,還影響數(shù)據(jù)收集的準(zhǔn)確性[6]。為了解決上述問題,本文在選舉簇頭時(shí)綜合考慮節(jié)點(diǎn)剩余能量和相對(duì)密度。
每輪結(jié)束后都要重新計(jì)算存活節(jié)點(diǎn)個(gè)數(shù)A、每個(gè)節(jié)點(diǎn)的剩余能量Eres、存活節(jié)點(diǎn)的平均剩余能量以及鄰居節(jié)點(diǎn)個(gè)數(shù)Nnei。鄰居節(jié)點(diǎn)定義為:對(duì)于傳感器節(jié)點(diǎn)i,如果節(jié)點(diǎn)j 與它的距離小于閾值R,則節(jié)點(diǎn)j 稱為節(jié)點(diǎn)i 的鄰居節(jié)點(diǎn)。節(jié)點(diǎn)相對(duì)密度ρ 的計(jì)算如公式為
其中,S 為監(jiān)測(cè)區(qū)域的面積。
簇頭選舉過程如下:每個(gè)存活的節(jié)點(diǎn)隨機(jī)產(chǎn)生一個(gè)0~1 之間的數(shù)temp_rand,將這個(gè)隨機(jī)產(chǎn)生的數(shù)temp_rand 與閾值T(n)進(jìn)行比較,如果隨機(jī)數(shù)小于閾值,那么,該節(jié)點(diǎn)就被選舉為簇頭節(jié)點(diǎn)。閾值是與簇頭節(jié)點(diǎn)占總節(jié)點(diǎn)的百分比和剩余能量有關(guān)的數(shù),閾值表達(dá)式為
其中,r 為當(dāng)前輪數(shù),p 為簇頭節(jié)點(diǎn)占總節(jié)點(diǎn)的百分比,Eres為每個(gè)節(jié)點(diǎn)的剩余能量為存活節(jié)點(diǎn)的平均剩余能量,α,β 分別為節(jié)點(diǎn)剩余能量和相對(duì)密度的權(quán)值,且α+β=1,G 為在最近1/p 輪中未被選中當(dāng)簇頭的節(jié)點(diǎn)集合。
在分簇的WSNs 中,現(xiàn)有的算法研究基本上都是在簇頭進(jìn)行數(shù)據(jù)融合,但簇內(nèi)成員節(jié)點(diǎn)在數(shù)量上占絕大比例,每個(gè)傳感器節(jié)點(diǎn)不同時(shí)刻采集的數(shù)據(jù)具有很大冗余性,所以,在數(shù)據(jù)進(jìn)行發(fā)送前對(duì)簇內(nèi)節(jié)點(diǎn)進(jìn)行數(shù)據(jù)融合處理能有效減少數(shù)據(jù)的發(fā)送量,進(jìn)而節(jié)約能耗、延長網(wǎng)絡(luò)生存期?;诰仃嚨臄?shù)據(jù)融合算法基本思想是:每個(gè)傳感器節(jié)點(diǎn)都保留當(dāng)前采集的數(shù)據(jù),當(dāng)節(jié)點(diǎn)再次采集到新的數(shù)據(jù)時(shí),通過矩陣算法來計(jì)算前后兩次采集的數(shù)據(jù)是否具有冗余,以此判斷是否發(fā)送數(shù)據(jù)。具體實(shí)現(xiàn)方法如下:
表示該節(jié)點(diǎn)相鄰兩次采集的信息存在很大的冗余性,不需要進(jìn)行傳輸,但要把本次采集的數(shù)據(jù)記錄在節(jié)點(diǎn)中,用來與下一次采集的數(shù)據(jù)進(jìn)行比較;如果
表示節(jié)點(diǎn)當(dāng)前采集的數(shù)據(jù)與上次采集的數(shù)據(jù)有很大差距,應(yīng)該將數(shù)據(jù)傳送到簇頭節(jié)點(diǎn)。
簇頭節(jié)點(diǎn)不僅要接收簇內(nèi)各成員節(jié)點(diǎn)所發(fā)送的數(shù)據(jù),還要將數(shù)據(jù)轉(zhuǎn)發(fā)到Sink 節(jié)點(diǎn),距離較近的節(jié)點(diǎn)采集的數(shù)據(jù)具有冗余性,所以,當(dāng)簇頭節(jié)點(diǎn)接收到簇內(nèi)成員節(jié)點(diǎn)發(fā)送的數(shù)據(jù)時(shí),還要進(jìn)一步融合,去掉相同的包頭并整合成一個(gè)數(shù)據(jù)包[8],以減少冗余信息的傳輸和發(fā)送數(shù)據(jù)包的個(gè)數(shù),然后把經(jīng)過融合后的數(shù)據(jù)傳送到Sink 節(jié)點(diǎn)。
在一輪數(shù)據(jù)采集的過程中,如果節(jié)點(diǎn)采集到的數(shù)據(jù)沒有明顯變化,那么,Sink 節(jié)點(diǎn)就不會(huì)收到該節(jié)點(diǎn)發(fā)送的任何數(shù)據(jù),用戶就得不到周期性采集的數(shù)據(jù),也無法判斷該節(jié)點(diǎn)是否失效。為了避免這種情況,在一個(gè)周期結(jié)束時(shí),就需要把平均值發(fā)送給簇頭節(jié)點(diǎn)。服務(wù)器對(duì)接收到的數(shù)據(jù)進(jìn)行分析,調(diào)整數(shù)據(jù)(或者數(shù)據(jù)區(qū)間)的值,以適應(yīng)數(shù)據(jù)的變化[9],提高監(jiān)測(cè)結(jié)果的準(zhǔn)確性。
本文采用Matlab 作為仿真平臺(tái),從網(wǎng)絡(luò)生存周期和每輪發(fā)送數(shù)據(jù)包個(gè)數(shù)兩方面驗(yàn)證本文提出的數(shù)據(jù)融合方案的性能。網(wǎng)絡(luò)結(jié)構(gòu)如圖1 所示,圖中,○表示傳感器節(jié)點(diǎn),☆表示Sink 節(jié)點(diǎn)。網(wǎng)絡(luò)中傳感器節(jié)點(diǎn)個(gè)數(shù)為100,網(wǎng)絡(luò)監(jiān)測(cè)范圍為100 m×100 m,簇頭節(jié)點(diǎn)所占比例為5%,Sink 節(jié)點(diǎn)位置設(shè)置為(50,175)m,節(jié)點(diǎn)初始能量為0.5 J。假設(shè)服務(wù)器端記錄的歷史數(shù)據(jù)庫中有5 個(gè)樣本值(或者樣本區(qū)間),且每個(gè)樣本值(或者樣本區(qū)間)發(fā)生的概率為10%,20%,40%,20%,10%,閾值R 設(shè)為26 m,DABM 表示本文提出的基于矩陣的數(shù)據(jù)融合方案。經(jīng)反復(fù)實(shí)驗(yàn)驗(yàn)證:α,β 分別設(shè)置為0.6,0.4。
圖1 節(jié)點(diǎn)分布圖Fig 1 Node distribution
圖2 是LEACH 算法與DABM 算法網(wǎng)絡(luò)生存期的對(duì)比圖。由圖2 可以看出:從傳感器網(wǎng)絡(luò)剛開始工作到642 輪,兩種算法都沒有節(jié)點(diǎn)死亡,這是因?yàn)閯傞_始時(shí)節(jié)點(diǎn)能量充足。LEACH 算法和DABM 算法中第一個(gè)節(jié)點(diǎn)死亡分別發(fā)生在第642 輪和第823 輪,DABM 算法較LEACH 算法延長28%;LEACH 算法和DABM 算法中第50 個(gè)節(jié)點(diǎn)死亡分別發(fā)生在第814 輪和第961 輪,后者較前者延長18%;直到第2000 輪,LEACH 算法中的節(jié)點(diǎn)已全部死亡,而DABM 算法中還有少量存活節(jié)點(diǎn),這是因?yàn)樵谶x舉簇頭時(shí),考慮了每個(gè)節(jié)點(diǎn)的剩余能量和相對(duì)密度,使剩余能量多,且周圍節(jié)點(diǎn)分布密集的節(jié)點(diǎn)有較大的概率成為簇頭,避免剩余能量少,且周圍節(jié)點(diǎn)分布較稀疏的節(jié)點(diǎn)成為簇頭導(dǎo)致節(jié)點(diǎn)過早死亡的現(xiàn)象;另外,節(jié)點(diǎn)在發(fā)送數(shù)據(jù)前對(duì)采集和接收的數(shù)據(jù)進(jìn)行數(shù)據(jù)融合,避免了冗余數(shù)據(jù)的傳輸,從而節(jié)約了能量消耗,延長了網(wǎng)絡(luò)的生存周期。
圖2 網(wǎng)絡(luò)生存期Fig 2 Lifetime of network
圖3 分別顯示了LEACH 算法與DABM 算法每輪發(fā)送的數(shù)據(jù)包數(shù)量。由圖3 可以看出:LEACH 協(xié)議每輪每個(gè)節(jié)點(diǎn)都要發(fā)送數(shù)據(jù),DABM 算法在發(fā)送數(shù)據(jù)前進(jìn)行數(shù)據(jù)融合,節(jié)點(diǎn)前后兩次采集數(shù)據(jù)相同則不發(fā)送,在730 輪之前,DABM 算法發(fā)送數(shù)據(jù)包數(shù)目較LEACH 算法有明顯減少;在730 輪之后,DABM 算法中發(fā)送數(shù)據(jù)包數(shù)目較LEACH 算法多,這是因?yàn)?30 輪左右LEACH 算法中節(jié)點(diǎn)急劇減少,而DABM 算法中存活節(jié)點(diǎn)依然很多,所以,730 輪后LEACH 算法中發(fā)送數(shù)據(jù)包的個(gè)數(shù)比DABM 算法少。
圖3 每輪發(fā)送數(shù)據(jù)包數(shù)量Fig 3 Number of packets sent per round
本文提出一種新的WSNs 數(shù)據(jù)融合方案——DABM 算法,該算法首先在簇頭選舉時(shí)考慮節(jié)點(diǎn)的剩余能量和相對(duì)密度,然后利用矩陣?yán)碚摚诎l(fā)送數(shù)據(jù)前對(duì)簇內(nèi)節(jié)點(diǎn)采集的數(shù)據(jù)進(jìn)行融合處理,最后將新的數(shù)據(jù)融合方案與LEACH 協(xié)議進(jìn)行對(duì)比分析。結(jié)果表明:較之LEACH 協(xié)議,DABM 算法有效減少了數(shù)據(jù)傳輸量、節(jié)約了能耗、延長了網(wǎng)絡(luò)生存期。該方案尤其適用于采集數(shù)據(jù)變化范圍大,并且需要分段處理的情況,但該方案并沒有考慮LEACH 協(xié)議中路由方面存在的缺陷,WSNs 路由機(jī)制與數(shù)據(jù)融合相結(jié)合將是下一步研究的重點(diǎn)之一。
[1] 張 強(qiáng),盧 瀟,崔曉臣.基于分簇的無線傳感器網(wǎng)絡(luò)數(shù)據(jù)聚合方案研究[J].傳感技術(shù)學(xué)報(bào),2010,23(12):1778-1782.
[2] 周 林,陳揚(yáng)揚(yáng).無線傳感器網(wǎng)絡(luò)中數(shù)據(jù)匯聚方案的研究[J].電視技術(shù),2012,36(13):71-73.
[3] Zhang Jiao,Ren Fengyuan,He Tao,et al.Attribute-aware data aggregation using dynamic routing in wireless sensor networks[C]∥The 11th IEEE International Symposium on a World of Wireless,Mobile and Multimedia Networks(WOWMOM 2010),Montreal,Canada,2010.
[4] 李菲菲,徐汀榮.基于能量感知的雙簇頭數(shù)據(jù)收集協(xié)議[J].計(jì)算機(jī)工程與設(shè)計(jì),2011,32(7):2290-2293.
[5] Heinzelman W R,Chandrakasan A,Balakrishnan H.Energy-efficient communication protocol for wireless microsensor networks[C]∥Proceeding of the 33rd Annual Hawaii Int’l Conf on System Sciences,Maui:IEEE Computer Society,2000:3005-3014.
[6] 李 敏,羅 挺,周 俊.一種無線傳感器網(wǎng)絡(luò)動(dòng)態(tài)成簇?cái)?shù)據(jù)融合算法[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2011,20(7):25,61-64.
[7] 樂 俊,張維明,肖衛(wèi)東,等.無結(jié)構(gòu)動(dòng)態(tài)適應(yīng)無線傳感器網(wǎng)絡(luò)數(shù)據(jù)融合算法[J].通信學(xué)報(bào),2012,33(9):53-65.
[8] 郭江鴻,陳德禮,劉志宏.無線傳感器網(wǎng)絡(luò)簇內(nèi)數(shù)據(jù)匯聚方法[J].微電子學(xué)與計(jì)算機(jī),2013,30(9):13-17.
[9] 張 強(qiáng),盧 瀟,崔曉臣.基于分簇的無線傳感器網(wǎng)絡(luò)數(shù)據(jù)聚合方案研究[J].傳感技術(shù)學(xué)報(bào),2010,23(12):1778-1782.