一種面向障礙的無線傳感器網(wǎng)絡(luò)連通性恢復(fù)方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明設(shè)及通信領(lǐng)域,特別設(shè)及一種面向障礙的無線傳感器網(wǎng)絡(luò)連通性恢復(fù)方法 及裝置。
【背景技術(shù)】
[0002] 隨著微電子技術(shù)和通信技術(shù)的不斷進(jìn)步,無線傳感器網(wǎng)絡(luò)廣泛應(yīng)用于軍事、環(huán)境 監(jiān)測等多個領(lǐng)域,具有重要的研究價值及應(yīng)用前景。無線傳感器網(wǎng)絡(luò)(WSNs ,Wireless Sensor Networks)往往布置在無人值守的惡劣環(huán)境,節(jié)點容易發(fā)生故障,并且,節(jié)點可能因 電量耗盡而無法工作。網(wǎng)絡(luò)中關(guān)鍵節(jié)點的故障會將無線傳感器網(wǎng)絡(luò)分割成多個不連通的分 區(qū),不同分區(qū)之間的節(jié)點無法協(xié)作完成任務(wù),對網(wǎng)絡(luò)性能產(chǎn)生嚴(yán)重影響。尤其在捜救等應(yīng)用 中,無線傳感器網(wǎng)絡(luò)中的運(yùn)些故障人工很難干預(yù),網(wǎng)絡(luò)連通性的自主恢復(fù)就非常重要。
[0003] 現(xiàn)有技術(shù)中自主恢復(fù)網(wǎng)絡(luò)連通性的方案如下:
[0004] 現(xiàn)有技術(shù)方案一:提出了一種容錯路由恢復(fù)方法,其是針對異構(gòu)無線傳感器網(wǎng)絡(luò) 中由于節(jié)點故障而使網(wǎng)絡(luò)中某條路徑斷開的情況。該方案中,通過構(gòu)建簇內(nèi)多路徑路由生 成圖,進(jìn)行路徑編碼;采用多粒子群免疫協(xié)同優(yōu)化算法來選擇最優(yōu)替代路徑,進(jìn)行路由恢 復(fù),同時也采用了基于該算法的協(xié)議來維護(hù)網(wǎng)絡(luò)系統(tǒng)。但是,該方案是針對由于節(jié)點故障造 成的多條路徑不連通的情況進(jìn)行路由恢復(fù),不適用于大規(guī)模網(wǎng)絡(luò)中由于節(jié)點故障而造成網(wǎng) 絡(luò)分區(qū)的情況。
[0005] 現(xiàn)有技術(shù)方案二:其針對無線網(wǎng)絡(luò)傳感器網(wǎng)絡(luò)節(jié)點故障造成網(wǎng)絡(luò)孤立區(qū)域的問 題,提供了一種無線傳感器網(wǎng)絡(luò)連通性恢復(fù)方法,該方法通過轉(zhuǎn)置節(jié)點將失去連通的孤立 區(qū)域重新連接到最近的連通集,然后再將運(yùn)些連通集連接起來,從來恢復(fù)網(wǎng)絡(luò)的連通性。在 該方案中,需要確定連通集,適用于大面積節(jié)點同時故障造成的網(wǎng)絡(luò)分區(qū)情況,而對少數(shù)節(jié) 點故障造成的網(wǎng)絡(luò)的不連通的情況并不適用。
[0006] 現(xiàn)有技術(shù)方案本方案對于無線傳感器網(wǎng)絡(luò)中節(jié)點故障造成的網(wǎng)絡(luò)分區(qū)問題, 采用的是一種通過節(jié)點移動恢復(fù)網(wǎng)絡(luò)連通性的算法,該算法主要利用了一個分區(qū)中的非關(guān) 鍵節(jié)點向另一個分區(qū)移動,產(chǎn)生級聯(lián)移動,直到兩個分區(qū)連通,同時在節(jié)點移動過程中考慮 了地形的變化對算法的影響。由于該算法采用的是級聯(lián)移動,多個節(jié)點參與移動的同時又 要保證該分區(qū)的連通性,運(yùn)樣就增加了能量消耗和算法復(fù)雜度,同時,只是考慮了節(jié)點在移 動過程中移動路徑上的地形變化的影響,沒有考慮移動過程中遇到障礙的情況,而在現(xiàn)實 中障礙總是不可避免的。
【發(fā)明內(nèi)容】
[0007] 本發(fā)明實施例的目的在于提供一種面向障礙的無線傳感器網(wǎng)絡(luò)連通性恢復(fù)方法 及裝置,旨在及時有效地恢復(fù)網(wǎng)絡(luò)的連通性,既適用于節(jié)點故障造成的多條路徑不連通的 情況,又適用于大面積節(jié)點同時故障造成的網(wǎng)絡(luò)不連通的情況,考慮了移動中繼節(jié)點的移 動路徑中存在障礙的問題。
[0008] 為達(dá)到上述目的,本發(fā)明實施例公開了一種面向障礙的無線傳感器網(wǎng)絡(luò)連通性恢 復(fù)方法,應(yīng)用于無線傳感器網(wǎng)絡(luò),且所述網(wǎng)絡(luò)中具有中繼節(jié)點,設(shè)無線傳感器網(wǎng)絡(luò)存在n個 網(wǎng)絡(luò)分區(qū),每個網(wǎng)絡(luò)分區(qū)用一個分區(qū)節(jié)點表示,則整個無線傳感器網(wǎng)絡(luò)由n個分區(qū)節(jié)點表 示;所述方法包括:
[0009] 構(gòu)建障礙情況下的n個分區(qū)節(jié)點的最小生成樹;
[0010] 在所述構(gòu)建的障礙情況下的n個分區(qū)節(jié)點的最小生成樹的邊上分配靜止中繼節(jié)點 和/或移動中繼節(jié)點;
[0011] 利用所分配的靜止中繼節(jié)點和/或移動中繼節(jié)點,獲得所述中繼節(jié)點所連接的分 區(qū)節(jié)點內(nèi)的網(wǎng)絡(luò)數(shù)據(jù),根據(jù)所獲得的網(wǎng)絡(luò)數(shù)據(jù)連通各分區(qū)節(jié)點,從而恢復(fù)所述n個網(wǎng)絡(luò)分區(qū) 的無線傳感器網(wǎng)絡(luò)的連通。
[0012] 具體的,所述障礙所構(gòu)成的障礙區(qū)域是凸多邊形區(qū)域,且所述凸多邊形頂點個數(shù) 不小于4個,所述構(gòu)建障礙情況下的n個分區(qū)節(jié)點的最小生成樹的步驟包括:
[OOU]利用prim算法構(gòu)建n個分區(qū)節(jié)點的最小生成樹;
[0014]依次判斷所述最小生成樹的每條邊是否穿過障礙區(qū)域,對每條穿過所述障礙區(qū)域 的邊進(jìn)行如下處理:
[001引如果邊ei讀過障礙區(qū)域,所述邊eu的兩個頂點為vi,vj,計算該邊與障礙區(qū)域的交 點,若只有一個交點,則該邊不做處理;若與障礙區(qū)域有兩個交點,則做如下處理:
[0016]若兩交點之間只有一個凸多邊形頂點Pn,則用鏈{vi,Pn,vj代替最小生成樹中邊 Sij ;
[0017]若兩交點之間有多個凸多邊形頂點Pm,Pm+l…,Pm+k-1,則從邊eu的一個頂點Vi按照 順時針方向連接障礙區(qū)域頂點Pm,并依次連接直到連接到該邊的另一個頂點Vj,形成鏈 Iinel: {vi,Pm,Pm+r'' .Pm+k-i,Vj},其中,k為兩交點之間的按順時針方向凸多邊形頂點個數(shù); 并且,從邊61撕該頂點Vi按照逆時針方向連接障礙區(qū)域頂點,形成鏈line2:{vi,Pm+q-lPm+q-2, Pm, Vj,其中,q為兩交點之間的按逆時針方向凸多邊形頂點個數(shù);比較所述鏈Iinel和鏈 line2的長度,取長度小的那條鏈作為該最小生成樹中代替邊eu的鏈Iineij,其中l(wèi)ength (lineij)=min{ length (Iinel), length (I ine2)};
[0018] 獲得由邊和鏈構(gòu)成的障礙情況下的n個分區(qū)節(jié)點的最小生成樹。
[0019] 具體的,所述依次判斷最小生成樹的每條邊是否穿過障礙區(qū)域的方法為:
[0020] 選定最小生成樹的任意一條邊eij,頂點分別為Vi(xi,yi),vj(xj,yj),選定障礙區(qū)域 的任意一條邊efg,頂點分別為乂八町7:)兩(如78),利用所述邊6^和邊6:8的頂點坐標(biāo)分別 建立所述邊eu、邊6扣所在直線的直線方程,
[0021] 求解方程組:
,約束條件為:
[0022] 若方程組有解,識別出最小生成樹的該邊穿過障礙區(qū)域,若方程組無解,則識別最 小生成樹的該邊未穿過障礙區(qū)域。
[0023] 具體的,所述方法還包括:優(yōu)化所構(gòu)建的障礙情況下的n個分區(qū)節(jié)點的最小生成 樹,包括:
[0024] 查看最小生成樹中任意兩個分區(qū)節(jié)點之間的邊,如果某條邊的邊長小于某條鏈的 鏈長,且該邊不經(jīng)過障礙區(qū)域,且不與其他邊形成環(huán),則用所述邊代替所述鏈;
[0025] 如果最小生成樹中有多條邊穿過障礙區(qū)域,且如果所生成的最小生成樹中存在由 多個邊構(gòu)成的環(huán),則將該環(huán)中最長的邊去掉。
[0026] 具體的,所述在所述構(gòu)建的障礙情況下的n個分區(qū)節(jié)點的最小生成樹的邊上分配 靜止中繼節(jié)點/或移動中繼節(jié)點,包括:設(shè)恢復(fù)網(wǎng)絡(luò)連通性需要h個靜止中繼節(jié)點,當(dāng)前可用 的中繼節(jié)點為1個,Kh,且1大于最小生成樹邊和鏈的個數(shù)和;
[0027] 對于所述最小生成樹中的鏈,若鏈長小于所述最小生成樹中邊長的平均值,則直 接在該鏈上分配一個移動中繼節(jié)點,否則,在該鏈整體長度的中點分配一靜止中繼節(jié)點,在 所述中點到所述鏈的兩個端點之間分別分配靜止中繼節(jié)點和/或移動中繼節(jié)點,靜止中繼 節(jié)點和/或移動中繼節(jié)點的個數(shù)滿足如下:使得每個移動中繼節(jié)點在鏈上移動的距離小于 所有邊長的平均值,此時,相對于在該鏈整體上分配靜止中繼節(jié)點能夠節(jié)省中繼節(jié)點X個; [002引將所述最小生成樹的邊按照長度從小到大的順序排序,形成序列化;
[0029] 捜尋所述最小生成樹中至少與兩條邊相連的所有的分區(qū)節(jié)點,將運(yùn)些分區(qū)節(jié)點組 成集合9=地,92,一如}^為集合9中分區(qū)節(jié)點的個數(shù);對于集合9中任一分區(qū)節(jié)點如,從電出 發(fā)的兩條邊連接的另外兩個分區(qū)節(jié)點分別為Vi、Vj,=個分區(qū)節(jié)點構(gòu)成=角形QrViVj,將集合 Q中所有的分區(qū)節(jié)點都分別按照上述處理,獲得多個=角形,由所有的=角形構(gòu)成=角形集 合,對該=角形集合中的=角形按照周長從小到大排序形成序列H2;
[0030] 設(shè)置指針hi指向序列化內(nèi)的第一個邊,指針h2指向序列肥內(nèi)的第一個S角形;
[0031] a)若指針hi指向的邊eij的邊長小于指針h2指向的S角形QrViVj的周長,則選擇邊 eij,在邊eu的兩個頂點(vi,vj)之間分配一個移動中繼節(jié)點,W使所分配的移動中繼節(jié)點在 邊eij的兩個頂點(Vi,Vj)之間移動,此時,相對于在該邊整體上分配靜止中繼節(jié)點能夠節(jié)省 中繼節(jié)點y個,hi指向下一個邊;否則選擇S角形QrViVj,對S角形QrViVj分配一個按照預(yù)設(shè) 軌跡移動的移動中繼節(jié)點,此時,相對于在該=角形上分配靜止中繼節(jié)點能夠節(jié)省中繼節(jié) 點Z個,h2指向下一個S角形;
[0032] b)依次對序列Hl中的邊和序列H2中的執(zhí)行步驟a)中的判斷操作,直到對序列Hl中 所有的邊和序列肥中所有的=角形分配完畢中繼節(jié)點;或者,直到所節(jié)省的中繼節(jié)點總數(shù)X +y+z等于第一差值,所述第一差值為需要的h個靜止中繼節(jié)點的個數(shù)與當(dāng)前可用的中繼節(jié) 點個數(shù)1的差值,結(jié)束分配移動中繼節(jié)點,只給剩余的邊分配靜止中繼節(jié)點。
[0033] 具體的,所述方法還包括:在連通性算法計算過程中,移動中繼節(jié)點按照預(yù)設(shè)軌跡 移動周期性在分區(qū)之間移動并接收目標(biāo)分區(qū)節(jié)點的網(wǎng)絡(luò)數(shù)據(jù),當(dāng)所述移動節(jié)點接收到所述 目標(biāo)分區(qū)節(jié)點的網(wǎng)絡(luò)數(shù)據(jù)時,停止再向所述目標(biāo)分區(qū)節(jié)點移動;
[0034] 所述移動中繼節(jié)點按照預(yù)設(shè)軌跡移動包括兩種情況:
[0035] 當(dāng)移動中繼節(jié)點在兩個分區(qū)節(jié)點組成的邊上移動時,所述預(yù)設(shè)軌跡為兩分區(qū)節(jié)點 的連線上且不在兩分區(qū)節(jié)點的通信范圍內(nèi)的部分線段;
[0036] 當(dāng)移動中繼節(jié)點在=個分區(qū)節(jié)點組成的=角形上移動時,所述預(yù)設(shè)軌跡為第一= 角形的=條邊,所述第一=角形的獲得方法為:將所述=個分區(qū)節(jié)點組成的=角形的重屯、 分別與所述=個分區(qū)節(jié)點連線,并得到與相應(yīng)的分區(qū)節(jié)點的通信范圍所對應(yīng)的圓的交點, 將所得到的=個交點組成第一=角形。
[0037] 為達(dá)到上述目的,本發(fā)明實施例還公開了一種面向障礙的無線傳感器網(wǎng)絡(luò)連通性 恢復(fù)裝置,應(yīng)用于無線傳感器網(wǎng)絡(luò),且所述網(wǎng)絡(luò)中具有中繼節(jié)點,設(shè)無線傳感器網(wǎng)絡(luò)存在n 個網(wǎng)絡(luò)分區(qū),每個網(wǎng)絡(luò)分區(qū)用一個分區(qū)節(jié)點表示,則整個無線傳感器網(wǎng)絡(luò)由n個分區(qū)節(jié)點表 示;所述裝置包括:
[0038] 最小生成樹構(gòu)建單元,用于構(gòu)建障礙情況下的n個分區(qū)節(jié)點的最小生成樹;
[0039] 中繼節(jié)點分配單元,用于在所述構(gòu)建的障礙情況下的n個分區(qū)節(jié)點的最小生成樹 的邊上分配靜止中繼節(jié)點和/或移動中繼節(jié)點;
[0040] 網(wǎng)絡(luò)連通性恢復(fù)單元,用于利用所分配的靜止中繼節(jié)點和/或移動中繼節(jié)點,獲得 所述中繼節(jié)點所連接的分區(qū)節(jié)點內(nèi)的網(wǎng)絡(luò)數(shù)據(jù),根據(jù)所獲得的網(wǎng)絡(luò)數(shù)據(jù)連通各分區(qū)節(jié)點, 從而恢復(fù)所述n個網(wǎng)絡(luò)分區(qū)的無線傳感器網(wǎng)絡(luò)的連通。
[0041] 具體的,所述障礙所構(gòu)成的障礙區(qū)域是凸多邊形區(qū)域,且所述凸多邊形頂點個數(shù) 不小于4個,所述最小生成樹構(gòu)建單元,包括:
[0042] 原始最小生成樹構(gòu)建子單元,用于利用prim算法構(gòu)建n個分區(qū)節(jié)點的最小生成樹;
[0043] 判斷子單元,用于依次判斷所述最小生成樹的每條邊是否穿過障礙區(qū)域,對每條 穿過所述障礙區(qū)域的邊進(jìn)行如下處理:
[0044] 如果邊ei讀過障礙區(qū)域,所述邊eu的兩個頂點為vi,vj,計算該邊與障礙區(qū)域的交 點,若只有一個交點,則該邊不做處理;若與障礙區(qū)域有兩個交