宋 嚴(yán)
(長(zhǎng)春師范大學(xué)網(wǎng)絡(luò)中心,吉林 長(zhǎng)春 130032)
無(wú)線傳感器網(wǎng)絡(luò)(Wireless Sensor Network,WSN)作為一種自組織網(wǎng)絡(luò)系統(tǒng),由大量低成本的微節(jié)點(diǎn)組成,具有數(shù)據(jù)處理和無(wú)線通信能力,各個(gè)節(jié)點(diǎn)通過(guò)自組織形成一個(gè)網(wǎng)絡(luò)。WSN能夠感知、采集和協(xié)同處理被監(jiān)控的數(shù)據(jù)并發(fā)送到用戶終端[1]。隨著數(shù)字時(shí)代日益增長(zhǎng)的需求,5G無(wú)線通信技術(shù)越來(lái)越普及,這種技術(shù)具備更好的性能、更高的帶寬、更低的延遲和更低的功耗。然而,當(dāng)前網(wǎng)絡(luò)基礎(chǔ)設(shè)施覆蓋不足等因素限制了5G網(wǎng)絡(luò)的發(fā)揮,在未來(lái),部署大型基站和天線網(wǎng)絡(luò)將會(huì)顯著推動(dòng)5G傳輸模式與WSN的融合。WSN作為聯(lián)結(jié)搭建了物理宇宙和虛擬宇宙之間的橋架。分散的網(wǎng)絡(luò)由小型輕量級(jí)傳感器節(jié)點(diǎn)組成,通過(guò)電池提供能量,最終將檢測(cè)信息傳送到互聯(lián)網(wǎng)。無(wú)線傳感器網(wǎng)絡(luò)可用于各種應(yīng)用區(qū)域,包括軍事觀察、患者健康監(jiān)測(cè)、災(zāi)難監(jiān)測(cè)和應(yīng)急管理等[2]。大量緊湊且功率較低的傳感器節(jié)點(diǎn)作為WSN的主要組件,可以感知、處理周圍環(huán)境的觀測(cè)數(shù)據(jù)并將其傳輸?shù)侥康牡?從而更容易監(jiān)控人工不方便監(jiān)控的惡劣環(huán)境。典型的 WSN 包含從幾百到幾千個(gè)節(jié)點(diǎn)[3]。動(dòng)態(tài)網(wǎng)絡(luò)拓?fù)?、功率約束、節(jié)點(diǎn)異構(gòu)性、有限的預(yù)載能量、節(jié)點(diǎn)的移動(dòng)性以及節(jié)點(diǎn)故障時(shí)的適應(yīng)性是WSN的主要特征。
傳感器節(jié)點(diǎn)的組織部署在觀察區(qū)域中,從而創(chuàng)建了應(yīng)傳達(dá)給系統(tǒng)的大量數(shù)據(jù)。盡管傳感器節(jié)點(diǎn)非常微小,但它們?cè)趦?nèi)存、傳輸容量、數(shù)據(jù)處理和電池壽命方面存在一些限制[4]。WSN節(jié)點(diǎn)完全由電池供電,而電池能量有限且不能隨時(shí)充電。傳感器節(jié)點(diǎn)的壽命在很大程度上取決于電池的壽命,不合理的能耗會(huì)導(dǎo)致網(wǎng)絡(luò)過(guò)早衰減,從而降低網(wǎng)絡(luò)壽命。當(dāng)WSN用于遠(yuǎn)程區(qū)域觀測(cè)時(shí),傳感器網(wǎng)絡(luò)的使用壽命是系統(tǒng)效率和數(shù)據(jù)傳輸可靠性的保障。檢測(cè)到所有WSN內(nèi)所需能源的節(jié)點(diǎn),能源會(huì)進(jìn)行不中斷輸送,用于數(shù)據(jù)通信。通過(guò)最小化跳躍總數(shù)和間隙,可以有效降低能量利用率,延長(zhǎng)WSN的預(yù)期壽命。對(duì)于潛在的大規(guī)模網(wǎng)絡(luò),更需要輕量級(jí)、低成本和低消耗的傳感器節(jié)點(diǎn)。此外,為了延長(zhǎng)單個(gè)傳感器節(jié)點(diǎn)和網(wǎng)絡(luò)的使用壽命,每個(gè)節(jié)點(diǎn)都需要使用盡可能少的功率。網(wǎng)絡(luò)生存期取決于單個(gè)節(jié)點(diǎn)生存時(shí)間與整個(gè)網(wǎng)絡(luò)能量消耗的平衡性,因此網(wǎng)絡(luò)能量消耗的平衡性也同樣重要。路由算法可以通過(guò)評(píng)估剩余能量和網(wǎng)絡(luò)生存期來(lái)選擇更優(yōu)路徑,有助于延長(zhǎng)節(jié)點(diǎn)生存期并節(jié)省能量消耗。其中,將各種來(lái)源的數(shù)據(jù)的合并稱為數(shù)據(jù)聚合。傳感器節(jié)點(diǎn)可以從多個(gè)節(jié)點(diǎn)生成均勻的數(shù)據(jù)包,這些數(shù)據(jù)包的聚合減少了傳輸次數(shù)。上述功能可以在每個(gè)傳感器節(jié)點(diǎn)中部分或全部執(zhí)行。與通信相比,計(jì)算消耗的能量最小,從而節(jié)省了大量的能量。數(shù)據(jù)聚合是實(shí)現(xiàn)顯著節(jié)能的有效方法,可以進(jìn)一步優(yōu)化各種路由協(xié)議的流量。一般來(lái)說(shuō),在一些網(wǎng)絡(luò)架構(gòu)中,權(quán)值更高、具備更少連接數(shù)或特定的節(jié)點(diǎn)被分配給聚合和計(jì)算任務(wù)。目前已經(jīng)對(duì)各種算法和協(xié)議進(jìn)行了大量研究,以減少傳感器網(wǎng)絡(luò)消耗的總能量[5]。合理設(shè)計(jì)有關(guān)節(jié)能的路由協(xié)議和操作系統(tǒng)應(yīng)用層,可以大大延長(zhǎng)傳感器網(wǎng)絡(luò)的使用壽命。利用收發(fā)器和微處理器的獨(dú)特功能,降低傳感器節(jié)點(diǎn)消耗的能量。此功能有助于為各種傳感器節(jié)點(diǎn)設(shè)計(jì)提供定制解決方案。根據(jù)傳感器網(wǎng)絡(luò)選擇的簇頭節(jié)點(diǎn)的不同,進(jìn)一步提出了多種WSN領(lǐng)域的集體算法。由于每個(gè)節(jié)點(diǎn)的能源供應(yīng)有限,能耗的優(yōu)化被認(rèn)為是WSN系統(tǒng)架構(gòu)研究的關(guān)鍵目標(biāo)[4]。
本文分別采用分簇算法和神經(jīng)網(wǎng)絡(luò)算法,在自組網(wǎng)的過(guò)程中,綜合考慮傳感器能耗、傳感器位置、節(jié)點(diǎn)剩余能量、多路信息整合等因素,實(shí)現(xiàn)對(duì)無(wú)線傳感器網(wǎng)絡(luò)的實(shí)時(shí)組網(wǎng);利用神經(jīng)算法實(shí)現(xiàn)自組網(wǎng),綜合衡量距離、負(fù)載和以往信息實(shí)時(shí)性要求等因素,設(shè)計(jì)相應(yīng)的權(quán)重的計(jì)算方法;在自組網(wǎng)的過(guò)程中兼顧單個(gè)節(jié)點(diǎn)能耗的問(wèn)題,對(duì)整體組網(wǎng)進(jìn)行合理的簇頭選擇和高效傳輸,達(dá)到節(jié)能和延長(zhǎng)WSN壽命周期的效果。
為了更好地研究無(wú)線傳感器網(wǎng)絡(luò)的節(jié)能問(wèn)題,首先要明確無(wú)線傳感器網(wǎng)絡(luò)的工作流程,其主要由以下三部分組成:分散在區(qū)域環(huán)境附近的無(wú)線傳感器節(jié)點(diǎn)、作為傳輸數(shù)據(jù)中轉(zhuǎn)站的匯聚節(jié)點(diǎn)以及終端管理節(jié)點(diǎn),如圖1所示。首先在監(jiān)控區(qū)域的內(nèi)部和周邊部署大量的傳感器節(jié)點(diǎn),這些節(jié)點(diǎn)可以通過(guò)自組織的方式構(gòu)成無(wú)線傳感器網(wǎng)絡(luò);節(jié)點(diǎn)檢測(cè)到的數(shù)據(jù)隨著其他節(jié)點(diǎn)的跳轉(zhuǎn)向外傳輸,最終經(jīng)過(guò)多次跳轉(zhuǎn)到達(dá)匯聚節(jié)點(diǎn);匯聚節(jié)點(diǎn)通過(guò)互聯(lián)網(wǎng)或衛(wèi)星通信網(wǎng)傳輸,到達(dá)終端的管理節(jié)點(diǎn)(通常為電腦或者服務(wù)器),管理者可在管理節(jié)點(diǎn)監(jiān)測(cè)到區(qū)域環(huán)境的數(shù)據(jù),根據(jù)收集到的數(shù)據(jù)進(jìn)行任務(wù)下發(fā)或者配置告警。在傳輸數(shù)據(jù)的過(guò)程中,規(guī)劃無(wú)線傳感器網(wǎng)絡(luò)內(nèi)部的最優(yōu)路徑成為高效傳輸數(shù)據(jù)和節(jié)能的關(guān)鍵。
圖1 無(wú)線傳感器網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)圖
LEACH作為經(jīng)典的分簇路由協(xié)議,其特點(diǎn)是網(wǎng)絡(luò)中所有傳感節(jié)點(diǎn)被選中的概率相同[6],因此每個(gè)節(jié)點(diǎn)所消耗的能量基本一致,能夠降低網(wǎng)絡(luò)的能量消耗,延長(zhǎng)WSN的壽命周期。LEACH作為協(xié)議的計(jì)算公式如下:
(1)
其中,p表示此網(wǎng)絡(luò)中所需簇頭數(shù)占所有節(jié)點(diǎn)總數(shù)的比例,r是每次新建立路由及數(shù)據(jù)傳輸?shù)幕睾?G表示在本輪之前還沒(méi)有被選為簇頭的節(jié)點(diǎn)集合。
針對(duì)LEACH協(xié)議計(jì)算公式主要考慮以下兩個(gè)因素:整個(gè)無(wú)線傳感器網(wǎng)絡(luò)中所需要的簇頭數(shù)量和某節(jié)點(diǎn)曾被選為簇頭的次數(shù)[7]。但是LEACH協(xié)議忽略了不同節(jié)點(diǎn)剩余能量不同的事實(shí),當(dāng)剩余能量較低的節(jié)點(diǎn)被選為簇頭時(shí),能量消耗變快,導(dǎo)致該節(jié)點(diǎn)早于整體平均壽命衰短,影響網(wǎng)絡(luò)性能[8]。
考慮到節(jié)能對(duì)于WSN傳輸數(shù)據(jù)的重要性和可靠性,本文基于LEACH分簇協(xié)議提出了一種新的簇頭選舉算法LEACH-N。在每個(gè)輪次進(jìn)行簇頭選舉之前,每個(gè)節(jié)點(diǎn)會(huì)在0至1之間選取一個(gè)隨機(jī)數(shù)θ,將選出的隨機(jī)數(shù)θ與參考值ε進(jìn)行比較,ε的計(jì)算方式如下所示:
(2)
其中,α是一個(gè)非負(fù)常數(shù),Ei是該節(jié)點(diǎn)當(dāng)前剩余的能量。
如果某節(jié)點(diǎn)選出的隨機(jī)數(shù)θ大于參考值ε,則在本輪次中該節(jié)點(diǎn)當(dāng)選為簇頭,反之則不能當(dāng)選。對(duì)于單個(gè)節(jié)點(diǎn)來(lái)說(shuō),剩余的能量越大,其當(dāng)選簇頭的概率更高,避免了低能量節(jié)點(diǎn)被選為簇頭而導(dǎo)致過(guò)快衰減,從而影響整個(gè)網(wǎng)絡(luò)壽命周期。
根據(jù)上述網(wǎng)絡(luò)模型,假設(shè)100個(gè)傳感器節(jié)點(diǎn)隨機(jī)分布在200 m×200 m區(qū)域且不會(huì)移動(dòng),單個(gè)節(jié)點(diǎn)初始能量為0.5 J。利用Matlab進(jìn)行仿真實(shí)驗(yàn),分別測(cè)試LEACH和LEACH-N算法在網(wǎng)絡(luò)中傳輸數(shù)據(jù)的性能表現(xiàn),仿真結(jié)果如圖2至圖4所示。
圖2 分簇算法下網(wǎng)絡(luò)存活節(jié)點(diǎn)變化趨勢(shì)
由圖2可知,LEACH算法在大約第300個(gè)輪次開(kāi)始,網(wǎng)絡(luò)中傳感器節(jié)點(diǎn)數(shù)量開(kāi)始減少,當(dāng)來(lái)到第1 500個(gè)輪次時(shí),網(wǎng)絡(luò)中存活的節(jié)點(diǎn)數(shù)基本為零。而改善后的LEACH-N算法隨著輪次的增加,從第600輪次開(kāi)始顯著下降,且一直到第2 000個(gè)輪次LEACH-N算法中存活的節(jié)點(diǎn)數(shù)下降為零??梢园l(fā)現(xiàn),LEACH-N算法相比于LEACH算法,網(wǎng)絡(luò)中節(jié)點(diǎn)存活的時(shí)間更長(zhǎng)。
同樣地,對(duì)簇頭節(jié)點(diǎn)發(fā)送給匯聚節(jié)點(diǎn)的數(shù)據(jù)包數(shù)量進(jìn)行測(cè)試,測(cè)試結(jié)果如圖3所示。在前800個(gè)輪次,無(wú)論是哪種算法,匯聚節(jié)點(diǎn)收到來(lái)自于測(cè)試區(qū)域節(jié)點(diǎn)傳輸?shù)臄?shù)據(jù)包數(shù)量基本相同,隨著輪數(shù)增加到第1 200個(gè)輪次,LEACH算法發(fā)送給匯聚節(jié)點(diǎn)的數(shù)據(jù)包不再增加,而LEACH-N算法依然在向外傳輸數(shù)據(jù)。直到第1 800個(gè)輪次,LEACH-N算法基本停止向外發(fā)送的數(shù)據(jù)包。
圖3 分簇算法下簇頭節(jié)點(diǎn)發(fā)送給匯聚節(jié)點(diǎn)數(shù)據(jù)包傳輸量
對(duì)區(qū)域內(nèi)節(jié)點(diǎn)剩余能量進(jìn)行測(cè)試,測(cè)試結(jié)果如圖4所示。顯然,無(wú)論是LEACH算法還是LEACH-N算法,隨著輪次的增加,網(wǎng)絡(luò)剩余總能量均有所下降,且下降趨勢(shì)基本呈線性。然而,LEACH算法的網(wǎng)絡(luò)生命周期保持了約1 500個(gè)輪次,LEACH-N算法的網(wǎng)絡(luò)生命周期相比于前者提升了約25%,因此可以認(rèn)為,LEACH-N算法能夠在一定程度上提高WSN的整體生命周期。
圖4 測(cè)試區(qū)域網(wǎng)絡(luò)能量消耗
本文在拉蓋爾神經(jīng)網(wǎng)絡(luò)數(shù)據(jù)融合算法[9-10]的基礎(chǔ)上,對(duì)神經(jīng)網(wǎng)絡(luò)隱藏層到輸出層權(quán)重值進(jìn)行修正,模型算法可以做出如下推導(dǎo),假設(shè)初始權(quán)重w為0至1之間的一個(gè)隨機(jī)數(shù),隱藏層神經(jīng)元的數(shù)量為m,初始誤差E=0,最大誤差為δ。假設(shè)選取徑向基函數(shù)的錨點(diǎn)為ci(i=0,1,…,m),選取h個(gè)不同的訓(xùn)練樣本作為錨點(diǎn)的初始值,其他非錨點(diǎn)根據(jù)最小距離原則形成h個(gè)子集Ai(i=0,1,…,h)。則可以得到錨點(diǎn):
(3)
其中,xk∈Ai,si代表第i個(gè)隱單元樣本集的單元數(shù)量。
隨后計(jì)算集合中訓(xùn)練樣本對(duì)每個(gè)錨點(diǎn)的隸屬度,如式(4)和式(5)所示。
(4)
U={uij∈[0,1]|i=1,2,…,n;h=1,2,…,sj}.
(5)
由上述結(jié)果進(jìn)行誤差范圍判斷,若ci不處于偏離允許的誤差范圍,則重新執(zhí)行更新聚類錨點(diǎn)步驟。根據(jù)徑向奇函數(shù)的方差σ,可以確定第i個(gè)隱層神經(jīng)元的節(jié)點(diǎn)輸出為[11]:
(6)
(7)
(8)
為了更好地展現(xiàn)輸入與輸出的映射關(guān)系,對(duì)輸出層的權(quán)重值w進(jìn)行不斷優(yōu)化。利用梯度下降法不斷逼近最優(yōu)權(quán)重值,將每次訓(xùn)練的優(yōu)化方向作為梯度下降的方向,可以得到權(quán)值系數(shù)的修正公式:
(9)
其中,η為介于[0,1]之間的學(xué)習(xí)率。
根據(jù)式(8)和(9)推導(dǎo)出:
(10)
因此,權(quán)重w的修正方向?yàn)?/p>
wi←wi+Δwi,i=1,2,…,m.
(11)
通過(guò)式(11)不斷地重復(fù)修正步驟,直到0 (12) 其中,γ為輸出層的參考值。 上述計(jì)算公式可以表示神經(jīng)網(wǎng)絡(luò)隱藏層到輸出層權(quán)重值的訓(xùn)練過(guò)程,整個(gè)流程如圖5所示。 圖5 神經(jīng)網(wǎng)絡(luò)算法訓(xùn)練流程圖 在重復(fù)的神經(jīng)網(wǎng)絡(luò)算法權(quán)重訓(xùn)練之后,傳感器節(jié)點(diǎn)再次收集信息時(shí),簇內(nèi)節(jié)點(diǎn)將采集到的信息傳輸給選舉的簇頭節(jié)點(diǎn),簇頭節(jié)點(diǎn)將得到的所有簇內(nèi)節(jié)點(diǎn)信息經(jīng)過(guò)加權(quán)處理發(fā)送到網(wǎng)絡(luò)中轉(zhuǎn)站的匯聚節(jié)點(diǎn)。此時(shí),輸出結(jié)果代表了網(wǎng)絡(luò)中所有簇頭節(jié)點(diǎn)采集到的關(guān)鍵特征信息,但是又遠(yuǎn)少于所有簇頭節(jié)點(diǎn)輸入的初始信息,進(jìn)而大大減少了通信數(shù)量,使得傳輸?shù)臄?shù)據(jù)更精簡(jiǎn)有效,提高了網(wǎng)絡(luò)的使用壽命。 利用Matlab進(jìn)行仿真實(shí)驗(yàn)[12],驗(yàn)證修正后的神經(jīng)網(wǎng)絡(luò)數(shù)據(jù)融合算法的有效性。假設(shè)100個(gè)傳感器節(jié)點(diǎn)隨機(jī)分布在200 m×200 m區(qū)域且不會(huì)移動(dòng),單個(gè)節(jié)點(diǎn)初始能量為0.5 J。圖6顯示了修正前和修正后的神經(jīng)網(wǎng)絡(luò)數(shù)據(jù)融合算法在網(wǎng)絡(luò)中存活節(jié)點(diǎn)數(shù)的變化趨勢(shì),修正前的算法在大約第1 100輪次開(kāi)始出現(xiàn)節(jié)點(diǎn)衰亡現(xiàn)象,到第2 500輪次所有節(jié)點(diǎn)消耗殆盡,也意味著網(wǎng)絡(luò)的生命周期結(jié)束。而修正后的算法在第1 500輪次開(kāi)始出現(xiàn)節(jié)點(diǎn)的衰亡現(xiàn)象,直到第2 800輪次所有節(jié)點(diǎn)死亡。這是因?yàn)樾拚笸ㄐ艛?shù)據(jù)量變少,傳輸?shù)臄?shù)據(jù)包質(zhì)量提升,進(jìn)而延長(zhǎng)了整網(wǎng)的壽命周期。 圖6 神經(jīng)網(wǎng)絡(luò)算法下網(wǎng)絡(luò)存活節(jié)點(diǎn)數(shù)變化趨勢(shì) 圖7 神經(jīng)網(wǎng)絡(luò)算法下簇頭節(jié)點(diǎn)發(fā)送給匯聚節(jié)點(diǎn)數(shù)據(jù)包傳輸量 為了進(jìn)一步驗(yàn)證傳輸數(shù)據(jù)發(fā)送量,對(duì)簇頭向匯聚節(jié)點(diǎn)發(fā)送的數(shù)據(jù)包數(shù)量進(jìn)行測(cè)試,測(cè)試結(jié)果如圖7所示。在前700個(gè)輪次,修正前的神經(jīng)網(wǎng)絡(luò)算法傳輸?shù)臄?shù)據(jù)量大于修正后傳輸?shù)臄?shù)據(jù)量;在大約第700個(gè)輪次,修正前和修正后簇頭節(jié)點(diǎn)向匯聚節(jié)點(diǎn)發(fā)送的數(shù)據(jù)數(shù)量相同;在第700個(gè)輪次之后,修正后的神經(jīng)網(wǎng)絡(luò)算法傳輸?shù)臄?shù)據(jù)量高于修正前傳輸?shù)臄?shù)據(jù)量。導(dǎo)致這一現(xiàn)象發(fā)生的原因是,修正前簇頭節(jié)點(diǎn)沒(méi)有對(duì)傳輸?shù)臄?shù)據(jù)量進(jìn)行數(shù)據(jù)融合,直接將數(shù)據(jù)包傳輸給匯聚節(jié)點(diǎn)。修正前的算法一開(kāi)始的數(shù)據(jù)包傳輸數(shù)量更大,但隨著時(shí)間的推移,節(jié)點(diǎn)早早地消耗完能量并死亡,導(dǎo)致傳輸數(shù)據(jù)包數(shù)量趨勢(shì)有所變緩。修正后的神經(jīng)網(wǎng)絡(luò)算法在簇頭節(jié)點(diǎn)對(duì)數(shù)據(jù)進(jìn)行數(shù)據(jù)融合,可以持續(xù)穩(wěn)定地向匯聚節(jié)點(diǎn)發(fā)送數(shù)據(jù)包,節(jié)點(diǎn)存活的時(shí)間更長(zhǎng),最終匯聚節(jié)點(diǎn)收到的數(shù)據(jù)包數(shù)量更多,直到所有節(jié)點(diǎn)死亡時(shí)接收曲線接近水平。 本文提出了一種優(yōu)化的分簇算法LEACH-N,基于傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的剩余能量選擇簇頭節(jié)點(diǎn),防止因單個(gè)節(jié)點(diǎn)過(guò)早老化而縮減網(wǎng)絡(luò)壽命。通過(guò)對(duì)神經(jīng)網(wǎng)絡(luò)數(shù)據(jù)融合算法中權(quán)重進(jìn)行修正,減少簇頭節(jié)點(diǎn)向匯聚節(jié)點(diǎn)傳輸?shù)臄?shù)據(jù)量,降低傳輸數(shù)據(jù)所消耗的能量,減緩網(wǎng)絡(luò)中節(jié)點(diǎn)的衰亡速度。仿真實(shí)驗(yàn)結(jié)果顯示,該算法可在一定程度上提升了網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)總量,延長(zhǎng)了傳感器網(wǎng)絡(luò)整體生命周期。4 結(jié)語(yǔ)