鄧 鵬, 蘇 娟
(湖南大學 電氣與信息工程學院,湖南 長沙 410082)
如何在無線傳感器網絡(wireless sensor networks,WSNs)工作過程中節省能源,最大化網絡的生命周期,是WSNs重要的研究課題之一[1]。文獻[2]提出一種能量均衡自適應分簇算法,將節點當前的能量作為重要考慮因素,對簇頭進行自適應選擇。文獻[3]提出一種基于粒子群優化(particle swarm optimization,PSO) 的WSNs雙簇頭分簇算法,該算法將選擇出的主副簇頭分配不同的任務,使節點達到了能量負載均勻分布。但兩文獻均存在簇頭隨機分布、直接與基站通信,使簇頭間的能耗分布不均等問題。
針對以上問題,本文利用模糊C均值(fuzzy—C means,FCM)聚類及WSNs雙簇頭分簇路由算法的優點,提出了基于遺傳優化的FCM聚類分簇與最小樹的WSNs路由協議(genetic optimization FCM clustering and minimum tree,GOFCMT)。通過遺傳算法優化FCM使聚類算法跳出局部最優,更合理的生成簇類。采用簇內雙簇頭策略:主簇頭接收融合簇內節點數據并發送給副簇頭;副簇頭接收主簇頭數據并向基站發送數據,均衡簇頭能耗,運用近優最小匯聚樹算法生成副簇頭與基站的通信路徑,使得節點能耗更均衡、網絡生命周期更長。
假設N個傳感器節點隨機分布在M×M區域內,基站處于該區域之外,其他基本假設如下:1)基站位置信息已知;2)所有隨機分布的節點皆為靜態節點;3)每個節點有獨立的ID號和相同的初始能量Eo;4)節點未配置GPS,但在網絡初始化階段,節點可以根據RSSI值計算自身與基站的距離;5)節點可以根據自身與基站的距離調整傳輸半徑。
節點無線傳輸的能耗模型采用一階無線電模型[4],每k比特數據傳輸距離d所需要的能耗ETx(k,d)和接收該數據的能耗ERx(k)為
(1)
ERx(k)=kEel
(2)

本文借鑒低功耗自適應集簇分層型協議(low-energy adaptive clustering hierarchy protocol,LEACH)的分層思想,同時針對LEACH存在隨機選擇簇頭,簇頭節點分布不均,造成簇內數據傳輸時能量利用效率低等缺點, 提出了GOFCMT。
利用遺傳算法優化FCM,使FCM跳出局部最優[5]。遺傳算法優化FCM聚類算法(genetic algorithm optimization FCM clustering algorithm,GAFCM)流程如圖1。

