本發(fā)明適用于網(wǎng)絡(luò)自愈系統(tǒng)的最優(yōu)路徑選擇問題,涉及一種基于深度學(xué)習(xí)的網(wǎng)絡(luò)最優(yōu)路徑選擇方法。
背景技術(shù):
隨著互聯(lián)網(wǎng)規(guī)模的快速增長,網(wǎng)絡(luò)底層的路由交換設(shè)備目前已經(jīng)達到了上萬臺的規(guī)模。與此同時,其相關(guān)網(wǎng)絡(luò)業(yè)務(wù)也變得越來越復(fù)雜。復(fù)雜的網(wǎng)絡(luò)業(yè)務(wù)也相應(yīng)地導(dǎo)致了各種復(fù)雜的網(wǎng)絡(luò)協(xié)議和網(wǎng)絡(luò)管理策略。當網(wǎng)絡(luò)中的故障出現(xiàn)時,調(diào)試網(wǎng)絡(luò)也變得越來越困難。網(wǎng)絡(luò)協(xié)議因素或者人為因素等都有可能成為引起不同網(wǎng)絡(luò)故障的原因。當網(wǎng)絡(luò)出現(xiàn)故障時,不僅會影響用戶體驗、導(dǎo)致服務(wù)不可用,嚴重時會導(dǎo)致整個網(wǎng)絡(luò)的癱瘓。因此,保障網(wǎng)絡(luò)的正常運行是保障網(wǎng)絡(luò)安全與穩(wěn)定工作的最重要的一環(huán)。在傳統(tǒng)故障維護中,通常需要網(wǎng)絡(luò)維護人員使用相關(guān)故障檢測工具去維護網(wǎng)絡(luò)。但隨著網(wǎng)絡(luò)設(shè)備的大量增加,僅僅借助人工去維護網(wǎng)絡(luò)故障將需要較大的成本,并且效率也會變得越來越低。為了能夠保證業(yè)務(wù)的安全運行,當故障出現(xiàn)時,人們需要一個更加成熟可靠的工具與策略去檢測網(wǎng)絡(luò)中的相關(guān)故障,并能夠自動地對故障進行識別、定位直至修復(fù)。
深度學(xué)習(xí)的概念主要來源于對人工神經(jīng)網(wǎng)絡(luò)的研究。上世紀五十年代提出的單層感知器是最簡單的神經(jīng)網(wǎng)絡(luò)。研究發(fā)現(xiàn),具有多層隱層的多層感知器是一種深度學(xué)習(xí)結(jié)構(gòu)。對神經(jīng)網(wǎng)絡(luò)而言,深度的意思是在整個神經(jīng)網(wǎng)絡(luò)中學(xué)習(xí)到的所有函數(shù)中非線性運算組合水平的數(shù)量,因此,深度神經(jīng)網(wǎng)絡(luò)的模型往往包含一個輸入層、一個輸出層、多個隱層;而當前神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)算法大部分是面向低層次的網(wǎng)絡(luò)結(jié)構(gòu),并將其稱為淺層神經(jīng)網(wǎng)絡(luò)。這種神經(jīng)網(wǎng)絡(luò)通常只包含一個輸入層、一個輸出層和一個隱層,并且,這兩類神經(jīng)網(wǎng)絡(luò)形式全都屬于機器學(xué)習(xí)的范疇。根據(jù)學(xué)習(xí)形式分類,可以將機器學(xué)習(xí)分為監(jiān)督學(xué)習(xí)、無監(jiān)督學(xué)習(xí)以及半監(jiān)督學(xué)習(xí)。
監(jiān)督學(xué)習(xí)主要是從已經(jīng)測得的訓(xùn)練數(shù)據(jù)集(包含標簽值)中學(xué)習(xí)到一個函數(shù),當新數(shù)據(jù)來臨時,能夠根據(jù)訓(xùn)練出來的函數(shù)對結(jié)果進行分類預(yù)測。其中,監(jiān)督學(xué)習(xí)的訓(xùn)練數(shù)據(jù)集要求必須有輸入和輸出,即特征值必須與標簽值對應(yīng)。而標簽值是人為標注的。監(jiān)督學(xué)習(xí)過程如圖1所示。
技術(shù)實現(xiàn)要素:
本發(fā)明針對現(xiàn)有技術(shù)的不足,提出了一種基于深度學(xué)習(xí)的網(wǎng)絡(luò)最優(yōu)路徑選擇方法,包括如下步驟:
步驟一:根據(jù)監(jiān)督數(shù)據(jù)集的獲取算法,對采集到的網(wǎng)絡(luò)的鏈路特征值進行打標簽操作,獲取監(jiān)督學(xué)習(xí)數(shù)據(jù)集;
步驟二:將步驟一獲取到的監(jiān)督學(xué)習(xí)數(shù)據(jù)集輸入到深度學(xué)習(xí)模型中進行訓(xùn)練,得到訓(xùn)練好的模型;
步驟三:將待測的鏈路數(shù)據(jù)輸入到步驟二訓(xùn)練好的模型中,通過最優(yōu)路徑選擇算法得到最優(yōu)路徑。
進一步地,所述步驟一具體包括以下子步驟:
(1)將網(wǎng)絡(luò)的所有可用路徑分為n組,每組n個,在每組中找到一條最優(yōu)的路徑。所述最優(yōu)路徑滿足:丟包率最小、端到端延遲最小、跳數(shù)最少、可用帶寬最大、吞吐率最大、抖動最??;最優(yōu)路徑的選擇方法具體為:
選擇k=6個權(quán)值目標,并且將鏈路上的路徑優(yōu)化的多目標權(quán)重排序順序規(guī)定為:丟包率>傳輸往返延遲>跳數(shù)>吞吐率>可用帶寬>延遲抖動。假設(shè)在qos路由的選擇目標中,p=(p1,p2,p3,...,pi,...,pnn)分別對應(yīng)于從源節(jié)點到目的節(jié)點的可用路徑,則目標函數(shù)f1(pi),f2(pi),f3(pi),f4(pi),f5(pi),f6(pi)分別代表可用路徑集p上的丟包率函數(shù)、傳輸往返延遲函數(shù)、跳數(shù)函數(shù)、吞吐率函數(shù)、可用帶寬函數(shù)、延遲抖動函數(shù)??捎寐窂郊痯上的最優(yōu)路徑應(yīng)同時滿足以下條件:
minf1(pi),minf2(pi),minf3(pi),maxf4(pi),maxf5(pi),minf6(pi)
在路徑選擇中,采用預(yù)計算的方式,分別計算出f1(pi),f2(pi),f3(pi),f4(pi),f5(pi),f6(pi)的大小且p=(p1,p2,p3,...,pi,...,pnn)。將6個目標構(gòu)造成一維數(shù)組r=[f1(pi),f2(pi),f3(pi),f4(pi),f5(pi),f6(pi)],ri則代表第i條路徑上包含6個目標的一維數(shù)組。其中ri[0],ri[1],ri[2],ri[3],ri[4],ri[5]分別代表著丟包率、傳輸往返延遲、跳數(shù)、吞吐率、可用帶寬、延遲抖動。
(2)在最優(yōu)路徑選擇過程中分別對每一個目標函數(shù)設(shè)置約束參數(shù),w,t,y,u,o,k分別對應(yīng)著任意兩條可行路徑的f1(pi),f2(pi),f3(pi),f4(pi),f5(pi),f6(pi)的約束允許范圍。將不滿足的路徑預(yù)先過濾掉。過濾后的路徑重新定義為p=(p1,p2,p3...pi...pw),w≤nn。
分別設(shè)置約束參數(shù):w、t、y、u、o、k、q,以此來獲得最優(yōu)路徑,其中參數(shù)q表示丟包率最小的路徑與其他路徑上的丟包率的差值。根據(jù)數(shù)據(jù)集的獲取算法獲取監(jiān)督學(xué)習(xí)數(shù)據(jù)集。
進一步地,所述數(shù)據(jù)集的獲取算法包括以下子步驟:
(1)假設(shè)可用路徑為nn條,定義rmin[0]為nn條路徑中丟包率最小的路徑。q代表著與rmin[0]的容差,首先計算所有路徑的ri[0]是否小于或等于rmin[0]+q,對于不滿足的r[0]所對應(yīng)的路徑將直接被過濾掉。重新規(guī)定符合條件的路徑條數(shù)為y條。
(2)假設(shè)ro為可用路徑中符合(1)中的某一條路徑,并將其賦予rs作為最優(yōu)路徑。
(3)參數(shù)i作為循環(huán)次數(shù),同時ri代表著第i條的路徑參數(shù)。首先計算rs[0]與ri[0]的絕對值大小,若不滿足w數(shù)值,則再進行rs[0]與ri[0]的大小比較。若rs[0]小于ri[0],則rs不變。其次再判斷i數(shù)值是否等于n,若等于n,則說明所有路徑都已經(jīng)經(jīng)過了計算判別,rs即為最優(yōu)路徑。若不等于n,則i加1,繼續(xù)進行下一輪的計算。若rs[0]大于ri[0],則將ri賦予rs并作為最新的最優(yōu)路徑。然后再判斷i數(shù)值是否等于n。
(4)計算rs[0]與ri[0]的絕對值大小,若滿足w數(shù)值,則開始對rs[1]與ri[1]的絕對值進行計算。若滿足t數(shù)值,則再進行rs[1]與ri[1]的大小比較。若rs[1]小于ri[1],則rs不變。其次再判斷i數(shù)值是否等于n,若等于n,則說明所有路徑都已經(jīng)經(jīng)過了計算判別,rs即為最優(yōu)路徑。若不等于n,則i加1,繼續(xù)進行下一輪的計算。若rs[1]大于ri[1],則將ri賦予rs并作為最新的最優(yōu)路徑。然后再判斷判斷i是否等于n。
(5)依次類比(3)、(4)步驟直至判斷到rs[5]與ri[5]的絕對值大小。
(6)若rs[5]等于ri[5]。則重新對rs[0]與ri[0]進行判斷,若兩者不相等,則進行rs[0]與ri[0]的大小。若rs[0]小于ri[0],則rs不變。其次再判斷i數(shù)值是否等于n,若等于n,則說明所有路徑都已經(jīng)經(jīng)過了計算判別,rs即為最優(yōu)路徑。若不等于n,則i加1,繼續(xù)進行下一輪的計算。
(7)依次類比(6)對之后的操作進行判定計算。
(8)當n等于i時,rs即為所有可用路徑中的最優(yōu)路徑,并將其標記為1,其余非最優(yōu)路徑則標記為0。
進一步地,所述步驟二中,深度學(xué)習(xí)模型具體為:4層lstm網(wǎng)絡(luò)層串式連接成一個學(xué)習(xí)模型。
進一步地,所述步驟三中最優(yōu)路徑選擇算法包括如下子步驟:
(1)假設(shè)通過網(wǎng)絡(luò)的模塊交互測得的可用路徑為x條,其中c=int(x/n)表示為向下取整,r=x%n表示為余數(shù),當計算出的r不等于0時,需要將數(shù)據(jù)重新構(gòu)造成n的倍數(shù)以用于深度學(xué)習(xí)模型的輸入。
(2)s表示每次經(jīng)過深度學(xué)習(xí)模型之后的最優(yōu)路徑的條數(shù)。當s不等于1時,將s賦值給x,并進行循環(huán)計算。當s等于1時,該路徑即為所有可用路徑中的最優(yōu)路徑。
本發(fā)明的有益效果是:本發(fā)明創(chuàng)新性的將深度學(xué)習(xí)的理論成功運用于網(wǎng)絡(luò)最優(yōu)路徑選擇的實踐上,并且取得了較好的表現(xiàn)效果,能夠提高網(wǎng)絡(luò)的整體運行效率,對今后智能化網(wǎng)絡(luò)的發(fā)展有一定的推動作用。
附圖說明
圖1為監(jiān)督學(xué)習(xí)過程;
圖2為數(shù)據(jù)集的獲取算法;
圖3為最優(yōu)路徑選擇算法。
具體實施方式
下面結(jié)合附圖對本發(fā)明作進一步的說明。
將網(wǎng)絡(luò)的所有可用路徑分為n組,每組n個,在每組中找到一條最優(yōu)的路徑。所述最優(yōu)路徑滿足:丟包率最小、端到端延遲最小、跳數(shù)最少、可用帶寬最大、吞吐率最大、抖動最??;最優(yōu)路徑的選擇方法具體為:
選擇k=6個權(quán)值目標,并且將鏈路上的路徑優(yōu)化的多目標權(quán)重排序順序規(guī)定為:丟包率>傳輸往返延遲>跳數(shù)>吞吐率>可用帶寬>延遲抖動。假設(shè)在qos路由的選擇目標中,p=(p1,p2,p3,...,pi,...,pnn)分別對應(yīng)于從源節(jié)點到目的節(jié)點的可用路徑,則目標函數(shù)f1(pi),f2(pi),f3(pi),f4(pi),f5(pi),f6(pi)分別代表可用路徑集p上的丟包率函數(shù)、傳輸往返延遲函數(shù)、跳數(shù)函數(shù)、吞吐率函數(shù)、可用帶寬函數(shù)、延遲抖動函數(shù)??捎寐窂郊痯上的最優(yōu)路徑應(yīng)同時滿足以下條件:
minf1(pi),minf2(pi),minf3(pi),maxf4(pi),maxf5(pi),minf6(pi)
在路徑選擇中,采用預(yù)計算的方式,分別計算出f1(pi),f2(pi),f3(pi),f4(pi),f5(pi),f6(pi)的大小且p=(p1,p2,p3,...,pi,...,pnn)。將6個目標構(gòu)造成一維數(shù)組r=[f1(pi),f2(pi),f3(pi),f4(pi),f5(pi),f6(pi)],ri則代表第i條路徑上包含6個目標的一維數(shù)組。其中ri[0],ri[1],ri[2],ri[3],ri[4],ri[5]分別代表著丟包率、傳輸往返延遲、跳數(shù)、吞吐率、可用帶寬、延遲抖動。
在最優(yōu)路徑選擇過程中分別對每一個目標函數(shù)都設(shè)置了約束參數(shù),w,t,y,u,o,k分別對應(yīng)著任意兩條可行路徑的f1(pi),f2(pi),f3(pi),f4(pi),f5(pi),f6(pi)的約束允許范圍。將不滿足的路徑預(yù)先過濾掉。過濾后的路徑重新定義為p=(p1,p2,p3...pi...pw),w≤nn。
分別設(shè)置約束參數(shù):w、t、y、u、o、k、q,以此來獲得最優(yōu)路徑,其中參數(shù)q表示丟包率最小的路徑與其他路徑上的丟包率的差值。根據(jù)數(shù)據(jù)集的獲取算法獲取監(jiān)督學(xué)習(xí)數(shù)據(jù)集。數(shù)據(jù)集的獲取算法描述如圖2所示,包括如下子步驟:
(1)假設(shè)可用路徑為nn條,定義rmin[0]為nn條路徑中丟包率最小的路徑。q代表著與rmin[0]的容差,首先計算所有路徑的ri[0]是否小于或等于rmin[0]+q,對于不滿足的r[0]所對應(yīng)的路徑將直接被過濾掉。重新規(guī)定符合條件的路徑條數(shù)為y條。
(2)假設(shè)ro為可用路徑中符合(1)中的某一條路徑,并將其賦予rs作為最優(yōu)路徑。
(3)參數(shù)i作為循環(huán)次數(shù),同時ri代表著第i條的路徑參數(shù)。首先計算rs[0]與ri[0]的絕對值大小,若不滿足w數(shù)值,則再進行rs[0]與ri[0]的大小比較。若rs[0]小于ri[0],則rs不變。其次再判斷i數(shù)值是否等于n,若等于n,則說明所有路徑都已經(jīng)經(jīng)過了計算判別,rs即為最優(yōu)路徑。若不等于n,則i加1,繼續(xù)進行下一輪的計算。若rs[0]大于ri[0],則將ri賦予rs并作為最新的最優(yōu)路徑。然后再判斷i數(shù)值是否等于n。
(4)計算rs[0]與ri[0]的絕對值大小,若滿足w數(shù)值,則開始對rs[1]與ri[1]的絕對值進行計算。若滿足t數(shù)值,則再進行rs[1]與ri[1]的大小比較。若rs[1]小于ri[1],則rs不變。其次再判斷i數(shù)值是否等于n,若等于n,則說明所有路徑都已經(jīng)經(jīng)過了計算判別,rs即為最優(yōu)路徑。若不等于n,則i加1,繼續(xù)進行下一輪的計算。若rs[1]大于ri[1],則將ri賦予rs并作為最新的最優(yōu)路徑。然后再判斷判斷i是否等于n。
(5)依次類比(3)、(4)步驟直至判斷到rs[5]與ri[5]的絕對值大小。
(6)若rs[5]等于ri[5]。則重新對rs[0]與ri[0]進行判斷,若兩者不相等,則進行rs[0]與ri[0]的大小。若rs[0]小于ri[0],則rs不變。其次再判斷i數(shù)值是否等于n,若等于n,則說明所有路徑都已經(jīng)經(jīng)過了計算判別,rs即為最優(yōu)路徑。若不等于n,則i加1,繼續(xù)進行下一輪的計算。
(7)依次類比(6)對之后的操作進行判定計算。
(8)當n等于i時,rs即為所有可用路徑中的最優(yōu)路徑,并將其標記為1,其余非最優(yōu)路徑則標記為0。
以上獲取到的數(shù)據(jù)集即是可用于訓(xùn)練深度學(xué)習(xí)模型的數(shù)據(jù)集,該數(shù)據(jù)集包含打過標簽的特征值,我們基于該數(shù)據(jù)集對深度學(xué)習(xí)模型進行訓(xùn)練,并將訓(xùn)練后的深度學(xué)習(xí)模型用于最優(yōu)路徑的選擇,根據(jù)最優(yōu)路徑選擇策略得到最優(yōu)路徑。最優(yōu)路徑選擇算法如圖3所示,包括如下子步驟:
(1)假設(shè)通過網(wǎng)絡(luò)的模塊交互測得的可用路徑為x條,其中c=int(x/n)表示為向下取整,r=x%n表示為余數(shù),當計算出的r不等于0時,需要將數(shù)據(jù)重新構(gòu)造成n的倍數(shù)以用于深度學(xué)習(xí)模型的輸入。
(2)s表示每次經(jīng)過深度學(xué)習(xí)模型之后的最優(yōu)路徑的條數(shù)。當s不等于1時,將s賦值給x,并進行循環(huán)計算。當s等于1時,該路徑即為所有可用路徑中的最優(yōu)路徑。
經(jīng)過實驗驗證,4層lstm網(wǎng)絡(luò)的深度學(xué)習(xí)模型經(jīng)過訓(xùn)練之后,準確率可以達到93%左右。