本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,具體涉及一種網(wǎng)絡(luò)編碼環(huán)境下優(yōu)化負(fù)載均衡的方法。
背景技術(shù):
網(wǎng)絡(luò)服務(wù)商都希望盡可能完全利用網(wǎng)絡(luò)設(shè)備以便為較多的客戶(hù)提供網(wǎng)絡(luò)資源,其中負(fù)載均衡為網(wǎng)絡(luò)資源分配的一個(gè)分支,顯然網(wǎng)絡(luò)中有一個(gè)更均衡的傳輸負(fù)載能夠更有效地利用網(wǎng)絡(luò)資源。網(wǎng)絡(luò)編碼是一種融合了路由和編碼的信息交換技術(shù),它的核心思想是在網(wǎng)絡(luò)中的各個(gè)節(jié)點(diǎn)上對(duì)各條信道上收到的信息進(jìn)行線(xiàn)性或者非線(xiàn)性的處理,然后轉(zhuǎn)發(fā)給下游節(jié)點(diǎn),中間節(jié)點(diǎn)扮演著編碼器或信號(hào)處理器的角色,網(wǎng)絡(luò)編碼相比于傳統(tǒng)的存儲(chǔ)轉(zhuǎn)發(fā)方式能夠保證多播速率達(dá)到最大流最小割定理確定的理論上限,采用網(wǎng)絡(luò)編碼后的通信網(wǎng)絡(luò)能夠提高吞吐量和數(shù)據(jù)傳輸速率、節(jié)省能耗以及平衡網(wǎng)絡(luò)負(fù)載。
現(xiàn)有技術(shù)中陸續(xù)出現(xiàn)了一些在上述網(wǎng)絡(luò)編碼下實(shí)現(xiàn)負(fù)載均衡的方法,但是現(xiàn)有技術(shù)中的方法都是在網(wǎng)絡(luò)中的所有節(jié)點(diǎn)都進(jìn)行編碼操作的前提下進(jìn)行的,由于編碼操作具有復(fù)雜性,上述的算法無(wú)疑會(huì)消耗大量的計(jì)算時(shí)間和占用大量?jī)?nèi)存,導(dǎo)致網(wǎng)絡(luò)編碼成本大大增加。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問(wèn)題在于提供一種降低網(wǎng)絡(luò)編碼成本的基于網(wǎng)絡(luò)編碼優(yōu)化負(fù)載均衡方法。
為了解決上述現(xiàn)有技術(shù)的問(wèn)題,本發(fā)明采用以下技術(shù)方案實(shí)現(xiàn):
本發(fā)明網(wǎng)絡(luò)編碼環(huán)境下優(yōu)化負(fù)載均衡的方法,該方法包括以下步驟:
(1)所述原始拓?fù)浒ㄒ粋€(gè)源節(jié)點(diǎn)和多個(gè)目的節(jié)點(diǎn),通過(guò)最大流最小割定理計(jì)算原始拓?fù)涞淖畲罅饕约霸纪負(fù)渲性垂?jié)點(diǎn)到每個(gè)目的節(jié)點(diǎn)的最大流,對(duì)原始拓?fù)溥M(jìn)行分解,將原始拓?fù)渲性垂?jié)點(diǎn)到每個(gè)目的節(jié)點(diǎn)的最大流不小于原始拓?fù)涞淖畲罅髯鳛榧s束條件,滿(mǎn)足該約束條件的蜜源能夠建立基于網(wǎng)絡(luò)編碼的組播子圖,將能夠建立基于網(wǎng)絡(luò)編碼的組播子圖的蜜源作為合法個(gè)體,否則為非法個(gè)體。
(2)以適應(yīng)度最小為目標(biāo)建立網(wǎng)絡(luò)負(fù)載均衡模型;
(3)根據(jù)人工蜂群算法計(jì)算分解后拓?fù)涞倪m應(yīng)度,所述人工蜂群算法包括:
a、初始化人工蜂群的參數(shù),蜜蜂總數(shù)2Np(采蜜蜂、觀(guān)察蜂各Np);最大迭代次數(shù)為MAXiteration;蜜源停留最大限制搜索次數(shù)Limit;設(shè)迭代次數(shù)τ=0,記第i(i=1,…,Np)只采蜜蜂為觀(guān)察蜂為
b、建立蜜源庫(kù),所述初始化規(guī)模為M的蜜源庫(kù),記為L(zhǎng)M,此蜜源庫(kù)具有M個(gè)蜜源且給每一個(gè)蜜源設(shè)置一個(gè)計(jì)數(shù)變量counti,i=1,…,M,初始值為0,首先以?xún)牲c(diǎn)交叉方式產(chǎn)生M/2個(gè)蜜源,再以按位選擇交叉方式產(chǎn)生剩余的M/2個(gè)蜜源,
所述兩點(diǎn)交叉方式產(chǎn)生M/2個(gè)蜜源步驟如下:
1)設(shè)置全1二進(jìn)制串個(gè)體A=(1,1,…,1);
2)隨機(jī)產(chǎn)生一個(gè)二進(jìn)制個(gè)體BR,設(shè)置產(chǎn)生1的概率,顯然概率在0-1之間,設(shè)置臨時(shí)個(gè)體temp=A,將個(gè)體temp與個(gè)體BR執(zhí)行兩點(diǎn)交叉,交叉后產(chǎn)生的后代設(shè)為S1,S2;將S1和S2中的合法個(gè)體計(jì)算適應(yīng)度,然后添加到LM中;
3)若蜜源庫(kù)LM中蜜源個(gè)數(shù)小于M/2,則轉(zhuǎn)到上一步;否則結(jié)束。
所述按位選擇交叉方式產(chǎn)生剩余的M/2個(gè)蜜源步驟如下:
1)假設(shè)二進(jìn)制串個(gè)體的長(zhǎng)度為D,設(shè)置全1二進(jìn)制串A=(a1,…,aD)=(1,1,…,1);
2)隨機(jī)產(chǎn)生一個(gè)二進(jìn)制個(gè)體BR=(r1,…,rD),設(shè)置產(chǎn)生1的概率,顯然概率在0-1之間,利用A和BR產(chǎn)生一個(gè)后代S=(s1,…,sD),其中:
Rand(2)為隨機(jī)產(chǎn)生0或1。如果S是合法個(gè)體并計(jì)算其適應(yīng)度,然后添加到LM中;
3)若LM中蜜源個(gè)數(shù)小于M;則轉(zhuǎn)到上一步,否則結(jié)束。
c、采蜜蜂階段,對(duì)每一只采蜜蜂的食物源進(jìn)行領(lǐng)域搜索以隨機(jī)產(chǎn)生一個(gè)新解,即新蜜源,若這個(gè)新解優(yōu)于舊解則用新解替代舊解,且重新設(shè)置SGi=0;否則此食物源保留,且SGi=SGi+1;
d、觀(guān)察蜂階段,每一只觀(guān)察蜂隨機(jī)選擇兩只不同的采察蜂,跟隨具有較優(yōu)食物源的采蜜蜂,記此采蜜蜂為觀(guān)察蜂對(duì)的食物源進(jìn)行領(lǐng)域搜索以隨機(jī)產(chǎn)生一個(gè)新解,即新蜜源,若這個(gè)新解優(yōu)于舊解則用新解替代舊解,且重新設(shè)置的SGk=0;否則此食物源保留,且SGk=SGk+1;
e、偵查蜂階段,若采蜜蜂的SGi>Limit,則采蜜蜂放棄當(dāng)前食物源變?yōu)閭刹旆?,此偵察蜂從蜜源?kù)中隨機(jī)選擇三個(gè)互不相同的新蜜源,再?gòu)闹羞x擇count值最小的蜜源且count=count+1,偵察蜂變?yōu)椴擅鄯淝襍Gi=0;
記錄當(dāng)前所有蜜蜂找到的最優(yōu)值,即全局最優(yōu)解Best,τ=τ+1;
若τ<MAXiteration,則轉(zhuǎn)到采蜜蜂階段;否則結(jié)束循環(huán),輸出當(dāng)前最優(yōu)解Best;
其中判斷新解和舊解的優(yōu)劣,首先檢驗(yàn)此個(gè)體是否為合法個(gè)體,若個(gè)體為合法個(gè)體,計(jì)算其適應(yīng)度;若個(gè)體為非法個(gè)體,其適應(yīng)度設(shè)置為1。
所述網(wǎng)絡(luò)負(fù)載均衡模型的目標(biāo)函數(shù)為:
Minimize:
Subject to:
設(shè)原始拓?fù)錇镚=(V,E),原始拓?fù)浒ㄒ粋€(gè)源節(jié)點(diǎn)s和d個(gè)目的節(jié)點(diǎn),V和E分別表示節(jié)點(diǎn)集和鏈路集,tk為目的節(jié)點(diǎn),節(jié)點(diǎn)數(shù)和鏈路數(shù)分別表示為|V|和|E|,其中ωi為鏈路的帶寬利用率,Gs→T為基于網(wǎng)絡(luò)編碼的組播子圖,為鏈路最大帶寬,為當(dāng)前消耗帶寬,此外在Gs→T中的鏈路還需要消耗同樣的帶寬Bs→T。P(s,tk)={p1(s,tk),…,pσ(s,tk)}為源節(jié)點(diǎn)s到目的節(jié)點(diǎn)tk∈T={t1,…,td}的路徑集,σ為Gs→T中源節(jié)點(diǎn)到每一個(gè)目的節(jié)點(diǎn)的邊分離路徑的數(shù)量,γ(s,tk)為s到tk∈T的可達(dá)帶寬。
分解原始拓?fù)鋾r(shí),將原始拓?fù)渲械臐撛诰幋a節(jié)點(diǎn)分解為輸入輔助節(jié)點(diǎn)集和輸出輔助節(jié)點(diǎn)集,使得潛在編碼節(jié)點(diǎn)的每一條輸入邊對(duì)應(yīng)一個(gè)輸入輔助節(jié)點(diǎn),每一條輸出邊對(duì)應(yīng)一個(gè)輸出輔助節(jié)點(diǎn),然后將輸入輔助節(jié)點(diǎn)和輸出輔助節(jié)點(diǎn)通過(guò)輔助鏈路兩兩連接。
所述采蜜蜂和觀(guān)察蜂對(duì)食物源Xi=(xi1,...,xiD)進(jìn)行領(lǐng)域搜索,產(chǎn)生新蜜源Vi'=(v’i1,...,v’iD),i=1,...,Np的公式為:
vid=xid+α(xid-xkd),d=1,...,D
其中:i=1,2,...,Np,k是1,...,Np中的任意一個(gè)數(shù)且k≠i,α和β為(0,1)之間的隨機(jī)數(shù)。
本發(fā)明網(wǎng)絡(luò)編碼環(huán)境下優(yōu)化負(fù)載均衡的方法在滿(mǎn)足一定約束條件下建立基于網(wǎng)絡(luò)編碼的組播子圖,即在一定約束條件下進(jìn)行編碼操作,使得網(wǎng)絡(luò)平均帶寬利用率達(dá)到最低。在進(jìn)行網(wǎng)絡(luò)編碼時(shí)并不是所有的節(jié)點(diǎn)都進(jìn)行編碼,通過(guò)本發(fā)明只需部分節(jié)點(diǎn)進(jìn)行編碼操作也可以達(dá)到最大傳輸速率,即原始拓?fù)涞淖畲罅?,由此網(wǎng)絡(luò)傳輸負(fù)載更加均衡,大大減少了計(jì)算時(shí)間和空間的消耗。
附圖說(shuō)明
圖1為本發(fā)明中人工蜂群算法的流程示意圖。
圖2為拓?fù)渚W(wǎng)絡(luò)分解示意圖。
圖3為二進(jìn)制串個(gè)體對(duì)應(yīng)的拓?fù)渚W(wǎng)絡(luò)。
圖4為根據(jù)拓?fù)渚W(wǎng)絡(luò)建立的基于網(wǎng)絡(luò)編碼的組播子圖。
具體實(shí)施方式
如圖1所示,本發(fā)明基于網(wǎng)絡(luò)編碼的負(fù)載均衡方法步驟如圖所示,具體闡述如下:
本發(fā)明網(wǎng)絡(luò)編碼環(huán)境下優(yōu)化負(fù)載均衡的方法,該方法包括以下步驟:
(1)所述原始拓?fù)浒ㄒ粋€(gè)源節(jié)點(diǎn)s和d個(gè)目的節(jié)點(diǎn),通過(guò)最大流最小割定理計(jì)算原始拓?fù)涞淖畲罅饕约霸纪負(fù)渲性垂?jié)點(diǎn)到每個(gè)目的節(jié)點(diǎn)的最大流,對(duì)原始拓?fù)溥M(jìn)行分解,將原始拓?fù)渲性垂?jié)點(diǎn)到每個(gè)目的節(jié)點(diǎn)的最大流不小于原始拓?fù)涞淖畲罅髯鳛榧s束條件,滿(mǎn)足該約束條件的蜜源能夠建立基于網(wǎng)絡(luò)編碼的組播子圖,將能夠建立基于網(wǎng)絡(luò)編碼的組播子圖的蜜源作為合法個(gè)體,否則為非法個(gè)體。分解原始拓?fù)鋾r(shí),將原始拓?fù)渲械臐撛诰幋a節(jié)點(diǎn)分解為輸入輔助節(jié)點(diǎn)集和輸出輔助節(jié)點(diǎn)集,使得潛在編碼節(jié)點(diǎn)的每一條輸入邊對(duì)應(yīng)一個(gè)輸入輔助節(jié)點(diǎn),每一條輸出邊對(duì)應(yīng)一個(gè)輸出輔助節(jié)點(diǎn),然后將輸入輔助節(jié)點(diǎn)和輸出輔助節(jié)點(diǎn)通過(guò)輔助鏈路連接。服務(wù)商可以根據(jù)建立的基于網(wǎng)絡(luò)編碼的組播子圖用作進(jìn)行數(shù)據(jù)的傳輸,基于網(wǎng)絡(luò)編碼的組播子圖。
(2)以適應(yīng)度最小為目標(biāo)建立網(wǎng)絡(luò)負(fù)載均衡模型;
所述網(wǎng)絡(luò)負(fù)載均衡模型的目標(biāo)函數(shù)為:
Minimize:
Subject to:
設(shè)原始拓?fù)錇镚=(V,E),原始拓?fù)浒ㄒ粋€(gè)源節(jié)點(diǎn)s和d個(gè)目的節(jié)點(diǎn),V和E分別表示節(jié)點(diǎn)集和鏈路集,tk為目的節(jié)點(diǎn),節(jié)點(diǎn)數(shù)和鏈路數(shù)分別表示為|V|和|E|,其中ωi為鏈路的帶寬利用率,Gs→T為基于網(wǎng)絡(luò)編碼的組播子圖,為鏈路最大帶寬,為當(dāng)前消耗帶寬,此外在Gs→T中的鏈路還需要消耗同樣的帶寬Bs→T。P(s,tk)={p1(s,tk),…,pσ(s,tk)}為源節(jié)點(diǎn)s到目的節(jié)點(diǎn)tk∈T={t1,…,td}的路徑集,σ為Gs→T中源節(jié)點(diǎn)到每一個(gè)目的節(jié)點(diǎn)的邊分離路徑的數(shù)量,γ(s,tk)為s到tk∈T的可達(dá)帶寬。
(3)根據(jù)人工蜂群算法計(jì)算分解后拓?fù)涞倪m應(yīng)度,所述人工蜂群算法包括:
a、初始化人工蜂群的參數(shù),蜜蜂總數(shù)2Np(采蜜蜂、觀(guān)察蜂各Np);最大迭代次數(shù)為MAXiteration;蜜源停留最大限制搜索次數(shù)Limit;設(shè)迭代次數(shù)τ=0,記第i(i=1,…,Np)只采蜜蜂和觀(guān)察蜂各為和
b、建立蜜源庫(kù),所述初始化規(guī)模為M的蜜源庫(kù),記為L(zhǎng)M,此蜜源庫(kù)具有M個(gè)蜜源且給每一個(gè)蜜源設(shè)置一個(gè)計(jì)數(shù)變量counti,i=1,…,M,初始值為0,首先以?xún)牲c(diǎn)交叉方式產(chǎn)生M/2個(gè)蜜源,再以第二種方式產(chǎn)生剩余的M/2個(gè)蜜源,
兩點(diǎn)交叉方式步驟如下:
1)設(shè)置全1二進(jìn)制串個(gè)體A=(1,1,…,1);
2)隨機(jī)產(chǎn)生一個(gè)二進(jìn)制個(gè)體BR,設(shè)置產(chǎn)生1的概率為0.7,設(shè)置臨時(shí)個(gè)體temp=A,將個(gè)體temp與個(gè)體BR執(zhí)行兩點(diǎn)交叉,交叉后產(chǎn)生的后代設(shè)為S1,S2;將S1和S2中的合法個(gè)體計(jì)算適應(yīng)度,然后添加到LM中;
3)若蜜源庫(kù)LM中蜜源個(gè)數(shù)小于M/2,則轉(zhuǎn)到上一步;否則結(jié)束。
按位選擇交叉方式步驟如下:
1)假設(shè)二進(jìn)制串個(gè)體的長(zhǎng)度為D,設(shè)置全1二進(jìn)制串A=(a1,…,aD)=(1,1,…,1);
2)隨機(jī)產(chǎn)生一個(gè)二進(jìn)制個(gè)體BR=(r1,…,rD),設(shè)置產(chǎn)生1的概率為0.7,利用A和BR產(chǎn)生一個(gè)后代S=(s1,…,sD),其中:
Rand(2)為隨機(jī)產(chǎn)生0或1。如果S是合法個(gè)體并計(jì)算其適應(yīng)度,然后添加到LM中,
其中概率設(shè)置為0.7能夠保證隨機(jī)產(chǎn)生的二進(jìn)制串個(gè)體有較大可能性為合法個(gè)體;
3)若LM中蜜源個(gè)數(shù)小于M;則轉(zhuǎn)到上一步,否則結(jié)束。
c、采蜜蜂階段,對(duì)每一只采蜜蜂的食物源進(jìn)行領(lǐng)域搜索以隨機(jī)產(chǎn)生一個(gè)新解,即新蜜源,若這個(gè)新解優(yōu)于舊解則用新解替代舊解,且重新設(shè)置SGi=0;否則此食物源保留,且SGi=SGi+1;
d、觀(guān)察蜂階段,每一只觀(guān)察蜂隨機(jī)選擇兩只不同的采察蜂,跟隨具有較優(yōu)食物源的采蜜蜂,記此采蜜蜂為觀(guān)察蜂對(duì)的食物源進(jìn)行領(lǐng)域搜索以隨機(jī)產(chǎn)生一個(gè)新解,即新蜜源,若這個(gè)新解優(yōu)于舊解則用新解替代舊解,且重新設(shè)置的SGk=0;否則此食物源保留,且SGk=SGk+1;
e、偵查蜂階段,若采蜜蜂的SGi>Limit,則采蜜蜂放棄當(dāng)前食物源變?yōu)閭刹旆?,此偵察蜂從蜜源?kù)中隨機(jī)選擇三個(gè)互不相同的新蜜源,再?gòu)闹羞x擇count值最小的蜜源且count=count+1,偵察蜂變?yōu)椴擅鄯淝襍Gi=0;
記錄當(dāng)前所有蜜蜂找到的最優(yōu)值,即全局最優(yōu)解Best,τ=τ+1;
若τ<MAXiteration,則轉(zhuǎn)到采蜜蜂階段;否則結(jié)束循環(huán),輸出當(dāng)前最優(yōu)解Best;
判斷新解和舊解的優(yōu)劣,首先檢驗(yàn)此個(gè)體是否為合法個(gè)體,若個(gè)體為合法個(gè)體,計(jì)算其適應(yīng)度;若個(gè)體為非法個(gè)體,其適應(yīng)度設(shè)置為1。
其中,采蜜蜂和觀(guān)察蜂對(duì)食物源Xi=(xi1,...,xiD)進(jìn)行領(lǐng)域搜索,產(chǎn)生新蜜源Vi'=(v’i1,...,v’iD),i=1,...,Np的公式為:
vid=xid+α(xid-xkd),d=1,...,D
其中:i=1,2,...,Np,k是1,...,Np中的任意一個(gè)數(shù)且k≠i,α和β為(0,1)之間的隨機(jī)數(shù)。
如圖1所示,本發(fā)明中人工蜂群算法的步驟如下:
S1開(kāi)始;
S2輸入原始拓?fù)洌?/p>
S3分解原始拓?fù)洌?/p>
S4初始化蜜源庫(kù)并從蜜源庫(kù)中獲取初始食物源,τ=0;
S5采蜜蜂階段;
S6觀(guān)察蜂階段;
S7偵察蜂階段;
S8記錄全局最優(yōu)解Best,τ=τ+1;
S9若τ<MAXiteration,則轉(zhuǎn)至S5,否則輸出當(dāng)前最優(yōu)解Best;
S10結(jié)束。
為了更好地說(shuō)明原始拓?fù)涞姆纸夂兔墼磶?kù)LM的設(shè)計(jì),以下結(jié)合S3和附圖2對(duì)原始拓?fù)涞姆纸庾鬟M(jìn)一步說(shuō)明,結(jié)合圖3以及上述蜜源庫(kù)LM對(duì)蜜源庫(kù)的設(shè)計(jì)作進(jìn)一步說(shuō)明:每一個(gè)具有u(≥2)條輸入邊和w(≥1)條輸出邊的節(jié)點(diǎn)叫做潛在編碼節(jié)點(diǎn),如圖2所示,左邊的原始拓?fù)浞纸鉃橛疫叺耐負(fù)?,?duì)于原始拓?fù)渲械臐撛诰幋a節(jié)點(diǎn)c來(lái)說(shuō),在分解后的拓?fù)渲芯哂休斎胼o助節(jié)點(diǎn)集包括u1和u2兩個(gè)輸入輔助節(jié)點(diǎn),輸出輔助節(jié)點(diǎn)集包括w1和w2兩個(gè)輸出輔助節(jié)點(diǎn),每一條輸入邊對(duì)應(yīng)一個(gè)輸入輔助節(jié)點(diǎn),每一個(gè)輸出邊對(duì)應(yīng)一個(gè)輸出輔助節(jié)點(diǎn),然后將上述輸入輔助節(jié)點(diǎn)u1和u2與輸出輔助節(jié)點(diǎn)w1和w2分別用輔助鏈路相連,對(duì)于原始拓?fù)渲械臐撛诰幋a節(jié)點(diǎn)f來(lái)說(shuō),在分解后的拓?fù)渲芯哂休斎胼o助節(jié)點(diǎn)集包括u3和u4兩個(gè)輸入輔助節(jié)點(diǎn),輸出輔助節(jié)點(diǎn)集包括w3和w4兩個(gè)輸出輔助節(jié)點(diǎn),每一條輸入邊對(duì)應(yīng)一個(gè)輸入輔助節(jié)點(diǎn),每一個(gè)輸出邊對(duì)應(yīng)一個(gè)輸出輔助節(jié)點(diǎn),然后將上述輸入輔助節(jié)點(diǎn)u3和u4與輸出輔助節(jié)點(diǎn)w3和w4分別用輔助鏈路相連,由此分解為右邊的分解后的拓?fù)?,由此分解后的圖可以更清晰地展現(xiàn)信息在流過(guò)潛在編碼節(jié)點(diǎn)是如何傳輸?shù)?。圖2中的每一條輔助鏈路對(duì)應(yīng)二進(jìn)制串的每一個(gè)比特位,圖2中右邊分解后的拓?fù)鋵?duì)應(yīng)一個(gè)二進(jìn)制串“11111111”,我們稱(chēng)此時(shí)的二進(jìn)制串個(gè)體為全1個(gè)體,用A=(1,1,…,1)表示。附圖3展示了該拓?fù)鋱D對(duì)應(yīng)的二進(jìn)制串個(gè)體,即為“01101001”。然后利用全1個(gè)體A以?xún)煞N方式產(chǎn)生蜜源庫(kù)LM,即兩點(diǎn)交叉和按位選擇交叉方式。
為了更詳細(xì)地闡述基于網(wǎng)絡(luò)編碼的組播子圖的建立,以下結(jié)合附圖2和附圖4進(jìn)行詳細(xì)說(shuō)明。如圖4,通過(guò)本發(fā)明步驟(1)中計(jì)算可知圖2原始拓?fù)涞淖畲罅鱮=2,可知附圖4左邊對(duì)應(yīng)的二進(jìn)制串個(gè)體為“11101110”,通過(guò)最大流最小割定理可得到從源節(jié)點(diǎn)s到目的節(jié)點(diǎn)t1和t2的最大流為2,顯然最大流滿(mǎn)足不小于r值的條件,然后對(duì)于t1和t2各隨機(jī)選擇兩條邊分離路徑,例如t1的兩條邊分離路徑為s→a→t1和s→b→u2→w1→d→u3→w3→t1,t2的兩條邊分離路徑為s→a→u1→w1→d→u3→w4→t2和s→b→t2。由這4條路徑可建立如附圖4右邊所示的基于網(wǎng)絡(luò)編碼的組播子圖,基于網(wǎng)絡(luò)編碼的組播子圖可簡(jiǎn)寫(xiě)為NCM(Network coding based multicast subgraph)。
為了驗(yàn)證本發(fā)明的可用性和可行性,下面對(duì)本發(fā)明以及采用經(jīng)典的遺傳算法在解決網(wǎng)絡(luò)負(fù)載均衡的問(wèn)題上進(jìn)行了仿真實(shí)驗(yàn),以此對(duì)本發(fā)明基于網(wǎng)絡(luò)編碼的負(fù)載均衡方法進(jìn)行進(jìn)一步闡述。
經(jīng)典的遺傳算法包括以下步驟:確定遺傳算法的運(yùn)行參數(shù)以及問(wèn)題的初始解、編碼成染色體、確定種群、計(jì)算各染色體的適應(yīng)度,通過(guò)遺傳運(yùn)算存優(yōu)去劣,判斷種群是否滿(mǎn)足預(yù)定指標(biāo);解碼染色體。
首先進(jìn)行參數(shù)設(shè)定:
本發(fā)明網(wǎng)絡(luò)編碼環(huán)境下優(yōu)化負(fù)載均衡的方法(以下簡(jiǎn)稱(chēng)為本發(fā)明)設(shè)定分解后的拓?fù)鋱D的所有鏈路ei∈E的最大帶寬當(dāng)前消耗帶寬設(shè)置為區(qū)間[1,50]內(nèi)的隨機(jī)整數(shù),Gs→T中的所有鏈路還需要消耗的帶寬Bs→T設(shè)為30。設(shè)置人工蜂群算法的參數(shù):蜜源庫(kù)LM規(guī)模M=50;采蜜蜂和觀(guān)察蜂個(gè)數(shù)各為Np=10,則蜜蜂總數(shù)為20;蜜源停留最大限制搜索次數(shù)Limit=5;最大迭代次數(shù)MAXiteration=200。
設(shè)置經(jīng)典遺傳算法(以下簡(jiǎn)稱(chēng)為GA)的參數(shù):交叉概率0.7;變異概率0.01;種群規(guī)模為20;最大迭代次數(shù)為200。
本發(fā)明以及經(jīng)典遺傳算法分別測(cè)試了14組網(wǎng)絡(luò)拓?fù)洌渲邪?個(gè)固定拓?fù)?3-copy,7-copy,15-copy,3-hybrid,7-hybrid,15-hybrid)和8個(gè)隨機(jī)生成的拓?fù)?Rnd1-8)。各網(wǎng)絡(luò)拓?fù)涞膮?shù)參見(jiàn)表-1。
表-1
通過(guò)設(shè)定好的參數(shù)將分別進(jìn)行仿真測(cè)試實(shí)驗(yàn),仿真測(cè)試實(shí)驗(yàn)結(jié)果如表-2所示。
表-2
本發(fā)明與GA比較的性能指標(biāo)如下:平均值和方差(Mean and standard deviation,SD),算法獨(dú)立運(yùn)行20次的最優(yōu)結(jié)果的平均值和方差,此指標(biāo)體現(xiàn)了算法的整體性能。平均計(jì)算時(shí)間(Average computational time,ACT),算法運(yùn)行20次的平均花費(fèi)時(shí)間,體現(xiàn)了算法的時(shí)間復(fù)雜度和可用性。
表2中Mean為算法輸出的最優(yōu)解。從表2可知無(wú)論從平均值、方差還是平均計(jì)算時(shí)間來(lái)說(shuō),本發(fā)明都優(yōu)于經(jīng)典算法GA。表明了本發(fā)明的可行性和可用性,可將本發(fā)明用于解決網(wǎng)絡(luò)編碼下的負(fù)載均衡問(wèn)題。