国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

非并行二分法的覆蓋空洞修復算法

2020-06-18 05:49韓雨澇
計算機工程與應用 2020年12期
關(guān)鍵詞:冗余度二分法交點

韓雨澇

攀枝花學院 數(shù)學與計算機學院,四川 攀枝花617000

1 引言

網(wǎng)絡覆蓋服務質(zhì)量是度量無線傳感器網(wǎng)絡服務質(zhì)量重要性能指標之一[1-2]。節(jié)點對監(jiān)測區(qū)域的不充分的感知表現(xiàn)為網(wǎng)絡中節(jié)點分布不均勻,存在未被任何節(jié)點感知范圍覆蓋的區(qū)域,該區(qū)域稱為覆蓋空洞(Coverage Hole,CH)[3-4]。覆蓋空洞邊緣區(qū)域的節(jié)點因過度承擔數(shù)據(jù)轉(zhuǎn)發(fā)任務過早死亡,加大了覆蓋空洞的面積[5]。文獻[6]提出覆蓋空洞修復算法,向三角形網(wǎng)格中添加移動節(jié)點使目標區(qū)域完全覆蓋。文獻[7]提出分布式空洞修復算法HEAL,采用基于分布式虛擬力的覆蓋空洞修復方法,只有位于距離覆蓋空洞適當距離的節(jié)點才會參與空洞修復。文獻[8]提出不需要節(jié)點地理位置信息的覆蓋空洞修復算法CHH,通過定位的方法計算節(jié)點之間距離以及到覆蓋空洞邊界節(jié)點距離,但在節(jié)點測距誤差較大的情況下,覆蓋空洞修復率低,且該算法只能完成閉合覆蓋空洞的修復。文獻[9]提出了一種覆蓋空洞檢測和修復算法,可以完整修復網(wǎng)絡中任意覆蓋空洞?;旌鲜絺鞲衅骶W(wǎng)絡[10]是在靜態(tài)網(wǎng)絡基礎上,部署少量移動節(jié)點作為輔助節(jié)點。文獻[11]針對混合式無線傳感器網(wǎng)絡覆蓋增強的問題,提出移動節(jié)點的路徑規(guī)劃算法,網(wǎng)絡空洞修復具有最小平均檢測延遲和最大覆蓋率。文獻[12]提出的Center算法通過估算覆蓋空洞的面積,結(jié)合覆蓋范圍冗余度、節(jié)點剩余能量以及移動距離參數(shù)確定移動節(jié)點完成空洞修復。文獻[13]提出未完全修復的HPA覆蓋空洞修復算法,將兩個相鄰未完全覆蓋交點連線的中垂線上的點作為移動節(jié)點的修復目標位置。上述方法存在的問題是空洞修復效率不高,存在空洞修復冗余度高的問題,且大多不能實現(xiàn)覆蓋空洞的完全修復。

考慮到混合式WSN網(wǎng)絡模型有網(wǎng)絡成本低和節(jié)點移動靈活的特點。本文在混合傳感器網(wǎng)絡模型下,提出基于非并行二分法的覆蓋空洞修復算法CHRND(Coverage Hole Repair algorithm based on Non-parallel Dichotomy),以非并行方式選擇具有劣弧的空洞邊界節(jié)點作為覆蓋空洞修復的驅(qū)動節(jié)點,通過弧二分法確定移動節(jié)點的最佳目標位置,能以較少數(shù)量的移動節(jié)點和較低覆蓋冗余實現(xiàn)覆蓋空洞的完全修復。

2 網(wǎng)絡模型

傳感器節(jié)點在監(jiān)測區(qū)域隨機部署自組織構(gòu)成網(wǎng)絡表示為G=(V,E),V代表節(jié)點集合,包括移動節(jié)點和靜態(tài)節(jié)點;E代表無線鏈路集合。網(wǎng)絡中覆蓋空洞修復由移動節(jié)點的位置遷移完成。節(jié)點位置信息通過裝載GPS定位設備或已有的網(wǎng)絡定位算法[14]獲取。網(wǎng)絡中節(jié)點的感知范圍和通信范圍同構(gòu),使用簡單圓盤模型[15],感知半徑和通信半徑分別記為RG和RT。本文基于以下定義:

定義1(空洞邊界節(jié)點(Hole Boundary Node,HBN))當節(jié)點Ni存在未完全覆蓋交點P,則定義Ni為HBN節(jié)點。

定義2(驅(qū)動節(jié)點)在組成覆蓋空洞的邊界節(jié)點集合中,用于確定覆蓋空洞修復移動節(jié)點以及最佳目標位置的節(jié)點稱為驅(qū)動節(jié)點。

