徐 榮
(安徽廣播電視大學(xué) 信息工程學(xué)院,安徽 合肥 230022)
隨著無線傳感器網(wǎng)絡(luò)(WSN:Wireless Sensor Network)的發(fā)展,其以低功耗和低成本的特點(diǎn),正在日益受到人們的關(guān)注,并被廣泛應(yīng)用于不同的領(lǐng)域,如健康監(jiān)測、汽車跟蹤等.隨著WSN 節(jié)點(diǎn)運(yùn)行,節(jié)點(diǎn)能量消耗增加,如何提高WSN 傳感器節(jié)點(diǎn)能量的利用效率,更好地提高節(jié)點(diǎn)的使用壽命,是當(dāng)前研究的重點(diǎn).要解決該問題,關(guān)鍵在于構(gòu)建一個合理的分簇路由協(xié)議,以此提高傳感器節(jié)點(diǎn)中不同節(jié)點(diǎn)的能量使用效率.而分簇路由協(xié)議的求解,本質(zhì)是一個NP 難題.在這個難題中,要充分考慮最短傳輸路徑、最小能耗、拓?fù)浣Y(jié)構(gòu)簡單等問題.為解決該問題,譚軍(2015)、趙悅(2016)、冉涌(2019)等分別對無線傳感器的路由協(xié)議進(jìn)行構(gòu)建和改進(jìn),取得了豐富的經(jīng)驗.但上述研究發(fā)現(xiàn),WSN 網(wǎng)絡(luò)節(jié)點(diǎn)能量消耗還有進(jìn)一步優(yōu)化和提升空間.筆者在以往研究的基礎(chǔ)上,結(jié)合PSO(Particle Swarm Optimization)優(yōu)化算法的優(yōu)勢,主要從兩方面進(jìn)行探討:一是構(gòu)建傳感器節(jié)點(diǎn)能耗模型,二是對WSN 網(wǎng)絡(luò)節(jié)點(diǎn)中的簇首選擇問題進(jìn)一步探討和優(yōu)化.由此,結(jié)合上述兩方面的工作,解決WSN 中簇首節(jié)點(diǎn)能耗不均衡的問題,實現(xiàn)整個WSN 網(wǎng)絡(luò)節(jié)點(diǎn)能耗均衡的目的,提高整個網(wǎng)絡(luò)節(jié)點(diǎn)的使用壽命.
出于對問題模型進(jìn)行簡化的目的,將場景設(shè)定為長方形網(wǎng)絡(luò)區(qū)域,基站位于區(qū)域一側(cè),各節(jié)點(diǎn)隨機(jī)分布于該區(qū)域內(nèi),見圖1.
圖1 WSN 節(jié)點(diǎn)網(wǎng)絡(luò)模型
該網(wǎng)絡(luò)中共有N個傳感器節(jié)點(diǎn),其節(jié)點(diǎn)集合為V={Vi|i=1,2,…,N},各節(jié)點(diǎn)間連線的集合為E={(Vi,Vj)|(Vi,Vj)∈V*V,i≠j},則網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)可被抽象為無向加權(quán)圖G=(V,E).
若節(jié)點(diǎn)i 的坐標(biāo)為(Vix,Viy),節(jié)點(diǎn)j 的坐標(biāo)為(Vjx,Vjy),則節(jié)點(diǎn)i 與節(jié)點(diǎn)j 在二維平面上的距離為:
若節(jié)點(diǎn)的通信半徑為R,當(dāng)節(jié)點(diǎn)i 與節(jié)點(diǎn)j 在二維平面上的距離d(Vi,Vj)不超過通信半徑R 時,則節(jié)點(diǎn)i 與節(jié)點(diǎn)j 互為鄰居節(jié)點(diǎn).節(jié)點(diǎn)Vi的鄰居節(jié)點(diǎn)集合為S(Vi)={Vj|d(Vi,Vj)≤R}.
根據(jù)研究需要,提出假設(shè):
(1)隨機(jī)部署各個節(jié)點(diǎn)后,每個節(jié)點(diǎn)的位置始終保持不變;
(2)不考慮基站電量問題,各個節(jié)點(diǎn)為相同的初始能量,由自身電池提供;
(3)各個節(jié)點(diǎn)的計算、通信能力以及數(shù)據(jù)傳輸有效距離均保持一致;
(4)各個節(jié)點(diǎn)均有唯一標(biāo)識,并且能夠獲取自身的位置和剩余能量信息.
在WSN 節(jié)點(diǎn)傳輸過程中,主要能量消耗來自節(jié)點(diǎn)對數(shù)據(jù)的發(fā)送和接收,且能量消耗隨著通信距離的增加而增加.當(dāng)數(shù)據(jù)傳輸?shù)木嚯x為在d,發(fā)送的數(shù)據(jù)為l 比特比的情況下,其消耗的能量為:
同時接收l 比特數(shù)據(jù)所需要消耗的能量為:
在公式(2)和(3)中,ETx-elec、ETx-amp表示監(jiān)聽數(shù)據(jù)和信號放大所消耗的能量;ERx-elec、Eelec分別為接收器監(jiān)聽耗費(fèi)能量和節(jié)點(diǎn)接收與發(fā)送每比特耗費(fèi)的能量;εamp為將單位比特數(shù)據(jù)廣播單位面積所耗費(fèi)的能量.
但是上述的能量消耗模型沒有考慮距離的問題,即當(dāng)傳輸距離足夠大的情況下.如考慮傳輸距離足夠遠(yuǎn),那么可以將上述的能耗模型轉(zhuǎn)換為:
在該傳輸過程中,設(shè)置兩種傳輸模式,當(dāng)d <d0時,則采用自由空間能耗模式;當(dāng)d≥d0時,則采用多徑衰減能耗模式.
分簇路由算法的構(gòu)建中,主要包括簇的建立和數(shù)據(jù)傳輸.其中,簇的建立階段主要考慮簇的數(shù)目、簇首能量消耗等因素,在數(shù)據(jù)傳輸階段主要考慮剩余能量.
根據(jù)圖1 的節(jié)點(diǎn)分布圖,假設(shè)將該區(qū)域內(nèi)的簇劃分為K 個,根據(jù)上述的能耗模型,得到簇首.而簇首的能量消耗ECH主要包括:接收簇類節(jié)點(diǎn)發(fā)送的數(shù)據(jù)消耗能量、接受節(jié)點(diǎn)成為簇成員耗費(fèi)能量、廣播自己耗費(fèi)的能量、數(shù)據(jù)融合以及融合后傳送耗費(fèi)的能量.同時為簡化求解,都采用自由空間模型進(jìn)行通信.由此,得到簇首消耗的能量:
簇內(nèi)感知節(jié)點(diǎn)所耗費(fèi)的能量ESN為:
根據(jù)公式(6)和(7),得到節(jié)點(diǎn)工作一輪所耗費(fèi)的總的能量:
筆者采用PSO 對最優(yōu)簇首進(jìn)行選擇,并連同節(jié)點(diǎn)所屬簇的相關(guān)信息全部發(fā)送到網(wǎng)絡(luò).
2.2.1 粒子群優(yōu)化算法基本原理
通過觀察研究鳥群覓食行為,發(fā)現(xiàn)在覓食過程中鳥群的每只鳥都在區(qū)域內(nèi)隨機(jī)飛行進(jìn)行搜尋,然后通過在鳥群中共享自身與食物的距離信息,使鳥群中的其他個體調(diào)整搜尋路徑,在距離食物最近的個體周圍進(jìn)行搜尋.根據(jù)鳥群覓食行為提出相應(yīng)的模擬算法,而實踐證明這是一種有效的優(yōu)化,能夠得到復(fù)雜問題的最優(yōu)解.在此基礎(chǔ)上不斷發(fā)展,最終由Kennedy 提出了粒子群優(yōu)化算法.
假設(shè)在給定的目標(biāo)搜索空間內(nèi)有m 個粒子節(jié)點(diǎn),粒子群集合為X={X1,X2,…,Xm},Xi=(Xi1,Xi2,…,XiN),i=1,2,…,m 為第i 個粒子的位置向量,通過適應(yīng)值函數(shù)f(x)計算得到粒子當(dāng)前的適應(yīng)值f(Xi),然后可以根據(jù)f(Xi)的大小來判斷粒子位置向量Xi的優(yōu)劣.其中,粒子節(jié)點(diǎn)數(shù)m 的大小直接影響著算法的收斂性和求解速度,應(yīng)當(dāng)根據(jù)需要解決的問題進(jìn)行具體設(shè)定.
Vi=(Vi1,Vi2,…,ViN) i=1,2,…,m,Vi為 第i 個 粒 子 的 速 度 向 量.Pi=(Pi1,Pi2,…,PiN),i=1,2,…,m,Pi為第i 個粒子當(dāng)前搜索到的最優(yōu)位置,即個體極值為粒子群在第t 次循環(huán)后搜索到的最優(yōu)位置,即全局極值pbestt.粒子在空間內(nèi)跟蹤pbesti和pbestt進(jìn)行搜索,直至達(dá)到設(shè)定的迭代次數(shù)或者誤差滿足設(shè)定條件.
每次迭代后,粒子群中的每個個體將更新自身速度和位置:
其中,c1和c2為學(xué)習(xí)因子,在[0,2]區(qū)間內(nèi)隨機(jī)取值;rand()參數(shù)同樣在[0,2]區(qū)間內(nèi)隨機(jī)取值;w為慣性權(quán)重.學(xué)習(xí)因子能夠使粒子群中的個體向優(yōu)秀個體靠近;rand()參數(shù)能夠保證群體的多樣性;慣性權(quán)重能夠保證搜索的平衡.
2.2.2 適應(yīng)度函數(shù)構(gòu)建
為得到最優(yōu)簇首,筆者以簇首能量因子f1、 簇內(nèi)緊湊性因子f2、簇首位置因子f3、簇分布均勻性f4作為適應(yīng)度因子.適應(yīng)度值最小的作為最優(yōu)簇首來選擇,即:
根據(jù)上述的因子,得到適應(yīng)度函數(shù):
2.2.3 PSO 的適應(yīng)度函數(shù)求解
要求解上述的適應(yīng)度函數(shù),采用PSO 優(yōu)化算法進(jìn)行求解.具體求解步驟如下:
(1)初始化粒子.根據(jù)上述的最優(yōu)簇首計算方法計算網(wǎng)絡(luò)最佳分簇數(shù)Kopt,在粒子群X 集合中每個離子都包含候選簇首中的Kopt個節(jié)點(diǎn),同時對離子的速度、位置等進(jìn)行初始化.
(2)計算每個離子的適應(yīng)度值,取適應(yīng)度值最小的離子作為全局最優(yōu)解gbest.
(3)更新粒子的速度和位置,使得離子能映射到具體的位置.
(4)更新全局最優(yōu)和個體最優(yōu),再對每個離子的適應(yīng)度函數(shù)值進(jìn)行計算.
(5)適應(yīng)度函數(shù)值如滿足設(shè)定的閾值,則終止,如不滿足,繼續(xù)更新粒子速度和位置,并進(jìn)行適應(yīng)度值計算.
在上述簇首優(yōu)化的前提下,分簇路由算法見圖2.
圖2 最優(yōu)簇首選舉
為驗證上述算法的正確性和可行性,采用OPNET 軟件對上述算法進(jìn)行模擬.同時為比較本算法的優(yōu)劣,將本算法與傳統(tǒng)的LEACH 協(xié)議進(jìn)行比較.仿真的實驗參數(shù)Eelec=50 nJ/bit,εfs=10 PJ/bit/m2,區(qū)域面積=100 m×100 m,節(jié)點(diǎn)數(shù)N=100,節(jié)點(diǎn)初始能量E0=0.5 J,d0=40 m,εamp=0.001 3 pJ/(bit·m4),數(shù)據(jù)包 長 度500 bytes,EDA=5 nJ/bit/signal,基 站 坐 標(biāo)(50,50).整體節(jié)點(diǎn)分布見圖3.
通過上述的參數(shù)設(shè)置,經(jīng)OPNET 軟件仿真,得到圖4 和圖5 的結(jié)果.
圖3 傳感器節(jié)點(diǎn)分布
圖4 網(wǎng)絡(luò)節(jié)點(diǎn)存活數(shù)
圖5 剩余總能量對比
通過圖4 的結(jié)果可看出,采用PSO 分簇算法得到的網(wǎng)絡(luò)節(jié)點(diǎn)存活數(shù),從一開始就要高于傳統(tǒng)的LEACH 算法,并且第一個死亡節(jié)點(diǎn)比LEACH 分簇算法要推遲170 輪.由此說明,經(jīng)過PSO 算法后,整個網(wǎng)絡(luò)要多工作兩百多輪.
圖5 為剩余總能量的對比圖.通過圖5 可看出,本文提出的算法,具有較小的坡度,而LEACH 算法坡度大.同時在運(yùn)行輪數(shù)方面,本文構(gòu)建的算法要運(yùn)行輪數(shù)要明顯多于傳統(tǒng)算法.說明本文構(gòu)建的分簇算法能耗更小.
通過這些研究,分簇算法的本質(zhì)就是一個NP 求解問題.在這個問題中,結(jié)合網(wǎng)絡(luò)的分布情況,選擇最優(yōu)簇,即可在很大程度上減少數(shù)據(jù)傳輸路徑,并減少節(jié)點(diǎn)的能量消耗,進(jìn)而最大限度的提高節(jié)點(diǎn)的使用壽命.而本文最大的特點(diǎn)在于,采用PSO 算法對簇首的選擇進(jìn)行優(yōu)化.