圖1 GAFCM流程
根據式(3)和式(4)在每個簇類里選擇節點作為主副簇頭:
1)選擇主簇頭:因為主簇頭的任務是接收融合簇內普通節點發送的數據,所以需要考慮與簇內其他普通節點之間距離;同時也要考慮自身剩余的能量。
2)決定副簇頭節點:主要考慮副簇頭與基站的距離,以及副簇頭自身的剩余能量[6]。文獻[6]提出在選擇主副簇頭時的適應函數f1和f2如下
f1=αg1+βg2,f2=εg1+δg3,α+β=1,ε+δ=1
(3)
(4)
式中g1為節點ni的能量,使選擇的主副簇頭具有較多的能量,g2為簇內節點到主簇頭節點平均距離的倒數,使主簇頭到簇內節點之間的平均距離最小,m為簇內節點的個數,CH為主簇頭;d(ni,CH)為節點ni到主簇頭節點的距離,g3為副簇頭節點到基站距離的倒數, 使副簇頭到基站節點的距離最小BS為基站,d(ni,BS)為節點ni到基站節點的距離。通過α和β可以調節g1和g2兩個因素在適應值函數f1中所占的比重,通過ε和δ可以調節g1和g3兩個因素在適應值函數f2中所占的比重。
選出的副簇頭代表本簇類,簇類抽象為副簇頭節點,將節點相連接,且節點間的能量花費作為邊權重Cost(i,j),構造出一個具有權重的連通圖,即G=(V,E),V為副簇頭節點和基站集合,E為簇頭間數據傳輸的權重Cost(i,j)。其計算如式(5)所示,其考慮了副簇頭間的發送能量消耗、接收能量消耗、當前剩余能量以及簇頭所代表的簇類規模大小,使得權重計算更加合理。
節點能否成為數據轉發節點,則取決于其Cost(i,j)值,當Cost(i,j)值越大時,數據轉發的概率越低[8]
(5)
式中d(i,j)為副簇頭i和j之間的距離,ETx(l,d(i,j))為副簇頭i向副簇頭j發送數據消耗的能量,ERx為副簇頭j接收副簇頭i的數據消耗的能量,ec為副簇頭當前剩余能量,a,b,c(a+b+c=1)為(0,1)之間的常量,用于調整右式中前后兩項的權重,S為副簇頭i所代表的聚類規模大小。
路由選擇算法綜合考慮了副簇頭節點剩余能量、簇頭節點之間以及簇頭與基站之間的距離、簇的規模大小,使數據傳輸路徑更加的合理,能量消耗更加均衡,提高了WSNs的健壯性,延長了網絡生存周期。
本文為了研究基站在相同的位置下LEACH、基于K-means聚類的能耗均衡路由算法(a balanced energy consumption routing algorithm based on K-means,KBECRA)和GOFCMT算法的性能差異,在MATLAB 2010b中進行了模擬,通過仿真網絡的生命周期和能量消耗來驗證改進的算法的網絡性能。
在模擬參數設置為區域大小為200 m×200 m內,節點數為200個,匯聚節點Sink位置為(250 m,250 m),初始能量為0.5 J,數據包長度為4 000 bit,Eel為5×10-8J,ξfs為10-11J,ξmp為1.3×10-15J,每融合比特電路能耗EDA為5×10-9J,rc為25,d0為87 m[9]。權重參數取以下值:a=0.5,b=0.3,c=0.2,δ=0.6,ε=0.4,β=0.4,α=0.6。
圖2為2種算法在不同輪生成聚類的目標函數值J。可知,未優化的FCM算法的J值隨著輪數的變化而變化,非常不穩定,使得FCM更容易收斂到局部最優解,所產生的聚類非最優,導致聚類的耗能未達到最佳,縮短網絡的生命周期; GOFCMT算法的J值一直非常平穩,每輪均能到達最優目標值,當網絡節點量大時GOFCMT優勢更加明顯,使得產生的聚類為最優,聚類的耗能達到最佳,延長網絡的生命周期。

圖2 2算法適應值對比
圖3為LEACH,KBECRA和GOFAR算法中WSNs生命周期對比。

圖3 算法生命周期對比
可知GOFCMT的優勢得到充分的體現,其首個節點死亡的時間和10 %的節點死亡的時間都遠遠遲于 LEACH和KBECRA,這是因為簇頭和基站之間的通信距離加大,簇頭單次的通信能量損耗也隨之加大,而GOFCMT將通信能耗分散給最小樹上的簇頭,減少了由此產生的影響,另外,從第1個節點死亡到10 %節點死亡的時間跨度表明網絡的能量使用高效。
圖4 為GOFCMT,KBECRA和LEACH的能量消耗,可知, GOFCMT節省了網絡中通信的能量消耗且使能量均勻消耗,和 KBECRA,LEACH相比,具有很明顯的節能優勢。

圖4 算法能量消耗
本文提出GOFCMT,通過FCM聚類算法進行分簇,在簇內則根據不同的適應值選擇主副簇頭,簇間由近優最小匯聚樹實現簇間多跳,較好地平衡了網絡的能量負載,從而達到了延長網絡生命周期的效果,仿真實驗證明算法具有較好的性能,能達到預期效果。