本發(fā)明屬于無(wú)線傳感器網(wǎng)絡(luò)領(lǐng)域,具體地說(shuō),涉及一種無(wú)線傳感網(wǎng)多層次簇構(gòu)建和簇頭更新方法。
背景技術(shù):
分簇拓?fù)浣Y(jié)構(gòu)便于管理,有利于分布式路由算法的應(yīng)用,具有較好的可擴(kuò)展性,適合大規(guī)模無(wú)線傳感器網(wǎng)絡(luò)應(yīng)用。分簇路由協(xié)議通常將網(wǎng)絡(luò)劃分為簇,每個(gè)簇由簇頭和多個(gè)簇成員組成,簇頭管理或控制整個(gè)簇內(nèi)成員節(jié)點(diǎn),數(shù)據(jù)通過(guò)簇頭間多跳傳輸至匯聚節(jié)點(diǎn)。分簇路由協(xié)議設(shè)計(jì)的首要目標(biāo)是通過(guò)高效的分簇算法形成合理的網(wǎng)絡(luò)結(jié)構(gòu),通過(guò)有效的簇頭輪換機(jī)制保證網(wǎng)絡(luò)連通性,延長(zhǎng)網(wǎng)絡(luò)的生命周期。因此,簇穩(wěn)定性成了通信連接性能優(yōu)劣、簇維護(hù)開(kāi)銷的高低與網(wǎng)絡(luò)運(yùn)行周期長(zhǎng)短的主要決定因素,提高簇穩(wěn)定性、降低簇重建頻率和維護(hù)開(kāi)銷是簇構(gòu)建算法的重要目標(biāo)。
針對(duì)無(wú)線傳感器網(wǎng)絡(luò)分簇路由,圍繞簇頭的產(chǎn)生、簇的形成和簇的數(shù)據(jù)傳輸而設(shè)計(jì)了許多無(wú)線傳感網(wǎng)分簇路由算法。《能量感知的無(wú)線傳感器網(wǎng)絡(luò)數(shù)據(jù)收集協(xié)議》,軟件學(xué)報(bào),2007,18(5):1092-1109,作者劉明,曹建農(nóng),陳貴海等,公開(kāi)了基于節(jié)點(diǎn)自身及其鄰居節(jié)點(diǎn)剩余能量設(shè)計(jì)簇頭選舉及簇構(gòu)建方案,通過(guò)調(diào)節(jié)簇頭覆蓋半徑確保由簇頭形成的子圖連通性,再構(gòu)建匯聚樹(shù)傳輸數(shù)據(jù)。但當(dāng)網(wǎng)絡(luò)負(fù)載較大時(shí),不同簇成員之間的數(shù)據(jù)傳輸容易產(chǎn)生沖突,使得簇頭收集數(shù)據(jù)效率下降,從而容易導(dǎo)致網(wǎng)絡(luò)擁塞?!秂fficientroutingalgorithmbasedonunequalclusteringandconnectedgraphinwirelesssensornetworks》,internationaljournalofwirelessinformationnetworks,2016,23(2):141-150,作者xiah,zhangr,yuj,公開(kāi)了通過(guò)調(diào)節(jié)傳感器節(jié)點(diǎn)的通信半徑將傳感器網(wǎng)絡(luò)進(jìn)行非均勻分簇,再采用連通圖理論設(shè)計(jì)路由選擇算法。但分簇時(shí)僅考慮能量空洞避免,使得簇網(wǎng)絡(luò)拓?fù)錇楣?jié)省能耗而頻繁變動(dòng),導(dǎo)致維護(hù)網(wǎng)絡(luò)穩(wěn)定性的代價(jià)過(guò)大,造成網(wǎng)絡(luò)性能下降。簇頭間路由算法僅使用圖論設(shè)計(jì)簇頭間數(shù)據(jù)傳輸路由,忽視了無(wú)線傳感網(wǎng)協(xié)議棧的信息共享以及傳感器節(jié)點(diǎn)數(shù)據(jù)傳輸特點(diǎn),優(yōu)化效果受限。
從上述現(xiàn)有技術(shù)可知,現(xiàn)有無(wú)線傳感網(wǎng)簇結(jié)構(gòu)及路由方法性能不穩(wěn)定、性能不均衡;如何利用無(wú)線傳感器網(wǎng)絡(luò)分布式的特點(diǎn)建立更高效的啟發(fā)機(jī)制、通過(guò)局部區(qū)域有限范圍內(nèi)節(jié)點(diǎn)之間的互動(dòng)和信息反饋來(lái)分簇,在降低節(jié)點(diǎn)間通信干擾、保證網(wǎng)絡(luò)運(yùn)行周期的同時(shí),提高簇穩(wěn)定性和網(wǎng)絡(luò)數(shù)據(jù)傳輸性能仍然有待進(jìn)一步創(chuàng)新。
技術(shù)實(shí)現(xiàn)要素:
1、要解決的問(wèn)題
針對(duì)現(xiàn)有無(wú)線傳感網(wǎng)簇結(jié)構(gòu)穩(wěn)定性不高的問(wèn)題,本發(fā)明提供一種無(wú)線傳感網(wǎng)簇構(gòu)建和簇頭更新方法,能夠提高簇穩(wěn)定性,改善網(wǎng)絡(luò)服務(wù)性能。
2、技術(shù)方案
為解決上述問(wèn)題,本發(fā)明采用如下的技術(shù)方案。
一種無(wú)線傳感網(wǎng)多層次簇結(jié)構(gòu)構(gòu)建方法,
在傳感器節(jié)點(diǎn)部署后,節(jié)點(diǎn)間定時(shí)發(fā)送hello消息收集相鄰的鄰居節(jié)點(diǎn)信息,使用基于rssi測(cè)距的信標(biāo)節(jié)點(diǎn)定位算法,以匯聚節(jié)點(diǎn)為信標(biāo)節(jié)點(diǎn),建立相對(duì)坐標(biāo)系統(tǒng),各節(jié)點(diǎn)保存其坐標(biāo)信息;通過(guò)以匯聚節(jié)點(diǎn)為起點(diǎn),由近及遠(yuǎn)地完成全網(wǎng)的多層次簇構(gòu)建;
具體包括如下步驟,
步驟a,在網(wǎng)絡(luò)初始化階段,以匯聚節(jié)點(diǎn)為中心、將傳感器節(jié)點(diǎn)無(wú)線通信半徑內(nèi)的傳感器節(jié)點(diǎn)劃分為第0層簇網(wǎng)絡(luò);根據(jù)節(jié)點(diǎn)是否已經(jīng)成為簇頭或簇成員,將網(wǎng)絡(luò)中所有節(jié)點(diǎn)劃分為簇節(jié)點(diǎn)和空白節(jié)點(diǎn),簇節(jié)點(diǎn)為已經(jīng)成為簇頭或簇成員的節(jié)點(diǎn),反之則為空白節(jié)點(diǎn);
步驟b,使用傳感器節(jié)點(diǎn)能耗平衡策略方法構(gòu)建第1層簇網(wǎng)絡(luò);
步驟c,以簇頭能力值為依據(jù),依次建立第1層簇網(wǎng)絡(luò)的下層簇網(wǎng)絡(luò),即建立第2、第3、……第n層簇網(wǎng)絡(luò),n≥2。
優(yōu)選地,步驟b中傳感器節(jié)點(diǎn)能耗平衡策略方法包括,
步驟b1,計(jì)算步驟a中所述的第0層簇網(wǎng)絡(luò)中各傳感器節(jié)點(diǎn)能耗平衡值,并廣播簇構(gòu)建請(qǐng)求消息,節(jié)點(diǎn)i的能耗平衡值計(jì)算方法如下:
步驟b2,在收到所有第0層簇網(wǎng)絡(luò)中鄰居節(jié)點(diǎn)的簇構(gòu)建消息后,空白節(jié)點(diǎn)選擇具有最大能耗平衡值的鄰居節(jié)點(diǎn)作為簇頭,通過(guò)回復(fù)入簇消息請(qǐng)求加入簇結(jié)構(gòu);
步驟b3,第0層簇網(wǎng)絡(luò)中節(jié)點(diǎn)在接收到空白節(jié)點(diǎn)的入簇消息后,檢測(cè)其自身是否為目標(biāo)節(jié)點(diǎn),如果自身為目標(biāo)節(jié)點(diǎn),則將自身設(shè)置為簇頭并廣播成簇消息,通知簇成員節(jié)點(diǎn)進(jìn)入睡眠狀態(tài);若節(jié)點(diǎn)在簇網(wǎng)絡(luò)構(gòu)建時(shí)長(zhǎng)t超時(shí)后仍未收到自身為目標(biāo)節(jié)點(diǎn)的入簇請(qǐng)求消息,則該節(jié)點(diǎn)為普通節(jié)點(diǎn)并進(jìn)入睡眠狀態(tài);至此,完成第1層簇網(wǎng)絡(luò)的構(gòu)建。
優(yōu)選地,步驟c中,
以簇頭能力值為依據(jù),依次建立第2、第3、……第n層簇網(wǎng)絡(luò),n≥2,
具體步驟為,
步驟c1,第n-1層簇網(wǎng)絡(luò)中各簇成員計(jì)算自身簇頭能力值,隨后廣播簇構(gòu)建請(qǐng)求消息;
步驟c2,空白節(jié)點(diǎn)收到來(lái)自第n-1層鄰居節(jié)點(diǎn)的簇構(gòu)建消息時(shí),將其簇頭能力值保存至鄰居表中;在接收到所有上層鄰居簇頭的簇構(gòu)建消息后,選擇其中具有最大簇頭能力值的作為自身簇頭,回復(fù)入簇消息;
步驟c3,第n-1層節(jié)點(diǎn)在接收到第n層節(jié)點(diǎn)的入簇消息后,檢測(cè)其自身是否為目標(biāo)節(jié)點(diǎn),如果自身為目標(biāo)節(jié)點(diǎn),則將自身設(shè)置為簇頭并廣播成簇消息,通知簇成員節(jié)點(diǎn)進(jìn)入睡眠狀態(tài);若節(jié)點(diǎn)在簇網(wǎng)絡(luò)構(gòu)建時(shí)長(zhǎng)t超時(shí)后仍未收到自身為目標(biāo)節(jié)點(diǎn)的入簇請(qǐng)求消息,則該節(jié)點(diǎn)為普通節(jié)點(diǎn)并進(jìn)入睡眠狀態(tài)。將所有成為簇頭的節(jié)點(diǎn)劃入第n層。至此,完成第n層簇網(wǎng)絡(luò)的構(gòu)建;
步驟c4,重復(fù)步驟c1-c3,直至完成整個(gè)無(wú)線傳感網(wǎng)的簇網(wǎng)絡(luò)構(gòu)建。
優(yōu)選地,步驟c1中,簇頭能力值的計(jì)算方法如下,
首先,判斷節(jié)點(diǎn)i擔(dān)任簇頭角色時(shí)該簇的穩(wěn)定值si,計(jì)算公式如下:
si為節(jié)點(diǎn)i在同層簇網(wǎng)絡(luò)中鄰居節(jié)點(diǎn)集合,r為通信半徑,d(,)表示兩個(gè)節(jié)點(diǎn)間的歐幾里得距離,
然后,計(jì)算節(jié)點(diǎn)簇頭能力值,
zi為節(jié)點(diǎn)i通信半徑范圍內(nèi)的空白節(jié)點(diǎn)集合;rj(j∈zi)為zi中節(jié)點(diǎn)j上報(bào)數(shù)據(jù)量的數(shù)學(xué)期望;pi為位于節(jié)點(diǎn)i通信半徑內(nèi),且歸屬于第n-2層簇網(wǎng)絡(luò)中簇頭的集合;||表示集合中元素的個(gè)數(shù)。
一種無(wú)線傳感網(wǎng)多層次簇結(jié)構(gòu),采用上述方法構(gòu)建。
一種上述無(wú)線傳感網(wǎng)多層次簇結(jié)構(gòu)中簇頭更新方法,包括如下步驟,
步驟a,簇頭i依據(jù)剩余能量、流量負(fù)載等因素,采用下式評(píng)估是否能夠滿足繼續(xù)擔(dān)任簇頭,若下式不滿足,轉(zhuǎn)步驟b進(jìn)行簇更新;
以上所述的子簇頭是相對(duì)概念,指位于當(dāng)前簇頭通信半徑內(nèi),且歸屬于當(dāng)前簇頭所在網(wǎng)絡(luò)層次的下一層網(wǎng)絡(luò)中的簇頭;
步驟b,簇頭i通過(guò)廣播簇更新消息,通知其鄰居節(jié)點(diǎn)該進(jìn)入簇頭更新?tīng)顟B(tài);隨后鄰居節(jié)點(diǎn)j根據(jù)雙方位置、j的剩余能量及所在層次的相鄰兩層中的鄰居簇頭信息,按下式計(jì)算自身的簇頭能力值,
d(,)表示簇頭i與節(jié)點(diǎn)j的歐幾里得距離,
以上所述的父簇頭是相對(duì)概念,指位于當(dāng)前簇頭通信半徑內(nèi),且歸屬于當(dāng)前簇頭所在網(wǎng)絡(luò)層次的上一層網(wǎng)絡(luò)中的簇頭;
步驟c,簇頭i推選具有最大簇頭能力值的節(jié)點(diǎn)作為新簇頭,再分別由簇頭i、新簇頭在各自通信半徑內(nèi)廣播簇頭更換消息,并完成角色轉(zhuǎn)換;
步驟d,收到簇頭i的簇頭更換消息、但未收到來(lái)自新簇頭的簇頭更換消息的節(jié)點(diǎn)根據(jù)鄰居表判斷其通信范圍內(nèi)是否有簇頭鄰居,如有則向簇頭能力值最大的鄰居簇頭發(fā)送請(qǐng)求加入消息,否則進(jìn)入孤立節(jié)點(diǎn)狀態(tài);孤立節(jié)點(diǎn)選擇剩余能量最大的鄰居節(jié)點(diǎn)中繼數(shù)據(jù),后期網(wǎng)絡(luò)運(yùn)行過(guò)程中,如收到新簇頭廣播消息時(shí)加入具有最大簇頭能力值的簇。
3、有益效果
相比于現(xiàn)有技術(shù),本發(fā)明的有益效果為:
(1)本發(fā)明構(gòu)造的層次式簇結(jié)構(gòu),在原來(lái)的網(wǎng)絡(luò)之上形成一個(gè)多連接的虛擬簇頭網(wǎng)絡(luò),簇頭間通過(guò)多跳方式將數(shù)據(jù)傳輸至匯聚節(jié)點(diǎn),克服了leach等協(xié)議采用單跳傳輸方式所帶來(lái)的高能耗;
(2)本發(fā)明構(gòu)造的層次式簇結(jié)構(gòu)具有穩(wěn)定性高、分布式按需簇更新的特點(diǎn),且克服了傳統(tǒng)方法周期性全網(wǎng)簇更新所帶來(lái)的高額開(kāi)銷。
附圖說(shuō)明
圖1為本發(fā)明無(wú)線傳感網(wǎng)簇網(wǎng)絡(luò)結(jié)構(gòu)圖;
圖中a-k為各簇頭結(jié)構(gòu);短虛線內(nèi)為第0層簇網(wǎng)絡(luò);實(shí)線內(nèi)為第1層簇網(wǎng)絡(luò);長(zhǎng)虛線內(nèi)為第2層簇網(wǎng)絡(luò);長(zhǎng)虛線外為第3層簇網(wǎng)絡(luò);
圖2為本發(fā)明簇頭間的邏輯連接關(guān)系圖(以簇頭i為例);
圖中ip為簇頭i在上層網(wǎng)絡(luò)中的父簇頭;ic為簇頭i的在下層網(wǎng)絡(luò)中的子簇頭;iq為簇頭i通信半徑內(nèi)的同層簇頭;
圖3為本發(fā)明具體實(shí)施方式中簇頭i的數(shù)據(jù)傳輸對(duì)其所有父簇頭的干擾場(chǎng)景;
圖4為本發(fā)明具體實(shí)施方式中簇頭i對(duì)其所有子簇頭數(shù)據(jù)傳輸?shù)母蓴_場(chǎng)景;
圖5為本發(fā)明具體實(shí)施方式中簇頭i數(shù)據(jù)傳輸對(duì)同層簇頭數(shù)據(jù)傳輸?shù)母蓴_場(chǎng)景。
具體實(shí)施方式
下面結(jié)合具體實(shí)施例對(duì)本發(fā)明進(jìn)一步進(jìn)行描述。
如圖1和圖2所示,一種無(wú)線傳感網(wǎng)多層次簇結(jié)構(gòu),存在a-k共11個(gè)簇頭結(jié)構(gòu),將網(wǎng)絡(luò)劃分為4層,分別為第0層簇網(wǎng)絡(luò)、第1層簇網(wǎng)絡(luò)、第2層簇網(wǎng)絡(luò)和第3層簇網(wǎng)絡(luò);數(shù)據(jù)通過(guò)簇頭節(jié)點(diǎn)在簇之間傳遞直至匯聚節(jié)點(diǎn)。
本發(fā)明構(gòu)建完成的簇網(wǎng)絡(luò),邏輯連接關(guān)系僅存在于相鄰層的簇頭間,同層網(wǎng)絡(luò)的簇頭間不存在邏輯連接關(guān)系。存在邏輯連接關(guān)系的簇頭中,將上層網(wǎng)絡(luò)中的簇頭稱為父簇頭,下層網(wǎng)絡(luò)中的簇頭稱為子簇頭。
其構(gòu)建方法為,在傳感器節(jié)點(diǎn)部署后,節(jié)點(diǎn)間定時(shí)發(fā)送hello消息收集相鄰的鄰居節(jié)點(diǎn)信息,使用基于rssi測(cè)距的信標(biāo)節(jié)點(diǎn)定位算法,以匯聚節(jié)點(diǎn)為信標(biāo)節(jié)點(diǎn),建立相對(duì)坐標(biāo)系統(tǒng),各節(jié)點(diǎn)保存其坐標(biāo)信息;通過(guò)以匯聚節(jié)點(diǎn)為起點(diǎn),由近及遠(yuǎn)地完成全網(wǎng)的多層次簇構(gòu)建;
具體包括如下步驟,
步驟a,在網(wǎng)絡(luò)初始化階段,以匯聚節(jié)點(diǎn)為中心、將傳感器節(jié)點(diǎn)無(wú)線通信半徑內(nèi)的傳感器節(jié)點(diǎn)劃分為第0層簇網(wǎng)絡(luò);根據(jù)節(jié)點(diǎn)是否已經(jīng)成為簇頭或簇成員,將網(wǎng)絡(luò)中所有節(jié)點(diǎn)劃分為簇節(jié)點(diǎn)和空白節(jié)點(diǎn),簇節(jié)點(diǎn)為已經(jīng)成為簇頭或簇成員的節(jié)點(diǎn),反之則為空白節(jié)點(diǎn);
步驟b,使用傳感器節(jié)點(diǎn)能耗平衡策略方法構(gòu)建第1層簇網(wǎng)絡(luò);
本步驟中傳感器節(jié)點(diǎn)能耗平衡策略方法包括如下步驟:
步驟b1,計(jì)算步驟a中所述的第0層簇網(wǎng)絡(luò)中各傳感器節(jié)點(diǎn)能耗平衡值,并廣播簇構(gòu)建請(qǐng)求消息,節(jié)點(diǎn)i的能耗平衡值計(jì)算方法如下:
步驟b2,在收到所有第0層簇網(wǎng)絡(luò)中鄰居節(jié)點(diǎn)的簇構(gòu)建消息后,空白節(jié)點(diǎn)選擇具有最大能耗平衡值的鄰居節(jié)點(diǎn)作為簇頭,通過(guò)回復(fù)入簇消息請(qǐng)求加入簇結(jié)構(gòu);
步驟b3,第0層簇網(wǎng)絡(luò)中節(jié)點(diǎn)在接收到空白節(jié)點(diǎn)的入簇消息后,檢測(cè)其自身是否為目標(biāo)節(jié)點(diǎn),如果自身為目標(biāo)節(jié)點(diǎn),則將自身設(shè)置為簇頭并廣播成簇消息,通知簇成員節(jié)點(diǎn)進(jìn)入睡眠狀態(tài);若節(jié)點(diǎn)在簇網(wǎng)絡(luò)構(gòu)建時(shí)長(zhǎng)t超時(shí)后仍未收到自身為目標(biāo)節(jié)點(diǎn)的入簇請(qǐng)求消息,則該節(jié)點(diǎn)為普通節(jié)點(diǎn)并進(jìn)入睡眠狀態(tài);至此,完成第1層簇網(wǎng)絡(luò)的構(gòu)建;
本步驟中t取2秒,但t可根據(jù)網(wǎng)絡(luò)規(guī)模、傳感器分布特征、傳感器通信半徑等進(jìn)行調(diào)整;
本步驟中承擔(dān)第1層簇頭以及這些簇頭覆蓋的成員節(jié)點(diǎn)構(gòu)成了第1層簇網(wǎng)絡(luò);
步驟c,以簇頭能力值為依據(jù),依次建立第1層簇網(wǎng)絡(luò)的下層簇網(wǎng)絡(luò),即建立第2、第3、……第n層簇網(wǎng)絡(luò),n≥2;具體步驟為:
步驟c1,第n-1層簇網(wǎng)絡(luò)中各簇成員計(jì)算自身簇頭能力值,隨后廣播簇構(gòu)建請(qǐng)求消息;
簇頭能力值的計(jì)算方法如下,
首先,判斷節(jié)點(diǎn)i擔(dān)任簇頭角色時(shí)該簇的穩(wěn)定值si,計(jì)算公式如下:
si為節(jié)點(diǎn)i在同層簇網(wǎng)絡(luò)中鄰居節(jié)點(diǎn)集合,r為通信半徑,d(,)表示兩個(gè)節(jié)點(diǎn)間的歐幾里得距離,
然后,計(jì)算節(jié)點(diǎn)簇頭能力值,
zi為節(jié)點(diǎn)i通信半徑范圍內(nèi)的空白節(jié)點(diǎn)集合;rj(j∈zi)為zi中節(jié)點(diǎn)j上報(bào)數(shù)據(jù)量的數(shù)學(xué)期望;pi為位于節(jié)點(diǎn)i通信半徑內(nèi),且歸屬于第n-2層簇網(wǎng)絡(luò)中簇頭的集合;||表示集合中元素的個(gè)數(shù);
步驟c2,空白節(jié)點(diǎn)收到來(lái)自第n-1層鄰居節(jié)點(diǎn)的簇構(gòu)建消息時(shí),將其簇頭能力值保存至鄰居表中;在接收到所有上層鄰居簇頭的簇構(gòu)建消息后,選擇其中具有最大簇頭能力值的作為自身簇頭,回復(fù)入簇消息;
步驟c3,第n-1層節(jié)點(diǎn)在接收到第n層節(jié)點(diǎn)的入簇消息后,檢測(cè)其自身是否為目標(biāo)節(jié)點(diǎn),如果自身為目標(biāo)節(jié)點(diǎn),則將自身設(shè)置為簇頭并廣播成簇消息,通知簇成員節(jié)點(diǎn)進(jìn)入睡眠狀態(tài);若節(jié)點(diǎn)在簇網(wǎng)絡(luò)構(gòu)建時(shí)長(zhǎng)t超時(shí)后仍未收到自身為目標(biāo)節(jié)點(diǎn)的入簇請(qǐng)求消息,則該節(jié)點(diǎn)為普通節(jié)點(diǎn)并進(jìn)入睡眠狀態(tài)。將所有成為簇頭的節(jié)點(diǎn)劃入第n層。至此,完成第n層簇網(wǎng)絡(luò)的構(gòu)建;
本步驟中t取2秒,但t可根據(jù)網(wǎng)絡(luò)規(guī)模、傳感器分布特征、傳感器通信半徑等進(jìn)行調(diào)整;
步驟c4,重復(fù)步驟c1-c3,直至完成整個(gè)無(wú)線傳感網(wǎng)的簇網(wǎng)絡(luò)構(gòu)建;
本步驟中承擔(dān)第n層簇頭以及這些簇頭覆蓋的成員節(jié)點(diǎn)構(gòu)成了第n層簇網(wǎng)絡(luò)。
該方法綜合考慮了簇網(wǎng)絡(luò)的穩(wěn)定性、簇頭節(jié)點(diǎn)負(fù)載與傳輸能力以及對(duì)其他簇結(jié)構(gòu)的影響。簇頭能力值的定義為構(gòu)建合理的初始化簇網(wǎng)絡(luò)提供了支持。簇頭能力值通過(guò)與節(jié)點(diǎn)相關(guān)的路由數(shù)有效地控制新構(gòu)造的簇對(duì)已存在的其他簇產(chǎn)生的影響,同時(shí)使用穩(wěn)定性與父節(jié)點(diǎn)個(gè)數(shù)判斷簇頭傳輸數(shù)據(jù)的能力。
在上述無(wú)線傳感網(wǎng)多層次簇結(jié)構(gòu)初始化構(gòu)建周期結(jié)束后,匯聚節(jié)點(diǎn)將各個(gè)節(jié)點(diǎn)在網(wǎng)絡(luò)中的狀態(tài)通過(guò)廣播分簇消息通知各個(gè)節(jié)點(diǎn);各簇頭節(jié)點(diǎn)在接收到網(wǎng)絡(luò)運(yùn)行消息后,再進(jìn)行轉(zhuǎn)發(fā),通知其鄰居節(jié)點(diǎn),由此,網(wǎng)絡(luò)中所有節(jié)點(diǎn)均可接收到該消息;節(jié)點(diǎn)在接收到廣播分簇消息后,開(kāi)啟運(yùn)行周期,直至能量耗盡;每個(gè)周期包括簇內(nèi)數(shù)據(jù)傳輸階段與簇間數(shù)據(jù)傳輸階段;首先,簇內(nèi)數(shù)據(jù)傳輸階段,簇成員節(jié)點(diǎn)通過(guò)基于競(jìng)爭(zhēng)的介質(zhì)訪問(wèn)控制層協(xié)議將數(shù)據(jù)傳輸至簇頭節(jié)點(diǎn)后進(jìn)入睡眠狀態(tài),直到下一個(gè)周期的簇內(nèi)數(shù)據(jù)傳輸階段的到來(lái);然后,在簇間數(shù)據(jù)傳輸階段,簇頭節(jié)點(diǎn)進(jìn)行數(shù)據(jù)融合,并將數(shù)據(jù)通過(guò)簇頭節(jié)點(diǎn)間轉(zhuǎn)發(fā)至匯聚節(jié)點(diǎn);
簇頭節(jié)點(diǎn)在簇間數(shù)據(jù)傳輸周期結(jié)束時(shí),判斷自身是否能夠繼續(xù)擔(dān)任簇頭。當(dāng)簇頭剩余能量不足以繼續(xù)擔(dān)任簇頭時(shí),進(jìn)入簇頭更新階段。選擇新的簇頭時(shí),充分考慮候選簇頭的剩余能量以及與原簇頭之間距離,盡量避免對(duì)網(wǎng)絡(luò)拓?fù)湓斐蛇^(guò)大的變動(dòng)。同時(shí),節(jié)點(diǎn)在網(wǎng)絡(luò)中承擔(dān)的網(wǎng)絡(luò)負(fù)載以及本身的傳輸能力也是很重要的因素。節(jié)點(diǎn)的網(wǎng)絡(luò)負(fù)載和父節(jié)點(diǎn)個(gè)數(shù)中的任一個(gè)相較另一個(gè)偏大或偏小容易造成網(wǎng)絡(luò)擁塞或資源分配不平衡導(dǎo)致信道資源浪費(fèi)。
一種上述無(wú)線傳感網(wǎng)多層次簇結(jié)構(gòu)中簇頭更新方法,包括如下步驟,
步驟a,簇頭i依據(jù)剩余能量、流量負(fù)載等因素,采用下式評(píng)估是否能夠滿足繼續(xù)擔(dān)任簇頭,若下式不滿足,轉(zhuǎn)步驟b進(jìn)行簇更新;
步驟b,簇頭i通過(guò)廣播簇更新消息,通知其鄰居節(jié)點(diǎn)該進(jìn)入簇頭更新?tīng)顟B(tài);隨后鄰居節(jié)點(diǎn)j根據(jù)雙方位置、j的剩余能量及所在層次的相鄰兩層中的鄰居簇頭信息,按下式計(jì)算自身的簇頭能力值,
d(,)表示簇頭i與節(jié)點(diǎn)j的歐幾里得距離,
步驟c,簇頭i推選具有最大簇頭能力值的節(jié)點(diǎn)作為新簇頭,再分別由簇頭i、新簇頭在各自通信半徑內(nèi)廣播簇頭更換消息,并完成角色轉(zhuǎn)換;
步驟d,收到簇頭i的簇頭更換消息、但未收到來(lái)自新簇頭的簇頭更換消息的節(jié)點(diǎn)根據(jù)鄰居表判斷其通信范圍內(nèi)是否有簇頭鄰居,如有則向簇頭能力值最大的鄰居簇頭發(fā)送請(qǐng)求加入消息,否則進(jìn)入孤立節(jié)點(diǎn)狀態(tài);孤立節(jié)點(diǎn)選擇剩余能量最大的鄰居節(jié)點(diǎn)中繼數(shù)據(jù),后期網(wǎng)絡(luò)運(yùn)行過(guò)程中,如收到新簇頭廣播消息時(shí)加入具有最大簇頭能力值的簇;簇更新造成的孤立簇執(zhí)行步驟b和c進(jìn)行簇更新。
本實(shí)施例通過(guò)基于上述一種無(wú)線傳感網(wǎng)多層次簇結(jié)構(gòu)的分布式路由方法,以說(shuō)明其穩(wěn)定性好、性能高的優(yōu)點(diǎn);
本發(fā)明使用干擾因子為依據(jù)計(jì)算下一跳選擇的概率。具體方案如下:
步驟a,簇頭間通過(guò)hello消息交換彼此的邏輯連接關(guān)系、簇頭負(fù)載預(yù)測(cè)值以及自身的干擾因子,并將其記錄入各自的鄰居表中;鄰居表中,標(biāo)記出簇網(wǎng)絡(luò)構(gòu)建過(guò)程中形成的簇頭間父、子、同層關(guān)系;
本步驟中簇頭i負(fù)載預(yù)測(cè)值的計(jì)算公式如下,
li、lj分別表示簇頭i及其子簇頭j的負(fù)載預(yù)測(cè)值,pj、cj分別表示簇頭j的父簇頭與子簇頭集合;ui為簇頭i所在簇的成員節(jié)點(diǎn)集合,rj表示以i為簇頭的簇內(nèi)成員節(jié)點(diǎn)j上報(bào)數(shù)據(jù)量的數(shù)學(xué)期望;||表示集合中元素的個(gè)數(shù);
步驟b,更新與維護(hù)簇頭i數(shù)據(jù)傳輸對(duì)鄰居簇頭數(shù)據(jù)傳輸?shù)母蓴_因子;
本步驟中確定簇頭i數(shù)據(jù)傳輸對(duì)鄰居簇頭的數(shù)據(jù)傳輸干擾因子的更新與維護(hù),計(jì)算公式如下,
右邊第一項(xiàng)計(jì)算簇頭i對(duì)其父簇頭集合中所有成員的子簇頭數(shù)據(jù)傳輸?shù)母蓴_程度(圖3);第二項(xiàng)計(jì)算簇頭i對(duì)其子簇頭中所有成員數(shù)據(jù)傳輸?shù)母蓴_程度(圖4);第三項(xiàng)計(jì)算簇頭i對(duì)所有同層鄰居簇頭數(shù)據(jù)傳輸?shù)母蓴_程度(圖5);
pi、pk分別為簇頭i和k的父簇頭集合,cj為簇頭j的子簇頭集合,mi為簇頭i通信半徑范圍內(nèi)同層簇頭集合,lk表示簇頭k的流量負(fù)載預(yù)測(cè)值;||表示集合中元素的個(gè)數(shù);
步驟c,下層網(wǎng)絡(luò)簇頭j以所計(jì)算的各父簇頭干擾因子為依據(jù),確定各父簇頭為下一跳的概率;
計(jì)算方法如下,
pj表示簇頭j的父簇頭集合,ifi、ifk分別為簇頭j的父簇頭i、k的干擾因子;x為簇頭j通過(guò)hello消息已獲取干擾因子值的鄰居簇頭數(shù)量,未獲取干擾因子的簇頭i干擾因子值ifi為0,且被選作下一跳的概率為
以上所述僅為本發(fā)明的實(shí)施例而已,并不用于限制本發(fā)明。本發(fā)明可以有各種合適的更改和變化。凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。