定義3(空洞弧)每個HBN節(jié)點的感知圓盤和覆蓋空洞鄰接的弧段,稱為該HBN節(jié)點相對于當前覆蓋空洞的空洞弧。弧的弧度小于180°,稱為空洞劣弧,否則稱為空洞優(yōu)弧。

3 CHRND算法設計

3.1 空洞修復驅(qū)動節(jié)點確定原則

空洞修復由驅(qū)動節(jié)點發(fā)起,應遵循以下原則。

原則1空洞修復應至少保證所選驅(qū)動節(jié)點的空洞弧能夠被完全覆蓋。

由于移動節(jié)點的覆蓋圓盤無法對空洞優(yōu)弧完全覆蓋,故選擇的HBN節(jié)點對應的空洞弧應為劣弧。根據(jù)以下定理1:當覆蓋空洞未被修復,必然存在空洞劣弧,使得算法能夠繼續(xù)修復空洞。另外,在空洞修復過程中,對于空洞優(yōu)弧,必然存在移動節(jié)點的引入將其轉(zhuǎn)變?yōu)榱踊。沟盟惴ɡ^續(xù)進行。

原則2在覆蓋空洞修復過程中,移動節(jié)點的引入應避免覆蓋空洞被分割。

考慮覆蓋空洞分割導致空洞數(shù)量增加,空洞碎片面積可能極小,造成大量空洞碎片的產(chǎn)生。為了滿足完全覆蓋服務質(zhì)量的要求,大量移動節(jié)點導致網(wǎng)絡成本提高,而部分區(qū)域又存在冗余覆蓋,極大地浪費了節(jié)點資源。如果隨機選擇的HBN節(jié)點導致空洞分割,算法需重新選擇HBN節(jié)點嘗試覆蓋空洞修復,直至所選HBN節(jié)點不產(chǎn)生空洞分割。

定理1在覆蓋空洞修復過程中,總能在組成覆蓋空洞的空洞弧集合中找到空洞劣弧,使得算法能夠繼續(xù)修復當前覆蓋空洞。

證明 使用反證法,假設移動節(jié)點在覆蓋空洞修復過程中,未能夠找到滿足條件的空洞劣弧,即全部空洞弧都為空洞優(yōu)弧。連接未完全覆蓋交點構(gòu)成圖1所示五邊形區(qū)域。由于全部弧均為優(yōu)弧,則該五邊形的每個內(nèi)角至少為180°,內(nèi)角和至少為900°,這與公式(1)計算的五邊形內(nèi)角和540°相矛盾,故問題得以證明。

圖1 覆蓋空洞劣弧確定

3.2 基于二分法的移動節(jié)點目標位置確定

如圖2網(wǎng)絡覆蓋空洞區(qū)域表示為A,假定節(jié)點N6為當前覆蓋空洞修復的驅(qū)動節(jié)點,對應的空洞弧為弧P1P2。采用弧二分法確定移動節(jié)點的位置點T(xt,yt),使得移動節(jié)點以T(xt,yt)為圓心的感知圓盤恰好完全覆蓋空洞弧P1P2,即點T(xt,yt)到空洞弧的端點P1和P2的距離為節(jié)點感知半徑RG。

圖2 最佳目標位置點確定

(1)最佳目標位置點確定

最佳目標位置點T(xt,yt)應位于線段P1P2的中垂線的覆蓋空洞側(cè),且到交點P1和P2距離均為RG。

方程組解(xt,yt)對應目標點T到節(jié)點N6的距離滿足式(3),保證了點T(xt,yt)位于線段P1P2的中垂線的覆蓋空洞側(cè)。

當移動節(jié)點目標位置偏離點T(xt,yt),不能保證移動節(jié)點的引入對空洞弧P1P2的完全覆蓋,且有可能導致不必要的空洞分割;目標位置點沿P1P2的中垂線向下偏移雖實現(xiàn)了空洞弧P1P2的完全覆蓋,但減少了移動節(jié)點有效修復面積,增加了修復的覆蓋冗余。綜上所述,點T(xt,yt)為移動節(jié)點的最佳目標位置。

(2)覆蓋空洞分割分析

考慮到覆蓋空洞分割造成空洞數(shù)量的增加,產(chǎn)生大量空洞碎片,導致移動節(jié)點數(shù)量增加以及覆蓋冗余問題的出現(xiàn)。為此,在移動節(jié)點遷徙之前檢查在位置點T(xt,yt)的移動節(jié)點引入是否會導致空洞分割。

