無線傳感器網(wǎng)絡(luò)的容錯修復(fù)方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種無線傳感器網(wǎng)絡(luò)的容錯修復(fù)方法,包括:獲取無線傳感器節(jié)點及其坐標(biāo)、通信半徑;確定節(jié)點的外凸包,并計算所述外凸包的中心節(jié)點坐標(biāo)及各邊長;分別將外凸包拐點與中心節(jié)點連接,根據(jù)通信半徑,確定連線上需要部署節(jié)點及其數(shù)量;在內(nèi)凸包邊上部署節(jié)點,使得內(nèi)凸包拐點均為三連接;獲取外凸包上不相鄰邊,并在其上部署節(jié)點,形成二連接。通過上述方式,本發(fā)明以不同角度解決了無線傳感器網(wǎng)絡(luò)連接修復(fù)問題,并分別實現(xiàn)了網(wǎng)絡(luò)的容錯性,既減少部署的節(jié)點數(shù)目,具有更大的覆蓋面積和更好的拓撲質(zhì)量,更能抵抗后續(xù)的攻擊和破壞,更符合無線傳感器網(wǎng)絡(luò)的實際應(yīng)用需求。
【專利說明】
無線傳感器網(wǎng)絡(luò)的容錯修復(fù)方法及系統(tǒng)
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及無線傳感技術(shù)領(lǐng)域,尤其是涉及一種無線傳感器網(wǎng)絡(luò)的容錯修復(fù)方法 及系統(tǒng)。
【背景技術(shù)】
[0002] 無線傳感器網(wǎng)絡(luò)由于部署的環(huán)境惡劣以及節(jié)點攜帶的電池電量有限等原因容易 發(fā)生故障。若網(wǎng)絡(luò)拓撲具有容錯功能,則在網(wǎng)絡(luò)發(fā)生較小規(guī)模的故障時,網(wǎng)絡(luò)能夠繼續(xù)正常 運行,無需人工及時修復(fù),無需購買新的設(shè)備,這樣便節(jié)約了人力物力。所以,構(gòu)建一個具有 容錯功能的網(wǎng)絡(luò)拓撲對于容易發(fā)生故障的無線傳感器網(wǎng)絡(luò)來說相當(dāng)重要。但與無容錯功能 的網(wǎng)絡(luò)拓撲相比,具有容錯功能的網(wǎng)絡(luò)拓撲結(jié)構(gòu)更為復(fù)雜,所需耗費的節(jié)點數(shù)目更多。因 此,現(xiàn)有很多修復(fù)機制的主要目標(biāo)便是如何最小化部署的節(jié)點數(shù)目。但是,這些算法在構(gòu)建 具有容錯功能的網(wǎng)絡(luò)拓撲時,仍然需要耗費較多的節(jié)點,并且網(wǎng)絡(luò)的其他性能(如網(wǎng)絡(luò)覆蓋 面積和網(wǎng)絡(luò)拓撲質(zhì)量等)并沒有得到很好地提高。
[0003] 有些算法雖然考慮了網(wǎng)絡(luò)的其他性能,但是這些算法所構(gòu)建的網(wǎng)絡(luò)拓撲的容錯能 力依舊不高。以2C-SpiderWeb算法為例,該通過構(gòu)造一個類似于"多角星"結(jié)構(gòu)的網(wǎng)絡(luò)拓撲 以實現(xiàn)網(wǎng)絡(luò)的容錯性能。盡管該算法在修復(fù)網(wǎng)絡(luò)連接的同時考慮了拓撲質(zhì)量問題,但存在 以下的問題:以"五角星"拓撲結(jié)構(gòu)為例,在越靠近五角星5個頂點的位置,節(jié)點之間的距離 越近,節(jié)點的邊越多,因此節(jié)點的平均節(jié)點度越高。但是當(dāng)發(fā)生小規(guī)模故障時,例如,靠近頂 點的位置發(fā)生故障,那么整個"五角星"將很容易被分成2個或2個以上的子塊。因此,采用 2C-SpiderWeb算法所構(gòu)造的網(wǎng)絡(luò)拓撲雖然具有較高的平均節(jié)點度,但是在這樣的網(wǎng)絡(luò)拓撲 結(jié)構(gòu)下,較高的平均節(jié)點度并不能代表較好的容錯性能。此外,由于越靠近頂點的位置節(jié)點 距離越近,導(dǎo)致節(jié)點之間存在較多的覆蓋重疊面積,使得修復(fù)之后的網(wǎng)絡(luò)總覆蓋面積并不 大??傊?C-SpiderW eb算法雖然考慮了網(wǎng)絡(luò)拓撲質(zhì)量問題,但是該算法所形成的網(wǎng)絡(luò)拓撲 結(jié)構(gòu)并不能很好地容忍下一次的小規(guī)模故障,并且該算法修復(fù)之后的網(wǎng)絡(luò)具有較大的覆蓋 重疊面積。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明所要解決的技術(shù)問題是:提供了一種無線傳感器網(wǎng)絡(luò)容錯修復(fù)方案,以不 同角度解決了無線傳感器網(wǎng)絡(luò)連接修復(fù)問題,并分別實現(xiàn)了網(wǎng)絡(luò)的容錯性。
[0005] 為了解決上述技術(shù)問題,本發(fā)明采用的技術(shù)方案為:提供一種無線傳感器網(wǎng)絡(luò)的 容錯修復(fù)方法,包括:
[0006] 獲取無線傳感器節(jié)點及其坐標(biāo)、通信半徑;
[0007] 確定節(jié)點的外凸包,并計算所述外凸包的中心節(jié)點坐標(biāo)及各邊長;
[0008] 分別將外凸包拐點與中心節(jié)點連接,根據(jù)通信半徑,確定連線上需要部署節(jié)點及 其數(shù)量;
[0009] 在內(nèi)凸包邊上部署節(jié)點,使得內(nèi)凸包拐點均為三連接;
[0010] 獲取外凸包上不相鄰邊,并在其上部署節(jié)點,形成二連接。
[0011] 為解決上述問題,本發(fā)明還提供一種無線傳感器網(wǎng)絡(luò)的容錯修復(fù)方法,包括:
[0012] 獲取無線傳感器節(jié)點及其坐標(biāo)、通信半徑;
[0013 ]確定節(jié)點的外凸包,并計算所述外凸包的中心節(jié)點坐標(biāo)及各邊長;
[0014] 分別將外凸包拐點與中心節(jié)點連接,根據(jù)通信半徑,確定連線上需要部署節(jié)點及 其數(shù)量;
[0015] 在內(nèi)凸包邊上部署節(jié)點,使得內(nèi)凸包拐點均為三連接;
[0016] 在外凸包邊上部署節(jié)點,使得外凸包拐點均為三連接。
[0017] 為解決上述問題,本發(fā)明還提供一種無線傳感器網(wǎng)絡(luò)的容錯修復(fù)系統(tǒng),包括:
[0018] 獲取模塊,用于獲取無線傳感器節(jié)點及其坐標(biāo)、通信半徑;
[0019] 外凸包模塊,用于確定節(jié)點的外凸包,并計算所述外凸包的中心節(jié)點坐標(biāo)及各邊 長;
[0020] 外凸包部署模塊,用于分別將外凸包拐點與中心節(jié)點連接,根據(jù)通信半徑,確定連 線上需要部署節(jié)點及其數(shù)量;
[0021 ]內(nèi)凸包部署模塊,用于在內(nèi)凸包邊上部署節(jié)點,使得內(nèi)凸包拐點均為三連接;
[0022] 其中外凸包部署模塊還用于獲取外凸包上不相鄰邊,并在其上部署節(jié)點,形成二 連接。
[0023] 本發(fā)明的有益效果在于:區(qū)別于現(xiàn)有技術(shù),本發(fā)明在確定節(jié)點的外凸包后,在內(nèi)部 部署節(jié)點,并在內(nèi)凸包邊及外凸包邊上部署節(jié)點,使得內(nèi)/外凸包拐點均為三連接或者二連 接。通過上述方式,本發(fā)明以不同角度解決了無線傳感器網(wǎng)絡(luò)連接修復(fù)問題,并分別實現(xiàn)了 網(wǎng)絡(luò)的容錯性,既減少部署的節(jié)點數(shù)目,具有更大的覆蓋面積和更好的拓撲質(zhì)量,更能抵抗 后續(xù)的攻擊和破壞,更符合無線傳感器網(wǎng)絡(luò)的實際應(yīng)用需求。
【附圖說明】
[0024] 圖1為本發(fā)明無線傳感器網(wǎng)絡(luò)的容錯修復(fù)方法實施例一的流程示意圖;
[0025] 圖2為本發(fā)明無線傳感器網(wǎng)絡(luò)的容錯修復(fù)方法實施例二的流程示意圖;
[0026] 圖3為本發(fā)明具體實施例中部署節(jié)點計算三角形示意圖;
[0027]圖4為相同通信半徑的情況下,本發(fā)明的F2CR算法和P3CR算法與現(xiàn)有的Hamilton Path算法和2C_Sp i derWeb算法的中繼節(jié)點個數(shù)對比示意圖;
[0028]圖5為相同子塊個數(shù)的情況下,本發(fā)明的F2CR算法和P3CR算法與現(xiàn)有的Hamilton Path算法和2C_Sp i derWeb算法的中繼節(jié)點個數(shù)對比示意圖;
[0029]圖6為相同通信半徑的情況下,本發(fā)明的F2CR算法和P3CR算法與現(xiàn)有的Hamilton Path算法和2C_SpiderWeb算法的總覆蓋面積對比示意圖;
[0030] 圖7為相同子塊個數(shù)的情況下,本發(fā)明的F2CR算法和P3CR算法與現(xiàn)有的Hamilton Path算法和2C_SpiderWeb算法的總覆蓋面積對比示意圖;
[0031] 圖8為相同通信半徑的情況下,本發(fā)明的F2CR算法和P3CR算法與現(xiàn)有的Hamilton Path算法和2C_Sp i derWeb算法的每個節(jié)點平均覆蓋面積對比示意圖;
[0032]圖9為相同子塊個數(shù)的情況下,本發(fā)明的F2CR算法和P3CR算法與現(xiàn)有的Hamilton Path算法和2C_Sp i derWeb算法的每個節(jié)點平均覆蓋面積對比示意圖;
[0033]圖10為相同通信半徑的情況下,本發(fā)明的F2CR算法和P3CR算法與現(xiàn)有的Hamilton Path算法和2C_Sp i derWeb算法的平均節(jié)點度對比示意圖;
[0034]圖11為相同子塊個數(shù)的情況下,本發(fā)明的F2CR算法和P3CR算法與現(xiàn)有的Hamilton Path算法和2C_Sp i derWeb算法的平均節(jié)點度對比示意圖。
【具體實施方式】
[0035] 為詳細說明本發(fā)明的技術(shù)內(nèi)容、所實現(xiàn)目的及效果,以下結(jié)合實施方式并配合附 圖予以說明。
[0036] 本發(fā)明最關(guān)鍵的構(gòu)思在于:通過無線傳感器網(wǎng)絡(luò)全部二連接修復(fù)方法F2CR以及部 分三連接修復(fù)方法P3CR,以不同角度解決了無線傳感器網(wǎng)絡(luò)連接修復(fù)問題,并分別實現(xiàn)了 網(wǎng)絡(luò)的容錯性。
[0037] 請參照圖1,本發(fā)明實施例一提供一種無線傳感器網(wǎng)絡(luò)的容錯修復(fù)方法,包括:
[0038] 獲取無線傳感器節(jié)點及其坐標(biāo)、通信半徑;
[0039 ]確定節(jié)點的外凸包,并計算所述外凸包的中心節(jié)點坐標(biāo)及各邊長;
[0040]分別將外凸包拐點與中心節(jié)點連接,根據(jù)通信半徑,確定連線上需要部署節(jié)點及 其數(shù)量;
[0041 ]在內(nèi)凸包邊上部署節(jié)點,使得內(nèi)凸包拐點均為三連接;
[0042] 獲取外凸包上不相鄰邊,并在其上部署節(jié)點,形成二連接。
[0043] 區(qū)別于現(xiàn)有技術(shù),本發(fā)明實施例一在確定節(jié)點的外凸包后,在內(nèi)部部署節(jié)點,并在 內(nèi)凸包邊及外凸包邊上部署節(jié)點,使得內(nèi)凸包拐點均為三連接或者外凸包拐點二連接。通 過上述方式,本發(fā)明實施例一解決了無線傳感器網(wǎng)絡(luò)連接修復(fù)問題,通過構(gòu)造風(fēng)扇形的拓 撲結(jié)構(gòu)來減少部署的節(jié)點數(shù)目,從而降低節(jié)點部署成本,具有更大的覆蓋面積和更好的拓 撲質(zhì)量,更能抵抗后續(xù)的攻擊和破壞,更符合無線傳感器網(wǎng)絡(luò)的實際應(yīng)用需求。
[0044] 如圖2所示,本發(fā)明實施例二提供一種無線傳感器網(wǎng)絡(luò)的容錯修復(fù)方法,包括:
[0045] 獲取無線傳感器節(jié)點及其坐標(biāo)、通信半徑;
[0046] 確定節(jié)點的外凸包,并計算所述外凸包的中心節(jié)點坐標(biāo)及各邊長;
[0047] 分別將外凸包拐點與中心節(jié)點連接,根據(jù)通信半徑,確定連線上需要部署節(jié)點及 其數(shù)量;
[0048]在內(nèi)凸包邊上部署節(jié)點,使得內(nèi)凸包拐點均為三連接;
[0049]在外凸包邊上部署節(jié)點,使得外凸包拐點均為三連接。
[0050] 區(qū)別于現(xiàn)有技術(shù),本發(fā)明實施例二在確定節(jié)點的外凸包后,在內(nèi)部部署節(jié)點,并在 內(nèi)凸包邊及外凸包邊上部署節(jié)點,使得內(nèi)凸包拐點均為三連接或者外凸包拐點二連接。通 過上述方式,本發(fā)明實施例二解決了無線傳感器網(wǎng)絡(luò)連接修復(fù)問題,通過構(gòu)造雙環(huán)形的網(wǎng) 絡(luò)拓撲來提高網(wǎng)絡(luò)的容錯性。與實施例一相比,實施例二所構(gòu)建的網(wǎng)絡(luò)拓撲具有更好的容 錯能力。適用于網(wǎng)絡(luò)的容錯性和覆蓋面積優(yōu)先考慮的情況,具有更大的覆蓋面積和更好的 拓撲質(zhì)量,更能抵抗后續(xù)的攻擊和破壞,更符合無線傳感器網(wǎng)絡(luò)的實際應(yīng)用需求。
[0051] 為方便理解本發(fā)明所述的兩種方法,以下結(jié)合附圖進一步說明。
[0052] 當(dāng)無線傳感器網(wǎng)絡(luò)被分割成多個相隔較遠且互不通信的子塊時,需要采取有效的 節(jié)點部署算法對網(wǎng)絡(luò)進行及時修復(fù)。由于網(wǎng)絡(luò)容易發(fā)生故障的特性,在可用于部署的節(jié)點 數(shù)目較為充足的情況下,在以最小成本修復(fù)網(wǎng)絡(luò)連接的同時,應(yīng)力求使得修復(fù)之后的網(wǎng)絡(luò) 具有容錯功能。但這卻是兩個相互矛盾的要求,一是要求部署的節(jié)點數(shù)目最小化,二是要求 修復(fù)之后的網(wǎng)絡(luò)具有容錯性。具有容錯功能的網(wǎng)絡(luò)往往需要部署較多的節(jié)點,部署較少節(jié) 點的網(wǎng)絡(luò)往往不具有容錯性。因此需要對這兩方面的要求進行權(quán)衡,提出有效的方案,使得 部署相對少的節(jié)點的同時,實現(xiàn)網(wǎng)絡(luò)具有容錯功能的目標(biāo)。
[0053] 1.相關(guān)定義
[0054]定義1,最小凸包:給定一個平面上隨機分布的節(jié)點集合S,找出包含所有點的最小 凸多邊形,則該多邊形稱為最小凸包。本發(fā)明需要構(gòu)建兩個凸包,為描述方便,這里將最小 凸包稱為外凸包。外凸包由網(wǎng)絡(luò)中各個孤立的子塊組成。
[0055] 定義2,內(nèi)凸包:為了使得修復(fù)之后的網(wǎng)絡(luò)具有容錯功能,本發(fā)明在最小凸包內(nèi)部 再構(gòu)建一個凸包。本發(fā)明將最小凸包內(nèi)部的這個凸包稱為內(nèi)凸包。
[0056] 定義3,凸包拐點:組成凸包的點稱為凸包拐點。外凸包的拐點是網(wǎng)絡(luò)中各個子塊, 內(nèi)凸包拐點是本發(fā)明需要部署的節(jié)點。
[0057] 2.步驟描述
[0058] 2.1全部二連接修復(fù)算法
[0059]全部二連接修復(fù)算法(F2CR)的目標(biāo)是使用最小數(shù)目的節(jié)點構(gòu)建一個具有容錯功 能的網(wǎng)絡(luò),使得修復(fù)之后的所有節(jié)點具有二連接。F2CR步驟如下:
[0060]步驟1.初始化。假設(shè)平面上有η個節(jié)點(子塊),所有節(jié)點的坐標(biāo)與所要部署的節(jié)點 的通信半徑R為已知。
[0061 ]步驟2.找到外凸包。在所有節(jié)點中找出外凸包。假設(shè)找到的外凸包包含m個節(jié)點, 每個節(jié)點的坐標(biāo)已知。計算凸包的中心節(jié)點坐標(biāo)和凸包的各個邊長。將外凸包拐點與凸包 中心一一連線,計算每條線段需要部署的節(jié)點數(shù)目。
[0062] 步驟3.找到內(nèi)凸包。從外凸包拐點開始,朝著凸包中心部署相應(yīng)的節(jié)點數(shù)目。每條 線段的最后一個節(jié)點(即最靠近凸包中心的節(jié)點)便是內(nèi)凸包的拐點。沿著內(nèi)凸包的邊緣部 署節(jié)點。此時,內(nèi)凸包的所有拐點均為三連接。
[0063] 步驟4.外凸包形成二連接。在外凸包的邊集合中找到[?/2」條不相鄰的邊,沿著 這些邊部署節(jié)點。若外凸包的拐點個數(shù)為奇數(shù),則將有一個拐點沒有形成二連接,此時從內(nèi) 凸包上找到一個與該拐點不共線的一點,沿著兩點之間的連線部署節(jié)點。至此,外凸包上所 有的節(jié)點均形成二連接。
[0064] 執(zhí)行完以上的步驟,在所形成的網(wǎng)絡(luò)拓撲中,所有的節(jié)點均至少為二連接。F2CR流 程圖如圖1所不。
[0065] F2CR算法具體步驟如下:
[0066] S1.在所給點集S中找到最小的凸包。
[0067] 假設(shè)得到外凸包拐點集為^對應(yīng)的坐標(biāo)為
[0068] {(Xl,yi),(X2,y2),···,(Xm,ym)}。處于外凸包內(nèi)部的點集為{sm+l,Sm+2,···,s n} 〇
[0069] 1)計算外凸包的中心坐標(biāo)(XQ,yo)
[0070] -Σ,/ m M ; 1 m
[0071] 凡=-Σ 乂 m /=ι .
[0072] 2)計算外凸包的邊長。
[0073] 對于所有的i = l到m執(zhí)行以下步驟
[0074] j = i+l;
[0075] 如果i=m則執(zhí)行以下步驟
[0076] j = 1 ;
[0077] 執(zhí)行完上一個步驟之后,執(zhí)行以下步驟
[0078]
[0079] 則外凸包邊長的集合為{sidei,side2,···,sidem}。
[0080] S2.將外凸包拐點與凸包中心連線,計算每條線的長度:
[0081 ] 1)對于所有的i = 1到m執(zhí)行以下步驟
[0082]
2 .則得到這些線的集合為{lllyjm}?!?計算相鄰兩 條線的夾角:
[0083] 對于所有的i = l到m執(zhí)行以下步驟
[0084] j = i+1 ;
[0085] 如果i=m則執(zhí)行以下步驟
[0086] j = l;
[0087] 抽,桿宗h-個擊驟少后.抽,桿W下步驟
[0088]
[0089] 計算每條線段需要部署的節(jié)點個數(shù):
[0090]
[0091]
[0092] 〇
[0093]從凸包拐點Sl開始,朝著凸包中心0方向部署節(jié)點,每隔距離R部署一個節(jié)點,得到 個節(jié)點對應(yīng)的部署位置,將這些點加入集合P中,并假設(shè)第V個節(jié)點為?1,其坐標(biāo)為 (Xi〃,yi〃)。則內(nèi)凸包的拐點集合為{pi,P2,···,pm}。
[0094] 3)沿著內(nèi)凸包的邊緣部署節(jié)點。
[0095] 對于所有的i = l到m執(zhí)行以下步驟
[0096] 如果i=m則執(zhí)行以下步驟
[0097] j = l;
[0098] 在Pi和pi+1之間部署節(jié)點,將這些點加入集合P中。
[0099] S4.1)如果m% 2 = 0則執(zhí)行以下步驟
[0100] 從外凸包邊長的集合{sidei,side2,…,sidem}中選擇f條總和最短的不相鄰的 邊,在邊上部署節(jié)點,將這些點加入集合P中。
[0101] 否則執(zhí)行以下步驟
[0102] 凸包上將有一個頂點ues未形成二連接。此時在內(nèi)凸包邊上找到距離u最近的并 且與u不共線的點V,在u與v之間均勻地部署節(jié)點,并將這些點加入集合P中。集合P是部署的 中繼節(jié)點集合,初始化時P為空集。當(dāng)在網(wǎng)絡(luò)中部署新的節(jié)點時,就將部署的節(jié)點加入到P 中。最后的P就是網(wǎng)絡(luò)中所有部署的中繼節(jié)點的集合。
[0103] 舉個例子:如有五個頂點43、(:、04,假設(shè)4與8連接起來,(:與0連接起來,那么六、8、 C、D都形成了2連接,但是E卻沒有形成2連接,則u指的是外凸包上沒有形成二連接的點,即 集合S中某個未形成二連接的點,這里將這個點設(shè)為u。如例子所示,u指的是頂點E。
[0104] S4.2)為平面上孤立的點建立二連接 [0105] 對于所有的k=m+l到η執(zhí)行以下步驟:
[0106] 為Skes找到最近的兩個點Υ和/ Υ,/ ep,分別在以及別與^之間均勻 地部署節(jié)點,將這些點加入集合P中。
[0107] 2.2部分三連接修復(fù)算法
[0108] F2CR算法可以在使用較少節(jié)點數(shù)目的情況下,建立具有容錯性的網(wǎng)絡(luò)拓撲。因此, F2CR算法適用于可用的節(jié)點數(shù)目較少的情況。當(dāng)可用的節(jié)點數(shù)目較為充足時,可以對F2CR 算法進行改進,使得修復(fù)之后的網(wǎng)絡(luò)拓撲具有更強的容錯性。這里提出了改進的修復(fù)算法 P3CIP3CR算法與F2CR算法類似,但采用P3CR算法修復(fù)之后的網(wǎng)絡(luò)具有部分三連接的結(jié)構(gòu)。 部分三連接意味著在修復(fù)之后所有的子塊都至少具有三連接,而部署的節(jié)點都至少具有二 連接。P3CR流程圖如圖2所示。
[0109] P3CR算法的具體步驟如下:
[0110] S1和S2與無線傳感器網(wǎng)絡(luò)全部二連接修復(fù)方法相同。
[0111] S3為外凸包上的點建立3連接。
[0112] 1)對于所有的i = 1到m執(zhí)行以下步驟
[0113] 在Si和&+1之間部署節(jié)點。
[0114] 2)為平面上孤立的點建立3連接
[0115] 對于所有的k=m+l到η執(zhí)行以下步驟
[0116]為ske S找到最近的三個點Υ、ν'(Υ、ν'三點不在同一條直線上)
[0117]分別在Sk與Υ、sk與ν'以及Sk與V之間均勾地部署節(jié)點。
[0118]三連接修復(fù)算法是對二連接修復(fù)算法的改進。其中二連接修復(fù)算法修復(fù)之后的網(wǎng) 絡(luò)中可能存在較大的覆蓋重疊面積,但是三連接修復(fù)算法修復(fù)之后的網(wǎng)絡(luò)就不會存在較大 的覆蓋重疊面積。不過相比于而連接修復(fù)算法,三連接修復(fù)算法需要耗費更多的節(jié)點。所以 二連接修復(fù)算法和三連接修復(fù)算法在實際應(yīng)用中會各有側(cè)重。
[0119] 3 ·算法分析
[0120] 已知外凸包各個拐點的坐標(biāo)和凸包中心坐標(biāo)分別為{(xi,yi),(X2,y2),…,(χη, yn)}和(XQ,yQ),中繼節(jié)點的通信半徑為R,并假設(shè)每隔距離R部署一個節(jié)點。
[0121] 定理1:當(dāng)內(nèi)凸包拐點的坐標(biāo))
此時部署的節(jié) 點數(shù)目最少。
[0122] 證明:如圖3所示,設(shè)Δ ABC中A、B、C三點坐標(biāo)分別為(Xi,yi)、(X2,y2)、(XQ,yo)。這里 A點和B點分別代表外凸包的不同拐點,C點代表凸包的中心點。本發(fā)明的算法是從凸包拐點 (A點和B點)向中心點(C點)的方向進行部署。因為AB,AC,BC和R的值固定,要使得部署的節(jié) 點數(shù)目最少,則要求AD和BE的總長度最短,即CD和CE的總長度最長。因此,所需要證明的問 題轉(zhuǎn)化為:求使得CD和CE的總長度最長時的D點和E點的坐標(biāo)值。
[0123] 設(shè) ZACB = θ,DE、CD、CE的長分別為R、a、b,ZCDE = α,ZCED = β,a、b、α、β均為未知。
[0124] 由已知可得AB,AC以及BC的長度分別為
[0125] (3-1)
[0126] 2)
[0127] (3-3)
[0128] 由(3-1 )、(3-2)、(3-3)式可知Θ的值為
[0129]
(3, 123
[0130]由三角函數(shù)定理可知
(J_5) 2 3
[0134]
(3-6)
[0135] 因為Θ和R均為已知,所以,當(dāng)α = β時,C0S 取最大值,則a+b的值最大,此時a = b。也就是說當(dāng)a = b時,a+b取得最大值,即⑶和CE的總長度最長。
[0136] 當(dāng)a = b時,由三角函數(shù)定理可知
(3-7)
[0137] I I
[0138] 假設(shè)D點坐標(biāo)為(x/,y/ ),則有
Γ ? (3-8)
[0139] ν 7
[0140] 因為D點在線段AC上,所以有
[0141]
(3_9)
[0142] 由式子(4-8)和(4-9)可求出
(3-10)
[0143] (3-11)
[0144]
[0145] (3-12)
[0146]
[0147] 否則 (3-13)
[0148] L
[0149] y/的情況與x/類似,E點坐標(biāo)的求法與D點類似。也就是說,當(dāng)D點和E點的坐標(biāo)分 另忮
寸,CD和CE的 總長度最長,AD和BE的總長度最短,部署的節(jié)點數(shù)目最少。
[0150] 綜上所述,當(dāng)內(nèi)凸包的拐點坐標(biāo)為
·,可使得 部署的節(jié)點數(shù)目最少。
[0151] 4.仿真分析
[0152] 分別本發(fā)明的F2CR算法以及P3CR算法與Hamilton Path算法和2C-SpiderWeb算法 從所需的節(jié)點數(shù)目、修復(fù)后的總覆蓋面積、每個節(jié)點平均覆蓋面積以及平均節(jié)點度這四個 方面對這四個算法進行對比,驗證本發(fā)明的F2CR算法以及P3CR算法的可行性與優(yōu)越性。在 仿真中,子塊隨機分布在固定大小的二維平面上。此外,圖4、圖6、圖8、圖10中節(jié)點通信距離 為固定值50m,圖5、圖7、圖9、圖11中分塊個數(shù)固定為8。
[0153] 4.1部署的節(jié)點數(shù)目
[0154] 從圖4中可以看出,當(dāng)節(jié)點的通信半徑為固定值時,隨著分塊個數(shù)的增加,四種算 法所用的節(jié)點數(shù)目都隨之增加。這是因為當(dāng)分塊個數(shù)越多,分塊之間的路徑長度總和越大, 需要部署的節(jié)點數(shù)目越多,因此所用的總的節(jié)點數(shù)目就越大。從圖中也可以看出,不管網(wǎng)絡(luò) 被劃分成多少個子塊,本發(fā)明的F2CR算法所用的節(jié)點數(shù)目均少于2C-SpiderW eb算法所用的 節(jié)點數(shù)目,大于Hamilton Path算法所用的節(jié)點數(shù)目,這是由各個算法不同的拓撲結(jié)構(gòu)所決 定的。本發(fā)明的P3CR算法由于達到部分三連通,所以該算法所用的節(jié)點數(shù)目高于其他三種 算法。
[0155] 從圖5可以看出,在固定分塊個數(shù)的情況下,隨著通信半徑的增加,四種算法所用 的節(jié)點數(shù)目均減少。這是因為當(dāng)分塊位置確定時,分塊之間的距離固定,部署的節(jié)點個數(shù)便 取決于節(jié)點的通信距離。當(dāng)節(jié)點的通信半徑越大時,分塊間所需部署的節(jié)點數(shù)目越少,所用 的總節(jié)點數(shù)目便越少。從圖中還可以看出,隨著節(jié)點半徑的增大,本發(fā)明的F2CR算法所用的 節(jié)點個數(shù)將越接近于2C-SpiderWeb算法所用的節(jié)點個數(shù)。這是因為當(dāng)節(jié)點半徑越大時,2C-SpiderWeb算法所形成的網(wǎng)絡(luò)拓撲更類似于本發(fā)明的F2CR算法所形成的網(wǎng)絡(luò)拓撲結(jié)構(gòu),所 以這兩種算法所用的節(jié)點數(shù)目就會越接近。
[0156] 4.2總覆蓋面積
[0157] 從圖6和圖7中可以看出,隨著分塊個數(shù)/節(jié)點通信半徑的增加,四種算法的節(jié)點覆 蓋總面積也隨之增加。本發(fā)明的F2CR算法的覆蓋面積大于2C-SpiderWeb算法和Hamilton Path算法的覆蓋面積,而本發(fā)明的P3CR算法的覆蓋面積遠大于其他二種算法的覆蓋面積。 2C-SpiderWeb算法雖然部署了比本發(fā)明的F2CR算法更多的節(jié)點,但是不管子塊個數(shù)或者節(jié) 點的通信半徑如何變化,本發(fā)明的F2CR算法的覆蓋面積總是大于2C-SpiderWeb算法的覆蓋 面積。比起2C-SpiderWeb算法,本發(fā)明的F2CR算法擁有較小的覆蓋重疊面積,因此,不管子 塊個數(shù)或者節(jié)點的通信半徑如何變化,本發(fā)明的F2CR算法均擁有比2C-SpiderWeb算法更大 的覆蓋面積。同樣地,本發(fā)明的本發(fā)明的P3CR算法具有比本發(fā)明的F2CR算法更小的覆蓋重 疊面積,因此,不管子塊個數(shù)或者節(jié)點的通信半徑如何變化,本發(fā)明的P3CR算法均擁有比其 他算法更大的覆蓋面積。
[0158] 4.3平均覆蓋面積
[0159] 從圖8中可以看出,本發(fā)明的F2CR算法和P3CR算法的平均覆蓋面積基本相同,但小 于Hamilton Path算法所得到的每個節(jié)點平均覆蓋面積,大于2C-SpiderWeb算法的平均覆 蓋面積。原因是2C-SpiderWeb算法存在較大的重疊面積。大量的重疊面積使得2C-SpiderWeb算法形成的網(wǎng)絡(luò)拓撲的實際覆蓋面積變小,因此每個節(jié)點的平均覆蓋面積也變 小。而比起其他二種算法,Hamilton Path算法所形成的網(wǎng)絡(luò)拓撲存在最小的網(wǎng)絡(luò)覆蓋重疊 面積,因此每個節(jié)點所占的平均覆蓋面積最大。
[0160] 從圖9可以看出,隨著通信半徑的增大,平均每個節(jié)點所占的覆蓋面積也隨著增 大。因為當(dāng)子塊位置一定時,子塊之間部署的個數(shù)取決于節(jié)點的通信半徑。通信半徑越大, 節(jié)點的覆蓋面積就越大,在固定區(qū)域內(nèi)所需部署的節(jié)點個數(shù)就越少,因此,所有節(jié)點的平均 覆蓋面積也越大。
[0161] 4.4平均節(jié)點度
[0162] 從圖10中可以看出,本發(fā)明的F2CR和P3CR算法的平均節(jié)點度均小于2C_SpiderWeb 算法的平均節(jié)點度。因為2C-SpiderWeb算法存在較大的覆蓋重疊部分,而重疊部分的節(jié)點 具有較大的節(jié)點度,所以該算法的平均節(jié)點度大于其他三種算法。此外,Hamilton Path算 法所形成的拓撲可以看成是一個環(huán),環(huán)上的節(jié)點的度基本為2,但存在部分節(jié)點之間相互重 疊的情況,所以,最終的平均節(jié)點度稍微大于2。本發(fā)明所提出的兩種算法的平均節(jié)點度介 于2C_SpiderWeb算法和Hamilton Path算法之間。比起2C_SpiderWeb算法,本發(fā)明提出的兩 種算法均具有較小的重疊覆蓋面積,而與Hamilton Path算法相比,本發(fā)明的兩種算法具有 較大的覆蓋重疊面積,因此這兩種算法的平均節(jié)點度介于205口1(161¥613算法和他111;[11:011 Path算法之間。此外,從圖10中也可以看出,本發(fā)明的P3CR算法的平均節(jié)點度稍微低于本發(fā) 明的F2CR算法,這是因為與本發(fā)明的F2CR算法相比,P3CR算法所形成的網(wǎng)絡(luò)拓撲具有更小 的覆蓋重疊面積,因此本發(fā)明的P3CR算法的平均節(jié)點度會稍微低于F2CR算法。
[0163] 圖11的情況與圖10類似,但從圖11中可以看出,隨著通信半徑的增大,節(jié)點的平均 節(jié)點度也隨著增大。這是因為當(dāng)節(jié)點部署的位置確定時,節(jié)點的通信半徑越大,節(jié)點與節(jié)點 之間的覆蓋重疊面積就越大,因此,節(jié)點的平均節(jié)點度就越大。
[0164] 對應(yīng)地,本發(fā)明實施例三還提供一種無線傳感器網(wǎng)絡(luò)的容錯修復(fù)系統(tǒng),包括:
[0165] 獲取模塊,用于獲取無線傳感器節(jié)點及其坐標(biāo)、通信半徑;
[0166] 外凸包模塊,用于確定節(jié)點的外凸包,并計算所述外凸包的中心節(jié)點坐標(biāo)及各邊 長;
[0167] 外凸包部署模塊,用于分別將外凸包拐點與中心節(jié)點連接,根據(jù)通信半徑,確定連 線上需要部署節(jié)點及其數(shù)量;
[0168] 內(nèi)凸包部署模塊,用于在內(nèi)凸包邊上部署節(jié)點,使得內(nèi)凸包拐點均為三連接;
[0169] 其中外凸包部署模塊還用于獲取外凸包上不相鄰邊,并在其上部署節(jié)點,形成二 連接。
[0170]其中在無線傳感器節(jié)點上選取若干個節(jié)點,順序連接,形成凸邊形,并可包含余下 所有節(jié)點;其中該凸邊形為外凸包,選取的若干個節(jié)點為外凸包的拐點;
[0171]將部署在連線上最靠近中心節(jié)點的節(jié)點作為內(nèi)凸包拐點,并順序連接形成內(nèi)凸包 的邊。
[0172]所述外凸包部署模塊還用于在外凸包邊上部署節(jié)點,使得外凸包拐點均為三連 接。
[0173]以上所述僅為本發(fā)明的實施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā) 明說明書及附圖內(nèi)容所作的等同變換,或直接或間接運用在相關(guān)的技術(shù)領(lǐng)域,均同理包括 在本發(fā)明的專利保護范圍內(nèi)。
【主權(quán)項】
1. 一種無線傳感器網(wǎng)絡(luò)的容錯修復(fù)方法,其特征在于,包括: 獲取無線傳感器節(jié)點及其坐標(biāo)、通信半徑; 確定節(jié)點的外凸包,并計算所述外凸包的中心節(jié)點坐標(biāo)及各邊長; 分別將外凸包拐點與中心節(jié)點連接,根據(jù)通信半徑,確定連線上需要部署節(jié)點及其數(shù) 量; 在內(nèi)凸包邊上部署節(jié)點,使得內(nèi)凸包拐點均為三連接; 獲取外凸包上不相鄰邊,并在其上部署節(jié)點,形成二連接。2. 根據(jù)權(quán)利要求1所述無線傳感器網(wǎng)絡(luò)的容錯修復(fù)方法,其特征在于,在無線傳感器節(jié) 點上選取若干個節(jié)點,順序連接,形成凸邊形,并可包含余下所有節(jié)點;其中該凸邊形為外 凸包,選取的若干個節(jié)點為外凸包的拐點。3. 根據(jù)權(quán)利要求1所述無線傳感器網(wǎng)絡(luò)的容錯修復(fù)方法,其特征在于,將部署在連線上 最靠近中心節(jié)點的節(jié)點作為內(nèi)凸包拐點,并順序連接形成內(nèi)凸包的邊。4. 根據(jù)權(quán)利要求2所述無線傳感器網(wǎng)絡(luò)的容錯修復(fù)方法,其特征在于,根據(jù)外凸包拐點 的坐標(biāo),計算外凸包的中心節(jié)點坐標(biāo)及各邊邊長; 根據(jù)外凸包拐點及中心節(jié)點的坐標(biāo),計算外凸包拐點與中心節(jié)點各連線的長度,并計 算相鄰連線的夾角; 結(jié)合通信半徑,計算各連線上需要部署節(jié)點的數(shù)量; 從外凸包拐點起,朝外凸包中心節(jié)點方向,在各連線上部署節(jié)點。5. 根據(jù)權(quán)利要求1所述無線傳感器網(wǎng)絡(luò)的容錯修復(fù)方法,其特征在于,獲取外凸包上不 相鄰邊,并在其上部署節(jié)點,形成二連接的步驟具體為: 判斷外凸包邊的數(shù)量是否為偶數(shù); 若是,則獲取外凸包上的半數(shù)不相鄰邊,使得其總長度最小,并在這些不相鄰邊上部署 節(jié)點; 反之,則在外凸包上獲取未形成二連接的拐點; 并在內(nèi)凸包上獲取不經(jīng)過該拐點的邊,并在邊上獲取與該拐點距離最小的輔助點; 在該拐點與輔助點的連線上部署節(jié)點。6. 根據(jù)權(quán)利要求5所述無線傳感器網(wǎng)絡(luò)的容錯修復(fù)方法,其特征在于,在外凸包內(nèi),除 了內(nèi)凸包拐點的其他節(jié)點中,獲取距離最近的兩個點或不共線的三個點,并在其相互連線 上部署節(jié)點。7. -種無線傳感器網(wǎng)絡(luò)的容錯修復(fù)方法,其特征在于,包括: 獲取無線傳感器節(jié)點及其坐標(biāo)、通信半徑; 確定節(jié)點的外凸包,并計算所述外凸包的中心節(jié)點坐標(biāo)及各邊長; 分別將外凸包拐點與中心節(jié)點連接,根據(jù)通信半徑,確定連線上需要部署節(jié)點及其數(shù) 量; 在內(nèi)凸包邊上部署節(jié)點,使得內(nèi)凸包拐點均為三連接; 在外凸包邊上部署節(jié)點,使得外凸包拐點均為三連接。8. 根據(jù)權(quán)利要求7所述無線傳感器網(wǎng)絡(luò)的容錯修復(fù)方法,其特征在于,在外凸包內(nèi),除 了內(nèi)凸包拐點的其他節(jié)點中,獲取距離最近的兩個點或不共線的三個點,并在其相互連線 上部署節(jié)點。9. 一種無線傳感器網(wǎng)絡(luò)的容錯修復(fù)系統(tǒng),其特征在于,包括: 獲取模塊,用于獲取無線傳感器節(jié)點及其坐標(biāo)、通信半徑; 外凸包模塊,用于確定節(jié)點的外凸包,并計算所述外凸包的中心節(jié)點坐標(biāo)及各邊長; 外凸包部署模塊,用于分別將外凸包拐點與中心節(jié)點連接,根據(jù)通信半徑,確定連線上 需要部署節(jié)點及其數(shù)量; 內(nèi)凸包部署模塊,用于在內(nèi)凸包邊上部署節(jié)點,使得內(nèi)凸包拐點均為三連接; 其中外凸包部署模塊還用于獲取外凸包上不相鄰邊,并在其上部署節(jié)點,形成二連接。10. 根據(jù)權(quán)利要求9所述無線傳感器網(wǎng)絡(luò)的容錯修復(fù)系統(tǒng),其特征在于,外凸包部署模 塊還用于在外凸包邊上部署節(jié)點,使得外凸包拐點均為三連接。
【文檔編號】H04W84/18GK105898784SQ201610413022
【公開日】2016年8月24日
【申請日】2016年6月13日
【發(fā)明人】陳志德, 曾雅麗, 許力, 黃欣沂, 伍瑋, 鄭金花
【申請人】福建師范大學(xué)