本發(fā)明涉及一種無線傳感網(wǎng)中按需移動(dòng)sink的多徑地理路由優(yōu)化方法,屬于無線傳感網(wǎng)中移動(dòng)通信路由算法領(lǐng)域。
背景技術(shù):
:隨著信息時(shí)代的飛速發(fā)展,物聯(lián)網(wǎng)的應(yīng)用也紛至沓來,而傳感器是物聯(lián)網(wǎng)中不可或缺的組成部分,當(dāng)前對(duì)無線傳感網(wǎng)的研究熱度也愈演愈烈,無線傳感網(wǎng)(WSN)是由許多分布式部署的傳感器節(jié)點(diǎn)組成的無線網(wǎng)絡(luò),這些傳感器負(fù)責(zé)將感知的數(shù)據(jù)通過單跳單徑或者多跳多徑轉(zhuǎn)發(fā)給匯聚節(jié)點(diǎn)(sink節(jié)點(diǎn)),由于傳感器是由有限能量的電池供電,因此,節(jié)點(diǎn)部署和路由協(xié)議設(shè)計(jì)都需要從節(jié)能的角度出發(fā),最大限度的均衡能耗,延長網(wǎng)絡(luò)生命周期。這對(duì)無線傳感網(wǎng)絡(luò)應(yīng)用的普及具有重要的理論和實(shí)用價(jià)值。在無線傳感網(wǎng)中,若sink節(jié)點(diǎn)固定,則稱之為靜態(tài)無線傳感網(wǎng),其優(yōu)點(diǎn)是網(wǎng)絡(luò)拓?fù)湎鄬?duì)穩(wěn)定,缺點(diǎn)是網(wǎng)絡(luò)易出現(xiàn)“早死亡”現(xiàn)象。這是因?yàn)閟ink節(jié)點(diǎn)的鄰居節(jié)點(diǎn)不僅向sink節(jié)點(diǎn)發(fā)送自身感知的數(shù)據(jù),而且承擔(dān)其他傳感節(jié)點(diǎn)數(shù)據(jù)的中繼任務(wù),導(dǎo)致節(jié)點(diǎn)能耗不均。Hidenhisa等人提出SPAT(SinkMobilityBasedonClusteringandSetPackingTechniques)算法,采用執(zhí)行器控制sink的移動(dòng),其將分簇和眾包技術(shù)結(jié)合控制sink的移動(dòng)。提高了數(shù)據(jù)搜集效率,但增加 了網(wǎng)絡(luò)成本,而且,sink頻繁移動(dòng)無法持續(xù)的保持與骨干網(wǎng)絡(luò)的正常連接。為提高網(wǎng)絡(luò)吞吐量,均衡網(wǎng)絡(luò)資源并最大化的延長網(wǎng)絡(luò)生命周期,引入了多路徑機(jī)制,ChenMin等人提出能效和負(fù)載均衡的多徑地理路由算法(DGR),依據(jù)計(jì)算的關(guān)鍵能量進(jìn)行路徑選擇,避開剩余能量較小的節(jié)點(diǎn)以最大化網(wǎng)絡(luò)生存時(shí)間。但沒有考慮sink節(jié)點(diǎn)的移動(dòng)以便解決鄰居節(jié)點(diǎn)出現(xiàn)的“能量空穴”問題。技術(shù)實(shí)現(xiàn)要素:技術(shù)問題:本發(fā)明針對(duì)上述方案中存在的不足,提出了一種無線傳感網(wǎng)中按需移動(dòng)sink的多徑地理路由優(yōu)化方法,即DMRA算法。該方法不僅均衡了網(wǎng)絡(luò)能耗,提高了網(wǎng)絡(luò)性能,而且,最大化的延長了網(wǎng)絡(luò)生命周期。技術(shù)方案:本發(fā)明提出一種無線傳感網(wǎng)中按需移動(dòng)sink的多徑地理路由優(yōu)化方法,該方法利用剩余能量、時(shí)間和目標(biāo)函數(shù)等多重參數(shù)約束sink節(jié)點(diǎn)的頻繁移動(dòng),鄰居表和路徑表采用分離式建立的過程,以降低鄰居節(jié)點(diǎn)鄰居表的更新量,在搜索路由時(shí),采用改進(jìn)的禁忌搜索算法有效防止最優(yōu)路徑的丟失。為避免無效路由,采用“短板”原理對(duì)鏈路的健康指數(shù)進(jìn)行檢測。有效提高網(wǎng)絡(luò)性能,延長網(wǎng)絡(luò)生命周期。假設(shè)N個(gè)無線傳感器節(jié)點(diǎn)均勻地隨機(jī)分布在以sink節(jié)點(diǎn)為圓心半徑為l的圓形區(qū)域,節(jié)點(diǎn)的通信半徑為r(r>0,r<<l)。假定所有節(jié)點(diǎn)的 數(shù)據(jù)生成率相同,每單位時(shí)間生產(chǎn)一個(gè)包。節(jié)點(diǎn)數(shù)據(jù)傳輸率相同,節(jié)點(diǎn)的傳輸功率不變。節(jié)點(diǎn)傳輸數(shù)據(jù)的總時(shí)間記為∑t;節(jié)點(diǎn)的更新周期記為T;移動(dòng)更新狀態(tài)標(biāo)識(shí)記為MFlag;剩余能量為Erem,成功傳輸k比特?cái)?shù)據(jù)的最低能量記為Emin(k)。節(jié)點(diǎn)的初始能量均為E0,節(jié)點(diǎn)感知、注冊(cè)、無線電的傳輸和接收k比特包的總能耗Edl(k),由公式(1)計(jì)算。Eall(k)=Esen(k)+Emem(k)十Etra(k,d)+Erec(k)(1)其中,Esen(k)表示感知能耗,Emem(k)表示將感知數(shù)據(jù)讀寫入內(nèi)存的能耗,Etra(k,d)表示傳輸k比特包的傳輸能耗,d表示傳感器與事件發(fā)生點(diǎn)的距離,Erec(k)表示接收k比特包的接收能耗。節(jié)點(diǎn)剩余能量Erem由公式(2)計(jì)算。Erem=E0-Eall(k)-Eupd(k)(2)其中,Eupd(k)表示鄰居表更新的能耗。當(dāng)鄰居表不更新時(shí),Eupd(k)=0。其具體步驟如下:步驟一,鄰居表建立階段:S1:初始化網(wǎng)絡(luò)配置,sink節(jié)點(diǎn)的MFlag=false;S2:若節(jié)點(diǎn)i的∑t>T,則按照以下步驟建立鄰居表;a、迭代:由公式(3)計(jì)算節(jié)點(diǎn)i(i=1)與節(jié)點(diǎn)j(j=i+1)的距離D;D=(Six(t)-Sjx(t))2+(Siy(t)-Sjy(t))2---(3)]]>其中,表示節(jié)點(diǎn)i,在t時(shí)刻時(shí)的位置坐標(biāo)。b、若D<=r,則節(jié)點(diǎn)i廣播REQ消息;c、若收到REQ消息的節(jié)點(diǎn)是sink節(jié)點(diǎn),sink節(jié)點(diǎn)檢測其MFlag是 否為真,若為真,說明sink進(jìn)行了移動(dòng),則重新建立鄰居表,轉(zhuǎn)S5,否則,不更新鄰居表;d、若收到REQ消息的節(jié)點(diǎn)不是sink節(jié)點(diǎn),則判斷REQ中節(jié)點(diǎn)i是否滿足條件:Erem>Emin,若是,則判斷節(jié)點(diǎn)i是否同時(shí)收到兩個(gè)或兩個(gè)以上的REQ,若是,由REQ中的跳數(shù)信息,按照跳數(shù)從小到大的順序,將節(jié)點(diǎn)加入鄰居表,轉(zhuǎn)S6;否則,轉(zhuǎn)e;e、按照收到的REQ的時(shí)間順序加入鄰居表,轉(zhuǎn)S6;f、若REQ中節(jié)點(diǎn)i不滿足條件:Erem>Emin,則節(jié)點(diǎn)i不加入鄰居表,i++;g、若D>r,i++,轉(zhuǎn)h;h、若i<N-1,則轉(zhuǎn)a;否則,轉(zhuǎn)S4;S3:若節(jié)點(diǎn)i的∑t<T,則轉(zhuǎn)S4;S4:判斷MFlag是否為真,若為真,則轉(zhuǎn)S5;否則節(jié)點(diǎn)進(jìn)入休眠或監(jiān)測狀態(tài);S5:sink節(jié)點(diǎn)廣播當(dāng)前位置信息和先前的鄰居和當(dāng)前鄰居節(jié)點(diǎn);鄰居節(jié)點(diǎn)更新鄰居表;S6:輸出鄰居表NQue;步驟二,路徑表建立階段:T1:由S6,按照幾何公式(4)計(jì)算節(jié)點(diǎn)i與sink間的距離D;D=(Six(t)-DSx(t))2+(Siy(t)-DSy(t))2---(4)]]>T2:若D<=r,則通信范圍內(nèi)的所有節(jié)點(diǎn)均發(fā)送ACK消息,若sink節(jié)點(diǎn)收到節(jié)點(diǎn)i的ACK消息,則節(jié)點(diǎn)按照ACK的接收時(shí)間順序加入路 徑表隊(duì)列PQue,轉(zhuǎn)T8;否則,說明節(jié)點(diǎn)故障,則節(jié)點(diǎn)i加入禁忌表隊(duì)列TQue,轉(zhuǎn)T8;T3:若D>r,則sink通信范圍外的節(jié)點(diǎn)j通過多跳發(fā)送ReACK包;T4:若sink收到ReACK包,則將節(jié)點(diǎn)j按照接收ReACK的時(shí)間順序加入PQue;否則轉(zhuǎn)T5;T5:判斷節(jié)點(diǎn)j是否滿足以下兩個(gè)條件:條件(1):節(jié)點(diǎn)j的Erem<=Emin條件(2):節(jié)點(diǎn)j所在的路徑為“短板”路徑T6:若滿足,則sink節(jié)點(diǎn)移動(dòng),MFlag=true,轉(zhuǎn)步驟一;T7:若不滿足,則sink節(jié)點(diǎn)不移動(dòng),通過節(jié)點(diǎn)j的鄰居節(jié)點(diǎn)獲取j的信息;T8:輸出PQue和TQue。步驟三,路由表建立階段:R1:由T8得到PQue,若PQue不為空,迭代比較,目標(biāo)函數(shù)值最優(yōu)的路徑加入PQue和TQue;轉(zhuǎn)R2;R2:輸出路由表RQue;R3:當(dāng)PQue為空時(shí),終止迭代,轉(zhuǎn)R4;R4:調(diào)用步驟二,建立路徑表,若MFlag=true,則調(diào)用步驟一;否則,轉(zhuǎn)R5;R5:計(jì)算的鏈路健康指數(shù)η,若η大于鏈路的健康閾值,則按照R2輸出的RQue隊(duì)列路由;否則,轉(zhuǎn)R6;R6:若路徑pn是“短板”路徑,則MFlag=true,sink節(jié)點(diǎn)朝著“短 板”路徑移動(dòng),并且pn從TQue中解禁;R7:若路徑pn不是“短板”路徑,則MFlag=false;按照R2輸出的RQue路由。步驟三中所述的目標(biāo)函數(shù)構(gòu)成由公式(5)、(6)定義:minf2(pn)=Σ|(pm\{S,DS}∩pn\{S,DS})|Σ|(pm\{S,DS}∪pn\{S,DS})|---(6)]]>且滿足:Ealli(b)*Σti+Eupi(b)*yi≤E0]]>其中,和分別表示單位時(shí)間路徑pn上的節(jié)點(diǎn)i傳輸k比特?cái)?shù)據(jù)的能耗和更新能耗,yi隨著MFlag值變化,若MFlag=true,則yi=1,否則,yi=0。該方法將多個(gè)目標(biāo)函數(shù)轉(zhuǎn)化成單目標(biāo)優(yōu)化問題,即max(F(pn)=f1(pn)f2(pn)+1)---(7)]]>公式(7)表示從滿足條件路徑集中求出一條路徑pn,使得單目標(biāo)優(yōu)化函數(shù)值最大。由于fa(pn)可能為0,即為不相交路徑,故公式(7)中分母作加1處理。所述的“短板”路徑是對(duì)鏈路的健康指數(shù)的定義:η=min(Eremi)i∈pnΣi=1i=pnEremi---(8)]]>有益效果:本發(fā)明對(duì)無線傳感網(wǎng)中移動(dòng)sink的多徑地理路由算法進(jìn)行了研究,并提出了一種無線傳感網(wǎng)中按需移動(dòng)sink節(jié)點(diǎn)的多徑地理路由優(yōu)化方法。根據(jù)實(shí)際應(yīng)用的需求,該方法利用多重參數(shù)約 束sink節(jié)點(diǎn)的移動(dòng),從而減少sink節(jié)點(diǎn)移動(dòng)所帶來的更新量,并提出改進(jìn)的禁忌搜索算法實(shí)現(xiàn)對(duì)多路徑并行化的搜索,提高了路由效率,大大降低了網(wǎng)絡(luò)能耗,為避免無效路由,利用“短板”原理檢測鏈路的健康指數(shù),當(dāng)其低于計(jì)算閾值時(shí),若此鏈路為關(guān)鍵路徑,則sink節(jié)點(diǎn)朝著“短板”路徑移動(dòng),實(shí)現(xiàn)了sink節(jié)點(diǎn)的按需移動(dòng)。理論和大量實(shí)驗(yàn)證明,該方法有效降低了網(wǎng)絡(luò)能耗,提高了網(wǎng)絡(luò)性能,其網(wǎng)絡(luò)生命周期比靜態(tài)無線傳感網(wǎng)的網(wǎng)絡(luò)生命周期延長了近4倍。附圖說明圖1無線傳感網(wǎng)的體系結(jié)構(gòu)示意圖;圖2為鄰居表建立算法流程圖;圖3為路徑表建立算法流程圖;圖4為改進(jìn)的禁忌搜索路由算法流程圖;圖5為各種路由算法的平均剩余能量的比較示意圖;圖6為各種路由算法的網(wǎng)絡(luò)生命周期的比較示意圖;具體實(shí)施方式下面結(jié)合附圖和具體實(shí)施方式,對(duì)本發(fā)明作進(jìn)一步說明?;舅枷耄罕景l(fā)明提供一種無線傳感網(wǎng)中按需移動(dòng)sink節(jié)點(diǎn)的多徑地理路由優(yōu)化方法,該方法采用層次化邏輯結(jié)構(gòu)設(shè)計(jì),分別是鄰居表建立、路徑表建立和路由表建立三個(gè)階段。為避免因sink節(jié)點(diǎn)的頻繁移動(dòng)導(dǎo)致鄰居表的頻繁更新,采用剩余能量、時(shí)間和目標(biāo)函數(shù) 等多重參數(shù)約束sink節(jié)點(diǎn)的移動(dòng),實(shí)現(xiàn)了節(jié)點(diǎn)選擇性的進(jìn)行鄰居表的更新。鄰居表和路徑表采用分離式建立過程,以減少sink移動(dòng)所帶來的更新量,在搜索路由階段,采用改進(jìn)的禁忌搜索算法并行搜索全局最優(yōu)路徑集,在最優(yōu)路徑集中進(jìn)行路由,為避免無效路由,利用“短板效應(yīng)”衡量路徑鏈路的健康指數(shù),當(dāng)其低于計(jì)算閾值時(shí),sink節(jié)點(diǎn)朝著“短板”節(jié)點(diǎn)移動(dòng),實(shí)現(xiàn)了sink節(jié)點(diǎn)的按需移動(dòng),有效的均衡了網(wǎng)絡(luò)能耗,延長了網(wǎng)絡(luò)生命周期。定義:外鄰域若幾何A、B是封閉的區(qū)域,則外鄰域Ω記為:Ω=A\(A∩B)=A-B(9)數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)如下:節(jié)點(diǎn)(包括sink節(jié)點(diǎn))的固定字段:SIDDIDSeqNumSPOS/DPOS可變字段:NQueHopCNexHopPreHoptEremDataEupdsink節(jié)點(diǎn)參數(shù)字段:SID和DID分別表示源節(jié)點(diǎn)和sink節(jié)點(diǎn)的ID,SeqNum表示序列編號(hào),SPOS和DPOS用二元組(Sx(t),Sy(t))分別表示源節(jié)點(diǎn)和sink節(jié)點(diǎn)直角坐標(biāo)系中水平和垂直方向上的位置;HopC用于表示跳數(shù);t用于對(duì)數(shù)據(jù)包傳輸計(jì)時(shí),并和更新周期T比較。在sink節(jié)點(diǎn)的字段中, MFlag是布爾變量,表示sink節(jié)點(diǎn)是否移動(dòng);F(pn)是復(fù)合函數(shù),用于最優(yōu)路徑選擇的衡量條件。NQue、PQue、RQue和TQue均為以記錄形式存儲(chǔ)的隊(duì)列,分別表示鄰居表、路徑表、路由表和禁忌表,TQue存放能量低于能量閾值節(jié)點(diǎn),這種節(jié)點(diǎn)永遠(yuǎn)不再被訪問,并存放本次迭代中最優(yōu)的路徑,當(dāng)節(jié)點(diǎn)移動(dòng)后,將TQue表中的最優(yōu)路徑解禁,表示可以再被訪問;為減少消息報(bào)文長度,REQ報(bào)文表示一條記錄,包含節(jié)點(diǎn)固定字段的信息和HopC參數(shù)。MES報(bào)文包含節(jié)點(diǎn)的固定字段、MFlag和NQue參數(shù)。ACK報(bào)文包含SID,Erem,HopC,t和在Ω區(qū)域中的鄰居節(jié)點(diǎn)NQue。ReACK報(bào)文包含SID,Erem,t和所有的NQue。本發(fā)明采用OPNET仿真平臺(tái),仿真環(huán)境參數(shù)配置如表1所示:節(jié)點(diǎn)總數(shù)為500,網(wǎng)絡(luò)大小為100平方米的區(qū)域內(nèi),網(wǎng)絡(luò)拓?fù)潆S機(jī)配置,報(bào)告間隔為0.2s,數(shù)據(jù)傳輸率為1Mbps,節(jié)點(diǎn)通信半徑為50m,節(jié)點(diǎn)初始能量為36J,節(jié)點(diǎn)成功傳輸k比特?cái)?shù)據(jù)的總能耗為50nJ/bit,更新周期為0.8s,感知數(shù)據(jù)大小默認(rèn)1KB,消息報(bào)文大小默認(rèn)128B。表1仿真環(huán)境參數(shù)配置圖2給出鄰居表建立算法的流程圖,當(dāng)MFlag=true時(shí),即sink節(jié)點(diǎn)移動(dòng),則sink節(jié)點(diǎn)廣播當(dāng)前位置信息給先前位置的鄰居節(jié)點(diǎn)和當(dāng)前位置的鄰居節(jié)點(diǎn),這些節(jié)點(diǎn)進(jìn)行更新鄰居表,實(shí)現(xiàn)了選擇性的更新,減少了更新量,節(jié)約了節(jié)點(diǎn)和網(wǎng)絡(luò)的能耗。圖3給出路徑表建立算法流程圖,該算法在鄰居表建立的基礎(chǔ)上,采用ACK和ReACK消息來確定將路徑是否加入路徑表或者禁忌表。圖4給出改進(jìn)的禁忌搜索路由算法流程圖,該算法改進(jìn)之處在于禁忌表不僅存放能量低于閾值的節(jié)點(diǎn),這些節(jié)點(diǎn)將永遠(yuǎn)不再被訪問,而且存放最優(yōu)路徑,當(dāng)MFlag=true時(shí),最優(yōu)路徑便可以解禁,可以再次被訪問,有效避免了最優(yōu)解的丟失。平均剩余能量與鏈路健康指數(shù)的關(guān)系如圖5所示,DGR的平均剩余能量均低于SPAT和DMRA,這是因?yàn)榫W(wǎng)絡(luò)規(guī)模較小的情況下,DGR在建立多條不相交路徑,能量消耗較大。而本文提出的優(yōu)化方法(DMRA)的剩余能量平均走勢均比較高,原因是sink的移動(dòng)受距離、剩余能量和時(shí)間等參數(shù)的約束,所以選擇性的更新鄰居表和路 徑表使得能耗最大化的得到節(jié)約。隨著網(wǎng)絡(luò)規(guī)模的擴(kuò)大,DGR剩余能量大幅度的降低。SPAT的剩余能量也有明顯的降低,但比DGR剩余能量高,說明移動(dòng)sink的路由在一定程度上均衡了能耗。而本發(fā)明提出的DMRA的剩余能量均比其他策略的高,說明隨著網(wǎng)絡(luò)規(guī)模的增大,按需移動(dòng)sink的多路徑地理路由策略有效的降低了瓶頸節(jié)點(diǎn)能耗,同時(shí)最優(yōu)多路徑的并行數(shù)據(jù)傳輸對(duì)大數(shù)據(jù)量的傳感器網(wǎng)絡(luò)起到了節(jié)能、高效的作用。各種路由算法的網(wǎng)絡(luò)生命周期的比較如圖6所示:DGR生命周期始終低于DMRA和SPAT策略,因?yàn)镈GR沒有建立移動(dòng)機(jī)制,隨著網(wǎng)絡(luò)規(guī)模的增大,sink的鄰居節(jié)點(diǎn)的中繼任務(wù)也越來越重,能量消耗加快,因此生命周期逐漸降低。而DMRA的生命周期比SPAT和DGR的均高,原因是sink節(jié)點(diǎn)的按需移動(dòng)有效的均衡了瓶頸節(jié)點(diǎn)的能耗。并且并行的從最優(yōu)路徑集中路由數(shù)據(jù),最大化的延長了網(wǎng)絡(luò)生命周期??傮w上,該策略的平均生命周期是靜態(tài)的DGR策略的生命周期的3.96倍、SPAT的2.13倍。上述描述僅作為本發(fā)明可實(shí)施的技術(shù)方案提出,不作為對(duì)其技術(shù)方案本身的單一限制條件。當(dāng)前第1頁1 2 3