閻新芳,張 漢,李 良,古曉輝
(1. 鄭州大學(xué)信息工程學(xué)院,鄭州 450001;2. 河南省機(jī)械設(shè)計(jì)研究院有限公司,鄭州 450052)
無(wú)線傳感網(wǎng)(wireless sensor network,WSN)具有低成本、低功耗、準(zhǔn)靜態(tài)、自組織等特點(diǎn),網(wǎng)絡(luò)節(jié)點(diǎn)一次性播撒后,節(jié)點(diǎn)能量通常不可再生.因此降低網(wǎng)絡(luò)能量消耗、延長(zhǎng)網(wǎng)絡(luò)生存期成為傳感網(wǎng)路由協(xié)議的首要設(shè)計(jì)目標(biāo)[1-2].而分簇路由算法由于其能量高效和易于維護(hù)擴(kuò)展等特點(diǎn)被廣泛研究和應(yīng)用[3-6].文獻(xiàn)[6]提出了一種基于能量感知的有網(wǎng)關(guān)的多級(jí)簇樹(shù)(energy-aware multilevel clustering tree with gateway,EAMCT-G)算法,它利用圖論中具有極大權(quán)的極大獨(dú)立集概念,讓剩余能量較大的節(jié)點(diǎn)優(yōu)先作為簇頭,并在簇成員中選擇一些網(wǎng)關(guān)節(jié)點(diǎn)作為中繼轉(zhuǎn)發(fā),有效避免了因簇頭節(jié)點(diǎn)之間距離過(guò)大而導(dǎo)致能耗增加的問(wèn)題,降低了節(jié)點(diǎn)間通信的能耗,從而延長(zhǎng)了整個(gè)網(wǎng)絡(luò)的壽命.
但 EAMCT-G算法中某些簇頭會(huì)因成員過(guò)多而過(guò)早死亡.為解決這個(gè)問(wèn)題,筆者在 EAMCT-G算法的基礎(chǔ)上,基于負(fù)載均衡的思想對(duì)簇成員加入簇的選擇策略進(jìn)行改進(jìn),使得各簇頭負(fù)載比較均衡,從而能進(jìn)一步延長(zhǎng)網(wǎng)絡(luò)的生存期,同時(shí)也能提高傳送數(shù)據(jù)的效率,使算法可以應(yīng)用于規(guī)模較大的傳感網(wǎng).
根據(jù)圖論中獨(dú)立集的概念,以剩余能量作為節(jié)點(diǎn)權(quán)值,選用權(quán)值大的一組節(jié)點(diǎn)構(gòu)成一個(gè)具有極大權(quán)的極大獨(dú)立集,同時(shí)這個(gè)極大獨(dú)立集中的節(jié)點(diǎn)也構(gòu)成了極小支配集,以這樣一組支配節(jié)點(diǎn)作為簇頭,并形成相應(yīng)的簇,就可保證全網(wǎng)的覆蓋性;分簇后,利用圖論中根樹(shù)的概念,先將傳感器網(wǎng)絡(luò)中的基站作為樹(shù)根加入簇樹(shù)集合,再將某些簇成員節(jié)點(diǎn)作為連接相鄰 2個(gè)簇頭節(jié)點(diǎn)的網(wǎng)關(guān)節(jié)點(diǎn),然后利用這些網(wǎng)關(guān)節(jié)點(diǎn)逐級(jí)將所有簇頭都加入到簇樹(shù)中,就生成了有網(wǎng)關(guān)的多級(jí)簇樹(shù)結(jié)構(gòu).EAMCT-G 算法[6-8]在保證全網(wǎng)覆蓋的基礎(chǔ)上使簇頭的選擇更加合理,并且通過(guò)引入網(wǎng)關(guān)節(jié)點(diǎn)彌補(bǔ)了簇頭間通信距離過(guò)大增加傳輸能耗的問(wèn)題;它還是一種分布式、異步并行算法,只需局域信息,便于維護(hù)更新.文獻(xiàn)[6]中已通過(guò)仿真驗(yàn)證了該算法具有有效的消息和時(shí)間復(fù)雜度.
但 EAMCT-G算法存在如下問(wèn)題:若是節(jié)點(diǎn)的能量大于所有鄰居節(jié)點(diǎn),它就會(huì)首先被選舉為簇頭,同時(shí)其一跳范圍內(nèi)的所有節(jié)點(diǎn)就會(huì)都加入以該節(jié)點(diǎn)為簇頭的簇中,這樣就會(huì)造成該節(jié)點(diǎn)的簇成員數(shù)量過(guò)大,形成熱節(jié)點(diǎn)(hot spots)[9].過(guò)重的負(fù)載壓力會(huì)嚴(yán)重增加熱節(jié)點(diǎn)在數(shù)據(jù)融合和路由轉(zhuǎn)發(fā)方面的能量消耗,致使熱節(jié)點(diǎn)提前死亡,縮短網(wǎng)絡(luò)壽命.本文基于這方面考慮提出 EAMCT-G優(yōu)化算法,即分簇結(jié)束后,熱節(jié)點(diǎn)的簇成員要經(jīng)過(guò)一個(gè)“挑選”的過(guò)程.在新的簇成員選擇策略中,通過(guò)引入距離和能量的權(quán)值來(lái)精簡(jiǎn)熱節(jié)點(diǎn)的成員數(shù)目,從而減輕熱節(jié)點(diǎn)的負(fù)載壓力,使網(wǎng)絡(luò)內(nèi)各簇負(fù)載均衡,有效避免某些簇頭節(jié)點(diǎn)因能量損耗過(guò)快而較早死亡的情況.
假設(shè)無(wú)線傳感網(wǎng)所有節(jié)點(diǎn)都是同構(gòu)的,根據(jù)文獻(xiàn)[3]所示的能量模型可知每采集一輪數(shù)據(jù)簇頭節(jié)點(diǎn) i的能量損耗為
式中:ECH(i)包括接收簇成員信息、數(shù)據(jù)融合以及發(fā)送已融合信號(hào)至上級(jí) 3部分的耗能;nmember(i)為簇頭i的簇成員總數(shù);l為數(shù)據(jù)包長(zhǎng)度;Eelec為發(fā)送或接受單位bit數(shù)據(jù)的能耗;EDA為簇頭融合單位bit數(shù)據(jù)的能耗;d為簇頭i與上級(jí)節(jié)點(diǎn)的距離;ε為信號(hào)放大器的放大倍數(shù);k為常數(shù),由選擇的無(wú)線信道決定取值.相對(duì)距離短時(shí),采用自由空間信道,取ε=10 pJ/(bit·m-2),k=2;距離較遠(yuǎn)時(shí)可采用多徑衰落信道,取ε=0.001,3,pJ/(bit·m-2),k=4.因 EAMCT-G算法采用多跳方式傳輸數(shù)據(jù),傳輸距離較近,采用自由空間信道.
每一輪每個(gè)簇成員節(jié)點(diǎn)的能量損耗為
假如網(wǎng)絡(luò)中各簇負(fù)載均衡,則各簇簇成員數(shù)趨于相同,各簇頭消耗能量也趨于相等,可得到每一輪簇頭總耗能和所有節(jié)點(diǎn)總耗能分別為
式中:N為節(jié)點(diǎn)總數(shù);CHn 為所形成的簇頭總數(shù).如果N和nCH已經(jīng)確定,可得
式中 Er為剩余能量.V隨 Er的增大而增大,隨 Σ d2的增大而減小,相比單一權(quán)值,綜合權(quán)值能更精確地反映能量的消耗情況.在對(duì)EAMCT-G算法的優(yōu)化中,使用綜合權(quán)值 V兼顧按剩余能量大小進(jìn)行分簇的初衷,同時(shí)既可平衡各簇負(fù)載,又使離簇頭較遠(yuǎn)的簇成員優(yōu)先進(jìn)行優(yōu)化,進(jìn)一步減小 Σ d2,降低能量消耗.
在引入綜合權(quán)值后出現(xiàn)了另一個(gè)問(wèn)題:某些原簇成員較多的簇頭在優(yōu)化后可能簇成員變得很少,而另一些原簇成員較少的簇頭由于新接收的簇成員個(gè)數(shù)太多而使簇變得臃腫.上述情況可以通過(guò)設(shè)定雙優(yōu)化閾值來(lái)避免.假設(shè) 2個(gè)閾值 T1和 T2,規(guī)定只有nmember( i)>T1的簇才進(jìn)行優(yōu)化;同時(shí)只有nmember(i) ≤T2的簇才接收新的簇成員.通過(guò)設(shè)定雙優(yōu)化閾值,可以有效避免優(yōu)化后可能出現(xiàn)的新的負(fù)載不均衡的情況(仿真中取 T1= 0 .9 N / nCH,T2= 0 .6 N / nCH).
在初始階段,仍采用文獻(xiàn)[6]中成簇 CH(v)消息和入簇 member(v,u)2個(gè)消息來(lái)完成.在開(kāi)始分簇的時(shí)候,各節(jié)點(diǎn)首先與自己周?chē)墓?jié)點(diǎn)交互 hello信息,包括權(quán)值信息、ID號(hào)和根據(jù)能量損耗計(jì)算出相鄰節(jié)點(diǎn)間的距離,并進(jìn)行相應(yīng)的存儲(chǔ).之后根據(jù)EAMCT-G算法進(jìn)行分簇,將簇頭存儲(chǔ)在CH集合中.
待分簇結(jié)束后,每個(gè)簇頭發(fā)消息通報(bào)自己的簇成員,根據(jù)所給定的優(yōu)化閾值 T1、T2,成員節(jié)點(diǎn)設(shè)定臨時(shí)集合 CHtemp,并將所有 nmember( i)>T2的簇頭節(jié)點(diǎn)存入 CHtemp中.然后簇頭進(jìn)行判斷:①如果 nmember(i)≤T1,則該簇不進(jìn)行優(yōu)化;②如果 nmember(i)>T1,則該簇進(jìn)行如下優(yōu)化操作.
簇成員節(jié)點(diǎn)到自身的平均距離和當(dāng)前所有成員節(jié)點(diǎn)的平均能量分別為式中:(,)d j i為節(jié)點(diǎn) j到節(jié)點(diǎn) i間的距離;r()E j為節(jié)點(diǎn)j的剩余能量.進(jìn)而得到簇內(nèi)所有成員節(jié)點(diǎn)的綜合權(quán)值為
簇頭節(jié)點(diǎn) i向其簇成員節(jié)點(diǎn) j廣播 Vaverage信息.成員節(jié)點(diǎn) j在得到 Vaverage信息后判斷:如果節(jié)點(diǎn) j的Vj≥Vaverage,則該成員仍保留在原簇中;否則,設(shè)leader(j) = 0 (leader(j) = 0 ,1,2分別代表節(jié)點(diǎn) j狀態(tài)為未確定、簇頭、簇成員),并在自己一跳范圍內(nèi),搜索鄰居節(jié)點(diǎn)中的簇頭節(jié)點(diǎn)并進(jìn)行如下操作.
(1)若鄰居節(jié)點(diǎn)中沒(méi)有除CHtemp外的其他簇頭節(jié)點(diǎn),則該成員仍保留在原簇中,并設(shè)置節(jié)點(diǎn)的狀態(tài)leader() 2j= .
(2)若鄰居節(jié)點(diǎn)中有除 CHtemp外的其他簇頭節(jié)點(diǎn),則節(jié)點(diǎn)j就將除CHtemp外距離自己最近的簇頭節(jié)點(diǎn) k作為自己的簇頭,并發(fā)送入簇信息 member(j,k),同時(shí)設(shè)置節(jié)點(diǎn)的狀態(tài)leader()2j= ;若出現(xiàn)兩簇頭距離相同的情況,則選擇剩余能量較大者加入;剩余能量也相同時(shí),加入ID號(hào)小的簇頭.
結(jié)束分簇優(yōu)化階段,進(jìn)入第2階段有網(wǎng)關(guān)的簇樹(shù)生成,此后按照EAMCT-G算法進(jìn)行.
假設(shè)在一個(gè)100 m× 100 m的區(qū)域內(nèi)隨機(jī)拋灑100個(gè)傳感器節(jié)點(diǎn),采用文獻(xiàn)[3]所示能量模型,設(shè)參數(shù)l= 1 28bit/packet ,Eelec= 5 0 nJ/bit ,EDA= 5 nJ/bit,最大通信半徑 R = 2 0 m.假定節(jié)點(diǎn)發(fā)出的消息都能被其鄰居節(jié)點(diǎn)正確收到,不考慮重傳問(wèn)題且節(jié)點(diǎn)間不存在單向鏈路.優(yōu)化前后的分簇效果如圖1所示.
由圖 1(a)和(b)對(duì)比可以看出:簇頭 91、28、29、35、56、61的簇成員數(shù)大于 T1值,要進(jìn)行優(yōu)化;而簇頭 91、28、29、35、56、59、61、64、3 的簇成員數(shù)大于T2值,不再接受新的簇成員.圖1(b)中的黑色圓形節(jié)點(diǎn) 16、30、36、37、82、33、74、90、53、4、7、49、69、12、41、76按照優(yōu)化規(guī)則重新選擇了簇頭節(jié)點(diǎn),而灰色圓形節(jié)點(diǎn) 8、22、40、57、80、81、97 盡管需要進(jìn)行優(yōu)化,但由于鄰居節(jié)點(diǎn)中沒(méi)有簇成員數(shù)不大于 T2的簇頭節(jié)點(diǎn),所以依然保留在原來(lái)的簇中.特例中 18個(gè)簇優(yōu)化后各簇情況與原算法對(duì)比如圖2所示.
圖1 優(yōu)化前后的分簇效果Fig.1 Clustering results before and after optimization
圖2 優(yōu)化前后各簇內(nèi)負(fù)載和能量分布情況Fig.2 Load and energy in each cluster before and after optimization
經(jīng)過(guò)比較可以看出,無(wú)論是簇頭負(fù)載還是簇成員平均能量,優(yōu)化后線形的波動(dòng)幅度都比優(yōu)化前更?。@說(shuō)明在特例這種情況下,通過(guò)綜合權(quán)值對(duì)簇成員較多的簇進(jìn)行優(yōu)化,讓一些權(quán)值小的節(jié)點(diǎn)分散到其他簇的策略可以減小各簇頭的負(fù)載壓力,各簇間能量分布也更加均衡.
負(fù)載平衡因子(load balance factor,LBF)[10]定義為簇內(nèi)成員節(jié)點(diǎn)數(shù)(不包括簇頭)的方差的倒數(shù),即
式中 u = ( N - nCH) /nCH為網(wǎng)絡(luò)中每個(gè)簇的平均成員數(shù).使用 LBF可以量化簇的負(fù)載平衡度,LBF越大負(fù)載平衡度越好.
按特例假定場(chǎng)景將節(jié)點(diǎn)隨機(jī)拋灑 100次,LBF的分布如圖3所示.
經(jīng)計(jì)算可得優(yōu)化前和優(yōu)化后的 LBF平均值分別為 0.057,4和 0.069,5,經(jīng)過(guò)優(yōu)化的 LBF為未優(yōu)化時(shí)的1.2倍.這說(shuō)明優(yōu)化算法能夠有效平均各簇頭的負(fù)載壓力,使熱節(jié)點(diǎn)出現(xiàn)的幾率大大降低,從而避免了原算法出現(xiàn)的個(gè)別簇頭節(jié)點(diǎn)因簇成員過(guò)多能量消耗過(guò)快的情況.
圖3 優(yōu)化前后的LBF分布Fig.3 LBF before and after optimization
定義從算法開(kāi)始運(yùn)行到第1個(gè)節(jié)點(diǎn)死亡之間的時(shí)間為網(wǎng)絡(luò)生存期,網(wǎng)絡(luò)生存期同樣可以以數(shù)據(jù)采集總輪數(shù)表示.圖 4為節(jié)點(diǎn)初始能量 E = 0 .5 J 時(shí),EAMCT-G及其優(yōu)化算法定期輪換簇頭對(duì)網(wǎng)絡(luò)生存期所產(chǎn)生的影響.可以看出,不進(jìn)行輪換的情況下,優(yōu)化后生存期為 4,710輪,與優(yōu)化前的 4,235輪相比提高了10%;當(dāng)簇頭輪換頻率在 1~2,200輪/次之間時(shí),優(yōu)化后的生存期明顯比優(yōu)化前數(shù)值更高,平均提高10%左右,這是因?yàn)閮?yōu)化算法所引入的綜合權(quán)值和雙優(yōu)化閾值能有效平衡各簇能量消耗,避免了因某些簇頭負(fù)載過(guò)大導(dǎo)致能量消耗過(guò)快而過(guò)早死亡情況的發(fā)生;當(dāng)簇頭輪換頻率在2,200~4,500輪/次之間時(shí),優(yōu)化后的生存期與優(yōu)化前相比沒(méi)有明顯優(yōu)勢(shì),這說(shuō)明合理設(shè)定簇頭輪換頻率也可達(dá)到延長(zhǎng)網(wǎng)絡(luò)生存期的目的;之后,當(dāng)輪換頻率大于不輪換情況下的生存期時(shí),輪換機(jī)制不再起作用,2條生存期曲線都呈直線狀態(tài).
圖4 優(yōu)化前后簇頭輪換對(duì)生存期的影響Fig.4 Effects of cluster-head rotation frequency on lifetime before and after optimization
已知當(dāng)前網(wǎng)絡(luò)連通所需最小的 R=18,m,簇頭輪換頻率設(shè)定為1,500輪/次,圖5為節(jié)點(diǎn)最大通信半徑R變化對(duì)網(wǎng)絡(luò)生存期的影響.
圖5 優(yōu)化前后最大通信半徑對(duì)生存期的影響Fig.5 Effects of maximal communication radius on lifetime before and after optimization
可以看到當(dāng)18 m ≤ R ≤ 3 5 m 時(shí),優(yōu)化后的生存期較優(yōu)化前保持相對(duì)的穩(wěn)定高值,生存期平均提高了15%左右;當(dāng) R >3 5 m時(shí),優(yōu)化后的生存期較優(yōu)化前沒(méi)有明顯優(yōu)勢(shì)且兩者都減小后趨于平緩,這是因?yàn)殡S著 R增大,d的上限增大,節(jié)點(diǎn)間交互信息的能耗必然增加[3],且形成簇?cái)?shù)也會(huì)減少,此時(shí)進(jìn)行優(yōu)化不但效果不好,甚至還可能耗費(fèi)更多的能量,同時(shí)簇?cái)?shù)減少還會(huì)造成簇成員數(shù)增加,簇頭能量消耗更大.由此可知在保持網(wǎng)絡(luò)連通的前提下,減小節(jié)點(diǎn)發(fā)射功率可以延長(zhǎng)網(wǎng)絡(luò)壽命.
優(yōu)化算法的消息復(fù)雜度為 O(n),時(shí)間復(fù)雜度為O(n).
證明 設(shè)網(wǎng)絡(luò)中有n個(gè)節(jié)點(diǎn),BS首先向鄰居節(jié)點(diǎn)中的簇頭節(jié)點(diǎn)作為啟動(dòng)節(jié)點(diǎn).當(dāng)某節(jié)點(diǎn)簇成員數(shù)大于 T時(shí),才會(huì)運(yùn)行優(yōu)化算法,并且發(fā)送的消息只是增加一個(gè)綜合權(quán)值V,消息的復(fù)雜度仍然是O(n).
由于該算法是分布式、異步、并行的算法,基站鄰居中的簇頭節(jié)點(diǎn)都可以作為啟動(dòng)節(jié)點(diǎn),因此算法可以并行運(yùn)算,最終的反饋時(shí)間也只和生成簇樹(shù)的高度有關(guān),從終端的葉子節(jié)點(diǎn)反饋到基站結(jié)束算法的運(yùn)行時(shí)間為樹(shù)高H(0<H<n).另外,在運(yùn)行算法前,相鄰節(jié)點(diǎn)已經(jīng)通過(guò)相互交換信息得到自己鄰居的權(quán)值信息,所以,每一個(gè)節(jié)點(diǎn)在選擇簇頭的時(shí)候只需進(jìn)行簡(jiǎn)單比較,不再需要進(jìn)行額外的運(yùn)算.這樣,n+1就是算法的最大運(yùn)行時(shí)間,因此,O(n)仍然是不變的.
通過(guò)分析 EAMCT-G算法中個(gè)別簇頭負(fù)載過(guò)重的原因,引入兼顧剩余能量和距離的綜合權(quán)值對(duì)簇成員選擇策略進(jìn)行進(jìn)一步改進(jìn),一旦出現(xiàn)簇成員數(shù)目臃腫的簇,就對(duì)該簇的成員進(jìn)行優(yōu)化,使某些綜合權(quán)值小的簇成員節(jié)點(diǎn)加入離自己最近的其他簇頭,從而使各簇負(fù)載均衡;同時(shí)引入雙優(yōu)化閾值,分別對(duì)要優(yōu)化的簇和要接收新成員的簇進(jìn)行相應(yīng)限制,避免優(yōu)化后可能出現(xiàn)的新的負(fù)載不均衡情況.仿真實(shí)驗(yàn)表明,優(yōu)化算法能有效提高網(wǎng)絡(luò)的負(fù)載平衡度,在簇頭輪換和最大通信半徑不同的情況下,與原算法相比在相當(dāng)大的范圍能有效提高網(wǎng)絡(luò)的生存期.EAMCT-G優(yōu)化算法屬于分布式、異步并行算法,具有與原算法相同的消息復(fù)雜度和時(shí)間復(fù)雜度,可適用于較大規(guī)模的無(wú)線傳感網(wǎng)絡(luò).
[1]Akkaya K,Younis M. A survey on routing protocols for wireless sensor networks [J]. Ad Hoc Networks,2005,3(3):325-349.
[2]Al-karaki J N,Kamal A E. Routing techniques in wireless sensor networks:A survey [J].IEEE Wireless Communication,2004,11(6):6-28.
[3]Heinzelman W B,Chandrakasan A P,Balakrishnan H.An application- specific protocol architecture for wireless microsensor network [J].Wireless Communications,2002,1(4):660-670.
[4]Manjeshwar A,Agrawal D P. TEEN:A routing protocol for enhanced efficiency in wireless sensor networks[C]//IEEE International Proceedings of 15,th Parallel and Distributed Processing Symposium.California,USA,2001:2009-2015.
[5]Lindsey S,Raghavendra C S. PEGASIS:Powerefficient gathering in sensor information systems [C]//IEEE International Conference on Communications,New York,USA,2002:1125-1130.
[6]An Na,Yan Xinfang,Zhu Yufang,et al. A virtual backbone network algorithm based on the multilevel cluster tree with gateway for wireless sensor networks[C]//Proceedings of the IET International Communication Conference on Wireless Mobile and Sensor Networks.Shanghai,China,2007:462-465.
[7]閻新芳,劉愛(ài)琴,楊 挺. 基于極小獨(dú)立支配集的MANET虛擬骨干網(wǎng)算法[J]. 電子學(xué)報(bào),2007,35(6):1134-1138.
Yan Xinfang,Liu Aiqin,Yang Ting. A virtual backbone network algorithm based on a minimal independent dominating set for MANETs [J].Acta Electronica Sinica,2007,35(6):1134-1138(in Chinese).
[8]閻新芳,張永琦,王志龍,等. 無(wú)線傳感器網(wǎng)絡(luò)中基于網(wǎng)關(guān)的多級(jí)簇樹(shù)維護(hù)更新算法[J]. 傳感技術(shù)學(xué)報(bào),2010,23(2):260-264.
Yan Xinfang,Zhang Yongqi,Wang Zhilong,et al.Maintenance and update algorithm of hierarchical clustering with gateway for wireless sensor network [J].Chinese Journal of Sensors and Actuators,2010,23(2):260-264(in Chinese).
[9]唐云建,石為人,易 軍,等. 面向 WSN 數(shù)據(jù)匯集應(yīng)用的動(dòng)態(tài)負(fù)載均衡算法[J]. 計(jì)算機(jī)工程與應(yīng)用,2011,47(6):122-126.
Tang Yunjian,Shi Weiren,Yi Jun,et al. Dynamic load-balancing algorithm of WSN for data gathering application [J].Computer Engineering and Applications,2011,47(6):122-126(in Chinese).
[10]張 擎,柴喬林. 基于最大連通度分簇的負(fù)載均衡分簇算法[J]. 計(jì)算機(jī)工程與設(shè)計(jì),2008,29(2):340-343.
Zhang Qing,Chai Qiaolin. Load balance clustering algorithm based on maximum link degree clustering [J].Computer Engineering and Design,2008,29(2):340-343(in Chinese).