李洪兵,劉子路,陳 強(qiáng),2,劉 莎,劉小龍,梁裕巧,楊 震,陳立萬
(1.三峽庫區(qū)地質(zhì)環(huán)境監(jiān)測與災(zāi)害預(yù)警協(xié)同創(chuàng)新分中心,重慶 404120;2.智能信息處理與控制重慶高校市級重點實驗室,重慶 404120; 3.物聯(lián)網(wǎng)與智能控制技術(shù)重慶市工程研究中心,重慶 404120)
隨著泛在信息社會的到來,無線傳感器網(wǎng)絡(luò)[1](Wireless Sensor Network,WSN)已成為目前研究的熱點之一,其通常由大量的低能耗低成本的微型傳感器節(jié)點構(gòu)成,通過這些傳感器組成無線網(wǎng)絡(luò)實現(xiàn)對各種環(huán)境的監(jiān)控。作為泛在信息社會的基礎(chǔ),無線傳感器網(wǎng)絡(luò)被應(yīng)用于軍事領(lǐng)域、醫(yī)療領(lǐng)域、安防領(lǐng)域、智能家居[2]領(lǐng)域等。然而,其有限的能量資源和惡劣的環(huán)境為無線傳感器網(wǎng)絡(luò)的應(yīng)用帶來了巨大的挑戰(zhàn)[3]。其中,網(wǎng)絡(luò)的生存周期是無線傳感器網(wǎng)絡(luò)的主要問題,嚴(yán)重影響著網(wǎng)絡(luò)的服務(wù)質(zhì)量,因此,高效的路由協(xié)議[4]成為目前重要的研究方向。
無線傳感器網(wǎng)絡(luò)的路由協(xié)議根據(jù)拓?fù)浣Y(jié)構(gòu)可以分為平面路由協(xié)議[5]和層次路由協(xié)議[6]。平面路由協(xié)議中節(jié)點間沒有等級劃分且作用相同,然而網(wǎng)絡(luò)中節(jié)點間距離比較小使得同一范圍內(nèi)節(jié)點的采集數(shù)據(jù)出現(xiàn)了大量重疊,在信息傳輸時浪費了大量能量[7],同時其網(wǎng)絡(luò)拓補(bǔ)靈活性也很差,隨著無線傳感器網(wǎng)絡(luò)規(guī)模的擴(kuò)大,這些問題更加嚴(yán)重,導(dǎo)致平面路由協(xié)議不再適合大規(guī)模網(wǎng)絡(luò),層次路由協(xié)議[8]開始占據(jù)主導(dǎo)地位。層次路由協(xié)議是將網(wǎng)絡(luò)分為不同層次的簇,由簇首管理簇群,同時可以采用輪循的方式優(yōu)化簇的形成。其中LEACH[8-11](Low Energy Adaptive Clustering Hierarchy)協(xié)議是第一個層次性路由協(xié)議,通過根據(jù)概率選取簇首,并依據(jù)簇首建立簇群的方式將整個網(wǎng)絡(luò)分成了多個子網(wǎng)絡(luò)。
本文提出一種基于分級鄰近節(jié)點的分簇路由(Clustering Routing Based on Hierarchical Neighbor Nodes,CRBHNN)算法。該算法考慮鄰近節(jié)點狀態(tài)對初步選取的簇首進(jìn)行再優(yōu)化,節(jié)點間通信采用中繼的方式,選取中繼節(jié)點對數(shù)據(jù)傳輸路徑進(jìn)行優(yōu)化,以避免遠(yuǎn)處孤立節(jié)點能耗過大的問題,同時通過中繼節(jié)點的選取均衡網(wǎng)絡(luò)能耗。
在所有的分簇路由協(xié)議中,LEACH協(xié)議是第一個層次型路由協(xié)議,其輪循成簇的思想被諸多層次型路由協(xié)議所引用。
PROPOSED[12]協(xié)議是一種基于粒子群算法聚類的路由協(xié)議,該協(xié)議通過粒子群算法先對網(wǎng)絡(luò)節(jié)點進(jìn)行聚類分簇,再對已形成的簇群進(jìn)行簇首選取,仿真結(jié)果表明該協(xié)議提高了網(wǎng)絡(luò)的能量利用率,延長了網(wǎng)絡(luò)壽命。然而先成簇后選取簇首的操作使得簇首成為其鄰近節(jié)點的最優(yōu)簇首,但未必是其他簇群成員節(jié)點的最優(yōu)簇首,本文通過先選取簇首再成簇的方式,優(yōu)化簇群的形成來提高簇首的優(yōu)越性。NR-LEACH[13]協(xié)議是一種基于節(jié)點排序的改進(jìn)LEACH協(xié)議,該協(xié)議通過節(jié)點間路徑開銷和節(jié)點間鏈路數(shù)來確定簇首,克服了簇首依概率選取的缺點,仿真結(jié)果表明該協(xié)議延長了網(wǎng)絡(luò)壽命。然而,該協(xié)議過于倚重特殊節(jié)點會導(dǎo)致網(wǎng)絡(luò)能耗均衡上的劣勢,本文通過對簇首進(jìn)行再選取的方式來避免簇首選取的完全隨機(jī)性,在提高網(wǎng)絡(luò)壽命的同時有效地均衡了網(wǎng)絡(luò)能耗。SEPFL[14]協(xié)議是一種基于模糊邏輯控制的分級路由協(xié)議,通過對節(jié)點到基站的位置、節(jié)點密度以及節(jié)點能量這3個變量進(jìn)行模糊邏輯控制,提高了網(wǎng)絡(luò)壽命和吞吐量,然而因為該算法使用了模糊控制導(dǎo)致感知節(jié)點計算量增大,本文通過對這些變量進(jìn)行分級排序來進(jìn)行控制,有效地減低了感知節(jié)點的計算量。
OCRP[15]協(xié)議是一種基于最優(yōu)分簇的能量異構(gòu)路由協(xié)議,該協(xié)議通過最優(yōu)簇首數(shù)K將待測區(qū)域劃分為K個固定分區(qū),改進(jìn)簇頭選舉機(jī)制,減少了網(wǎng)絡(luò)能耗,提高了網(wǎng)絡(luò)壽命,然而該算法的固定分區(qū)導(dǎo)致了整個網(wǎng)絡(luò)成簇的固定,一定程度上限制了網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的變化,本文通過簇首的輪循選取對簇群進(jìn)行調(diào)整,使簇群的形成更加多樣和靈活,有效地提高了網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的靈活性。ABC[16]協(xié)議是一種基于蜂群算法的能量優(yōu)化路由協(xié)議,該協(xié)議通過蜂群算法計算出傳感器網(wǎng)絡(luò)中能量最優(yōu)的簇首節(jié)點組合,同時簇首節(jié)點輪流選擇最近的簇內(nèi)節(jié)點構(gòu)建路由,仿真結(jié)果表明該協(xié)議具有能量消耗速度慢、能量均衡等優(yōu)點,有效地延長了無線傳感器網(wǎng)絡(luò)壽命,然而該算法需要整合整個網(wǎng)絡(luò)的信息并應(yīng)用蜂群算法計算,使得該網(wǎng)絡(luò)需要極大的計算能力,本文通過依據(jù)概率選取簇首,并使每個節(jié)點可以借助鄰近節(jié)點信息進(jìn)行分布式計算的方式,有效地降低了整個網(wǎng)絡(luò)的計算負(fù)載。
場景部署模型[17-18]是由一個基站和部署在一片區(qū)域內(nèi)的多個傳感器節(jié)點構(gòu)成,如圖1所示,傳感器感知節(jié)點從監(jiān)測區(qū)域內(nèi)收集數(shù)據(jù),然后將數(shù)據(jù)發(fā)送給基站。其中節(jié)點的位置是隨機(jī)固定的,并且每個傳感器節(jié)點都是相同的,所有的傳感器節(jié)點具有相同的初始能量,當(dāng)初始能量耗盡后傳感器節(jié)點死亡,基站的能量是無限的,傳感器節(jié)點可以依據(jù)傳輸距離調(diào)整傳輸功率。
圖1 部署模型
本文使用一種簡單的無線電模型[19]作為能耗模型,如圖2所示,在發(fā)射數(shù)據(jù)時,節(jié)點使用發(fā)射電路發(fā)射數(shù)據(jù),同時使用放大電路對信號進(jìn)行功放;在接收數(shù)據(jù)時,節(jié)點使用接收電路接收數(shù)據(jù)。
圖2 能耗模型
傳輸[20]d距離的k比特數(shù)據(jù)的能耗ETx(k)為:
(1)
門限距離d0為:
(2)
接收k比特數(shù)據(jù)的能耗ERx(k)為:
ERx(k)=kEelec
(3)
融合k比特數(shù)據(jù)的能耗Ef(k)為:
Ef(k)=kEda
(4)
因此,節(jié)點發(fā)射控制報文的能耗ETx_CM為:
(5)
節(jié)點接收控制報文的能耗ERx_CM為:
ERx_CM=CMEelec
(6)
簇首節(jié)點接收本簇內(nèi)n個簇成員節(jié)點(不經(jīng)過中繼,直接向簇首通信的成員節(jié)點)的數(shù)據(jù)并融合的能耗ERx_f_CH(k,n)為:
ERx_f_CH(k,n)=nkEelec+(n+1)kEda
(7)
簇首向上一級節(jié)點發(fā)射數(shù)據(jù)的能耗ETx_CH(k)為:
(8)
成員節(jié)點向上一級節(jié)點發(fā)射數(shù)據(jù)的能耗ETx_non_CH(k)為:
(9)
中繼節(jié)點接收n個下級成員節(jié)點的數(shù)據(jù)并融合的能耗ERx_f_RE(k,n)為:
ERx_f_RE(k,n)=nkEelec+(n+1)kEda
(10)
其中,Eelec表示運(yùn)行發(fā)射機(jī)和接收機(jī)(ETx和ERx)所消耗的能量,εfs和εmp分別為發(fā)射機(jī)放大器的自由空間模型和多徑衰減模型功率能耗。數(shù)據(jù)發(fā)送低于d0距離時使用自由空間模型,否則使用多徑模型,Eda為融合1 bit數(shù)據(jù)的能耗。
為了分析和驗證本文算法的優(yōu)越性、有效性和合理性,從簇首分布密度、網(wǎng)絡(luò)能量利用率、節(jié)點剩余能量等因素對算法進(jìn)行評價。
以簇首間距來映射,間距越大密度越小,n個簇首的簇首間距dCH(n)為:
(11)
第n輪后i節(jié)點剩余能量Ei_n為:
Ei_n=Ei_n-1-Ei_ues
(12)
其中,Ei_ues為節(jié)點i在本輪中消耗的能量。
以網(wǎng)絡(luò)剩余總能量映射,相同周期內(nèi)網(wǎng)絡(luò)剩余總能量越大,利用率越高,網(wǎng)絡(luò)剩余總能量Etotal為:
Etotal=∑Ei_n
(13)
本文仿真分析所用的模型參數(shù)如表1所示。
表1 模型參數(shù)
依據(jù)n、M、εfs和εmp可得簇首最優(yōu)個數(shù)kopt[21-22]為:
(14)
其中,dtoBS為節(jié)點到基站的距離。
由n和kopt得到簇首選簇概率p為:
(15)
3.1.1 LEACH分簇算法
經(jīng)典LEACH協(xié)議是通過閾值T(n)隨機(jī)選取網(wǎng)絡(luò)簇首,并通過已選取的簇首形成簇群,再通過簇首調(diào)度自身簇群成員節(jié)點,最終將數(shù)據(jù)傳輸?shù)交?這樣網(wǎng)絡(luò)工作一輪。LEACH協(xié)議通過這樣不斷輪循來均衡和節(jié)約網(wǎng)絡(luò)能耗,延長網(wǎng)絡(luò)壽命。
閾值T(n)為:
(16)
其中,p為簇首在網(wǎng)絡(luò)總節(jié)點中存在的數(shù)量百分比,r為當(dāng)前進(jìn)行的輪數(shù),G為上一個1/p輪中沒有成為過簇首的感知節(jié)點集合。
3.1.2 分簇優(yōu)化思路
通過最優(yōu)簇首個數(shù)kopt可以知道理想的簇群數(shù)量,假設(shè)感知區(qū)域是M×M,則理想中的最優(yōu)簇群面積SCH為:
SCH=M2/kopt
(17)
進(jìn)而得到理想中每個簇首節(jié)點所管理的簇群半徑R為:
(18)
本文算法中將距離某個簇首節(jié)點R0(設(shè)R0=3R/4)距離的普通節(jié)點視為一級簇群成員節(jié)點,如圖3所示。其中,A、B、C為3個簇首節(jié)點,理論上其最優(yōu)簇群范圍分別對應(yīng)圖3中的3個虛線線圈??梢钥吹?簇首A、B的一級簇群成員節(jié)點范圍(實線圈)出現(xiàn)了重疊區(qū)(AB區(qū),2個實線圈的重疊部分)。通過避免這種重疊區(qū)的出現(xiàn)來避免簇首選取過密造成的簇群不均勻,進(jìn)而提高簇首節(jié)點的工作效率。
圖3 簇首和理想簇群分布
3.1.3 分簇算法描述
算法1分簇算法
輸入n個感知節(jié)點隨機(jī)部署在M×M的感知區(qū)域上,基站位于感知區(qū)域的中心
輸出簇首分布位置和簇群成員
步驟1在每輪開始時,采取和LEACH協(xié)議相同的方法確定候選簇首,其中簇首概率為2p(避免候選簇首選取過少)。
步驟2候選簇首節(jié)點與鄰近的候選簇首節(jié)點通信,如果2個鄰近簇首節(jié)點距離小于3R/2,則表示不同簇內(nèi)的一級成員節(jié)點出現(xiàn)重合,將其中一個候選簇首節(jié)點定為一級簇首節(jié)點,另一個定為二級簇首節(jié)點,確定一級簇首的簇成員范圍和二級簇首的簇成員范圍,其中一級成員確定有更高的優(yōu)先級,即如果一個普通節(jié)點是一級簇首的成員同時也是一個二級簇首的成員,則視其為一級簇首的成員。
步驟3如果存在二級簇首的成員節(jié)點,則這些二級簇首的成員節(jié)點進(jìn)行第一步操作,即再次進(jìn)行候選簇首選取,新選取的候選簇首節(jié)點和已確定的一級候選簇首進(jìn)行鄰近簇首間通信,根據(jù)步驟2的規(guī)則對新的候選簇首節(jié)點進(jìn)行一級簇首節(jié)點和二級簇首節(jié)點的分類,同時確定相應(yīng)的成員節(jié)點范圍。重復(fù)步驟3直到不存在二級簇首的成員節(jié)點或無法選出新的候選簇首節(jié)點。
步驟4確定一級簇首為優(yōu)化后的最終簇首,進(jìn)行成簇操作。
步驟5輪循前4步操作,實現(xiàn)簇首和簇群的不斷更新。
3.1.4 分簇優(yōu)化仿真分析
為分析和驗證分簇優(yōu)化的合理性和有效性,下面從簇首的分布位置、簇首分布密度、網(wǎng)絡(luò)剩余總能量分析其合理性,從網(wǎng)絡(luò)壽命驗證其有效性。
圖4為CRBHNN算法30輪時的簇首分布示意圖,圖4(a)為依據(jù)CRBHNN算法的初次候選簇首分布(簇首概率為2p),圖4(b)為依據(jù)CRBHNN算法優(yōu)化完成后的簇首分布,圖5為LEACH算法在30輪時的簇首分布(簇首概率為p)。由圖4(b)與圖5的對比可知,LEACH算法因為簇首是完全隨機(jī)選擇的,所以造成有些簇首間相互距離過近,而CRBHNN算法將簇首的成員節(jié)點進(jìn)行了分級,對某些密集的簇首進(jìn)行再選舉,使得新算法得到的簇首分布更加均勻。圖6為簇首間距隨周期的變化,簇首間距映射簇首密度的變化。從圖6可以看出,實線大部分分布于虛線上方,表明CRBHNN算法生成的簇首密度明顯小于LEACH算法,驗證了圖4、圖5的分析結(jié)果,證實了CRBHNN算法生成的簇首分布更加均勻;同時圖6中周期的最后不再出現(xiàn)實線線條并不是CRBHNN算法沒有產(chǎn)生簇首,可能是只產(chǎn)生了一個簇首,這主要是因為大量節(jié)點死亡,存活節(jié)點過少,使得簇首出現(xiàn)的概率大幅下降。
圖4 CRBHNN算法在30輪時的簇首分布
圖5 LEACH算法在30輪時的簇首分布
圖6 簇首間距隨周期的變化
圖7為網(wǎng)絡(luò)剩余總能量隨周期的變化,網(wǎng)絡(luò)剩余總能量映射網(wǎng)絡(luò)能量利用率。由圖7可知,實線在初始時位于虛線的上方并保持較長的周期,表明CRBHNN算法在相同的周期內(nèi)消耗的能量更少,證實了CRBHNN算法的網(wǎng)絡(luò)能量利用率比LEACH算法更高,說明CRBHNN的成簇更加合理,簇內(nèi)成員通信的能耗更少;同時周期的最后實線與虛線出現(xiàn)相交,一部分實線處于虛線的下方,這是因為節(jié)點大量死亡后,節(jié)點成為簇首的概率大幅下降,使得一部分節(jié)點直接向基站通信,LEACH算法中這些節(jié)點集中在基站附近,RBHNN算法則分布比較均勻,表明了RBHNN算法選取的簇首更加合理,網(wǎng)絡(luò)能量更加均衡。
圖7 網(wǎng)絡(luò)剩余總能量隨周期的變化
圖8為節(jié)點生存周期。從圖8可以看出,實線在初始時位于虛線的上方并保持了很長的周期,由此可知,在CRBHNN算法中第一個節(jié)點(First Node,FND)死亡和半數(shù)節(jié)點 (Half of all Node,HND) 死亡的出現(xiàn)比在LEACH中更晚,這驗證了算法優(yōu)化的有效性,證明CRBHNN算法的簇首選取優(yōu)于LEACH算法;同時在周期的最后實線與虛線出現(xiàn)相交,實線出現(xiàn)在了虛線的下方,主要是因為節(jié)點存活過少,并且LEACH算法中存活節(jié)點大部分都分布在基站附近,進(jìn)一步證明了RBHNN算法選取的簇首更加均勻,基站附近的節(jié)點選為簇首的概率大于LEACH算法。該算法優(yōu)化的局限性是遠(yuǎn)處的節(jié)點向簇首或者基站通信時會造成能耗的不必要浪費。
圖8 分簇算法節(jié)點生存周期
3.2.1 LEACH路由優(yōu)化方法
在經(jīng)典的LEACH算法中,簇首節(jié)點與基站之間和成員節(jié)點與簇首之間是直接通信的,不存在中繼節(jié)點。
本文算法通過將鄰近節(jié)點進(jìn)行分級來確定節(jié)點的中繼節(jié)點。將距離某個節(jié)點小于d的節(jié)點視為該節(jié)點的鄰近節(jié)點,將節(jié)點剩余能量劃分為6個等級,大于E1(E1=0.8×E0,E0為節(jié)點初始能量)的為一級,小于E1大于E2(E2=0.6×E0)的為二級,小于E2大于E3(E3=0.4×E0)的為三級,小于E3大于E4(E4=0.2×E0)的為四級,小于E4大于E5(E5=0.1×E0)的為五級,小于E5的為六級。同時將節(jié)點i的鄰近節(jié)點中所有Ei_j(Ei_j為節(jié)點i向節(jié)點j通信的能耗)與Ej_BS(Ej_BS為節(jié)點j向基站通信的能耗)的和小于Ei_BS(Ei_BS為節(jié)點i向基站通信的能耗)的節(jié)點j視為節(jié)點i的前向節(jié)點,否則視為后向節(jié)點。
3.2.2 路由算法描述
算法2路由算法
輸入n個感知節(jié)點隨機(jī)部署在M×M的感知區(qū)域上,基站位于感知區(qū)域的中心
輸出每個節(jié)點的中繼節(jié)點
步驟1節(jié)點進(jìn)行鄰近節(jié)點廣播并接收鄰近節(jié)點(通過信號強(qiáng)度確定距離)的廣播信息。
步驟2根據(jù)鄰近節(jié)點信息確定前向節(jié)點和后向節(jié)點,同時對節(jié)點剩余能量進(jìn)行分級,建立包含前后向節(jié)點標(biāo)識、能量等級、節(jié)點間距離的鄰近節(jié)點信息表。
步驟3在鄰近節(jié)點中依據(jù)一定的規(guī)則確定自身的中繼節(jié)點或確定自身直接向基站通信。最小能級節(jié)點擁有一級優(yōu)先權(quán),前繼節(jié)點擁有二級優(yōu)先權(quán),自身擁有三級優(yōu)先權(quán),后繼節(jié)點擁有四級優(yōu)先權(quán),節(jié)點距離(中繼節(jié)點離自身的距離)為五級優(yōu)先權(quán),其中距離越短優(yōu)選級越高。以此規(guī)則確定中繼節(jié)點,若最終確定為自身則直接向基站通信,否則向中繼節(jié)點通信。
步驟4輪循前3步操作,實現(xiàn)中繼節(jié)點的不斷更新。
3.2.3 路由優(yōu)化仿真分析
為分析和驗證路由優(yōu)化的合理性和有效性,下文從路由路徑、網(wǎng)絡(luò)剩余能量分析其合理性,從網(wǎng)絡(luò)壽命驗證其有效性。
圖9和圖10分別為CRBHNN和LEACH算法的路由路徑。從圖9和圖10可以看出,CRBHNN算法中遠(yuǎn)處的節(jié)點都是通過多個中繼節(jié)點向基站進(jìn)行通信,而LEACH算法中簇群成員節(jié)點是經(jīng)過簇首向基站通信,簇首節(jié)點是直接向基站通信,因此LEACH算法中遠(yuǎn)處的節(jié)點能耗更大;同時CRBHNN算法中數(shù)據(jù)在眾多中繼節(jié)點處進(jìn)行數(shù)據(jù)融合,進(jìn)一步提高了能量利用效率。
圖9 CRBHNN算法路由路徑
圖10 LEACH算法路由路徑
圖11為網(wǎng)絡(luò)剩余總能量隨周期的變化。從圖11可以看出,實線在初始時位于虛線的上方并保持了較長的周期,由此可知,CRBHNN算法的能量利用率比LEACH算法更高,進(jìn)一步證實了圖9和圖10的分析結(jié)果,同時圖中實線與虛線發(fā)生相交后,虛線處在了實線上方,這是因為節(jié)點大量死亡后LEACH算法中留下的節(jié)點大部分位于基站附近,進(jìn)一步證實了RBHNN算法能量均衡性優(yōu)于LEACH算法。
圖11 路由算法中網(wǎng)絡(luò)剩余總能量隨周期的變化
圖12為第一個節(jié)點死亡時的節(jié)點剩余能量。從圖12可以看出,虛線大部分位于實線上方并且虛線起伏明顯大于實線,由此可知,CRBHNN算法的能量均衡性明顯優(yōu)于LEACH算法,這是由于CRBHNN算法在選取中繼節(jié)點時對節(jié)點剩余能量進(jìn)行了分級,使高能量節(jié)點有更大的概率為負(fù)載的中繼節(jié)點工作,通過增大高能量節(jié)點的負(fù)載、減少低能量節(jié)點的能耗來均衡網(wǎng)絡(luò)能耗,而LEACH算法是完全隨機(jī)選取的簇首,并未考慮能耗方面,進(jìn)一步證實了圖11的分析結(jié)果。
圖12 第一個節(jié)點死亡時的節(jié)點剩余能量
圖13為節(jié)點生存周期。從圖13可以看出,實線在初始時位于虛線的上方并保持了很長的周期,由此可知,CRBHNN算法的FND和HND比LEACH算法晚出現(xiàn)很多,這驗證了CRBHNN算法可以更有效地均衡節(jié)點能耗,提高節(jié)點的能量利用率,延長網(wǎng)絡(luò)壽命,證實了CRBHNN算法在路由方面優(yōu)于LEACH算法;同時在網(wǎng)絡(luò)后期實線與虛線出現(xiàn)相交并且實線處于虛線的下方,這是因為節(jié)點大量死亡后,LEACH算法中存活的節(jié)點大部分位于基站附近,使其死亡速度減緩,而CRBHNN算法存活的節(jié)點更加均勻,進(jìn)一步證實了RBHNN算法有更好的能量均衡性。該路由優(yōu)化的局限性是當(dāng)鄰近節(jié)點范圍定義過大時會造成一定程度的通信延遲。
圖13 路由算法節(jié)點生存周期
3.3.1 CRBHNN算法優(yōu)化方法
本文算法綜合考慮簇首優(yōu)化算法和路由優(yōu)化算法的優(yōu)缺點,通過整合這2種算法來達(dá)到最優(yōu)化。在簇首選取階段是通過改進(jìn)的分簇優(yōu)化方法對整個無線傳感器網(wǎng)絡(luò)中的節(jié)點進(jìn)行分簇,通過限定簇群范圍來限定鄰近節(jié)點范圍;在簇內(nèi)成員與簇首的通信階段是依據(jù)路由優(yōu)化算法對數(shù)據(jù)傳輸路徑進(jìn)行優(yōu)化,如圖14所示,將圖10中的虛線路徑優(yōu)化為圖14中的虛線路徑,使遠(yuǎn)處的成員節(jié)點通過中繼節(jié)點向簇首通信;在簇首與基站間通信階段同樣是依據(jù)路由優(yōu)化算法對數(shù)據(jù)傳輸路徑進(jìn)行優(yōu)化,如圖14所示,將圖10中的虛點線路徑優(yōu)化為圖14中的虛點線路徑,使遠(yuǎn)處的簇首通過中繼節(jié)點向基站通信,最終達(dá)到延長網(wǎng)絡(luò)壽命的目的。
圖14 CRBHNN算法的數(shù)據(jù)傳輸路徑
3.3.2 CRBHNN算法描述
算法3CRBHNN算法
輸入n個感知節(jié)點隨機(jī)部署在M×M的感知區(qū)域上,基站位于感知區(qū)域的中心
輸出簇首分布位置、簇群成員和每個節(jié)點的中繼節(jié)點
步驟1依據(jù)CRBHNN分簇算法選取簇首同時確定各自的簇群成員。
步驟2依據(jù)CRBHNN路由算法確定每個簇群中成員節(jié)點的中繼節(jié)點,簇群成員以此路徑向簇首傳輸數(shù)據(jù);依據(jù)CRBHNN路由算法確定每個簇首的中繼節(jié)點,簇首以此路徑向基站傳輸數(shù)據(jù)。
步驟3輪循步驟1、步驟2的操作,實現(xiàn)網(wǎng)絡(luò)拓?fù)涞牟粩喔隆?/p>
3.3.3 仿真結(jié)果與分析
為驗證本文CRBHNN算法的有效性、可行性和優(yōu)越性,從網(wǎng)絡(luò)剩余總能量、節(jié)點剩余能量和節(jié)點生存周期來對算法進(jìn)行評價,并與LEACH算法、LEACHC算法、DEEC算法和CECA算法進(jìn)行對比。
圖15為網(wǎng)絡(luò)剩余總能量隨周期的變化。從圖15可以看出,無標(biāo)記的實線在初始時位于其他線的上方并保持了很長的周期,在網(wǎng)絡(luò)能量利用率上CRBHNN算法明顯優(yōu)于其他算法,這是因為在數(shù)據(jù)傳輸階段,數(shù)據(jù)的傳輸經(jīng)過了大量的中繼節(jié)點,只需相對短的路徑就可以完成傳輸,同時數(shù)據(jù)也在中繼節(jié)點進(jìn)行了融合,進(jìn)一步減少了數(shù)據(jù)傳輸?shù)哪芎?明顯優(yōu)于其他算法的直傳方式,同時在后期無標(biāo)記的實線與其他線相交后處于其他線下方,也是因為其他算法的存活節(jié)點大部分位于基站附近,進(jìn)一步證明了CRBHNN算法的能量均衡性優(yōu)于其他算法。
圖15 不同算法網(wǎng)絡(luò)剩余總能量隨周期的變化
圖16為首節(jié)點死亡時的節(jié)點剩余能量。從圖16可以看出,無標(biāo)記的實線大部分位于其他線的下方并且無標(biāo)記的實線的起伏明顯小于其他線,由此可知,在能量負(fù)載均衡上CRBHNN算法明顯優(yōu)于其他算法,這是因為對節(jié)點剩余能量進(jìn)行了分級,使得剩余能量多的節(jié)點更易于成為中繼節(jié)點,減少剩余能量少的節(jié)點的通信負(fù)載,對節(jié)點能量進(jìn)行了一定程度的均衡,而其他算法只在簇首選取時考慮了能量這一因素,并未進(jìn)行全面考慮。
圖16 首節(jié)點死亡時的節(jié)點剩余能量
圖17為節(jié)點生存周期。從圖17可以看出,無標(biāo)記的實線在初始時位于其他線的上方并保持了很長的周期,由此可知,CRBHNN算法的FND和HND比其他算法晚出現(xiàn)很多,證實了其生存周期明顯優(yōu)于其他算法,這也充分證明了CRBHNN算法的有效性和優(yōu)越性,這主要是因為CRBHNN算法在進(jìn)行隨機(jī)選取簇首后又對其分布位置進(jìn)行優(yōu)化,使其分簇更加均勻,實現(xiàn)了簇首選取的優(yōu)化,同時考慮能量等因素采用中繼方式進(jìn)行信息傳輸,均衡了網(wǎng)絡(luò)負(fù)載,提高了能量利用率;同時在后期無標(biāo)記的實線與其他線相交后處于其他線的下方,也是因為其他算法的存活節(jié)點大部分位于基站附近,這進(jìn)一步證明了CRNHNN算法能量均衡性優(yōu)于其他算法。
圖17 CRBHNN算法節(jié)點生存周期
為延長網(wǎng)絡(luò)壽命提高網(wǎng)絡(luò)服務(wù)質(zhì)量,本文對無線傳感器網(wǎng)絡(luò)的數(shù)據(jù)傳輸能耗模型進(jìn)行研究,提出一種基于分級鄰近節(jié)點的分簇路由算法。在分簇階段通過對簇群成員進(jìn)行分級,對不合理的簇首進(jìn)行再選舉,解決了簇首分布的完全隨機(jī)性問題,使得簇首可以更均勻地分布在感知區(qū)域中。在數(shù)據(jù)傳輸階段通過對鄰近節(jié)點進(jìn)行分級,確立各個節(jié)點對應(yīng)的中繼節(jié)點,解決遠(yuǎn)處孤立節(jié)點傳輸能耗過大和網(wǎng)絡(luò)能量不均衡的問題,同時多次的數(shù)據(jù)融合也提高了能量利用率。仿真結(jié)果表明,與LEACH、CECA、DEEC等算法進(jìn)行對比,該算法可以有效減少和均衡網(wǎng)絡(luò)負(fù)載能耗,提高能量利用率,最終達(dá)到延長網(wǎng)絡(luò)壽命的目的。CRBHNN為分布式路由算法,是基于一定范圍內(nèi)的鄰近節(jié)點信息進(jìn)行的優(yōu)化,可能會導(dǎo)致部分范圍內(nèi)的優(yōu)化在整體上不夠突出,下一步將與集中式算法結(jié)合來優(yōu)化路由算法。