基于改進廣度優(yōu)先搜索的無線傳感網(wǎng)樹狀拓撲生成方法
【技術領域】
[0001] 本發(fā)明涉及無線傳感網(wǎng)拓撲管理技術領域,具體涉及一種基于改進廣度優(yōu)先搜索 的無線傳感網(wǎng)樹狀拓撲生成方法。
【背景技術】
[0002] 近年來,無線傳感網(wǎng)(WirelessSensorNetworks,WSN)被廣泛地應用在各個領域 以提供大規(guī)模的數(shù)據(jù)感知與收集,比如環(huán)境監(jiān)測,火情監(jiān)控等。無線傳感網(wǎng)是一種由部署在 監(jiān)測區(qū)域的低能耗、低成本、微型傳感器節(jié)點,以自組織、自配置的方式構成的多跳大規(guī)模 無線通信網(wǎng)絡,用來為各類上層應用提供基本的信息感知、傳輸與匯聚。在網(wǎng)絡中,傳感器 節(jié)點能對自身感知數(shù)據(jù)與來自子節(jié)點感知數(shù)據(jù)進行融合,減少數(shù)據(jù)冗余。由于無線傳感網(wǎng) 絡的巨大潛力以及現(xiàn)代無線通信技術、微型傳感器技術的發(fā)展,無線傳感網(wǎng)在軍事、醫(yī)療、 環(huán)境、交通等領域中都具有廣闊的應用前景。
[0003] 在很多應用中,無線傳感網(wǎng)采用典型的多對一、匯聚的通信模式,即隨機部署在監(jiān) 測區(qū)域的傳感器節(jié)點通過樹狀網(wǎng)絡拓撲將感知信息傳遞給匯聚節(jié)點。如圖1所示,在無線 傳感網(wǎng)中,傳感器節(jié)點通過多跳無線通信的方式將感知信息傳遞給匯聚節(jié)點,是一種典型 的多對一、匯聚的通信模式。不可避免地,在一個傳感網(wǎng)中,各傳感器節(jié)點的子節(jié)點數(shù)目可 能分布不均勻,因此,部分節(jié)點可能因承擔過大的數(shù)據(jù)轉(zhuǎn)發(fā)任務而過早耗盡能量,而另一方 面,無線傳感網(wǎng)一般是一次性部署、不可充電、不可替換的,網(wǎng)絡節(jié)點能耗的不均衡可能導 致整個網(wǎng)絡因少部分節(jié)點的連通中斷而過早癱瘓。
[0004] 為了方便網(wǎng)絡的管理,無線傳感網(wǎng)通常采用樹狀的網(wǎng)絡拓撲結構,如圖2所示,網(wǎng) 絡的匯聚節(jié)點相當于樹的根,各傳感器節(jié)點相當于樹的子節(jié)點,各傳感器節(jié)點又有自己的 子節(jié)點;各節(jié)點間的鏈路表示傳感器節(jié)點間的通信鏈路;每個傳感器節(jié)點都將自身的感知 數(shù)據(jù)及子節(jié)點的感知數(shù)據(jù)加以匯聚、融合然后傳遞給父節(jié)點,經(jīng)過各節(jié)點層層傳遞,所有的 感知數(shù)據(jù)最終匯聚到匯聚節(jié)點。
[0005] 傳統(tǒng)的無線傳感網(wǎng)樹狀拓撲生成方法一般都是基于廣度優(yōu)先搜索 (Breadth-firstSearch,BFS)策略的,通過生成的樹狀拓撲的葉子節(jié)點迭代地向周圍節(jié)點 發(fā)現(xiàn)新節(jié)點的方式拓展生成樹,最終將所有的傳感器節(jié)點加入到生成樹中。文獻I:Cormen TH,LeisersonCE,RivestRL,etal.Introductiontoalgorithms[M].Cambridge:MIT press, 2009,pp. 531-539,公開了一種能有效地生成連通的網(wǎng)絡拓撲結構的方法,但該方法 容易造成傳感器節(jié)點負載分布不均勻,影響網(wǎng)絡生存時間。
【發(fā)明內(nèi)容】
[0006] 針對現(xiàn)有問題,本發(fā)明提供一種基于改進廣度優(yōu)先搜索的無線傳感網(wǎng)樹狀拓撲生 成方法,通過限制傳感器節(jié)點的最大子節(jié)點數(shù),并引入動態(tài)的節(jié)點負載估計及隨機化的拓 撲生成控制,從而能有效均衡網(wǎng)絡中傳感器節(jié)點的負載,延長網(wǎng)絡生存時間。
[0007] 本發(fā)明的基于改進廣度優(yōu)先搜索的無線傳感網(wǎng)樹狀拓撲生成方法,定義三種顏色 標記示傳感器節(jié)點狀態(tài):WHITE表示節(jié)點尚未連接到網(wǎng)絡,GRAY表示節(jié)點已連接到網(wǎng)絡但 其子節(jié)點集合還未確定,BLACK表示節(jié)點已經(jīng)連接到網(wǎng)絡并且該節(jié)點的子節(jié)點集合已經(jīng)確 定。首先,設置節(jié)點負載估計參數(shù)q和最大子節(jié)點數(shù)目c,在當前網(wǎng)絡拓撲T下,定義Ii (T) 為節(jié)點i的負載估計值,Li(T)為節(jié)點i的估計生存時間,如公式(1)所示:
[0008]
[0009] 其中,設節(jié)點i的父節(jié)點為Pi, <>,表示節(jié)點i與父節(jié)點Pi的距離,E1表示節(jié)點i的 初始能量,A(KO)表示節(jié)點數(shù)據(jù)傳輸能耗,&(夂表示數(shù)據(jù)接收能耗;
[0010] An(T)表示節(jié)點i的估計傳輸數(shù)據(jù)量,如式⑵所示:
[0011] Dj^(T) =B-W0+D^'(T) (2)
[0012] zT(r)表示節(jié)點i的估計接收數(shù)據(jù)量,如式⑶所示:
[0013] 1)廣(:〇 = 5.(W1.<(;〇 + %.AZ12CT) + ...'.<(21) (3)
[0014] 其中,B表示傳感器節(jié)點單位時間感知數(shù)據(jù)量,W(r)表示節(jié)點i的m跳距離的子 節(jié)點個數(shù),''^表示節(jié)點i的m跳距離的子節(jié)點的權重,m= 1,2,…q;權重Wci,W1,的取 值范圍均為[0, 1)且WciSwi彡…wq。匯聚節(jié)點的負載估計值設為0。
[0015] 然后對網(wǎng)絡中的任意一個傳感器節(jié)點V,進行下面步驟1~步驟16。
[0016] 步驟1,對節(jié)點V進行初始化設置,具體是:設置節(jié)點V的父節(jié)點P[v]為空,節(jié)點V 的顏色標記C[v]為WHITE,節(jié)點V的子節(jié)點數(shù)量CN為0,節(jié)點V的子節(jié)點更新完成標記為 F,子節(jié)點更新完成標記包含兩個取值F和T,F(xiàn)表示未完成,T表示完成;
[0017] 步驟2,判斷節(jié)點V是否為網(wǎng)絡的匯聚節(jié)點,如果是,將顏色標記C[v]設置為GRAY,父節(jié)點P[v]設置為V,然后執(zhí)行步驟3 ;如果否,直接執(zhí)行步驟3 ;
[0018] 步驟3,判斷節(jié)點V的顏色標記C[v]是否為GRAY,如果否,執(zhí)行步驟4 ;如果是,跳 轉(zhuǎn)到步驟10執(zhí)行;
[0019] 步驟4,判斷節(jié)點V的顏色標記C[v]是否為WHITE,如果是,執(zhí)行步驟5 ;如果否, 結束對節(jié)點V的執(zhí)行過程;
[0020] 步驟5,等待t秒,監(jiān)聽相鄰節(jié)點的加入請求消息,將發(fā)出加入請求消息的節(jié)點加 入到自己的候選父節(jié)點集合CP[v];設CP[v]中包含n個候選父節(jié)點P1,P2,…,Pn,n為正整 數(shù);
[0021] 步驟6,獲得節(jié)點P1,P2,…,Pn的負載估計值,得到對應的估計生存時間LpIvLn,
[0022] 步驟7,按照均勻分布生成[0,L1+!^"Ln)之間的隨機數(shù)R;
[0023] 步驟8,確定R所在取值區(qū)間Sy,將節(jié)點V的父節(jié)點P[v]更新為節(jié)點Py,并向Py發(fā) 送父節(jié)點請求消息;確認后,將顏色標記C[v]更新為GRAY;
[0024] 步驟9,跳轉(zhuǎn)到步驟3執(zhí)行;
[0025] 步驟10,找到節(jié)點V的所有相鄰節(jié)點,并加入節(jié)點集N[v];
[0026] 步驟11,判斷N[v]是否為空集及CN是否小于c,若N[v]為空集或CN不小于c,轉(zhuǎn) 步驟12執(zhí)行;否則,轉(zhuǎn)步驟14執(zhí)行;
[0027] 步驟12,判斷節(jié)點V的子節(jié)點更新完成標記是否為T,若是,則將C[v]更新為 BLACK,然后結束對節(jié)點V的執(zhí)行過程;若否,執(zhí)行步驟13 ;
[0028] 步驟13,更新節(jié)點V的子節(jié)點信息以及負載估計值,再跳轉(zhuǎn)到步驟12執(zhí)行;處理 相鄰節(jié)點的父節(jié)點請求消息,更新節(jié)點V的子節(jié)點數(shù)量CN、負載估計值和子節(jié)點更新完成 標記;
[0029] 步驟14,從N[v]中取出一節(jié)點u;
[0030] 步驟15,判斷節(jié)點u的顏色標記C[u]是否為WHITE,若是,轉(zhuǎn)步驟16執(zhí)行,若否, 轉(zhuǎn)步驟11執(zhí)行;
[0031] 步驟16,請求節(jié)點u將C[u]設置為GRAY,將P[u]設置為V,然后跳轉(zhuǎn)到步驟11執(zhí) 行。
[0032] 本發(fā)明從無線傳感網(wǎng)樹狀拓撲生成問題出發(fā),在傳統(tǒng)的基于廣度優(yōu)先搜索策略的 樹狀網(wǎng)絡拓撲生成方法基礎上,提出了一種基于改進廣度優(yōu)先搜索策略并結合節(jié)點負載動 態(tài)估計與隨機化父節(jié)點選擇機制的樹狀網(wǎng)絡拓撲生成方法,相較于傳統(tǒng)方法,具有如下優(yōu) 占.
[0033] (1)本發(fā)明方法更好地均衡了網(wǎng)絡節(jié)點的負載,均衡了各節(jié)點能耗,有效延長了網(wǎng) 絡的生存時間。
[0034] (2)與其他樹狀拓撲生成算法相比,本發(fā)明既考慮了均衡網(wǎng)絡中各節(jié)點的子節(jié)點 數(shù)目,又考慮了節(jié)點傳輸效率,并提出隨機化父節(jié)點選擇機制有效地保證了無線傳感網(wǎng)樹 狀拓撲生成的穩(wěn)定性,最終生成能量有效的樹狀網(wǎng)絡拓撲。
[0035] (3)本發(fā)明的無線傳感網(wǎng)樹狀拓撲生成方法充分考慮了當前普通無線傳感網(wǎng)的網(wǎng) 絡結構與傳感器節(jié)點功能特性,并提出了分布式的實現(xiàn)方式,具有較高的可行性和較廣的 適用性。
【附圖說明】
[0036] 圖1是無線傳感網(wǎng)的應用場景圖;
[0037] 圖2是樹狀的無線傳感網(wǎng)拓撲結構圖;
[0038] 圖3是傳統(tǒng)無線傳感網(wǎng)樹狀拓撲生成的流程示意圖;
[0039] 圖4是本發(fā)明的基于改進廣度優(yōu)先搜索的無線傳感網(wǎng)樹狀拓撲生成方法整理流 程圖;
[0040] 圖5是本發(fā)明更新子節(jié)點信息以及負載估計值的方法流程圖;
[0041] 圖6是本發(fā)明仿真實驗的仿真結果示意圖。
【具體實施方式】
[0042] 下面將結合附圖和實施例對本發(fā)明作進一步的詳細說明。
[0043] 傳統(tǒng)基于廣度優(yōu)先搜索的無線傳感網(wǎng)樹狀拓撲生成方法中,搜索從根節(jié)點,即傳 感網(wǎng)的匯聚節(jié)點出發(fā),每當一個節(jié)點新加入到樹狀網(wǎng)絡后,搜索節(jié)點的其他相鄰節(jié)點尚未 加入到網(wǎng)絡中,一旦發(fā)現(xiàn)還有相鄰節(jié)點沒有加入到網(wǎng)絡中,該搜索節(jié)點通知該相鄰節(jié)點加 入到網(wǎng)絡,并且搜索節(jié)點自己作為新加入節(jié)點的父節(jié)點;通過新加入到網(wǎng)絡中的節(jié)點迭代 地搜索新的相鄰節(jié)點最終生成以匯聚節(jié)點為根的樹狀拓撲結構。
[0044] 定義三種顏色作為傳感器節(jié)點狀態(tài)標記(WHITE,GRAY,BLACK),WHITE表示節(jié)點尚 未連接到網(wǎng)絡,GRAY表示節(jié)點已連接到網(wǎng)絡并且可能存在相鄰傳感器節(jié)點尚未連接到傳感