劉 洋,王麗娜
1) 北京科技大學(xué)計(jì)算機(jī)與通信工程學(xué)院,北京 100083 2) 北京科技大學(xué)順德研究生院,佛山 528300
在6G愿景下,地面通信網(wǎng)絡(luò)與衛(wèi)星通信網(wǎng)絡(luò)相互補(bǔ)充,構(gòu)建跨地域、跨空域、跨海域的空?天?海?地一體化網(wǎng)絡(luò),將實(shí)現(xiàn)真正意義上的全球無縫覆蓋[1].低軌衛(wèi)星通信相較中、高軌衛(wèi)星通信,傳輸時(shí)延短、路徑損耗小,多個(gè)衛(wèi)星組成的星座可以實(shí)現(xiàn)真正的全球覆蓋.因此,低軌衛(wèi)星可在全球范圍內(nèi)提供快速且低延遲的互聯(lián)網(wǎng)接入服務(wù).星上路由技術(shù)是5G/6G新基建下衛(wèi)星通信的關(guān)鍵技術(shù)之一,利用星間路由算法可以對衛(wèi)星網(wǎng)絡(luò)中數(shù)據(jù)的實(shí)時(shí)傳輸進(jìn)行性能優(yōu)化,保證數(shù)據(jù)的高效傳輸.路由算法與智能感知技術(shù)融合,可以提升路由的分析和決策能力.因此,本文將針對低軌衛(wèi)星網(wǎng)絡(luò)的智能感知路由算法進(jìn)行研究.
由于衛(wèi)星網(wǎng)路拓?fù)浣Y(jié)構(gòu)是動(dòng)態(tài)變化的,根據(jù)應(yīng)對拓?fù)浣Y(jié)構(gòu)動(dòng)態(tài)變化的方法可將衛(wèi)星路由算法分為兩大類:靜態(tài)虛擬拓?fù)涞男情g路由算法和動(dòng)態(tài)星間路由算法.靜態(tài)虛擬拓?fù)涞男情g路由算法基于系統(tǒng)周期劃分思想,將衛(wèi)星網(wǎng)絡(luò)結(jié)構(gòu)由動(dòng)態(tài)轉(zhuǎn)化為靜態(tài),再在靜態(tài)結(jié)構(gòu)下設(shè)計(jì)協(xié)議進(jìn)行路由[2].文獻(xiàn)[3]根據(jù)衛(wèi)星的建鏈周期進(jìn)行周期劃分,進(jìn)而在每個(gè)周期內(nèi)進(jìn)行時(shí)隙規(guī)劃,研究了時(shí)分體制的指向性星間鏈路網(wǎng)絡(luò)的路由算法,分別以跳數(shù)和時(shí)延作為約束條件進(jìn)行路由選擇.文獻(xiàn)[4]將整個(gè)系統(tǒng)周期劃分為固定長度的拓?fù)湓O(shè)計(jì)時(shí)間片,基于時(shí)延隊(duì)列信息進(jìn)行路由,提高了導(dǎo)航加權(quán)精度因子.文獻(xiàn)[5]借鑒了虛擬拓?fù)涞乃枷?,在此基礎(chǔ)上提出了一種能量感知的路由方案,根據(jù)衛(wèi)星的不同能級采取不同措施保證數(shù)據(jù)傳輸,降低丟包率.上述這種將動(dòng)態(tài)的衛(wèi)星網(wǎng)絡(luò)拓?fù)浒匆欢ǖ臅r(shí)間間隔劃分為靜態(tài)的網(wǎng)絡(luò)拓?fù)湫蛄羞M(jìn)行分析處理的方法,由于事先建立路由表,衛(wèi)星不需實(shí)時(shí)計(jì)算,協(xié)議開銷較小.但該種方式未考慮路由表之間切換時(shí)的銜接問題[6],并且由于路由表固定,難以應(yīng)對衛(wèi)星節(jié)點(diǎn)故障、擁塞,無法確保路由選擇的服務(wù)質(zhì)量 (Quality of service, QoS).
動(dòng)態(tài)星間路由算法根據(jù)實(shí)時(shí)鏈路狀態(tài)信息進(jìn)行計(jì)算,能夠更好應(yīng)對衛(wèi)星網(wǎng)絡(luò)拓?fù)渥兓途W(wǎng)絡(luò)流量變化[7].機(jī)器學(xué)習(xí)技術(shù)可以自動(dòng)提取訓(xùn)練集中數(shù)據(jù)與標(biāo)簽之間的特征,對鏈路狀態(tài)進(jìn)行實(shí)時(shí)分析,在動(dòng)態(tài)路由優(yōu)化方面相對于傳統(tǒng)的啟發(fā)式方法顯示出巨大的優(yōu)勢.文獻(xiàn)[8]提出適用于低軌衛(wèi)星的機(jī)器學(xué)習(xí)路由方法,將各衛(wèi)星節(jié)點(diǎn)的負(fù)載狀態(tài)輸入置信域策略梯度優(yōu)化神經(jīng)網(wǎng)絡(luò),實(shí)現(xiàn)負(fù)載均衡,但該算法只考慮了一種QoS指標(biāo).文獻(xiàn)[9]提出一種基于機(jī)器學(xué)習(xí)的衛(wèi)星網(wǎng)絡(luò)路由機(jī)制,路由的起始節(jié)點(diǎn)、目標(biāo)節(jié)點(diǎn)、各QoS度量等參數(shù)作為神經(jīng)網(wǎng)絡(luò)的輸入,輸出一條路徑.由于其只能從訓(xùn)練集固定標(biāo)簽中選取路徑,若路徑中某一節(jié)點(diǎn)出現(xiàn)故障,則會(huì)造成擁塞.文獻(xiàn)[10]通過采用動(dòng)態(tài)貪婪系數(shù),對傳統(tǒng)Q-Learning強(qiáng)化學(xué)習(xí)算法進(jìn)行改進(jìn),改善了容易陷入局部收斂的問題,但是該算法對于目標(biāo)節(jié)點(diǎn)獎(jiǎng)勵(lì)函數(shù)的設(shè)置并不明確.文獻(xiàn)[11]提出了一種基于深度強(qiáng)化學(xué)習(xí)的軟件定義路由優(yōu)化方法,基于實(shí)時(shí)鏈路狀態(tài),通過不斷地輸出下一跳路由構(gòu)成整個(gè)數(shù)據(jù)傳輸?shù)穆窂絒12].深度強(qiáng)化學(xué)習(xí)算法能夠自適應(yīng)動(dòng)態(tài)變化的網(wǎng)絡(luò)環(huán)境[13],但當(dāng)衛(wèi)星網(wǎng)絡(luò)規(guī)模較大時(shí),很難直接輸出滿足復(fù)雜約束的路徑[14],會(huì)導(dǎo)致算法收斂時(shí)間較長.
近年來,一些研究基于流量或者星間鏈路質(zhì)量進(jìn)行實(shí)時(shí)感知,做出路由決策.文獻(xiàn)[15]通過感知鄰居節(jié)點(diǎn)的隊(duì)列長度和能量進(jìn)行路由決策,在降低衛(wèi)星能耗的同時(shí)減輕網(wǎng)絡(luò)的局部擁塞.但該研究仿真部分只用樹莓派搭建了6個(gè)節(jié)點(diǎn),未能很好地模擬實(shí)際星間鏈路情況.文獻(xiàn)[16]根據(jù)衛(wèi)星之間的鏈路狀態(tài)信息確定水平和垂直傳輸?shù)奶鴶?shù)和方向,對遇到故障節(jié)點(diǎn)的不同情況進(jìn)行分析,但由于只以最短路徑為目標(biāo),會(huì)導(dǎo)致數(shù)據(jù)集中在同一條路徑傳輸,容易造成擁塞.將智能感知與路由相結(jié)合是未來重要研究方向,可以為路由選擇提供保障.
針對靜態(tài)衛(wèi)星網(wǎng)絡(luò)路由算法實(shí)時(shí)性差以及動(dòng)態(tài)傳統(tǒng)神經(jīng)網(wǎng)絡(luò)路由算法計(jì)算復(fù)雜度高等特點(diǎn),為了實(shí)時(shí)感知星間鏈路的多種QoS因素,本文提出基于樹突神經(jīng)網(wǎng)絡(luò)的低軌衛(wèi)星(Low-Earth orbit,LEO)智能感知路由算法.該算法首先利用蟻群算法做出路由選擇,收集輸出結(jié)果,進(jìn)而構(gòu)造訓(xùn)練集,訓(xùn)練樹突神經(jīng)網(wǎng)絡(luò)(Dendrite net,DD).在星間鏈路態(tài)勢感知階段,對衛(wèi)星之間的可視性約束進(jìn)行分析,以此為前提得出當(dāng)前時(shí)刻各個(gè)衛(wèi)星之間的建鏈狀態(tài);設(shè)置鏈路監(jiān)測周期,周期性獲取星間鏈路的建鏈情況,實(shí)現(xiàn)星間鏈路態(tài)勢感知;在神經(jīng)網(wǎng)絡(luò)鏈路質(zhì)量感知階段,將衛(wèi)星節(jié)點(diǎn)之間的距離、時(shí)延、時(shí)延抖動(dòng)、丟包率等鏈路狀態(tài)信息作為樹突網(wǎng)絡(luò)的輸入?yún)?shù),訓(xùn)練好的樹突神經(jīng)網(wǎng)絡(luò)通過對鏈路狀態(tài)信息進(jìn)行處理,輸出滿足多種QoS因素的下一跳路由選擇的評估值矩陣;在路由決策階段將評估值矩陣的倒數(shù)作為鄰接矩陣通過迪杰斯特拉(Dijkstra)算法,得出源節(jié)點(diǎn)和目的節(jié)點(diǎn)之間的初始路徑;最后周期性監(jiān)測衛(wèi)星網(wǎng)絡(luò)拓?fù)?,?shí)時(shí)修正初始路徑.
本文研究的低軌衛(wèi)星網(wǎng)絡(luò)采用Walker星座,Walker星座由高度和傾角均相同的圓軌道衛(wèi)星組成,星座中所有衛(wèi)星呈均勻?qū)ΨQ分布,同一個(gè)軌道面內(nèi)衛(wèi)星分布均勻,不同軌道面間衛(wèi)星的相位持一定的相對關(guān)系[17].Walker星座衛(wèi)星軌道可以由三個(gè)參數(shù) (N,P,F)表示:N表示衛(wèi)星總數(shù)、P表示軌道個(gè)數(shù)、F表示相位因子,則Walker星座中編號為i的衛(wèi)星其升交點(diǎn)赤經(jīng)W和升交點(diǎn)角距ui分別為:
其中,S為每個(gè)軌道平面上的衛(wèi)星數(shù),Pi為衛(wèi)星所在軌道平面的編號,Ni為衛(wèi)星在軌道平面內(nèi)的編號.本文所設(shè)置的低軌衛(wèi)星網(wǎng)絡(luò)基本星座構(gòu)型為Walker(64/8/1),軌道高度為 800 km,軌道傾角為68.5°,星座軌道面的升交點(diǎn)赤經(jīng)均分0~360°范圍.通過 Satellite Tool Kit(STK)軟件仿真,得到該構(gòu)型的星座圖以及其對應(yīng)的星下點(diǎn)軌跡圖分別如圖1和圖2所示.
圖2 星下點(diǎn)軌跡圖Fig.2 Under-satellite point trajectory diagram
星間鏈路狀態(tài)變化頻繁,無論是星間鏈路誤碼率過高導(dǎo)致的鏈路中斷、星間相對運(yùn)動(dòng)導(dǎo)致的鏈路中斷與重連或是衛(wèi)星節(jié)點(diǎn)的失效,均將使網(wǎng)絡(luò)拓?fù)涮幱诜欠€(wěn)定的狀態(tài).因此,星間路由算法應(yīng)具有動(dòng)態(tài)感知衛(wèi)星網(wǎng)絡(luò)拓?fù)湟约霸谧兓負(fù)湎伦赃m應(yīng)重路由的能力[18].本文算法主要分為三個(gè)階段:星間鏈路態(tài)勢感知階段、星間鏈路質(zhì)量感知階段、路由決策階段.基于樹突神經(jīng)網(wǎng)路的低軌衛(wèi)星智能感知路由算法流程圖如圖3所示.
圖3 算法流程圖Fig.3 Algorithm flowchart
在星間鏈路的態(tài)勢感知階段,以衛(wèi)星之間的可視性約束為前提并設(shè)置鏈路狀態(tài)監(jiān)測周期及時(shí)體察鏈路狀態(tài),使得星間路由能夠?qū)r(shí)變衛(wèi)星網(wǎng)絡(luò)的拓?fù)渥龀鲅杆僬{(diào)整.
2.1.1 星間鏈路建鏈條件
衛(wèi)星之間可視是星間建鏈的基礎(chǔ),接下來將對星間鏈路建立的條件進(jìn)行分析.衛(wèi)星之間能否建鏈主要受以下兩個(gè)方面的因素影響:
(1)衛(wèi)星之間幾何可視,即衛(wèi)星之間的直線連線不受地球和大氣層遮擋,是建立星間鏈路的前提條件;
假設(shè)地球半徑為Re,考慮到對流層和電離層等外界因素對信號的影響,設(shè)大氣層厚度為h,衛(wèi)星Si的軌道高度為di, 衛(wèi)星Sj的軌道高度為dj,星間鏈路距離為Lij.如圖4為某時(shí)刻大氣層與衛(wèi)星Si和Sj的星 間鏈 路相 切的 情況 , βij為 衛(wèi)星Si相 對于Sj的俯仰角, βji為衛(wèi)星Sj相對于Si的俯仰角.此時(shí)為衛(wèi)星之間幾何可視的邊界條件,因此建立星間鏈路的幾何可視約束為:
圖4 某時(shí)刻衛(wèi)星相對位置示意圖Fig.4 Image of the relative position of the satellite at a certain moment
其中, θji為衛(wèi)星Sj相對于Si的俯仰角,將式(2)轉(zhuǎn)化為用距離Lij表示:
其中,Lij表 示衛(wèi)星Si和Sj之間的距離.
(2)衛(wèi)星之間天線可視,即兩顆衛(wèi)星均處于對方天線波束掃描范圍內(nèi)時(shí)才能完成信號的發(fā)送與接收,是建立星間鏈路的根本條件.設(shè)衛(wèi)星Si和Sj的波束掃描范圍分別為 γi、 γj,為滿足天線可視約束, θji應(yīng)滿足如下條件:
將式(4)轉(zhuǎn)化為用距離表示:
綜合分析衛(wèi)星之間的幾何可視和天線可視,得出任意兩顆衛(wèi)星可以建立星間鏈路的充分必要條件為:
2.1.2 星間鏈路監(jiān)測周期
若低軌衛(wèi)星繞地運(yùn)行周期為T,單軌道內(nèi)有N顆衛(wèi)星,則T/N即為LEO衛(wèi)星網(wǎng)絡(luò)的拓?fù)渥兓芷赥s.即最多經(jīng)過Ts時(shí)間將有一顆衛(wèi)星進(jìn)入極地地區(qū),進(jìn)而衛(wèi)星網(wǎng)絡(luò)邏輯拓?fù)浒l(fā)生變化[19].本文以Ts為鏈路監(jiān)測周期,超出鏈路監(jiān)測周期時(shí)應(yīng)重新計(jì)算衛(wèi)星節(jié)點(diǎn)之間的建鏈狀態(tài),對路由進(jìn)行修正,避免鏈路切換導(dǎo)致數(shù)據(jù)包的丟失.
在星間鏈路質(zhì)量感知階段需要對收集的衛(wèi)星網(wǎng)絡(luò)鏈路狀態(tài)參數(shù)進(jìn)行客觀評估,以綜合分析每條鏈路的質(zhì)量、提高QoS.本文采用基于機(jī)器學(xué)習(xí)的評估方式,并以人工神經(jīng)網(wǎng)絡(luò)作為評估工具,計(jì)算各個(gè)節(jié)點(diǎn)之間的鏈路代價(jià),輸出下一跳節(jié)點(diǎn)選擇的評估值矩陣.
2.2.1 路徑代價(jià)及目標(biāo)函數(shù)
端到端時(shí)延、時(shí)延抖動(dòng)[20]、丟包率等均為影響衛(wèi)星網(wǎng)絡(luò)QoS的因素,衛(wèi)星路由算法的設(shè)計(jì)應(yīng)考慮多種QoS因素,避免網(wǎng)絡(luò)擁塞.為提高QoS,本文提出的路由算法的路徑代價(jià)綜合考慮任意衛(wèi)星節(jié)點(diǎn)i與j之間的距離、時(shí)延、時(shí)延抖動(dòng)、丟包率,公式如下:
其中, c ost(i,j)為鏈路eij的路徑代價(jià),路徑代價(jià)反映了衛(wèi)星節(jié)點(diǎn)之間傳輸鏈路質(zhì)量的綜合評價(jià)[21].D(i,j)、Delay(i,j)、 J itter(i,j)、 L oss(i,j)分別代表衛(wèi)星節(jié)點(diǎn)i與j之間的距離、信息傳輸時(shí)延、時(shí)延抖動(dòng)和丟包率.wi表示各QoS因素所占的權(quán)重系數(shù),系數(shù)之和為1,在本文中權(quán)重系數(shù)值將隨著負(fù)載狀態(tài)的變化而改變.當(dāng)某一QoS指標(biāo)變化較大時(shí),其在路徑代價(jià)函數(shù)中對應(yīng)的權(quán)重系數(shù)將比其他指標(biāo)的權(quán)重系數(shù)大,這樣在路徑選擇時(shí)可以避免選擇該指標(biāo)較大的星間鏈路.
在衛(wèi)星網(wǎng)絡(luò)拓?fù)渲校?p ath(s,d)表示從源節(jié)點(diǎn)s到目的節(jié)點(diǎn)d所包含的路徑,源節(jié)點(diǎn)到目標(biāo)節(jié)點(diǎn)之間的最優(yōu)路徑即為路徑代價(jià)最小的路徑,目標(biāo)函數(shù)及約束條件如下:
其中,eij∈path(s,d)表示源節(jié)點(diǎn)至目標(biāo)節(jié)點(diǎn)路徑中的邊, D elaymax、 J ittermax、 L ossmax和Dmax分別為實(shí)時(shí)傳輸業(yè)務(wù)在LEO網(wǎng)絡(luò)中所能承受的最大時(shí)延、時(shí)延抖動(dòng)、丟包率,以及衛(wèi)星之間滿足可視性約束時(shí)的最大距離.為了保證計(jì)算時(shí)各QoS參數(shù)單位的統(tǒng)一性,需對其進(jìn)行以下歸一化處理[22]:
2.2.2 基于蟻群算法構(gòu)造訓(xùn)練集
傳統(tǒng)基于深度學(xué)習(xí)的路由算法在構(gòu)造訓(xùn)練集時(shí),通常以經(jīng)典路由算法獲取的一條完整路徑作為訓(xùn)練集的標(biāo)簽.這樣神經(jīng)網(wǎng)絡(luò)輸出的結(jié)果只能從固定集合的路徑中選取,若某一路徑中的節(jié)點(diǎn)失效則易產(chǎn)生擁塞.因此,本文基于蟻群算法最終輸出的概率轉(zhuǎn)發(fā)矩陣作為訓(xùn)練集的標(biāo)簽,通過當(dāng)前節(jié)點(diǎn)選擇下一跳節(jié)點(diǎn)的概率值來評估對應(yīng)的星間鏈路質(zhì)量.
蟻群算法是一種啟發(fā)式算法,螞蟻為網(wǎng)絡(luò)中進(jìn)行路由信息收集與更新的數(shù)據(jù)包,將蟻群算法中的轉(zhuǎn)發(fā)概率表對應(yīng)為衛(wèi)星網(wǎng)絡(luò)的路由表[23],鏈路QoS信息是螞蟻選擇下一跳節(jié)點(diǎn)的重要依據(jù).神經(jīng)網(wǎng)絡(luò)模型的訓(xùn)練依賴于訓(xùn)練數(shù)集,本文通過改變不同負(fù)載狀態(tài)下路徑代價(jià)函數(shù)中的權(quán)重系數(shù),得出更有效的訓(xùn)練集標(biāo)簽數(shù)據(jù),以提高所訓(xùn)練的神經(jīng)網(wǎng)絡(luò)性能.構(gòu)建訓(xùn)練集的具體過程如下:
首先,模擬不同負(fù)載情況下衛(wèi)星節(jié)點(diǎn)之間的距離、時(shí)延、丟包率、時(shí)延抖動(dòng)信息,并將這些狀態(tài)信息通過蟻群算法得出衛(wèi)星節(jié)點(diǎn)選擇下一跳節(jié)點(diǎn)的概率矩陣.進(jìn)而將所得到不同負(fù)載狀態(tài)下的概率矩陣作為訓(xùn)練樹突神經(jīng)網(wǎng)絡(luò)的標(biāo)簽,以此構(gòu)建訓(xùn)練集,訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型.當(dāng)新的路由請求到達(dá)時(shí),輸入神經(jīng)網(wǎng)絡(luò),輸出當(dāng)前狀態(tài)下的評估值矩陣,將此結(jié)果作為新的標(biāo)簽加入訓(xùn)練集.這樣通過半監(jiān)督學(xué)習(xí)的方式優(yōu)化標(biāo)簽,動(dòng)態(tài)構(gòu)造訓(xùn)練集,可以更好感知衛(wèi)星網(wǎng)絡(luò)狀態(tài)信息,繼續(xù)訓(xùn)練優(yōu)化模型.
雖然通過蟻群算法可以直接得出任意兩點(diǎn)間的路徑,但每次通過蟻群算法計(jì)算源節(jié)點(diǎn)到目標(biāo)節(jié)點(diǎn)的路徑耗費(fèi)時(shí)間過長,不利于星上實(shí)時(shí)決策.而本文算法通過改進(jìn)路徑代價(jià)函數(shù)中的權(quán)重,利用更有效的訓(xùn)練集,提前訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型,提取出星間鏈路狀態(tài)信息和星間鏈路質(zhì)量評估值之間的邏輯關(guān)系.進(jìn)行路由決策時(shí),只需通過訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)模型感知當(dāng)前時(shí)刻的鏈路質(zhì)量,基于感知信息做出路由選擇.雖然前期訓(xùn)練神經(jīng)網(wǎng)絡(luò)的過程較復(fù)雜,但是在路由選擇時(shí)可快速做出決策.
2.2.3 基于樹突神經(jīng)網(wǎng)絡(luò)的星間鏈路質(zhì)量評估
本文選用文獻(xiàn)[24]中提出的樹突網(wǎng)絡(luò)(Dendrite net,DD)算法,DD算法的良好性能在文獻(xiàn)[25]中得到驗(yàn)證.樹突神經(jīng)網(wǎng)絡(luò)架構(gòu)簡單并且由于計(jì)算只包含矩陣乘法和哈達(dá)瑪積,該算法的計(jì)算復(fù)雜度遠(yuǎn)比傳統(tǒng)神經(jīng)網(wǎng)絡(luò)中的非線性函數(shù)計(jì)算復(fù)雜度低[26].在每一代前向傳播中,樹突神經(jīng)網(wǎng)絡(luò)都比傳統(tǒng)人工神經(jīng)網(wǎng)絡(luò)速度快,有助于衛(wèi)星網(wǎng)絡(luò)實(shí)現(xiàn)低時(shí)延傳輸;路由算法所需的神經(jīng)網(wǎng)絡(luò)必須具有非常強(qiáng)大的輸出層[27],而DD算法可以有多個(gè)輸出.綜上,采用樹突神經(jīng)網(wǎng)絡(luò)對衛(wèi)星節(jié)點(diǎn)的狀態(tài)參數(shù)進(jìn)行客觀評估,以確保衛(wèi)星路由滿足多種QoS目標(biāo)優(yōu)化是可行的.DD是白盒算法,可以將訓(xùn)練好的DD邏輯提取器轉(zhuǎn)化為輸入和輸出關(guān)系譜[28].其中輸入對應(yīng)為衛(wèi)星網(wǎng)絡(luò)中各個(gè)節(jié)點(diǎn)的QoS信息,輸出的評估值矩陣即為當(dāng)前節(jié)點(diǎn)選擇其余節(jié)點(diǎn)作為下一跳的概率.
DD模塊表示如下:
其中,Al?1和Al分別是模型的輸入和輸出,X代表樹突神經(jīng)網(wǎng)絡(luò)的輸入?yún)?shù),Wl,l?1是從第l?1到第l個(gè)模型的權(quán)重矩陣,“?”代表哈達(dá)瑪乘積,圖5為本文所需DD算法模型.
圖5 DD 算法模型Fig.5 DD algorithm model
2.2.4 DD 學(xué)習(xí)規(guī)則
DD模塊和線性模塊的前向傳播:
其中,L代表模型的最后一層,為線性模塊.
DD模塊和線性模塊的誤差反向傳播規(guī)則:
DD通過梯度下降進(jìn)行權(quán)重調(diào)整:
其中,m表示一個(gè)批次中訓(xùn)練樣本的個(gè)數(shù),α為學(xué)習(xí)速率.
將經(jīng)過歸一化處理后衛(wèi)星之間的距離矩陣X0、時(shí)延矩陣X1、時(shí)延抖動(dòng)矩陣X2、丟包率矩陣X3作為輸入?yún)?shù)輸入樹突神經(jīng)網(wǎng)絡(luò),樹突神經(jīng)網(wǎng)絡(luò)內(nèi)部算法表達(dá)式如下:
公式(17)是通過哈達(dá)瑪乘積建立當(dāng)前輸入和先前輸入的邏輯關(guān)系,式中W10是從第0到第1個(gè)模型的權(quán)重矩陣,W21是從第1到第2個(gè)模型的權(quán)重矩陣,W32是從第2到第3個(gè)模型的權(quán)重矩陣,其中初始化權(quán)重矩陣服從0~1均勻分布.樹突神經(jīng)網(wǎng)絡(luò)每一層的權(quán)重W將利用訓(xùn)練集的標(biāo)簽Y,通過式(12)~(16)被不斷訓(xùn)練調(diào)整,直至訓(xùn)練出誤差較小、與目標(biāo)函數(shù)擬合程度較高的樹突神經(jīng)網(wǎng)絡(luò).
樹突神經(jīng)網(wǎng)絡(luò)經(jīng)過與訓(xùn)練集的擬合,訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)邏輯提取器將轉(zhuǎn)化為關(guān)于鏈路狀態(tài)參數(shù)輸入和選擇下一跳路由節(jié)點(diǎn)概率輸出的關(guān)系譜.所輸出的矩陣Y?是基于概率的路由,將其定義為評估值矩陣,其中衛(wèi)星i與衛(wèi)星j的鏈路所對應(yīng)評估值為yi,j,則評估值矩陣表達(dá)式如下:
其中,輸出的節(jié)點(diǎn)對應(yīng)評估值越大,選擇該節(jié)點(diǎn)作為下一跳的概率越大;當(dāng)兩節(jié)點(diǎn)間不滿足可視性約束時(shí),對應(yīng)評估值為0;當(dāng)最佳路徑中某一節(jié)點(diǎn)出現(xiàn)故障時(shí),可選擇評估值相對較高的其他衛(wèi)星節(jié)點(diǎn),避免鏈路擁塞.該評估值矩陣綜合考慮多種QoS因素,并且不像啟發(fā)式算法過于依賴人類經(jīng)驗(yàn),而是通過人工神經(jīng)網(wǎng)絡(luò)不斷優(yōu)化訓(xùn)練得到的客觀評估結(jié)果.
Dijkstra算法是常見的最短路徑算法,在路由決策階段將評估值矩陣取倒數(shù)作為Dijkstra算法的輸入鄰接矩陣,可輸出一條滿足目標(biāo)函數(shù)、鏈路代價(jià)最小、具有QoS保障的最佳初始路徑.一方面,在監(jiān)測周期內(nèi)按初始路徑進(jìn)行路由,若超出監(jiān)測周期則需重新計(jì)算初始路徑中當(dāng)前節(jié)點(diǎn)與其對應(yīng)下一跳節(jié)點(diǎn)之間的建鏈狀態(tài);若不可建鏈,需獲取當(dāng)前時(shí)刻的節(jié)點(diǎn)狀態(tài)信息并輸入樹突神經(jīng)網(wǎng)絡(luò),重新進(jìn)行路由選擇,對初始路徑進(jìn)行修正,實(shí)現(xiàn)衛(wèi)星路由的實(shí)時(shí)感知.另一方面,當(dāng)初始路徑中某一節(jié)點(diǎn)的下一跳節(jié)點(diǎn)出現(xiàn)故障時(shí),可選擇當(dāng)前節(jié)點(diǎn)的次佳下一跳節(jié)點(diǎn),再通過Dijkstra算法得出路徑.
本文首先利用 Satellite Tool Kit軟件創(chuàng)建一個(gè)新的場景,場景時(shí)間設(shè)為 2 Dec 2020 04∶00∶00.000至 2 Dec 2020 05∶00∶00.000.先生成 seed 衛(wèi)星,再通過Walker方法快速創(chuàng)建Walker星座,Walker的參數(shù)設(shè)置如表1所示.
表1 Walker參數(shù)設(shè)置Table 1 Parameter setting of the Walker constellation
取其中24顆低軌衛(wèi)星,利用STK對衛(wèi)星之間的可視性約束進(jìn)行分析,可得出衛(wèi)星之間在任意時(shí)刻的建鏈情況,導(dǎo)出衛(wèi)星之間的可視性矩陣.低軌衛(wèi)星繞地運(yùn)行周期約為85 min,單軌道內(nèi)有8顆衛(wèi)星,因此監(jiān)測周期為 10 min.每隔 10 min 對所得路徑涉及衛(wèi)星節(jié)點(diǎn)之間的可視情況進(jìn)行確定,避免整個(gè)衛(wèi)星網(wǎng)絡(luò)拓?fù)錉顟B(tài)發(fā)生變化時(shí),有鏈路斷開未能及時(shí)發(fā)現(xiàn).
之后,通過MATLAB和STK的互聯(lián)接口將report中鏈路可視矩陣信息以及衛(wèi)星之間的距離矩陣傳給MATLAB;利用MATLAB對衛(wèi)星之間的信道進(jìn)行建模,同時(shí)生成衛(wèi)星之間的多普勒頻移,進(jìn)而模擬衛(wèi)星之間的帶寬、時(shí)延、時(shí)延抖動(dòng)、丟包率矩陣.鏈路參數(shù)設(shè)置如表2所示.
表2 鏈路參數(shù)設(shè)置Table 2 Parameter setting of the link
在初始時(shí)刻,路徑代價(jià)函數(shù)中各權(quán)重系數(shù)值均為0.25.當(dāng)前網(wǎng)絡(luò)中數(shù)據(jù)包傳輸完成后,統(tǒng)計(jì)平均端到端時(shí)延、丟包率、時(shí)延抖動(dòng),分別計(jì)算當(dāng)前負(fù)載狀態(tài)與前一負(fù)載狀態(tài)相比三種QoS指標(biāo)增加的百分比.假設(shè)平均端到端時(shí)延、丟包率、時(shí)延抖動(dòng)分別增加了a、b、c,則下一負(fù)載狀態(tài)下路徑代價(jià)函數(shù)中權(quán)重系數(shù)分別為:
圖6為通過MATLAB軟件仿真得到的樹突神經(jīng)網(wǎng)絡(luò)擬合圖,由此可以發(fā)現(xiàn)當(dāng)訓(xùn)練 3 ×105代之后誤差曲線趨于穩(wěn)定,并且誤差很小,可以以高概率收斂到全局最優(yōu),表明本文所選用的樹突神經(jīng)網(wǎng)絡(luò)擬合性能較好.圖7為輸入第1個(gè)衛(wèi)星節(jié)點(diǎn)至其他23個(gè)衛(wèi)星節(jié)點(diǎn)的狀態(tài)信息時(shí),模型輸出當(dāng)前衛(wèi)星節(jié)點(diǎn)選擇其他衛(wèi)星節(jié)點(diǎn)的概率.以該概率作為評估值,評估值越大,選擇對應(yīng)節(jié)點(diǎn)作為下一跳的可能性越大;當(dāng)評估值為0時(shí),表明兩個(gè)衛(wèi)星節(jié)點(diǎn)之間不滿足可視性約束,不能建立星間鏈路.
圖6 樹突神經(jīng)網(wǎng)絡(luò)擬合圖Fig.6 Dendritic network fitting graph
圖7 選擇下一跳衛(wèi)星節(jié)點(diǎn)的概率Fig.7 Probability of selecting the next hop satellite node
為了驗(yàn)證樹突神經(jīng)網(wǎng)絡(luò)路由算法的性能,分別與蟻群算法(Ant colony algorithm, ACA)和 Dijkstra算法進(jìn)行仿真對比.在網(wǎng)絡(luò)負(fù)載量較低時(shí),三種算法仿真得出源節(jié)點(diǎn)1至目的節(jié)點(diǎn)3的路徑分別為蟻群:1—20—3,Dijkstra:1—2—3,樹突神經(jīng)網(wǎng)絡(luò)算法:1—2—3;節(jié)點(diǎn)12至節(jié)點(diǎn)15的路徑分別為蟻群:12—23—14—8—15,Dijkstra:12—13—8—15,樹突神經(jīng)網(wǎng)絡(luò)算法:12—13—8—15;隨著網(wǎng)絡(luò)負(fù)載量增加,源節(jié)點(diǎn)1至目的節(jié)點(diǎn)3的路徑分別為蟻群:1—2—19—3,Dijkstra:1—2—3,樹突神經(jīng)網(wǎng)絡(luò)算法:1—19—3;圖8為給定相同源節(jié)點(diǎn)和目的節(jié)點(diǎn)的條件下,三種算法的平均跳數(shù)和最大跳數(shù)對比圖.由于蟻群算法屬于啟發(fā)式算法,其容易陷入局部最優(yōu)解、收斂性較差,有時(shí)需較多跳數(shù)才可到達(dá);Dijkstra算法在進(jìn)行路由選擇時(shí)直接考慮最短距離路徑,并不考慮所選鏈路的擁塞情況,因此其只需較少的跳數(shù)即可達(dá)到目的節(jié)點(diǎn);本文算法在綜合考慮多種QoS因素的情況下,可以避開擁塞節(jié)點(diǎn).在實(shí)際工程中,衛(wèi)星路由的跳數(shù)應(yīng)盡可能小.本文所提路由算法的平均跳數(shù)與Dijkstra算法一致,這表明其在避開擁塞節(jié)點(diǎn)時(shí)并未以犧牲路由跳數(shù)為代價(jià).接下來將對三種路由算法在時(shí)延、丟包率、時(shí)延抖動(dòng)方面的性能進(jìn)行比較.
圖8 相同源節(jié)點(diǎn)至目節(jié)點(diǎn)的路由跳數(shù)對比Fig.8 Comparison of route hops
圖10 端到端平均丟包率對比Fig.10 End-to-end average packet loss rate comparison
由圖9至圖11所示,隨著數(shù)據(jù)包產(chǎn)生個(gè)數(shù)的加大,由于網(wǎng)絡(luò)負(fù)載量不斷增加,三種算法的端到端時(shí)延、丟包率以及時(shí)延抖動(dòng)均成上升趨勢.在數(shù)據(jù)包產(chǎn)生個(gè)數(shù)小于20時(shí),由于衛(wèi)星網(wǎng)路負(fù)載量較低,三種路由算法的時(shí)延、丟包率、時(shí)延抖動(dòng)均較低.隨著數(shù)據(jù)包產(chǎn)生個(gè)數(shù)的增多,本文算法的性能優(yōu)勢逐漸明顯,其時(shí)延、丟包率、時(shí)延抖動(dòng)均比Dijkstra算法以及蟻群算法低.這是因?yàn)镈ijkstra算法直接選取最短距離路徑進(jìn)行路由,并不考慮鏈路質(zhì)量,隨著時(shí)間推移,最短路徑上極易出現(xiàn)擁塞,導(dǎo)致時(shí)延、丟包率、時(shí)延抖動(dòng)大幅度增加,而其他路徑帶寬利用率低、浪費(fèi)資源;蟻群算法雖考慮多種QoS因素,性能與Dijkstra算法相比較好,但其收斂性較差.本文所提算法性能的提升主要有以下原因:其一,本文算法通過改變路徑代價(jià)函數(shù)在不同負(fù)載狀態(tài)下的權(quán)重系數(shù)來訓(xùn)練樹突神經(jīng)網(wǎng)絡(luò),可以避免選擇QoS指標(biāo)不好的鏈路;比如當(dāng)網(wǎng)絡(luò)中平均時(shí)延增長較多時(shí),由于時(shí)延權(quán)重與其他指標(biāo)的權(quán)重相比較大,接下來進(jìn)行路由選擇時(shí),在綜合考慮多種QoS指標(biāo)的情況下會(huì)避免選擇時(shí)延較大的路徑;其二,通過半監(jiān)督學(xué)習(xí)的方式動(dòng)態(tài)構(gòu)造訓(xùn)練集可以優(yōu)化樹突神經(jīng)網(wǎng)絡(luò)模型,利用樹突神經(jīng)網(wǎng)絡(luò)自動(dòng)調(diào)整全局衛(wèi)星網(wǎng)絡(luò)鏈路的評估值,更好地感知網(wǎng)絡(luò)的狀態(tài)信息,輔助做出智能路由決策.最終,當(dāng)某一節(jié)點(diǎn)數(shù)據(jù)量較多時(shí),可通過感知的鏈路權(quán)重信息自適應(yīng)調(diào)節(jié),避免選擇易擁塞節(jié)點(diǎn),從而降低整個(gè)衛(wèi)星網(wǎng)絡(luò)的平均時(shí)延、丟包率和時(shí)延抖動(dòng).
圖9 端到端平均時(shí)延對比Fig.9 End-to-end average delay comparison
圖11 端到端平均時(shí)延抖動(dòng)對比Fig.11 End-to-end average delay jitter comparison
本文提出一種基于樹突神經(jīng)網(wǎng)絡(luò)的低軌衛(wèi)星智能感知路由算法,星間鏈路態(tài)勢感知階段,周期性分析星間可視性情況;采用樹突神經(jīng)網(wǎng)絡(luò)對鏈路狀態(tài)參數(shù)進(jìn)行分析處理,感知鏈路的綜合服務(wù)質(zhì)量,輸出下一跳路由選擇的評估值矩陣;在路由決策階段將評估值矩陣倒數(shù)作為鄰接矩陣通過最短路徑算法,進(jìn)而得出源節(jié)點(diǎn)和目的節(jié)點(diǎn)之間的初始路由路徑;最后通過周期性監(jiān)測修正初始路徑以應(yīng)對衛(wèi)星節(jié)點(diǎn)失效.仿真結(jié)果表明:在相同數(shù)據(jù)包到達(dá)的情況下,該路由算法和傳統(tǒng)路由算法相比性能更加優(yōu)越.