張清富
(廣東陽江市廣播電視大學,廣東 陽江 529500)
QoS是指數(shù)據(jù)通過網(wǎng)絡(luò)時向用戶提供端到端的服務質(zhì)量保證,其質(zhì)量指標一般包括業(yè)務的延遲、延遲抖動、費用、帶寬和丟包率等多個度量約束。如果QoS路由涉及兩個以上的度量約束問題,則QoS組播路由計算是NP完全(NP-Complete)問題[1],很難找到多項式時間的求解算法。
遺傳算法GA(Genetic Algorithm)是模擬生物進化過程的一種智能算法,具有自適應性、并行性以及魯棒性強等多方面的特點,可有效解決QoS組播路由選擇問題。但經(jīng)典遺傳算法存在易發(fā)生早熟現(xiàn)象、進化后期搜索效率低以及收斂后穩(wěn)定性差等缺點,而保持群體的多樣性可有效避免遺傳算法早熟的產(chǎn)生。為此,本文在遺傳算法基礎(chǔ)上,引入混沌優(yōu)化以及早熟處理機制兩個改良措施對群體進行擾動以增加群體的多樣性。
傳統(tǒng)的二進制編碼和實數(shù)編碼不能精確地描述組播樹的特性,本算法采用變長整數(shù)編碼這種最自然、最簡單的組播路由表示方式。給定一個源點和一組目的節(jié)點,群體中的每個個體(染色體)代表一棵多播樹,可用樹型數(shù)據(jù)結(jié)構(gòu)描述個體結(jié)構(gòu)。染色體碼長為目的節(jié)點的個數(shù)m,第i位上的數(shù)值表示組播樹中到第i個目的節(jié)點的路徑的編號。 例如組播樹{3,5,6,4,7,9}表示有 6 個目的節(jié)點,對第1個目的節(jié)點采用3號路徑,對第2個目的節(jié)點采用5號路徑,以此類推,每條路徑是一個節(jié)點集合。
在明確QoS組播要求之后,對每個目的節(jié)點 ti,采用Dijkstra前k條最短路算法找到從源點s到ti的滿足帶寬要求的所有路徑并對路徑進行整數(shù)編碼,而其中的路徑由網(wǎng)絡(luò)節(jié)點的編號組成(節(jié)點集),這就形成了組播樹的候選路徑集合。
其中,fb=φb(B(T(s,M))-b),fd=φd(D(T(s,M))-d),fj=φj(J(T(s,M))-j),fl=φl(L(T(s,M))-l),fc=φc(C(T(s,M))-c),φb(x)
其中,fx表示s到ti路徑的實際值與約束值的差值,Wb、Wd、Wj、Wl、Wc分別為 QoS 約束的權(quán)重參數(shù),φ(x)為一個懲罰函數(shù),其系數(shù) rx∈(0,1)。
分別從到達每個目的節(jié)點候選路徑集中任選一條路由組成一棵組播樹作為初始群體的染色體。這樣構(gòu)成的組播樹覆蓋了所有的目的節(jié)點,群體多樣性更有保證,并且消除了算法中的帶寬約束,優(yōu)化了網(wǎng)絡(luò)的性能,減少了算法的搜索空間。
混沌優(yōu)化具有偽隨機性、遍歷性、周期性等特征,是一種全局和局部搜索能力都很強的新型算法,但是常用的Logistic映射的概率密度呈兩頭多、中間少的分布性質(zhì),故本文在遺傳算法的選擇操作中采用均勻分布特性更好的Tent映射混沌優(yōu)化,可更有效抑制遺傳算法產(chǎn)生早熟,并提高進化后期的收斂速度。Tent映射表達式為:
Tent映射在函數(shù)域空間中其概率密度的分布較均勻,可避免主要集中在變量空間的邊緣區(qū)域進行搜索的不足。
自適應混沌遺傳算法采用最佳混沌個體保留法與輪盤賭選擇法相結(jié)合的選擇方式。利用Tent映射函數(shù)混沌優(yōu)化群體中個體的適應度函數(shù)值,選出最佳值個體,直接遺傳到子代群體中,其余個體采用輪盤賭選擇法選擇。
通過監(jiān)測群體適應度方差與群體當前最優(yōu)解的適應度連續(xù)變化情況來判斷群體是否產(chǎn)生早熟。采用如下群體適應度方差公式[5]:
其中,P為群體規(guī)模,fi為個體適應度,favg為群體平均適應度,f為歸一函數(shù)。數(shù)值實驗發(fā)現(xiàn),早熟收斂和群體適應度方差σ2存在某種相關(guān)度:當早熟收斂產(chǎn)生時,在連續(xù)數(shù)次迭代中σ2變化不大,趨于穩(wěn)定,但是當算法收斂到全局最優(yōu)解時,σ2同樣存在以上的情況。綜合考慮,判斷群體產(chǎn)生早熟收斂的依據(jù)為:群體適應度方差與群體當前最優(yōu)解的適應度的差值連續(xù)3次分別小于預先設(shè)定的閾值∈1、∈2,即 Δσ2<∈1、Δfmax<∈2。
產(chǎn)生早熟收斂的群體的多樣性較差,個體相似度大,“劣種”較多,群體需要“突變“,這時可以加大群體的繁殖強度并增強群體的擾動,即增大交叉概率與變異概率,使其跳離局部最優(yōu)解,采用如下公式:
遺傳算法的全局隨機搜索能力主要取決于交叉策略,本文以自適應的交叉概率進行交叉操作。在兩個選中的染色體中選擇一個公共基因作為交叉點,若存在兩個或兩個以上公共基因位時,則隨機選取一個作為交叉點,交叉時,各染色體交換交叉點之后的基因段生成兩個新子體,交叉過程示如圖1所示。圖中,節(jié)點n2、n5為潛在交叉點,選定n2為交叉點。
變異操作使遺傳算法具有局部隨機搜索能力,是保持群體多樣性的一種有效進化操作,本文以自適應的變異概率進行變異操作。從染色體中隨機選擇兩個基因為變異點n1、n2,以路徑費用為指標,采用Dijkstra最短路徑算法計算節(jié)點n1、n2之間的最短路徑作為變異后的新路徑,變異過程如圖2所示。
圖1 染色體的交叉操作
圖2 染色體的變異操作
群體經(jīng)過交叉和變異之后,可能會產(chǎn)生違反約束條件及產(chǎn)生環(huán)路的個體。修正操作就是維護違反約束條件及產(chǎn)生環(huán)路的染色體。修正維護操作可以采用懲罰策略和刪除循環(huán)的方法來實現(xiàn)。
假設(shè)網(wǎng)絡(luò)拓撲結(jié)構(gòu)和QoS組播要求已知。網(wǎng)絡(luò)中包含n個節(jié)點,其中包括m個目的節(jié)點。P為群體規(guī)模,i為當前進化代數(shù),G為最大進化次數(shù)。組播要求包括源節(jié)點 s,目的節(jié)點集 M,QoS 組播要求 R(s,M,b,d,j,l),算法運行步驟如下:
(1)初始化相關(guān)參數(shù);
(2)對網(wǎng)絡(luò)節(jié)點進行整數(shù)編碼,生成侯選路徑集并對路徑進行整數(shù)編碼;
(3)根據(jù)侯選路徑集隨機生成初始化群體;
(4)計算群體中所有個體的適應度函數(shù)值f;
(5)根據(jù)本文描述的Tent混沌優(yōu)化選擇法進行選擇操作;
(6)若早熟,則自適應調(diào)整交叉概率Pc與變異概率Pm,群體交叉與變異并維護;
(7)如果迭代次數(shù)大于G或當前最優(yōu)解達到要求,則轉(zhuǎn)到步驟(8),否則轉(zhuǎn)到步驟(4);
(8)解碼并輸出群體中適應度最大的個體,此即全局最優(yōu)解,算法結(jié)束。
通過C#語言編寫的程序?qū)崿F(xiàn)本 QoS組播網(wǎng)絡(luò)路由算法[8],采用的網(wǎng)絡(luò)拓撲模型及網(wǎng)絡(luò)鏈路參數(shù)[4]如圖3與表1所示。
圖3 組播網(wǎng)絡(luò)拓撲結(jié)構(gòu)
QoS 約 束表 示 為 R(s,M,b,d,j,l),其 中 ,以 節(jié) 點 0為源節(jié)點 s,目的節(jié)點為集合 M={4,6,5}。設(shè)置組播具體要求:R(0,M,99,60,20,0.045),QoS 約束的權(quán)重參數(shù)(Wb,Wd,Wj,Wl,Wc)分別賦 值(1,1,1,1E-06),懲 罰 系數(shù)(rb,rd,rj,rl)分 別 取 值 (1,0.9,0.85,0.96),群 體 規(guī) 模 P=50,最大進化次數(shù)G=200,交叉概率初始值Pc及其增強系數(shù) α分別取0.85、0.05,變異概率初始值Pm及其增強系數(shù)β分別取0.05、0.01。以費用的最小值為目標函數(shù),用經(jīng)典遺傳算法和本文算法分別對組播路由計算進行仿真實驗。結(jié)果顯示,本文算法與經(jīng)典GA在相同環(huán)境下求解速度分別為12.512 635 s和 13.75 621 s, 本文算法明顯占優(yōu)。從圖4與圖5的收斂曲線比較可知,本算法能更快速收斂到全局最優(yōu)解且收斂后穩(wěn)定性很高。
表1 網(wǎng)絡(luò)鏈路參數(shù)
在解決QoS組播路由計算問題時,經(jīng)典遺傳算法的群體多樣性難以保證,易產(chǎn)生早熟現(xiàn)象,使搜索過早收斂于局部最優(yōu)解且收斂后不夠穩(wěn)定。為此,本文改良了經(jīng)典遺產(chǎn)算法,引入Tent映射混沌優(yōu)化選擇操作以及采用自適應的交叉與變異概率來處理群體早熟現(xiàn)象。仿真實驗表明,本算法性能良好,在收斂速度、最優(yōu)解質(zhì)量以及收斂后穩(wěn)定性等方面都很大的改善。
[1]Yuan Xin.Heuristic algorithms for muhiconstrained quality of-service routing[J].IEEE/ACM Transactions on Networking,2002,10(2):244-256.
[2]包海潔,盧輝斌.基于遺傳算法的QoS組播路由算法的改進[J].2008,34(4):1-3.
[3]王宇.基于遺傳算法的 QoS組播路由[D].成都:四川大學,2003.
[4]王軍,馬范援.基于遺傳算法的QoS組播路由算法的適應度函數(shù)改進探索[J].微型電腦,2008,24(8):12-14.
[5]鄒恩,劉澤華,方仕勇,等.基于混沌遺傳算法的組播路由優(yōu)化研究[J].計算機工程,2011,37(3):155-157.
[6]董勇,郭海敏.基于群體適應度方差的自適應混沌粒子群算法[J].計算機應用研究,2011,28(3):854-856.
[7]孫寶林,李臘元.基于遺傳算法的QoS多播路由優(yōu)化算法[J].計算機工程,2005,31(14):70-73.
[8]王小平,曹立明.遺傳算法一理論、應用與軟件實現(xiàn)[M].西安:西安交通大學出版社,2002.