張銘悅,陳桂芬,王鶴霏
(長春理工大學 電子信息工程學院,長春 130022)
物聯(lián)網(wǎng)技術被譽為當今偉大的技術之一,它的應用主要與三項關鍵技術密不可分。其中一項關鍵技術—無線傳感器網(wǎng)絡相當于“觸手”,針對無處不在的信息流進行感知,并將獲得的信息進行處理。傳感器節(jié)點可以分布在森林、會議室、患者身體等特殊區(qū)域??梢詫崿F(xiàn)對多種實時動態(tài)數(shù)據(jù)的采集。之后,來自傳感器的數(shù)據(jù)傳遞給實時接收設備,通過互聯(lián)網(wǎng)傳遞給用戶[1]。隨著社會的發(fā)展需要,數(shù)據(jù)產(chǎn)生的途徑也更加多樣化,現(xiàn)今有效的數(shù)據(jù)收集手段也很有限,傳感器的發(fā)展仍然重要。
無線傳感器網(wǎng)絡(WSN)由多個傳感器節(jié)點組成,這些節(jié)點分布在各個需要收集數(shù)據(jù)的區(qū)域,每個節(jié)點的通信方式、計算和感知能力都是相同的[2]。無線傳感器網(wǎng)絡適用于棲息地監(jiān)測,建筑監(jiān)測和森林監(jiān)測等領域,在生物科學、生物醫(yī)學等重要領域中扮演著重要的角色[3]。無線傳感器網(wǎng)絡收集的信息量很大,在電池、傳感器以及附近的能量消耗速度較快。能量的不均勻消耗會導致網(wǎng)絡壽命的縮短。分簇算法的出現(xiàn)大大延長了網(wǎng)絡的生命周期,并節(jié)約了很多能量[4]。
早期對無線傳感器網(wǎng)絡的研究主要集中在同構網(wǎng)絡上,但現(xiàn)實環(huán)境下,同構網(wǎng)絡的作用并不好,相對而言,異構網(wǎng)絡的發(fā)展更具有現(xiàn)實意義。異構無線傳感器網(wǎng)絡分為節(jié)點能量異構網(wǎng)絡、計算能量異構網(wǎng)絡、鏈路異構網(wǎng)絡、網(wǎng)絡協(xié)議異構網(wǎng)絡等[5]。
胡中棟、伍華林等人[6]提出了MEECR算法,該算法優(yōu)化DEEC算法的方式是將節(jié)點位置與剩余能量引入簇頭選舉機制,通過改進選舉閾值公式,優(yōu)化網(wǎng)絡性能。Raju Pal等人[7]提出的BEECP是將BBO算法(Biogeography-based optimi?zation)引入到異構網(wǎng)絡中,用于找出傳感器節(jié)點的最佳組合,達到降低能耗的作用。Jin-Shyan Lee等人[8]提出了一種基于三層結構的半分布式分簇方法,實現(xiàn)了上下層的簇頭選擇,有效提高了網(wǎng)絡死亡生命周期。Saini P等人[9]提出了EDEEC算法,該算法在異構無線傳感器網(wǎng)絡中原有的兩種節(jié)點的基礎上,加入了超級節(jié)點,增加了網(wǎng)絡的異構性和能量水平。Nematollahi P等人[10]提出了SEDC算法(Simple Energyefficient Data Collecting protocol),該算法是通過設置能量閾值,讓能量不符合要求的節(jié)點不參與簇頭的選舉,使得簇頭選舉更加準確快速。Dutt S等人[11]提出了一種簇頭能量受限的算法CREEP,該算法通過修改雙層異構網(wǎng)絡中的簇頭選擇閾值,來克服原算法在簇頭上的限制。Van?in等人[12]提出了一種基于三層異構分簇的分布式節(jié)能路由算法TBSDEEC,該算法考慮了能量消耗模型中,閾值平衡采樣的影響,通過設置兩種不同的應用場景,來設置參數(shù)。
上述針對異構網(wǎng)絡算法的改進,不僅僅從網(wǎng)絡本身的異構性進行考慮,還有參數(shù)和算法的結構。應用場景也是優(yōu)化異構網(wǎng)絡性能的重要考慮因素。
異構網(wǎng)絡的研究起步晚于同構網(wǎng)絡,為了更好的理解異構網(wǎng)絡,首先,介紹一下同構網(wǎng)絡的研究狀況。
大部分適用于同構網(wǎng)絡的算法均可改進為適用于異構網(wǎng)絡的算法。DEEC算法就是從LEACH算法改進而來的。這種改進同構網(wǎng)絡算法方式,使得其實用價值得到提高。同構網(wǎng)絡與異構網(wǎng)絡的區(qū)別主要體現(xiàn)在兩個方面:參數(shù)設置的不同和協(xié)議的混合應用。參數(shù)的設置可以隨著環(huán)境的變化而變化,協(xié)議的不同,則需要特殊技術,將其融和在一起,共同對網(wǎng)絡發(fā)揮作用。
DEEC算法主要目的是將剩余能量更多的節(jié)點選做簇頭,節(jié)約網(wǎng)絡能量,使其利用率提高。該算法主要應用于二級能量異構無線傳感器網(wǎng)絡。
(1)簇的建立階段
兩種節(jié)點的區(qū)別直觀體現(xiàn)在初始能量的差異上,普通節(jié)點的初始能量為E0,那么高級節(jié)點的初始能量是E0(1+α)。α為高級節(jié)點多于普通節(jié)點的能量倍數(shù)。由于存在兩種不同的節(jié)點,對兩種節(jié)點的概率值Pi的設置也不同,如公式(1)所示:
其中,Popt表示期望簇頭比例;Ei(r)表示節(jié)點在r輪剩余的能量值;Pi表示節(jié)點在輪中當選為簇頭節(jié)點的平均概率節(jié)點。
在節(jié)點的剩余能量不一致的情況下,剩余能量高的節(jié)點將有更大的概率當選簇頭。表示網(wǎng)絡節(jié)點在第r輪的平均能量值,如下:
在第r輪,用當前節(jié)點的能量與網(wǎng)絡平均能量做比值,可以得到:
由公式(3)可以看出節(jié)點當選簇頭的概率是根據(jù)能量比值決定的,節(jié)點的剩余能量越多,節(jié)點當選簇頭的概率越大。
假設每輪的能量消耗Eround是相同的,并且節(jié)點能耗均勻,可以估算出網(wǎng)絡的生命周期為:
其中,Etotal為全網(wǎng)節(jié)點初始的總能量;Eround為每一輪全網(wǎng)所消耗的總能量。
由于節(jié)點能耗均勻,每輪消耗的能量都幾乎相同,于是得到第r輪節(jié)點的平均能量------E(r)為:
簇頭選舉閾值函數(shù)T(n)的表達式為:
選舉出的簇頭將會向一定范圍內的節(jié)點廣播信息,同時普通節(jié)點在接收到入簇指令后,通過選擇最近的簇頭,進行入簇。
多級異構網(wǎng)絡由二級異構網(wǎng)絡推廣而來,將其帶入到公式(3)中,得到:
其中,αi為多于E0的能量倍數(shù)。
網(wǎng)絡的全部節(jié)點數(shù)如公式(9)所示,Ii表示節(jié)點的基本輪轉周期,節(jié)點成為簇頭的周期為:
當Ei(r)>,則ni<Ii,通過上述理論分析,節(jié)點能量越高,當選簇頭的概率就會越大。
(2)穩(wěn)定傳輸階段
經(jīng)過篩選的簇頭將簇內成員收集來的信息進行整理,并將融合的數(shù)據(jù)以單跳的方式傳輸數(shù)據(jù)到Sink節(jié)點。
系統(tǒng)的能量采用無線電模型。該模型的功能的實現(xiàn)取決于d0的設置。發(fā)送數(shù)據(jù)能耗ETx(l,d)表達式為:
接收數(shù)據(jù)能耗ERx(l)表達式為:
數(shù)據(jù)融合能耗Em表達式為:
其中,l為數(shù)據(jù)包長度;Eelec為發(fā)射電路的能量;εfs和εmp為功率放大器的能耗;EDA為單位數(shù)據(jù)融合能耗;N為簇內成員節(jié)點數(shù);若d>d0,則為多徑衰減模型:反之為自由空間模型。
為了搭建合理的仿真環(huán)境,做出如下假設:
(1)在 100×100的矩形區(qū)域中,設置 Sink節(jié)點在網(wǎng)絡的中心。
(2)所有的節(jié)點的標識號都是唯一的且不會中途發(fā)生改變。
(3)所有的節(jié)點都是固定不動的,相對的,其坐標也是固定的。
(4)所有節(jié)點的硬件配置都是相同的,節(jié)點具有的各方面能力都是相同的,并且會按照設置好的通信速率發(fā)送數(shù)據(jù)。
(5)普通節(jié)點僅僅負責采集和向簇頭發(fā)送數(shù)據(jù),簇頭的主要功能是存儲、融合、發(fā)送數(shù)據(jù),并將融合好的數(shù)據(jù)發(fā)送到Sink節(jié)點。
(6)通信鏈路的能量消耗是相同的,且不分主動被動。
(7)假設Sink節(jié)點不會死亡并且能量消耗為0。
DEEC是一種基于LEACH并適用于多級能量異構網(wǎng)絡的分布式高能效分簇路由算法。DEEC算法并未考慮網(wǎng)絡中簇頭分布不均、簇頭產(chǎn)生數(shù)目不穩(wěn)定等問題。針對上述問題,目前的解決算法多種多樣,主要差別是參數(shù)的改進和算法結構的優(yōu)化。
通過上述理論分析,DEEC算法的簇首選舉考慮了剩余能量,使得簇頭選擇更加合理。由于簇頭與Sink節(jié)點是采用單跳通信的,而在實際應用中,網(wǎng)絡的規(guī)模都偏大,這種機制使得該算法不適用于大規(guī)模網(wǎng)絡,并且DEEC算法的簇頭選舉僅僅考慮了剩余能量,對于其它影響因素,比如節(jié)點之間的距離,可能存在簇頭選擇不合理的情況,加快節(jié)點死亡。
CREEP算法在簇首選舉中的概率Pi進行改進,主要將節(jié)點距離與平均距離的比值引入到Pi上,該算法同DEEC算法,也考慮了能量因素,但CREEP算法在多跳路徑的選擇中,并未設置合理的參數(shù)來限制下一跳的選擇,因此會出現(xiàn)路徑選擇不合理的情況。
DEEC-BD算法主要包括兩個方面:
(1)針對簇頭選舉概率Pi進行改進,在考慮剩余節(jié)點能量的同時,引入節(jié)點距離因子。根據(jù)距離的不同選擇不同的距離因子,可以靈活的調整簇頭選舉概率。
(2)設置路徑質量Q(r),通過對比每條路徑的路徑質量參數(shù),選擇合適的下一跳,緩沖簇頭的壓力,適當?shù)难娱L網(wǎng)絡的生命周期。
距離因子的形式根據(jù)距離閾值產(chǎn)生的,本文設置的距離閾值為D0:
式中,davg為全部節(jié)點距Sink節(jié)點距離的平均值。
當di≥davg時,Pi概率如下:
式中,di為節(jié)點到Sink節(jié)點的距離;dmax為節(jié)點到Sink節(jié)點的最大距離。由本式可知,節(jié)點距Sink的距離越小,被選為簇頭的概率相對更大,反之,則更小。
當di<davg時,Pi概率如下:
如上所述,剩余能量較大、距離Sink節(jié)點較近的節(jié)點,在簇頭選舉機制中,增大了被選為簇頭的概率。距離Sink節(jié)點較遠的節(jié)點,在數(shù)據(jù)傳輸過程中,會耗費更多的能量,從而影響網(wǎng)絡的綜合性能。DEEC-BD算法的簇頭選舉機制,通過設置距離閾值,減少分布在區(qū)域邊緣節(jié)點被選做簇頭的概率,也減少了由于能量消耗過快而快速死亡的簇頭,即在相同輪數(shù)內,網(wǎng)絡能耗減少的同時,網(wǎng)絡的可用節(jié)點數(shù)量能夠顯著增加。
利用單跳的形式將數(shù)據(jù)傳輸給Sink節(jié)點是分簇算法的默認方式,但是單跳傳輸會使得簇頭更快死亡,影響網(wǎng)絡的生命周期,數(shù)據(jù)的傳輸量也會受到影響,因此,多跳機制可以減輕在數(shù)據(jù)傳輸過程中簇頭的負擔,并能夠適當?shù)难娱L網(wǎng)絡的生命周期。
多跳機制中下一跳的選擇是重中之重,本文引入路徑質量參數(shù),使得簇頭向Sink節(jié)點傳輸數(shù)據(jù)的時間延長。
網(wǎng)絡的使用范圍,與算法本身的可擴展性息息相關。根據(jù)對上述算法的分析,引入了路徑質量參數(shù)Q(r),該參數(shù)考慮了簇頭剩余能量和簇頭到Sink節(jié)點距離,根據(jù)這個參數(shù)選擇最優(yōu)路徑,在能量消耗較少的情況下,傳輸大量數(shù)據(jù)。
式中,Di為簇頭到Sink節(jié)點的距離;Dmax為簇頭到Sink節(jié)點的最大距離。
(1)部署節(jié)點、設置基本參數(shù)。
(2)計算距離閾值D0,根據(jù)di與D0之間的關系,選擇合適的Pi形式,依據(jù)改進的簇頭選舉閾值函數(shù)計算出該節(jié)點簇頭選舉的閾值,選擇合適的簇頭。
(3)該步驟是成簇的最終階段,其主要將那些并未成為簇頭的節(jié)點,根據(jù)感知的信號強弱,尋找距離自己最近的節(jié)點,然后入簇。然后,把從各個區(qū)域收集來的數(shù)據(jù),發(fā)送到簇頭。
(4)簇頭則將簇內節(jié)點收集的數(shù)據(jù)進行融合,利用改進的多跳機制,根據(jù)路徑質量參數(shù),選擇合適路徑,將數(shù)據(jù)傳輸?shù)絊ink節(jié)點。
(5)網(wǎng)絡開始新的一輪,重復上述步驟,直到全部節(jié)點都死亡。
在仿真分析中,本文主要針對多級能量異構網(wǎng)絡,在死亡節(jié)點數(shù)(生命周期)、數(shù)據(jù)傳輸量和能量消耗三個方面。實驗環(huán)境設置見1.2、1.3節(jié)。
針對Q(r)中的權值α和β的取值,經(jīng)過仿真,結果如表1所示。
表1 α、β的取值
圖1 權值取值對比圖
根據(jù)圖1所示,可以得到α和β的最優(yōu)取值,仿真參數(shù)如表2所示。
表2 仿真參數(shù)
網(wǎng)絡的死亡節(jié)點數(shù)表示全網(wǎng)死亡節(jié)點隨網(wǎng)絡運行而變化,是一項重要的指標,能夠直觀的顯示網(wǎng)絡生命周期的長短。
由圖2可以得出DEEC-BD算法的節(jié)點死亡速度要比DEEC算法的節(jié)點速度慢,DEEC-BD算法節(jié)點全部死亡為3 251輪,CREEP算法節(jié)點全部死亡為2 364輪,即生命周期延長了37.5%。DEEC算法節(jié)點全部死亡為1 794輪,即生命周期延長了79%。
圖2 網(wǎng)絡死亡節(jié)點數(shù)對比
數(shù)據(jù)傳輸量的大小,是衡量無線傳感器網(wǎng)絡性能是否優(yōu)越的重要指標,如今,數(shù)據(jù)呈“爆炸式”增長,傳輸數(shù)據(jù)量的大小,決定了數(shù)據(jù)分析的準確率和應用途徑,能夠使功能的實現(xiàn)更加有效。
圖3 網(wǎng)絡數(shù)據(jù)傳輸量對比
圖3顯示的是DEEC算法、DECH算法與DEEC-BD算法的數(shù)據(jù)傳輸量。經(jīng)計算,DEECBD算法的數(shù)據(jù)傳輸相較于CREEP算法,多傳輸了41.5%的數(shù)據(jù)。相較于DEEC算法,多傳輸了4.5倍的數(shù)據(jù)。
盡可能的節(jié)約能量,對于各個研究都是永恒的目標,無線傳感器網(wǎng)絡的能量由于硬件的限制,節(jié)點的能量不可能存在無限大的情況。減少能量的消耗,可以使得網(wǎng)絡的數(shù)據(jù)傳輸更加持久。
圖4 網(wǎng)絡能量消耗對比
圖4顯示的是DEEC-BD算法、DEEC算法與CREEP算法的能量消耗進行對比,經(jīng)過計算,本文的提出算法相較于CREEP算法的能量消耗低于16.7%,相較于DEEC算法能量消耗低于52%。
本文研究的DEEC-BD算法在原算法的基礎上,引入了距離因子和路徑質量兩個參數(shù)。原DEEC算法本身僅僅考慮了剩余能量與網(wǎng)絡節(jié)點平均能量的比值,而距離因子的引用可以盡量避免那些距離較遠的節(jié)點當選為簇頭,從而影響網(wǎng)絡的性能。簇頭與Sink節(jié)點之間的數(shù)據(jù)傳輸形式是單跳的,這種傳播數(shù)據(jù)的方式,針對大范圍網(wǎng)絡是行不通的,即網(wǎng)絡的擴展性能將受到極大的影響。CREEP算法雖然數(shù)據(jù)傳輸是多跳機制,如果僅僅把傳輸方式改成多跳,并不加條件限制,那么路徑的選擇就是任意的,在這種情況下,會出現(xiàn)路徑選擇不合理,加快節(jié)點的死亡,引入路徑質量是十分有效的約束條件,可以選擇參數(shù)較大的簇頭,作為下一跳。通過改進簇頭選舉機制和數(shù)據(jù)傳輸機制,DEEC-BD算法的性能要優(yōu)于DEEC算法和CREEP算法的性能。