摘要:LEACH算法是經(jīng)典的無(wú)線傳感器網(wǎng)絡(luò)層次路由算法。但算法存在分簇大小變化劇烈、節(jié)點(diǎn)能耗不均勻的缺點(diǎn)。為解決上述問(wèn)題,本文提出了一種增加中轉(zhuǎn)基站的LEACH改進(jìn)路由算法。該算法通過(guò)一定的中轉(zhuǎn)節(jié)點(diǎn)部署策略,來(lái)提升網(wǎng)絡(luò)的吞吐量和生命周期。通過(guò)仿真實(shí)驗(yàn)生命,該算法能有效地提高網(wǎng)絡(luò)各方面的表現(xiàn)。
關(guān)鍵詞:無(wú)線傳感器網(wǎng)絡(luò);路由算法;輔助基站
1.無(wú)線傳感器網(wǎng)絡(luò)及路由算法簡(jiǎn)介
無(wú)線傳感器網(wǎng)絡(luò)(WSNs)是由一定數(shù)量的傳感器節(jié)點(diǎn),隨機(jī)自組織地分布在一起[1],通過(guò)單個(gè)節(jié)點(diǎn)的感知和存儲(chǔ)能量,加之節(jié)點(diǎn)之間的通信來(lái)完成一定任務(wù)的網(wǎng)絡(luò)結(jié)構(gòu)。目前,WSNs已經(jīng)被廣泛應(yīng)用于諸如軍事探測(cè)、農(nóng)業(yè)應(yīng)用、環(huán)境監(jiān)測(cè)及輔助醫(yī)療等眾多領(lǐng)域,發(fā)揮著十分重要的作用。
傳感器節(jié)點(diǎn)通常由傳感器單元、處理器單元、存儲(chǔ)單元和無(wú)線收發(fā)單元組成,這些單元都需要采用體積較小的電池作為能量來(lái)源。而在大多數(shù)的應(yīng)用場(chǎng)景下,無(wú)線傳感器一旦被部署之后,就基本不再進(jìn)行修改,同時(shí)在某些特殊場(chǎng)景下對(duì)其進(jìn)行修改也是不現(xiàn)實(shí)的,例如在某些環(huán)境監(jiān)測(cè)的應(yīng)用中,網(wǎng)絡(luò)一旦部署就會(huì)長(zhǎng)期工作在環(huán)境惡劣的地帶[2],不方便被修改。因此,網(wǎng)絡(luò)節(jié)點(diǎn)的能耗是傳感器網(wǎng)絡(luò)路由算法要解決的首要問(wèn)題。
目前已有的無(wú)線傳感器網(wǎng)絡(luò)路由算法主要分為兩大類:平面路由算法和層次路由算法。而目前公認(rèn)的最有效的路由算法都屬于層次路由算法。層次路由算法是通過(guò)一定的方式將網(wǎng)絡(luò)中的節(jié)點(diǎn)分成簇,每個(gè)節(jié)點(diǎn)都從屬于一個(gè)簇,簇內(nèi)節(jié)點(diǎn)將采集的數(shù)據(jù)首先發(fā)送給簇頭節(jié)點(diǎn),再由簇頭節(jié)點(diǎn)發(fā)送給基站節(jié)點(diǎn)。由Heinzelman W等提出的LEACH算法就是最經(jīng)典的層次路由算法。
2.LEACH算法簡(jiǎn)介
LEACH算法是周期性運(yùn)行的,每一輪次都進(jìn)行一次簇首選舉、選擇入簇和信息傳輸。
2.1簇首選舉
每一輪次開(kāi)始時(shí),每個(gè)節(jié)點(diǎn)會(huì)產(chǎn)生一個(gè)[0,1]上的隨機(jī)數(shù),并計(jì)算一個(gè)屬于自己當(dāng)前輪次的閾值T(i),并當(dāng)t 2.2簇的建立 當(dāng)一輪內(nèi)簇首節(jié)點(diǎn)選擇完畢之后,當(dāng)選為簇首的節(jié)點(diǎn)向其周圍的節(jié)點(diǎn)廣播自己成為簇首的消息,該消息包含節(jié)點(diǎn)的編號(hào)和所在位置,其他沒(méi)有成為簇首的節(jié)點(diǎn)在接收到簇首發(fā)來(lái)的通知消息時(shí),根據(jù)自己與所有簇首節(jié)點(diǎn)之間的距離來(lái)選擇最近的簇首加入,成為該簇首的成員。 2.3數(shù)據(jù)傳輸階段 當(dāng)所有的簇已經(jīng)建立完成后,網(wǎng)絡(luò)進(jìn)入穩(wěn)定傳輸階段,各個(gè)節(jié)點(diǎn)發(fā)送消息到自己的簇首節(jié)點(diǎn),并通過(guò)無(wú)線發(fā)送模塊發(fā)送給基站。普通節(jié)點(diǎn)會(huì)按照簇首節(jié)點(diǎn)頒發(fā)的TDMA時(shí)隙表發(fā)送數(shù)據(jù),即在時(shí)隙表中查詢到自己的時(shí)隙并在相應(yīng)的時(shí)隙之內(nèi)發(fā)送數(shù)據(jù)。 由于簇首節(jié)點(diǎn)要擔(dān)任收發(fā)數(shù)據(jù)和融合數(shù)據(jù)的工作,因此會(huì)產(chǎn)生更大量的能耗,LEACH算法通過(guò)隨機(jī)機(jī)制,保證了各個(gè)節(jié)點(diǎn)在一定程度上公平地成為簇首,平均了網(wǎng)絡(luò)能耗。但LEACH算法只考慮了在節(jié)點(diǎn)擔(dān)任簇首次數(shù)上的公平性,忽略了節(jié)點(diǎn)地理位置造成的不公平性。某些節(jié)點(diǎn)始終距離基站節(jié)點(diǎn)較遠(yuǎn),當(dāng)這些節(jié)點(diǎn)當(dāng)選為簇首時(shí)其發(fā)送消息到基站的能耗會(huì)指數(shù)增加,這也導(dǎo)致LEACH算法下的網(wǎng)絡(luò)那些距離基站較遠(yuǎn)的節(jié)點(diǎn)經(jīng)常會(huì)過(guò)早死亡,進(jìn)而影響整個(gè)網(wǎng)絡(luò)的表現(xiàn)。 3.基站輔助的LEACH改進(jìn)算法 針對(duì)第2小節(jié)提出的LEACH算法的不足,本文提出了一種增加輔助基站的方法來(lái)延長(zhǎng)網(wǎng)絡(luò)生命周期的改進(jìn)LEACH算法。輔助基站是一種功率更大,能量更充足,甚至可以進(jìn)行能量補(bǔ)充的節(jié)點(diǎn),消息通過(guò)這樣的節(jié)點(diǎn)進(jìn)行轉(zhuǎn)發(fā)可以大大減少傳感器節(jié)點(diǎn)的能耗。該算法主要由3個(gè)階段的工作:LEACH算法運(yùn)行階段,統(tǒng)計(jì)成簇情況并設(shè)置輔助基站階段,輔助基站介入的運(yùn)行階段。 3.1 LEACH算法的運(yùn)行階段。 算法的第一階段和經(jīng)典LEACH算法相同,首先網(wǎng)絡(luò)在前輪運(yùn)行經(jīng)典LEACH算法,但在每一輪結(jié)束時(shí),由網(wǎng)絡(luò)中的基站節(jié)點(diǎn)記錄該輪次有哪些節(jié)點(diǎn)當(dāng)選為簇首,并保留成簇的情況。 3.3輔助基站介入的運(yùn)行階段 算法繼續(xù)采用LEACH算法運(yùn)行,所不同的是在數(shù)據(jù)傳輸階段,各個(gè)簇首節(jié)點(diǎn)在接收了簇內(nèi)節(jié)點(diǎn)的數(shù)據(jù)后,轉(zhuǎn)發(fā)給距離自己最近的輔助基站,輔助基站將數(shù)據(jù)進(jìn)行融合之后再發(fā)送給網(wǎng)絡(luò)基站,從而完成了數(shù)據(jù)采集的工作。 算法共運(yùn)行2000輪次,其中前500輪次是LEACH算法運(yùn)行階段。 首先,通過(guò)實(shí)驗(yàn)來(lái)驗(yàn)證了兩種算法在節(jié)點(diǎn)生命周期方面的表現(xiàn),由于本文的算法加入了可以補(bǔ)充能量的輔助基站,在一定程度上減輕了傳感器節(jié)點(diǎn)的工作負(fù)擔(dān),在500輪次的LEACH算法運(yùn)行之后,本文的算法推遲了第一個(gè)死亡節(jié)點(diǎn)出現(xiàn)的輪次,LEACH算法在第600輪次左右出現(xiàn)了第一個(gè)死亡節(jié)點(diǎn),而本文的算法在700輪次左右才出現(xiàn)第一個(gè)死亡節(jié)點(diǎn)。同時(shí)可以看出,本文算法下節(jié)點(diǎn)的死亡速率明顯低于LEACH算法,如果網(wǎng)絡(luò)以40%的節(jié)點(diǎn)存活數(shù)作為網(wǎng)絡(luò)正常運(yùn)行的標(biāo)準(zhǔn),則本文算法下網(wǎng)絡(luò)的正常工作比LEACH算法下的正常工作多200輪次左右。即,當(dāng)存活節(jié)點(diǎn)數(shù)為40的時(shí)候,LEACH算法運(yùn)行到1200輪次,而本文算法則持續(xù)運(yùn)行到1400輪次。 其次,我們做了網(wǎng)絡(luò)剩余能量方面的對(duì)比,在500輪次之前,由于兩種算法都采用了LEACH的運(yùn)行策略,其能耗速度基本一致,曲線重合。而當(dāng)500輪次之后,由于本文加入了基站輔助策略,使用基站的可補(bǔ)充能量來(lái)代替節(jié)點(diǎn)的不可補(bǔ)充能量進(jìn)行消耗,有效地保護(hù)了傳感器節(jié)點(diǎn)的能量,所以本文算法下的能耗速率明顯低于LEACH算法。LEACH算法在1300輪次時(shí),總能量基本降為0,而本文算法的能量一直持續(xù)到1900輪次。 最后,我們對(duì)比了兩種算法下每一個(gè)節(jié)點(diǎn)的剩余能量,LEACH算法在第1500輪次時(shí)還有一些存活節(jié)點(diǎn),但其剩余能量值相差較多,多的節(jié)點(diǎn)可以達(dá)到0.42焦耳,而少的節(jié)點(diǎn)只有0.0013,其剩余能量少的節(jié)點(diǎn)是距離基站較遠(yuǎn)的節(jié)點(diǎn),而本文算法下存活節(jié)點(diǎn)的剩余能量值基本平衡在0.13~0.15焦耳之間。這是由于輔助基站的介入,可以減輕偏遠(yuǎn)節(jié)點(diǎn)的數(shù)據(jù)收發(fā)能耗,避免了其能耗速度過(guò)快的情況,從而達(dá)到了節(jié)點(diǎn)之間能耗均衡的目的。 5.總結(jié) 本文設(shè)計(jì)了一種無(wú)線傳感器網(wǎng)絡(luò)路由算法,該算法針對(duì)經(jīng)典LEACH算法在能耗速度和均衡方面的不足做出了一定的改進(jìn),通過(guò)引入輔助基站的方式,減輕了網(wǎng)絡(luò)中傳感器節(jié)點(diǎn),尤其是偏遠(yuǎn)節(jié)點(diǎn)的能耗壓力,平衡了節(jié)點(diǎn)的能耗表現(xiàn)。最后,通過(guò)仿真實(shí)驗(yàn)的方式驗(yàn)證了本文算法的有效性。 參考文獻(xiàn) [1]葉繼華,王文,江愛(ài)文.一種基于LEACH的異構(gòu)WSN能量均衡成簇協(xié)議[J].傳感器技術(shù)學(xué)報(bào),2015,28(12):1853-1860. [2]康琳,董增壽. 基于簇頭分級(jí)的改進(jìn)非均勻分簇算法[J].傳感技術(shù)學(xué)報(bào),2015,28(12):1841-1844. 劉永超,張?jiān)孪?,繆旻. 基于能量和距離的分區(qū)域選擇簇首 WSNs 路由算法[J]. 傳感器與微系統(tǒng),2015,34(1):124-127.