一種基于迭代編碼的多約束組播路由算法
【專利摘要】本發(fā)明涉及網(wǎng)絡(luò)通訊領(lǐng)域,尤其是一種基于迭代編碼的多約束組播路由算法。本發(fā)明針對現(xiàn)有技術(shù)存在的問題,在具有多約束要求的通信網(wǎng)路中,提供一種本發(fā)明一種基于迭代編碼的多約束組播路由算法。設(shè)計具備去除環(huán)路功能并且具有較好編解碼適用性的組播樹編碼方法,同時,該方法對于已經(jīng)生成的組播樹也具有消除環(huán)路的功能。本發(fā)明通過合并兩棵組播樹,生成新的組播樹;判定新組播樹滿足路由約束條件或者計算過程達(dá)到迭代次數(shù)后輸出組播樹。
【專利說明】一種基于迭代編碼的多約束組播路由算法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡(luò)通訊領(lǐng)域,尤其是一種基于迭代編碼的多約束組播路由算法。
【背景技術(shù)】
[0002]在當(dāng)前的網(wǎng)絡(luò)通信中,組播通信是一種重要的方式。組播通信相比于單播通信,在點到多點的數(shù)據(jù)傳輸方面更為有效。實現(xiàn)組播通信的關(guān)鍵是建立組播路由。與單播通信中的傳輸路徑不同,組播路由的拓?fù)涫且豢媒M播樹。目前,通信網(wǎng)絡(luò)承載的業(yè)務(wù)有著差異化的網(wǎng)絡(luò)傳輸QoS要求。這些要求主要體現(xiàn)在網(wǎng)絡(luò)通信過程中的傳輸時延、時延抖動、吞吐量和丟包率等幾個方面。這使得多約束條件下的組播路由問題成為一個研究的熱點?,F(xiàn)有的研究成果中,有許多方式可以解決無約束的組播路由問題,例如di jkstra算法和Steiner樹。但是這些傳統(tǒng)的方法并不能解決多約束條件下的組播路由問題。
[0003]目前,可以利用一些啟發(fā)式的算法和群體智能算法來解決多約束條件下的組播路由問題,例如模擬退火算法、遺傳算法、蟻群算法、粒子群優(yōu)化算法和螢火蟲群優(yōu)化算法等。但是,上述算法在求解多約束組播路由問題時,存在求解速度慢,計算復(fù)雜度高等缺點。
【發(fā)明內(nèi)容】
[0004]本發(fā)明所要解決的技術(shù)問題是:針對現(xiàn)有技術(shù)存在的問題,在具有多約束要求的通信網(wǎng)路中,提供一種本發(fā)明一種基于迭代編碼的多約束組播路由算法。設(shè)計具備去除環(huán)路功能并且具有較好編解碼適用性的組播樹編碼方法,同時,該方法對于已經(jīng)生成的組播樹也具有消除環(huán)路的功能。
[0005]本發(fā)明采用的技術(shù)方案如下:
[0006]一種基于迭代編碼的多約束組播路由算法包括:
[0007]步驟1:輸入網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),以及網(wǎng)絡(luò)路由約束條件時延Dera1、時延抖動DJra1、吞吐量Thra1、丟包率PLRrai,利用組播樹生成方法生成一個有向組播樹;
[0008]步驟2:基于步驟1,刪除組播樹中不滿足丟包率PLRrai約束條件的節(jié)點以及與這些節(jié)點相連的鏈路,刪除不滿足時延Dera1、時延抖動DJra1、吞吐量Thrai的鏈路后,生成一棵組播樹Xj (t);
[0009]步驟3:基于步驟1,再利用組播樹生成方法隨機(jī)生成一棵組播樹Xi (t);
[0010]步驟4:根據(jù)組播樹編碼方法,合并步驟2與步驟3得到的組播樹,生成新的組播樹x,.U+l) =xt[t) ?Xj{t);
[0011]步驟5:如果組播樹Xi(t+1)滿足路由約束條件或者計算過程達(dá)到迭代次數(shù),則執(zhí)行步驟6 ;否則,t=t+l,執(zhí)行步驟2 ;
[0012]步驟6:輸出組播樹Xi (t+Ι)。
[0013]進(jìn)一步的,所述組播樹生成方法具體包括:
[0014]步驟11:初始化 一棵空的組播樹X0= (O1, O2,...,On);
[0015]步驟12:將源節(jié)點的先驗節(jié)點設(shè)置為其本身,即Xs=(C)1, O2, - ,Ss,…,On);[0016]步驟13:從目的節(jié)點集合中隨機(jī)選擇一個目的節(jié)點作為當(dāng)前節(jié)點;
[0017]步驟14:從與當(dāng)前節(jié)點有連接關(guān)系的節(jié)點集合中刪除最近后繼節(jié)點。則可以生成當(dāng)前節(jié)點的先驗節(jié)點集合;
[0018]步驟15:從當(dāng)前節(jié)點的先驗節(jié)點集合中隨機(jī)選擇一個節(jié)點作為當(dāng)前節(jié)點的一個先驗節(jié)點。然后將選擇的先驗節(jié)點設(shè)置為當(dāng)前節(jié)點;
[0019]步驟16:如果當(dāng)前節(jié)點的先驗節(jié)點集合為空,即為“0”,轉(zhuǎn)步驟14,否則轉(zhuǎn)步驟S17 ;
[0020]步驟S17:如果所有目的節(jié)點的先驗節(jié)點集合為空,即為“0”,轉(zhuǎn)步驟S108,否則轉(zhuǎn)步驟S13。
[0021]步驟18:輸出該有向組播樹 X= (Prior1, Prior2,..., Priorn);
[0022]進(jìn)一步的,步驟4中組播樹編碼方法具體包括:
[0023]步驟41:從目標(biāo)節(jié)點集合M中選擇第i個節(jié)點作為當(dāng)前節(jié)點,判斷i是否大于M的大小,若是轉(zhuǎn)步驟44,若否轉(zhuǎn)步驟42 ;其中i范圍是從I到目標(biāo)節(jié)點集合M數(shù)量;
[0024]步驟42:判斷當(dāng)前節(jié)點是否為源節(jié)點,當(dāng)當(dāng)前節(jié)點不是源節(jié)點時,執(zhí)行步驟43 ;否則,轉(zhuǎn)步驟41,i=i+l ;
[0025]步驟43:判斷當(dāng)前節(jié)點的先驗節(jié)點數(shù)量是否大于1,若先驗節(jié)點數(shù)量大于1,則隨機(jī)選擇一個先驗節(jié)點作為當(dāng)前節(jié)點,轉(zhuǎn)步驟42 ;否則,當(dāng)前節(jié)點作為先驗節(jié)點,轉(zhuǎn)步驟42 ;
[0026]步驟44:輸出不存在環(huán)路的組播樹Xi (t+Ι)。
[0027]進(jìn)一步的,所述X.M+l) =x,⑴中算子?定義如下:組播樹xjt)和Xj(t)合
并為一棵新的組播樹Xi (t+Ι),合并后的節(jié)點集合為Xi (t)和\(t)所包含的所有節(jié)點,鏈路集合為Xi (t)和\(t)所包含的所有鏈路。
[0028]進(jìn)一步的,所述組播樹指的是從目的節(jié)點向源節(jié)點回溯,除了源節(jié)點沒有先驗節(jié)點之外,其他一個節(jié)點只有一個先驗節(jié)點。
[0029]進(jìn)一步的,所述迭代次數(shù)是根據(jù)網(wǎng)絡(luò)狀況確定,人工設(shè)定:網(wǎng)絡(luò)規(guī)模小則可以設(shè)定較少的迭代次數(shù),網(wǎng)絡(luò)規(guī)模大則可以設(shè)定較大的迭代次數(shù)。因為規(guī)模小迭代次數(shù)多的話,組播樹的性能提升不明顯,且計算花銷很大(效費(fèi)比低);網(wǎng)絡(luò)規(guī)模大,迭代次數(shù)少的話在概率上難取得性能較好的組播樹。
[0030]綜上所述,由于采用了上述技術(shù)方案,本發(fā)明的有益效果是:
[0031]本發(fā)明可以用于任何具有多約束要求的網(wǎng)絡(luò)規(guī)模和網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。能夠高效地生成滿足多約束要求的組播路由樹,從而較好地解決多約束組播路由問題。
[0032]本發(fā)明通過利用一種迭代編碼思想,高效地生成滿足通信網(wǎng)路多約束要求的組播路由樹,從而較好地解決多約束組播路由問題。該算法適用于所有當(dāng)前的通信網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),算法實現(xiàn)簡單,部署使用時對設(shè)備硬件無特殊要求,能夠完全保證已有的設(shè)備投入。
【專利附圖】
【附圖說明】
[0033]本發(fā)明將通過例子并參照附圖的方式說明,其中:
[0034]圖1新生成組播樹的方法。
[0035]圖2本專利流程圖?!揪唧w實施方式】
[0036]本說明書中公開的所有特征,或公開的所有方法或過程中的步驟,除了互相排斥的特征和/或步驟以外,均可以以任何方式組合。
[0037]本說明書(包括任何附加權(quán)利要求、摘要和附圖)中公開的任一特征,除非特別敘述,均可被其他等效或具有類似目的的替代特征加以替換。即,除非特別敘述,每個特征只是一系列等效或類似特征中的一個例子而已。
[0038]本發(fā)明相關(guān)說明:
[0039]1、組播樹:從目的節(jié)點向源節(jié)點回溯,除了源節(jié)點沒有先驗節(jié)點之外,其他一個節(jié)點只有一個先驗節(jié)點。
[0040]2、步驟4中合并完之后再利用組播樹編碼方法對合并后的組播樹進(jìn)行去環(huán)路處理,逐漸逼近符合約束條件的目標(biāo)組播樹。
[0041]3、組播樹生成方法:是將通訊網(wǎng)絡(luò)上各個獨立的網(wǎng)絡(luò)節(jié)點,組成一棵有向組播路由樹。
[0042]4、迭代次數(shù):根據(jù)網(wǎng)絡(luò)狀況確定,人工設(shè)定:網(wǎng)絡(luò)規(guī)模小則可以設(shè)定較少的迭代次數(shù),網(wǎng)絡(luò)規(guī)模大則可以設(shè)定較大的迭代次數(shù)。因為規(guī)模小迭代次數(shù)多的話,組播樹的性能提升不明顯,且計算花銷很大(效費(fèi)比低);網(wǎng)絡(luò)規(guī)模大,迭代次數(shù)少的話在概率上難取得性能較好的組播樹。
[0043]5、對合并生成的組播樹應(yīng)用步驟41至步驟44的組播樹編碼方法即可去除其中的環(huán)路;針對時延Dere,、時延抖動DJra1、吞吐量Thra1、丟包率PLRrai等問題,在步驟2中對不滿足約束條件的節(jié)點和邊進(jìn)行刪除,組播樹合并后,對原來滿足條件的部分保留了下來,同時,將組播樹補(bǔ)充完整,補(bǔ)充的部分可能又滿足約束條件(時延Dera1、時延抖動DJra1、吞吐量?Κ,、丟包率PLRrai)的節(jié)點和邊,也有不滿足條件的節(jié)點和邊,但是總的效果是好于或等于上一棵組播樹的。
[0044]&^Xl{t + \)=Xi{t)?Xj[t),其中算子十定義如下:組播樹Xi (t)和^⑴合并為一
棵新的組播樹Xi(t+1),合并后的節(jié)點集合為Xi(t)和&⑴所包含的所有節(jié)點,鏈路集合為Xi (t)和Xj (t)所包含的所有鏈路。
[0045]7> Xi (t)與Xj(t)表示兩棵不同的組播樹。X=(PriorpPriorf^Priorn)是任意一棵組播樹的表達(dá)式。O2,…,On)表示初始化空的組播樹。Xs=(C)1, O2,…,Ss,…,On)表示將源節(jié)點的先驗節(jié)點設(shè)置為其本身。Xi(t+1)表示經(jīng)過編碼的組播樹,等到其作為輸入量時,Xi (t)=Xi(t+l)。
[0046]實施例一:
[0047]對于具有多約束要求的通信網(wǎng)路,可以抽象為一個有向連通圖,V表示網(wǎng)絡(luò)的節(jié)點集合,E表示網(wǎng)絡(luò)的鏈路集合,為源路由節(jié)點,為目的路由節(jié)點,為網(wǎng)絡(luò)中的任意一條鏈路。該網(wǎng)絡(luò)中的網(wǎng)絡(luò)路由有下述QoS約束條件:時延(Dereq),時延抖動(DJreq),吞吐量(Threq),丟包率(PLRrai)15本發(fā)明的目的在于高效的生成一棵組播路由樹,使其能夠盡量滿足上述路由約束條件。單播和廣播路由可以看作是組播路由的兩種特殊情況(單播路由是一條鏈路,沒有分叉;廣播路由是源節(jié)點向通信網(wǎng)中的所有節(jié)點進(jìn)行數(shù)據(jù)發(fā)送;這是組播樹的兩種極端情況,組播樹是從源節(jié)點向整個通信網(wǎng)的選擇出來的部分節(jié)點進(jìn)行數(shù)據(jù)發(fā)送,對于本專利影響只在于目的節(jié)點集合的選取不同)。多約束條件下的組播樹生成流程如下:[0048]步驟S1:初始化階段:輸入網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),以及網(wǎng)絡(luò)路由約束條件Derai, DJrai, Thrai和PLR_。利用組播樹生成方法初始化一棵組播樹X(1。
[0049]步驟S2:基于步驟1,刪除組播樹中不滿足丟包率約束條件的節(jié)點以及與這些節(jié)點相連的鏈路,刪除不滿足時延、時延抖動和吞吐量的鏈路,生成一棵組播樹Xj(t);
[0050]步驟3:基于步驟1,再利用組播樹生成方法隨機(jī)生成一棵組播樹Xi (t);
[0051]步驟4:根據(jù)組播樹編碼方法,合并步驟2與步驟3得到的組播樹,生成新的組播
樹 Xj (t+1) =Xi (t) +Xj (t);
[0052]步驟5:如果組播樹\ (t+Ι)滿足路由約束條件或者計算過程達(dá)到迭代次數(shù),則執(zhí)行步驟6 ;否則,t=t+l,執(zhí)行步驟2 ;
[0053]步驟6:輸出組播樹Xj (t+Ι)。
[0054]進(jìn)一步的,組播樹生成方法:對組播樹進(jìn)行編碼時需要考慮編碼和解碼的適用性,要避免在組播樹中產(chǎn)生環(huán)路。組播樹編碼細(xì)節(jié)如下:
[0055]X= (Prior1, Prior2, r, Priorn) (1)
[0056]式(I)中,X為一棵組播樹,Priori表示第i個節(jié)點的先驗節(jié)點,其中i范圍是I到η。對于不屬于組播樹的節(jié)點的先驗節(jié)點,統(tǒng)一用“O”來表示。源節(jié)點的先驗節(jié)點是其本身。
[0057]組播樹編碼方法的具體流程如下所述:
[0058]步驟11:初始化一棵空的組播樹Xtl=(C)1, O2,…,On)。
[0059]步驟12:將源節(jié)點的先驗節(jié)點設(shè)置為其本身,即Xs=(C)1, O2, - ,Ss, - ,On)。
[0060]步驟13:從目的節(jié)點集合中隨機(jī)選擇一個目的節(jié)點作為當(dāng)前節(jié)點。
[0061]步驟14:從與當(dāng)前節(jié)點有連接關(guān)系的節(jié)點集合中刪除最近后繼節(jié)點。則可以生成當(dāng)前節(jié)點的先驗節(jié)點集合。
[0062]步驟15:從當(dāng)前節(jié)點的先驗節(jié)點集合中隨機(jī)選擇一個節(jié)點作為當(dāng)前節(jié)點的一個先驗節(jié)點。然后將選擇的先驗節(jié)點設(shè)置為當(dāng)前節(jié)點。
[0063]步驟16:如果當(dāng)前節(jié)點的先驗節(jié)點集合為空,即為“0”,轉(zhuǎn)步驟14,否則轉(zhuǎn)步驟17。
[0064]步驟17:如果所有目的節(jié)點的先驗節(jié)點集合為空,即為“0”,轉(zhuǎn)步驟S108,否則轉(zhuǎn)步驟13。
[0065]步驟18:輸出該組播樹 X= (Prior1, Prior2,…,Priorn)。
[0066]進(jìn)一步的,在生成滿足多約束條件的組播樹的迭代過程中,定義Xi(t)和\(t)為合并前的兩棵不同的組播樹,Xi (t+Ι)為合并后的組播樹,則合并方式如下:
[0067]
【權(quán)利要求】
1.一種基于迭代編碼的多約束組播路由算法,其特征在于包括: 步驟1:輸入網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),以及網(wǎng)絡(luò)路由約束條件時延Dera1、時延抖動DJra1、吞吐量Th,e(1、丟包率PLRrai,利用組播樹生成方法生成一個有向組播樹; 步驟2:基于步驟1,刪除組播樹中不滿足丟包率PLRra^A束條件的節(jié)點以及與這些節(jié)點相連的鏈路,刪除不滿足時延De,e(1、時延抖動DJra1、吞吐量Thrai的鏈路后,生成一棵組播樹(t);其中t表示迭代次數(shù),t為大于O的正整數(shù);i和j分別表示不同的兩棵組播樹;步驟3:基于步驟1,再利用組播樹生成方法隨機(jī)生成一棵組播樹Xi (t); 步驟4:根據(jù)組播樹編碼方法,合并步驟2與步驟3得到的組播樹,生成新的組播樹Xf{t+l ) =Xjit) ? Xj(J) J 步驟5:如果組播樹\(t+l)滿足路由約束條件或者計算過程達(dá)到迭代次數(shù),則執(zhí)行步驟6 ;否則,t=t+l,執(zhí)行步驟2 ; 步驟6:輸出組播樹Xj(t+1)。
2.根據(jù)權(quán)利要求1所述一種基于迭代編碼的多約束組播路由算法,其特征在于所述組播樹生成方法具體包括: 步驟11:初始化一棵空的組播樹Xtl=(C)1, O2,…,On); 步驟12:將源節(jié)點的先驗節(jié)點設(shè)置為其本身,即Xs=(C)1, O2, - ,Ss,…,On); 步驟13:從目的節(jié)點集合中隨機(jī)選擇一個目的節(jié)點作為當(dāng)前節(jié)點; 步驟14:從與當(dāng)前節(jié)點有連接關(guān)系的節(jié)點集合中刪除最近后繼節(jié)點,則可以生成當(dāng)前節(jié)點的先驗節(jié)點集合; 步驟15:從當(dāng)前節(jié)點的先驗節(jié)點集合中隨機(jī)選擇一個節(jié)點作為當(dāng)前節(jié)點的一個先驗節(jié)點,然后將選擇的先驗節(jié)點設(shè)置為當(dāng)前節(jié)點; 步驟16:如果當(dāng)前節(jié)點的先驗節(jié)點集合為空,即為“0”,轉(zhuǎn)步驟14,否則轉(zhuǎn)步驟S17 ; 步驟S17:如果所有目的節(jié)點的先驗節(jié)點集合為空,即為“0”,轉(zhuǎn)步驟S108,否則轉(zhuǎn)步驟S13 ; 步驟18:輸出該有向組播樹的X= (Prior1, Prior2, , Priorn)。
3.根據(jù)權(quán)利要求1或2—種基于迭代編碼的多約束組播路由算法,其特征在于所述步驟4中組播樹編碼方法具體包括: 步驟41:從目標(biāo)節(jié)點集合M中選擇第i個節(jié)點作為當(dāng)前節(jié)點,判斷i是否大于M的大小,若是,則執(zhí)行步驟44,否則,執(zhí)行步驟42 ;其中范圍是I到目標(biāo)節(jié)點集合M的數(shù)量; 步驟42:判斷當(dāng)前節(jié)點是否為源節(jié)點,當(dāng)當(dāng)前節(jié)點不是源節(jié)點時,執(zhí)行步驟43 ;否則,轉(zhuǎn)步驟41,i=i+l ; 步驟43:判斷當(dāng)前節(jié)點的先驗節(jié)點數(shù)量是否大于1,若先驗節(jié)點數(shù)量大于1,則隨機(jī)選擇一個先驗節(jié)點作為當(dāng)前節(jié)點,轉(zhuǎn)步驟42 ;否則,當(dāng)前節(jié)點作為先驗節(jié)點,轉(zhuǎn)步驟42 ; 步驟44:輸出不存在環(huán)路的組播樹Xi (t+Ι)。
4.根據(jù)權(quán)利要求3所述的一種基于迭代編碼的多約束組播路由算法,其特征在于所述組播樹指的是從目的節(jié)點向源節(jié)點回溯,除了源節(jié)點沒有先驗節(jié)點之外,其他一個節(jié)點只有一個先驗節(jié)點。
5.根據(jù)權(quán)利4所述的一種基于迭代編碼的多約束組播路由算法,其特征在于所述μy+1)=χ#)Θλ)⑴中算子十定義如下:組播樹Xi(t)和Xj(t)合并為一棵新的組播樹Xi(t+Ι),合并后的節(jié)點集合為Xi(t)和Xj(t)所包含的所有節(jié)點,鏈路集合為Xi(t)和Xj(t)所包含的所有鏈路。
【文檔編號】H04L12/761GK103905319SQ201410109422
【公開日】2014年7月2日 申請日期:2014年3月24日 優(yōu)先權(quán)日:2014年3月24日
【發(fā)明者】劉杰, 田永春, 姜永廣, 胡薇 申請人:中國電子科技集團(tuán)公司第三十研究所