羅海波,阮志強(qiáng)
(1.閩江學(xué)院計(jì)算機(jī)科學(xué)系,福州 350121;2.福建省信息處理與智能控制重點(diǎn)實(shí)驗(yàn)室,福州 350121;3.數(shù)字福建智能化生產(chǎn)物聯(lián)網(wǎng)實(shí)驗(yàn)室,福州 350121;4.閩江學(xué)院工業(yè)機(jī)器人應(yīng)用福建省高校工程研究中心,福州 350121)
在無(wú)線(xiàn)傳感器網(wǎng)絡(luò)WSNs(Wireless Sensor Networks)中,部署了大量由電池供電的節(jié)點(diǎn),因此節(jié)約能耗是設(shè)計(jì)無(wú)線(xiàn)傳感器網(wǎng)絡(luò)媒質(zhì)訪(fǎng)問(wèn)控制MAC(Medium Access Control)及路由算法的主要挑戰(zhàn)之一[1-3]。線(xiàn)型無(wú)線(xiàn)傳感器網(wǎng)絡(luò)是一種拓?fù)浣Y(jié)構(gòu)呈現(xiàn)一定線(xiàn)型性的特殊網(wǎng)絡(luò)結(jié)構(gòu),如圖1所示,該類(lèi)型網(wǎng)絡(luò)可廣泛應(yīng)用于道路、橋梁、隧道、過(guò)道、管道、河流等監(jiān)控領(lǐng)域,在這種類(lèi)型的WSNs中,節(jié)點(diǎn)往往等距離靜態(tài)部署,具有大量的中繼節(jié)點(diǎn)和中繼跳數(shù),因此網(wǎng)絡(luò)時(shí)延將比其他類(lèi)型的WSNs大[4-5],另一方面,網(wǎng)絡(luò)拓?fù)涞木€(xiàn)型性也導(dǎo)致網(wǎng)絡(luò)連接更加脆弱,部分連續(xù)相鄰節(jié)點(diǎn)耗盡能量后將導(dǎo)致整個(gè)網(wǎng)絡(luò)鏈路的中斷。因此,在線(xiàn)型WSNs中,設(shè)計(jì)一個(gè)能耗均衡與時(shí)延優(yōu)化的中繼節(jié)點(diǎn)選擇算法尤為關(guān)鍵。
最遠(yuǎn)傳輸距離算法(MFR)[6]總是選擇通信范圍內(nèi)最遠(yuǎn)處的節(jié)點(diǎn)作為中繼節(jié)點(diǎn),以期達(dá)到最低功耗及最少時(shí)延,但是MFR算法將導(dǎo)致部分節(jié)點(diǎn)過(guò)早死亡。Ramaiyan等人[7]從理論上分析了最優(yōu)功率控制及最佳轉(zhuǎn)發(fā)距離,并提出應(yīng)在發(fā)射功率與傳輸距離之間找到一個(gè)平衡點(diǎn),從而得到最優(yōu)中繼距離和最低網(wǎng)絡(luò)能耗。
Luo J等人[8]則受到隨機(jī)路由策略[9-10]的啟發(fā),針對(duì)線(xiàn)型無(wú)線(xiàn)傳感器網(wǎng)絡(luò)提出了一種基于隨機(jī)路由的中繼節(jié)點(diǎn)選擇算法ENS_OR,該算法基于節(jié)點(diǎn)剩余能量,設(shè)計(jì)了一個(gè)最優(yōu)化節(jié)點(diǎn)選擇函數(shù),從而可以為前向轉(zhuǎn)發(fā)集中的每個(gè)節(jié)點(diǎn)計(jì)算中繼轉(zhuǎn)發(fā)優(yōu)先級(jí),優(yōu)先級(jí)較高的節(jié)點(diǎn)將優(yōu)先獲得轉(zhuǎn)發(fā)權(quán)。但在ENS_OR算法中,優(yōu)先權(quán)的獲取是通過(guò)設(shè)定定時(shí)器得到的,而定時(shí)器的設(shè)定,跟節(jié)點(diǎn)的剩余能量直接相關(guān),這就將導(dǎo)致隨著網(wǎng)絡(luò)的運(yùn)行,由于節(jié)點(diǎn)剩余能量下降,即使具有較高優(yōu)先級(jí)的節(jié)點(diǎn),也需要等待更長(zhǎng)的時(shí)間才進(jìn)行數(shù)據(jù)的中繼。GeRaF[11]則是一個(gè)經(jīng)典的基于地理位置的隨機(jī)路由中繼節(jié)點(diǎn)選擇策略,在該算法中,每個(gè)數(shù)據(jù)包均攜帶了發(fā)送節(jié)點(diǎn)和目標(biāo)節(jié)點(diǎn)的位置信息,離目標(biāo)節(jié)點(diǎn)更近的節(jié)點(diǎn)將獲得優(yōu)先轉(zhuǎn)發(fā)權(quán)。上述算法均未考慮到線(xiàn)型無(wú)線(xiàn)傳感器網(wǎng)絡(luò)的時(shí)延問(wèn)題,為了均衡優(yōu)化能耗與時(shí)延,TE-OR算法[12]提出了一種自適應(yīng)的中繼節(jié)點(diǎn)選擇算法,TE-OR將數(shù)據(jù)包按時(shí)間敏感性分類(lèi),并假定節(jié)點(diǎn)的發(fā)射功率不變,利用協(xié)調(diào)因子來(lái)適應(yīng)數(shù)據(jù)包的類(lèi)型,但由于設(shè)定了節(jié)點(diǎn)的發(fā)射功率是固定的,因此未考慮到能耗最優(yōu)傳輸距離。
本文基于隨機(jī)路由的基本思想,并考慮到隨機(jī)路由的廣播屬性,首先推算出全局能耗最優(yōu)的傳輸距離,而后考慮到緊急數(shù)據(jù)包的時(shí)延要求,通過(guò)調(diào)節(jié)發(fā)射功率,分別在最遠(yuǎn)傳輸距離及能耗最優(yōu)距離范圍內(nèi)為緊急數(shù)據(jù)包和普通數(shù)據(jù)包選擇最佳中繼節(jié)點(diǎn),從而實(shí)現(xiàn)時(shí)延-能耗的平衡最優(yōu)化。
圖1 線(xiàn)型無(wú)線(xiàn)傳感器網(wǎng)絡(luò)應(yīng)用背景及抽象拓?fù)淠P?/p>
線(xiàn)型無(wú)線(xiàn)傳感器網(wǎng)絡(luò)的拓?fù)淠P腿鐖D1所示,假定節(jié)點(diǎn)等距均勻分布,并連續(xù)編號(hào)。兩個(gè)相鄰節(jié)點(diǎn)之間的距離為DN,節(jié)點(diǎn)的通信范圍為R=nDN,節(jié)點(diǎn)發(fā)送一個(gè)k-bit數(shù)據(jù)包的能耗為ETx(k,d)=(ETelec+Eampdτ),接收k-bit數(shù)據(jù)包的能耗為ERx(k)=EReleck,其中,ETelec與ERelec為節(jié)點(diǎn)發(fā)送和接收電路的基礎(chǔ)能耗,Eamp為發(fā)送功放電路的能耗系數(shù)[13],τ為無(wú)線(xiàn)環(huán)境的信道衰減因子,一般滿(mǎn)足:2≤τ≤4.
假設(shè)在線(xiàn)型傳感器網(wǎng)絡(luò)中,每個(gè)節(jié)點(diǎn)的發(fā)射距離均為R(R=nDN),當(dāng)節(jié)點(diǎn)Ni發(fā)送kbit數(shù)據(jù)到Sink節(jié)點(diǎn)Ns時(shí),每個(gè)中繼節(jié)點(diǎn)發(fā)送能耗為ETx(k,R)。數(shù)據(jù)在中繼過(guò)程中,每一跳中繼時(shí),R范圍內(nèi)的所有節(jié)點(diǎn)(共2n個(gè))均可偵聽(tīng)到該數(shù)據(jù)包,每個(gè)節(jié)點(diǎn)的偵聽(tīng)功耗為ERx(k),則每跳中繼造成的偵聽(tīng)總能耗為2n×ERx(k)??梢?jiàn),此時(shí)網(wǎng)絡(luò)總能耗為:
(1)
為了求得總能耗的極值,可將式(1)對(duì)R求一階導(dǎo)數(shù),可得:
(2)
(3)
Rop={ETelec/[(τ-1)Eamp]}1/τ
(4)
在能耗最小化的同時(shí),還需要考慮數(shù)據(jù)包時(shí)延,特別是對(duì)于緊急數(shù)據(jù)的傳輸,時(shí)延是非常敏感的性能指標(biāo),在線(xiàn)型無(wú)線(xiàn)傳感器網(wǎng)絡(luò)中,由于傳輸跳數(shù)較多,數(shù)據(jù)的時(shí)延主要產(chǎn)生在中繼環(huán)節(jié),因此應(yīng)盡可能減少緊急數(shù)據(jù)的傳遞跳數(shù),即每一跳應(yīng)盡可能傳遞地遠(yuǎn),此時(shí)要求每一跳都選擇通信范圍內(nèi)最遠(yuǎn)的節(jié)點(diǎn)作為下一跳中繼節(jié)點(diǎn),直至最遠(yuǎn)處節(jié)點(diǎn)的能源被耗盡,再選擇次遠(yuǎn)處節(jié)點(diǎn),依此類(lèi)推。在線(xiàn)型無(wú)線(xiàn)傳感器網(wǎng)絡(luò)中,節(jié)點(diǎn)近似等距離部署,節(jié)點(diǎn)的ID號(hào)(編號(hào))可與其地理位置關(guān)聯(lián)起來(lái),假設(shè)選擇的中繼節(jié)點(diǎn)為Nc,則此時(shí)要求c的值應(yīng)該盡可能的大。
但另一方面,在無(wú)線(xiàn)傳感器網(wǎng)絡(luò)中,我們還應(yīng)考慮節(jié)點(diǎn)能量消耗的均衡性與公平性,部分節(jié)點(diǎn)的過(guò)早死亡將在線(xiàn)型無(wú)線(xiàn)傳感器網(wǎng)絡(luò)中形成“盲區(qū)”,由于線(xiàn)型無(wú)線(xiàn)傳感器網(wǎng)絡(luò)特殊的拓?fù)浣Y(jié)構(gòu),這些“盲區(qū)”甚至可能使得網(wǎng)絡(luò)連接中斷。為實(shí)現(xiàn)能耗的均衡性,可構(gòu)建一個(gè)方差函數(shù)來(lái)優(yōu)化中繼節(jié)點(diǎn)的選擇,使得節(jié)點(diǎn)在選定下一跳中繼節(jié)點(diǎn)后,其通信范圍內(nèi)(R=nDN)的所有節(jié)點(diǎn)的剩余能量方差最小[12]。具體的說(shuō),節(jié)點(diǎn)Ni選定Nc(i+1≤c≤i+n)作為下一跳中繼節(jié)點(diǎn),在節(jié)點(diǎn)Nc完成這個(gè)k-bit數(shù)據(jù)包中繼后,Ni的前向節(jié)點(diǎn)集CNi={Nj|i+1≤j≤i+n,j∈Z}的剩余能量方差可表示為:
(5)
式中:REj表示節(jié)點(diǎn)Nj的剩余能量,μ為節(jié)點(diǎn)Nc完成數(shù)據(jù)發(fā)送后,前向節(jié)點(diǎn)集CNi的剩余能量均值??傮w上看,不管選擇哪個(gè)前向節(jié)點(diǎn)作為下一跳中繼節(jié)點(diǎn),集合CNi都將消耗nERx(k)的接收能耗及ETx(k,R)發(fā)送能耗,因此剩余能量均值μ是一個(gè)與c無(wú)關(guān)的值。為了實(shí)現(xiàn)能耗的均衡化,V(c)應(yīng)該取最小值。另一方面,根據(jù)上述的分析,為了使得數(shù)據(jù)包時(shí)延盡可能的小,c的值應(yīng)該盡可能的大。則構(gòu)建聯(lián)合優(yōu)化目標(biāo)函數(shù)如下:
F(c)=V(c)-γc
(6)
式中,γ為調(diào)節(jié)能耗與時(shí)延的協(xié)調(diào)因子,且γ越大,越有利于降低數(shù)據(jù)包時(shí)延,反之則有利于提高能耗均衡性。顯然地,我們應(yīng)該選擇最優(yōu)化中繼節(jié)點(diǎn)Nc,使得F(c)的值最小,即:
mini+1≤c≤i+nF(c)=mini+1≤c≤i+n[V(c)-γc]
(7)
將式(5)代入式(7),并消除與變量c無(wú)關(guān)的項(xiàng),經(jīng)過(guò)恒等轉(zhuǎn)換,式(7)可等價(jià)為式(8):
maxi+1≤c≤i+n{[2ETx(k,R)×REc]/n+γc}
(8)
從式(8)可以看出,根據(jù)應(yīng)用需求設(shè)定好協(xié)調(diào)因子γ之后,我們可以根據(jù)節(jié)點(diǎn)的剩余能量REc及地理位置(即編號(hào)c)來(lái)求得最優(yōu)的中繼節(jié)點(diǎn)。當(dāng)節(jié)點(diǎn)Ni有數(shù)據(jù)需要發(fā)送時(shí),根據(jù)式(8)得到前向節(jié)點(diǎn)集中所有節(jié)點(diǎn)的計(jì)算結(jié)果,并根據(jù)結(jié)果大小進(jìn)行優(yōu)先級(jí)排序,結(jié)果較大的節(jié)點(diǎn),優(yōu)先級(jí)越高。并將該優(yōu)先級(jí)順序信息插入到數(shù)據(jù)包中。CNi中的節(jié)點(diǎn)接收到數(shù)據(jù)包后,直接提取優(yōu)先級(jí)順序啟動(dòng)不同的定時(shí)器,優(yōu)先級(jí)高的,定時(shí)時(shí)間將最短,在定時(shí)時(shí)間到達(dá)后,回復(fù)ACK數(shù)據(jù)包給源節(jié)點(diǎn)Ni,并進(jìn)行數(shù)據(jù)包的轉(zhuǎn)發(fā)。其他節(jié)點(diǎn)在偵聽(tīng)到ACK消息后,則立刻停止定時(shí)器并放棄該數(shù)據(jù)包的轉(zhuǎn)發(fā)。
總結(jié)來(lái)看,根據(jù)上述第1節(jié)的分析,為了降低網(wǎng)絡(luò)總體能耗,要求每跳中繼的最優(yōu)傳輸距離為Rop。但從時(shí)延性能的角度出發(fā),則要求每跳要盡可能地遠(yuǎn),以便減少傳輸跳數(shù),此時(shí)最佳傳輸距離為Rmax=mDN。因此,為了滿(mǎn)足時(shí)延、耗能最少及均衡性3個(gè)方面的需求,本文針對(duì)數(shù)據(jù)的時(shí)延要求屬性,提出了一個(gè)隨機(jī)路由中能耗-時(shí)延自適應(yīng)優(yōu)化中繼節(jié)點(diǎn)選擇算法LEARS(Latency-Energy Adaptable Relay-node Selection algorithm),對(duì)于緊急數(shù)據(jù)包,節(jié)點(diǎn)調(diào)整最大發(fā)射能量為ETx(k,Rmax),此時(shí)可在最大傳輸距離Rmax范圍內(nèi)根據(jù)式(8)選擇最優(yōu)中繼節(jié)點(diǎn);而對(duì)于普通數(shù)據(jù)包,則降低發(fā)射能量到ETx(k,Rop),并在Rop范圍內(nèi)根據(jù)式(8)選擇最優(yōu)中繼節(jié)點(diǎn)。這樣,則可達(dá)到能耗與時(shí)延的自適應(yīng)均衡優(yōu)化。算法的偽代碼描述如下:
算法1功率可調(diào)的時(shí)延-能耗自適應(yīng)優(yōu)化中繼節(jié)點(diǎn)選擇算法(LEARS)
在上述算法中,TACK為ACK消息的發(fā)送時(shí)間,TSIFS為無(wú)線(xiàn)通信中必須具備的短幀間時(shí)延,用于在 2個(gè)連續(xù)的消息中插入時(shí)間空隙,以便接收端及時(shí)進(jìn)行數(shù)據(jù)的接收處理。從該算法可看出,timer(j)只與節(jié)點(diǎn)的優(yōu)先序PO(j)相關(guān),而與前向集節(jié)點(diǎn)的剩余能量分布無(wú)關(guān),當(dāng)網(wǎng)絡(luò)中節(jié)點(diǎn)的剩余能量降低時(shí),優(yōu)先級(jí)相同的節(jié)點(diǎn)在不同時(shí)刻具有恒定的timer時(shí)延,這對(duì)于提高時(shí)間敏感消息的實(shí)時(shí)性尤為重要。
為驗(yàn)證我們所提出的LEARS算法,本文使用MATLAB對(duì)其進(jìn)行仿真分析,并與GeRaF、MTE(R=5 m)及TE-OR算法進(jìn)行比較。與本文基于前向地理位置轉(zhuǎn)發(fā)思想類(lèi)似,GeRaF也是一個(gè)基于地理位置的隨機(jī)中繼節(jié)點(diǎn)選擇策略,而MTE則是一種逐跳最小能量轉(zhuǎn)發(fā)策略,它們都旨在最小化網(wǎng)絡(luò)能耗。TE-OR算法則是一種專(zhuān)門(mén)針對(duì)線(xiàn)型拓?fù)渚W(wǎng)絡(luò)能耗-時(shí)延聯(lián)合優(yōu)化算法。
考察了節(jié)點(diǎn)平均剩余能量、節(jié)點(diǎn)剩余能量方差、平均包時(shí)延、死亡節(jié)點(diǎn)個(gè)數(shù)、網(wǎng)絡(luò)生命周期等5個(gè)性能指標(biāo)。仿真參數(shù)的設(shè)置與TE-OR保持一致,由 1個(gè)源節(jié)點(diǎn)以1 s為周期產(chǎn)生數(shù)據(jù)包,并發(fā)送到Sink節(jié)點(diǎn),并按50%的概率隨機(jī)生成緊急數(shù)據(jù)包和普通數(shù)據(jù)包。源節(jié)點(diǎn)與Sink節(jié)點(diǎn)間線(xiàn)性等距部署500個(gè)節(jié)點(diǎn),節(jié)點(diǎn)之間相距5 m,TE-OR中的發(fā)送距離與LEARS算法中的Rmax均設(shè)置為50 m,即假定TE-OR將發(fā)射功率固定設(shè)置為最大值。ETelec、ERelec、Eamp分別為50×10-9J/bit、25×10-9J/bit、18×10-11J/(bit·m2),信道衰減因子τ=2,則Rop=(50×(10-9/18)×10-11)1/2≈16.7 m,本文在實(shí)驗(yàn)時(shí),設(shè)Rop=20 m。其他參數(shù)設(shè)置如表1所示??捎?jì)算得到接收數(shù)據(jù)能耗ERx(800)=2×10-5J。由于本文主要通過(guò)控制發(fā)射功率來(lái)調(diào)整通信距離,從而適應(yīng)不同的數(shù)據(jù)包類(lèi)型,因此緊急數(shù)據(jù)包和普通數(shù)據(jù)包的協(xié)調(diào)因子γ均設(shè)定為1α(α=2ETx(k,R)/n)。所有節(jié)點(diǎn)的初始能量為1 J,當(dāng)能量消耗到只剩下0.2 J時(shí),認(rèn)定節(jié)點(diǎn)死亡。
表1 仿真參數(shù)
圖2所示為4種算法的平均剩余能量變化情況。隨著網(wǎng)絡(luò)的運(yùn)行,4個(gè)算法的平均剩余能量均將下降至接近0.2 J,但MTE的平均剩余能量下限值是最大的,為0.226 J,這是由于MTE采用每跳最短中繼法,因此只要存在一個(gè)節(jié)點(diǎn)能量下降到0.2 J,數(shù)據(jù)包即無(wú)法繼續(xù)傳遞,即使后續(xù)節(jié)點(diǎn)仍然具有一定的剩余能量。此外,MTE的平均剩余能量下降最快,而LEARS下降得最慢。因?yàn)長(zhǎng)EARS在傳遞普通數(shù)據(jù)包時(shí),每跳距離盡可能接近最優(yōu)能耗傳輸距離Rop,因此,相比TE-OR單純使用協(xié)調(diào)因子γ來(lái)調(diào)節(jié)普通數(shù)據(jù)包在Rmax范圍內(nèi)選定中繼節(jié)點(diǎn),具有更佳的能耗表現(xiàn)。
圖2 平均剩余能量
網(wǎng)絡(luò)的剩余能量的方差變化情況如圖3所示,總體上看,TE-OR、GeRaF、LEARS的剩余能量方差均呈現(xiàn)出先變大再變小的趨勢(shì),且具有階梯振蕩式特性,這是因?yàn)殡S著數(shù)據(jù)的傳遞,部分節(jié)點(diǎn)將優(yōu)先消耗能量,造成方差總體上升,隨后根據(jù)算法各自的策略,其他節(jié)點(diǎn)也將被選定為中繼節(jié)點(diǎn),因此方差又會(huì)短時(shí)降低,隨后又將升高。GeRaF剩余能量方差的上升和下降是最快的,相比之下,TE-OR與LEARS則平緩得多,MTE總是每跳中繼,所有節(jié)點(diǎn)均等消耗能量,因此方差總是0。此外,我們可以從圖中看出,由于LEARS動(dòng)態(tài)調(diào)節(jié)功率來(lái)轉(zhuǎn)發(fā)不同類(lèi)型的消息,LEARS的方差將比TE-OR要大。
圖3 剩余能量方差
圖4 時(shí)延
圖4為數(shù)據(jù)包的平均時(shí)延,本文統(tǒng)計(jì)所有被Sink節(jié)點(diǎn)成功接收的數(shù)據(jù)包的平均端到端時(shí)延,MTE的平均時(shí)延總是維持在約1.8 s,遠(yuǎn)大于其他算法,因此本文沒(méi)有將它畫(huà)在圖4中。為了區(qū)分TE-OR及LEARS中不同數(shù)據(jù)包類(lèi)型的時(shí)延性能,圖4中分別畫(huà)出了它們的緊急數(shù)據(jù)和普通數(shù)據(jù)包的平均時(shí)延。可以看出,LEARS緊急數(shù)據(jù)包時(shí)延與TE-OR的相當(dāng),約為179 ms,且比GeRaF低18 ms,但LEARS普通數(shù)據(jù)包時(shí)延則明顯高出不少,這是由于LEARS的普通數(shù)據(jù)包在中繼時(shí),最遠(yuǎn)傳輸距離為Rop=20 m,遠(yuǎn)小于緊急數(shù)據(jù)包的Rmax=50 m,因此普通數(shù)據(jù)包將具有更多的中繼跳數(shù),從而導(dǎo)致了更高的數(shù)據(jù)包時(shí)延。
圖5和圖6分別為節(jié)點(diǎn)死亡個(gè)數(shù)及網(wǎng)絡(luò)生命周期的對(duì)比圖。總體上看,MTE在網(wǎng)絡(luò)運(yùn)行到157 min時(shí),產(chǎn)生第1個(gè)死亡節(jié)點(diǎn),因此網(wǎng)絡(luò)也在此時(shí)中斷。其他3個(gè)算法,死亡節(jié)點(diǎn)個(gè)數(shù)均階梯式上升,但LEARS的死亡節(jié)點(diǎn)個(gè)數(shù)在大部分時(shí)間段分別低于TE-OR及GeRaF約20個(gè)及110個(gè)。此外,LEARS具有最長(zhǎng)的網(wǎng)絡(luò)生命周期,比TE-OR延長(zhǎng)了約65 min。
圖5 死亡節(jié)點(diǎn)個(gè)數(shù)
圖6 網(wǎng)絡(luò)生命周期
針對(duì)線(xiàn)型無(wú)線(xiàn)傳感器網(wǎng)絡(luò)中存在的時(shí)延-能耗均衡優(yōu)化問(wèn)題,本文提出了一種自適應(yīng)優(yōu)化算法,針對(duì)數(shù)據(jù)的時(shí)間敏感性,選擇不同的發(fā)射功率和中繼距離,并在通信范圍內(nèi)選出聯(lián)合最優(yōu)的中繼節(jié)點(diǎn)。仿真結(jié)果表明,本文所提出的LEARS算法可與TE-OR算法一樣,優(yōu)先保證緊急數(shù)據(jù)的實(shí)時(shí)傳輸,并可進(jìn)一步降低了網(wǎng)絡(luò)總體能耗,大幅度延長(zhǎng)了網(wǎng)絡(luò)的生命周期。接下來(lái),我們將搭建物理測(cè)驗(yàn)平臺(tái)對(duì)該算法進(jìn)行評(píng)估及進(jìn)行進(jìn)一步的優(yōu)化。