基于改進(jìn)nsga-ⅱ的光組播編碼-鏈路代價折中方法
【技術(shù)領(lǐng)域】
[OOOU本發(fā)明屬于通信技術(shù)領(lǐng)域,設(shè)及一種基于改進(jìn)NSGA-II的光組播編碼-鏈路代價 折中方法。
【背景技術(shù)】
[0002] 隨著視頻會議、網(wǎng)絡(luò)電視、多媒體遠(yuǎn)程教育等多播業(yè)務(wù)的快速發(fā)展,網(wǎng)絡(luò)帶寬的消 耗W及擁塞發(fā)生的快速增加,傳統(tǒng)通信網(wǎng)正面臨著帶寬資源不足、網(wǎng)絡(luò)吞吐量低、業(yè)務(wù)阻塞 率上升等嚴(yán)重的問題,網(wǎng)絡(luò)的資源日趨緊張。由于光網(wǎng)絡(luò)具有高帶寬和高速率的信息傳輸 能力,其暫時解決了傳統(tǒng)電域網(wǎng)絡(luò)中帶寬資源不足等問題。不過,近年來隨著寬帶業(yè)務(wù)和多 播應(yīng)用的持續(xù)快速增長,光網(wǎng)絡(luò)再次面臨帶寬資源不足、網(wǎng)絡(luò)阻塞率持續(xù)增高等諸多問題。 網(wǎng)絡(luò)編碼有提高網(wǎng)絡(luò)吞吐量、均衡網(wǎng)絡(luò)負(fù)載、增加網(wǎng)絡(luò)帶寬利用率、減少網(wǎng)絡(luò)資源損耗、提 高網(wǎng)絡(luò)安全性、減少能量消耗等優(yōu)點。因而,基于網(wǎng)絡(luò)編碼的路由方式越來越受到研究者的 重視。將網(wǎng)絡(luò)編碼引入到光網(wǎng)絡(luò)中,利用網(wǎng)絡(luò)編碼的優(yōu)點來解決光網(wǎng)絡(luò)帶寬資源不足等問 題不失為一個有效的方法。但是,過多的編碼操作必將會增加網(wǎng)絡(luò)的運算開銷、復(fù)雜度和編 碼時延等。所W,在發(fā)揮網(wǎng)絡(luò)編碼最大效用的同時,必須盡可能減少編碼操作數(shù),降低編碼 代價。
[0003] 考慮在滿足組播最大吞吐量的前提下,某些節(jié)點或鏈路需要進(jìn)行編碼的情況下, 一些額外的鏈路容量能否減少編碼需求,也就是組播網(wǎng)絡(luò)中是否存在編碼-鏈路代價折中 方案。編碼-鏈路代價折中方案也即編碼代價和鏈路代價達(dá)到一個平衡點,在此平衡點上 若想再減小編碼代價,則必定會使鏈路代價增大;若想再減小鏈路代價,則必定會使編碼代 價增大。一個給定網(wǎng)絡(luò)中的折中方案信息能實現(xiàn)對網(wǎng)絡(luò)編碼的調(diào)度,比如將網(wǎng)絡(luò)編碼只應(yīng) 用在能顯著節(jié)約鏈路代價的地方。因而,本發(fā)明提出一種方法用于尋找光組播網(wǎng)絡(luò)中的編 碼-鏈路代價折中方案,即實現(xiàn)同時優(yōu)化編碼代價和鏈路代價的多目標(biāo)優(yōu)化問題。
[0004] 研究證明,尋找組播網(wǎng)絡(luò)中的編碼-鏈路代價折中方案是一個 NP(non-deterministicpolynomial,非確定性多項式)難問題。目前已有較多學(xué)者采用各 種智能優(yōu)化算法進(jìn)行求解,比如多目標(biāo)遺傳算法、粒子群優(yōu)化算法等,但是該些方法在算法 有效性和解的多樣性方面仍存在欠缺,因此,本發(fā)明在此基礎(chǔ)上針對編碼-鏈路代價折中 方案問題提出一種改進(jìn)的NSGA-II算法(Non-dominatedso;rtinggeneticalgorithmII, 非支配排序遺傳算法II)。
【發(fā)明內(nèi)容】
[0005] 有鑒于此,本發(fā)明的目的在于提供一種基于改進(jìn)NSGA-II的光組播編碼-鏈路代 價折中方法,該方法可W盡可能多地尋找到光網(wǎng)絡(luò)中的編碼-鏈路代價折中點W及每一折 中點對應(yīng)的不同編碼方案。
[0006] 為達(dá)到上述目的,本發(fā)明提供如下技術(shù)方案:
[0007] 一種基于改進(jìn)NSGA-II的光組播編碼-鏈路代價折中方法,在非支配分級步驟中, 采用一種側(cè)重于編碼代價優(yōu)化的方法確定等級二中的個體,等級二相對于等級一更加靠 前;在擁擠排序步驟中,將同一個等級中的個體計算擁擠距離和漢明距離的和值,根據(jù)其和 值確定個體之間的差異性;在交叉操作中,采用一種基于學(xué)習(xí)機制的交叉算子,引導(dǎo)個體不 斷進(jìn)化。
[000引進(jìn)一步,在非支配分級步驟中,采用基于編碼代價的部分支配方法確定等級一中 的個體;將所有個體按照編碼代價從小到大的順序排列,選擇前n%個體,在該前n%個體 中除去由部分支配方法確定的等級一中的個體,剩下的放入等級二中,其中,n的取值范圍 為5~10。
[0009]進(jìn)一步,在擁擠排序步驟中,計算同一等級中個體的擁擠距離和漢明距離;計算每 一個等級中個體的漢明距離,即對同一等級中的個體在各個目標(biāo)方向上按照目標(biāo)函數(shù)值從 小到大排列,對排列在兩端的個體設(shè)漢明距離為無窮;對中間每一個體i,根據(jù)式子:
[0010] IXOR化,Xw) |/L+|XOR〇(H,Xi)I/L即求得個體i在某一目標(biāo)方向上的歸一化 漢明距離,然后將各個目標(biāo)方向上的歸一化漢明距離求和,即得個體i的漢明距離,其中, IXOR化,Xw)I是指染色體Xi與XW中的基因逐位相與再求和,L是指染色體的長度;
[0011] 將每個個體的擁擠距離和漢明距離求和,根據(jù)其和值由大到小進(jìn)行排序,和值越 大,表明該個體與其他個體之間的差異性越大,被選擇出來的概率也就越大。
[0012] 進(jìn)一步,在交叉操作中,根據(jù)交叉概率隨機選擇兩個交叉的父代個體A和B,然后 比較A、B,若A支配B,則BW-個較大的概率Pt向A學(xué)習(xí),即B中的每個基因塊或基因位 均W-個較大的概率Pt被A中的等位基因塊或基因位替換,產(chǎn)生子代個體B',同時AW- 個較小概率向B學(xué)習(xí),即A中的每個基因塊或基因位均W某一較小概率被B中的等 位基因塊或基因位替換,產(chǎn)生子代個體A';若A、B互不支配,則A和BW相同的概率Pg相 互學(xué)習(xí);其中,A、B相互學(xué)習(xí)的概率大小取決于A、B之間的等級之差,若A和B的等級相等, 則兩者的學(xué)習(xí)概率相等,即取P同;若A和B的等級之差為n,則兩者的學(xué)習(xí)概率之差也為n。
[0013]進(jìn)一步,P大的取值范圍為0.4~0.9,P小的取值范圍為0. 1~0.6,P同取值范圍為 0. 4~0. 6。比如,當(dāng)A、B之間的等級之差為1時,P大取值為0. 6,P小取值一般為0. 5,當(dāng)A、 B之間的等級之差一般為2時,P大取值一般為0. 7,P小取值一般為0. 5,等等。
[0014]本發(fā)明的有益效果在于:
[0015]1)本發(fā)明在非支配分級步驟中,將一部分在編碼代價上較好的個體放入靠前的一 個等級(等級二)中,能在一定程度上解決優(yōu)化編碼代價和優(yōu)化鏈路代價復(fù)雜度不同的問 題,有效避免了在編碼代價上潛力較好的個體過早被淘汰,能夠找到更多的折中點和同一 種折中點下的不同編碼方案。
[0016] 2)本發(fā)明在擁擠距離的基礎(chǔ)上再計算漢明距離,能有效解決擁擠距離不能真正代 表個體差異性的問題,從而顯著提高種群的多樣性,有利于算法找到編碼代價或鏈路代價 更小的個體。
[0017] 3)本發(fā)明在交叉算子中加入一種學(xué)習(xí)機制,能有效避免傳統(tǒng)交叉算子的盲目性, 促使子代個體盡可能多地繼承父代個體的優(yōu)秀基因,從而引導(dǎo)個體不斷向較好的方向進(jìn) 化,加快算法找到優(yōu)化解的速度。
【附圖說明】
[001引為了使本發(fā)明的目的、技術(shù)方案和有益效果更加清楚,本發(fā)明提供如下附圖進(jìn)行 說明:
[0019] 圖1為本發(fā)明所述方法的流程示意圖;
[0020] 圖2為網(wǎng)絡(luò)拓?fù)浼斑叺某跏蓟椒ㄊ纠龍D;
[0021] 圖3為染色體的構(gòu)造實例圖,其中圖3(a)為二進(jìn)制染色體構(gòu)造的潛在編碼節(jié)點示 意圖,圖3(b)為潛在編碼節(jié)點分解結(jié)果圖,圖3(c)為二進(jìn)制染色體表示是否傳輸信息的路 由示意圖;
[0022] 圖4為選擇父代個體操作流程圖;
[0023] 圖5為染色體交叉操作流程圖;
[0024] 圖6為染色體變異操作流程圖。
【具體實施方式】
[0025] 本發(fā)明針對現(xiàn)有技術(shù)中存在的問題,提出了一種基于改進(jìn)NSGA-II的光組播編 碼-鏈路代價折中方法,具體包括:
[0026]由于最小化編碼代價是NP-hard問題,而最小化鏈路代價是多項式復(fù)雜度問題, 導(dǎo)致最小化鏈路代價的收斂速度遠(yuǎn)大于最小化編碼代價,算法的選擇壓力就會落在低鏈路 代價部分,使得到的優(yōu)化解傾向于低鏈路代價和高編碼代價。所W需要設(shè)計一種方法使算 法在進(jìn)化過程中容易找到編碼代價較小的個體。因此,在本發(fā)明中,在非支配分級步驟中, 采用基于編碼代價的部分支配方法確定等級一中的個體,將所有個體按照編碼代價從小到 大的順序排列,選擇前n%個體,在該前n%個體中除去由部分支配方法確定的等級一中的 個體,剩下的放入等級二中。其中,n的取值范圍一般為5~10。
[0027] 傳統(tǒng)算法對每一等級中的個體根據(jù)擁擠距離進(jìn)行排序,擁擠距離越小,表明該個 體與其他個體的差異性越小,在選擇操作中選擇擁擠距離較小者的概率越小。但實際上擁 擠距離越小的個體并不一定與其他個體越相似,可能兩個體之間的漢明距離很大,而擁擠 距離大的個體也不一定比擁擠距離小的個體優(yōu)越。所W在本發(fā)明中,在擁擠排序步驟中,在 計算個體擁擠距離W后,還要計算個體漢明距離。計算同一個等級中個體的漢明距離,即對 同一等級中的個體在各個目標(biāo)方向上按照目標(biāo)函數(shù)值從小到大排列,對排列在兩端的個體 設(shè)漢明距離為無窮。對中間每一個體i,根據(jù)式子IXOR化,Xw)l/L+IXOR狂H,Xi)I/L即求 得個體i在某一目標(biāo)方向上的歸一化漢明距離,然后將各個目標(biāo)方向上的歸一化漢明距離 求和,即得個體i的漢明距離。其中,|XOR〇(i,Xw)|是指染色體Xi與Xw中的基因逐位相 與后的和值,L是指染色體的長度。將每個個體的擁擠距離和漢明距離求和,根據(jù)其和值由 大到小進(jìn)行排序,和值越大,表明該個體與其他個體之間的差異性越大,被選擇出來的概率 也就越大。
[002引傳統(tǒng)的交叉算子具有很大的盲目性,為避免該一缺陷,本發(fā)明采用一種基于學(xué)習(xí) 機制的交叉算子。先根據(jù)交叉概率隨機選擇兩個交叉的父代個體A和B,然后比較A、B,若 A支配B,則BW-個較大的概率Pt向A學(xué)習(xí),即B中的每個基因塊或基因位均W-個較大 的概率Pt被A中的等位基因塊或基因位替換,產(chǎn)生子代個體B',同時AW-個較小概率P,j、 向B學(xué)習(xí),即A中的每個基因塊或基因位均W某一較小概率P/^被B中的等位基因塊或基因 位替換,產(chǎn)生子代個體A';若A、B互不支配,則A和BW相同的概率Pg相互學(xué)習(xí)。其中,A、 B相互學(xué)習(xí)的概率大小取決于A、B之間的等級之差,若A和B的等級相等,則兩者的學(xué)習(xí)概 率相等,即取Pg;若A和B的等級之差為n,則兩者的學(xué)習(xí)概率之差也為n;其中,P*的取值 范圍一般為0. 4~0. 9,P小的取值范圍一般為0. 1~0. 6,P同取值范圍一般為0. 4~0. 6。 比如,當(dāng)A、B之間的等級之差為1時,P大取值一般為0. 6,P小取值一般為0. 5,當(dāng)A、B之間 的等級之差為2時,P大取值一般為0. 7,P小取值一般為0. 5,等等。
[0029] 下面將結(jié)合附圖,對本發(fā)明的優(yōu)選實施例進(jìn)行詳細(xì)的描述。