當節(jié)點Ny在目標位置T(xt,yt)的引入和構(gòu)成覆蓋空洞A的HBN節(jié)點序列集合HA中任意節(jié)點Ni滿足式(4)條件,則覆蓋圓盤之間存在覆蓋交點。

解方程組(5)得到對應交點記為Pj

當HA中不存在其他節(jié)點Nk和Pj滿足式(6)條件,則定義交點Pj為未完全覆蓋交點。

最后,如果移動節(jié)點Ny的引入產(chǎn)生的未完全覆蓋交點的數(shù)量m不大于2,根據(jù)定理2可知,移動節(jié)點在目標位置點T(xt,yt)的引入不會導致覆蓋空洞分割。

定理2在覆蓋空洞修復過程中,當移動節(jié)點的感知圓盤與組成覆蓋空洞A的集合HA所有HBN節(jié)點的感知圓盤的未完全覆蓋交點不大于2個,則覆蓋空洞不會被分割。

證明 采用反證法,假設移動節(jié)點引入產(chǎn)生的未完全覆蓋交點不大于2個,導致覆蓋空洞被分割,則至少產(chǎn)生兩個覆蓋空洞區(qū)域。圖3(a)所示的每個分割的覆蓋空洞存在2個未完全覆蓋交點,特殊情況如圖3(b)所示兩個未完全覆蓋交點為同一交點。總之,空洞分割產(chǎn)生的未完全覆蓋交點大于等于3個,這與假設矛盾,故得以證明。

3.3 基于最小距離的移動修復節(jié)點確定

(1)k跳范圍移動節(jié)點獲取

網(wǎng)絡中移動節(jié)點向HBN節(jié)點廣播移動節(jié)點通知(Mobile Node Notification,MNN)消息,該消息包含了移動節(jié)點ID、位置和消息生命期k。HBN節(jié)點收到MNN消息,存儲移動節(jié)點的ID和位置信息,當參數(shù)k減1不為0時,繼續(xù)廣播消息,直到k減1為0,消息不再廣播。最終,每個HBN節(jié)點獲得了k跳內(nèi)范圍內(nèi)移動節(jié)點信息。將HBN節(jié)點Nk的移動節(jié)點集合記為Yk。FCN節(jié)點收到MNN消息,無需存儲移動節(jié)點信息,僅當k-1不為0,繼續(xù)廣播該消息。

圖3 覆蓋空洞分割交點數(shù)量

(2)基于最小距離的移動修復節(jié)點確定

Nk使用最小距離法在驅(qū)動節(jié)點Nk的移動節(jié)點集合Yk中,選取距離目標點T(xt,yt)位置最近的移動節(jié)點,作為當前修復節(jié)點,記為Nr。

之后,節(jié)點Nk向移動節(jié)點Nr發(fā)送移動節(jié)點確認消息(Mobile Node Confirmation),Nr收到消息后廣播移動節(jié)點刪除消息(Mobile Node Cancellation,MNC),k跳內(nèi)的HBN節(jié)點接收到MNC消息,刪除移動節(jié)點Nr的信息。最后,移動節(jié)點Nr遷移到位置點T(xt,yt),完成此次覆蓋空洞的修復。

3.4 非并行方式的覆蓋空洞修復

在覆蓋空洞修復過程中,移動節(jié)點采用并行方式修復覆蓋空洞,雖能快速完成覆蓋空洞的修復,但冗余問題嚴重。如圖4(a)同時選擇N1和N2作為驅(qū)動節(jié)點,分別獨立確定移動節(jié)點目標位置L1和L2,并發(fā)在L1和L2位置修復覆蓋空洞,覆蓋空洞修復冗余嚴重。相比之下,采用圖4(b)的非并行方式的覆蓋空洞修復策略,驅(qū)動節(jié)點N1確定移動節(jié)點的目標位置L1,移動節(jié)點首先在L1位置修復覆蓋空洞。然后,驅(qū)動節(jié)點N2對當自己新的空洞弧使用二分法確定目標位置L2,并在該位置修復覆蓋空洞,有效地提高了節(jié)點利用率,覆蓋冗余明顯降低。最后,在移動節(jié)點引入使得空洞不被分割基礎上,定理3保證了按照該非并行二分法方式能夠?qū)崿F(xiàn)覆蓋空洞完全修復。

定理3移動節(jié)點引入使得空洞不被分割基礎上,采用非并行二分法能夠保證覆蓋空洞被完全修復。

圖4 覆蓋空洞修復方式比較

