苗俊先,趙一帆,李 波,楊俊東,丁洪偉+
(1.云南大學(xué) 信息學(xué)院,云南 昆明 650500;2.云南民族大學(xué) 電氣信息工程學(xué)院,云南 昆明 650500)
無(wú)線傳感器網(wǎng)絡(luò)(wireless sensor network,WSN)是由許多微型傳感器節(jié)點(diǎn)通過(guò)自組網(wǎng)形成[1],主要用于環(huán)境參數(shù)的監(jiān)測(cè)[2,3]。近些年,其廣泛應(yīng)用在農(nóng)業(yè)、醫(yī)療、工業(yè)生產(chǎn)等領(lǐng)域[4,5]。節(jié)點(diǎn)能量的利用率取決于路由協(xié)議,因此,研究高效的路由協(xié)議已成為傳感網(wǎng)面臨的重大挑戰(zhàn)[6]。
LEACH協(xié)議簇首選擇、簇群規(guī)模和分布隨機(jī)性強(qiáng)[7],LEACH-C協(xié)議簇首選擇忽略位置因素,導(dǎo)致簇內(nèi)通信能耗不均衡。文獻(xiàn)[8]中以網(wǎng)格劃分方式分簇,但是單簇首負(fù)載過(guò)大。石美紅等[9]優(yōu)化分簇方法和引入雙簇首提升網(wǎng)絡(luò)能耗均衡,但簇間以最小能耗選擇中繼節(jié)點(diǎn),加快中繼節(jié)點(diǎn)的死亡。文獻(xiàn)[10]提出非均勻分簇的雙簇首協(xié)議,緩解單簇首的通信壓力,副簇首選擇未考慮與主簇首的距離。黃利曉等在文獻(xiàn)[11]中提出能耗均衡的LEACH改進(jìn)協(xié)議,用間距、剩余能量和密度因子競(jìng)選簇首。文獻(xiàn)[12]中EBRAA算法通過(guò)層次聚類(lèi)提高分簇的均勻性。文獻(xiàn)[10-12]3種算法簇首競(jìng)選時(shí)加權(quán)值固定不變,各因子的權(quán)值缺乏動(dòng)態(tài)調(diào)整并且未考慮簇群規(guī)模對(duì)簇間能耗均衡的影響。
綜上所述的路由協(xié)議未綜合考慮簇首工作量、成簇規(guī)模、簇內(nèi)和簇間通信傳輸?shù)葘?duì)能耗均衡的影響,且簇內(nèi)節(jié)點(diǎn)能耗均衡性缺乏衡量標(biāo)準(zhǔn),為此提出一種能耗均衡的非均勻分簇路由算法(a non-uniform clustering routing algorithm for balanced energy consumption,ANRB)。通過(guò)改進(jìn)的K均值算法和成簇半徑調(diào)整簇群規(guī)模實(shí)現(xiàn)非均勻分簇,并以雙簇首減緩簇首通信壓力;利用基尼系數(shù)對(duì)簇內(nèi)節(jié)點(diǎn)能耗均衡性評(píng)估,選擇更利于能耗均衡的節(jié)點(diǎn)為主簇首,使用動(dòng)態(tài)權(quán)值調(diào)整副簇首競(jìng)選中各因子的影響;增加轉(zhuǎn)發(fā)次數(shù)和節(jié)點(diǎn)數(shù)等因子優(yōu)化中繼節(jié)點(diǎn)選擇,均衡簇間能量消耗。
WSN中各傳感器節(jié)點(diǎn)以隨機(jī)的方式拋撒在監(jiān)測(cè)區(qū)域內(nèi),且位置不隨時(shí)間發(fā)生變化,每個(gè)節(jié)點(diǎn)具有唯一的ID號(hào)和位置信息相對(duì)應(yīng)[13];傳感器節(jié)點(diǎn)可以感知自己的位置及剩余能量等信息,可以進(jìn)行簡(jiǎn)單的信息處理,能夠根據(jù)傳輸距離自動(dòng)調(diào)整發(fā)射功率;Sink節(jié)點(diǎn)能量無(wú)限且處理數(shù)據(jù)能力強(qiáng)大;所有節(jié)點(diǎn)的初始能量、計(jì)算能力、數(shù)據(jù)傳輸能力等性能完全相同,當(dāng)能量消耗殆盡時(shí)節(jié)點(diǎn)將自動(dòng)退出網(wǎng)絡(luò)系統(tǒng)。
在能耗計(jì)算方面提出的算法與LEACH協(xié)議都采用一階無(wú)線電能耗模型[14],數(shù)據(jù)傳輸和融合能量消耗較大,其中數(shù)據(jù)傳輸又分為接收和發(fā)送兩部分,假設(shè)相距為d的兩節(jié)點(diǎn)間有l(wèi)bit的數(shù)據(jù)需要傳輸,數(shù)據(jù)傳輸能耗計(jì)算公式為
(1)
其中,d0為距離閾值常量,當(dāng)d (2) 節(jié)點(diǎn)接收數(shù)據(jù)能耗只考慮與接收數(shù)據(jù)包的大小關(guān)系,其接收能量計(jì)算公式為 ERx(l)=lEelec (3) 考慮到簇間數(shù)據(jù)的相似性低,簇內(nèi)數(shù)據(jù)相關(guān)性大且具有冗余性,因此在簇首接收完簇內(nèi)數(shù)據(jù)后進(jìn)行必要的數(shù)據(jù)融合,且假設(shè)融合后的數(shù)據(jù)量長(zhǎng)度不變,融合1 bit數(shù)據(jù)能耗為Eda。 ANRB路由算法按照輪的思想運(yùn)行工作,包括聚類(lèi)分簇、雙簇首競(jìng)選、簇間路由構(gòu)建以及數(shù)據(jù)傳輸4個(gè)階段。網(wǎng)絡(luò)運(yùn)行初始化時(shí),各節(jié)點(diǎn)將自身的位置和能量信息向基站匯報(bào),基站將接收到的信息匯總后采用改進(jìn)的K均值算法進(jìn)行聚類(lèi)劃分并將分簇結(jié)果和聚類(lèi)中心廣播出去,各簇首廣播通知入簇消息,各節(jié)點(diǎn)根據(jù)收到廣播信號(hào)的強(qiáng)弱入簇。從第二輪起,每一輪使用基尼系數(shù)對(duì)節(jié)點(diǎn)能耗均衡性預(yù)測(cè),選取最有利簇內(nèi)能耗均衡的節(jié)點(diǎn)擔(dān)任主簇首,當(dāng)本輪和上一輪的主簇首(臨時(shí)簇首)相同時(shí),無(wú)需進(jìn)行廣播,否則交換兩個(gè)簇首的成員節(jié)點(diǎn)信息,廣播告知其余節(jié)點(diǎn)。各節(jié)點(diǎn)競(jìng)選副簇首,主簇首依據(jù)簇內(nèi)節(jié)點(diǎn)數(shù)目建立TDMA時(shí)隙表并通知簇內(nèi)各節(jié)點(diǎn)。之后,進(jìn)入簇間路由構(gòu)建階段,各個(gè)副簇首根據(jù)自身到基站的距離,進(jìn)行單跳或者多跳的路徑構(gòu)建并形成自己的路由表,中繼節(jié)點(diǎn)按照事先規(guī)定的原則選擇。最后各簇按照規(guī)劃的簇間路由進(jìn)行數(shù)據(jù)傳輸,簇內(nèi)各節(jié)點(diǎn)在對(duì)應(yīng)的時(shí)隙表向主簇首發(fā)送數(shù)據(jù),空閑時(shí)隙自動(dòng)進(jìn)入休眠狀態(tài),簇間數(shù)據(jù)傳輸采用載波監(jiān)聽(tīng)多路訪問(wèn),系統(tǒng)數(shù)據(jù)傳輸模型如圖1所示。為了及時(shí)更新各節(jié)點(diǎn)的自身信息,在每一輪的最后各簇節(jié)點(diǎn)將剩余能量等信息以控制信息的形式告知主簇首,主簇首經(jīng)過(guò)傳輸向基站進(jìn)行匯總更新。 圖1 系統(tǒng)傳輸模型 2.2.1 非均勻分簇 文獻(xiàn)[12]中的AGNES協(xié)議以層次算法分簇,當(dāng)數(shù)據(jù)量大時(shí)該算法運(yùn)行復(fù)雜,同時(shí)該協(xié)議未考慮成簇規(guī)模,考慮到遠(yuǎn)離基站的節(jié)點(diǎn)需要尋找臨近簇群轉(zhuǎn)發(fā)數(shù)據(jù),距離基站近的簇群應(yīng)盡量減少簇內(nèi)通信能耗,采用相對(duì)較小的規(guī)模來(lái)預(yù)留更多的能量作為其它簇群的數(shù)據(jù)轉(zhuǎn)發(fā)能耗,同時(shí)遠(yuǎn)離基站的節(jié)點(diǎn)應(yīng)減少分簇?cái)?shù)目,以增大簇群規(guī)模減少向基站數(shù)據(jù)傳輸?shù)拇螖?shù)。本文引入節(jié)點(diǎn)成簇競(jìng)爭(zhēng)半徑[15]以及鄰居節(jié)點(diǎn)數(shù),并通過(guò)非均勻分區(qū)的方式,調(diào)整簇群規(guī)模的大小,實(shí)現(xiàn)距離基站的簇群規(guī)模較小,遠(yuǎn)離基站的簇群規(guī)模較大,具體分簇過(guò)程如下: 步驟1 初始化:在監(jiān)測(cè)區(qū)域(L×L)內(nèi),L=100,基站設(shè)置在(50,150),成簇競(jìng)爭(zhēng)半徑值R0=30, 各節(jié)點(diǎn)的競(jìng)爭(zhēng)半徑計(jì)算如式(4),Tr=10表示鄰居節(jié)點(diǎn)半徑,分簇聚類(lèi)個(gè)數(shù)k=8。 以縱坐標(biāo)為基準(zhǔn),將監(jiān)測(cè)面積分成3個(gè)區(qū)域(節(jié)點(diǎn)縱坐標(biāo)大于80,節(jié)點(diǎn)縱坐標(biāo)小于40,節(jié)點(diǎn)縱坐標(biāo)位于40和80之間),針對(duì)不同區(qū)域內(nèi)的節(jié)點(diǎn),其鄰居節(jié)點(diǎn)半徑有所不同,統(tǒng)計(jì)各節(jié)點(diǎn)的鄰居節(jié)點(diǎn)數(shù),具體分區(qū)以及鄰居半徑計(jì)算如式(5) (4) 其中,w∈(0,1) 表示距離權(quán)重因子,dmax,dmin表示各傳感器節(jié)點(diǎn)到基站距離的最大和最小值。di是節(jié)點(diǎn)i到基站的距離,Ri表示節(jié)點(diǎn)i的成簇競(jìng)爭(zhēng)半徑,由式(4)可知其值會(huì)隨距離基站的大小而變化 (5) yi表示節(jié)點(diǎn)i的縱坐標(biāo),Tr1,Tr2,Tr3表示3種不同區(qū)域內(nèi)節(jié)點(diǎn)的鄰居半徑取值。結(jié)合式(4)和式(5)可知距離基站近的簇群鄰居半徑大,其鄰居節(jié)點(diǎn)數(shù)多,靠近基站的節(jié)點(diǎn)在簇群中心初始化時(shí)被選中的概率增大,即在基站附近會(huì)有更多的簇群。 步驟2 優(yōu)化初始中心:假設(shè)傳感器網(wǎng)絡(luò)中有N個(gè)節(jié)點(diǎn),節(jié)點(diǎn)集合s={s1,s2,…,sN}, 每個(gè)節(jié)點(diǎn)都是二維坐標(biāo)點(diǎn)即si=(xi,yi), 與傳統(tǒng)的K均值算法隨機(jī)產(chǎn)生k個(gè)初始中心不同,本文只隨機(jī)產(chǎn)生一個(gè)初始中心,初始中心需要同時(shí)滿足兩個(gè)條件:所選節(jié)點(diǎn)的鄰居節(jié)點(diǎn)數(shù)大于平均每個(gè)節(jié)點(diǎn)的鄰居數(shù),所選節(jié)點(diǎn)與所在區(qū)域內(nèi)已有的初始中心節(jié)點(diǎn)i的距離要大于2Ri。節(jié)點(diǎn)的選擇如下:每個(gè)非初始中心節(jié)點(diǎn)尋找與已知初始中心最短距離的平方,記為D2(i), 由式(6)計(jì)算所有節(jié)點(diǎn)最短距離的和記為sum以及各節(jié)點(diǎn)當(dāng)選為初始中心的概率值,同時(shí)獲取各節(jié)點(diǎn)的累加概率。依據(jù)輪盤(pán)法則和初始中心選擇條件篩選合適的初始中心,這樣不僅考慮節(jié)點(diǎn)的鄰居節(jié)點(diǎn)數(shù),也參照與現(xiàn)有初始中心的距離,既可以避免初始中心的邊緣化又可以使選出的中心彼此分開(kāi),使得所選簇群在分布上具有均勻性,按照此方法依次將k個(gè)初始聚類(lèi)中心選出記為c={z1,z2,…,zk} (6) (7) 在所有聚類(lèi)中心更新完畢后,每個(gè)簇群計(jì)算各自的數(shù)據(jù)點(diǎn)與聚類(lèi)中心距離的平方和,Jt是聚類(lèi)目標(biāo)函數(shù),其代表所有簇群內(nèi)距離平方的總和,目標(biāo)函數(shù)計(jì)算公式為 (8) 步驟4 迭代計(jì)算:重復(fù)計(jì)算步驟3中式(7)和式(8),直到前后兩次聚類(lèi)目標(biāo)函數(shù)差值滿足 |Jt-Jt+1|≤ε或者迭代次數(shù)滿足t=T時(shí)完成聚類(lèi)。 步驟5 輸出聚類(lèi)結(jié)果:各聚類(lèi)中心依據(jù)自身競(jìng)爭(zhēng)半徑選擇本簇成員節(jié)點(diǎn),不屬于任何簇群的節(jié)點(diǎn),按照就近原則加入相應(yīng)的簇群。各簇群求取距離的平均值,以平均值作為本簇群的中心點(diǎn),距離中心點(diǎn)最近的節(jié)點(diǎn)選擇為本簇群的簇群中心。 2.2.2 雙簇首競(jìng)選 在簇首選擇方面,選擇合理的簇首有利于減少網(wǎng)絡(luò)的能耗,從而增加網(wǎng)絡(luò)的穩(wěn)定性。本文算法在能耗均衡方面和網(wǎng)絡(luò)的生命周期上進(jìn)一步改進(jìn),將經(jīng)濟(jì)學(xué)中衡量收入差距的基尼系數(shù)作為節(jié)點(diǎn)能耗均衡性優(yōu)劣的標(biāo)準(zhǔn),在此將節(jié)點(diǎn)的剩余能量代替?zhèn)€人收入,得到均衡節(jié)點(diǎn)能量差距大小的計(jì)算式(10) (9) (10) fitbv(i)=1-Gv(i) (11) 其中,nv表示簇群v內(nèi)包含的節(jié)點(diǎn)個(gè)數(shù),u表示該簇群內(nèi)所有存活節(jié)點(diǎn)能量的平均值,ei,ej代表標(biāo)號(hào)不同的節(jié)點(diǎn)當(dāng)前剩余能量,Gv(i)表示節(jié)點(diǎn)i當(dāng)選本簇主簇首時(shí)各節(jié)點(diǎn)剩余能量對(duì)應(yīng)的基尼系數(shù),且Gv(i)∈(0,1)。 將式(11)作為衡量簇內(nèi)節(jié)點(diǎn)能量均衡性的指標(biāo),該值越大表示簇內(nèi)節(jié)點(diǎn)能耗越均衡,反之簇內(nèi)節(jié)點(diǎn)能耗均衡性差。 為了簡(jiǎn)化討論和分析能耗預(yù)測(cè)的過(guò)程,假設(shè)簇群v中只有3個(gè)節(jié)點(diǎn),各節(jié)點(diǎn)的位置關(guān)系以及初始能量如模型圖2所示。暫且僅考慮數(shù)據(jù)傳輸能耗,定義每個(gè)節(jié)點(diǎn)接收數(shù)據(jù)的能耗為1個(gè)單位,esd(1,2)=3,esd(1,bs)=7代表節(jié)點(diǎn)1分別到節(jié)點(diǎn)2和基站的傳輸能耗值,ei代表節(jié)點(diǎn)運(yùn)行到當(dāng)前輪的剩余能量,實(shí)際ANUR算法在傳輸能耗和接收數(shù)據(jù)能耗計(jì)算時(shí)通過(guò)式(1)和式(3)進(jìn)行,在圖2中分別計(jì)算候選節(jié)點(diǎn)擔(dān)任主簇首的剩余能量,代入式(10)、式(11),求取基尼系數(shù)最小的節(jié)點(diǎn)與臨時(shí)主簇首進(jìn)行對(duì)比,如果臨時(shí)簇首的基尼系數(shù)就是最小值,則臨時(shí)簇首當(dāng)選為最終主簇首,否則臨時(shí)簇首當(dāng)選為普通節(jié)點(diǎn)。當(dāng)節(jié)點(diǎn)1當(dāng)選主簇首時(shí)u1=20.67, Δ1=2.67,fitbv(1)=0.935; 當(dāng)節(jié)點(diǎn)2當(dāng)選為主簇首時(shí)u2=21.33, Δ2=0.89,fitbv(2)=0.979; 當(dāng)節(jié)點(diǎn)3當(dāng)選主簇首時(shí)u3=21.33, Δ3=1.11,fitbv(3)=0.974, 各節(jié)點(diǎn)當(dāng)選為主簇首的剩余能量分布如圖3所示,計(jì)算并分析3個(gè)節(jié)點(diǎn)當(dāng)選主簇首后對(duì)應(yīng)的能耗均衡函數(shù)值fitbv, 節(jié)點(diǎn)2的能耗均衡函數(shù)值最大,同時(shí)從圖3剩余能量值的柱形圖可以看出,以節(jié)點(diǎn)2為主簇首得到的簇內(nèi)節(jié)點(diǎn)剩余能量更均衡,從簇內(nèi)節(jié)點(diǎn)的總能耗方面分析,節(jié)點(diǎn)1,2,3分別當(dāng)選主簇首簇內(nèi)節(jié)點(diǎn)的總能耗為16,14,14個(gè)單位值,選擇2,3節(jié)點(diǎn)當(dāng)選總能耗相同,但是節(jié)點(diǎn)2更有利于能耗均衡。由此可知能耗均衡函數(shù)可以反映簇內(nèi)節(jié)點(diǎn)的均衡性,每一輪各簇在上一輪簇首的基礎(chǔ)上按著上述方法對(duì)簇內(nèi)節(jié)點(diǎn)進(jìn)行能耗預(yù)測(cè),選出均衡性更高的節(jié)點(diǎn)擔(dān)任簇首。 圖2 節(jié)點(diǎn)間的能量消耗 圖3 節(jié)點(diǎn)當(dāng)選簇首能耗分析(已添加橫縱坐標(biāo)及單位) 考慮到單簇首工作任務(wù)不僅包含數(shù)據(jù)的接收、融合,還包括發(fā)送、中繼、成簇廣播等,每一輪能量消耗較多,不利于網(wǎng)絡(luò)能耗的均衡。在主簇首選擇完成后,通過(guò)引入副簇首分擔(dān)主簇首的發(fā)送和中繼任務(wù),減少主簇首的通信能耗。根據(jù)副簇首的功能,將綜合考慮其與基站和主簇首的距離以及剩余能量進(jìn)行選舉,定義選舉副簇首的公式如下 (12) γ=g/e(1-g),g=ei/e0 (13) 其中,di為節(jié)點(diǎn)到基站的距離,dmax,dmin分別表示簇內(nèi)節(jié)點(diǎn)與基站相距距離的最大和最小值,節(jié)點(diǎn)和主簇首間的距離用ditoc表示,γ∈[0,1] 是關(guān)于能量比值g的函數(shù),其值動(dòng)態(tài)可變,節(jié)點(diǎn)的初始能量用e0表示,中繼節(jié)點(diǎn)在轉(zhuǎn)發(fā)數(shù)據(jù)時(shí)能量消耗大,因此從能量大于平均值的節(jié)點(diǎn)中選擇副簇首。由式(12)可知,距離基站近,剩余能量高且相距主簇首近的節(jié)點(diǎn)f(i) 值較大,相比之下容易被選為副簇首。網(wǎng)絡(luò)中節(jié)點(diǎn)的剩余能量會(huì)隨運(yùn)行時(shí)間不斷減少,γ的值將逐漸變小,副簇首選擇將加大能量因子在選舉中的影響作用。 2.2.3 簇間路由的構(gòu)建 (14) 在滿足(14)條件下,將綜合分析節(jié)點(diǎn)能量,傳輸距離,節(jié)點(diǎn)轉(zhuǎn)發(fā)次數(shù)以及所在簇群節(jié)點(diǎn)數(shù)量等因素選擇中繼節(jié)點(diǎn)。因此,定義候選中繼節(jié)點(diǎn)j的權(quán)重 (15) 其中,dij,djm,dim分別是節(jié)點(diǎn)i到中繼節(jié)點(diǎn)j, 中繼節(jié)點(diǎn)j到目的節(jié)點(diǎn)m, 節(jié)點(diǎn)i到目的節(jié)點(diǎn)m的距離。k(j),kav分別表示中繼節(jié)點(diǎn)j的簇群成員數(shù)和平均每一簇群所包含的節(jié)點(diǎn)數(shù),t(j) 為中繼節(jié)點(diǎn)j運(yùn)行到當(dāng)前輪時(shí)累計(jì)轉(zhuǎn)發(fā)i節(jié)點(diǎn)所在簇群數(shù)據(jù)的次數(shù),tall是i節(jié)點(diǎn)的所有侯選節(jié)點(diǎn)總計(jì)轉(zhuǎn)發(fā)來(lái)自i簇群數(shù)據(jù)的次數(shù),其初始值為1,其值由每一輪統(tǒng)計(jì)累加得到,qi為加權(quán)因子,其和為1,根據(jù)網(wǎng)絡(luò)環(huán)境將其值分別設(shè)置為q1=1/3,q2=1/3,q3=1/6,q4=1/6, 經(jīng)分析可知,剩余能量充足,中繼節(jié)點(diǎn)所在簇群成員節(jié)點(diǎn)數(shù)越多,承擔(dān)轉(zhuǎn)發(fā)次數(shù)少的副簇首越容易被選為i的中繼節(jié)點(diǎn),每一次中繼都是按照最小權(quán)值原則選擇,為了及時(shí)更新路由表信息,在每一輪數(shù)據(jù)傳輸?shù)淖詈?,各簇將剩余能量、中繼次數(shù)等信息傳輸給基站,由基站以控制信息的形式反饋給各簇中的節(jié)點(diǎn)。 用Matlab2014a作為實(shí)驗(yàn)仿真平臺(tái),將ANRB算法、LEACH以及EBRAA算法3種算法分別運(yùn)行2200輪,模擬在監(jiān)測(cè)區(qū)域?yàn)?00×100 m2的場(chǎng)景下,隨機(jī)生成200個(gè)數(shù)據(jù)點(diǎn)作為傳感器節(jié)點(diǎn),實(shí)驗(yàn)仿真中用到的其它參數(shù)設(shè)置如下:節(jié)點(diǎn)收發(fā)數(shù)據(jù)能耗Eelec=50 nJ/bit, 節(jié)點(diǎn)融合能耗Eda=5 nJ/bit, 自由空間模型放大系數(shù)εfs=10 pJ/bit/m2, 多徑衰落模型放大系數(shù)εamp=0.0013 pJ/bit/m4, 節(jié)點(diǎn)數(shù)據(jù)包長(zhǎng)度l=4000 bit, 控制包長(zhǎng)度l=200 bit,w=0.8, 節(jié)點(diǎn)的初始能量e0=0.5 J, 距離閾值d0=87.7 m。 圖4是本文算法的仿真成簇圖,簇中心為主簇首節(jié)點(diǎn),每一簇的黑色方形為副簇首節(jié)點(diǎn),其余黑色圓圈代表普通傳感器節(jié)點(diǎn),從成簇可以看出,靠近基站的簇群成簇規(guī)模小,反之簇群規(guī)模大,相比文獻(xiàn)[12]中的EBRAA算法在簇群實(shí)現(xiàn)均勻分布的前提下,各簇群規(guī)模得到了調(diào)整。 圖4 本文算法成簇 3.2.1 存活節(jié)點(diǎn)數(shù) 存活節(jié)點(diǎn)數(shù)指標(biāo)是描述網(wǎng)絡(luò)系統(tǒng)中節(jié)點(diǎn)數(shù)目隨著網(wǎng)絡(luò)運(yùn)行時(shí)間變化的情況,各算法網(wǎng)絡(luò)初始設(shè)置均相同,網(wǎng)絡(luò)運(yùn)行時(shí)間變化,系統(tǒng)中存活節(jié)點(diǎn)數(shù)越多則表示網(wǎng)絡(luò)的完整性好即系統(tǒng)越穩(wěn)定。3種不同算法的存活節(jié)點(diǎn)數(shù)和運(yùn)行輪數(shù)仿真對(duì)比分析如圖5所示,對(duì)各算法第一節(jié)點(diǎn),第100節(jié)點(diǎn)以及第180個(gè)節(jié)點(diǎn)的死亡輪數(shù)進(jìn)行統(tǒng)計(jì)得到圖6所示的柱狀圖。我們定義各算法的第一死亡節(jié)點(diǎn)所對(duì)應(yīng)的輪數(shù)作為網(wǎng)絡(luò)的生命周期。從圖5、圖6綜合分析可以得出ANRB協(xié)議的生命周期為1162輪,相比LEACH協(xié)議的生命周期明顯延長(zhǎng)649輪,與EBRAA算法相比也推遲470輪;分析一半數(shù)量的節(jié)點(diǎn)死亡情況,ANRB算法是1796輪,約為L(zhǎng)EACH協(xié)議的2倍,是EBRAA算法的1.8倍;從80%的節(jié)點(diǎn)死亡分析,本文算法相當(dāng)于另外兩種算法的1.8倍。在運(yùn)行結(jié)果的基礎(chǔ)上表明本文算法能較好延長(zhǎng)生命周期,均衡網(wǎng)絡(luò)能耗,與EBRAA算法對(duì)比,本文算法優(yōu)勢(shì)是引入了能耗均衡評(píng)估函數(shù),在每輪簇首競(jìng)選時(shí)減少了簇內(nèi)通信能耗而且各節(jié)點(diǎn)能耗得到均衡,其次雙簇首工作機(jī)制,也能減少單簇首通信負(fù)擔(dān),優(yōu)化中繼節(jié)點(diǎn)的選擇使得簇間傳輸能耗得到均衡,這些改進(jìn)均可以延長(zhǎng)網(wǎng)絡(luò)生命周期。 圖5 存活節(jié)點(diǎn)數(shù)統(tǒng)計(jì) 圖6 第1,100,180節(jié)點(diǎn)死亡統(tǒng)計(jì) (已添加橫縱坐標(biāo)及單位) 3.2.2 網(wǎng)絡(luò)能耗 網(wǎng)絡(luò)的剩余能量是衡量系統(tǒng)穩(wěn)定的一個(gè)重要指標(biāo),在同等條件下傳感網(wǎng)中剩余能量的多少將直接決定著網(wǎng)絡(luò)生存期的長(zhǎng)短。圖7仿真了3種算法網(wǎng)絡(luò)剩余能量和運(yùn)行輪數(shù)的關(guān)系對(duì)比圖,分析可知ANRB協(xié)議的剩余能量總是比其余兩種算法的剩余能量高,其主要原因是ANRB算法簇內(nèi)以最大能耗均衡值為依據(jù)選舉主簇首,用動(dòng)態(tài)權(quán)值調(diào)整副簇首的選擇,同時(shí)遠(yuǎn)離基站的簇群規(guī)模相比EBRAA算法要大,可以減少遠(yuǎn)距離傳輸?shù)拇螖?shù),從而節(jié)省能耗。LEACH協(xié)議的頻繁分簇和隨機(jī)分簇導(dǎo)致能耗消耗較多,與之對(duì)比本文算法在能耗上較少。 圖7 網(wǎng)絡(luò)剩余能量統(tǒng)計(jì) 3.2.3 吞吐量 吞吐量表現(xiàn)在監(jiān)測(cè)者通過(guò)網(wǎng)絡(luò)可接收監(jiān)測(cè)區(qū)域信息量的多少,本文定義從網(wǎng)絡(luò)開(kāi)始運(yùn)行到全部節(jié)點(diǎn)死亡基站在整個(gè)過(guò)程接收的數(shù)據(jù)包個(gè)數(shù)作為吞吐量。為了體現(xiàn)算法的穩(wěn)定性,將各算法分別運(yùn)行10次,并分別取平均值作為算法吞吐量的統(tǒng)計(jì)值,如圖8所示,ANRB算法在吞吐量統(tǒng)計(jì)值上明顯高于其它兩種算法,分別是LEACH協(xié)議的1.66倍,EBRAA算法的1.42倍。這主要是因?yàn)楸疚乃惴軌蜉^好均衡簇內(nèi)和簇間的能耗,網(wǎng)絡(luò)的生存時(shí)間上要比其余算法長(zhǎng),在相同的初始能量環(huán)境下,基站將會(huì)接收更多的數(shù)據(jù)包數(shù)。因此,ANRB算法具有很好的穩(wěn)定性。 圖8 網(wǎng)絡(luò)吞吐量統(tǒng)計(jì)(已添加橫縱坐標(biāo)及單位) 本文算法為了均衡節(jié)點(diǎn)能耗,從成簇規(guī)模、簇首競(jìng)選、引入簇內(nèi)能耗均衡函數(shù),以及優(yōu)化中繼節(jié)點(diǎn)選擇等幾個(gè)方面進(jìn)行能耗均衡的提升,副簇首節(jié)點(diǎn)擔(dān)負(fù)數(shù)據(jù)的發(fā)送和中繼,主簇首的通信負(fù)載得到減輕,簇首節(jié)點(diǎn)的能量得到均衡,并通過(guò)能耗均衡函數(shù)預(yù)測(cè)簇內(nèi)能耗均衡性,簇間路由優(yōu)化中繼節(jié)點(diǎn)的選擇,進(jìn)一步考慮中繼點(diǎn)的轉(zhuǎn)發(fā)次數(shù)以及其所在簇群的節(jié)點(diǎn)數(shù)量,有效避免中繼節(jié)點(diǎn)在每一輪運(yùn)行中由于承擔(dān)過(guò)多的轉(zhuǎn)發(fā)次數(shù)而消耗較大的能量,從仿真結(jié)果分析可知ANRB算法的生命周期比LEACH和EBRAA協(xié)議要長(zhǎng),相比而言分別延長(zhǎng)649輪和470輪,在吞吐量方面是LEACH協(xié)議的1.66倍,EBRAA協(xié)議的1.42倍,表明本文算法在能耗均衡上得到進(jìn)一步提升。下一步將在最優(yōu)跳數(shù)方向進(jìn)行研究,在滿足能耗均衡的基礎(chǔ)上以最小跳數(shù)來(lái)減少數(shù)據(jù)傳輸延時(shí)。2 ANRB算法
2.1 算法思想
2.2 算法實(shí)現(xiàn)
3 仿真與結(jié)果分析
3.1 仿真環(huán)境設(shè)置
3.2 仿真結(jié)果分析
4 結(jié)束語(yǔ)