彭文良
摘要:對基于鄰近圖的主流拓撲控制算法進行了闡述,通過OMNET++軟件仿真建模,設(shè)計出基于DRNG與DLSS拓撲控制算法的網(wǎng)絡(luò)模型,仿真并收集分析數(shù)據(jù)結(jié)果,結(jié)果表明:改進DLSS算法與DRNG算法都能夠?qū)崿F(xiàn)通信拓撲結(jié)構(gòu)的簡化,達到降能的目的;改進DRNG算法比DLSS算法優(yōu)化的拓撲結(jié)構(gòu)的魯棒性更好,更適合實際應(yīng)用推廣。同時提出改進和優(yōu)化的策略。
關(guān)鍵詞:無線傳感器網(wǎng)絡(luò);拓撲控制;鄰近圖;DRNG;DLSS;
中圖分類號:TP391? 文獻標志碼:A? 文章編號:1008-4657(2021)02-0079-05
0 引言
無線傳感器網(wǎng)絡(luò)是集合信息傳遞、接收和處理與一體的自組織的網(wǎng)絡(luò)系統(tǒng),涉及環(huán)境、醫(yī)療、軍事、工業(yè)、農(nóng)業(yè)以及交通等應(yīng)用領(lǐng)域[1]。拓撲控制技術(shù)是保證無線傳感器網(wǎng)絡(luò)通信機制與數(shù)據(jù)融合的重要支撐技術(shù)之一,對于網(wǎng)絡(luò)結(jié)構(gòu)的優(yōu)化與節(jié)能降耗等方面具有直接關(guān)系[2]。陳軍[3]提出了一種啟發(fā)式分簇拓撲控制方法,利用粒子群實現(xiàn)通信節(jié)點的分簇,從而提升通信網(wǎng)絡(luò)的連通性與生命周期。劉志龍等[4]采用群交叉與變異的方式達到非均勻分簇,控制傳感器節(jié)點的剩余能量與負載直接的均衡,在較大的網(wǎng)絡(luò)吞吐量下仍然能夠保持較長的生命周期。除了通過建立粒子群算法達到網(wǎng)絡(luò)拓撲結(jié)構(gòu)的控制之外,還可以通過優(yōu)化節(jié)點可靠性權(quán)值的方式達到節(jié)能的目的。宋偉奇等[5]通過構(gòu)建網(wǎng)絡(luò)節(jié)點模型優(yōu)化傳輸節(jié)點的權(quán)值約束,提升數(shù)據(jù)傳輸?shù)牧鲿扯龋_到延長網(wǎng)絡(luò)壽命周期的目的。本文通過OMNET++軟件對改進后的DRNG(Directed Relative Neighborhood Graph)算法與DLLS(Directed Local Spanning Subgraph)算法的網(wǎng)絡(luò)模型進行仿真,比較不同節(jié)點優(yōu)化技術(shù)的優(yōu)勢,為拓撲控制技術(shù)在無線傳感器網(wǎng)絡(luò)的節(jié)能降耗研究提供依據(jù)。
1 基于鄰近圖的拓撲控制
1.1 DRNG算法改進
在DRNG算法中[6],在得到u的鄰居節(jié)點集之后,在鄰居節(jié)點集內(nèi)尋找距離節(jié)點u最遠的節(jié)點v,并且根據(jù)這兩節(jié)點間的距離來確定節(jié)點的最大發(fā)射功率。所以此算法的最終目的就是找到距離節(jié)點最遠的鄰居節(jié)點。在原有的DRNG算法中需要判斷所有的n個鄰居節(jié)點是否為u的鄰居節(jié)點,而改進DRNG算法減少了n/2需要確定的鄰居節(jié)點的個數(shù)。那么在尋找鄰居節(jié)點的時候如果對于它的可達節(jié)點進行排序,算法的復(fù)雜度將會從原來的n4比較次數(shù)下降為n2比較次數(shù)。算法步驟如圖1所示。
DRNG算法改進主要是在確定可達鄰居集合N后,將N中的節(jié)點按照與u的距離從大到小進行排序,記為v1、v2、v3、...、vn。每個節(jié)點vi(i=1,2,3,...,n)兩兩之間的集合{vi+1,vn},如果不存在一點p滿足max{d(u,p),d(v,p)}< d(u,v),則vi即是u的最遠鄰居節(jié)點。按照vi到u的距離d(ui,v)調(diào)節(jié)發(fā)射功率。
1.2 DLSS的拓撲控制算法
基于DLSS算法的拓撲結(jié)構(gòu)的通信流程與DRNG算法的結(jié)構(gòu)類似[6]。通過每個節(jié)點發(fā)送最大功率的廣播Hello信息,結(jié)合DLSS算法的節(jié)點定位確定鄰居節(jié)點從而實現(xiàn)最高效率的通信路徑篩選。具體的算法如下:
輸入?yún)?shù):Gu:u的可達鄰居子圖G;
輸出參數(shù):Su=(V(Su),E(Su)),根據(jù)Gu得到的局部生成子圖。
Begin
1 Sort(E (Gu));將E(Gu)中的邊按照權(quán)重排序
2 for each edge (u0,v0) in the order
3? ?if u0 is not connected to v0 in Su
4??? ?E(Su):=E(Su)∪{(u0,v0)}
5? ?end if
6 end
End
在完成上述過程后,調(diào)整節(jié)點發(fā)射功率,使之能與最遠的鄰居節(jié)點通信。最后將拓撲圖中的單向邊刪去,僅保留雙向連通的鏈路,保證網(wǎng)絡(luò)的雙向連通。
1.3 基于鄰近圖的仿真建模
本文使用OMNET++(Objective Modular Network TestBed in C++)仿真軟件進行實驗的仿真。
1.3.1 節(jié)點模塊構(gòu)成
在OMNET++中其實節(jié)點也可以看成是一個混合模塊,只是有幾個混合模塊和簡單模塊相互連接就構(gòu)成了節(jié)點。在本文的實驗中建立了最基本的節(jié)點模塊:BaseNode。參數(shù)如下:
parameters:
string applType; //type of the application layer
string netwType; //type of the network layer
string mobType; //type of the mobility module可以設(shè)置節(jié)點是否移動
@display("bgb=301,256,white");
整個節(jié)點內(nèi)部個模塊之間的連接:
nic.upperGateOut --> net.lowerGateIn;
nic.upperGateIn <-- net.lowerGateOut;
nic.upperControlOut --> { @display("ls=red;m=m,70,0,70,0"); } -->net.lowerControlIn;
nic.upperControlIn <-- { @display("ls=red;m=m,70,0,70,0"); } <--net.lowerControlOut;
net.upperGateOut --> appl.lowerGateIn;
net.upperGateIn <-- appl.lowerGateOut;
net.upperControlOut --> { @display("ls=red;m=m,70,0,70,0"); } -->appl.lowerControlIn;
net.upperControlIn <-- { @display("ls=red;m=m,70,0,70,0"); } <-- appl.lowerControlOut;
radioIn --> nic.radioIn;
1.3.2 功率與通信距離
在接收靈敏度一定情況下,采用無線發(fā)射功率P和接收半徑R之間關(guān)系是:
P∝Rn(2 < n < 5)(1)
也就是P可能會遠遠大于R2。n的取值與很多因素有關(guān),主要是環(huán)境因素,在本文的實驗環(huán)境中,通過設(shè)置一系列參數(shù)之后,使得n取值為3,與一般實際情況相符合。一般而言,傳感器節(jié)點的無線通信半徑在100 m以內(nèi)比較合適。因此,本文選擇0~99 m作為節(jié)點通信實驗的測試距離。
1.3.3 功率調(diào)節(jié)
將路徑損失系數(shù)alpha設(shè)置為3.0,將最小信號衰減閥值sat設(shè)置為-84 dBm,載波頻率carrierFrequency設(shè)置為2.412e+9 Hz。在OMNET++中有對于發(fā)射功率和節(jié)點間距的一個計算函數(shù),但是在仿真過程中發(fā)現(xiàn),在距離超過50 m的時候就存在較大的偏差,因此,本文分別通過調(diào)節(jié)節(jié)點發(fā)射間距和節(jié)點發(fā)射功率,得出兩者之間的函數(shù)關(guān)系。然后再另選一些點,并且根據(jù)兩者之間的距離,將他們的功率調(diào)節(jié)為由公式計算得出的值,驗證是否能夠相互通信。
2 基于鄰近圖的仿真結(jié)果分析
2.1 調(diào)整功率與通信距離的關(guān)系
2.1.1 實驗場景
對于本次實驗場景已有一定的描述,如圖2所示。
node[0]向周圍發(fā)送BROADCAST_MESSAGE信號,如果node[1]在收到發(fā)送的信號之后認為該信號是有效信號,即信號強度大于sensitivity則認為是有效信號,發(fā)送BROADCAST_REPLY_MESSAGE。否則,node[1]節(jié)點將會將該廣播信號認為是干擾信號直接丟棄。
2.1.2 節(jié)點距離與發(fā)射功率的關(guān)系
根據(jù)功率調(diào)整與距離調(diào)節(jié)的方式,探討節(jié)點距離與發(fā)射功率之間的關(guān)系,分別測量了間距為10~99 m之間的發(fā)射功率,結(jié)果如表1所示。隨著間距的不斷增大調(diào)整功率隨之增大,并在間距為99 m時,功率達到100 mW。
2.2 鄰近圖算法控制與網(wǎng)絡(luò)生命周期分析
2.2.1 改進DRNG和DLSS算法功率比較
在200 m * 200 m的范圍內(nèi)設(shè)置10個隨機分布的節(jié)點,節(jié)點的最大發(fā)射功率為100 mW,節(jié)點的最大發(fā)射距離為99 m。根據(jù)改進DRNG和DLSS算法,分別計算得到節(jié)點對應(yīng)的發(fā)射功率。節(jié)點分布如圖3所示。
由圖3可知,除0號節(jié)點外,在改進DRNG和DLSS算法的相同坐標下的發(fā)射功率均一致。而在0號節(jié)點中,DLSS算法的發(fā)射功率較大,達到10.1 mW。
2.2.2 仿真實驗與結(jié)果
圖4顯示了網(wǎng)絡(luò)運行中的節(jié)點建立拓撲的過程,在建立初期,已經(jīng)確立了每個節(jié)點的發(fā)射功率。圖4(a)中的node[8]首先發(fā)送廣播消息,圖4(b)的node[9]節(jié)點和node[5]同時接收到廣播消息,形成消息隊列,node[9]節(jié)點首先轉(zhuǎn)發(fā)reply消息,然后node[5]節(jié)點轉(zhuǎn)發(fā)消息,如圖4(c)所示。
(a) node[8]發(fā)送廣播信號(b) node[7]發(fā)送reply信號(c) node[5]發(fā)送reply信號圖4 節(jié)點信號發(fā)送過程圖
如果網(wǎng)絡(luò)節(jié)點的初始發(fā)射功率為最大值,經(jīng)過如圖4的網(wǎng)絡(luò)節(jié)點不斷轉(zhuǎn)發(fā)探測過程,建立了網(wǎng)狀的網(wǎng)絡(luò)拓撲關(guān)系圖如圖5(a)所示。用改進DRNG拓撲控制算法即按照表1發(fā)射功率,確立的拓撲結(jié)構(gòu)如圖5(b)所示。圖5(c)是按照DLSS算法得到個拓撲結(jié)構(gòu)。
從圖5中可以看出,在網(wǎng)絡(luò)的拓撲結(jié)構(gòu)中無論是采用改進DRNG算法還是DLSS算法優(yōu)化,拓撲圖都比原始圖更簡化,從而實現(xiàn)通信網(wǎng)絡(luò)的節(jié)能與生存時間的延長。對比圖5(b)和圖5(c)可以看出在網(wǎng)絡(luò)通信鏈路上DLSS算法優(yōu)化的路徑比較單一化,僅僅存在一條通信回路,所以DLSS算法優(yōu)化的拓撲網(wǎng)絡(luò)比改進DRNG算法更節(jié)能。然而,改進DRNG算法優(yōu)化的拓撲結(jié)構(gòu)中存在兩條可選擇的通信鏈回路,在網(wǎng)絡(luò)結(jié)構(gòu)穩(wěn)定性上比DLSS算法更好,既保證了網(wǎng)絡(luò)結(jié)構(gòu)的通信降能耗,也保障網(wǎng)絡(luò)結(jié)構(gòu)通信的穩(wěn)定性。因此,在實際應(yīng)用中改進DRNG算法相較于DLSS算法更具推廣性與實用性。
3 結(jié)論
拓撲控制技術(shù)是無線傳感網(wǎng)絡(luò)實現(xiàn)節(jié)能降耗,延長通信生命周期的關(guān)鍵。本文在原有DRNG算法的基礎(chǔ)上,利用尋找最遠通信節(jié)點的方式重新對算法進行優(yōu)化,并與經(jīng)典DLSS算法和原始拓撲結(jié)構(gòu)進行比較分析與仿真,得到以下結(jié)論:改進DLSS算法與DRNG算法都能夠?qū)崿F(xiàn)通信拓撲結(jié)構(gòu)的簡化,達到降能的目的;改進DRNG算法比DLSS算法優(yōu)化的拓撲結(jié)構(gòu)的魯棒性更好,更適合實際應(yīng)用推廣。
參考文獻:
[1] 李安瑩,房鑫平,孫福陽.無線傳感器網(wǎng)絡(luò)拓撲控制研究綜述[J].中國新技術(shù)新產(chǎn)品,2015(23):17.
[2]? 司永潔,張健.低損耗無線傳感器網(wǎng)絡(luò)拓撲控制算法仿真[J].計算機仿真,2019,36(10):273-276.
[3]? 陳軍.無線傳感器網(wǎng)絡(luò)啟發(fā)式分簇拓撲控制方法[J].科學(xué)技術(shù)與工程,2018,18(19):94-99.
[4]? 劉志龍,張淋江,周紅雷,等.非均勻分簇無線傳感器網(wǎng)絡(luò)拓撲控制仿真[J].計算機仿真,2019,36(4):260-264.
[5]? 宋偉奇,王代遠.基于節(jié)點優(yōu)化的無線傳感網(wǎng)絡(luò)拓撲控制方法研究[J].廣西民族大學(xué)學(xué)報(自然科學(xué)版),2019,25(3):80-83.
[6]? 陳功平,王紅.基于鄰近圖拓撲構(gòu)造算法的仿真設(shè)計[J].綏化學(xué)院學(xué)報,2020,40(2):158-160.
[責任編輯:許立群]