孫中皋 鄭紫微 許少娟
(1.大連海事大學信息科學技術(shù)學院,遼寧大連116026;2.遼寧師范大學物理與電子技術(shù)學院,遼寧大連116029;3.寧波大學信息科學與工程學院,浙江寧波315211;4.大連理工大學城市學院,遼寧大連116600)
在無線傳感器網(wǎng)絡中,傳感器節(jié)點部署比較密集,鄰近節(jié)點采集到的數(shù)據(jù)具有較大的相關(guān)性,節(jié)點可以通過收集鄰近節(jié)點的數(shù)據(jù)并進行融合[1]來減少冗余數(shù)據(jù),從而降低數(shù)據(jù)采集的能耗.利用這一特性,人們提出了大量的分簇算法以提高網(wǎng)絡的能量效率.分簇的基本思想是將網(wǎng)絡中的節(jié)點劃分為簇頭節(jié)點和簇成員節(jié)點,簇頭節(jié)點負責收集簇內(nèi)成員節(jié)點的數(shù)據(jù)并進行融合處理后發(fā)送至遠方的基站.分簇算法的有效性很大程度上取決于簇頭節(jié)點的選取策略:(1)因簇頭節(jié)點的能耗遠大于簇成員節(jié)點的能耗,若簇頭節(jié)點選取不當,則容易導致其電池能量過早耗盡而使網(wǎng)絡失效,故選取簇頭節(jié)點時要考慮節(jié)點的能量和能耗;(2)傳感器節(jié)點的無線通信能耗遠大于傳感和數(shù)據(jù)處理時消耗的能量[2],所以簇頭節(jié)點的選取過程要減少消息通信的數(shù)量.
LEACH算法[3]是具有代表性的分簇算法,其簇頭節(jié)點的選取方法具有隨機性且沒有考慮節(jié)點的剩余能量.在其它眾多分簇算法中[4-11],簇頭節(jié)點的選取方法不僅考慮了節(jié)點的剩余能量,還將網(wǎng)絡局部范圍內(nèi)節(jié)點的其它屬性信息作為簇頭節(jié)點選舉的依據(jù),如節(jié)點度[4,6]、節(jié)點聚合度[5]、通信代價[6]和兩跳范圍內(nèi)節(jié)點的拓撲信息[7]等.文獻[6]中提出的HEED算法,在選舉簇頭節(jié)點時首先以節(jié)點剩余能量作為主參數(shù)選取出候選簇頭節(jié)點,然后以簇內(nèi)通信代價或度作為次參數(shù),通過多次迭代來選取簇頭節(jié)點.文獻[8]中提出的基于投票機制的分簇算法(VCA),節(jié)點依據(jù)剩余能量信息給鄰居節(jié)點及自身投票,通過迭代選取票數(shù)高的節(jié)點為簇頭節(jié)點.HEED算法和VCA在迭代過程中節(jié)點與鄰居節(jié)點的消息交換消耗了額外的能量.基于定時驅(qū)動機制的分簇算法[9-11]則避免了迭代過程,減少了消息開銷.文獻[10]中提出的基于定時驅(qū)動的分簇算法,節(jié)點按照負指數(shù)分布生成一個定時長度用于競爭簇頭節(jié)點,剩余能量較多的節(jié)點成為簇頭節(jié)點的機會更大.文獻[11]中提出的SWEET算法在簇頭節(jié)點選舉的兩個階段都采用了定時的方式.
結(jié)合投票機制考慮鄰居節(jié)點信息的思想和定時驅(qū)動機制消息開銷小的特點,文中提出了一種基于雙重選舉機制的分簇算法(DSMCA).投票選舉機制中考慮了節(jié)點的剩余能量、節(jié)點間及節(jié)點與基站間的通信代價3個屬性,節(jié)點所投票數(shù)取決于這3個屬性的綜合評價值,各屬性的權(quán)重系數(shù)采用信息熵的方法求得.投票結(jié)束后,節(jié)點依據(jù)所得的總票數(shù)生成一個定時長度參與簇頭節(jié)點的選舉.
VCA認為在簇頭節(jié)點選舉中,節(jié)點除考慮自身的能量狀態(tài)外還應考慮鄰居節(jié)點的能量信息.節(jié)點si投給節(jié)點sj的票數(shù)為[8]
式中,ej為節(jié)點sj的剩余能量,dij為節(jié)點si到節(jié)點sj的距離,R為節(jié)點的通信半徑.
VCA以節(jié)點的剩余能量為參數(shù),而忽略了節(jié)點的相對位置信息,在選取高能量節(jié)點的同時可能會付出高的能耗代價.如圖1所示,sj和sk為si的兩個鄰居節(jié)點,采用VCA投票,當sj和sk的剩余能量相等或較為接近時,si投給這兩個節(jié)點的票數(shù)相當.因sk與si之間的距離以及sk與基站之間的距離都比sj近,si選取sk當選簇頭節(jié)點的通信代價更小,故sk應比sj得到更多的票數(shù).
圖1 節(jié)點投票示例Fig.1 An example of node voting
DSMCA除考慮節(jié)點的剩余能量屬性外,還引入了節(jié)點間的通信代價以及節(jié)點與基站間的通信代價兩個屬性,節(jié)點按照以下規(guī)則投票:(1)節(jié)點只給比自己剩余能量大的鄰居節(jié)點投票;(2)節(jié)點所投出的總票數(shù)為1,投給某個節(jié)點的票數(shù)與該節(jié)點的綜合屬性評價值有關(guān).
由規(guī)則(1)可知,節(jié)點的剩余能量越大,得到的票數(shù)越多而投出的票數(shù)越少;相反,節(jié)點的剩余能量越小,投出的票數(shù)越多而得到的票數(shù)越少.規(guī)則(1)減少了剩余能量小的節(jié)點當選簇頭節(jié)點的機會,讓剩余能量大的節(jié)點處于被選舉狀態(tài)而少投票,與VCA中節(jié)點給每個鄰居節(jié)點投票相比,減少了消息開銷.由規(guī)則(2)可知,一個具有較高剩余能量的節(jié)點,其鄰居節(jié)點數(shù)越多,得到的票數(shù)越多,并且票數(shù)均衡了節(jié)點的能量和能耗因素.
基于投票規(guī)則,DSMCA的多屬性投票模型為
式中,zj為節(jié)點sj的綜合屬性評價值,
m為屬性個數(shù),rjk為節(jié)點sj的第k個屬性的規(guī)范化值,ωk為第k個屬性的權(quán)重,滿足
由式(2)、(3)可知,要計算票數(shù),需先確定屬性的規(guī)范化值,并為每個屬性選擇合適的權(quán)重.
2.1.1 屬性規(guī)范化
設(shè)節(jié)點si擁有比自己剩余能量高的鄰居節(jié)點集為S={s1,s2,…,sn},每個節(jié)點的屬性集為U={u1,u2,…,um},用xk'l(1≤k'≤n,1≤l≤m)表示節(jié)點sk'關(guān)于屬性ul的評價值,則節(jié)點si可建立集合S的多屬性矩陣X:
由于不同屬性的物理量綱互不相同,為了使各屬性之間具有可比性,需要對屬性矩陣進行規(guī)范化處理[12].DSMCA采用比例轉(zhuǎn)換法對各屬性進行轉(zhuǎn)換.對于效益型屬性(如剩余能量),采用式(6)進行規(guī)范化:
規(guī)范化后的屬性矩陣R為
將R中的屬性評價值代入式(3),求得節(jié)點的綜合屬性評價值,就消除了屬性量綱的差異性.
2.1.2 屬性權(quán)重
熵在信息論中是不確定性和信息量的一個量度,其定義為[13]
式中,h為正常數(shù),pi為一個離散的概率分布.熵值具有極值性,當所有的pi都相等,即等概率pi=1/n時,熵值E取得最大值.
多屬性矩陣表述了節(jié)點的不同屬性值,可以看作是信息的載體.而熵法是評價屬性相對重要程度的一種有力工具[13],其基本原理為:所有方案在某屬性上的取值差異越大,則該屬性向量提供的信息越多,該屬性被賦予的權(quán)重也越大;與之相反,所有方案在某一屬性上的取值越接近,則該屬性對各方案所起的作用越小,所賦予的權(quán)重也越小.
DSMCA采用熵法求解權(quán)重,節(jié)點在投票時通過所有可投票節(jié)點的多屬性矩陣衡量各屬性的重要程度,從而決定各屬性的權(quán)重.確定權(quán)重的步驟如下:
1)對于規(guī)范化后的屬性矩陣R,計算屬性ul的幾何影射pk'l為
2)計算屬性ul的熵El為
當pk'l=0時,令pk'llnpk'l=0.
3)計算屬性ul的權(quán)重為
式(12)通過歸一化處理,使權(quán)重滿足式(4)的條件.
設(shè)節(jié)點完成投票后統(tǒng)計所得票數(shù)為vtotal,首先將票數(shù)轉(zhuǎn)換為參與簇頭節(jié)點競爭的初始定時長度:
式中:ε為一足夠小的常數(shù),當vtotal=0時,節(jié)點依據(jù)ε生成定時長度;x為在[0,1]上均勻分布的隨機變量;vmax為一常數(shù),表示節(jié)點可能得到的最大票數(shù),若節(jié)點收到每個鄰居節(jié)點的票數(shù)都為最大值1,則vmax等于節(jié)點所擁有的最大鄰居節(jié)點數(shù),vmax由節(jié)點的通信半徑及網(wǎng)絡中節(jié)點的分布密度決定.
接著節(jié)點設(shè)置定時器時間為
式(13)中,當vtotal≠0 時,令v=vtotal/vmax,則0 <v<1,保證了tinitial>0且tinitial關(guān)于v的一階偏導數(shù)?tinitial/?v=-v-1< 0,即隨著v的增大,tinitial單調(diào)遞減,也就是說,節(jié)點所得的選票數(shù)越多,其生成的定時長度越短.
另外,由式(13)可知,節(jié)點的初始定時長度取決于節(jié)點得到的票數(shù)vtotal和隨機變量x的取值,其中vtotal取決于鄰居節(jié)點對節(jié)點多個屬性的綜合評價值,這使得在節(jié)點通信半徑內(nèi)存在與該節(jié)點具有相同票數(shù)的其它節(jié)點的概率很小,而且隨機變量x進一步降低了相鄰節(jié)點生成相同定時長度的可能性.所以,DSMCA降低了節(jié)點在競爭簇頭節(jié)點時發(fā)生沖突的概率,在簇頭節(jié)點的通信半徑內(nèi)只存在一個簇頭節(jié)點,即簇頭節(jié)點在網(wǎng)絡中的分布相對均勻.
網(wǎng)絡初始化的主要任務是節(jié)點根據(jù)信號接收強度估算與發(fā)送方的距離,以便獲取通信代價屬性值及在數(shù)據(jù)傳輸時選取合適的發(fā)射功率.其中節(jié)點的通信代價屬性定義為節(jié)點向接收方發(fā)送一個數(shù)據(jù)包所需要的能量.
為此,在網(wǎng)絡部署完成后,首先由基站以一定功率向全網(wǎng)廣播一個消息,每個節(jié)點根據(jù)該消息估算至基站的距離并計算自身至基站的通信代價.然后每個節(jié)點以一定的功率發(fā)送一個鄰居發(fā)現(xiàn)消息與鄰居節(jié)點進行消息交換,在這個過程中,節(jié)點計算與每個鄰居節(jié)點間的通信代價,并獲得鄰居節(jié)點的剩余能量和至基站的通信代價屬性值.網(wǎng)絡初始化完成后,節(jié)點建立鄰居節(jié)點信息表,保存各節(jié)點的屬性值.
在網(wǎng)絡初始化之后,同大多數(shù)分簇算法一樣,DSMCA采用輪方式運行的方案,每輪包括簇頭節(jié)點選舉、簇形成和數(shù)據(jù)傳輸3個階段.
3.2.1 簇頭節(jié)點選舉階段
簇頭節(jié)點選舉開始后,節(jié)點執(zhí)行如下步驟:
1)查看鄰居節(jié)點信息表,查找比自己剩余能量高的節(jié)點組成集合S,并建立多屬性矩陣X.如果S=?,說明該節(jié)點在所有鄰居節(jié)點中剩余能量最大,節(jié)點直接進入接收投票的狀態(tài),并在投票過程結(jié)束后轉(zhuǎn)步驟6).
2)由式(6)和(7)對X進行規(guī)范化處理,得到規(guī)范化屬性矩陣R.
3)由式(12)計算各屬性的權(quán)重系數(shù).
4)由式(3)計算S中每個節(jié)點的綜合屬性評價值.
5)由式(2)計算S中每個節(jié)點的票數(shù),然后節(jié)點隨機生成一個退避時間,到時后首先競爭信道,若成功則發(fā)送一個投票消息完成給其它節(jié)點的投票,在此過程中接收其它節(jié)點給自己的投票.
6)節(jié)點統(tǒng)計最終所得票數(shù),由式(13)生成初始定時長度,由式(14)設(shè)置定時器時間.
7)如果在ttimer時刻到達之前,節(jié)點沒有收到任何鄰居節(jié)點發(fā)出的簇頭節(jié)點當選消息,則節(jié)點向所有鄰居節(jié)點廣播簇頭節(jié)點當選消息,聲明自己當選為簇頭節(jié)點.所有收到當選消息的節(jié)點停止計時成為普通節(jié)點并記錄相應簇頭節(jié)點的ID.
3.2.2 簇形成階段
簇頭節(jié)點選舉結(jié)束后,網(wǎng)絡進入簇形成階段.在該階段,每個普通節(jié)點向簇頭節(jié)點發(fā)送加入消息成為簇成員.普通節(jié)點在簇頭節(jié)點選舉階段可能會收到多個簇頭節(jié)點發(fā)送的當選消息,此時,節(jié)點比較自己給每個簇頭節(jié)點所投的票數(shù),向票數(shù)最高的簇頭節(jié)點發(fā)送加入消息.綜合屬性值大的簇頭節(jié)點形成的簇規(guī)模大于綜合屬性值小的簇頭節(jié)點,從而降低綜合屬性值小的簇頭節(jié)點的負擔,避免其過早失效.
在成簇過程中,如果一個簇頭節(jié)點存在鄰居節(jié)點,但其所有鄰居節(jié)點都選擇加入了其它簇,則該簇沒有簇成員加入,形成單節(jié)點簇,文獻[10]中將其稱為被動型簇頭節(jié)點.VCA和文獻[10]中的算法讓被動型簇頭節(jié)點直接向基站發(fā)送自身數(shù)據(jù),顯然浪費了節(jié)點的能量.DSMCA采取多跳中繼方式,當節(jié)點成為被動型簇頭節(jié)點后,在鄰居節(jié)點中選取剩余能量最大的節(jié)點作為中繼節(jié)點并發(fā)送中繼消息通知被選節(jié)點.
3.2.3 數(shù)據(jù)傳輸階段
由于網(wǎng)絡中可能存在被動型簇頭節(jié)點,所以在數(shù)據(jù)傳輸階段,首先由被動型簇頭節(jié)點將數(shù)據(jù)發(fā)送給中繼節(jié)點,然后各成員節(jié)點在簇頭節(jié)點分配的時分多址(TDMA)時隙內(nèi)將數(shù)據(jù)發(fā)送給簇頭節(jié)點,簇頭節(jié)點執(zhí)行數(shù)據(jù)融合后向基站發(fā)送一個數(shù)據(jù)包,即網(wǎng)絡完成一個數(shù)據(jù)采集周期.為避免頻繁的簇重組帶來的能量開銷,網(wǎng)絡在多個數(shù)據(jù)采集周期后進行重新分簇[14].
節(jié)點在投票時需要鄰居節(jié)點的剩余能量、節(jié)點與鄰居節(jié)點間的通信代價以及鄰居節(jié)點與基站間的通信代價3個屬性值.在網(wǎng)絡初始化階段,節(jié)點通過信息交換建立了鄰居節(jié)點屬性信息表.假設(shè)網(wǎng)絡部署后,節(jié)點和基站的位置不再發(fā)生改變,故通信代價屬性在網(wǎng)絡運行過程中不發(fā)生變化,無需進行更新.但隨著時間的推移,節(jié)點的剩余能量會發(fā)生改變,這時需要節(jié)點之間定期交換剩余能量信息.DSMCA采取和VCA相同的方法:節(jié)點在每次簇重組開始前向鄰居節(jié)點廣播心跳信號,在確認鄰居節(jié)點存活狀態(tài)的同時,更新剩余能量屬性信息[8].
文中通過仿真實驗來評價DSMCA的性能,采用網(wǎng)絡生命期(第一個節(jié)點失效的時間[15-16])和數(shù)據(jù)傳輸效率來比較DSMCA、LEACH、HEED及VCA的性能,以驗證DSMCA的有效性.實驗中所用的參數(shù)設(shè)置如表1所示,采用和文獻[3]中相同的無線通信能耗模型及參數(shù).所有仿真均重復100次,取平均值作為最終結(jié)果.
表1 實驗參數(shù)值Table 1 Values of simulation parameters
圖2為采用4種算法的網(wǎng)絡中存活節(jié)點數(shù)隨時間變化的情況.從圖2中可以看出,DSMCA的網(wǎng)絡生命期比LEACH、HEED、VCA分別提高了260%、50%和37%.其原因主要有:(1)DSMCA的投票機制采用了鄰居節(jié)點的多屬性信息,均衡考慮了能量和能耗因素,節(jié)點綜合屬性評價值越大,所得票數(shù)越多,越有機會當選為簇頭節(jié)點,而LEACH沒有考慮節(jié)點的剩余能量信息,VCA只以節(jié)點的剩余能量信息為主參數(shù);(2)DSMCA簇頭節(jié)點選舉采用了定時驅(qū)動方式,且節(jié)點只給剩余能量比自己大的節(jié)點投票,比采用迭代方式的HEED和VCA節(jié)省了大量消息開銷;(3)DSMCA中的被動型簇頭節(jié)點采取多跳的方式向基站傳輸數(shù)據(jù),減少了節(jié)點能耗.由圖2還可以看出,DSMCA從第一個節(jié)點失效到最后一個節(jié)點失效的時間跨度比其它3種算法更短,而時間跨度可反映出網(wǎng)絡中節(jié)點的能量均衡情況[5],所以DSMCA的能量使用效率最高,更好地均衡了網(wǎng)絡中節(jié)點的能耗.
圖2 存活節(jié)點數(shù)隨時間的變化Fig.2 Changes of number of surviving nodes with time
圖3給出了基站收到的數(shù)據(jù)包數(shù)和存活節(jié)點數(shù)的關(guān)系.從圖3可見,與其它3種算法相比,DSMCA能夠使基站接收到更多的數(shù)據(jù)信息.這是因為DSMCA的節(jié)點失效更為緩慢,能夠采集并傳送更多的數(shù)據(jù).
圖3 基站收到的數(shù)據(jù)包數(shù)與存活節(jié)點數(shù)的關(guān)系Fig.3 Relationship between number of data packets received at base station and number of surviving nodes
圖4給出了基站收到的數(shù)據(jù)包數(shù)與網(wǎng)絡能耗的關(guān)系.從圖4可以看出,在能耗相同的情況下,采用DSMCA的基站可以收到更多的數(shù)據(jù)包,整個網(wǎng)絡的能量使用效率更高.
圖4 基站收到的數(shù)據(jù)包數(shù)與網(wǎng)絡能耗的關(guān)系Fig.4 Relationship between number of data packets received at base station and energy consumption of network
為了高效地利用無線傳感器網(wǎng)絡的能量,文中提出了一種基于雙重選舉機制的無線傳感器網(wǎng)絡分簇算法,該算法結(jié)合了投票選舉和定時驅(qū)動兩種分簇機制.票數(shù)的計算均衡考慮了能量和能耗因素,借鑒了多屬性決策中求解多屬性綜合值的方法,采用熵法來計算屬性的權(quán)重系數(shù).節(jié)點將所得票數(shù)轉(zhuǎn)換為一個定時長度參與簇頭節(jié)點競爭,減少了消息開銷.在數(shù)據(jù)傳輸階段,被動型簇頭節(jié)點采取多跳轉(zhuǎn)發(fā)數(shù)據(jù)的方式,節(jié)省了節(jié)點的能量.實驗表明,和已有的幾種分簇算法相比,文中算法能更好地均衡節(jié)點能耗,延長了網(wǎng)絡生存時間.今后將改進簇形成階段的算法,使得簇頭節(jié)點之間的負載更加均衡,進一步提高文中算法的性能.
[1]Fasolo E,Rossi M,Widmer J,et al.In-network aggregation techniques for wireless sensor networks:a survey[J].IEEE Wireless Communications,2007,14(2):70-87.
[2]Akyildiz I F,Su W,Sankarasubramaniam Y,et al.A survey on sensor networks[J].IEEE Communications Magazine,2002,40(8):102-114.
[3]Heinzelman W B,Chandrakasan A,Balakrishnan H.An application-specific protocol architecture for wireless microsensor networks[J].IEEE Transactions on Wireless Communications,2002,1(4):660-670.
[4]Chamam A,Pierre S.A distributed energy-efficient clustering protocol for wireless sensor networks[J].Computers &Electrical Engineering,2010,36(2):303-312.
[5]孫亭,楊永田,蘆東昕,等.一種基于聚合度的動態(tài)分層路由協(xié)議[J].電子學報,2008,36(4):794-799.Sun Ting,Yang Yong-tian,Lu Dong-xin,et al.Convergence degree-based dynamic hierarchical routing protocol[J].Acta Electronica Sinica,2008,36(4):794-799.
[6]Younis O,F(xiàn)ahmy S.HEED:a hybrid,energy-efficient,distributed clustering approach for ad hoc sensor networks[J].IEEE Transactions on Mobile Computing,2004,3(4):366-379.
[7]Dimokas N,Katsaros D,Manolopoulos Y.Energy-efficient distributed clustering in wireless sensor networks[J].Journal of Parallel and Distributed Computing,2010,70(4):371-383.
[8]Qin M,Zimmermann R.An energy-efficient voting-based clustering algorithm for sensor networks[C]∥Proceedings of the Sixth International Conference on Software Engineering,Artificial Intelligence,Networking and Parallel/Distributed Computing and the First ACIS International Workshop on Self-Assembling Wireless Networks.Towson MD:IEEE,2005:444-451.
[9]Wen C Y,Sethares W A.Automatic decentralized clustering for wireless sensor networks [J].EURASIP Journal on Wireless Communications and Networking,2005,2005(5):686-697.
[10]曹涌濤,何晨,蔣鈴鴿.無線傳感器網(wǎng)絡中基于自適應定時器策略的分簇算法[J].電子學報,2007,35(9):1719-1723.Cao Yong-tao,He Chen,Jiang Ling-ge.A distributed timer-based clustering algorithm for wireless sensor networks[J].Acta Electronica Sinica,2007,35(9):1719-1723.
[11]Fang S,Berber S M,Swain A K.An overhead-free clustering algorithm for wireless sensor networks[C]∥Proceedings of IEEE Global Telecommunications Conference.Washington DC:IEEE,2007:1144-1148.
[12]黃河,石為人,許磊,等.一種基于自適應加權(quán)的無線傳感器網(wǎng)絡室內(nèi)能量均衡路由[J].電子學報,2010,38(11):2493-2498.Huang He,Shi Wei-ren,Xu Lei,et al.Weight coefficient adaptive based indoor energy load-balance wireless sensor networks routing[J].Acta Electronica Sinica,2010,38(11):2493-2498.
[13]徐玖平,吳巍.多屬性決策的理論與方法[M].北京:清華大學出版社,2006:12-52.
[14]Heinzelman W B.Application-specific protocols architectures for wireless networks[D].Cambridge:Department of Eleetrical Engineering and Computer Science,Massachusetts Institute of Technology,2000.
[15]岳林,易本順,肖進勝,等.優(yōu)化生存時間的傳感器網(wǎng)絡地理機會路由[J].華南理工大學學報:自然科學版,2010,38(12):67-72.Yue Lin,Yi Ben-shun,Xiao Jin-sheng,et al.Geographic opportunistic routing with optimized lifetime for sensor networks[J].Journal of South China University of Technology:Natural Science Edition,2010,38(12):67-72.
[16]Wu Y,Mao Z,F(xiàn)ahmy S,et al.Constructing maximumlifetime data-gathering forests in sensor networks[J].IEEE/ACM Transactions on Networking,2010,18(5):1571-1584.