基于非均勻分簇的移動(dòng)協(xié)助無(wú)線(xiàn)傳感器網(wǎng)絡(luò)路由方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于無(wú)線(xiàn)傳感器網(wǎng)絡(luò)技術(shù)領(lǐng)域,具體涉及基于非均勻分簇的移動(dòng)協(xié)助WSNs 路由方法。
【背景技術(shù)】
[0002] 無(wú)線(xiàn)傳感器網(wǎng)絡(luò)作為一門(mén)交叉學(xué)科,主要涉及無(wú)線(xiàn)電通信技術(shù)、傳感器技術(shù)、嵌入 式微處理器技術(shù)、信息安全技術(shù)等。近年來(lái)在多個(gè)領(lǐng)域內(nèi)廣泛使用,包括軍事工業(yè)(如美 C4ISRT系統(tǒng))、航空、商業(yè)、生物醫(yī)療、反恐防暴、環(huán)境保護(hù)等。但由于WSNs能量限制問(wèn)題, 無(wú)線(xiàn)傳感器網(wǎng)絡(luò)受到限制和發(fā)展。如何減少能量消耗問(wèn)題是目前WSNs中的研宄熱點(diǎn)。目 前在WSNs路由設(shè)計(jì)時(shí),專(zhuān)家學(xué)者們不僅關(guān)注數(shù)據(jù)傳輸所帶來(lái)的能量消耗,而且關(guān)注WSNs中 各節(jié)點(diǎn)能量消耗的不均衡性。這是由于在WSNs中,當(dāng)一定數(shù)目或比例的傳感器節(jié)點(diǎn)失效或 死亡時(shí),出現(xiàn)能量空洞現(xiàn)象,從而使網(wǎng)絡(luò)中數(shù)據(jù)無(wú)法正常發(fā)送給sink(基站),進(jìn)而使網(wǎng)絡(luò) 處于癱瘓狀態(tài)。
[0003] 由Heinzelman W等人提出的LEACH協(xié)議是至今WSNs中引用率較高、較經(jīng)典的分 簇協(xié)議之一。LEACH協(xié)議是按輪成簇,在新的一輪重新進(jìn)行簇頭選舉。通過(guò)設(shè)定一個(gè)閾值來(lái) 確保每一個(gè)節(jié)點(diǎn)均有成為簇頭的機(jī)會(huì)。簇頭選舉完成后,普通節(jié)點(diǎn)根據(jù)簇頭廣播時(shí)收到的 信號(hào)強(qiáng)度來(lái)判定加入最近的簇。成為簇頭的節(jié)點(diǎn)在路由階段,需要采集自身和簇頭成員的 數(shù)據(jù),并將之發(fā)送給sink。LEACH的缺陷:在大規(guī)模的網(wǎng)絡(luò)中,遠(yuǎn)離sink的簇直接與sink 通信,容易導(dǎo)致能量耗盡而失效。
[0004] DEBUC算法對(duì)LEACH算法改進(jìn)了。該算法對(duì)LEACH簇頭選舉進(jìn)行了改進(jìn),考慮了剩 余能量和與sink距離的影響。在簇間路由時(shí)設(shè)計(jì)了以簇頭間的剩余能量、簇內(nèi)節(jié)點(diǎn)數(shù)目、 簇與sink的距離的為權(quán)值的函數(shù),更好地平衡了簇頭節(jié)點(diǎn)之間的能量消耗。
[0005] 在對(duì)WSNs上述問(wèn)題的研宄文獻(xiàn)中,專(zhuān)家學(xué)者采用分簇的路由機(jī)制來(lái)減少能量消 耗、均衡網(wǎng)絡(luò)開(kāi)銷(xiāo)。大量的研宄表明,采用分簇路由機(jī)制有效地延遲了能量空洞現(xiàn)象的出 現(xiàn),延長(zhǎng)了網(wǎng)絡(luò)的生命周期,充分地利用了網(wǎng)絡(luò)的各節(jié)點(diǎn)能量。
[0006] 國(guó)內(nèi)外一些專(zhuān)家學(xué)者也采用移動(dòng)協(xié)助方式來(lái)減少節(jié)點(diǎn)的能量消耗。移動(dòng)協(xié)助傳感 器網(wǎng)絡(luò)一般采用移動(dòng)Sink策略來(lái)實(shí)現(xiàn)。在實(shí)時(shí)性要求比較高的網(wǎng)絡(luò)環(huán)境中,如戰(zhàn)場(chǎng)信息采 集,一般的靜止基站網(wǎng)絡(luò)無(wú)法較好地滿(mǎn)足該要求,容易造成數(shù)據(jù)無(wú)法及時(shí)送達(dá)。此時(shí)使用移 動(dòng)的sink(如無(wú)人機(jī)搭載、士兵身上穿戴)匯集興趣信息較好地滿(mǎn)足了此類(lèi)環(huán)境需求。移動(dòng) sink的引入,在整體上減少了節(jié)點(diǎn)數(shù)據(jù)的轉(zhuǎn)發(fā)跳數(shù),減少了網(wǎng)絡(luò)的能量消耗,從而延長(zhǎng)了網(wǎng) 絡(luò)的生命周期。
[0007] Ma M等提出的M-collector算法(為便于記憶)是一種基于多移動(dòng)sink的算法。 該算法在設(shè)計(jì)單個(gè)M-collector時(shí),將最大限度地減少M(fèi)-collector路徑的長(zhǎng)度的問(wèn)題簡(jiǎn) 化為一個(gè)混合整數(shù)規(guī)劃模型。針對(duì)單個(gè)M-collector無(wú)法遍歷整個(gè)網(wǎng)絡(luò)的情況時(shí),該算法 采用多M-collector同時(shí)遍歷較短的子旅行路徑的策略來(lái)達(dá)到減少延遲的目的。
[0008] 該算法在設(shè)計(jì)單個(gè)M-collector移動(dòng)策略時(shí),假設(shè)M-collector只能在進(jìn)入普通 節(jié)點(diǎn)通信范圍內(nèi)時(shí),才收集該節(jié)點(diǎn)的數(shù)據(jù)。從該假設(shè)可以看出,該M-collector也是采用單 跳收集數(shù)據(jù)。在通信半徑r與網(wǎng)絡(luò)半徑R比值r/R - 0時(shí),等價(jià)于旅行商問(wèn)題。該問(wèn)題即 是減少M(fèi)-collector的周游長(zhǎng)度。然后該算法采用混合整數(shù)規(guī)劃來(lái)求解一條訪(fǎng)問(wèn)節(jié)點(diǎn)的最 優(yōu)路徑。最后該算法提出使用多M-collector算法來(lái)解決應(yīng)用程序時(shí)延問(wèn)題,使用生成樹(shù) 覆蓋算法來(lái)劃分子網(wǎng)絡(luò),每個(gè)子網(wǎng)絡(luò)中設(shè)計(jì)一個(gè)M-collector。
[0009] 在靜止的WSNs中,非均勻成簇能較好均衡網(wǎng)絡(luò)的能量消耗、延長(zhǎng)網(wǎng)絡(luò)生命周期。 但當(dāng)節(jié)點(diǎn)數(shù)據(jù)的轉(zhuǎn)發(fā)跳數(shù)太多時(shí),WSNs的能量消耗將會(huì)增加,造成網(wǎng)絡(luò)性能下降。采用移動(dòng) 協(xié)助策略,能減少節(jié)點(diǎn)數(shù)據(jù)的轉(zhuǎn)發(fā)跳數(shù),但較大的時(shí)延使消息數(shù)據(jù)無(wú)法及時(shí)地傳遞給sink。
[0010] 基于此,本方法采用移動(dòng)sink和非均勻分簇的策略來(lái)設(shè)計(jì)路由算法。本方法采用 移動(dòng)協(xié)助策略,使用移動(dòng)sink來(lái)減少節(jié)點(diǎn)消息數(shù)據(jù)的轉(zhuǎn)發(fā)跳數(shù)。并在該思想上引入了 RPs 節(jié)點(diǎn),使用RPs節(jié)點(diǎn)對(duì)接收到的消息數(shù)據(jù)進(jìn)行緩存,以此來(lái)滿(mǎn)足應(yīng)用程序時(shí)延。利用非均勻 分簇思想來(lái)均衡各節(jié)點(diǎn)的能量消耗。本文算法在滿(mǎn)足應(yīng)用程序時(shí)延的前提下,最大化地降 低了網(wǎng)絡(luò)的能量消耗,同時(shí)均衡了網(wǎng)絡(luò)中各節(jié)點(diǎn)的能量銷(xiāo)耗,從而延長(zhǎng)了網(wǎng)絡(luò)的生命周期。
【發(fā)明內(nèi)容】
[0011] 本發(fā)明提出了采用移動(dòng)sink和非均勻分簇的策略來(lái)設(shè)計(jì)路由方法。本方法使用 移動(dòng)sink來(lái)減少節(jié)點(diǎn)消息數(shù)據(jù)的轉(zhuǎn)發(fā)跳數(shù)。并在該思想上引入了 RPs節(jié)點(diǎn),使用RPs節(jié)點(diǎn) 對(duì)接收到的消息數(shù)據(jù)進(jìn)行緩存,以此來(lái)滿(mǎn)足應(yīng)用程序時(shí)延。利用非均勻分簇思想來(lái)均衡各 節(jié)點(diǎn)的能量消耗。從而在滿(mǎn)足應(yīng)用程序時(shí)延的前提下有效地提高了網(wǎng)絡(luò)的生命周期。
[0012] 為了實(shí)現(xiàn)以上目的,本發(fā)明提出的技術(shù)方案:非均勻分簇的移動(dòng)協(xié)助WSNs路由方 法,包括初始階段、分簇階段、RPs確定階段、路由階段。四個(gè)階段,具體步驟如下:
[0013] ①初始階段:首先進(jìn)行網(wǎng)絡(luò)的部署,在完成網(wǎng)絡(luò)部署后,根據(jù)公式(1)和公式(2) 計(jì)算sink的可能運(yùn)動(dòng)半徑,該值在后續(xù)運(yùn)行過(guò)程中不再進(jìn)行計(jì)算;
[0014] ②分簇階段:本方法分簇過(guò)程如圖2所示,首先在網(wǎng)絡(luò)中通過(guò)預(yù)先設(shè)定的閾值選 取一批隨機(jī)節(jié)點(diǎn)作為候選簇頭。在此基礎(chǔ)上,計(jì)算各候選簇頭節(jié)點(diǎn)的距離梯度和剩余能量 因子(公式(4)、公式(5)),根據(jù)兩個(gè)因子計(jì)算出候選簇頭的競(jìng)爭(zhēng)半徑(公式(6))。并按剩 余能量大的候選節(jié)點(diǎn)優(yōu)先廣播,普通節(jié)點(diǎn)選擇最近的簇加入完成分簇過(guò)程。
[0015] ③RPs確定階段:根據(jù)公式(7)、(8)分別確定RPs集合的寬度和個(gè)數(shù)范圍。根據(jù) 公式(9)-公式(14)建立的0-1整數(shù)規(guī)劃模型求解最優(yōu)的RP從屬簇頭節(jié)點(diǎn)集合問(wèn)題。最 后使用遺傳算法求解該0-1整數(shù)規(guī)劃問(wèn)題。
[0016] ④多層路由:簇形成時(shí)。普通成員節(jié)點(diǎn)將消息數(shù)據(jù)發(fā)送給簇頭節(jié)點(diǎn)。簇頭接收并 融合處理消息數(shù)據(jù),然后進(jìn)行簇間路由。簇間路由時(shí),對(duì)任意簇頭i,若在sink單跳范圍 內(nèi),則等待sink運(yùn)動(dòng)到其通信范圍內(nèi)直接與移動(dòng)sink通信。否則,需要轉(zhuǎn)發(fā)。簇頭i沿最 短路徑傳遞消息給與其對(duì)應(yīng)RP節(jié)點(diǎn)。RP節(jié)點(diǎn)與sink進(jìn)行通信。
[0017] 本發(fā)明的有益效果主要有以下幾點(diǎn):1)本發(fā)明在網(wǎng)絡(luò)初始化階段計(jì)算了移動(dòng) sink的可能軌跡時(shí)考慮了應(yīng)用程序時(shí)延和網(wǎng)絡(luò)總能量消耗,更加接近真實(shí)應(yīng)用;2)本發(fā)明 改進(jìn)了非均勻成簇機(jī)制,在計(jì)算競(jìng)爭(zhēng)半徑時(shí),考慮到了節(jié)點(diǎn)相對(duì)于移動(dòng)sink的距離和節(jié)點(diǎn) 的剩余能量因子,更加均衡了簇頭節(jié)點(diǎn)之間的能量消耗;3)本發(fā)明構(gòu)建RPs的從屬簇頭節(jié) 點(diǎn)問(wèn)題時(shí)采用的0-1整數(shù)規(guī)劃模型,且使用遺傳算法求解該模型,便于擴(kuò)展到更大規(guī)模的 網(wǎng)絡(luò);4)在多層路由階段,使用的多層路由,更加方便管理和拓?fù)淇刂啤?br>【附圖說(shuō)明】
[0018] 圖1為本發(fā)明流程圖。
[0019] 圖2為本發(fā)明的非均勻分簇的示意圖。
[0020] 圖3為本發(fā)明的網(wǎng)絡(luò)模型示意圖。
[0021] 圖4為遺傳算法流程圖。
[0022] 圖5為三種算法與本發(fā)明的簇頭數(shù)目對(duì)比圖。
[0023] 圖6為三種算法與本發(fā)明的生命周期對(duì)比圖。
[0024] 圖7為三種算法與本發(fā)明的剩余總能量對(duì)比圖。
【具體實(shí)施方式】
[0025] 圖3為網(wǎng)絡(luò)模型示意圖,在半徑為226m圓形區(qū)域內(nèi)隨機(jī)部署1600個(gè)傳感器節(jié)點(diǎn), sink位于(0,0)位置處,具體模型為:
[0026] ①sink節(jié)點(diǎn)沿固定軌跡做圓周運(yùn)動(dòng),速率大小恒定,sink節(jié)點(diǎn)的能量足夠,存儲(chǔ) 容量不受限制。
[0027] ②所有普通傳感器節(jié)點(diǎn)同構(gòu),即節(jié)點(diǎn)的初始能量、通信半徑、存儲(chǔ)容量、消息產(chǎn)生 率均相同。
[0028] ③所有普通傳感器節(jié)點(diǎn)已知網(wǎng)絡(luò)中心位置,并能使用GPS輔助設(shè)備進(jìn)行定位。
[0029] ④移動(dòng)sink和