葉繼華,肖 波,楊思渝,劉 凱,江愛文
1.江西師范大學(xué)計(jì)算機(jī)信息工程學(xué)院,南昌330022
2.南昌大學(xué)第一附屬醫(yī)院,南昌330022
從成本和應(yīng)用價(jià)值考慮,無線傳感器網(wǎng)絡(luò)(wireless sensor network,WSN)具有節(jié)點(diǎn)能量有限、數(shù)據(jù)存在冗余[1]的特點(diǎn),為了延長WSN 工作周期,必須盡可能降低網(wǎng)絡(luò)各節(jié)點(diǎn)的能耗,同時(shí)為保證WSN 對指定區(qū)域全面且有效的監(jiān)測,需要均衡各節(jié)點(diǎn)的能量消耗速率。2017 年,Boubrima 等人[2]在論文中提及了經(jīng)典的低功耗自適應(yīng)集簇分層型協(xié)議(low energy adaptive clustering hierarchy,LEACH),并解釋該協(xié)議首次體現(xiàn)集簇思想,將網(wǎng)絡(luò)數(shù)據(jù)分層傳輸,大大降低了網(wǎng)絡(luò)節(jié)點(diǎn)的能耗,但是隨著應(yīng)用系統(tǒng)的升級,該協(xié)議不再能夠滿足需求,因此大量改進(jìn)LEACH 協(xié)議應(yīng)運(yùn)而生。Marappan 等人[3]在簇頭選舉策略中,為了維護(hù)節(jié)點(diǎn)的能耗均衡加入了代價(jià)函數(shù),距離Sink 更近、剩余能量更高者優(yōu)先被選中,但是論文并未考慮轉(zhuǎn)發(fā)過程中的總能耗,有可能會出現(xiàn)多跳轉(zhuǎn)發(fā)的能耗高于單跳直發(fā)的情況,從而導(dǎo)致網(wǎng)絡(luò)整體能耗更高。Rao 等人[4]基于粒子群優(yōu)化算法設(shè)計(jì)出了一種高效的簇頭選舉策略,雖然相比于隨機(jī)選舉簇頭型協(xié)議的確降低了網(wǎng)絡(luò)能耗,但是該文只是優(yōu)化了簇內(nèi)能耗問題,對于簇間以及路由層面的能耗沒有過多討論,有待進(jìn)一步優(yōu)化。Mann 等人[5]基于改進(jìn)后的人工蜂群元啟發(fā)式算法,提出了一種高效能蜜蜂聚類WSN 協(xié)議,它能在WSN 中獲得最優(yōu)簇頭,通過合理聚類和選簇頭的方式來均衡網(wǎng)絡(luò)能耗,但是沒有進(jìn)一步在路由層面設(shè)計(jì)節(jié)點(diǎn)耗能均衡策略。Ye等人[6]認(rèn)為節(jié)點(diǎn)間歇性休眠可以很好地節(jié)省能耗,從而設(shè)計(jì)出一種節(jié)點(diǎn)自適應(yīng)的睡眠喚醒調(diào)度算法,但是論文僅僅是從降低單個(gè)節(jié)點(diǎn)能耗以實(shí)現(xiàn)降低網(wǎng)絡(luò)整體能耗的角度考慮的,對于均衡網(wǎng)絡(luò)能耗方面沒有過多考慮。潘華等人[7]利用普通節(jié)點(diǎn)與簇頭節(jié)點(diǎn)的雙向選擇進(jìn)行優(yōu)化簇頭選舉,在數(shù)據(jù)傳輸階段,提出一種綜合考慮數(shù)據(jù)傳輸量和傳輸距離的多跳數(shù)據(jù)分發(fā)方式。雖然該方法能夠在一定程度上降低網(wǎng)絡(luò)能耗,但是該方法沒有考慮節(jié)點(diǎn)的剩余能量,不利于節(jié)點(diǎn)能耗的均衡。劉長紅等人[8]利用K-means 算法和數(shù)據(jù)回歸策略,針對節(jié)點(diǎn)分布不均勻的網(wǎng)絡(luò)實(shí)現(xiàn)合理分簇,論文通過均勻分簇的方式實(shí)現(xiàn)簇間能耗均衡,但是對于路由層面的能耗情況沒有討論。楊曉琴[9]試圖利用布谷鳥算法尋找最優(yōu)路徑,但是忽略了分簇與數(shù)據(jù)冗余方面的問題。王文等人[10]在LEACH 協(xié)議的基礎(chǔ)上,設(shè)置節(jié)點(diǎn)成簇因子,作為節(jié)點(diǎn)當(dāng)選簇頭的依據(jù),再設(shè)計(jì)簇內(nèi)可變的數(shù)據(jù)發(fā)送周期,實(shí)現(xiàn)網(wǎng)絡(luò)節(jié)點(diǎn)的能耗均衡,但是該策略使用范圍有限,對于數(shù)據(jù)采集周期固定的網(wǎng)絡(luò)難以實(shí)現(xiàn)。萬葉晶等人[11]利用數(shù)據(jù)壓縮感知的方法,可以在準(zhǔn)確獲取并分析數(shù)據(jù)的情況下,盡可能減少數(shù)據(jù)傳輸量以節(jié)能,論文通過數(shù)據(jù)融合方式減少數(shù)據(jù)傳輸量,但是沒有討論數(shù)據(jù)傳輸時(shí)的能耗均衡情況。莫文杰等人[12]先將監(jiān)測區(qū)域網(wǎng)格化,利用雙鏈遺傳算法設(shè)計(jì)合理的路徑,利用方便可移動式的Sink 節(jié)點(diǎn)循著路徑收集全網(wǎng)數(shù)據(jù),減少其他節(jié)點(diǎn)的通信距離節(jié)約網(wǎng)絡(luò)能耗,但是該策略對于固定Sink 節(jié)點(diǎn)網(wǎng)絡(luò)難以實(shí)現(xiàn)。
因?yàn)閃SN 節(jié)點(diǎn)的能量消耗主要體現(xiàn)在數(shù)據(jù)傳輸方面,所以傳統(tǒng)的低功耗WSN 算法研究以及基于LEACH 的改進(jìn)協(xié)議大多數(shù)都是從傳輸路徑、簇頭選舉和分簇策略等方面進(jìn)行,而忽略了WSN 數(shù)據(jù)存在冗余的特點(diǎn)。針對WSN 數(shù)據(jù)冗余的特點(diǎn),本文方法結(jié)合信息熵理論,利用相對熵計(jì)算模型,可以得到節(jié)點(diǎn)周期數(shù)據(jù)概率分布的差異度,進(jìn)而得到數(shù)據(jù)之間的冗余度,通過拒絕冗余數(shù)據(jù)的傳輸,降低網(wǎng)絡(luò)整體的能耗。在數(shù)據(jù)傳輸階段,綜合考慮節(jié)點(diǎn)傳輸距離、能耗比等因素,設(shè)置合理的多跳轉(zhuǎn)發(fā)路由,以均衡網(wǎng)絡(luò)各節(jié)點(diǎn)的能耗。
LEACH 協(xié)議的核心思想為:規(guī)律性選舉簇頭,其余節(jié)點(diǎn)以最小距離原則選擇所屬簇,簇頭收集全簇節(jié)點(diǎn)的數(shù)據(jù)后再轉(zhuǎn)發(fā)給匯聚節(jié)點(diǎn)。簇頭是隨機(jī)選舉、輪流擔(dān)任,網(wǎng)絡(luò)中的每一個(gè)節(jié)點(diǎn)都需要產(chǎn)生一個(gè)(0,1)區(qū)間的隨機(jī)數(shù),并將該隨機(jī)數(shù)與閾值T(n)進(jìn)行比較。
其中,p是網(wǎng)絡(luò)內(nèi)簇頭數(shù)量的比例,n是已經(jīng)完成的輪數(shù),n為節(jié)點(diǎn)編號,n∈Gr表示節(jié)點(diǎn)n屬于集合Gr,而Gr是在最近rmod(1/p)輪內(nèi)還沒有當(dāng)選過簇頭的節(jié)點(diǎn)集合,一個(gè)輪次內(nèi),如果Gr內(nèi)的節(jié)點(diǎn)產(chǎn)生的隨機(jī)數(shù)小于閾值T(n),則將被選舉為簇頭。
LEACH 協(xié)議存在以下幾方面的缺陷:(1)LEACH協(xié)議采用的是單跳直發(fā)路由,遠(yuǎn)距離通信的節(jié)點(diǎn)能量消耗更多,不利于全網(wǎng)節(jié)點(diǎn)的能耗均衡。(2)LEACH協(xié)議對無線傳感器網(wǎng)絡(luò)的數(shù)據(jù)沒有去冗余操作,節(jié)能效果有待進(jìn)一步提升。
Parmar 等人[13]提出的LEACH-CM(modified centralized low-energy adaptive clustering hierarchy protocol)方法是對LEACH 的一種改進(jìn),其優(yōu)化了簇頭選舉策略,不僅簇頭是從剩余能量大于全網(wǎng)平均能量的節(jié)點(diǎn)中產(chǎn)生,而且簇頭節(jié)點(diǎn)的數(shù)量CHs 等于網(wǎng)絡(luò)中存活節(jié)點(diǎn)的數(shù)量nalive乘以簇頭比p,不僅如此,LEACHCM 還靈活變化了某些節(jié)點(diǎn)的數(shù)據(jù)傳輸路徑,實(shí)現(xiàn)更優(yōu)的節(jié)能效果。實(shí)驗(yàn)部分將通過與LEACH-CM 的比較,驗(yàn)證本文方法的有效性。
根據(jù)文獻(xiàn)[14],節(jié)點(diǎn)數(shù)據(jù)傳輸模型如下所示。傳感器發(fā)送與傳輸l(單位為bit)數(shù)據(jù)所消耗的能量:
類似于遠(yuǎn)程貨運(yùn)商品,除了需要運(yùn)輸費(fèi),還需要裝載、卸載費(fèi),式(2)由兩部分組成:發(fā)送電路的能耗和傳輸能耗。其中Eelec表示發(fā)送電路發(fā)送單位bit數(shù)據(jù)的能耗,其大小與編碼、調(diào)制、濾波等相關(guān)。在傳輸過程中,根據(jù)傳輸距離d與閾值d0的關(guān)系,將模型細(xì)分為自由空間模型(傳輸能耗與距離的平方成正比)和多路徑衰減模型(傳輸能耗與距離的四次方成正比),兩種模型下的能耗參數(shù)分別為εfs和εamp。由于d大于0,因此兩個(gè)模型下的能耗都隨距離的增長而單調(diào)遞增,相比于自由空間模型,多路徑衰減模型下能耗更多,因此為了更好節(jié)能,縮減數(shù)據(jù)傳輸距離尤為重要。傳感器接收l(單位為bit)數(shù)據(jù)所消耗的能量:
與信號發(fā)送電路的能耗相類似,節(jié)點(diǎn)在接收數(shù)據(jù)時(shí)所消耗的能量只與數(shù)據(jù)包的大小有關(guān),因此式(3)中傳感器節(jié)點(diǎn)接收l(單位為bit)數(shù)據(jù)所消耗的能量為lEelec。
由于傳感器采集的是某個(gè)時(shí)刻的數(shù)據(jù)值,因此在計(jì)算周期數(shù)據(jù)相對熵時(shí),采用離散變量的相對熵計(jì)算方法。假設(shè)存在兩個(gè)概率分布函數(shù)分別為f(x)={f(1),f(2),…}和g(y)={g(1),g(2),…},且:
相對熵KL(f||g)的值可以用來描述兩個(gè)概率分布函數(shù)f(x)和g(y)的差異度。通常情況下,概率分布差異越大,f(i)與g(i)的比值就越遠(yuǎn)離于1,KL(f||g)的值也越遠(yuǎn)離于0,極限情況下,當(dāng)兩個(gè)概率分布完全相同時(shí),KL(f||g)=0。
本文采用的數(shù)據(jù)集是Intel Berkeley Research Lab在真實(shí)環(huán)境中,利用多個(gè)異構(gòu)傳感器連續(xù)一個(gè)月采集的環(huán)境數(shù)據(jù),其中包括日期、時(shí)刻、傳感器編號、溫度、濕度等數(shù)據(jù)信息,本文采用溫度值數(shù)據(jù)ti,節(jié)點(diǎn)每隔30 s 完成一次環(huán)境數(shù)據(jù)的采集,每完成10 個(gè)數(shù)據(jù)采集的過程,就進(jìn)行一次數(shù)據(jù)的發(fā)送,每個(gè)數(shù)據(jù)發(fā)送周期用Ti表示,如圖1 所示。
Fig.1 Node sampling cycle and sending cycle圖1 節(jié)點(diǎn)采樣周期與發(fā)送周期
節(jié)點(diǎn)周期數(shù)據(jù)概率分布計(jì)算方法與去冗余方法如下:
(1)先將傳感器節(jié)點(diǎn)當(dāng)前數(shù)據(jù)發(fā)送周期Ti與前一個(gè)周期Ti-1的數(shù)據(jù)列向量X和Y重新組成一個(gè)新的10×2 維的向量x=[X,Y]。
(2)遍歷向量x中元素的最大值maxx和最小值minx,求出數(shù)據(jù)跨度區(qū)間為(maxx,minx),將區(qū)間分為duan段(在本文中duan=10),如下線段所示:
其中,Wid=(maxx-minx)/duan,記Ti與Ti-1周期的數(shù)據(jù)在每段出現(xiàn)的次數(shù)分別為:
則Ti周期與Ti-1周期數(shù)據(jù)的概率分布分別為:
(3)根據(jù)式(5)計(jì)算傳感器節(jié)點(diǎn)當(dāng)前周期Ti與前一個(gè)周期Ti-1數(shù)據(jù)分布的相對熵值KL(P||Q),相對熵值越小,兩個(gè)周期的數(shù)據(jù)概率分布就越接近。
根據(jù)本文的實(shí)際應(yīng)用設(shè)計(jì),下面將簡單分析Qj是否為0 的情況:
由此總結(jié),節(jié)點(diǎn)當(dāng)前周期Ti的數(shù)據(jù)概率分布P和前一個(gè)周期Ti-1的數(shù)據(jù)概率分布Q的相對熵值KL(P||Q)越接近于0,表明兩個(gè)周期數(shù)據(jù)的相關(guān)性就越強(qiáng),兩個(gè)周期內(nèi)的數(shù)據(jù)冗余度就越高,因此需要設(shè)定合理的閾值Do作為衡量和判定數(shù)據(jù)冗余度的標(biāo)準(zhǔn),只有KL(P||Q)≥Do時(shí)節(jié)點(diǎn)數(shù)據(jù)才會被發(fā)送出去。
在WSN 中通信是節(jié)點(diǎn)的主要能耗途徑[15],因此需要設(shè)計(jì)合理的路由協(xié)議以節(jié)能[16]。而且節(jié)點(diǎn)通信距離有限,為了均衡遠(yuǎn)距離節(jié)點(diǎn)的通信能耗,需要進(jìn)一步設(shè)計(jì)多跳轉(zhuǎn)發(fā)路由。
地域自適應(yīng)保真算法(geographical adaptive fidelity,GAF)是WSN 中的一種能量高效的路由算法[17],其利用網(wǎng)絡(luò)節(jié)點(diǎn)分布的過密性,通過設(shè)置網(wǎng)絡(luò)中的冗余節(jié)點(diǎn)輪流休眠,降低網(wǎng)絡(luò)能耗,但是對于節(jié)點(diǎn)移動型網(wǎng)絡(luò),該算法存在較大丟包率。朱敏等人[18]提出一種虛擬網(wǎng)格的分簇路由算法(cluster routing algorithm based on virtual grid,CRVB),該算法先將網(wǎng)絡(luò)虛擬分區(qū),每個(gè)區(qū)內(nèi)根據(jù)最大剩余能量原則選簇頭,簇頭與Sink 之間的通信采用多跳轉(zhuǎn)發(fā)的方式,降低網(wǎng)絡(luò)能耗的同時(shí)又均衡了網(wǎng)絡(luò)負(fù)載。余修武等人[19]提出了一種蜂窩網(wǎng)格的混合多跳路由算法(improved hybrid clustering routing algorithm,IHCRA),該算法將監(jiān)測區(qū)域分為若干個(gè)正六邊形,結(jié)合角度、距離等因素設(shè)置代價(jià)函數(shù),從鄰居節(jié)點(diǎn)中尋找擁有最小代價(jià)的中繼節(jié)點(diǎn)作為自己的下一跳節(jié)點(diǎn),在延長網(wǎng)絡(luò)壽命方面有著比傳統(tǒng)LEACH、GAF和CRVB協(xié)議更好的效果。
本文提出的兼顧自身剩余能量的多跳轉(zhuǎn)發(fā)路由(multi-hop forwarding routing considering its own residual energy,MFRCRE)分為兩部分:簇內(nèi)多跳轉(zhuǎn)發(fā)以及簇間最大步長傳輸。簇內(nèi)傳輸采用化整為零的思想,將高能耗的遠(yuǎn)距離單跳傳輸變?yōu)榈湍芎牡亩嗵D(zhuǎn)發(fā),降低網(wǎng)絡(luò)整體能耗的同時(shí),均衡了各節(jié)點(diǎn)的能耗速率。簇間傳輸以高效為原則,采用最大步長進(jìn)行傳輸,直至將數(shù)據(jù)傳輸至匯聚節(jié)點(diǎn)單跳距離(傳感器節(jié)點(diǎn)的最遠(yuǎn)傳輸距離)以內(nèi)。本文將在與IHCRA方法的對比仿真實(shí)驗(yàn)中,驗(yàn)證MFRCRE方法的有效性。
通常情況下,簇頭與簇內(nèi)各節(jié)點(diǎn)均在單跳傳輸距離以內(nèi),或者雖然源節(jié)點(diǎn)與目標(biāo)節(jié)點(diǎn)不屬于同一個(gè)簇,但是它們的距離在單跳距離以內(nèi)時(shí),如圖2 所示:圖中的圓是區(qū)域內(nèi)的某一個(gè)簇,S1 節(jié)點(diǎn)是簇內(nèi)離簇頭最遠(yuǎn)的節(jié)點(diǎn),該節(jié)點(diǎn)的能量消耗更大,如果它提前失效,有可能造成正方形監(jiān)測區(qū)域內(nèi)左上角部分失去有效的監(jiān)測,為了防止此類情況的發(fā)生,需要將S1 與簇頭的直接通信轉(zhuǎn)變?yōu)殚g接通信,即找到合適的中繼節(jié)點(diǎn)S2 幫助轉(zhuǎn)發(fā)數(shù)據(jù)。
Fig.2 Multiple jumps forwarding within cluster圖2 簇內(nèi)多跳轉(zhuǎn)發(fā)
(1)距離公式(保證能耗更低)
距離公式:當(dāng)源節(jié)點(diǎn)S1 與中繼節(jié)點(diǎn)S2 以及目標(biāo)節(jié)點(diǎn)共同構(gòu)成鈍角三角形且S1 與目標(biāo)節(jié)點(diǎn)的連線構(gòu)成鈍角三角形的最長邊時(shí),必有,根據(jù)傳感器節(jié)點(diǎn)的能耗模型可知,傳感器節(jié)點(diǎn)的能耗與距離的平方成正比,據(jù)此將“遠(yuǎn)距離、高功耗的單跳直發(fā)”轉(zhuǎn)換為“近距離、低功耗的多跳轉(zhuǎn)發(fā)”。因此d、d1、d2必須滿足以下距離公式:
其中,當(dāng)d<d0時(shí),如果有d1≥d0>d或者d2≥d0>d,那意味著,中繼節(jié)點(diǎn)轉(zhuǎn)發(fā)的距離比單跳直發(fā)的距離更長,能耗也更高。此時(shí)源節(jié)點(diǎn)S1 會直接與目標(biāo)節(jié)點(diǎn)通信,而無需中繼節(jié)點(diǎn)S2 轉(zhuǎn)發(fā)。
(2)能耗比條件(保證能耗均衡)
控制能耗均衡的辦法不應(yīng)該是控制節(jié)點(diǎn)的能耗值相同,而應(yīng)該控制節(jié)點(diǎn)能耗比盡可能相同。能耗比即是節(jié)點(diǎn)此次通信能耗與當(dāng)前剩余能量的比值,能耗比條件將高能耗比的單跳直發(fā)轉(zhuǎn)變?yōu)榈湍芎谋鹊亩嗵D(zhuǎn)發(fā)。
其中,Esc是源節(jié)點(diǎn)單跳直發(fā)方式時(shí)所消耗的能量,Es是源節(jié)點(diǎn)數(shù)據(jù)發(fā)送之前的剩余能量,Esic是滿足距離公式的某個(gè)候選中繼節(jié)點(diǎn)si在轉(zhuǎn)發(fā)源節(jié)點(diǎn)數(shù)據(jù)時(shí)所消耗的能量值,Esi表示該候選中繼節(jié)點(diǎn)轉(zhuǎn)發(fā)之前的剩余能量,只有滿足式(6)以及式(7)的節(jié)點(diǎn)才會被選作中繼節(jié)點(diǎn)執(zhí)行轉(zhuǎn)發(fā)任務(wù)。
在節(jié)點(diǎn)隨機(jī)分布的情況下,距離Sink 更近的節(jié)點(diǎn)起到了橋的作用,不僅傳遞自己的數(shù)據(jù)還負(fù)責(zé)轉(zhuǎn)發(fā)遠(yuǎn)距離節(jié)點(diǎn)的數(shù)據(jù),因此能耗相對會更高些,在兼顧自身剩余能量的多跳轉(zhuǎn)發(fā)路由(MFRCRE)方法中,當(dāng)源節(jié)點(diǎn)與目標(biāo)節(jié)點(diǎn)的距離大于傳感器的單跳傳輸距離(dr)時(shí),為了更好地均衡能耗,同時(shí)為了降低傳播時(shí)延(傳輸次數(shù)越多,丟包率越高,甚至能耗也會更高[20]),設(shè)置此類節(jié)點(diǎn)以最大步長傳輸至以Sink 為中心,dr為半徑的圓形區(qū)域內(nèi),如圖3 所示。
Fig.3 Schematic diagram of maximum step size transmission圖3 最大步長傳輸示意圖
最大步長傳輸步驟如下:
(1)距離Sink 大于dr的簇頭,會在自己最大的通信半徑內(nèi)尋找距離Sink 最近的節(jié)點(diǎn)作為自己的下一跳節(jié)點(diǎn),實(shí)現(xiàn)最大步長的傳輸;
(2)如果步驟(1)中的下一跳節(jié)點(diǎn)仍然在中心圓區(qū)域外,重復(fù)步驟(1),直至數(shù)據(jù)到達(dá)中心圓區(qū)域內(nèi);
(3)數(shù)據(jù)在中心圓區(qū)域內(nèi)采用簇內(nèi)多跳轉(zhuǎn)發(fā)規(guī)則傳輸至Sink。
為了驗(yàn)證本文方法的有效性,在Matlab R2014b中進(jìn)行如下仿真實(shí)驗(yàn),設(shè)置監(jiān)測位置是一個(gè)面積為S=100 m×100 m 的正方形島嶼區(qū)域且傳感器節(jié)點(diǎn)沒有外界電源供應(yīng),其中Sink 節(jié)點(diǎn)位于正方形區(qū)域外,坐標(biāo)為(150,50),其余50 個(gè)普通傳感器節(jié)點(diǎn)隨機(jī)分布在正方形區(qū)域內(nèi),數(shù)據(jù)采用英特爾伯克利實(shí)驗(yàn)室(http://db.lcs.mit.edu/labdata/labdata.html)部署無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)釆集的真實(shí)環(huán)境數(shù)據(jù)集,用于監(jiān)測區(qū)域內(nèi)環(huán)境變化、預(yù)測火災(zāi)以及測試網(wǎng)絡(luò)生存周期。對本文設(shè)置的無線傳感器網(wǎng)絡(luò)進(jìn)行如下假設(shè)[21]:
(1)每個(gè)傳感器節(jié)點(diǎn)都擁有環(huán)境感知、數(shù)據(jù)收集、數(shù)據(jù)融合處理、計(jì)算、無線通信等能力,環(huán)境不會對傳感器節(jié)點(diǎn)造成損害,不影響節(jié)點(diǎn)的正常工作。
(2)傳感器節(jié)點(diǎn)在網(wǎng)絡(luò)中的位置一旦確定,就不再發(fā)生改變,且每個(gè)節(jié)點(diǎn)都知道自己的位置坐標(biāo),每個(gè)節(jié)點(diǎn)都由電池供電,初始能量不為零但有限。
(3)傳感器節(jié)點(diǎn)的能量消耗主要發(fā)生在數(shù)據(jù)的發(fā)送、接收、傳輸和融合中,傳感器環(huán)境監(jiān)測、計(jì)算等消耗的能量忽略不計(jì)。實(shí)驗(yàn)參數(shù)設(shè)置如表1 所示。
Table 1 Experimental parameter settings表1 實(shí)驗(yàn)參數(shù)設(shè)置
實(shí)驗(yàn)性能對比指標(biāo)的計(jì)算模型:
(1)網(wǎng)絡(luò)整體的失效節(jié)點(diǎn)數(shù)
其中,dead(r)是每個(gè)輪次周期內(nèi)的新增失效節(jié)點(diǎn)數(shù)量,將所有輪次失效節(jié)點(diǎn)數(shù)疊加求和,得到網(wǎng)絡(luò)整體的失效節(jié)點(diǎn)數(shù)。該對比指標(biāo)隨時(shí)間變化的趨勢可以用來表征網(wǎng)絡(luò)失活速度的快慢,當(dāng)網(wǎng)絡(luò)整體失效節(jié)點(diǎn)數(shù)等于網(wǎng)絡(luò)總的節(jié)點(diǎn)數(shù)時(shí),網(wǎng)絡(luò)完全失活。
(2)網(wǎng)絡(luò)平均剩余能量
其中,eri為節(jié)點(diǎn)Si在第r輪次周期內(nèi)的能耗值,Eri為節(jié)點(diǎn)Si在完成第r輪次數(shù)據(jù)發(fā)送周期后的剩余能量值,avg(r)是第r輪周期結(jié)束時(shí)網(wǎng)絡(luò)的平均剩余能量,網(wǎng)絡(luò)平均剩余能量對比指標(biāo)可以很好地進(jìn)行不同方法間節(jié)能效果的比較,該指標(biāo)參數(shù)隨時(shí)間降落的速度越快,意味著網(wǎng)絡(luò)能耗越高。
(3)數(shù)據(jù)誤差
其中,err(i)指的是每個(gè)周期內(nèi)節(jié)點(diǎn)i的數(shù)據(jù)誤差值,因?yàn)楸疚募僭O(shè)節(jié)點(diǎn)每個(gè)周期內(nèi)都進(jìn)行了10 次數(shù)據(jù)采集過程,因此該計(jì)算模型下的分母為10,而rERR是網(wǎng)絡(luò)運(yùn)行了rmax個(gè)周期后,匯聚節(jié)點(diǎn)獲取的數(shù)據(jù)值與n個(gè)傳感器節(jié)點(diǎn)實(shí)際采集數(shù)據(jù)的平均誤差。實(shí)驗(yàn)需要在允許的誤差范圍內(nèi)進(jìn)行才有效。
(4)網(wǎng)絡(luò)剩余能量均方差
其中,nalive表示當(dāng)前周期內(nèi)網(wǎng)絡(luò)存活節(jié)點(diǎn)數(shù)量,Ei表示當(dāng)前周期節(jié)點(diǎn)Si的剩余能量,網(wǎng)絡(luò)剩余能量均方差值越小,網(wǎng)絡(luò)能量均衡能力就越強(qiáng)[22]。
由于傳感器節(jié)點(diǎn)的數(shù)據(jù)值非負(fù),因此相對熵值非負(fù),且KL(P||Q) 越接近0 就意味著數(shù)據(jù)冗余度越高。在相對熵閾值Do設(shè)計(jì)方面,由于過大的Do設(shè)計(jì)會導(dǎo)致過多的數(shù)據(jù)被判定為冗余被丟棄,從而導(dǎo)致匯聚節(jié)點(diǎn)獲取的數(shù)據(jù)誤差過大,根據(jù)初步實(shí)驗(yàn)限定Do<0.5,為了更詳細(xì)展示Do變化對于誤差的影響,設(shè)置Do以0.01為步長,從0.01增長到0.5,計(jì)算LEACHCIE(improved LEACH protocol combining relative information entropy)方法下的網(wǎng)絡(luò)在不同Do情況下運(yùn)行200 個(gè)周期之后,節(jié)點(diǎn)的平均剩余能量(rAVG)以及網(wǎng)絡(luò)數(shù)據(jù)平均誤差(rERR)的變化情況。得到如圖4 所示的關(guān)系曲線圖。
Fig.4 Graph of mean error and average remaining energy of LEACH-CIE varying with Do圖4 LEACH-CIE 平均誤差和平均剩余能量隨Do 變化的曲線圖
從圖4 可以看出,隨著相對熵閾值Do不斷變大,網(wǎng)絡(luò)的平均剩余能量(rAVG)在不斷增長,平均誤差(rERR)也在增長。因此為了更好地解決能耗,需要Do越大越好;然而為了減少誤差,需要Do越小越好。在本文所假設(shè)的實(shí)際應(yīng)用中,為了更好更長久地對環(huán)境進(jìn)行監(jiān)測和預(yù)警,需要設(shè)置合理的誤差范圍,取最優(yōu)的節(jié)能策略。結(jié)合文獻(xiàn)許馳等人[23]系統(tǒng)測試精度±0.3 ℃,尹克強(qiáng)等人[24]設(shè)置的列車車載設(shè)備報(bào)警溫度測量值的誤差不超過0.4 ℃以及徐曉斌等人[25]設(shè)計(jì)的PCDA(precision configurable data aggregation algorithm)方法的均值查詢平均絕對誤差為0.136 6~0.303 0,誤差遠(yuǎn)小于B-based 方法,因此本文設(shè)置WSN 允許的數(shù)據(jù)誤差為0.300,從圖4 可以看出,取Do=0.05 即能夠滿足理想誤差條件。
為進(jìn)一步驗(yàn)證Do=0.05 為理想設(shè)定值,現(xiàn)在保持Do不變,進(jìn)行30 組基于LEACH-CIE 方法下的網(wǎng)絡(luò)運(yùn)行200 個(gè)周期的實(shí)驗(yàn),每次實(shí)驗(yàn)傳感器節(jié)點(diǎn)的位置都隨機(jī)產(chǎn)生,得到30 組數(shù)據(jù)平均誤差rERR 與網(wǎng)絡(luò)平均剩余能量rAVG 的值,如表2 所示。
從表2 的數(shù)據(jù)可見,30 次實(shí)驗(yàn)的誤差均在理想范圍內(nèi)。根據(jù)圖4 和表2,確定Do=0.05 后,在平均情況下,LEACH-CIE 方法下的網(wǎng)絡(luò)運(yùn)行200 個(gè)周期后仍然有著較為理想的能量節(jié)省,并且30 次實(shí)驗(yàn)的平均數(shù)據(jù)誤差值為0.280 且小于誤差閾值0.300。
在類似的應(yīng)用中,譚德坤等人[26]設(shè)計(jì)了一種基于異常數(shù)據(jù)驅(qū)動的WSN 簇內(nèi)數(shù)據(jù)融合方法(abnormal data-driven data aggregation method,DA-ADD),其在數(shù)據(jù)去除冗余的過程中,采用的策略是計(jì)算兩個(gè)數(shù)據(jù)差的絕對值,大于閾值的數(shù)據(jù)被判定為激變數(shù)據(jù),只有激變數(shù)據(jù)才傳輸。除此之外,當(dāng)激變數(shù)據(jù)產(chǎn)生時(shí),再利用復(fù)雜度為n2的算法計(jì)算節(jié)點(diǎn)之間的支持度,進(jìn)一步判定激變數(shù)據(jù)的有效性。下面,將DAADD 方法與LEACH-CIE 方法(設(shè)定Do=0.05),就誤差與能耗兩個(gè)參數(shù)進(jìn)行比較。
圖5 和圖6 分別是DA-ADD 方法與LEACH-CIE方法的30 組平均誤差與平均剩余能量的對比實(shí)驗(yàn),其中圖5、圖6 的橫坐標(biāo)均表示實(shí)驗(yàn)次序,圖5 縱坐標(biāo)表示網(wǎng)絡(luò)平均誤差,圖6 縱坐標(biāo)表示網(wǎng)絡(luò)平均剩余能量。圖7 的x軸表示的是平均誤差,y軸表示周期數(shù),z軸表示平均剩余能量,圖7 從三維角度展示了DA-ADD 與LEACH-CIE 的誤差與能耗的比較,從中不難看出,平均情況下,LEACH-CIE 方法具有更高的平均剩余能量以及更低的平均誤差。
Table 2 30 groups rERR and rAVG values under LEACH-CIE method when Do=0.05表2 Do=0.05 時(shí)LEACH-CIE 方法下的30 組rERR 與rAVG 的值
Fig.5 Comparison of average error between DA-ADD and LEACH-CIE圖5 DA-ADD 與LEACH-CIE 平均誤差的對比
Fig.6 Comparison of average residual energy between DA-ADD and LEACH-CIE圖6 DA-ADD 與LEACH-CIE 平均剩余能量的對比
Fig.7 Comparative experiment of DA-ADD and LEACH-CIE圖7 DA-ADD 與LEACH-CIE 的對比實(shí)驗(yàn)
由于DA-ADD 方法采用單個(gè)數(shù)據(jù)之間的比較,用差的絕對值大小反映數(shù)據(jù)的異常性,而本文LEACH-CIE 方法則是采用相鄰周期內(nèi)各自10 個(gè)數(shù)據(jù)的概率分布的相對熵值來反映數(shù)據(jù)的異常性,兩種方法都是通過限量傳輸(只傳輸異常數(shù)據(jù))來達(dá)到節(jié)能的目的,DA-ADD 方法在去冗余的過程中,大力削減數(shù)據(jù)傳輸量的同時(shí),也大幅度增長了匯聚節(jié)點(diǎn)的獲取的數(shù)據(jù)誤差。30 組仿真實(shí)驗(yàn)中,LEACH-CIE方法的平均誤差值為0.280 4,平均剩余能量值為0.268 4,而DA-ADD 方法的平均誤差為0.286 5,平均剩余能量為0.264 1,結(jié)合圖5、圖6 和圖7,不難看出,LEACH-CIE 方法相較于文獻(xiàn)[24]的方法,網(wǎng)絡(luò)具有更高的平均剩余能量和更低的平均誤差,因此設(shè)置Do=0.05 是合理的,后續(xù)實(shí)驗(yàn)將延續(xù)此參數(shù)設(shè)定值。
3.2.1 不同性能指標(biāo)方面的比較
(1)每輪周期結(jié)束后,網(wǎng)絡(luò)失效節(jié)點(diǎn)數(shù)的比較。如圖8所示:①隨著網(wǎng)絡(luò)運(yùn)行周期的不斷增長,LEACH、LEACH-CM、LEACH-CIE 方法下的傳感器節(jié)點(diǎn)失效數(shù)量都在不斷增多,但是本文提出的LEACH-CIE 方法,相較于其他兩種方法,失效節(jié)點(diǎn)數(shù)量的增加速度更為緩慢;②LEACH-CIE 幾乎最晚出現(xiàn)首個(gè)失效節(jié)點(diǎn)。表3 記錄了3 種方法在相同環(huán)境和數(shù)據(jù)集下運(yùn)行10 次,每次第一個(gè)出現(xiàn)失效節(jié)點(diǎn)的周期。
Fig.8 Comparison of the number of failed nodes圖8 失效節(jié)點(diǎn)數(shù)的比較
Table 3 Number of cycles failed nodes first appear in 3 methods表3 3 種方法首先出現(xiàn)失效節(jié)點(diǎn)的周期數(shù)
從表3 中記錄的數(shù)據(jù)可以計(jì)算LEACH、LEACHCM 和LEACH-CIE 方法下的網(wǎng)絡(luò)首次出現(xiàn)失效節(jié)點(diǎn)的平均周期數(shù),分別為19.9、30.1 和32.8,平均情況下本文方法擁有最晚出現(xiàn)失效節(jié)點(diǎn)的周期數(shù),符合延長網(wǎng)絡(luò)生存周期的目的。
(2)每輪數(shù)據(jù)傳輸結(jié)束后,網(wǎng)絡(luò)剩余能量的平均值和均方差的比較。
從圖9 可以看出:①相同條件下,LEACH-CIE 擁有更為緩慢的能量消耗速率,因此節(jié)能效果更顯著;②當(dāng)網(wǎng)絡(luò)平均剩余能量低至接近于0 時(shí),意味著網(wǎng)絡(luò)已經(jīng)癱瘓,從圖中可以看出,LEACH-CIE 存在更長的網(wǎng)絡(luò)生存時(shí)間。從圖10 可以看出,相同周期內(nèi),本文方法LEACH-CIE 擁有更小的網(wǎng)絡(luò)剩余能量均方差值,因此節(jié)點(diǎn)的能量消耗速率更均衡。
Fig.9 Curve of average value of remaining energy in network圖9 網(wǎng)絡(luò)剩余能量平均值變化曲線圖
Fig.10 Comparison of mean squared errors of network residual energy圖10 網(wǎng)絡(luò)剩余能量均方差比較
(3)“存活”節(jié)點(diǎn)在網(wǎng)絡(luò)中的分布
Fig.11 Distribution of two types of nodes after 100 rounds of network operation under LEACH and LEACH-CM protocols圖11 LEACH 和LEACH-CM 協(xié)議網(wǎng)絡(luò)運(yùn)行100 輪后兩類節(jié)點(diǎn)的分布
Fig.12 Distribution of two types of nodes after 100 rounds of network operation under LEACH-CIE protocol圖12 LEACH-CIE 協(xié)議網(wǎng)絡(luò)運(yùn)行100 輪后兩類節(jié)點(diǎn)的分布
圖11 和圖12 中的矩形均是一個(gè)150×100 的長方形區(qū)域,圖11 和圖12 中的橫坐標(biāo)、縱坐標(biāo)分別表示節(jié)點(diǎn)在網(wǎng)絡(luò)中的坐標(biāo)值,其中Sink 節(jié)點(diǎn)的坐標(biāo)為(150,50)。在圖11 中,“。”表示依然存活的節(jié)點(diǎn),“×”表示已經(jīng)失效的節(jié)點(diǎn)??梢钥闯觯篖EACH 協(xié)議和LEACHCM 協(xié)議下的網(wǎng)絡(luò)在運(yùn)行了100 輪周期之后,兩者存活節(jié)點(diǎn)的分布都不均勻,且距離Sink 更遠(yuǎn)的節(jié)點(diǎn)會優(yōu)先失效。
圖12 是本文方法LEACH-CIE 下的網(wǎng)絡(luò)在運(yùn)行了100個(gè)周期之后,網(wǎng)絡(luò)中存活節(jié)點(diǎn)與失效節(jié)點(diǎn)的分布情況。從圖中可以看出,LEACH-CIE 相較于LEACH和LEACH-CM 在相同周期內(nèi)節(jié)點(diǎn)存活數(shù)量更多,分布更均勻,因此LEACH-CIE 下的網(wǎng)絡(luò)節(jié)點(diǎn)的能量消耗更低,也更均等。
本文通過距離公式找到候選中繼節(jié)點(diǎn),在滿足轉(zhuǎn)發(fā)總能耗低于源節(jié)點(diǎn)S1 直發(fā)能耗的前提下,保證網(wǎng)絡(luò)總能耗更低,再通過能耗比條件確保中繼S2 的能量消耗速率不高于S1,避免中繼節(jié)點(diǎn)因能量消耗太快而過早失效。通過此兩點(diǎn),達(dá)到降低網(wǎng)絡(luò)整體能耗以及均衡網(wǎng)絡(luò)各節(jié)點(diǎn)能量消耗速率的目的。
3.2.2 變化節(jié)點(diǎn)密度下的比較
為了更好地驗(yàn)證本文方法的魯棒性,在區(qū)域面積S=100×100 不變的情況下,將節(jié)點(diǎn)數(shù)量以20 為步長,從30 增加至70 進(jìn)行對比實(shí)驗(yàn),得到圖13。
Fig.13 Comparison of 3 methods under different number of nodes圖13 3 種方法在不同節(jié)點(diǎn)數(shù)量下的比較
圖13 的第一列圖是平均網(wǎng)絡(luò)剩余能量值的比較,第二列圖是網(wǎng)絡(luò)失效節(jié)點(diǎn)數(shù)的比較,第三列圖是剩余能量均方差的比較。從圖中可以看出,在不同節(jié)點(diǎn)數(shù)量的情況下,LEACH-CIE 方法下的網(wǎng)絡(luò)依然有著比LEACH 和LEACH-CM 下的網(wǎng)絡(luò)更長的生存周期,網(wǎng)絡(luò)節(jié)點(diǎn)能耗更低、更均衡。
3.2.3 多跳轉(zhuǎn)發(fā)路由的比較
基于網(wǎng)絡(luò)剩余能量均方差,對兼顧自身剩余能量的多跳轉(zhuǎn)發(fā)路由方法(MFRCRE)與IHCRA 路由算法進(jìn)行比較,結(jié)果如圖14 所示。
Fig.14 Multi-hop forwarding routing comparison圖14 多跳轉(zhuǎn)發(fā)路由比較
圖14 是在相同網(wǎng)絡(luò)布置、相同分簇結(jié)構(gòu)、相同網(wǎng)絡(luò)數(shù)據(jù)的情況下,將MFRCRE 算法與IHCRA 算法進(jìn)行比較所得。從圖中可以看出,兼顧自身剩余能量的多跳路由算法有著比IHCRA 更低的剩余能量均方差,這意味著相同周期內(nèi),兼顧自身剩余能量的多跳路由算法下的網(wǎng)絡(luò)節(jié)點(diǎn)能耗更均衡。
本文方法結(jié)合信息熵理論,利用相對熵模型計(jì)算得到節(jié)點(diǎn)相鄰兩個(gè)周期數(shù)據(jù)分布的相對熵值,作為判斷數(shù)據(jù)冗余度的依據(jù),通過實(shí)驗(yàn)合理設(shè)置閾值,對相對熵高于閾值的數(shù)據(jù)進(jìn)行阻斷傳輸?shù)牟僮鳎_(dá)到WSN 數(shù)據(jù)去冗余和節(jié)能的目的。在數(shù)據(jù)傳輸過程中,綜合考慮節(jié)點(diǎn)通信距離、能耗比兩方面因素,設(shè)置節(jié)點(diǎn)轉(zhuǎn)發(fā)條件:距離條件和能耗比條件。只有同時(shí)滿足兩個(gè)條件時(shí),節(jié)點(diǎn)才會進(jìn)行轉(zhuǎn)發(fā)任務(wù),很好地均衡了網(wǎng)絡(luò)各節(jié)點(diǎn)的能耗,避免部分區(qū)域節(jié)點(diǎn)失效過快。通過改變節(jié)點(diǎn)分布密度,再進(jìn)行多組仿真實(shí)驗(yàn),相比于LEACH 和LEACH-CM 協(xié)議,本文方法LEACH-CIE 下的網(wǎng)絡(luò)具有更長的生存周期,節(jié)點(diǎn)能耗也更為均衡。