證明 在移動節(jié)點引入使得空洞不被分割的基礎上,由于每個移動節(jié)點對覆蓋空洞的修復最少能夠消除2個未完全覆蓋交點,根據(jù)定理2,每次空洞修復最多引入2個未完全覆蓋交點。如在圖5所示的覆蓋空洞區(qū)域,移動節(jié)點的引入消除了P1到P4共4個未完全覆蓋交點,引入了P5和P6共2個未完全覆蓋交點。定理1保證了算法能以非并行方式對覆蓋空洞連續(xù)修復,隨著移動節(jié)點的持續(xù)引入,覆蓋空洞區(qū)域面積逐步減少,未完全覆蓋交點數(shù)量減少,當未完全覆蓋交點數(shù)量為0,則覆蓋空洞已被完全修復。

圖5 覆蓋空洞完全修復

算法1 CHRND空洞修復算法

0.whileHBN節(jié)點集合HA不為空

1.任選空洞弧為劣弧的HBN節(jié)點N1;

2.Nj按照二分法確定移動節(jié)點的目標位置Posj;

3.if Posj位置移動節(jié)點引入導致空洞分割then

4.return 1;

5.end if

6.Nj用最小距離法確定到Posj的最近移動節(jié)點Nj;

7.Nj沿直線移動到位置Posj;

8.集合HA刪除Nj引入已完全覆蓋的HBN節(jié)點;

9.if HBN節(jié)點序列集合HA不為空then

10.增加移動節(jié)點Nj到集合H;

11.end if

12.end while

4 CHRND算法仿真與分析

選取Matlab7.0作為仿真實驗平臺,無線傳感器節(jié)點在400 m×100 m矩形區(qū)域內(nèi)隨機部署,靜態(tài)節(jié)點數(shù)量為400個,節(jié)點感知半徑為RG=10 m,通信半徑為RT=20 m,靜態(tài)節(jié)點能量Estatic_init=100 J,移動節(jié)點能量Emobile_init=200J,假定發(fā)送和接收一個消息能耗均為0.2 J,節(jié)點在移動過程中能量消耗為1 J/m。

4.1 CHRND算法性能分析

假定覆蓋空洞完全修復需要N個移動節(jié)點。定義覆蓋空洞完全修復對應的覆蓋冗余度為節(jié)點覆蓋總面積之和減去覆蓋空洞面積的值與覆蓋空洞面積的比值。

以下比較了CHRND算法與采用并行方式修復策略在不同覆蓋空洞面積和不同節(jié)點感知半徑下完成空洞完全修復產(chǎn)生的覆蓋冗余度。

(1)不同空洞面積完全修復對應的覆蓋冗余度

圖6給出了在RG=10 m前提下的覆蓋空洞面積與空洞修復覆蓋冗余度關(guān)系??梢钥闯觯珻HRND算法覆蓋冗余度在0.152~0.354之間,當空洞面積區(qū)域較小,覆蓋冗余度較大,隨著空洞面積增大,覆蓋冗余度降低。這是因為空洞面積較大,降低了空洞修復產(chǎn)生碎片的機會,也降低了修復節(jié)點與其他節(jié)點覆蓋重疊的可能。另外,相對于采用并行方式修復策略,CHRND算法的空洞修復覆蓋冗余度顯著降低,能以較少數(shù)量移動節(jié)點實現(xiàn)空洞區(qū)域完全修復。

圖6 覆蓋空洞面積與覆蓋冗余度

(2)不同節(jié)點感知半徑完全修復對應的冗余度

圖7給出了在空洞面積S=5 000 m2前提下的移動節(jié)點感知半徑與空洞修復覆蓋冗余度關(guān)系??梢钥闯?,當移動節(jié)點感知半徑較小,覆蓋冗余較小,隨著移動節(jié)點感知半徑增大,空洞修復覆蓋冗余度顯著增加。這是因為當節(jié)點感知半徑增大,使得每個修復節(jié)點空洞修復利用率降低。此外,同圖1結(jié)論一致,圖7也驗證了相比于并行修復策略,CHRND算法采用非并行方法能顯著降低空洞修復的覆蓋冗余度。

4.2 不同算法的比較

圖7 移動節(jié)點感知半徑與覆蓋冗余度

仿真實驗分別從覆蓋空洞修復所需移動節(jié)點數(shù)量、覆蓋空洞修復率以及移動節(jié)點平均移動距離三個方面,比較了本文CHRND算法與現(xiàn)有覆蓋空洞修復算法Center[12]和HPA[13]。

(1)覆蓋空洞區(qū)域面積與移動節(jié)點數(shù)量關(guān)系

