本發(fā)明涉及無線傳感
技術(shù)領(lǐng)域:
,尤其是涉及一種無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的部署修復(fù)方法及系統(tǒng)。
背景技術(shù):
:當(dāng)無線傳感器網(wǎng)絡(luò)發(fā)生單個(gè)節(jié)點(diǎn)故障時(shí),可以采取移動(dòng)網(wǎng)絡(luò)中的其他節(jié)點(diǎn)的方法進(jìn)行修復(fù)。但在網(wǎng)絡(luò)因遭到大規(guī)模破壞而被分割成多個(gè)子塊,且每個(gè)子塊之間距離較遠(yuǎn)的情況下,一般采用部署新節(jié)點(diǎn)的方法進(jìn)行修復(fù)。在制定修復(fù)算法時(shí),一般情況下將各個(gè)無法通信的子塊看成是一個(gè)一個(gè)的節(jié)點(diǎn)。修復(fù)算法的目標(biāo)便是通過在這些節(jié)點(diǎn)之間建立連通路徑來達(dá)到修復(fù)目的。在不考慮網(wǎng)絡(luò)的容錯(cuò)性的情況下,在建立連通的路徑時(shí),一般結(jié)合斯坦納樹原理來設(shè)計(jì)修復(fù)算法。Lin等人證明了SMT-MSP問題是NP困難問題,同時(shí)提出了一個(gè)簡單的最小生成樹算法來修復(fù)網(wǎng)絡(luò)連接。Lloyd等人提出了MST_1TRNP算法,該算法首先通過Kruskal算法或Prim算法生成一棵最小生成樹,其次在最小生成樹的每條邊部署一定數(shù)量的中繼節(jié)點(diǎn)來修復(fù)網(wǎng)絡(luò)連接。但MST_1TRNP算法并非最優(yōu)算法,該算法所用的中繼節(jié)點(diǎn)數(shù)目相對較多。Senel等人提出了FeSTA算法,該算法將網(wǎng)絡(luò)中的各個(gè)子塊看成是一個(gè)一個(gè)的節(jié)點(diǎn)。首先找到平面內(nèi)的所有三角形,并將這些三角形的周長從小到大進(jìn)行排列。其次,該算法從周長最小的三角形開始,判斷組成這個(gè)三角形的3個(gè)點(diǎn)是否已經(jīng)有邊。若這3點(diǎn)中至少有2個(gè)點(diǎn)沒有邊,則判斷這3個(gè)點(diǎn)組成的三角形是否存在斯坦納點(diǎn)。若有,則將這3個(gè)點(diǎn)與斯坦納點(diǎn)連接;若沒有,則將這3個(gè)點(diǎn)按照最小生成樹方式連接。當(dāng)所有三角形都判斷過之后,可能整個(gè)網(wǎng)絡(luò)依然處于分塊狀態(tài),便將每個(gè)分塊與最近的分塊相連,使得整個(gè)網(wǎng)絡(luò)形成一個(gè)整體。當(dāng)網(wǎng)絡(luò)中不再有分塊之后,該算法遍歷整個(gè)網(wǎng)絡(luò),判斷網(wǎng)絡(luò)中是否存在需要優(yōu)化的路徑。若有,則將最小生成樹方式連接的路徑改為斯坦納樹方式連接。該算法在所需的中繼節(jié)點(diǎn)數(shù)目、修復(fù)之后的平均節(jié)點(diǎn)度等方面均比其他算法更優(yōu),但該算法的時(shí)間復(fù)雜度較高。技術(shù)實(shí)現(xiàn)要素:本發(fā)明所要解決的技術(shù)問題是:提供了一種無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)部署修復(fù)方法,以平衡節(jié)點(diǎn)能耗,延長網(wǎng)絡(luò)生存周期。為了解決上述技術(shù)問題,本發(fā)明采用的技術(shù)方案為:提供一種無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的部署修復(fù)方法,包括:在無線傳感器網(wǎng)絡(luò)子塊間生成最小生成樹;在最小生成樹上獲取斯坦納點(diǎn),并與節(jié)點(diǎn)連接,形成部署邊;在部署邊上部署中繼節(jié)點(diǎn),實(shí)現(xiàn)網(wǎng)絡(luò)連接修復(fù)。為解決上述問題,本發(fā)明還提供一種無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的部署修復(fù)系統(tǒng),包括:生成樹模塊,用于在無線傳感器網(wǎng)絡(luò)子塊間生成最小生成樹;部署邊模塊,用于在最小生成樹上獲取斯坦納點(diǎn),并與節(jié)點(diǎn)連接,形成部署邊;部署模塊,用于在部署邊上部署中繼節(jié)點(diǎn),實(shí)現(xiàn)網(wǎng)絡(luò)連接修復(fù)。本發(fā)明的有益效果在于:區(qū)別于現(xiàn)有技術(shù),本發(fā)明在各子塊間生成最小生成樹;并從樹上獲取斯坦納點(diǎn),與節(jié)點(diǎn)連接,形成部署中繼節(jié)點(diǎn)的部署邊。通過上述方式,本發(fā)明不僅有效地節(jié)約了修復(fù)成本,而且該方法所構(gòu)建的網(wǎng)絡(luò)拓?fù)渚哂休^高的平均節(jié)點(diǎn)度,使得修復(fù)之后的網(wǎng)絡(luò)具有較好的性能。附圖說明圖1為本發(fā)明方法實(shí)施例一的流程示意圖;圖2為本發(fā)明具體實(shí)施例中IMST算法與現(xiàn)有的MST_1TRNP算法和FeSTA算法的總移動(dòng)距離對比直方圖;圖3為本發(fā)明具體實(shí)施例中IMST算法與現(xiàn)有的MST_1TRNP算法和FeSTA算法的中繼節(jié)點(diǎn)個(gè)數(shù)對比直方圖;圖4為本發(fā)明具體實(shí)施例中IMST算法與現(xiàn)有的MST_1TRNP算法和FeSTA算法的中繼節(jié)點(diǎn)個(gè)數(shù)對比直方圖;圖5為本發(fā)明具體實(shí)施例中IMST算法與現(xiàn)有的MST_1TRNP算法和FeSTA算法的所有節(jié)點(diǎn)的平均節(jié)點(diǎn)度對比直方圖;圖6為本發(fā)明具體實(shí)施例中IMST算法與現(xiàn)有的MST_1TRNP算法和FeSTA算法的內(nèi)部中繼節(jié)點(diǎn)的平均節(jié)點(diǎn)度對比直方圖;圖7為本發(fā)明具體實(shí)施例中IMST算法與現(xiàn)有的MST_1TRNP算法和FeSTA算法的所有節(jié)點(diǎn)的平均節(jié)點(diǎn)度對比直方圖;圖8為本發(fā)明具體實(shí)施例中IMST算法與現(xiàn)有的MST_1TRNP算法和FeSTA算法的內(nèi)部中繼節(jié)點(diǎn)的平均節(jié)點(diǎn)度對比直方圖。具體實(shí)施方式為詳細(xì)說明本發(fā)明的技術(shù)內(nèi)容、所實(shí)現(xiàn)目的及效果,以下結(jié)合實(shí)施方式并配合附圖予以說明。本發(fā)明最關(guān)鍵的構(gòu)思在于:在各子塊中生成最小生成樹,并從最小生成樹上獲取斯坦納點(diǎn),并連接節(jié)點(diǎn),作為需要部署中繼節(jié)點(diǎn)的邊。請參照圖1,本發(fā)明實(shí)施例一提供一種無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的部署修復(fù)方法,包括:S1:在無線傳感器網(wǎng)絡(luò)子塊間生成最小生成樹;S2:在最小生成樹上獲取斯坦納點(diǎn),并與節(jié)點(diǎn)連接,形成部署邊;S3:在部署邊上部署中繼節(jié)點(diǎn),實(shí)現(xiàn)網(wǎng)絡(luò)連接修復(fù)。區(qū)別于現(xiàn)有技術(shù),本發(fā)明在各子塊間生成最小生成樹;并從樹上獲取斯坦納點(diǎn),與節(jié)點(diǎn)連接,形成部署中繼節(jié)點(diǎn)的部署邊。通過上述方式,本發(fā)明不僅有效地節(jié)約了修復(fù)成本,而且該方法所構(gòu)建的網(wǎng)絡(luò)拓?fù)渚哂休^高的平均節(jié)點(diǎn)度,使得修復(fù)之后的網(wǎng)絡(luò)具有較好的性能。本發(fā)明是將每個(gè)子塊看成是單個(gè)獨(dú)立的節(jié)點(diǎn)。因?yàn)樾迯?fù)一個(gè)故障網(wǎng)絡(luò)需要耗費(fèi)一定的成本,部署的節(jié)點(diǎn)越多,所需的成本就越高。因此,本發(fā)明考慮的是:如何在完成網(wǎng)絡(luò)連接修復(fù)目標(biāo)的同時(shí),最小化所用的節(jié)點(diǎn)數(shù)目。首先對本發(fā)明所涉及的相關(guān)術(shù)語進(jìn)行定義:定義1,斯坦納點(diǎn):給定ΔABC,若ΔABC的內(nèi)角均不大于120°,則該三角形內(nèi)存在一點(diǎn)Ps到A,B,C三個(gè)點(diǎn)的距離之和不大于其他點(diǎn)到這三點(diǎn)的距離之和,則點(diǎn)Ps稱為斯坦納點(diǎn)。假設(shè)Ps到A,B,C三個(gè)點(diǎn)的距離分別為||PsA||、||PsB||、||PsC||,則有||PsA||+||PsB||+||PsC||≤min{||AB||+||AC||,||AB||+||BC||,||AC||+||BC||};即斯坦納點(diǎn)與三點(diǎn)相連接形成的路徑長度≤三點(diǎn)以最小生成樹方式連接所形成的總路徑長度。定義2,兩個(gè)子塊之間所需部署的中繼節(jié)點(diǎn)數(shù)目:給定兩個(gè)點(diǎn)A和B,坐標(biāo)分別為(x1,y1)、(x2,y2),在A,B之間部署通信半徑為R的中繼節(jié)點(diǎn),則所需部署的個(gè)數(shù)為具體計(jì)算方法為:其中為A,B之間的歐幾里德距離。定義3,以斯坦納樹方式連接的三個(gè)子塊之間所需的中繼節(jié)點(diǎn)數(shù)目:給定三個(gè)點(diǎn)A,B,C,坐標(biāo)分別為(x1,y1)、(x2,y2)、(x3,y3),并且三個(gè)點(diǎn)組成的ΔABC中存在斯坦納點(diǎn)Ps,坐標(biāo)為(x,y),則在A、B、C與Ps之間需部署的中繼節(jié)點(diǎn)個(gè)數(shù)分別為和則四個(gè)點(diǎn)之間部署的中繼節(jié)點(diǎn)總個(gè)數(shù)為具體計(jì)算方法為((x1-x)2+(y1-y)2R-1)+((x2-x)2+(y2-y)2R-1)+((x3-x)2+(y3-y)2R-1)+1=(x1-x)2+(y1-y)2R+(x2-x)2+(y2-y)2R(x3-x)2+(y3-y)2R-2]]>其中,表示上取整,如N=16時(shí),則表示下取整,如N=16時(shí),則本發(fā)明在實(shí)際操作中,包括如下步驟:步驟1.初始化。假設(shè)平面上有n個(gè)節(jié)點(diǎn)(子塊),所有節(jié)點(diǎn)的坐標(biāo)與所要部署的節(jié)點(diǎn)的通信半徑為已知。步驟2.生成最小生成樹。采用Kruskal算法在所有點(diǎn)中生成一棵最小生成樹,并將所有點(diǎn)標(biāo)記為未搜索過。應(yīng)當(dāng)說明的是,初始化的時(shí)候,因?yàn)樗泄?jié)點(diǎn)都未被搜索過,所以就全部標(biāo)記為“未搜索過”(假設(shè)未被搜索過標(biāo)記為0,搜索過標(biāo)記為1)。搜索指的是算法的遍歷查找。在一個(gè)數(shù)組中儲(chǔ)存所有節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)在一個(gè)時(shí)刻只能具有一個(gè)狀態(tài)(如設(shè)初始狀態(tài)值為0)。當(dāng)算法開始執(zhí)行時(shí),從第一個(gè)節(jié)點(diǎn)開始遍歷,每遍歷一個(gè)節(jié)點(diǎn),如果這個(gè)節(jié)點(diǎn)滿足要求,則這個(gè)節(jié)點(diǎn)的狀態(tài)就從0變成1。狀態(tài)變成1的節(jié)點(diǎn)就是搜索過的節(jié)點(diǎn)。狀態(tài)為0的節(jié)點(diǎn)就是未被搜索過的節(jié)點(diǎn)。步驟3.查找滿足條件的斯坦納點(diǎn)。從最小生成樹最長的邊對應(yīng)的點(diǎn)vi開始,判斷該點(diǎn)是否被搜索過。若該點(diǎn)未被搜索過,則判斷該點(diǎn)是否至少有2條邊。若該點(diǎn)的邊數(shù)大于或等于2,則找出該點(diǎn)的邊中最長的兩條邊,并找出這兩條邊對應(yīng)的另外兩個(gè)點(diǎn)vj和vk。判斷vi、vj和vk這三個(gè)點(diǎn)是否都被搜索過。若這三個(gè)點(diǎn)中至多只有一個(gè)點(diǎn)被搜索過,則判斷這三點(diǎn)組成的三角形是否存在斯坦納點(diǎn)。若存在,則找到斯坦納點(diǎn),并刪除這三點(diǎn)原有的邊,將這三個(gè)點(diǎn)與斯坦納點(diǎn)連接,形成新的邊,并將這三點(diǎn)vi、vj和vk標(biāo)記為已搜索過。當(dāng)所有點(diǎn)均被搜索過之后,執(zhí)行下一個(gè)步驟。步驟3中“判斷是否被搜索過”是針對全局來說明的。指的是每搜索到一個(gè)節(jié)點(diǎn)的時(shí)候,都進(jìn)行判斷是否標(biāo)記為0(第一次搜索到的節(jié)點(diǎn)均標(biāo)記為0,第二次開始搜索到的節(jié)點(diǎn)就可能標(biāo)記為0,也可能標(biāo)記為1)。舉個(gè)例子:假設(shè)有五個(gè)點(diǎn)A、B、C、D、E,連接方式為:A—B—C—D—E。并假設(shè)每條邊的長度關(guān)系為AB邊長>BC邊長>CD邊長>DE邊長。A、B、C、D、E全部標(biāo)記為0。因?yàn)锳B邊最長,本發(fā)明從A開始搜索,判斷A是否標(biāo)記為0,若是,再判斷A是否有2條邊,反之,則搜索B。此時(shí)B為0,且B有兩條邊。這兩條邊對應(yīng)的點(diǎn)分別為A和C。判斷A、B、C這3點(diǎn)是否至少2個(gè)為0,若是,則判斷△ABC是否存在斯坦納點(diǎn),假如存在,則找到這個(gè)斯坦納點(diǎn)Q,將AB之間的邊刪除,將BC之間的邊刪除,將A、B、C與Q連接,并將ABC這三點(diǎn)標(biāo)記為1。若上述中的點(diǎn)對應(yīng)的邊小于2,則搜索下一個(gè)點(diǎn)。而對于B來說,其對應(yīng)兩邊的頂點(diǎn)A、C可通過下述方式確定:假設(shè)上述五個(gè)點(diǎn)A、B、C、D、E中,最小生成樹的連接方式為:A—B—C—D—E。在最小生成樹的點(diǎn)集中存儲(chǔ)的內(nèi)容為{ABBCCDDE}。當(dāng)搜索到B時(shí),若B為偶數(shù),則前一個(gè)點(diǎn)(A)為它對應(yīng)的邊的點(diǎn);若B為奇數(shù),則后一個(gè)點(diǎn)(C)為它對應(yīng)的邊的點(diǎn),這樣就找到了B對應(yīng)的另外兩個(gè)點(diǎn)A和C了。所以,若確定某個(gè)點(diǎn)的對應(yīng)的另外兩個(gè)點(diǎn),只需知道該點(diǎn)在集合中的位置即可。步驟4.沿著所有邊部署新的節(jié)點(diǎn),完成網(wǎng)絡(luò)連接修復(fù)。具體地,上述步驟可通過下述數(shù)理進(jìn)行說明:S1.生成最小生成樹以及對應(yīng)的點(diǎn)集Vmt,Vmt={v1,v2,…,v(n-1)×2},|Vmt|=(n-1)×2,其中,n表示子塊數(shù)。S2.初始化中繼節(jié)點(diǎn)個(gè)數(shù)m=0,并將每個(gè)節(jié)點(diǎn)st都標(biāo)記為未被搜索,st∈S。每個(gè)vi∈Vmt都對應(yīng)一個(gè)st。每個(gè)st都對應(yīng)多個(gè)vi。vi對應(yīng)的st未被搜索過,則說明vi未被搜索過。本發(fā)明中,若vi未被搜索過,則表示vi對應(yīng)的st未被搜索過。S3.從Vmt的最后一個(gè)節(jié)點(diǎn)開始,對于每個(gè)vi∈Vmt執(zhí)行以下步驟:如果vi未被搜索過,且vi至少有兩條邊;則找出vi的兩條最長的邊對應(yīng)的兩個(gè)頂點(diǎn)vj,vk;如果vi,vj,vk三個(gè)點(diǎn)中最多只有一個(gè)點(diǎn)被搜索過,且vi,vj,vk三點(diǎn)組成的三角形有斯坦納點(diǎn)Ps;則在vi與Ps之間部署個(gè)中繼節(jié)點(diǎn),分別為{pm+1,pm+2,…,pm+m′},并更新m=m+m′;在vj與Ps之間部署個(gè)中繼節(jié)點(diǎn),分別為{pm+1,pm+2,…,pm+m′},并更新m=m+m′;在vk與Ps之間部署個(gè)中繼節(jié)點(diǎn),分別為{pm+1,pm+2,…,pm+m′,Ps},并更新m=m+m′+1S4.對于每個(gè)vi∈Vmt,執(zhí)行以下步驟:如果vi對應(yīng)的st未被搜索過,則找出vi的邊對應(yīng)的頂點(diǎn)vj;并在vi與vj之間部署個(gè)中繼節(jié)點(diǎn),分別為{pm+1,pm+2,…,pm+m′}同時(shí)更新m=m+m′。執(zhí)行上述S1~S3的步驟后,只有符合要求的子塊的狀態(tài)才會(huì)從0變成1,不符合要求的子塊的狀態(tài)依舊保持0。所以,在所有的節(jié)點(diǎn)遍歷一遍之后,可能存在個(gè)別子塊狀態(tài)還是0的情況。所以步驟S4獲取未被搜索過的子塊,并在該子塊中最小生成樹的邊上部署中繼節(jié)點(diǎn)。為方便理解上述步驟,以下通過具體的定理證明來輔助描述。定理1:算法的時(shí)間復(fù)雜度為O(n2),n為子塊的個(gè)數(shù)。證明:Step1中生成一棵最小生成樹最壞情況下的時(shí)間復(fù)雜度為O(n2)。Step2中標(biāo)記st,其時(shí)間復(fù)雜度取決于S的大小,而|S|=n,所以Step2的時(shí)間復(fù)雜度為O(n)。Step3的時(shí)間復(fù)雜度取決于Vmt的大小,而|Vmt|=(n-1)×2,所以Step3的時(shí)間復(fù)雜度為O(n)。類似地,Step4的時(shí)間復(fù)雜度也為O(n),所以本發(fā)明的IMST算法的時(shí)間復(fù)雜度為O(n2)。(FeSTA算法的時(shí)間復(fù)雜度為O(n4))定理2:從最長的邊開始搜索,修復(fù)之后所需部署的節(jié)點(diǎn)數(shù)目更少。證明:假設(shè)現(xiàn)有A,B,C和A′,B′,C′6個(gè)點(diǎn),A,B,C三個(gè)點(diǎn)所組成的三角形ΔABC是周長最小的三角形,邊長分別為||AB||、||AC||、||BC||,A′,B′,C′三個(gè)點(diǎn)所組成的三角形ΔA′B′C′是周長最大的三角形,邊長分別為α×||AB||、β×||AC||、γ×||BC||,其中,α≥1、β≥1、γ≥1。假設(shè)最小三角形ΔABC和最大三角形ΔA′B′C′都存在斯坦納點(diǎn),并且斯坦納樹的總路徑長度/最小生成樹的總路徑長度=δ、0<δ≤1。A,B,C三個(gè)點(diǎn)的最小生成樹路徑長度為L=min{||AB||+||AC||,||AB||+||BC||,||AC||+||BC||}(4-1)假設(shè)Lmin=||AB||+||AC||,形成斯坦納樹之后的總路徑長度為δ×(||AB||+||AC||),減少的長度為(1-δ)×(||AB||+||AC||)(4-2)A′,B′,C′三個(gè)點(diǎn)的最小生成樹路徑長度為L′=min{α×||AB||+β×||AC||,α×||AB||+γ×||BC||,β×||AC||+γ×||BC||}(4-3)假設(shè)L′min=α×||AB||+β×||AC||,形成斯坦納樹之后的距離為δ×(α×||AB||+β×||AC||)(4-4)減少的長度為(1-δ)×(α×||AB||+β×||AC||)(4-5)假設(shè)α≤β,則有(1-δ)×(α×||AB||+β×||AC||)≥α×(1-δ)×(||AB||+||AC||)(4-6)因?yàn)棣痢?,所以(1-δ)×(α×||AB||+β×||AC||)≥α×(1-δ)×(||AB||+||AC||)≥(1-δ)×(||AB||+||AC||)(4-7)綜上所述,從最長的邊開始搜索,比從最短的邊開始搜索,可以更好地減少總路徑的長度??偮窂介L度越短,修復(fù)所需的節(jié)點(diǎn)數(shù)目就越少。定理3:本發(fā)明的IMST算法一定是收斂的,即最終可以將所有子塊連接起來。證明:本發(fā)明的IMST算法首先生成一棵最小生成樹,并存下最小生成樹對應(yīng)的點(diǎn)集Vmt={v1,v2,…,v(n-1)×2},子塊對應(yīng)的集合為S={s1,s2,…,sn},n為子塊個(gè)數(shù),則最小生成樹對應(yīng)的邊集為Emt={vi,vi+1},imod2=1{vi,vi-1},imod2=0,vi,vi+1,vi-1∈Vmt---(4-8)]]>生成的最小生成樹將所有子塊連接起來之后,算法在搜索斯坦納點(diǎn)的過程中,首先判斷vi,vi+1,vj(i+1≠j,imod2=1)(imod2=0的情況類似)三點(diǎn)組成的三角形是否存在斯坦納點(diǎn),若存在斯坦納點(diǎn)Ps,則刪除現(xiàn)有的連接E′mt=Emt-{vi,vi+1}-{vi,vj}(4-9)將vi,vi+1,vj三點(diǎn)與Ps相連,修改之后的連接方式為Emt={{vi,Ps},{vi+1,Ps},{vj,Ps}Emt′,vi,vi+1,vj∈Vmt---(4-10)]]>此時(shí)vi,vi+1,vj三點(diǎn)之間依舊保持連通,除了vi,vi+1,vj三點(diǎn)之外的其他點(diǎn)的連接并不受影響,也就是說,本發(fā)明的IMST算法并沒有影響所有節(jié)點(diǎn)的連通性。因此,在算法運(yùn)行結(jié)束之后,所有子塊之間依舊是連通的。定理4:在子塊個(gè)數(shù)n一定的情況下,部署的中繼節(jié)點(diǎn)個(gè)數(shù)m越小(或中繼節(jié)點(diǎn)的通信半徑R越大),則所有節(jié)點(diǎn)的平均節(jié)點(diǎn)度Dall-nodes越小,而網(wǎng)絡(luò)內(nèi)部中繼節(jié)點(diǎn)的平均節(jié)點(diǎn)度Dinter-relay-nodes越大,且滿足2≤Dinter-relay-nodes≤3。證明:(1)修復(fù)之前有n個(gè)子塊,修復(fù)之后所有點(diǎn)的平均節(jié)點(diǎn)度Dall-nodes為Dall-nodes=2(m+n-1)m+n=2-2m+n---(4-11)]]>所以,當(dāng)n的值固定時(shí),m越小,越大,越小,即Dall-nodes越小。因?yàn)長為修復(fù)之后的總路徑長度,所以當(dāng)給定子塊的分布情況時(shí)(即n的值固定時(shí)),修復(fù)之后的總路徑長度L隨即確定,此時(shí),若R越大,則m越小,而Dall-nodes越小。(2)修復(fù)之前有n個(gè)子塊,假設(shè)修復(fù)之后的網(wǎng)絡(luò)中有ms個(gè)斯坦納點(diǎn),則修復(fù)之后內(nèi)部所有節(jié)點(diǎn)的平均節(jié)點(diǎn)度Dinter-relay-nodes為Dinter-relay-nodes=3×ms+2×(m-ms)m=ms+2×mm=2+msm---(4-12)]]>因?yàn)?≤ms≤m,所以有即2≤Dinter-relay-nodes≤3其中,ms滿足當(dāng)給定子塊的分布情況時(shí)(n的值固定),ms和總路徑長度L也隨即固定,若中繼節(jié)點(diǎn)的覆蓋半徑R越大,則修復(fù)所用的中繼節(jié)點(diǎn)的個(gè)數(shù)m越小,則越大。從仿真分析角度來看,修復(fù)之后的總路徑長度、修復(fù)所需的節(jié)點(diǎn)個(gè)數(shù)以及平均節(jié)點(diǎn)度三個(gè)方面對本發(fā)明的IMST算法與現(xiàn)有的MST_1TRNP算法和FeSTA算法進(jìn)行對比與分析。1、總路徑與總節(jié)點(diǎn)個(gè)數(shù)圖2是三個(gè)算法在不同分塊個(gè)數(shù)的情況下的拓?fù)淇偮窂介L度的比較。從橫向上來看,三個(gè)算法的總路徑長度大致都隨著分塊個(gè)數(shù)的增加而增加。這是因?yàn)楫?dāng)區(qū)域中分塊個(gè)數(shù)增加時(shí),連接各個(gè)分塊的邊增加,所有邊相加的總和變大,因此總路徑變長。從縱向上來看,不管區(qū)域中的分塊個(gè)數(shù)是多少,本發(fā)明的IMST算法都比另外兩種算法的總路徑更短。這是因?yàn)镸ST_1TRNP算法直接生成最小生成樹,而最小生成樹的總路徑長度大于斯坦納樹,所以MST_1TRNP算法的路徑總長度大于FeSTA算法和IMST算法。又因?yàn)镕eSTA算法是從周長最小的三角形開始查找斯坦納點(diǎn),而定理2已經(jīng)證明了從最長的邊開始搜索將會(huì)有更短的路徑長度。因此,本發(fā)明的IMST算法優(yōu)于另外兩種算法。圖3跟圖2基本類似,因?yàn)槊織l邊所需的節(jié)點(diǎn)個(gè)數(shù)等于也就是圖3跟圖2基本成正比。而圖3并不完全跟圖2相同,因?yàn)樵谟?jì)算每條邊所需部署的節(jié)點(diǎn)個(gè)數(shù)時(shí),需要減去1。從圖3中可以看到,隨著分塊個(gè)數(shù)的增加,修復(fù)所需要的中繼節(jié)點(diǎn)個(gè)數(shù)也隨之增加。與另外兩個(gè)算法相比,本發(fā)明的IMST算法在不同的分塊個(gè)數(shù)的情況下,都使用了較少的中繼節(jié)點(diǎn)個(gè)數(shù),所以本發(fā)明的IMST算法在所需中繼節(jié)點(diǎn)個(gè)數(shù)方面優(yōu)于其他兩種算法。圖4是從通信半徑與所需的中繼節(jié)點(diǎn)個(gè)數(shù)進(jìn)行對比。當(dāng)兩點(diǎn)之間的距離固定時(shí),通信半徑越大,所需的中繼節(jié)點(diǎn)個(gè)數(shù)就越少。因此,從圖4中可以看出,當(dāng)中繼節(jié)點(diǎn)的通信半徑增大時(shí),三個(gè)算法所需的中繼節(jié)點(diǎn)個(gè)數(shù)都減少。從縱向上來看,本發(fā)明的IMST算法隨著通信半徑的增大,所需的中繼節(jié)點(diǎn)個(gè)數(shù)都比其他兩種算法少??傊?,不管從哪個(gè)方面進(jìn)行對比,都說明了本發(fā)明的IMST算法所用的節(jié)點(diǎn)數(shù)目均比其他算法更少,更能節(jié)約故障修復(fù)的成本。2、平均節(jié)點(diǎn)度平均節(jié)點(diǎn)度可以反映出網(wǎng)絡(luò)拓?fù)涞纳嫘阅堋.?dāng)拓?fù)涞钠骄?jié)點(diǎn)度越大,每個(gè)節(jié)點(diǎn)具有的邊越多,拓?fù)涞聂敯粜栽胶谩R虼?,這部分從平均節(jié)點(diǎn)度方面對所提出的算法進(jìn)行評估,并且通過與另外兩種算法的對比,證明本發(fā)明的IMST算法所形成的拓?fù)浣Y(jié)構(gòu)有更好的魯棒性。圖5和圖6中中繼節(jié)點(diǎn)的通信半徑為固定值。從圖5和圖6可以看出,隨著分區(qū)個(gè)數(shù)的增加,平均節(jié)點(diǎn)度也隨之增大。這是由于隨著分區(qū)個(gè)數(shù)的增加,網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)變得復(fù)雜,平均每個(gè)節(jié)點(diǎn)具有的邊更多,所以平均節(jié)點(diǎn)度隨著分區(qū)個(gè)數(shù)的增加而增大。而本發(fā)明的IMST算法在分區(qū)個(gè)數(shù)相同的情況下,比其他算法具有更大的平均節(jié)點(diǎn)度,說明本發(fā)明的IMST算法所形成的網(wǎng)絡(luò)拓?fù)漪敯粜阅芨?。圖7和圖8描述的是通信半徑和平均節(jié)點(diǎn)度的關(guān)系??梢钥闯?,在分區(qū)個(gè)數(shù)一定的情況下,隨著通信半徑的增大,所有節(jié)點(diǎn)的平均節(jié)點(diǎn)度均降低(圖7),而內(nèi)部中繼節(jié)點(diǎn)的平均節(jié)點(diǎn)度均增大(圖8),與定理4的證明結(jié)果相符。不管是從所有節(jié)點(diǎn)的平均節(jié)點(diǎn)度方面,還是從內(nèi)部節(jié)點(diǎn)的平均節(jié)點(diǎn)度方面進(jìn)行對比,都可以看出本發(fā)明的IMST算法明顯優(yōu)于其他兩種算法的平均節(jié)點(diǎn)度,說明了在不同通信半徑的情況下,IMST算法也具有更好的魯棒性。對應(yīng)地,本發(fā)明實(shí)施例二還提供一種無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)的部署修復(fù)系統(tǒng),包括:生成樹模塊,用于在無線傳感器網(wǎng)絡(luò)子塊間生成最小生成樹;部署邊模塊,用于在最小生成樹上獲取斯坦納點(diǎn),并與節(jié)點(diǎn)連接,形成部署邊;部署模塊,用于在部署邊上部署中繼節(jié)點(diǎn),實(shí)現(xiàn)網(wǎng)絡(luò)連接修復(fù)。其中,所述系統(tǒng)還包括初始化模塊,用于:獲取無線傳感器節(jié)點(diǎn)及其坐標(biāo),以及中繼節(jié)點(diǎn)的通信半徑;將所有無線傳感器節(jié)點(diǎn)標(biāo)記為未被搜索過;根據(jù)節(jié)點(diǎn)坐標(biāo)將無線傳感器網(wǎng)絡(luò)劃分成若干個(gè)子塊。所述子塊包含至少一個(gè)節(jié)點(diǎn),當(dāng)子塊未被搜索過,則子塊內(nèi)包含的節(jié)點(diǎn)標(biāo)記為未被搜索過。所述部署邊模塊具體用于:獲取最小生成樹的邊,并按邊長進(jìn)行排序從最長邊開始,依序擇取最長邊一端的節(jié)點(diǎn);判斷該節(jié)點(diǎn)是否被搜索過,若是,則忽略該節(jié)點(diǎn),并擇取最長邊另一端的節(jié)點(diǎn);反之,則判斷經(jīng)過該節(jié)點(diǎn)的邊是否小于2條,若是,則忽略該節(jié)點(diǎn),并擇取最長邊另一端的節(jié)點(diǎn);反之,則擇取經(jīng)過該節(jié)點(diǎn)的最長兩條邊上的兩個(gè)節(jié)點(diǎn);判斷上述三個(gè)節(jié)點(diǎn)是否至少有兩個(gè)節(jié)點(diǎn)被搜索過,若是,則忽略該節(jié)點(diǎn),并擇取最長邊另一端的節(jié)點(diǎn)反之,則判斷上述三個(gè)節(jié)點(diǎn)組成的三角形是否存在斯坦納點(diǎn),若是,則去除該三角形原有的邊,并將上述三個(gè)節(jié)點(diǎn)與所述斯坦納點(diǎn)連接,生成部署邊,并將三個(gè)節(jié)點(diǎn)標(biāo)記為被搜索過;反之,則忽略該節(jié)點(diǎn),并擇取最長邊另一端的節(jié)點(diǎn)。所述部署模塊具體用于:根據(jù)中繼節(jié)點(diǎn)的通信半徑,從三個(gè)節(jié)點(diǎn)開始沿著部署邊部署中繼節(jié)點(diǎn);獲取未被搜索過的子塊,并在該子塊中最小生成樹的邊上部署中繼節(jié)點(diǎn)。以上所述僅為本發(fā)明的實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等同變換,或直接或間接運(yùn)用在相關(guān)的
技術(shù)領(lǐng)域:
,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。當(dāng)前第1頁1 2 3