確定最優(yōu)路徑的方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本申請涉及通信網(wǎng)絡(luò)技術(shù)領(lǐng)域,尤其涉及確定最優(yōu)路徑的方法及裝置。
【背景技術(shù)】
[0002] 在通信網(wǎng)絡(luò)中,吞吐量決定了數(shù)據(jù)傳輸?shù)乃俣龋瑸榱耸沟脗鬏數(shù)臄?shù)據(jù)可以最快地 抵達(dá)目的地,網(wǎng)絡(luò)節(jié)點之間的通信鏈路吞吐量是一個重要的考慮因素,即最短路徑問題中, 路徑權(quán)值的一個度量。然而在一個龐大的數(shù)據(jù)通信網(wǎng)絡(luò)中,當(dāng)一味地尋找大吞吐量的路徑 去進(jìn)行傳輸,久而久之必然會使得某些鏈路產(chǎn)生網(wǎng)絡(luò)擁堵,網(wǎng)絡(luò)中的某些服務(wù)器負(fù)載過大, 而導(dǎo)致網(wǎng)絡(luò)部分癱瘓。
[0003] 目前,對于使用最短路徑算法思想且兼顧通信網(wǎng)絡(luò)中的負(fù)載均衡的問題,已發(fā)現(xiàn) 的解決方法中最常見的是根據(jù)最短路徑算法返回的最優(yōu)路徑結(jié)果,結(jié)合網(wǎng)絡(luò)當(dāng)前負(fù)載狀況 調(diào)整路徑權(quán)值的方法。例如:
[0004] 一種是,首先利用最短路徑算法,以某種網(wǎng)絡(luò)使用者關(guān)心的判據(jù)為權(quán)值(如路徑 長度、路徑上節(jié)點的負(fù)載之和等)得到節(jié)點間的最短路徑和次短路徑的信息,然后按某種 改進(jìn)后的啟發(fā)式算法,用同樣待定的判據(jù)和方法更新和處理最短路徑和次短路徑上節(jié)點的 信息,從中選擇一條作為新的最短路徑。
[0005] 另一種是,首先假定所有的路徑權(quán)值相同且為1,計算出最優(yōu)路徑,然后為每一個 路徑根據(jù)負(fù)載等情況設(shè)置一個參數(shù),通過這個參數(shù)修改初始的路徑權(quán)值,進(jìn)而使得負(fù)載高 的路徑權(quán)值變大,從最初所計算的路徑中選擇按照所改變的鏈路代價仍最佳的路徑。
[0006] 上述方法均是將最短路徑算法返回的所有路徑根據(jù)當(dāng)前網(wǎng)絡(luò)負(fù)載狀況進(jìn)行進(jìn)一 步篩選。但是其存在如下缺點:當(dāng)系統(tǒng)每有一個訪問請求,都需要花時間篩選最優(yōu)路徑。
【發(fā)明內(nèi)容】
[0007] 本申請實施例提供確定最優(yōu)路徑的方法及裝置。
[0008] 本申請的技術(shù)方案是這樣實現(xiàn)的:
[0009] -種確定最優(yōu)路徑的方法,該方法包括:
[0010] 根據(jù)網(wǎng)絡(luò)節(jié)點的狀態(tài)參數(shù)以及網(wǎng)絡(luò)鏈路的狀態(tài)參數(shù)構(gòu)造網(wǎng)絡(luò)鏈路的代價函數(shù),并 為各網(wǎng)絡(luò)節(jié)點的狀態(tài)參數(shù)和網(wǎng)絡(luò)鏈路的狀態(tài)參數(shù)設(shè)置影響因子;
[0011] 采用遺傳算法為所述代價函數(shù)中的各影響因子尋找最優(yōu)解;
[0012] 將各影響因子的最優(yōu)解發(fā)送給網(wǎng)絡(luò)中的各節(jié)點,以使得:網(wǎng)絡(luò)中的各節(jié)點在接收 到數(shù)據(jù)訪問請求時,根據(jù)各影響因子的最優(yōu)解及所述代價函數(shù)計算本節(jié)點到目的節(jié)點的最 優(yōu)路徑。
[0013] 一種確定最優(yōu)路徑的裝置,該裝置包括:
[0014] 代價函數(shù)構(gòu)造模塊:根據(jù)網(wǎng)絡(luò)節(jié)點的狀態(tài)參數(shù)以及網(wǎng)絡(luò)鏈路的狀態(tài)參數(shù)構(gòu)造網(wǎng)絡(luò) 鏈路的代價函數(shù),并為各網(wǎng)絡(luò)節(jié)點的狀態(tài)參數(shù)和網(wǎng)絡(luò)鏈路的狀態(tài)參數(shù)設(shè)置影響因子;
[0015] 遺傳算法運行模塊:采用遺傳算法為所述代價函數(shù)中的各影響因子尋找最優(yōu)解;
[0016] 影響因子發(fā)送模塊:將各影響因子的最優(yōu)解發(fā)送給網(wǎng)絡(luò)中的各節(jié)點,以使得:網(wǎng) 絡(luò)中的各節(jié)點在接收到數(shù)據(jù)訪問請求時,根據(jù)各影響因子的最優(yōu)解及所述代價函數(shù)計算本 節(jié)點到目的節(jié)點的最優(yōu)路徑。
[0017] 所述遺傳算法運行模塊采用遺傳算法為代價函數(shù)中的各影響因子尋找最優(yōu)解包 括:
[0018] 預(yù)先將各影響因子構(gòu)成一個染色體;
[0019] 定義染色體的適應(yīng)度為該染色體對應(yīng)的網(wǎng)絡(luò)平均響應(yīng)時間的倒數(shù);
[0020] 對每一代種群中的染色體進(jìn)行選擇、交叉、變異操作;
[0021] 當(dāng)滿足迭代結(jié)束條件時,將最后一代種群中的適應(yīng)度最強(qiáng)的染色體作為最優(yōu)解。
[0022] 所述遺傳算法運行模塊采用的迭代結(jié)束條件為:
[0023] 迭代總次數(shù)達(dá)到預(yù)設(shè)迭代次數(shù)閾值;
[0024] 或者,連續(xù)預(yù)設(shè)代種群中的適應(yīng)度最強(qiáng)的染色體的網(wǎng)絡(luò)平均響應(yīng)時間都小于預(yù)設(shè) 網(wǎng)絡(luò)平均響應(yīng)時間閾值。
[0025] 所述遺傳算法運行模塊對每一代種群中的染色體進(jìn)行選擇、交叉、變異操作進(jìn)一 步包括:
[0026] 當(dāng)對一代種群中的染色體進(jìn)行變異操作后,以前一代種群中適應(yīng)度最強(qiáng)的染色體 替換當(dāng)前代種群中適應(yīng)度最弱的染色體。
[0027] 所述代價函數(shù)構(gòu)造模塊根據(jù)網(wǎng)絡(luò)節(jié)點的狀態(tài)參數(shù)包括:
[0028] 根據(jù)網(wǎng)絡(luò)節(jié)點的CPU參數(shù)、網(wǎng)絡(luò)節(jié)點的內(nèi)存參數(shù)、網(wǎng)絡(luò)節(jié)點的連接數(shù)參數(shù)之一或 任意組合;
[0029] 根據(jù)網(wǎng)絡(luò)鏈路的狀態(tài)參數(shù)包括:根據(jù)網(wǎng)絡(luò)鏈路的帶寬參數(shù)、網(wǎng)絡(luò)鏈路的吞吐量參 數(shù)之一或組合。
[0030] 所述代價函數(shù)構(gòu)造模塊構(gòu)造的網(wǎng)絡(luò)鏈路的代價函數(shù)為:
[0033] 其中,i,j為網(wǎng)絡(luò)中任意兩個相鄰的節(jié)點的標(biāo)號,Cij為節(jié)點i、j之間的網(wǎng)絡(luò)鏈路 的代價函數(shù);
[0034] NETbwi為節(jié)點i的可用網(wǎng)絡(luò)帶寬;
[0035] NETthrij為節(jié)點i、j之間的網(wǎng)絡(luò)鏈路的吞吐量;
[0036] LoadCPUj為節(jié)點j的CPU的占用率;
[0037] Tcpuj為節(jié)點j的CPU熱點閾值;
[0038] LoadMEMj為節(jié)點j的內(nèi)存占用率;
[0039] Tmemj為節(jié)點j的內(nèi)存熱點閾值;
[0040] LoadNETj為節(jié)點j的帶寬占用率;
[0041] Tnetj為節(jié)點j的帶寬熱點閾值;
[0042] LoadCONj為節(jié)點j的連接數(shù)占用率;
[0043] Tconj為節(jié)點j的連接數(shù)熱點閾值;
[0044] 凡;》,為節(jié)點j的CPU影響因子;
[0045] 為節(jié)點j的內(nèi)存影響因子;
[0046] 為節(jié)點j的帶寬影響因子;
[0047] P 為節(jié)點j的連接數(shù)影響因子;
[0048] a為第一負(fù)載均衡影響因子;
[0049] 0為第二負(fù)載均衡影響因子。
[0050]且,
[0054] A,,、、P conJ、a 和 0 的精度=1.0 X 10' n 為大于 0 的正整數(shù)。
[0055] 所述遺傳算法運行模塊對每一代種群中的染色體進(jìn)行選擇、交叉、變異操作包 括:
[0056] 當(dāng)對一代種群的交叉操作或者變異操作結(jié)束后,對于本次迭代過程的交叉操作或 者變異操作后得到的種群中的每一個體:
[0057] 計算該個體中的前四個基因、P _j的和值suml,若suml不等 于1,則對于該四個基因中的每個基因,將該基因更新為:該基因與suml的倒數(shù)的乘積;
[0058] 計算該個體中的后兩個基因a、|3的和值sum2,若sum2不為1. 0,則對于該后兩 個基因中的每個基因,將該基因更新為:該基因與sum2的倒數(shù)的乘積。
[0059] 所述遺傳算法運行模塊將該基因更新為:該基因與sum2的倒數(shù)的乘積之后進(jìn)一 步包括:
[0060] 判斷更新后的個體中的基因是否都滿足預(yù)設(shè)精度要求,若不滿足,則:
[0061] 對于該更新后的個體中的前四個基因,對不滿足精度要求的基因進(jìn)行四舍五入處 理,設(shè)A;?,、、Aw,、P _』四舍五入前的值分別為X i、x2、x3、X4,四舍五入后的值分 別為 y"l、y"2、y"3、5^4,計算 zI- X l_y"l,Z2- X2_y2,Z3- X3_y3,Z4- X4_y4,計算 Zmax-Kiax (zJ,z2,z3,Z4)和 Zmin=min(zp z2,z3,Z4),令 Ap",-少1、72、A,內(nèi),_ Pc〇nj=y4, 若 ZdZfZfZ4= 0,則保持 、A,、Aw,、P 的值不變;若 Z Jzdzfz4 =預(yù)設(shè) 精度1.0\10'則將2_對應(yīng)的基因值增加1.0\10'其它基因值不變;若21+ 22+23+24 =-1.0 X KTn,則將Zmin對應(yīng)的基因值減少1.0 X KTn,其它基因值不變;
[0062] 對于該更新后的個體中的后兩個基因a、0,對不滿足精度要求的基因進(jìn)行四舍 五入處理,設(shè)a、0四舍五入前的值分別為^、X6,四舍五入后的值分別為y5、y6,計算Z5 -X5_y5,Z6- X6_y6,計算 Z max-胍X (Z5,Z6)和 Z min-mill(Z5,Z6),令 Cl-y5、|3 -y6, 若z5+z6= 0,則a、0的值保持不變;若Z 5+z6= 1.0 X 10'則將z' max對應(yīng)的基因值增加 1.0 X KTn,另一基因值不變;若z5+z6= -1.0 X 10'則將Zmin對應(yīng)的基因值減少1.0 X l(Tn, 另一基因值不變。
[0063] 本申請實施例中,根據(jù)網(wǎng)絡(luò)節(jié)點的狀態(tài)參數(shù)以及網(wǎng)絡(luò)鏈路的狀態(tài)參數(shù)構(gòu)造網(wǎng)絡(luò)鏈 路的代價函數(shù),并為各網(wǎng)絡(luò)節(jié)點的狀態(tài)參數(shù)和網(wǎng)絡(luò)鏈路的狀態(tài)參數(shù)設(shè)置影響因子,采用遺 傳算法預(yù)先為所述代價函數(shù)中的各影響因子尋找最優(yōu)解,從而在網(wǎng)絡(luò)節(jié)點接收到訪問請求 后,可以直接利用已經(jīng)求得的最優(yōu)解計算出最優(yōu)路徑,提高了確定真實最優(yōu)路徑的效率。
【附圖說明】
[0064] 圖1為本申請一實施例提供的確定最優(yōu)路徑的方法流程圖;
[0065]圖2為本申請一實施例提供的通過遺傳算法計算影響因子的最優(yōu)解的方法流程 圖;
[0066] 圖3為本申請實施例提供的遺傳算法的運行過程流程圖;
[0067]圖4為本申請實施例提供的對每代種群進(jìn)行修正的方法流程圖;
[0068]圖5為本申請實施例提供的利用Xbest計算最優(yōu)路徑的方法流程圖;
[0069]圖6為本申請實施例提供的確定最優(yōu)路徑的裝置的組成示意圖。
【具體實施方式】
[0070] 下面結(jié)合附圖及具體實施例對本發(fā)明再作進(jìn)一步詳細(xì)的說明。
[0071]圖1為本申請一實施例提供的確定最優(yōu)路徑的方法流程圖,其具體步驟如下:
[0072] 步驟101 :根據(jù)網(wǎng)絡(luò)節(jié)點的狀態(tài)參數(shù)以及網(wǎng)絡(luò)鏈路的狀態(tài)參數(shù)構(gòu)造網(wǎng)絡(luò)鏈路的代 價函數(shù),并為各網(wǎng)絡(luò)節(jié)點的狀態(tài)參數(shù)和網(wǎng)絡(luò)鏈路的狀態(tài)參數(shù)設(shè)置影響因子。
[0073] 步驟102:采用遺傳算法為代價函數(shù)中的各影響因子尋找最優(yōu)解。
[0074] 步驟103:將