移動節(jié)點數(shù)量為200個,圖8給出三種算法在不同覆蓋空洞面積下所需移動節(jié)點的數(shù)量,可以看出,隨著覆蓋空洞面積的增加,三種算法所需的移動節(jié)點數(shù)量均增加。CHRND算法所需移動節(jié)點數(shù)量低于Center算法,這是因為CHRND算法使用非并行二分法確定移動節(jié)點最佳位置,避免了并發(fā)修復產(chǎn)生的過度冗余。另外,CHRND算法移動節(jié)點數(shù)量要高于HPA算法,這是因為HPA算法不要求空洞完全修復,允許空洞碎片存在,使得每個節(jié)點的利用率較高,空洞修復具有較低的冗余度,而CHRND算法要求實現(xiàn)覆蓋空洞完全修復。

圖8 空洞區(qū)域面積與移動節(jié)點數(shù)量

(2)網(wǎng)絡覆蓋修復率

網(wǎng)絡覆蓋修復率定義為移動節(jié)點完成空洞區(qū)域的修復面積與覆蓋空洞的總面積比值。

圖9 移動節(jié)點數(shù)量與空洞修復率

圖9 給出了不同移動節(jié)點數(shù)量下的網(wǎng)絡覆蓋空洞修復率情況,可以看出,隨著移動節(jié)點數(shù)量增多,三種算法覆蓋空洞修復率提高。當移動節(jié)點較少時,三種算法的覆蓋空洞修復率較低,而HPA算法覆蓋空洞修復率相對較高,這是因為三種算法覆蓋空洞修復所需移動節(jié)點數(shù)量均不足,而HPA算法在給定移動節(jié)點數(shù)量下實現(xiàn)空洞修復最大化,并不要求空洞完全修復。隨著移動節(jié)點數(shù)量增加,當移動節(jié)點比例超過29%,CHRND算法覆蓋空洞修復率可達100%。Center算法修復率低于CHRND算法,達到相同的修復率所需移動節(jié)點較多,Center算法雖也可完成覆蓋空洞的完全修復,但所需移動節(jié)點數(shù)量比例超過了50%。HPA算法目標是提高節(jié)點使用率,因此在空洞修復過程中可能產(chǎn)生空洞碎片,增加了覆蓋所需節(jié)點數(shù)量。Center算法修復率低于CHRND算法,這是因為Center算法僅考慮HBN節(jié)點的一跳范圍內(nèi)移動節(jié)點,使得移動節(jié)點數(shù)量存在不足。

(3)移動節(jié)點數(shù)量與平均移動距離

移動距離是影響移動節(jié)點能耗的一個重要因素,與網(wǎng)絡中移動節(jié)點的數(shù)量有關(guān)。圖10給出了覆蓋空洞面積為2 000m2下的不同移動節(jié)點數(shù)量對應的平均移動距離??梢钥闯?,隨著移動節(jié)點數(shù)量增加,其平均移動距離減小,這是因為移動節(jié)點數(shù)量增加,更有利于選擇距離目標位置更近的節(jié)點。進一步發(fā)現(xiàn),CHRND算法節(jié)點平均移動距離低于其他兩種算法,這是因為CHRND算法使用非并行二分法確定移動節(jié)點的目標位置,使用最小距離法選擇距離目標位置最近的移動節(jié)點,而HPA和Center算法移動節(jié)點的目標位置的選擇結(jié)合了節(jié)點能耗等多種因素,使得節(jié)點移動距離較長。

圖10 移動節(jié)點數(shù)量與平均移動距離

5 結(jié)束語

無線傳感器網(wǎng)絡覆蓋空洞影響網(wǎng)絡服務質(zhì)量性能。為此,提出了基于非并行二分法的覆蓋空洞修復算法——CHRND,移動節(jié)點以非并行方式實現(xiàn)覆蓋空洞的完全修復。仿真結(jié)果顯示,CHRND算法能以較少數(shù)量的移動節(jié)點實現(xiàn)覆蓋空洞的完全修復,移動節(jié)點修復利用率較高,具有極少的冗余覆蓋,適用于通過一定數(shù)量的移動節(jié)點要求空洞區(qū)域完全修復的應用場景。

猜你喜歡
冗余度二分法交點
高速公路橋梁設計冗余度應用
用“二分法”看七年級學生數(shù)學應用題的審題
“二分法”求解加速度的分析策略
橋梁設計中冗余度以及安全性問題的探討
閱讀理解
冗余度理念在橋梁結(jié)構(gòu)設計中的應用研究
估算的妙招——“二分法”
借助函數(shù)圖像討論含參數(shù)方程解的情況
《“一帶一路”規(guī)劃》英譯版中的譯文冗余度平衡研究
試析高中數(shù)學中橢圓與雙曲線交點的問題