方旺盛,萬良香,王振東
(江西理工大學 信息工程學院,江西 贛州 341000)
無線傳感器網絡[1](wireless sensor networks,WSNs)中考慮到傳感器節(jié)點的能量有限且大部分情況下電池更換困難問題。路由協(xié)議根據節(jié)點間數據傳輸方式有多種分類[2],層次型路由協(xié)議具備更佳節(jié)省能耗的工作模式。
其中,文獻[3]提到CHEF(cluster head election mechani-sm using fuzzy logic in wireless sensor networks)使用節(jié)點剩余能量及節(jié)點局部距離作為模糊推理系統(tǒng)(fuzzy inference system,FIS)的輸入,綜合兩個因素權衡得出簇頭節(jié)點,其能量利用效率相較于LEACH協(xié)議[4]大約高出22.7%;文獻[5,6]針對簇頭選取質量不佳問題,提出節(jié)點能量、節(jié)點距離及節(jié)點度等信息作為模糊邏輯的輸入,以此提高簇頭質量;文獻[7]使用FIS系統(tǒng)實現網絡簇頭選取及成簇的確定,提高選取簇頭節(jié)點質量及成簇效果;文獻[8]對能量異構網絡進行區(qū)域劃分,改進簇頭間通信方式;文獻[9]針對文獻[8]簇頭節(jié)點選舉改進,使用FIS系統(tǒng)添加能量、距離等因素做出改進。以上協(xié)議均利用模糊邏輯模型,權衡節(jié)點各方面條件用于提升簇頭選舉質量或是網絡最終的成簇效果。但是,以上文獻每輪的成簇階段仍然需要通過與基站通信損耗大量能量獲取相關數據信息,且成簇效果仍然存在簇群分布不均、簇成員個數差異大的問題。
因此,本文在LEACH協(xié)議和CHEF協(xié)議基礎上,針對上述問題,提出一種算法GOCF(grid optimization combining fuzzy inference routing protocol for wireless sensor networks)。算法的基本思想是通過在網絡初始階段利用網格對區(qū)域進行劃分,新加入的節(jié)點調整簇群成員變化及網格重心變化,最終形成不再變化的簇群;再結合節(jié)點剩余能量率、節(jié)點距離率、節(jié)點中心率作為模糊推理模型的輸入,提升簇群的簇頭節(jié)點質量。
本文設定傳感器節(jié)點部署于n×n的方形區(qū)域后不可再移動,且基本符合均勻分布模型。此次網絡模型特征如下:①節(jié)點類型分為:普通節(jié)點、簇頭節(jié)點,所有節(jié)點具備相同的靈敏度;②節(jié)點能量:每個節(jié)點能量相同即該網絡為能量同構網絡;③傳輸方式:普通節(jié)點通過簇頭節(jié)點將收集信息發(fā)出,簇頭節(jié)點間通過預備節(jié)點或直接與Sink節(jié)點通信,即單跳或多跳傳輸;④節(jié)點標識號:每個節(jié)點具有固定且唯一的標識號I(I=1,2,3,4,5…,N), 并且每個節(jié)點坐標為NI(XI,YI); ⑤通信無區(qū)分:所有節(jié)點均可相互通信,且均可與Sink節(jié)點直接通信;⑥數據融合:所有節(jié)點均有融合數據的能力,僅當選簇頭節(jié)點可融合成員數據,簇頭節(jié)點或預備節(jié)點均不融合其它多跳傳階段傳遞的數據包;⑦Sink節(jié)點位于傳感器節(jié)點區(qū)域之外,且根據場景不同坐標可變動。
傳感器節(jié)點在無線通信過程中采用的無線通信模型與文獻[10]相同,節(jié)點發(fā)送l比特數據至距離d處位置節(jié)點時所消耗的能量如下所示
(1)
在式(1)中,Eelec表示傳感器節(jié)點發(fā)送數據所需電能,其值取決于數字編碼、調制與濾波,dc表示發(fā)射端與接收端間的距離臨界值,其計算式如下
(2)
當傳輸距離d小于臨界值dc時,節(jié)點間數據傳輸能耗計算采用自由空間模型;否則節(jié)點間傳輸數據的過程中采用多路徑衰減模型,εfs和εmp分別表示兩模型中功率放大所需要消耗的能量,其值取決于傳感器的靈敏度。
層次型路由協(xié)議中選舉的簇頭節(jié)點需要將簇內成員發(fā)送的信息量壓縮為lbits,既避免冗余信息占用信道,又能節(jié)省簇頭節(jié)點發(fā)送信息時所消耗能量。節(jié)點對數據融合所需能耗EDA由式(3)計算可得
EDA(l)=l*5nJ/bit
(3)
GOCF路由算法針對CHEF算法考慮選舉簇頭節(jié)點的因素仍然不夠全面的問題,以及對于LEACH算法中存在成簇效果差,節(jié)點成員個數差異明顯,簇群分布不均衡導致的節(jié)點間能量差異明顯等問題做出了相應改進。在GOCF算法中,網絡初期簇群形成階段,利用網格優(yōu)化簇群效果;簇頭節(jié)點選取利用模糊推理系統(tǒng),為使模型輸入可隨時根據場景變化而更改,將節(jié)點能量、節(jié)點鄰居距離、節(jié)點與基站距離均歸一化后,作為模糊邏輯系統(tǒng)輸入,達到提升簇頭節(jié)點質量的目的。
本文的GOCF算法給出的相應改善方法,其運轉方式與LEACH協(xié)議相同,采用“輪”運轉方式,每輪分為3個階段:簇群分配階段、簇頭競選階段、穩(wěn)定傳輸階段,其示意如圖1所示。
圖1 “輪”運轉方式
2.1.1 簇頭節(jié)點個數G的確定
網絡初始劃分成簇需先確定簇頭節(jié)點個數G,網格數量劃分根據簇頭數劃分,簇頭數的確定根據能耗式(1)、式(2)計算一個簇群的能耗大小ECluster,當能耗最小時的簇頭個數作為網絡最終的簇頭數[11],簇群能耗由簇頭能耗ECH及成員能耗ECM組成,表達式如式(4)、式(5)所示
(4)
(5)
式(4)中,dtoBS為簇頭節(jié)點至基站距離(或Sink節(jié)點距離),dtoCH表示成員節(jié)點至簇頭節(jié)點的距離;NF表示簇群F的成員節(jié)點個數,為方便計算假定每個簇群成員個數均相等,則每簇群成員個數為 (N/G-1), 將該值帶入式(4)與式(5)相加計算得簇群總能耗ECluster約為式(6),如下所示
(6)
為使得每個簇群的能耗值最小則需滿足式(7)條件
(7)
式(7)求導后的最終結果為式(8)
(8)
最終G值根據求導結果確定,其表達式為式(9)
(9)
式中:N為網絡存活節(jié)點數,D為區(qū)域邊長,簇頭節(jié)點數G與區(qū)域邊長、網絡存活節(jié)點數成正比,即存活節(jié)點越多或區(qū)域面積越大簇頭數均增加。
2.1.2 網格優(yōu)化成簇效果
根據式(9)計算出簇頭節(jié)點數G,并將網絡大小為n×n的方形區(qū)域劃分為G個面積大小相同的網格。網格優(yōu)化成簇規(guī)則為:以每個網格重心作為簇群初始成簇的簇群中心點,節(jié)點加入與其距離最近的中心點為簇群成員(節(jié)點與中心距離表示為Discenter),以此形成初始簇群,(若存在節(jié)點與多個網格重心距離相等時,則隨機選取其中一個網格加入即可);每個網格根據加入節(jié)點的坐標計算出該網格區(qū)域新的重心,節(jié)點根據更新的重心坐標選擇距離最近的重心所在網格加入成簇。其中,每個簇群的標識號為F(F=1,2,3…,G), 其重心坐標QF(XF,YF) 變化公式為式(10)
(10)
上述公式中,Counter表示簇群F中的成員個數,由上述過程可知,網格區(qū)域的重心坐標的變化與每次加入簇群的成員直接相關。
GOCF路由的網格優(yōu)化成簇算法為算法1。
Input:NI(XI,YI) and intial center of the mesh
Output:Fclusters
(1)DistributeNnodes randomly and uniformly;
(2)Set up the enviroment with initial center of the mesh;
(3)Node(i) joins closest center to form cluster
(4)the initial center formed;
(5)Flag=true;
(6)while(Flag==true)
(7)Calculate the New Center;
(8)If (d(QF,NI)==min(Discenter))
(9)AddNItoQF;
(10)End if;
(11)If (New center==Initial center)
(12)Flag=false;
(13)end while;
(14)For(x=1;x<=Mesh_number;x++)
(15)Counter=Number of Mesh_nodes[x++];
(16)if (Counter==zero)
(17)Delete the Mesh
(18)End if;
(19)If (Counter<3)
(20)The Node of the Mesh join to the nearest adjacent Mesh
(21)End if;
(22)End for;
2.2.1 模糊推理系統(tǒng)
模糊推理系統(tǒng)(FIS)有效的模仿了人的經驗和決策行為,因此利用該系統(tǒng)選取出更合適的節(jié)點,以發(fā)揮簇頭節(jié)點的作用。FIS基本結構如圖2所示。
圖2 模糊推理系統(tǒng)模型
從圖2可知,模糊邏輯推理系統(tǒng)工作原理是將指定的決策因素作為輸入,先將輸入變量轉化為系統(tǒng)可操作的數據(即模糊化過程),模糊推理器根據模糊規(guī)則庫內設定的規(guī)則輸出綜合了多種決策因素的衡量標準指標,根據輸出列表所列衡量指標判斷某事物所含屬性(即對應決策因素的值),符合的是輸出列表哪項指標,從而判別該事物好壞。
2.2.2 應用FIS系統(tǒng)優(yōu)化簇頭選擇
在GOCF路由算法中,選取出節(jié)點剩余能量率ei、節(jié)點距離率di、節(jié)點中心率zi,作為FIS系統(tǒng)的輸入。
ei計算如式(11)所示
(11)
di計算如式(12)所示
(12)
zi計算如式(13)所示
(13)
式(13)中,同理,節(jié)點中心率利用節(jié)點i與所在簇群內鄰居節(jié)點距離disij之和與此簇群內某節(jié)點Nq(網格內任意節(jié)點均可能)與鄰居節(jié)點距離disqj之和最大值成反比,節(jié)點i與鄰居節(jié)點距離之和越小,則表明其位置更偏向此塊區(qū)域中心處,因此稱zi為節(jié)點中心率。
綜上述知,輸入決策因素分別為:節(jié)點剩余能量率、節(jié)點距離率、節(jié)點中心率,通過FIS系統(tǒng)輸出節(jié)點當選為簇頭節(jié)點的機會值:Chancei作為衡量標準。FIS系統(tǒng)決策因素的隸屬度函數如圖3所示,其輸入決策因素的模糊語言變量的隸屬度函數均服從梯形分布。其中,節(jié)點剩余能量率分別用:Low(低)、Medium(中)、High(高)這3種模糊語言變量表述,如圖3(a)所示;節(jié)點距離率使用:Close(近)、Average(中等)、Far(遠)這3種模糊語言變量表述,如圖3(b)所示;節(jié)點中心率的模糊語言變量用:Nearby(近)、Medium(中)、Faraway(遠)分別表述,如圖3(c)所示。
圖3 決策因素的隸屬度函數
輸入決策因素轉化為模糊語言變量后,通過模糊推理器使用模糊邏輯規(guī)則庫內的規(guī)則判斷得出相應條件下的節(jié)點成為簇頭的機會值Chancei,規(guī)則庫見表1。
模糊推理器利用表1內的規(guī)則得知衡量節(jié)點成為簇頭節(jié)點的模糊指標值為: {Very Best,Best,Far Better,Better,Good,Fair,Bad,Worse,Worst}, 其輸出隸屬度函數如圖4所示。
表1中指標值是模糊變量,根據文獻[12]可知,輸出模糊變量需去模糊化,最終每個節(jié)點得到一個確切的數值,即可衡量該節(jié)點成為簇頭節(jié)點的概率。語言變量去模糊化如式(14)所示
(14)
式中:μA(x) 表示語言變量所服從的隸屬度函數,基本的隸屬度函數有,Γ分布、柯西分布、矩形分布、正態(tài)分布等,GOCF協(xié)議中利用梯形分布作為變量隸屬度函數,該分布是最常使用的模型,既可以轉化為三角分布,且存在多個變化區(qū)段更好地展示語言變量的變化狀態(tài)。
2.2.3 簇頭最終確定
根據上述2.2.2小節(jié)內容可知,節(jié)點將自身的剩余能量率、距離率、中心率的確切數值傳遞至FIS系統(tǒng)作為輸入,經過模糊化、模糊推理器、去模糊化操作后,最終節(jié)點可以獲得成為簇頭節(jié)點的確切數值。節(jié)點i競選先獲取鄰居節(jié)點列表,即通過節(jié)點i所屬網格F的標記,若節(jié)點j標記值為F,標記相同則表明該節(jié)點為鄰居節(jié)點,而后兩節(jié)點比較機會值,機會值更大的繼續(xù)尋找鄰居節(jié)點競選簇頭節(jié)點,機會值更小的則退出競選,以此獲取最終的簇頭節(jié)點。
簇頭節(jié)點確定后其數據傳輸方式仍舊采用TDMA方法,給每個簇成員分配一個時隙,每個節(jié)點在對應時隙傳輸數據包,最終由簇頭節(jié)點融合相似數據包后直接傳送至Sink節(jié)點(基站)處。
此次模擬仿真實驗應用MATLAB R2017B仿真軟件對LEACH路由協(xié)議、CHEF路由協(xié)議、DUCF路由協(xié)議[13]、GOCF路由協(xié)議,4組協(xié)議進行實驗效果對比。仿真環(huán)境為200×200 m的方形區(qū)域,假定區(qū)域內節(jié)點均勻分布,其它參數見表2。
表1 GOCF模糊語言變量規(guī)則庫
圖4 Chance值隸屬度函數
表2 仿真參數的設置
該部分仿真實驗展示GOCF協(xié)議與LEACH協(xié)議、CHEF協(xié)議的成簇效果,其中CHEF協(xié)議與GOCF均使用了FIS系統(tǒng)競選簇頭節(jié)點,可以直觀對比網格優(yōu)化成簇方法對路由協(xié)議簇群分布的改善情況。
3.1.1 GOCF成簇效果
根據表2參數設置的網絡參數,當區(qū)域內總結點數為200時,經式(10)計算得區(qū)域內最佳簇頭數為9個,因此將區(qū)域劃分為9個大小相同的方形區(qū)域,網格重心作為初始簇群中心點,節(jié)點加入成簇形成初始簇群,如圖5、圖6所示。
圖5 網絡初始劃分
圖6 網絡初始成簇
圖5、圖6中,虛線用于模擬網格線,網絡劃分為大小相等的虛擬網格,將網格分成9個簇,每個簇使用不同的標記區(qū)分。
重心作為初始的簇群中心點,利用網格的初始劃分可以保證簇群的分布位置均勻,而后簇群變化隨著加入的節(jié)點改變了簇群重心,簇群隨之重新形成,直至簇群沒有新的節(jié)點加入為止,最終效果如圖7所示。
圖7 網絡最終成簇
由圖7可看出,以不同標記可以區(qū)分的簇群,圖中初始簇群中心點與最終簇群中心點的位置偏移并不大,最終的簇群不僅位置分布勻稱,且簇群的成員個數也差異隨著迭代過程而減小,最終呈現簇群成員個數為幾乎均勻狀態(tài)。
3.1.2 多算法簇頭與成簇效果對比實驗分析
為更好衡量此次的GOCF算法的聚簇效果,將其成簇效果與LEACH協(xié)議及CHEF協(xié)議的成簇效果進行對比,每個算法中隨機抽取4輪簇首分布及其成簇效果圖,如圖8~圖10所示。
圖8、圖9均分別隨機選取LEACH協(xié)議、CHEF協(xié)議中沒有死亡節(jié)點時抽取的隨機4輪聚簇效果。其中,圖8表現出LEACH協(xié)議的聚簇情況存在簇成員個數差異明顯,簇群分布散亂,容易造成節(jié)點間剩余能量差異大,網絡結構不穩(wěn)定的問題;圖9中CHEF協(xié)議與LEACH協(xié)議相比較,簇群分布情況有所改進,其簇群于網絡各處均有分布,但是仍然存在簇群間個數差異明顯問題;圖10中,GOCF協(xié)議明顯改善了以上問題,其簇頭和簇群位置均勻分布于網絡各處,且簇群規(guī)模基本相同,這樣的簇群不容易造成能量空洞,節(jié)點間能耗更均衡,有利于延長網絡生命周期。
網絡隨輪次運轉,節(jié)點能耗不斷下降,3個關鍵指標指示網絡的性能是否穩(wěn)定,分別是:FND(首個死亡節(jié)點)、HND(一半節(jié)點死亡)、AND(所有節(jié)點死亡),上述指標所連接線斜率的平緩或陡峭可以展示出節(jié)點間能耗是否均衡,當線呈現平緩時,能耗更均衡,反之則節(jié)點間容易造成能量空洞。此次實驗將LEACH協(xié)議、CHEF協(xié)議、DUCF協(xié)議、GOCF協(xié)議進行比較,為去除簇頭節(jié)點數對此次對比實驗的影響,所有協(xié)議的簇頭節(jié)點數均設置相同數目,其死亡節(jié)點輪次關系如圖11所示。
圖8 LEACH協(xié)議成簇效果
圖9 CHEF協(xié)議成簇效果
圖10 GOCF成簇效果
圖11 FND、HND、AND輪次關系
由圖11可知,LEACH協(xié)議與CHEF協(xié)議的死亡節(jié)點連接線斜率較大,說明協(xié)議的節(jié)點間能耗差異明顯,DUCF協(xié)議死亡節(jié)點連接線的斜率更小,而GOCF協(xié)議連接線的斜率最平緩,可以驗證GOCF協(xié)議能夠更好協(xié)調節(jié)點間的能耗使其均衡。
圖12展示出各協(xié)議隨輪次變化產生的死亡節(jié)點關系圖。當運行至500輪時可以看出,LEACH協(xié)議、CHEF協(xié)議已有接近一半的節(jié)點死亡,DUCF協(xié)議與GOCF僅少于20個節(jié)點死亡,說明DUCF協(xié)議與GOCF協(xié)議都能有效延長了網絡生命周期;當輪次運行至1000輪次時,DUCF協(xié)議的節(jié)點死亡數目接近原數目的75%,而GOCF協(xié)議此時的死亡節(jié)點數仍舊沒有過半,由此可以得出GOCF協(xié)議在均衡節(jié)點能耗及延長網絡生命周期方面均有極大的改善,有利于網絡長時間的運轉。
圖12 死亡節(jié)點與輪次關系
節(jié)點剩余能量可以判斷節(jié)點的能量利用率的好壞,總剩余能量由各節(jié)點剩余能量疊加而成,其可以判斷網絡整體的能量利用率如何,如圖13所示。
圖13 總剩余能量與輪次關系
圖13中顯示出LEACH協(xié)議與CHEF協(xié)議運行500輪時,總能量已經不足20 J,說明兩個協(xié)議的能量利用率低;DUCF協(xié)議相較于前面兩個協(xié)議,運行至900輪左右網絡總能量才下降至此高度,提升了近1.8倍的能量利用率;GOCF協(xié)議相對于前面3個協(xié)議運行至1200輪左右才下降至此低能量水平狀態(tài),能量利用率相較于LEACH協(xié)議、CHEF協(xié)議提升了兩倍多,相較于DUCF協(xié)議也提升了1.3倍左右。由此可以得出GOCF協(xié)議性能明顯更佳。
本文為改進網絡簇群分布和簇成員均衡達到提高網絡生命周期目的,提出了網格優(yōu)化和模糊邏輯相結合的WSNs路由協(xié)議——GOCF協(xié)議。利用網格和簇群重心來共同作用于簇群的形成,其形成的簇群有效改善了能量空洞的問題;利用模糊推理系統(tǒng)幫助競選簇頭節(jié)點,考慮到模糊推理系統(tǒng)的重復利用性,改進了輸入變量的形式,全面考慮節(jié)點能量和節(jié)點位置因素,提升了網絡成簇性能,也延長了網絡生命周期。最終,仿真結果驗證GOCF協(xié)議相較于LEACH協(xié)議、CHEF協(xié)議、GOCF協(xié)議,其節(jié)點能耗性能明顯更優(yōu)。