閻 峻,黃建德,孫鵬玉,蔣池劍,陸 靚
1(國網(wǎng)新源控股有限公司,北京 100761)
2(華東桐柏抽水蓄能發(fā)電有限責(zé)任公司,杭州 310006)
3(南京南瑞信息通信科技有限公司,南京 210003)
隨著物聯(lián)網(wǎng)與各種通信技術(shù)的快速發(fā)展,無線傳感網(wǎng)絡(luò)(Wireless Sensor Network,WSN)開始受到廣泛關(guān)注[1].WSN 作為信息采集的一種重要手段,相比于傳統(tǒng)有線或者人工信息采集優(yōu)勢十分明顯,WSN 可以做到快速部署以及大規(guī)模覆蓋,因此WSN 目前廣泛應(yīng)用于軍事、工業(yè)、農(nóng)業(yè)等多個(gè)領(lǐng)域[2].然而傳感器的壽命完全依賴于電池[3],如果由傳感器因?yàn)殡姵睾谋M而停止工作,那么無線傳感網(wǎng)絡(luò)的信息采集完整度就會受到很大的影響.因此降低WSN的能耗,同時(shí)保證網(wǎng)絡(luò)傳輸質(zhì)量是一個(gè)值得研究的問題.
本文提出了一種適用于密集分布無線傳感器網(wǎng)絡(luò)的數(shù)據(jù)聚合方案,首先利用網(wǎng)格聚類劃分網(wǎng)絡(luò),然后通過模糊強(qiáng)化學(xué)習(xí)選取數(shù)據(jù)聚合節(jié)點(diǎn)并利用果蠅優(yōu)化算法動(dòng)態(tài)定位外部通信節(jié)點(diǎn)降低了無線傳感網(wǎng)絡(luò)的能耗,同時(shí)也保證了較低的丟包率和端到端延遲.
目前關(guān)于無線傳感網(wǎng)絡(luò)國內(nèi)外已有大量相關(guān)學(xué)者進(jìn)行了深入研究.文獻(xiàn)[4]針對節(jié)點(diǎn)覆蓋不均勻的問題,提出了一種自適應(yīng)粒子群優(yōu)化算法.文獻(xiàn)[5]提出了一種利用壓縮感知(HDACS)進(jìn)行分層數(shù)據(jù)聚合的方法,根據(jù)集群的大小,建立多個(gè)壓縮閾值;在不同級別的數(shù)據(jù)收集中,傳輸?shù)男畔⒘勘粌?yōu)化.文獻(xiàn)[6]提出了一種基于模糊邏輯的多層協(xié)議,以提高分布式WSN中數(shù)據(jù)聚合的處理效率.文獻(xiàn)[7]提出了一種基于代理的服務(wù)器系統(tǒng)方法,該方法改善了IoT/CPS 提供程序中異構(gòu)WSN 之間的資源共享.上述的一些研究內(nèi)容中大多沒有考慮數(shù)據(jù)聚合過程中可能存在的一些問題,在WSN 應(yīng)用中,經(jīng)常產(chǎn)生大量的冗余感知數(shù)據(jù)使得數(shù)據(jù)聚合更加耗能[8,9].為了降低能耗,在文獻(xiàn)[10,11]中采用了一種有效的數(shù)據(jù)聚合技術(shù)來控制數(shù)據(jù),根據(jù)網(wǎng)絡(luò)拓?fù)?、網(wǎng)絡(luò)流和服務(wù)質(zhì)量對數(shù)據(jù)聚合過程進(jìn)行分類.文獻(xiàn)[12]將從不同傳感器節(jié)點(diǎn)獲得的數(shù)據(jù)合并后進(jìn)行冗余消除,以減少向匯聚節(jié)點(diǎn)的數(shù)據(jù)傳輸次數(shù).此外還有如EASR (Energy Aware Sink Relocation)[13]、TCBDGA(Tree-Cluster-Based Data-Gathering Algorithm)[14]和FR-EEDG(Fuzzy Reinforcement learning-based Energy-Efficient Data Gathering)[15]等一些數(shù)據(jù)聚合方案,然而這些方案的問題是數(shù)據(jù)的聚合依賴于簇頭和匯聚節(jié)點(diǎn),當(dāng)網(wǎng)絡(luò)大小和節(jié)點(diǎn)密度增加時(shí),它會自動(dòng)最大化能量的利用,從而導(dǎo)致網(wǎng)絡(luò)的生命周期變短.因此為了解決上述問題,本文提出了一種適用于密集分布無線傳感器網(wǎng)絡(luò)的節(jié)能數(shù)據(jù)聚合方案.
本文網(wǎng)絡(luò)節(jié)點(diǎn)模型如圖1所示,將傳感器網(wǎng)絡(luò)區(qū)域的整個(gè)區(qū)域劃分成網(wǎng)格單元簇,再將網(wǎng)格單元中的所有可用節(jié)點(diǎn)中用樹形結(jié)構(gòu)連接,并選擇一個(gè)簇頭進(jìn)行外部數(shù)據(jù)傳輸.圖中的每個(gè)節(jié)點(diǎn)都滿足如下兩個(gè)條件:
圖1 網(wǎng)絡(luò)節(jié)點(diǎn)模型
(1)網(wǎng)絡(luò)中的所有節(jié)點(diǎn)都有類似的配置.
(2)接收和網(wǎng)絡(luò)中所有其他考慮的節(jié)點(diǎn)都是靜態(tài)的,在部署之后,它不能移動(dòng)到網(wǎng)絡(luò)的任何地方.
其中,sensor nodes為傳感器節(jié)點(diǎn),aggregator node為一個(gè)網(wǎng)格簇的數(shù)據(jù)匯聚節(jié)點(diǎn),sink為整個(gè)傳感器網(wǎng)絡(luò)的數(shù)據(jù)匯聚節(jié)點(diǎn)和外部通信節(jié)點(diǎn)(可為網(wǎng)絡(luò)中的任意節(jié)點(diǎn)),為了加以區(qū)分,下文中的相關(guān)節(jié)點(diǎn)都將用英文表示.
2.1.1 網(wǎng)格劃分
要將傳感器網(wǎng)絡(luò)劃分成圖1所示的網(wǎng)格結(jié)構(gòu),需要執(zhí)行下面兩個(gè)步驟:
步驟1.對網(wǎng)絡(luò)區(qū)域進(jìn)行縱向劃分,將其劃分為高為H,寬為W的矩形區(qū)域,用1~n對這些矩形的進(jìn)行編號.
步驟2.將每個(gè)矩形劃分成更小且不相等的區(qū)域,即網(wǎng)格.每個(gè)的位置與數(shù)據(jù)匯聚點(diǎn)之間的距離決定了在這個(gè)矩形中創(chuàng)建的網(wǎng)格的邊界.我們用(m,n)表示第n個(gè)矩形中的第m個(gè)網(wǎng)格,則網(wǎng)格(m,n)的邊界可以由式(1)求出:
其中,l和c用于表示網(wǎng)格線以及網(wǎng)格的列向量,hcl表示網(wǎng)格高度.令第i個(gè)節(jié)點(diǎn)的坐標(biāo)為(a,b),那么在網(wǎng)格劃分結(jié)束后就可以得到節(jié)點(diǎn)所屬于的網(wǎng)格.
2.1.2 網(wǎng)格聚類和簇頭選擇
在每個(gè)網(wǎng)格單元中,聚類和簇頭選擇過程由sink節(jié)點(diǎn)啟動(dòng).Sink 節(jié)點(diǎn)會定期將信標(biāo)消息發(fā)送到sensor節(jié)點(diǎn),sensor 節(jié)點(diǎn)會發(fā)送包含位置信息和能級信息的回復(fù)消息.從sensor 節(jié)點(diǎn)獲得此信息后,sink 節(jié)點(diǎn)根據(jù)最大剩余能量水平因數(shù)選擇簇頭.表1顯示了傳感器節(jié)點(diǎn)的詳細(xì)信息.
表1 傳感器節(jié)點(diǎn)信息
CH (Cluster Header) 表示簇頭,k(i,sink) 表示sink 節(jié)點(diǎn)與第i個(gè)sensor 節(jié)點(diǎn)之間的長度.式(2)用于判斷傳感器節(jié)點(diǎn)能否作為簇頭:
其中,maxID表示為網(wǎng)絡(luò)中存在的節(jié)點(diǎn)的最大ID,Ecur表示節(jié)點(diǎn)i的當(dāng)前能量,Eini表示初始能量,c1和c2表示為從0 到1的任意常數(shù)范圍.
Aggregator 節(jié)點(diǎn)的選擇是在網(wǎng)格簇的簇頭節(jié)點(diǎn)幫助下進(jìn)行的.模糊規(guī)則系統(tǒng)將簇頭距離(Cluster Header DIStance,CH_DIS),鄰域重疊(Neighbourhood OVERlap,NOVER)和代數(shù)連通性(Algebraic Connectivity,AC)視為解決aggregator 節(jié)點(diǎn)適用性的3 個(gè)指標(biāo).
NOVER為直接度量,用于確定兩個(gè)節(jié)點(diǎn)的鏈路之間存在的已連接鄰居的范圍,具有最高NOVER 值的節(jié)點(diǎn)鏈路的起始節(jié)點(diǎn)最有可能成為簇頭節(jié)點(diǎn).節(jié)點(diǎn)鏈接的AC 用于評估節(jié)點(diǎn)到節(jié)點(diǎn)鏈接連接的魯棒性,較高AC 值的節(jié)點(diǎn)鏈接也更有可能成為簇頭節(jié)點(diǎn).模糊邏輯系統(tǒng)根據(jù)三角隸屬函數(shù)公式為輸入指標(biāo)找到相關(guān)的隸屬函數(shù).
模糊化步驟:在此步驟中,模糊器調(diào)用數(shù)據(jù)輸入指標(biāo)的清晰值,并提供給它們相對預(yù)定義的隸屬度函數(shù)以及模糊描述變量.
映射步驟:基于表2中列出的知識庫規(guī)則庫,推理機(jī)根據(jù)CH_DIS,NOVE和AC的模糊值,將其映射到預(yù)定義的規(guī)則,以獲取成為aggregator 節(jié)點(diǎn)的等級,作為模糊輸出值.例如CH_DIS 值為near,NOVER 值為good,AC 值為strong,則節(jié)點(diǎn)等級為acceptable.
表2 節(jié)點(diǎn)知識庫
去模糊化:在去模糊化過程中,使用預(yù)定義的輸出隸屬度函數(shù)將模糊輸出值轉(zhuǎn)換為相關(guān)的數(shù)值.CH_DIS,NOVER和AC的隸屬函數(shù)如圖2~圖4所示.
圖2 CH_DIS 隸屬函數(shù)
圖3 NOVER 隸屬函數(shù)
圖4 AC 隸屬函數(shù)
重心法用于去模糊化.其數(shù)學(xué)定義為:
其中,A表示模糊集,x是樣本元素,而 μA(x)是模糊集的隸屬函數(shù).最終的去模糊值是對應(yīng)于圖5中所示頂點(diǎn)的x坐標(biāo)值,它定義了節(jié)點(diǎn)的能力值.
圖5 節(jié)點(diǎn)去模糊值
整個(gè)網(wǎng)絡(luò)被表示為一個(gè)環(huán)境,所有集群成員節(jié)點(diǎn)都參與學(xué)習(xí).通過交換信標(biāo)消息,每個(gè)節(jié)點(diǎn)與其他節(jié)點(diǎn)一起學(xué)習(xí)整個(gè)網(wǎng)絡(luò)環(huán)境.選擇根節(jié)點(diǎn)是每個(gè)節(jié)點(diǎn)上用于數(shù)據(jù)傳輸和聚合的操作.每個(gè)節(jié)點(diǎn)都有一張Q表,其中每個(gè)Q值(Q(st,r))表示在狀態(tài)st處選擇r作為根節(jié)點(diǎn)的值.
對于每個(gè)動(dòng)作和狀態(tài),每個(gè)節(jié)點(diǎn)都必須維持Q值.其中,狀態(tài)是當(dāng)前節(jié)點(diǎn)的鏈路質(zhì)量.動(dòng)作是將當(dāng)前節(jié)點(diǎn)選作根節(jié)點(diǎn),以達(dá)到與相鄰節(jié)點(diǎn)的最大鏈路質(zhì)量.Q表以5 s的間隔頻繁更新.從接收器節(jié)點(diǎn)接收到信標(biāo)消息后,未選擇節(jié)點(diǎn)的Q表將更新.每個(gè)節(jié)點(diǎn)的Q值在開始時(shí)都設(shè)置為0.從接收器接收到信標(biāo)消息后,初始節(jié)點(diǎn)將與接收器對應(yīng)的Q值更新為:
其中,BQ(r,b)是信標(biāo)消息的接收率.對于Qb(st,r),箭頭左邊表示當(dāng)前值,右邊表示先前值,Nr代表群集內(nèi)節(jié)點(diǎn)的數(shù)量.當(dāng)前狀態(tài)和下一個(gè)狀態(tài)分別表示為st和st+1.
其中,LQr是計(jì)算得出的當(dāng)前節(jié)點(diǎn)到鄰居節(jié)點(diǎn)的鏈路質(zhì)量,而LQ1r是節(jié)點(diǎn)1 可獲得的最大鏈路質(zhì)量.Nc表示特定群集中可用的活動(dòng)節(jié)點(diǎn)集.如果節(jié)點(diǎn)r達(dá)到良好的鏈路質(zhì)量,則獎(jiǎng)勵(lì)為正;否則,獎(jiǎng)勵(lì)為0.對于整個(gè)網(wǎng)絡(luò),經(jīng)過不斷的強(qiáng)化學(xué)習(xí),最終每個(gè)節(jié)點(diǎn)都維護(hù)了一個(gè)學(xué)習(xí)隨迭代次數(shù)波動(dòng)較小的Q矩陣,Q矩陣給出了在不同狀態(tài)下應(yīng)該選定作為根節(jié)點(diǎn)的aggregator 節(jié)點(diǎn).
果蠅優(yōu)化算法(Fruit fly Optimization Algorithm,FOA)的主要目標(biāo)是根據(jù)sink 節(jié)點(diǎn)的先前坐標(biāo)執(zhí)行重定位操作,并且與其他優(yōu)化算法相比,FOA 可以實(shí)現(xiàn)更好的收斂速度.在本文中,FOA 遵循基于氣味的搜索機(jī)制.考慮兩個(gè)部分.第一階段是確定sink 節(jié)點(diǎn)重定位的條件,第二階段是確定sink 節(jié)點(diǎn)移動(dòng)的路徑和重定位距離.重新定位的過程在算法1中進(jìn)行了描述.
算法1.基于FOA的sink 節(jié)點(diǎn)遷移輸入:V (傳感器節(jié)點(diǎn)集合);N (每個(gè)節(jié)點(diǎn)的鄰居節(jié)點(diǎn)集合);B (sink 節(jié)點(diǎn)的初始位置);r(u) (簇頭u 剩余能量)While true?u∈Vr(u)1.,收集剩余的能量 ;2.在每個(gè)傳感器節(jié)點(diǎn)中,通過對傳輸范圍的調(diào)整,確定WSN的通信圖G;?u∈VP*usC(P*us)3.,計(jì)算極限能力路徑和極限能力值 ;4.定義上下左右4 個(gè)可移動(dòng)的方向,一次可以移動(dòng)的距離為20:左移:■■■■■■■■■Xi=Xaxis-20 Yi=Yaxis+0右移:■■■■■■■■■Xi=Xaxis+20 Yi=Yaxis+0上移:■■■■■■■■■■■■■■■■■■Xi=Xaxis+0 Yi=Yaxis+20 Xi=Xaxis+0 Yi=Yaxis-20下移:5.計(jì)算新坐標(biāo)所在網(wǎng)格簇的所有節(jié)點(diǎn)到所有aggregator 節(jié)點(diǎn)的跳數(shù),作為算法中的味道濃度值,跳數(shù)越短,濃度值越大;6.將每個(gè)網(wǎng)格簇中總跳數(shù)最短的節(jié)點(diǎn)標(biāo)記為可行點(diǎn),4 個(gè)節(jié)點(diǎn)的權(quán)值標(biāo)記為w1,w2,w3,w4,遷移路徑為可行路徑;SC*iw1,w2,w3,w4 7.設(shè)為中權(quán)值最大的移動(dòng)候選節(jié)點(diǎn);SC*i 8.If 節(jié)點(diǎn)的味道濃度值小于當(dāng)前sink 節(jié)點(diǎn);Break;SC*i Else 將sink 節(jié)點(diǎn)重定位到 ;End if End while
本文仿真在Matlab中進(jìn)行,分別對本文所提方案的丟包率,端到端時(shí)延以及能量消耗做出了仿真,仿真參數(shù)如表3所示.
表3 仿真參數(shù)
丟包率(Packet Loss Ratio,PLR)定義為從源到目標(biāo)節(jié)點(diǎn)的傳輸以及在目標(biāo)節(jié)點(diǎn)中接收時(shí)發(fā)生的數(shù)據(jù)丟失,是傳輸?shù)臄?shù)據(jù)與接收的數(shù)據(jù)之比,以100 個(gè)節(jié)點(diǎn)為單位,如式(6)所示:
圖6為節(jié)點(diǎn)數(shù)和PLR的關(guān)系,本文所提方案相比EASR的丟包率始終保持在較低水平.因?yàn)槊總€(gè)aggregator 節(jié)點(diǎn)僅覆蓋有限的范圍,并且在網(wǎng)格聚類時(shí)根據(jù)節(jié)點(diǎn)的距離進(jìn)行調(diào)整,從而避免了重疊,節(jié)點(diǎn)被放置在彼此的半徑內(nèi),這導(dǎo)致分組丟失最小化.
圖6 丟包率
端到端延遲由式(7)計(jì)算得出:
端到端延遲的評估如圖7所示.提出的系統(tǒng)比其他現(xiàn)有系統(tǒng)具有最低的延遲.在100 個(gè)節(jié)點(diǎn)中,所提出方案的端到端延遲為2.8 s,而EASR為6 s.
圖7 端到端延遲
WSN中節(jié)點(diǎn)能耗影響數(shù)據(jù)的傳輸以及網(wǎng)絡(luò)效率,因此,它成為至關(guān)重要的問題.令Econ是節(jié)點(diǎn)固定能耗,l2為能量損失率,群集節(jié)點(diǎn)之間的跨度用d表示.數(shù)據(jù)通過放大器傳輸?shù)焦?jié)點(diǎn)的能耗為tamp×l2,其中tamp是用于傳輸數(shù)據(jù)的能量.m表示數(shù)據(jù)長度(位).然后通過以下公式計(jì)算能量:
在圖8中,仿真顯示了能耗評估.通過與EASR 進(jìn)行比較,本文方案的能耗顯著降低,在100 節(jié)點(diǎn)時(shí),本文方案使用50 MJ的能量,而EASR 系統(tǒng)使用150 MJ的能量.
圖8 能量消耗
在所提出的方案中,通過sink 節(jié)點(diǎn)重定位避免了數(shù)據(jù)聚合的復(fù)雜性.因此,防止了重復(fù)的數(shù)據(jù)傳輸.當(dāng)兩個(gè)節(jié)點(diǎn)位于彼此的半徑內(nèi)時(shí),冗余數(shù)據(jù)可能會轉(zhuǎn)發(fā)到aggregator 節(jié)點(diǎn),這會最大化aggregator 節(jié)點(diǎn)的工作負(fù)載,并且浪費(fèi)能源.因此,通過避免重復(fù)數(shù)據(jù),處理操作被最小化,并且聚合器節(jié)點(diǎn)的壽命得以延長.
本文提出了一種基于模糊強(qiáng)化學(xué)習(xí)和果蠅優(yōu)化的WSN 數(shù)據(jù)聚合算法,首先將網(wǎng)絡(luò)區(qū)域劃分成不同層次的網(wǎng)格簇,其次根據(jù)剩余能量選取網(wǎng)格簇的簇頭,接著評估所有可能的數(shù)據(jù)聚合節(jié)點(diǎn),然后采用模糊強(qiáng)化學(xué)習(xí)選取最佳數(shù)據(jù)聚合節(jié)點(diǎn),最后利用果蠅優(yōu)化算法動(dòng)態(tài)定位外部通信節(jié)點(diǎn).本文所述算法適用于大規(guī)模密集型無線傳感器網(wǎng)絡(luò),可應(yīng)用在工業(yè)生產(chǎn)信息采集等場景中.