本發(fā)明涉及無線傳感器網絡技術領域,尤其涉及一種無線傳感器網絡中當節(jié)點度受限時的多個傳感器節(jié)點對匯聚傳感器節(jié)點(匯點)的數(shù)據路由方法。
背景技術:
目前,數(shù)據路由問題是無線傳感器網絡中研究最為廣泛的問題之一。一般來說,一個部署好的無線傳感器網絡是由一組無線傳感器節(jié)點組成,每一個無線傳感器節(jié)點都裝配了一些不同種類型的傳感器(例如溫度傳感器、濕度傳感器等)和傳輸模塊。當兩個處在有效通信距離之內的無線傳感器節(jié)點的傳輸模塊處于相同的通信頻段并使用相同的傳輸協(xié)議時,兩個互為鄰居的無線傳感器節(jié)點可以建立起無線鏈路(實際鏈路),進而完成有效的數(shù)據傳輸。一個部署好的無線傳感器節(jié)點有固定的位置并對周邊環(huán)境進行取樣,進而發(fā)送數(shù)據包通過一跳或者多跳轉發(fā)的形式到達預先定義的匯點。
然而,在很多情況下,由于無線傳感器節(jié)點的硬件配置不同,例如落在彼此傳輸范圍內兩個相鄰的無線傳感器節(jié)點同時額外配備了可以在其他頻段上通信的通信模塊,使得兩個無線傳感器節(jié)點除了原有的通信鏈路(實際鏈路)之外,又同時擁有另外一條可用于傳輸數(shù)據的數(shù)據鏈路(潛在鏈路)。而且兩個無線傳感器節(jié)點之間的實際鏈路與潛在鏈路可以同時存在,并且互不干擾。在一個實際鏈路與潛在鏈路共同存在的無線傳感器網絡中,首要的問題就是如何規(guī)劃數(shù)據路由,即如何讓每一個傳感器節(jié)點都充分利用可以使用的實際鏈路和潛在鏈路,找到一條到達匯點最優(yōu)化的路徑。
最優(yōu)化的路徑并不是可以直接通過最短路徑(或最優(yōu)路徑)相關 算法直接找到的,因為一個節(jié)點無線傳輸模塊的數(shù)目直接限定了其與鄰居節(jié)點之間的實際鏈路和潛在鏈路的數(shù)目,即每個節(jié)點在最終選定的數(shù)據路由鏈路中它的度都是受限的,也就是我們所說的節(jié)點度受限的無線傳感器網絡路由問題。
技術實現(xiàn)要素:
本發(fā)明要解決的技術問題是提供一種無線傳感器網絡中,無線傳感器節(jié)點最多可以選擇一條潛在鏈路時所有節(jié)點對匯點的最有數(shù)據路由方法。
為了解決上述技術問題,本發(fā)明提供了無線傳感器網絡中多對一數(shù)據路由方法,所述數(shù)據路由方法包括以下步驟:
S1:將無線傳感器網絡中的每個無線傳感器節(jié)點轉化為對應的超級虛擬節(jié)點;其中,所述超級虛擬節(jié)點包括:四個虛擬節(jié)點和三條有向實際鏈路;
S2:將所述無線傳感器網絡無向圖中的每條無向鏈路賦予權重;
S3:將所述每條無向鏈路轉化為兩條方向相反的有向鏈路,并且所述有向鏈路的權重與對應的所述無向鏈路的權重相同;
S4:計算各個所述無線傳感器節(jié)點對應的所述虛擬節(jié)點到達匯聚傳感器節(jié)點對應的虛擬節(jié)點的鏈路的權重;
S5:合并同一所述無線傳感器節(jié)點對應的所述虛擬節(jié)點,選擇各個所述無線傳感器節(jié)點在度數(shù)受限情況下的最優(yōu)數(shù)據路由通路。
優(yōu)選地,四個所述虛擬節(jié)點分別為第一接收虛擬節(jié)點、第二接收虛擬節(jié)點、第一發(fā)送虛擬節(jié)點以及第二發(fā)送虛擬節(jié)點,所述第一接收虛擬節(jié)點和第二接收虛擬節(jié)點均用于接收其他超級節(jié)點的信息,所述第一發(fā)送虛擬節(jié)點和第二發(fā)送虛擬節(jié)點均用于向其他超級節(jié)點發(fā)送信息;
三條所述有向實際鏈路分別為:第一接收虛擬節(jié)點指向所述第一發(fā)送虛擬節(jié)點的鏈路、第一接收虛擬節(jié)點指向所述第二發(fā)送虛擬節(jié)點 的鏈路、第二接收虛擬節(jié)點指向第一發(fā)送虛擬節(jié)點的鏈路;
所述超級虛擬節(jié)點不包括從第二接收虛擬節(jié)點指向第二發(fā)送虛擬節(jié)點的鏈路。
優(yōu)選地,所述步驟S3中,將所述每條無向鏈路轉化為兩條方向相反的有向鏈路具體為:
若所述無向鏈路為實際鏈接,并且其對應第一無線傳感器節(jié)點和第二無線傳感器節(jié)點,則兩條方向相反的所述有向鏈路分別為所述第一無線傳感器節(jié)點對應的第一發(fā)送虛擬節(jié)點指向所述第二無線傳感器節(jié)點對應的第一接收虛擬節(jié)點、所述第二無線傳感器節(jié)點對應的第一發(fā)送虛擬節(jié)點指向所述第一無線傳感器節(jié)點對應的第一接收虛擬節(jié)點;
若所述無向鏈路為實際鏈接,并且其對應所述第一無線傳感器節(jié)點和第二無線傳感器節(jié)點,則兩條方向相反的所述有向鏈路分別為所述第一無線傳感器節(jié)點對應的第二發(fā)送虛擬節(jié)點指向所述第二無線傳感器節(jié)點對應的第二接收虛擬節(jié)點、所述第二無線傳感器節(jié)點對應的第二發(fā)送虛擬節(jié)點指向所述第一無線傳感器節(jié)點對應的第二接收虛擬節(jié)點。
優(yōu)選地,每一所述無線傳感器節(jié)點對應的四個虛擬節(jié)點之間的邊的權重均為0。
優(yōu)選地,所述步驟S4具體包括:
S41:將所述每個無線傳感器節(jié)點對應的所述虛擬節(jié)點的權重設置為無窮大;
S42:將所述匯聚傳感器節(jié)點對應的所述虛擬節(jié)點的權重設置為0;
S43:計算并存儲所述每個無線傳感器節(jié)點對應的所述虛擬節(jié)點到達匯聚傳感器節(jié)點對應的虛擬節(jié)點的鏈路的權重。
優(yōu)選地,所述步驟S43中,采用單源最短路徑算法計算每個所述無線傳感器節(jié)點對應的所述虛擬節(jié)點到達匯聚傳感器節(jié)點對應的虛擬節(jié)點的鏈路的權重。
優(yōu)選地,所述步驟S2中所述每條無向鏈路的權重為其歐式距離,則所述步驟S5中選擇合并后的權重最小值對應的通路為最優(yōu)數(shù)據路由通路。
優(yōu)選地,所述步驟S2中所述每條無向鏈路的權重為數(shù)據傳輸成功率,則所述步驟S5中選擇合并后的權重最大值對應的通路為最優(yōu)數(shù)據路由通路。
本發(fā)明的上述技術方案具有如下優(yōu)點:本發(fā)明提供的數(shù)據路由方法針對無線傳感器網絡中節(jié)點度受限,特別是無線傳感器節(jié)點最多可以選擇一條潛在鏈路的情況下。能夠有效的將原始的網絡無向圖轉化成有向圖,并為每個無線傳感器節(jié)點創(chuàng)建超級虛擬節(jié)點,進行有效替換之后計算每個虛擬節(jié)點的權重,進而采用最短權重算法計算所有虛擬節(jié)點到匯點的權重即得到所有節(jié)點在節(jié)點度受限情況下的最優(yōu)化數(shù)據路由路徑。
附圖說明
圖1是本發(fā)明實施例提供的數(shù)據路由方法的步驟流程圖;
圖2是本發(fā)明實施例提供的超級虛擬節(jié)點示意圖;
圖3是本發(fā)明實施例提供的原始的網絡無向圖G示意圖;
圖4是本發(fā)明實施例提供的轉化后的網絡有向圖G’示意圖。
具體實施方式
下面結合附圖和實施例對本發(fā)明的具體實施方式作進一步詳細描述。以下實施例用于說明本發(fā)明,但不用來限制本發(fā)明的范圍。
假設有三個節(jié)點a、b、c,它們之間的位置關系是一個等邊三角形的頂點,等邊三角形的邊長小于它們之間最遠的通信距離。如果它們都有額外的同一頻段的通信模塊,則存在三條潛在鏈路ab、bc、ca。任意一個節(jié)點的無線通信模塊在一個時刻只能與最多一個相鄰的節(jié)點進行通信,因此ab、bc、ca三條潛在鏈路其實只能有一條被使用,即ab被使用的時候bc和ac都是不存在的,即當一個潛在鏈路被真正使 用的時候,這條潛在鏈路變成了一條實際鏈路。因此,a、b、c三個無線網絡傳感器節(jié)點的基于潛在鏈路的度是不能超過1的,潛在鏈路的度如果超過1說明有兩條潛在鏈路被同時使用是不可能的。
本發(fā)明實施例中所有無線傳感器節(jié)點的度不超過標準D的前提下,為每一個無線傳感器節(jié)點找到到達匯點最優(yōu)化的數(shù)據路由通路,其中,D為大于1的自然數(shù)。最優(yōu)化的目標可以理解為為每一條實際鏈路和潛在鏈路定義一個權重,這個權重可以是鏈路的歐式距離(本實施例中的權重為鏈路的歐式距離)、或者數(shù)據傳輸成功率等,最優(yōu)化路由通路選擇權重最小值還是最大值根據實際情況選擇不同的權重指標而不同。其中,如果權重為鏈路的歐式距離,權重越小越好,則最終優(yōu)化數(shù)據路由通路取權重最小的通路;如果權重為鏈路的數(shù)據傳輸成功率,權重越大越好,則最終優(yōu)化數(shù)據路由通路取權重最大的通路。無線傳感器網絡中的實際鏈路都是可以作為備選的數(shù)據路由鏈路,因此一個有效的優(yōu)化的數(shù)據路由通路的關鍵在于是否可以選擇潛在路由通路。對于無線傳感器網絡中的任意無線傳感器節(jié)點,以及節(jié)點度受限情況不同,有幾種具體情況。
進一步地,對于任意一個無線傳感器節(jié)點,如果該無線傳感器節(jié)點實際鏈路的度為D,則不會再有與該無線傳感器節(jié)點相連的潛在鏈路被選擇。進而無論通過何種方法獲得的新的數(shù)據路由通路和原有的數(shù)據路由通路到達匯點的數(shù)據路由通路相同,沒有進行優(yōu)化。
進一步地,對于任意一個無線傳感器節(jié)點,如果該無線傳感器節(jié)點實際鏈路的度不超過D-2,該無線傳感器節(jié)點的潛在鏈路可以直接變成實際鏈路。因為為該無線傳感器節(jié)點規(guī)劃的到達匯點的優(yōu)化數(shù)據路由通路上所有節(jié)點的度都不會超過2,即在優(yōu)化的數(shù)據路由通路中,每個無線傳感器節(jié)點最多被選擇了兩個潛在鏈路,滿足所有無線傳感器節(jié)點的度不超過標準D的前提。進而無論通過何種方法獲得的新的數(shù)據路由通路和原有的數(shù)據路由通路到達匯點的數(shù)據路由通路相同,沒有進行優(yōu)化。
進一步地,對于任意一個無線傳感器節(jié)點,如果該無線傳感器節(jié)點的實際鏈路的度為D-1,即該無線傳感器節(jié)點最多可以選擇一條潛在鏈路的情況。本發(fā)明提供的數(shù)據路由方法針對無線傳感器網絡中節(jié)點度受限,特別是無線傳感器節(jié)點做多可以選擇一條潛在鏈路的情況下的優(yōu)化節(jié)點到達匯點的數(shù)據路由通路。具體步驟如下:
如圖1所示,為本發(fā)明實施例提供的數(shù)據路由方法的步驟流程圖。
該數(shù)據路由方法包括以下步驟:S1:將無線傳感器網絡中的每個無線傳感器節(jié)點轉化為對應的超級虛擬節(jié)點;其中,所述超級虛擬節(jié)點包括:四個虛擬節(jié)點和三條有向實際鏈路;S2:將所述無線傳感器網絡無向圖中的每條無向鏈路賦予權重;S3:將所述每條無向鏈路轉化為兩條方向相反的有向鏈路,并且所述有向鏈路的權重與對應的所述無向鏈路的權重相同;S4:計算各個所述無線傳感器節(jié)點對應的所述虛擬節(jié)點到達匯聚傳感器節(jié)點對應的虛擬節(jié)點的鏈路的權重;S5:合并同一所述無線傳感器節(jié)點對應的所述虛擬節(jié)點,選擇各個所述無線傳感器節(jié)點在度數(shù)受限情況下的最優(yōu)數(shù)據路由通路。
進一步地,如圖3所示,為本發(fā)明實施例提供的原始的網絡無向圖G示意圖。首先將原始的網絡無向圖G=(V,E)轉化成為有向圖G’=(V,E’),即將每一條無向無線鏈路(包括實際鏈路和潛在鏈路)轉化為兩條方向相反的有向鏈路,并且有向鏈路的權重與其相對應的無向鏈路的權重相同。其中,V是無線傳感器網絡中n個無線傳感器節(jié)點{v1,v2,…,vn}的集合,E=A∪P,即E是所有無向實際鏈路A以及所有無向潛在鏈路P的集合;E’=A’∪P’,即E’是所有有向實際鏈路A’以及所有有向潛在鏈路P’的集合。
進一步地,其次為無線傳感器網絡中的每一個節(jié)點vi創(chuàng)建一個對應的超級虛擬節(jié)點S(vi)。如圖2所示,為本發(fā)明實施例提供的超級虛擬節(jié)點示意圖。超級節(jié)點S(vi)包括四個虛擬節(jié)點{vain,vpin,vaout,vpout},和三條有向實際鏈路{vainvaout,vainvpout,vpinvaout},并將三條有向實際鏈路的權重都設置為0,其中vain為所述第一虛擬接收節(jié)點,vpin為所述 第二虛擬接收節(jié)點,vaout為所述第一虛擬發(fā)送節(jié)點,vpout為所述第二虛擬發(fā)送節(jié)點,對應于無線傳感器節(jié)點的實際鏈接智能在兩個無線傳感器節(jié)點對應的所述第一虛擬接收節(jié)點和所述第一虛擬發(fā)送節(jié)點之間建立,對應于無線傳感器節(jié)點的潛在鏈接智能在兩個無線傳感器節(jié)點對應的所述第二虛擬接收節(jié)點和所述第二虛擬發(fā)送節(jié)點之間建立。
進一步地,用超級虛擬節(jié)點S(vi)將轉化后的有向圖G’中集合V中的任意節(jié)點vi替換,并使用如下規(guī)則來替換E’中的所有有向鏈路:如果有向鏈路vivj屬于有向實際鏈路集合A’,即有向鏈路vivj是從無線傳感器節(jié)點vi指向無線傳感器節(jié)點vj的實際鏈路,則用有向實際鏈路vaoutvain替換vivj,并賦予有向實際鏈路vaoutvain與有向鏈路vivj一樣的權重;如果有向鏈路vivj屬于有向潛在鏈路集合P’,即有向鏈路vivj是從無線傳感器節(jié)點vi指向無線傳感器節(jié)點vj的潛在鏈路,則用有向潛在鏈路vpoutvpin替換vivj,并賦予有向潛在鏈路vpoutvpin與有向鏈路vivj一樣的權重。如圖4所示,得到本發(fā)明實施例提供的超級虛擬節(jié)點替換任意節(jié)點,并按照上述規(guī)則替換有向鏈路轉化后的網絡有向圖G’示意圖。例如,如圖3中原始網絡無向圖G中無線傳感器節(jié)點u與無線傳感器節(jié)點v之間鏈路的權重為1,將原始網絡無向圖G按照上述規(guī)則進行向網絡有向圖G’的轉化。如圖4中upout到vpin之間有向鏈路的權重、以及vpout到upin之間有向鏈路的權重均為1,即將節(jié)點替換成由4個虛擬節(jié)點組成的超級虛擬節(jié)點,且無向鏈路替換成兩條方向相反且權重相同的有向鏈路。
進一步地,轉化后的有向圖G’中,在超級虛擬節(jié)點S(vi)內部并沒有從vpin指向vpout的有向鏈路,在超級虛擬節(jié)點S(ui)內部并沒有從upin指向upout的有向鏈路,在超級虛擬節(jié)點S(wi)內部并沒有從wpin指向wpout的有向鏈路。進而確保了最優(yōu)化數(shù)據路由通路上,任意一個無線傳感器節(jié)點對應的超級虛擬節(jié)點不會同時使用兩條潛在鏈路,滿足潛在鏈路的度不能超過1的要求。
進一步地,對于轉化后的有向圖G’,我們采用單源最短路徑算法 (Dijkstra算法)計算多節(jié)點到匯點的最短路徑,進而完成每一個節(jié)點對匯點的在節(jié)點度受限情況下最優(yōu)化的數(shù)據路由路徑。具體步驟如下:將所有無線傳感器節(jié)點對應的超級虛擬節(jié)點中的虛擬節(jié)點的權重設置為無窮大;將匯點所對應的超級虛擬節(jié)點中的4個虛擬節(jié)點的權重設置為0;采用單源最短路徑算法(Dijkstra算法),計算并存儲所有無線傳感器節(jié)點對應的超級虛擬節(jié)點中的虛擬節(jié)點到匯點對應的超級虛擬節(jié)點中的4個虛擬節(jié)點的權重;針對得到權重的每一條路徑,獲取權重小的路徑即對應的虛擬節(jié)點到匯點虛擬節(jié)點的最短路徑,并將屬于同一個超級虛擬節(jié)點的虛擬節(jié)點直接合并,我們就得到了所有節(jié)點的在節(jié)點度受限情況下特別是無線傳感器節(jié)點做多可以選擇一條潛在鏈路的情況下的最優(yōu)數(shù)據路由路徑。
本專利中,合并依次并相加,而是由于每一節(jié)點對應的四個虛擬節(jié)點的權重相同,所述知識任一選擇其中一個虛擬節(jié)點,也可以理解為用對應的超級虛擬節(jié)點替換,或是用對應的無線傳感器節(jié)點替換。所有的節(jié)點包括匯聚節(jié)點也是需要合并操作的。
綜上所述,本發(fā)明提供的數(shù)據路由方法針對無線傳感器網絡中節(jié)點度受限,特別是無線傳感器節(jié)點做多可以選擇一條潛在鏈路的情況下。能夠有效的將原始的網絡無向圖轉化成有向圖,并為每個無線傳感器節(jié)點創(chuàng)建超級虛擬節(jié)點,進行有效替換之后計算每個虛擬節(jié)點的權重,進而采用最短權重算法計算所有虛擬節(jié)點到匯點的權重即得到所有節(jié)點在節(jié)點度受限情況下的最優(yōu)化數(shù)據路由路徑。
最后應說明的是:以上實施例僅用以說明本發(fā)明的技術方案,而非對其限制;盡管參照前述實施例對本發(fā)明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發(fā)明各實施例技術方案的精神和范圍。