一種基于遺傳框架的組播樹優(yōu)化方法
【專利摘要】一種基于遺傳框架的組播樹優(yōu)化方法,用以解決如何從根本提高GA的局部搜索能力,并且保持算法的搜索范圍的問題。包括:S1、將染色體放入染色體池;S2、選擇父代染色體;S3、對每一對所述的父代染色體判斷是否執(zhí)行交叉算子,若是,則轉(zhuǎn)入步驟S4,否則,轉(zhuǎn)入步驟S5;S4、保留父代相同鏈路的組播樹,并基于保留鏈路計算出子代組播樹;S5、判斷是否執(zhí)行變異算子,若是,則轉(zhuǎn)入步驟S6,否則,轉(zhuǎn)入步驟S7;S6、執(zhí)行變異算子;S7、判斷演化是否達(dá)到最大繁殖代數(shù),若是,則轉(zhuǎn)入步驟S8,否則,轉(zhuǎn)入步驟S1;S8、輸出優(yōu)化后的組播樹。
【專利說明】-種基于遺傳框架的組播樹優(yōu)化方法 【技術(shù)領(lǐng)域】
[0001 ]本發(fā)明設(shè)及軟件算法領(lǐng)域,尤其是基于遺傳框架的組播樹優(yōu)化方法。 【【背景技術(shù)】】
[0002] 隨著通信技術(shù)的發(fā)展,組播業(yè)務(wù)的應(yīng)用范圍越來越廣泛,如何提高組播網(wǎng)絡(luò)的服 務(wù)質(zhì)量(如ality Of Service,QoS),均衡網(wǎng)絡(luò)負(fù)載,優(yōu)化網(wǎng)絡(luò)資源,成為當(dāng)前通信網(wǎng)絡(luò)研究 的重點(diǎn)問題。組播樹問題(M U11 i C a S t T r e e P r O b 1 e m,M T P)可形式化為斯坦利樹問題 (Steiner Tree ProblenuSTP)是一個典型的NP完全問題。綜上所述,求解MTP問題有很強(qiáng)的 現(xiàn)實意義。
[0003] MTP的求解算法可分為兩大類:精確解法和近似解法。常見的精確解法有分支界定 算法和動態(tài)規(guī)劃算法等。但由于算法時間復(fù)雜度太高,隨著問題規(guī)模的增大,計算時間成幾 何級增加,算法失去可行性。所W,目前更多的是使用人工智能優(yōu)化算法及其改進(jìn)算法進(jìn)行 求解,如遺傳算法,神經(jīng)網(wǎng)絡(luò)算法,粒子群算法,蟻群優(yōu)化算法等。
[0004] 遺傳算法(Genetic Algorithm,GA)是由Michigan大學(xué)的John Holand教授等模擬 生物進(jìn)化機(jī)制提出的優(yōu)化算法,已經(jīng)成功應(yīng)用于求解MTP。雖然具有較好的捜索能力和較高 的求解質(zhì)量,但魯棒性差、局部捜索能力弱等缺點(diǎn)仍然限制遺傳算法的效率。
[0005] 為了提高GA的效率,研究者們提出了多種改進(jìn)算法。目前的改進(jìn)多從W下=個方 面入手:
[0006] -、改進(jìn)編碼策略,如設(shè)計基因編碼表,使得編碼表中的基因都代表服務(wù)質(zhì)量較好 的鏈路,從而使得組成的染色體擁有更好的性質(zhì);
[0007] 二、優(yōu)化GA中交叉算子,如保留父代染色體中相同的鏈路,并W隨機(jī)路徑連通保留 鏈路;
[000引=、優(yōu)化GA中變異算子,使得變異算子具有一定的局部捜索能力。
[0009] 雖然優(yōu)化編碼表和交叉、變異算子能夠一定程度上提高算法的局部捜索能力,但 同時降低了算法捜索范圍,使得算法容易陷入局部最優(yōu)解,優(yōu)化能力有限。因此,如何從根 本提高GA的局部捜索能力,并且保持算法的捜索范圍,是當(dāng)前亟待解決的問題之一。 【
【發(fā)明內(nèi)容】
】
[0010] 本發(fā)明提供了一種基于遺傳框架的組播樹優(yōu)化方法,用W解決如何從根本提高GA 的局部捜索能力,并且保持算法的捜索范圍的問題。
[0011] 本發(fā)明的一種基于遺傳框架的組播樹優(yōu)化方法,包括下列步驟:Sl、將染色體放入 染色體池;S2、選擇父代染色體;S3、對每一對所述的父代染色體判斷是否執(zhí)行交叉算子,若 是,則轉(zhuǎn)入步驟S4,否則,轉(zhuǎn)入步驟S5;S4、基于父代組播樹中相同鏈路,計算出子代組播樹; S5、判斷是否執(zhí)行變異算子,若是,則轉(zhuǎn)入步驟S6,否則,轉(zhuǎn)入步驟S7;S6、執(zhí)行變異算子;S7、 判斷演化是否達(dá)到最大繁殖代數(shù),若是,則轉(zhuǎn)入步驟S8,否則,轉(zhuǎn)入步驟Sl ;S8、輸出優(yōu)化后 的組播樹。
[001 ^ 其中,在所述的步驟SI之前,還包括步驟:so I、初始化參數(shù);S02、過濾鏈路;S03、初 始化種群。
[0013] 其中,步驟SOl中所述初始化的參數(shù)包括:種群數(shù)量N,交叉概率化,變異概率化,每 一代產(chǎn)生的子代染色體數(shù)量化,最大繁殖代數(shù)MG;多頭絨泡菌網(wǎng)絡(luò)中初始信息素量1〇,多頭 絨泡菌網(wǎng)絡(luò)中每條管道初始傳導(dǎo)性的值IApm收斂的傳導(dǎo)性變化闊值0,反饋方程系數(shù)k和 保留闊值n,W及保留鏈路權(quán)值e。并設(shè)置源節(jié)點(diǎn)S和目標(biāo)節(jié)點(diǎn)集合D E;
[0014] 其中,步驟S03所述初始化種群中,每個初始個體形成的具體過程如下:設(shè)置源節(jié) 點(diǎn)S為當(dāng)前結(jié)點(diǎn)C,即C = S;從C的鄰邊中隨機(jī)選擇一條邊,記為ec,b,若b不是目的節(jié)點(diǎn),則更 新當(dāng)前結(jié)點(diǎn)為b,重復(fù)操作直到訪問到目的節(jié)點(diǎn),此時將訪問過的點(diǎn)和邊組成的子圖記為T; 從還未訪問過的目的節(jié)點(diǎn)中隨機(jī)選擇一個節(jié)點(diǎn)作為當(dāng)前結(jié)點(diǎn)C,從C的鄰邊中隨機(jī)選擇一條 邊,記為ec,b,若b不是T中節(jié)點(diǎn),則更新當(dāng)前結(jié)點(diǎn)為b,重復(fù)操作直到訪問到T中的節(jié)點(diǎn);W及 將訪問過的邊和點(diǎn)并入T;此時若還有目的節(jié)點(diǎn)未在T中,則重新隨機(jī)選擇未在T中的目的節(jié) 點(diǎn)為當(dāng)前結(jié)點(diǎn)C,直到所有目的節(jié)點(diǎn)均在T中;最后基于從源節(jié)點(diǎn)起的深度優(yōu)先遍歷,將多余 的邊刪除,得到初始的組播樹,并將初始組播樹編碼,形成初始的染色體。
[0015] 其中,步驟Sl具體是將新產(chǎn)生染色體放入染色體池,并將當(dāng)前染色體池中的染色 體按照適應(yīng)度排序,并保留適應(yīng)度較高的N個染色體。
[0016] 其中,步驟S2中采用輪盤選擇法,在當(dāng)前染色體池中選擇出化對父代染色體。
[0017] 其中,步驟%中所述產(chǎn)生保留父代相同鏈.枚戚姑目化島古生一A bA前比化仕Ki 相同的網(wǎng)絡(luò)NG,并按照如下公式設(shè)置NG中邊的權(quán)值; 其中戈表NG中邊ei,j的權(quán)值,cu、Q〇S:J分別代表連接路由i和j鏈路的代價和服務(wù)質(zhì)量屬 性,Wtt代表對應(yīng)服務(wù)質(zhì)量在當(dāng)前問題中的重要程度;之后對比父代染色體中的鏈路,將父代 染色體相同鏈路在NG中的權(quán)值設(shè)置為e。
[0018] 其中,步驟S4中所述計算出子代組播樹,具體是將與當(dāng)前拓?fù)浣Y(jié)構(gòu)相同的網(wǎng)絡(luò)NG, 節(jié)點(diǎn)S,點(diǎn)集DE輸入多頭絨泡菌數(shù)學(xué)模型,得到子代組播樹,步驟如下:在多頭絨泡菌模型 中,設(shè)置節(jié)點(diǎn)S為入口,點(diǎn)集DE中所有點(diǎn)都為出口;用P:代表節(jié)點(diǎn)i在t時刻的壓力值,則根據(jù) 基爾霍夫定律可得到如下方程組:
[0019]
[0020] 其中Di康示管道的傳導(dǎo)性,與管道直徑成正比:Lij代表NG中邊的權(quán)值;M代表目標(biāo) 節(jié)點(diǎn)的個數(shù);Io代表多頭絨泡菌網(wǎng)絡(luò)中總流量,該值在網(wǎng)絡(luò)演化過程中始終保持不變;根據(jù) 該方程組計算出每個時刻節(jié)點(diǎn)i的壓力值^,再根據(jù)泊肅葉定律所刻畫的管道中流體、傳導(dǎo) 性、壓力S者的關(guān)系,可W得到如下方程:
[0021]
[0022]根據(jù)該方程得到每個時刻管道中流量Qtu;之后更新多頭絨泡菌網(wǎng)絡(luò)中各管道傳 導(dǎo)性,具體如下:
[0023]
[0024] 當(dāng)所有管道的傳導(dǎo)性更新完畢后,計算t+1時刻和t時刻單一管道傳導(dǎo)性變化量的 最大值,具體如下:
[0025]
[0026] 當(dāng)該值小于即寸,輸出傳導(dǎo)性大于Tl的邊組成的組播樹NT;否則進(jìn)入t+1時刻的迭 代。
[0027] 其中,步驟S6中所述執(zhí)行變異算子具體過程如下:隨機(jī)刪除組播樹中的一條邊,使 組播樹分裂為兩個連通分量,含有節(jié)點(diǎn)S的連通分量記為A,另一個記為B;從B中隨機(jī)選擇一 個節(jié)點(diǎn)為當(dāng)前結(jié)點(diǎn),記為C;從當(dāng)前結(jié)點(diǎn)C的鄰居中隨機(jī)選擇一個點(diǎn),記為V,若V在B中,則當(dāng) 前結(jié)點(diǎn)變更為V,并重新選擇當(dāng)前結(jié)點(diǎn)的鄰居V,直到V不在B中;將邊e。,V加入組播樹,同時當(dāng) 前結(jié)點(diǎn)變更為V;檢測組播樹中A和B是否合并為一個連通分量,若是,則基于深度優(yōu)先遍歷 刪除多余邊;否則繼續(xù)基于當(dāng)前結(jié)點(diǎn)選擇鄰居;最后輸出變異后染色體。
[0028] 其中,步驟S5中判定不執(zhí)行變異算子時,當(dāng)化對父代染色體都完成繁殖操作后,計 算新產(chǎn)生染色體的適應(yīng)度,并將新個體加入染色體池。
[0029] 本發(fā)明的基于遺傳框架的組播樹優(yōu)化方法與現(xiàn)有技術(shù)相比,本發(fā)明在求解MTP時, 假設(shè)存在一個多頭絨泡菌網(wǎng)絡(luò)與移動自組網(wǎng)絡(luò)(Mobile Ad-hoc肥Tworks,MA肥T)對應(yīng)。多 頭絨泡菌網(wǎng)絡(luò)中的節(jié)點(diǎn)和管道分別對應(yīng)移動自組網(wǎng)絡(luò)中路由節(jié)點(diǎn)和節(jié)點(diǎn)間鏈路,且多頭絨 泡菌網(wǎng)絡(luò)的管道長度對應(yīng)鏈路QoS屬性和代價的加權(quán)值。比起現(xiàn)有交叉算子,優(yōu)化之處在 于:提高了交叉算子的局部捜索能力,使得交叉算子能夠基于父代染色體的基因,利用多頭 絨泡菌數(shù)學(xué)模型,求得一個小范圍的局部最優(yōu)解。在MTP中,全局最優(yōu)解同時也是局部最優(yōu) 解,即局部最優(yōu)解是全局最優(yōu)解的必要條件。由于局部捜索能力的增強(qiáng),交叉算子能夠產(chǎn)生 出更好的后代個體,同時每次交叉算子的執(zhí)行都完成了對一個局部解空間的捜索,增大了 算法捜索范圍并提高了算法魯棒性。 【【附圖說明】】
[0030] 圖1是本發(fā)明實施方式的流程圖,詳細(xì)描述見技術(shù)方案;
[0031 ]圖2是優(yōu)化算法解決MTP工作機(jī)制圖,詳細(xì)描述見與現(xiàn)有技術(shù)相比的有益效果;
[0032] 圖3是基于多頭絨泡菌數(shù)學(xué)模型的交叉算子示意圖。其中(a)和(b)表示選出的父 代組播樹,(C)表示對應(yīng)生成的子代組播樹。(C)中加粗邊代表父代中的相同鏈路,虛線邊表 示由多頭絨泡菌數(shù)學(xué)模型選擇的鏈路。詳細(xì)描述見技術(shù)方案中步驟108和步驟109。
[0033] 圖4是基于多頭絨泡菌數(shù)學(xué)模型優(yōu)化遺傳算法解決MTP框架圖。為方便描述,優(yōu)化 后的遺傳算法分別在原算法的基礎(chǔ)上添加前綴'PM-',例如節(jié)能遺傳算法記為EEGA,則優(yōu)化 后的節(jié)能遺傳算法統(tǒng)稱為PM-EEGA。
[0034] 圖5,圖6,圖7和圖8給出了應(yīng)用本發(fā)明方法優(yōu)化后的遺傳算法與優(yōu)化前算法求解 MTP性能對比結(jié)果。
[00巧]數(shù)據(jù)集采用不同網(wǎng)絡(luò)生成器生成的四個網(wǎng)絡(luò),記為01、02、03、04。其中01、02和03 是最小代價,延遲、帶寬限制組播樹問題的數(shù)據(jù)集,D4是最小代價,延遲、帶寬、抖動限制組 播樹問題數(shù)據(jù)集。為了衡量算法效果,引入Smin、Saverage、Svariance指標(biāo),具體定義如下:
[0036] ( I )最小值Smin,代表算法求得的最優(yōu)組播樹的代價或QoS屬性值;
[0037] (2)平均值Saverage和方差Svariance,代表算法經(jīng)過T次重復(fù)計算后,所得最優(yōu)組播樹 的代價或QoS屬性值的平均值和方差。例如,Saverage的計算方式夫
,其中 S,;,,,,表示第i次計算的最優(yōu)組播樹的屬性值。
[003 引 圖 5、圖 6和圖 7 比較了 PM-GAMAR、PM-EEGA、PM-ISGSA和GAMAR、邸 GA、ISGSA在Dl、D2、 D3下求解MTP結(jié)果,展不了不問算法所得的代價及延遲的Saverage和Svariance比較。結(jié)果顯不, 無論代價還是延遲,優(yōu)化后算法(PM-GA)的Saverage都明顯低于原算法(GA)DSaverage的降低說 明基于多頭絨泡菌數(shù)學(xué)模型的交叉算子有效的提高了遺傳算法的尋優(yōu)能力,提升了求得組 播樹的質(zhì)量;同時Svarianse的降低說明PM-GA的魯棒性相較于GA也有了較大提高。
[0039] 圖 8比較了 PM-EEGA、PM-I SGSA、EEGA、ISGSA 和蜂群算法(Bees Life-based Algorithm(BLA),Bees Algorithm(BA),Marriage in honey Bees Optimization algorithm(MBO))在D4下求解MTP的結(jié)果。結(jié)果表明,相較于蜂群算法,PM-EEGA、PM-ISGSA、 邸GA、ISGSA能更好的求解MTP問題,并且PM-EEGA、PM-ISGSA比邸GA、ISGSA的Saverage更低。
[0040] 圖9和圖10刻畫了 PM-EEGA、PM-ISGSA、EEGA、ISGSA在D2下求解MTP問題的過程中, 代價和延遲的Saverage及Svariance隨著種群繁殖的變化情況。無論是代價和延遲,PM-ffiGA、PM- ISGSA都有更快的下降速度,更早趨于穩(wěn)定。并且相較于邸GA、ISGSA,PM-EEGA、PM-I SG SA收 斂時的代價和延遲的Saverage更低。同時,在Svariance的比較中,雖然都有升高過程,但是PM- EEGA、PM-ISGSA的下降速度更快,最后的方差也更低,展示出了更強(qiáng)的魯棒性。
[0041 ] 圖9中,在迭代之初,PM-EEGA、PM-I SGSA與邸GAJSGSA的Saverage差距很小。隨迭代 步數(shù)增加,差距逐漸擴(kuò)大,最后PM-邸GA、PM-ISGSA的表現(xiàn)明顯優(yōu)于邸GA、ISGSA,運(yùn)說明改進(jìn) 后的算法(PM-邸GA、PM-ISGSA)的收斂速度和尋優(yōu)能力得到了較好的提升。同樣,在圖10所 刻畫的Svariance的收斂情況說明PM-邸GA、PM-ISGSA具有更優(yōu)的魯棒性。另外,代價和延遲在 迭代過程中展現(xiàn)出相似性,即圖9、圖10中(a)和(b)變化趨勢的相似,說明基于多頭絨泡菌 的交叉算子能夠較好的兼顧多種屬性(如代價和延遲),能夠處理較為復(fù)雜的多QoS需求。 【【具體實施方式】】
[0042] 本實施例提供了一種基于遺傳框架的組播樹優(yōu)化方法,參見附圖1所示,包括下列 主要步驟:
[0043] 流程開始于步驟101。
[0044] 在步驟102,初始化各主要參數(shù):種群數(shù)量N,交叉概率化,變異概率化,每一代產(chǎn)生 的子代染色體數(shù)量化,最大繁殖代數(shù)MG;多頭絨泡菌網(wǎng)絡(luò)中初始信息素量1〇,多頭絨泡菌網(wǎng) 絡(luò)中每條管道初始傳導(dǎo)性的值護(hù),PM收斂的傳導(dǎo)性變化闊值0,反饋方程系數(shù)k和保留闊值 n,W及保留鏈路權(quán)值e。并設(shè)置源節(jié)點(diǎn)S和目標(biāo)節(jié)點(diǎn)集合D E。根據(jù)經(jīng)驗,參數(shù)的具體取值為: N=200,化= 0.9,Pm = 0.05Jn = 180,MG = 300,滬=l,e=l〇-6,k = 2,ri=l〇-3,e = l〇-3。
[0045] 在步驟103,依據(jù)組播樹對服務(wù)質(zhì)量的要求,過濾不滿足服務(wù)質(zhì)量要求的鏈路。W 典型QoS屬性帶寬為例,組播樹的帶寬由組成組播樹鏈路的帶寬最小值決定。遍歷已知的鏈 路,將帶寬小于最小帶寬限制的鏈路過濾。
[0046] 在步驟104,隨機(jī)初始化N個染色體并計算適應(yīng)度,形成初代種群。WISGSA中初始 個體的方法為例,每個初始個體形成的具體過程如下:
[0047]首先設(shè)置源節(jié)點(diǎn)S為當(dāng)前結(jié)點(diǎn)C,即c = s。
[004引從C的鄰邊中隨機(jī)選擇一條邊,記為ec,b,若b不是目的節(jié)點(diǎn),即Ae 0£,則更新當(dāng)前 結(jié)點(diǎn)為b,即c = b。重復(fù)上述操作直到訪問到目的節(jié)點(diǎn)。此時將訪問過的點(diǎn)和邊組成的子圖 記為T。
[0049] 之后從還未訪問過的目的節(jié)點(diǎn)中隨機(jī)選擇一個節(jié)點(diǎn)作為當(dāng)前結(jié)點(diǎn)C,從C的鄰邊中 隨機(jī)選擇一條邊,記為ec,b,若b不是T中節(jié)點(diǎn),則更新當(dāng)前結(jié)點(diǎn)為b,即c = b。重復(fù)上述操作直 到訪問到T中的節(jié)點(diǎn)。然后將訪問過的邊和點(diǎn)并入T。此時若還有目的節(jié)點(diǎn)未在T中,貝幢新 隨機(jī)選擇未在T中的目的節(jié)點(diǎn)為當(dāng)前結(jié)點(diǎn)C,直到所有目的節(jié)點(diǎn)均在T中。
[0050] 最后基于從源節(jié)點(diǎn)起的深度優(yōu)先遍歷,將多余的邊刪除,得到初始的組播樹,并將 初始組播樹編碼,形成初始的染色體。
[0051] 在步驟105,將新產(chǎn)生染色體放入染色體池,并將當(dāng)前染色體池中的染色體按照適 應(yīng)度排序,僅保留適應(yīng)度較高的N個染色體,即對染色體池中的染色體進(jìn)行更新和淘汰。 [0化2] 在步驟106,用輪盤選擇法,在當(dāng)前染色體池中選擇出化對父代染色體。
[0053] 在步驟107,對每一對父代染色體判斷是否執(zhí)行交叉算子。若判斷結(jié)果為"是",則 流程進(jìn)入步驟108;否則進(jìn)入步驟110。
[0054] 在步驟108,產(chǎn)生一個與當(dāng)前拓?fù)浣Y(jié)構(gòu)相同的網(wǎng)絡(luò)NG,即產(chǎn)生拓?fù)浣Y(jié)構(gòu)與當(dāng)前網(wǎng)絡(luò)
相同的抑/-b'…心Ann丄-于'、心n-W'…山'丄化知;
[0化5]
[0056] 代表NG中邊ei,j的權(quán)值,Cij、Q〇S:;分別代表連接路由巧Pj鏈路的代價和服務(wù)質(zhì)量 屬性,Wtt代表對應(yīng)服務(wù)質(zhì)量在當(dāng)前問題中的重要程度。
[0057] 之后對比父代染色體中的鏈路,將父代染色體相同鏈路在NG中的權(quán)值設(shè)置為e。 [005引在步驟109,將NG,s,DE輸入多頭絨泡菌數(shù)學(xué)模型,得到子代組播樹NT,具體步驟如 下:
[0化9] 在多頭絨泡菌模型中,設(shè)置節(jié)點(diǎn)S為入口,點(diǎn)集肥中所有點(diǎn)都為出口。用P:代表節(jié)點(diǎn) i在t時刻的壓力值,則根據(jù)基爾霍夫定律可得到如下方程組:
[0060;
[0061」 呂舊_日、」'|々寸-1王,可呂舊_占*徑成正比;Lij代表NG中邊的權(quán)值;M代表目標(biāo) 節(jié)點(diǎn)的個數(shù);Io代表多頭絨泡菌網(wǎng)絡(luò)中總流量,該值在網(wǎng)絡(luò)演化過程中始終保持不變。根據(jù) 該方程組可W計算出每個時刻節(jié)點(diǎn)i的壓力值^。再根據(jù)泊肅葉定律所刻畫的管道中流體、 傳導(dǎo)性、用力二者的關(guān)系,可Pi得到如下方程:
[0062]
[0063]根據(jù)該方程可W得到每個時刻管道中流量Qtu。之后更新多頭絨泡菌網(wǎng)絡(luò)中各管 道傳導(dǎo)性,具體如下:
[0064]
[0065] 當(dāng)所有管道的傳導(dǎo)性更新完畢后,計算t+1時刻和t時刻單一管道傳導(dǎo)性變化量的 最大值,具體如下:
[0066]
[0067] 當(dāng)該值小于即寸,輸出傳導(dǎo)性大于Tl的邊組成的組播樹NT;否則進(jìn)入t+1時刻的迭 代。
[0068] 在步驟110,判斷是否執(zhí)行變異算子。如果判斷結(jié)果為"是",則進(jìn)入步驟111;否則 進(jìn)入步驟112。
[0069] 在步驟111,執(zhí)行變異算子,產(chǎn)生變異后個體。W遺傳算法ISGSA中的變異為例,具 體過程如下:
[0070] 首先,隨機(jī)刪除組播樹中的一條邊,使組播樹分裂為兩個連通分量,含有節(jié)點(diǎn)S的 連通分量記為A,另一個記為B。
[0071] 從B中隨機(jī)選擇一個節(jié)點(diǎn)為當(dāng)前結(jié)點(diǎn),記為C。
[0072] 從當(dāng)前結(jié)點(diǎn)C的鄰居中隨機(jī)選擇一個點(diǎn),記為V。若V在B中,則當(dāng)前結(jié)點(diǎn)變更為V,即 C = V,并重新選擇當(dāng)前結(jié)點(diǎn)的鄰居V,直到V不在B中。
[0073] 之后,將邊ec,b加入組播樹,同時則當(dāng)前結(jié)點(diǎn)變更為V。
[0074] 檢測組播樹中A和B是否合并為一個連通分量。若是,則基于深度優(yōu)先遍歷刪除多 余邊;否則繼續(xù)基于當(dāng)前結(jié)點(diǎn)選擇鄰居。
[0075] 最后輸出變異后染色體。
[0076] 在步驟112,當(dāng)化對父代染色體都完成繁殖操作后,計算新產(chǎn)生染色體的適應(yīng)度, 并將新個體加入染色體池。
[0077] 在步驟113,判斷演化是否達(dá)到最大繁殖代數(shù)。若是,則執(zhí)行步驟114;否則回到步 驟 105。
[007引在步驟114,將適應(yīng)度最高的染色體解碼作為最優(yōu)組播樹輸出。
[00巧]流程結(jié)束于步驟115。
[0080]運(yùn)里本發(fā)明的描述和應(yīng)用都只是說明性和示意性的,并非是想要將本發(fā)明的范圍 限制在上述實施例中。運(yùn)里所披露的實施例的變形和改變是完全可能的,對于那些本領(lǐng)域 的普通技術(shù)人員來說,實施例的替換和等效的各種部件均是公知的。本領(lǐng)域技術(shù)人員還應(yīng) 該清楚的是,在不脫離本發(fā)明的精神或本質(zhì)特征的情況下,本發(fā)明可W W其它形式、結(jié)構(gòu)、 布置、比例,W及用其它組件、材料和部件來實現(xiàn),W及在不脫離本發(fā)明范圍和精神的情況 下,可W對運(yùn)里所披露的實施例進(jìn)行其它變形和改變。
【主權(quán)項】
1. 一種基于遺傳框架的組播樹優(yōu)化方法,其特征在于,包括下列步驟: 51、 將染色體放入染色體池; 52、 選擇父代染色體; 53、 對每一對所述的父代染色體判斷是否執(zhí)行交叉算子,若是,則轉(zhuǎn)入步驟S4,否則,轉(zhuǎn) 入步驟S5; 54、 基于父代組播樹中相同鏈路,產(chǎn)生子代組播樹; 55、 判斷是否執(zhí)行變異算子,若是,則轉(zhuǎn)入步驟S6,否則,轉(zhuǎn)入步驟S7; 56、 執(zhí)行變異算子; 57、 判斷演化是否達(dá)到最大繁殖代數(shù),若是,則轉(zhuǎn)入步驟S8,否則,轉(zhuǎn)入步驟S1; 58、 輸出優(yōu)化后的組播樹。2. 如權(quán)利要求1所述的基于遺傳框架的組播樹優(yōu)化方法,其特征在于,在所述的步驟S1 之前,還包括步驟: 501、 初始化參數(shù); 502、 過濾鏈路; 503、 初始化種群。3. 如權(quán)利要求2所述的基于遺傳框架的組播樹優(yōu)化方法,其特征在于,步驟SOI中所述 初始化的參數(shù)包括:種群數(shù)量N,交叉概率化,變異概率化,每一代產(chǎn)生的子代染色體數(shù)量 Pn,最大繁殖代數(shù)MG;多頭絨泡菌網(wǎng)絡(luò)中初始信息素量1〇,多頭絨泡菌網(wǎng)絡(luò)中每條管道初始 傳導(dǎo)性的值護(hù),PM收斂的傳導(dǎo)性變化闊值β,反饋方程系數(shù)k和保留闊值II,W及保留鏈路權(quán) 值ε。并設(shè)置源節(jié)點(diǎn)S和目標(biāo)節(jié)點(diǎn)集合DE。4. 如權(quán)利要求2所述的基于遺傳框架的組播樹優(yōu)化方法,其特征在于,步驟S03所述初 始化種群中,每個初始個體形成的具體過程如下: 設(shè)置源節(jié)點(diǎn)S為當(dāng)前結(jié)點(diǎn)C,即c = s; 從C的鄰邊中隨機(jī)選擇一條邊,記為ec,b,若b不是目的節(jié)點(diǎn),則更新當(dāng)前結(jié)點(diǎn)為b,重復(fù) 操作直到訪問到目的節(jié)點(diǎn),此時將訪問過的點(diǎn)和邊組成的子圖記為T; 從還未訪問過的目的節(jié)點(diǎn)中隨機(jī)選擇一個節(jié)點(diǎn)作為當(dāng)前結(jié)點(diǎn)C,從C的鄰邊中隨機(jī)選擇 一條邊,記為ec,b,若b不是T中節(jié)點(diǎn),則更新當(dāng)前結(jié)點(diǎn)為b,重復(fù)操作直到訪問到T中的節(jié)點(diǎn); W及將訪問過的邊和點(diǎn)并入T; 此時若還有目的節(jié)點(diǎn)未在T中,則重新隨機(jī)選擇未在T中的目的節(jié)點(diǎn)為當(dāng)前結(jié)點(diǎn)C,重復(fù) 上述步驟,直到所有目的節(jié)點(diǎn)均在T中; 最后基于從源節(jié)點(diǎn)起的深度優(yōu)先遍歷,將多余的邊刪除,得到初始的組播樹,并將初始 組播樹編碼,形成初始的染色體。5. 如權(quán)利要求1所述的基于遺傳框架的組播樹優(yōu)化方法,其特征在于,步驟S1具體是將 新產(chǎn)生染色體放入染色體池,并將當(dāng)前染色體池中的染色體按照適應(yīng)度排序,并保留適應(yīng) 度較高的N個染色體。6. 如權(quán)利要求1所述的基于遺傳框架的組播樹優(yōu)化方法,其特征在于,步驟S2中采用輪 盤選擇法,在當(dāng)前染色體池中選擇出化對父代染色體。7. 如權(quán)利要求1所述的基于遺傳框架的組播樹優(yōu)化方法,其特征在于,步驟S4中所述產(chǎn) 生保留父代相同鏈路的組播樹,具體是產(chǎn)生一個與當(dāng)前拓?fù)浣Y(jié)構(gòu)相同的網(wǎng)絡(luò)NG,并按照如 下公式設(shè)置NG中邊的權(quán)值:其中代表NG中邊ei, J的權(quán)值,cij、QoSi誠別代表連接路由巧P j鏈路的代價和服務(wù)質(zhì)量 屬性,Wn代表對應(yīng)服務(wù)質(zhì)量在當(dāng)前問題中的重要程度; 之后對比父代染色體中的鏈路,將父代染色體相同鏈路在NG中的權(quán)值設(shè)置為ε。8. 如權(quán)利要求2所述的基于遺傳框架的組播樹優(yōu)化方法,其特征在于,步驟S4中所述計 算出子代組播樹,具體是將與當(dāng)前拓?fù)浣Y(jié)構(gòu)相同的網(wǎng)絡(luò)NG,節(jié)點(diǎn)S,點(diǎn)集DE輸入多頭絨泡菌 數(shù)學(xué)模型,得到子代組播樹,步驟如下: 在多頭絨泡菌模型中,設(shè)置節(jié)點(diǎn)S為入口,點(diǎn)集DE中所有點(diǎn)都為出口;用片代表節(jié)點(diǎn)i在t 時刻的壓力值,則根據(jù)基爾霍夫定律可得到如下方程組:其中Du表示管道的傳導(dǎo)性,與管道直徑成正比;Lu代表NG中邊的權(quán)值;Μ代表目標(biāo)節(jié)點(diǎn) 的個數(shù);1〇代表多頭絨泡菌網(wǎng)絡(luò)中總流量,該值在網(wǎng)絡(luò)演化過程中始終保持不變;根據(jù)該方 程組計算出每個時刻節(jié)點(diǎn)i的壓力值0';再根據(jù)泊肅葉定律所刻畫的管道中流體、傳導(dǎo)性、壓 力Ξ者的關(guān)系,可W得到如下方程:根據(jù)該方程得到每個時刻管道中流量Qtu;之后更新多頭絨泡菌網(wǎng)絡(luò)中各管道傳導(dǎo)性, 具體如下:當(dāng)所有管道的傳導(dǎo)性更新完畢后,計算t+1時刻和t時刻單一管道傳導(dǎo)性變化量的最大 值,具體如下:當(dāng)該值小于削寸,輸出傳導(dǎo)性大于η的邊組成的組播樹NT;否則進(jìn)入t+1時刻的迭代。9. 如權(quán)利要求1所述的基于遺傳框架的組播樹優(yōu)化方法,其特征在于,步驟S6中所述執(zhí) 行變異算子具體過程如下: 機(jī)刪除組播樹中的一條邊,使組播樹分裂為兩個連通分量,其中含有節(jié)點(diǎn)S的連通分量 記為A,另一個記為B; 從B中隨機(jī)選擇一個節(jié)點(diǎn)為當(dāng)前結(jié)點(diǎn),記為C; 從當(dāng)前結(jié)點(diǎn)C的鄰居中隨機(jī)選擇一個點(diǎn),記為V,若V在B中,則當(dāng)前結(jié)點(diǎn)變更為V,并重新 選擇當(dāng)前結(jié)點(diǎn)的鄰居V,直到V不在B中; 將邊ew加入組播樹,同時當(dāng)前結(jié)點(diǎn)變更為V; 檢測組播樹中A和B是否合并為一個連通分量,若是,則基于深度優(yōu)先遍歷刪除多余邊; 否則繼續(xù)基于當(dāng)前結(jié)點(diǎn)選擇鄰居; 最后輸出變異后染色體。10.如權(quán)利要求6所述的基于遺傳框架的組播樹優(yōu)化方法,其特征在于,步驟S5中判定 不執(zhí)行變異算子時,當(dāng)化對父代染色體都完成繁殖操作后,計算新產(chǎn)生染色體的適應(yīng)度,并 將新個體加入染色體池。
【文檔編號】H04L12/761GK105978816SQ201610265453
【公開日】2016年9月28日
【申請日】2016年4月27日
【發(fā)明人】高超, 梁鳴心, 張自力
【申請人】西南大學(xué)