專利名稱:基于線性能量函數(shù)的服務(wù)質(zhì)量路由預(yù)計(jì)算算法的制作方法
技術(shù)領(lǐng)域:
基于線性能量函數(shù)的服務(wù)質(zhì)量路由預(yù)計(jì)算算法屬于互聯(lián)網(wǎng)路由技術(shù)領(lǐng)域,尤其涉及具有多個(gè)服務(wù)質(zhì)量參數(shù)的服務(wù)質(zhì)量(QoS)路由技術(shù)。
由于多約束的QoSR無法在多項(xiàng)式時(shí)間內(nèi)求解,為此研究人員設(shè)計(jì)了很多啟發(fā)式算法。然而這些算法往往具有很大的局限性(1)計(jì)算復(fù)雜度過高、無法應(yīng)用到實(shí)際環(huán)境中;(2)算法性能太低,找不到實(shí)際存在的可行路徑;(3)算法只是針對某些特殊情況設(shè)計(jì)的,不具有普適性。這個(gè)專利提出一種基于線性能量函數(shù)的QoS路由預(yù)計(jì)算算法LEFPA(Linear EnergyFunction-based Precomputation Algorithm),該算法使用多個(gè)線性能量函數(shù)為每條鏈路計(jì)算出一組能量值,然后根據(jù)這些能量值來計(jì)算QoS路由表。從而在進(jìn)行基于服務(wù)質(zhì)量的路由時(shí),只需要通過查找路由表就可以完成路徑的選擇。
本發(fā)明所提出的方法的特征在于算法采用線性能量函數(shù)將多個(gè)QoS參數(shù)轉(zhuǎn)換成單一的能量值,進(jìn)而根據(jù)這些能量值以源節(jié)點(diǎn)為樹根,建立最短路徑樹(Shortest Path Tree,SPT),使得從樹根節(jié)點(diǎn)到達(dá)任意節(jié)點(diǎn)沿著該樹的路徑具有最小能量值。然后算法根據(jù)這個(gè)SPT計(jì)算出部分QoS路由表。由于算法使用多個(gè)線性能量函數(shù),因此通過計(jì)算得到多個(gè)SPT及其對應(yīng)多個(gè)的部分QoS路由表,最后將這多個(gè)表組合在一起,形成一個(gè)完整的QoS路由表。當(dāng)QoS業(yè)務(wù)的路由請求到來時(shí),只需要查找路由表就可以完成可行路徑的計(jì)算和查找。在節(jié)點(diǎn)s上運(yùn)行的該算法,依次含有以下步驟(1)初始化輸入每個(gè)鏈路具有k個(gè)QoS參數(shù)的拓?fù)鋱DG、根節(jié)點(diǎn)s、目標(biāo)節(jié)點(diǎn)t;能量系數(shù)α=(α1,α2,…,αk),使能量系數(shù)分量的個(gè)數(shù)等于QoS參數(shù),即為每個(gè)QoS參數(shù)定一個(gè)能量系數(shù)分量αl∈[O,1];能量函數(shù)的個(gè)數(shù)為B,它均勻分布在能量系數(shù)口的取值范圍內(nèi),與QoS請求無關(guān);(2)根據(jù)拓?fù)鋱DG,針對B個(gè)能量系數(shù)向量中某一個(gè)尚未使用過的向量計(jì)算每條鏈路的能量值ga(e)=Σl=1kalwl;]]>(3)從根節(jié)點(diǎn)s出發(fā),計(jì)算從s到每一個(gè)節(jié)點(diǎn)一包括目標(biāo)節(jié)點(diǎn)t-在內(nèi)的最短路徑樹;(4)根據(jù)最短路徑樹產(chǎn)生部分路由表QoSR;(5)判斷是否已經(jīng)使用過了所有的B個(gè)向量若存在沒有使用過的向量,則返回步驟(2)若不存在沒有使用過的向量,擇把基于B向量產(chǎn)生的所有部分路由表組成一個(gè)完整的QoS路由表。
所述的能量函數(shù)B的個(gè)數(shù)為7-10個(gè)實(shí)驗(yàn)證明即便是對于規(guī)模較大的網(wǎng)絡(luò),B=7時(shí)失效概率已經(jīng)非常小,如節(jié)點(diǎn)數(shù)N=500時(shí),在95%的置信度下失效概率Pr=0.0482±0.0022。
圖1.LEFPA算法流程2.算法運(yùn)用實(shí)例的網(wǎng)絡(luò)拓?fù)?.可行路徑p’與超平面之間的位置關(guān)系a.向量α與直線P的關(guān)系;b.向量口的連續(xù)變化示意圖。
圖4.不可行區(qū)域與可行區(qū)域a.MNOT與 的關(guān)系b.最小能量路徑的跳變示意圖。
圖5不可行區(qū)域與可行區(qū)域a.可行區(qū)域的凸性;b.不定區(qū)域示意圖。
圖6線性能量函數(shù)預(yù)計(jì)算算法LEFPA偽碼描述圖7失效概率圖8失效概率Pr與能量函數(shù)個(gè)數(shù)刀的關(guān)系圖9產(chǎn)生隨機(jī)QoS請求具體實(shí)施方式
為了便于進(jìn)一步描述該算法,我們首先給出幾個(gè)定義和定理。
用有向圖G(V,E)表示一個(gè)網(wǎng)絡(luò),其中V為節(jié)點(diǎn)集,元素v∈V稱為圖G的一個(gè)頂點(diǎn)(節(jié)點(diǎn));E為弧集,元素eij∈E記為e=vi→vj稱為圖G的一條邊。在QoSR中給每個(gè)鏈路e關(guān)聯(lián)上一組相互無關(guān)的權(quán)值(w1(e),w2(e),…,wk(e))稱為鏈路e的QoS度量(權(quán)值),簡寫為w(e)。其中對1≤l≤k有度量wl(e)∈R+滿足可加性,即對路徑p=v0→v1→…→vn有wl(p)=Σi=1nwl(vi-1→vi)]]>。
定義1多重受限路徑對于給定的有向圖G(V,E)、源節(jié)點(diǎn)s、目的節(jié)點(diǎn)t和k≥2重權(quán)值wk(e)∈R+,以及限制向量c=(c1,c2,…,ck),從s到t的路徑p稱為多重受限路徑,如果對1≤l≤k有wl(p)≤cl,簡寫為w(p)≤c。
這里的w(e)和c都是k維向量。而對于給定的QoS請求及其限制條件c,QoSR的主要任務(wù)就是在當(dāng)前網(wǎng)絡(luò)狀態(tài)下尋找滿足要求的路徑p,使得w(p)≤c。
1.線性能量函數(shù)分析Dijkstra給出了單一度量下計(jì)算最短路徑樹(SPT)的算法,并且具有較低的算法復(fù)雜度。然而對于多重受限的QoSR問題涉及到同時(shí)考慮多種度量,因此導(dǎo)致問題變?yōu)镹PC的復(fù)雜度而無法使用原有算法。一種可能的求解思路是將多種度量轉(zhuǎn)化為單一度量。
定義2線性能量函數(shù)ga令線性函數(shù)ga(e)=Σl=1kalwl]]>為鏈路e的能量函數(shù),表示e的耗費(fèi)值。其中a1∈
為與e無關(guān)的系數(shù)(l=1,2,…,k),且Σl=1kal=1,]]>并將滿足該條件的向量a=(a1,a2,…,ak)稱為能量系數(shù)。
基于這樣的線性能量函數(shù),我們將原來的多重受限路徑問題轉(zhuǎn)化為最小能量路徑問題。能量函數(shù)的每個(gè)系數(shù)則表明了在計(jì)算“最優(yōu)路徑”時(shí),該系數(shù)所對應(yīng)的度量與其他度量相比的相對重要程度。
定理1以ga(e)為關(guān)鍵字使用Dijkstra算法,可以建立以節(jié)點(diǎn)s為根的最小能量樹T(ga),滿足沿著T(ga)從s到任意節(jié)點(diǎn)t的路徑pT有g(shù)a(pT)=minp(s,t)∈Gga(p(s,t))。
證明因?yàn)間a(e)為線性函數(shù),滿足ga(e1+e2)=Σl=1kalwl(e1+e2)]]>=Σl=1kalwl(e1)+Σl=1kalwl(e2)=ga(e1)+ga(e2)]]>。所以可以首先算出每個(gè)鏈路的能量值ga(e),然后以單一權(quán)值ga(e)為關(guān)鍵字代替原Dijkstra算法中的鏈路花費(fèi),然后使用原有算法以s為源建立SPT。由于原算法能夠保證從s到任意節(jié)點(diǎn)沿著該SPT的路徑具有最小的花費(fèi),因此以ga(e)為關(guān)鍵字的算法保證pT為從s到t的具有最小能量的路徑,即ga(PT)=minp(s,t)∈Gga(p(s,t))。
以滿足定義2的能量系數(shù)a為自變量,我們將最小能量樹T(ga)簡記為Ta,而將沿著T(ga)從s到t的路徑pT記為pa。這樣,問題轉(zhuǎn)化為對給定的圖G和源目的對(s,t),能量系數(shù)a取遍空間所有可能的取值時(shí),集合{pa|_a}具有什么樣的性質(zhì),如元素的分布、元素的個(gè)數(shù)等。為了便于研究,我們給出路徑權(quán)值空間的概念,下文的分析都將在這個(gè)空間中進(jìn)行。
定義3路徑權(quán)值空間稱Wk=W1×W2×…×Wk為路徑權(quán)值空間,如果對任意p∈G有w1(p)∈W1。
對于通常取值w1(e)∈R+,可以令Wl=R+,這樣對任意p有wl(p)∈Wl,因此p為Wk中的點(diǎn),即p∈Wk,而上述集合{pa|_a}成為Wk中的點(diǎn)集。
定理2對給定的圖G和源目的對(s,t)及能量系數(shù)a,令gopt=Σl=1kalwl(pa),]]>則任意從s到t的路徑p必然在空間Wk的超平面P={p|Σl=1kalwl(p)=gopt}]]>的上方。
證明采用反證法,若存在一點(diǎn)p′在超平面P的下方,則gopt=Σl=1kalwl(pa)>Σl=1kalwl(p′),]]>這與定理1中g(shù)(pa)=minp(s,t)∈Gg(p(s,t))矛盾。所以如果在空間Wk中還有其他點(diǎn)p′,則p′必然位于超平面P的上方。
以k=2舉例,如圖3a所示對給定的向量a,以能量值ga為關(guān)鍵字使用Dijkstra算法計(jì)算,得到從s到t的能量最少的路徑pa。則過點(diǎn)pa且垂直于向量a的垂線P構(gòu)成了對空間W2的一個(gè)劃分所有從s到t的路徑p′必然位于超平面P的上方。值得注意的是,由于網(wǎng)絡(luò)拓?fù)鋱D的離散性,對于連續(xù)變化的向量a,其對應(yīng)的pa在Wk空間中并不會(huì)連續(xù)變化,因此這種映射a pa并不是單射。如圖3b所示,給定向量從a′連續(xù)變化到a″時(shí),最小能量函數(shù)的路徑不變,即pb=pa對b∈[a′,a″]。這樣,一個(gè)點(diǎn)pa將對應(yīng)多個(gè)連續(xù)變化的超平面P(b)。
2.解空間可行性分析下面我們給出整個(gè)解空間Wk的一個(gè)劃分,包括不可行區(qū)域MNOT、必可行區(qū)域MFEASIBLE和不定區(qū)域MUNKNOW,使得對于任意QoS請求能夠很方便的判斷是否存在可行路徑,如果存在則可以給出一條可行路徑。
定義4不可行區(qū)域在解空間Wk中,對給定向量a所構(gòu)造的上述超平面P,點(diǎn)集M(a)={w|w∈Wk,w位于P(a)下方}稱為由a所確定的不可行區(qū)域, 稱為不可行區(qū)域。
定理3對給定解空間Wk中的不可行區(qū)域MNOT,如果一個(gè)從s到t的QoS請求c∈MNOT,則不存在可行路徑p滿足w(p)≤c。
證明由MNOT的定義可見,MNOT實(shí)際上是由向量a的不斷連續(xù)變化所對應(yīng)的所有M(a)構(gòu)成的并集。如果一個(gè)QoS請求c∈MNOT,則根據(jù)定義必然存在向量a所構(gòu)造的超平面P(a),使得c位于P(a)下方。根據(jù)定理2,任意從s到t的路徑,p′必然位于P(a)的上方,因此不存在可行路徑p滿足w(p)≤c。
定義5可行區(qū)域在解空間Wk中,點(diǎn)集 稱為可行區(qū)域,其中MNOT的補(bǔ)集MNOT‾=Wk\MNOT]]>。
例如,W2空間中對于最小能量點(diǎn)唯一的網(wǎng)絡(luò)來說,非可行區(qū)域與可行區(qū)域如圖4a所示,其中MNOT=MNOT(a′)∪MNOT(a″)。而對于一般情況下具有多個(gè)最小能量點(diǎn)時(shí),則要考慮多個(gè)向量a對應(yīng)同一個(gè)最小能量路徑點(diǎn)pa的情況,如圖4b所示。給定向量從a′連續(xù)變化成為a″時(shí),所求得的最小能量路徑始終保持為pa;而當(dāng)給定向量從b′連續(xù)變化成為b″時(shí),所求得的最小能量路徑始終保持為pb。其中,給定向量從a″變化到b′時(shí)引起的最小能量路徑的跳變過程中,有向量a″=b′,也就是對于這個(gè)向量存在多個(gè)最小能量點(diǎn)pa和pb。這種跳變引入了一個(gè)很好的性質(zhì)雖然最小能量點(diǎn)是離散的,但不可行區(qū)域是連續(xù)的。
定理4可行區(qū)域M是凸集,并且pa都在M的邊界,而對M的任一頂點(diǎn)都存在向量a使得pa為該頂點(diǎn)。
證明分三步分別證明上述各個(gè)子命題。
(1)現(xiàn)證可行區(qū)域M是凸集對給定向量a,所對應(yīng)的超平面將解空間分成不可行區(qū)域和可行區(qū)域兩個(gè)部分,各成為一個(gè)半空間,因此可行區(qū)域MNOT(a)=Wk\MNOT(a)是一個(gè)凸集。而 因?yàn)槎鄠€(gè)凸集的交集是凸集,所以MAVL是凸集。
(2)現(xiàn)證任意pa都在M的邊界對任一pa,以向量a為法向量過點(diǎn)pa作超平面P(a),則根據(jù)定理2有M在P(a)的一側(cè),因此pa在M的邊界。
(3)現(xiàn)證M的頂點(diǎn)都存在向量a使得pa為該點(diǎn)對_x為M的頂點(diǎn),因?yàn)镸是凸集,存在一個(gè)過點(diǎn)x的平面P(a)使得M在P(a)的一側(cè),其中a為平面的法向量。由于M為向上開放的集合,即(∞,∞,…,∞)∈M,因此M必在P(a)的上方。所以以a為給定向量,必然可以求得pa=x。
例如,隨著能量函數(shù)的不同,有多個(gè)最小能量路徑時(shí),如圖5a所示可行區(qū)域MAVL為一個(gè)凸集,且MAVL的每個(gè)頂點(diǎn)必為一條最小能量路徑。
下面我們進(jìn)一步將MAVL分為兩個(gè)部分必可行區(qū)域MFEASIBLE和不定區(qū)域MUNKNOW。
定義6必可行區(qū)域和不定區(qū)域稱MFEASIBLE={p|∃a,p≥pa}]]>為必可行區(qū)域,稱MUNKNOWN=MAVL-MFEASIBLE為不定區(qū)域。
例如圖5b所示,W2空間中MFEASIBLE、MUNKNOW以及MNOT之間的關(guān)系。
定理5對于任意的QoS請求c,如果c∈MFEASIBLE,則必然存在可行路徑。
證明由MFEASIBLE的定義可見, a使得pa≤c,因此路徑pa即為可行路徑。
基于上述理論分析,首先使用預(yù)計(jì)算的方式將向量a不斷變化,并保存所有最小能量路徑組成的集合{pa},而對后續(xù)的QoS請求c則只需要根掘{pa}就可以查找出可行路徑。這個(gè)過程中,需要對QoS請求c進(jìn)行分類(1)不存在可行路徑c∈MNOT;(2)不確定是否存在可行路徑c∈MUNKNOWN;(3)存在可行路徑c∈MFEASIBLE。
在實(shí)際應(yīng)用中,對上述第1類情況可以直接拒絕該QoS請求,或者進(jìn)行QoS協(xié)商。而對第2類不能判斷的情況,則希望發(fā)生的概率越小越好,我們在第四部分的性能評價(jià)中,通過模擬給出了數(shù)值結(jié)果,說明使用最小能量路徑集{pa}不能判定的概率非常小,而絕大部分是另外兩類的QoS請求。此外,我們還通過實(shí)驗(yàn)證明了,一個(gè)位于不可判定區(qū)域中的QoS請求,具有可行路徑的概率非常小。因此一旦這類情況發(fā)生,我們可以在對整個(gè)算法性能影響很小的前提下,將其視為第1類情況并拒絕該QoS請求。對第3類情況,我們則可以從{pa}中找到一個(gè)滿足要求的元素作為可行路徑。
由于實(shí)際算法中不能實(shí)現(xiàn)向量a的連續(xù)變化,而無法保證找到集合{pa)中的所有元素,因此增大了不定區(qū)域MUNKNOW。因此有必要驗(yàn)證基于個(gè)數(shù)很少的離散變化的向量a所構(gòu)成的集合{pa},所計(jì)算的不定區(qū)域MUNKNOW對算法總體性能的影響。
由于需要將a的離散取值與網(wǎng)絡(luò)無關(guān),因此我們首先歸一化網(wǎng)絡(luò)度量,即任一度量在所有條鏈路上配置的最大值都相同,即maxe∈Ewl(e)為與l無關(guān)的常數(shù)。
算法流程圖如圖1所示。下面首先通過一個(gè)實(shí)例來說明算法是如何工作的。網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如圖2.a所示,其中每條鏈路包含延遲和抖動(dòng)兩個(gè)參數(shù),通過路由協(xié)議交互,節(jié)點(diǎn)s已經(jīng)具有全部網(wǎng)絡(luò)狀態(tài)信息?,F(xiàn)在,節(jié)點(diǎn)s使用LEFPA算法計(jì)算QoS路由表。假設(shè)算法配置的B=2,則首先計(jì)算出能量函數(shù)的系數(shù)a=(1,0),對應(yīng)能量函數(shù)ga(e)=w0。這時(shí),使用該能量函數(shù)建立SPT如圖2.b所示,并基于該SPT建立部分路由表。然后,再更改能量函數(shù)的系數(shù)a=(0,1),對應(yīng)能量函數(shù)ga(e)=w1。這時(shí),使用該能量函數(shù)建立SPT如圖2.c所示,并基于該SPT建立部分路由表。最后將兩部分路由表綜合在一起,形成最終的QoS路山表。其中,從s到t的路徑有兩條(sacdt)和(sbcdt)。
我們對2度量的情況設(shè)計(jì)了基于線性能量函數(shù)的預(yù)計(jì)算算法LEFPA,如圖6所示。在節(jié)點(diǎn)s上運(yùn)行的LEFPA算法可以分成以下幾個(gè)步驟(a)根據(jù)配置產(chǎn)生B個(gè)向量a=(a1,a2)(第3-4行);(b)針對每個(gè)向量a和給定的拓?fù)鋱DG,計(jì)算每個(gè)鏈路的能量值ga(e)(第5-6行)(c)以ga為能量函數(shù),使用Dijkstra算法計(jì)算以s為源節(jié)點(diǎn)的最小能量樹T(a)(第7行);(d)保存從s到每個(gè)節(jié)點(diǎn)的最小能量路徑到QoS路由表(第8-9行)。其中,保存最小能量路徑pa(s,t)時(shí),只需要查看已有從s到t的路徑的最后一條pb(s,t)是否與當(dāng)前所計(jì)算出的路徑相同,即是否有pb(s,t)=pa(s,t),從而可以避免多次保存同一條路徑(可由定理4的凸性和定理2保證)。由于對線性函數(shù)ga(e)的操作滿足保序性,因此只要網(wǎng)絡(luò)狀態(tài)信息一致,各個(gè)節(jié)點(diǎn)節(jié)點(diǎn)使用同樣的向量a所產(chǎn)生的路由表不會(huì)構(gòu)成回路。
下面分析該算法的計(jì)算復(fù)雜度。設(shè)網(wǎng)絡(luò)G的節(jié)點(diǎn)數(shù)為n=|V|,邊數(shù)m=|E|。則步驟(b)的計(jì)算復(fù)雜度為O(m);采用改進(jìn)的dijkstra′s算法,步驟(c)的復(fù)雜度為O(nlogn+m);步驟(d)的復(fù)雜度為O(n)。因此,整個(gè)預(yù)計(jì)算算法的計(jì)算復(fù)雜度為O(B(m+nlogn+n))。這實(shí)際上約為單一度量下原有dijkstra′s算法的B倍。
LEFPA算法通過保存最小能量路徑產(chǎn)生了QoS路由表,由于避免保存相同路徑,因此QoS路由表的規(guī)模將不大于原單一度量下路由表規(guī)模的B倍。對于2約束QoSR應(yīng)用,當(dāng)QoS請求c(s,t)到達(dá)時(shí),只需要在路由表內(nèi)從s到t的路徑中(至多為B條)查找是否存在pa(s,t)≤c(s,t)。如果存在則返回該pa(s,t);否則拒絕該QoS請求。而對于單約束求最優(yōu)的QoSR應(yīng)用(如DCLC),則可以在路由表內(nèi)從s到t的路徑中(至多為B條)查找滿足約束的最優(yōu)路徑。假設(shè)原單一度量下路由表的查找次數(shù)為L,則通過折半查找的方式可以實(shí)現(xiàn)QoS路由表的查找次數(shù)為L+[log2B]。
由于LEFPA算法中B的取值對算法性能和復(fù)雜度都有很大影響,下面通過廣泛深入的模擬實(shí)驗(yàn)給出B與算法性能的關(guān)系,并說明在實(shí)際應(yīng)用中B取一個(gè)很小的數(shù)值(如B=7)就能夠得到很好的性能。
目前,我們已經(jīng)通過大量的模擬實(shí)驗(yàn)驗(yàn)證了該算法的路由性能(路由成功率),包括對算法絕對性能的評價(jià)、相對性能的評價(jià)、以及和其他算法的比較,都說明該算法具有很好的性能。
我們使用與QoS請求無關(guān)的“不定區(qū)域比例法”來評價(jià)LEFPA算法的絕對性能。評價(jià)QoSR算法性能的常用方法有兩種。(1)競爭率算法能夠找到可行路徑的請求數(shù)目與存在可行路徑的請求數(shù)目的比值;(2)路由成功率算法能夠找到可行路徑的請求數(shù)目與所模擬的總請求數(shù)目的比值。
這兩種評價(jià)方法的區(qū)別在于作為分母的QoS請求是否在一定具有可行路徑。這兩種方法都有一個(gè)共同的缺陷計(jì)算結(jié)果很大程度上依賴于所產(chǎn)生的QoS請求的限定條件,即QoS限制的分布。對于大規(guī)模網(wǎng)絡(luò)拓?fù)鋱D來說,很難判斷一個(gè)QoS請求是否存在可行路徑,因此路由成功率得到了廣泛的應(yīng)用。然而路由成功率更大程度上依賴于QoS請求的限制條件,而不同的文獻(xiàn)采用不同的產(chǎn)生方法,這導(dǎo)致路由成功率失去了絕對數(shù)值的評價(jià)意義,只有在同一批數(shù)據(jù)的相對比較中才有意義。
為避免這個(gè)問題,本文采用與QoS請求無關(guān)的“不定區(qū)域比例法”,把使用LEFPA算法不可判定的區(qū)域作為算法失效區(qū)域,而模擬實(shí)驗(yàn)就是分析算法的失效概率Pr=MUNKNOWNMNOT+MAVL]]>與B的關(guān)系。如圖7所示,由于MUNKNOWN為有界區(qū)域,而MNOT和MAVL都是無界區(qū)域,因此我們分別取最上面的點(diǎn)pa和最右面的點(diǎn)pb作為邊界點(diǎn),上式的分母就是圖7中所有陰影部分(為矩形)的面積。
基于N個(gè)節(jié)點(diǎn)的完全隨機(jī)拓?fù)鋱D,我們?yōu)槊總€(gè)鏈路產(chǎn)生了在[1,1000]區(qū)間內(nèi)均勻分布的兩種度量w1(e)和w2(e),且兩者相互無關(guān)。我們分別模擬了網(wǎng)絡(luò)節(jié)點(diǎn)數(shù)N為50、100、200和500的情況,并對每種情況產(chǎn)生了10個(gè)拓?fù)鋱D,在每個(gè)拓?fù)鋱D上隨機(jī)進(jìn)行100次源節(jié)點(diǎn)的選取(一個(gè)節(jié)點(diǎn)可能被選取多次),每個(gè)源節(jié)點(diǎn)s使用LEFPA算法分別以B個(gè)線性能量函數(shù) 計(jì)算最小能量路徑。其中,ai=(i/(B-1),(1-i)/(B-1)),i=0,1,…,B-1。每個(gè)源節(jié)點(diǎn)s則以網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn),作為目標(biāo)節(jié)點(diǎn),求得Prs=1NΣt∈GPrs(t),]]>然后對所有源節(jié)點(diǎn)s再求平均值得到Pr=1100ΣPrs]]>。最后通過對10個(gè)同類拓?fù)鋱D所對應(yīng)的10個(gè)Pr的統(tǒng)計(jì),得到其均值和95%的置信區(qū)間Pr±σ。
在節(jié)點(diǎn)數(shù)分別為50、100、200和500的拓?fù)鋱D中,失效概率Pr與B的關(guān)系如圖8所示。中間的折線為每類10個(gè)圖的平均值,上下兩條線表示了95%的置信區(qū)間。從圖中的數(shù)據(jù)可見,當(dāng)網(wǎng)絡(luò)的節(jié)點(diǎn)數(shù)較少時(shí),不定區(qū)域所占的比例非常?。欢S著節(jié)點(diǎn)數(shù)的增加Pr增大。這是因?yàn)楣?jié)點(diǎn)數(shù)少的網(wǎng)絡(luò)對兩個(gè)度量中的任何一個(gè)進(jìn)行優(yōu)化的能力小;而節(jié)點(diǎn)數(shù)多的網(wǎng)絡(luò)能夠選擇的路徑較多,從而對路徑優(yōu)化能力強(qiáng)。這使得圖7中最上面的點(diǎn)pa相對更靠近縱坐標(biāo),而最右面的點(diǎn)pb相對更靠近橫坐標(biāo)。此外,隨著可選路徑的增多,置信區(qū)間的范圍漸小,說明了LEFPA算法對大規(guī)模網(wǎng)絡(luò)的適應(yīng)性。
圖8表明,即便是對于規(guī)模較大的網(wǎng)絡(luò),B=7的失效概率Pr已經(jīng)非常小了(如N=500時(shí),在95%的置信度下Pr=0.0482±0.0022。這說明對于實(shí)際網(wǎng)絡(luò)應(yīng)用來說,使用10個(gè)均勻分布的線性函數(shù)已經(jīng)能夠找到足夠多的具有不同特點(diǎn)路徑,而繼續(xù)增大B則找到的路徑在很大概率上是重復(fù)的,這與的結(jié)論類似。
前面已經(jīng)論證了不定區(qū)域的面積(失效概率Pr)非常小,下面再進(jìn)一步論證位于不定區(qū)域的QoS請求c∈MUNKNOWN,其可行性也非常小。為此,我們在圖7所示的不定區(qū)域中隨機(jī)產(chǎn)生QoS約束,然后使用目前所見到的性能最好的算法之一H_MCOP計(jì)算可行路徑,如圖9所示。實(shí)驗(yàn)數(shù)據(jù)表明,B=7時(shí)H_MCOP算法的路由成功率在5%以下,而絕大多數(shù)請求不具有可行路徑。
綜合考慮(1)不定區(qū)域的面積(失效概率Pr)非常??;(2)位于不定區(qū)域的QoS請求,其可行性非常小。因此,LEFPA算法拒絕位于不定區(qū)域的QoS請求,所引入的誤判(拒絕具有可行路徑的QoS請求)概率非常小(約為0.05×0.05=0.25%),所以算法具有很高的性能。此外,由于計(jì)算路由所依賴的網(wǎng)絡(luò)狀態(tài)信息所固有的陳舊性,因此可以認(rèn)為如此小的誤判概率將不再是影響實(shí)際路由性能的主要因素。
綜上所述,下一代提供QoS的網(wǎng)絡(luò)可以繼續(xù)沿用目前Internet路由的預(yù)計(jì)算方式,只需要在計(jì)算最小路徑樹時(shí)稍加更改,將單一的最小花費(fèi)變成最小能量,而使用與網(wǎng)絡(luò)無關(guān)的B(B=7)個(gè)均勻分布的線性能量函數(shù)來計(jì)算最小能量樹,這樣預(yù)計(jì)算的復(fù)雜度只增加為原來的B倍??紤]可能存在的重復(fù)路徑,所計(jì)算出的路由表將小于現(xiàn)在路由表規(guī)模的B倍,現(xiàn)有的路由查找技術(shù)完全能夠勝任。
由于基于服務(wù)質(zhì)量的網(wǎng)絡(luò)是國際互聯(lián)網(wǎng)發(fā)展的必然方向,而網(wǎng)絡(luò)中的路由器為了提供QoS的支持,就需要使用QoSR算法,因此QoSR算法也必然廣泛的應(yīng)用在下一代互聯(lián)網(wǎng)中。由于我們所設(shè)計(jì)的啟發(fā)式算法LEFPA不僅具有很高的基本性能,而且符合現(xiàn)在Internet的路由計(jì)算方式——預(yù)計(jì)算。因此,LEFPA算法具有廣泛的適用性,是下一代互聯(lián)網(wǎng)可能采用的QoSR算法。
由此可見,本發(fā)明達(dá)到了預(yù)期目的。
權(quán)利要求
1.基于線性能量函數(shù)的服務(wù)質(zhì)量路由預(yù)計(jì)算算法其特征在于它是借助于路由器硬件平臺以采用線性能量函數(shù)把多個(gè)服務(wù)質(zhì)量(QoS)參數(shù)轉(zhuǎn)換成單一的能量值為基礎(chǔ)的;它先使用多個(gè)線性能量函數(shù)為每條鏈路計(jì)算出一組能量值,進(jìn)而根據(jù)這些能量值以源節(jié)點(diǎn)為樹根,建立最短路徑樹,使得從樹根節(jié)點(diǎn)到達(dá)任意節(jié)點(diǎn)沿著該樹的路徑具有最小能量值,再根據(jù)這些最短能量樹計(jì)算出部分QoS路由表,最后把所有能量函數(shù)的這些部分QoS路由表組合在一起,形成一個(gè)完整的QoS路由表,它依次含有以下步驟(1)初始化輸入每個(gè)鏈路具有k個(gè)QoS參數(shù)的拓?fù)鋱DG、根節(jié)點(diǎn)s、目標(biāo)節(jié)點(diǎn)t;能量系數(shù)a=(a1,a2,…,ak),使能量系數(shù)分量的個(gè)數(shù)等于QoS參數(shù),即為每個(gè)QoS參數(shù)定一個(gè)能量系數(shù)分量a1∈
;能量函數(shù)的個(gè)數(shù)為B,它均勻分布在能量系數(shù)a的取值范圍內(nèi),與QoS請求無關(guān);(2)根據(jù)拓?fù)鋱DG,針對B個(gè)能量系數(shù)向量中某一個(gè)尚未使用過的向量計(jì)算每條鏈路的能量值ga(e)=Σl=1kalwl;]]>(3)從根節(jié)點(diǎn)s出發(fā),計(jì)算從s到每一個(gè)節(jié)點(diǎn)—包括目標(biāo)節(jié)點(diǎn)t—在內(nèi)的最短路徑樹;(4)根據(jù)最短路徑樹產(chǎn)生部分路由表QoSR;(5)判斷是否已經(jīng)使用過了所有的B個(gè)向量若存在沒有使用過的向量,則返回步驟(2);若不存在沒有使用過的向量,擇把基于B向量產(chǎn)生的所有部分路由表組成一個(gè)完整的QoS路由表。
2.根據(jù)權(quán)利要求1所述的基于線性能量函數(shù)的服務(wù)質(zhì)量路由預(yù)計(jì)算算法,其特征在于所述的能量函數(shù)B的個(gè)數(shù)為7~10個(gè)。
全文摘要
基于線性能量函數(shù)的服務(wù)質(zhì)量路由預(yù)計(jì)算算法屬于具有多個(gè)服務(wù)質(zhì)量參數(shù)的服務(wù)質(zhì)量路由技術(shù)領(lǐng)域,其特征在于它是以采用線性能量函數(shù)把多個(gè)服務(wù)質(zhì)量(QoS)參數(shù)轉(zhuǎn)換成單一能量值為基礎(chǔ)的。它先使用多個(gè)線性能量函數(shù)為每條鏈路計(jì)算出一組能量值,再據(jù)此以源節(jié)點(diǎn)為樹根建立最短路徑樹,使得從根節(jié)點(diǎn)到達(dá)任意節(jié)點(diǎn)沿著該樹的路徑具有最小能量值,然后根據(jù)最短路徑樹計(jì)算出部分QoS路由表,最后把所有能量函數(shù)的這些部分QoS路由表組合在一起形成一個(gè)完整的QoS路由表。當(dāng)能量函數(shù)的個(gè)數(shù)在7~10個(gè)之間時(shí),其失效概率已經(jīng)非常小了。
文檔編號H04L12/28GK1440164SQ0312103
公開日2003年9月3日 申請日期2003年3月21日 優(yōu)先權(quán)日2003年3月21日
發(fā)明者徐恪, 崔勇, 吳建平 申請人:清華大學(xué)