章廣梅,王均春,胡金龍,董守玲,徐寅鑫
(1.中國電子科技集團公司第七研究所, 廣東 廣州 510310 2.國防科技大學 信息通信學院,湖北 武漢 430010 3.華南理工大學 計算機科學與工程學院, 廣東 廣州 510640)
5G 網絡使得網絡應用類型變得更加多樣,未來必將涌現(xiàn)各種具有差異化性能需求的新型應用,比如,有些應用需要低時延,有些應用需要高帶寬,而有些應用則需要更高的可靠性要求。 然而,當前網絡一方面還不夠靈活,無法充分利用網絡資源進行業(yè)務服務,導致每引入一種新業(yè)務就要單獨配備一套獨立的網絡結構和資源,對網絡管理和運營帶來了較大不便且資源利用率低,而另一方面則是無法實現(xiàn)業(yè)務定制化的數據傳輸需求,僅能滿足已有常見的業(yè)務性能。
現(xiàn)有的網絡切片調度算法主要包括啟發(fā)式算法和基于軟件定義網絡(SDN)架構的調度算法。 傳統(tǒng)的調度方式,比如利用遺傳算法[1]解決服務功能鏈(SFC)的部署,以此達到鏈路之間的公平分配,但是這種方法僅僅是解決單一調度周期的問題,并且現(xiàn)有的網絡環(huán)境是復雜多變的,傳統(tǒng)算法選擇的鏈路很有可能在某一時刻發(fā)生堵塞而無法進行流量傳輸,而其他鏈路又是處于空閑狀態(tài),這就造成了資源的不必要浪費,因此傳統(tǒng)算法具有一定的局限性。SDN 的出現(xiàn)為數據中心網絡的發(fā)展提供了契機[2],其中,基于SDN 與網絡功能虛擬化(NFV)融合的網絡切片資源分配優(yōu)化算法[3],對不同的業(yè)務需求劃分對應的虛擬子網節(jié)點集合,再根據不同SFC 的要求,對每一類網絡切片建模;基于最大最小蟻群的NFV 部署方法[4],利用SFC 保留歷史隊列信息以預測網絡的未來狀態(tài),根據預測結果進行NFV 的調度;基于改進式貪婪算法的5G 網絡切片動態(tài)資源調度策略[5],將用戶和切片按優(yōu)先級和服務權重從大到小排列,依次組合起來,完成用戶服務;基于GA?PSO 優(yōu)化的網絡切片編排算法[6],通過遺傳算法中的雜交變異思想,進行快速隨機搜索,更新并優(yōu)化網絡切片,然后利用粒子群追逐局部最優(yōu)解與全局最優(yōu)解,從而得到最優(yōu)的網絡切片。 這些方法雖然改變了切換業(yè)務與新業(yè)務的被動接受的優(yōu)先級[7],但是使用固定的調度閾值,一旦網絡環(huán)境發(fā)生變化,上述方法一般需要重新進行搜索求解,且當網絡環(huán)境復雜時算法收斂速度較慢,難以適應在線或實時的網絡切片調度需求。
為了動態(tài)調整切片的調度閾值以適應網絡環(huán)境的變化,本文在預路徑規(guī)劃的切片構造算法[8]的基礎上,提出一種基于深度強化學習的切片調度算法,為不同的業(yè)務靈活提供定制化服務,在適應多變復雜的網絡環(huán)境的前提下,盡可能減少切片構造的時間開銷,將切片構造和切片調度算法相結合,快速高效地實現(xiàn)業(yè)務數據定制化傳輸和通信網絡高效靈活的可管可控。
當今網絡足夠復雜,網絡中存在多個用戶,并且每個用戶可以訪問不同類型的應用服務器,網絡拓撲圖也十分龐大。 如果使用復雜的路由算法[9],將會耗費很多時間來計算路由,增加了計算的時間開銷,因此本文根據業(yè)務QoS 需求表、網絡拓撲信息和業(yè)務流量信息預先構造切片路徑,按照業(yè)務的優(yōu)先級從高到低依次執(zhí)行QoS 切片構造算法,為每一種業(yè)務類型構造出專屬的網絡鏈路并保留網絡切片資源,主要分為信息搜集和切片構造的路徑劃分兩部分。
主要負責搜集3 類信息,分別是業(yè)務的QoS 需求表、網絡拓撲信息以及網絡流量信息,其中:
(1) 業(yè)務的QoS 需求表包括業(yè)務的類型、優(yōu)先級、帶寬需求、時延要求、可靠性要求、頻率需求等信息。
(2) 網絡拓撲信息即網絡拓撲有向圖,可以從實際的網絡拓撲轉換而來,有向圖中的邊代表節(jié)點之間的鏈路,邊權重代表鏈路的帶寬大小。
(3) 網絡流量信息即根據歷史信息得到的每種業(yè)務的帶寬需求的閾值、各個業(yè)務的發(fā)送端節(jié)點和接收端節(jié)點構成的業(yè)務矩陣以及網絡中分配的頻率資源池。
QoS 切片構造的過程可以描述為:給定網絡的整體拓撲結構,將業(yè)務的QoS 需求、業(yè)務矩陣和頻率資源池作為輸入,根據QoS 切片的構造方法為該業(yè)務劃分出一組切片資源,將該切片資源分出一部分用于滿足該業(yè)務的QoS 需求,修改資源池中的有效可用資源,并從頻率資源池中選出與業(yè)務需求最貼近的頻率分配給業(yè)務,修改資源池中的剩余頻率資源,最后使用貪婪算法將所有的業(yè)務全部處理完畢。
單個的QoS 切片構造的目標函數及約束條件如下。
式中:E 表示邊集合;b(u,v)表示邊(u,v)是否用于傳輸流量;jQ表示業(yè)務的頻率需求;kQ表示網絡分配的頻率;g(u,v)表示某一流量在邊(u,v)上傳輸的量;a(u,v)表示鏈路的總容量;fQ表示業(yè)務的帶寬需求。
該算法的目標是在滿足業(yè)務QoS 需求的前提下,業(yè)務傳輸使用的鏈路條數最少,以此保證時延,并且把網絡中的頻率資源最貼合地分配給對應的業(yè)務。 約束條件則依次表示某一條鏈路只能選擇傳輸或者不傳輸業(yè)務流量;業(yè)務傳輸的流量既不能超過鏈路的總容量,也必須要滿足業(yè)務的帶寬需求;鏈路的傳輸總流量不能超過其總容量;中間節(jié)點輸入輸出的流量需要保持一致,發(fā)送端和接收端節(jié)點的流量也要和業(yè)務流量保持一致。
使用貪婪算法完成所有QoS 切片的構造:按優(yōu)先級高低依次處理各類業(yè)務,對每一類業(yè)務,選擇對應的網絡頻率進行分配,求得切片路徑,保留路徑上的節(jié)點所要傳輸的業(yè)務流量,修改各節(jié)點上剩余資源數量以及修改網絡可用頻率信息,然后處理下一個業(yè)務,直到優(yōu)先級最低的業(yè)務也被處理。
現(xiàn)有的網絡切片調度算法主要采用的是啟發(fā)式算法,或者是基于精確數學模型的優(yōu)化算法,然而這些算法并沒有考慮到無線網絡環(huán)境的時變性,目前采用的算法規(guī)則大多是固定的、不可變化的,并不具有自我演進的功能。 此外,由于寬窄融合網絡拓撲十分復雜,很難在拓撲和切片的選擇以及實際效果之間推導出精確的關系表達式即啟發(fā)式算法的固定規(guī)則很難在復雜的網絡拓撲環(huán)境中推導出來,因此本文以切片構造的結果為基礎,采用基于深度強化學習的方法,學習在不同的網絡環(huán)境下切片調度的最優(yōu)調度策略,即每個切片的可用帶寬閾值,切片調度時,切片可用帶寬高于閾值則繼續(xù)選擇該切片進行調度,低于閾值則選擇優(yōu)先級更高的切片進行調度,以此達到業(yè)務定制化數據傳輸的需求。
圖1 表示在每個調度周期,切片調度器根據觀測到的網絡狀態(tài)以及感知到的業(yè)務信息,將其作為策略神經網絡的輸入,并輸出此時選擇各個切片的概率向量,然后調度器選擇概率最大的切片來執(zhí)行選擇動作,并觀察獎勵函數的反饋,不斷迭代,直到在每一個調度周期,調度器都能執(zhí)行最優(yōu)的調度策略,達到定制化服務的要求。
圖1 調度周期流程圖
2.2.2 深度確定性策略梯度(DDPG)網絡模型
采用的DDPG 網絡模型有4 個網絡,分別是Actor 當前網絡、Actor 目標網絡、Critic 當前網絡、Critic 目標網絡,它們的功能分別如下。
Actor 當前網絡:實現(xiàn)策略神經網絡參數ω的更新,其根據當前狀態(tài)st選擇動作at, 與環(huán)境交互后得到下一個狀態(tài)st+1和環(huán)境反饋的獎勵值rt;
Actor 目標網絡:從經驗回收池中采樣下一個狀態(tài)st+1, 選擇下一個最優(yōu)動作at+1, 并且定期將Actor 當前網絡參數ω復制給ω′;
Critic 當前網絡:實現(xiàn)價值網絡參數θ的更新,計算當前Q值和目標Q值;
Critic 目標網絡:負責協(xié)助計算目標Q值,并且定期將Critic 當前網絡參數θ復制給θ′。
狀態(tài):假設在第t個調度周期時,系統(tǒng)的狀態(tài)表示為st=(st,1,st,2,…,st,n),其中st,i(1 ≤i≤n)表示第i個切片在第t個周期的網絡狀態(tài)。st,i有多個狀態(tài)參數構成,其定義為st,i=(xt,i,wt,i,dt,i,ut,i,vt,i,ct,i),其中
xt,i:在第t個調度周期,第i個切片的可用帶寬;
wt,i:在第t個調度周期,業(yè)務請求的帶寬需求;
dt,i:在第t個調度周期,第i個切片的平均往返時延;ut,j:在第t個調度周期,業(yè)務請求的時延要求;vt,i:在第t個調度周期,第i個切片的丟包率;ct,i:在第t個調度周期,業(yè)務請求的丟包率要求;
動作:智能體觀測環(huán)境狀態(tài)后,經過確定性策略返回一組概率向量,表示將該業(yè)務調度到某個切片的概率值,切片調度器選擇最大概率值的切片進行業(yè)務分配,此即為強化學習算法的動作at。
獎勵:智能體根據策略選擇動作后,在下一個調度周期切片調度器執(zhí)行該動作選擇業(yè)務對應的切片,該周期結束時狀態(tài)更新為下一個狀態(tài),同時將本次調度的獎勵值rt交給智能體。
策略:本文采用深度強化學習的DDPG 算法,是確定性策略,執(zhí)行該策略時,得到一個狀態(tài)st, 智能體就會執(zhí)行對應的動作at=μ(st)。 具體來說,切片調度器的調度策略的執(zhí)行過程可表示為根據當前環(huán)境狀態(tài)的序列選擇一系列對應的動作來執(zhí)行切片調度。 在DDPG 算法中使用人工神經網絡來表示策略,網絡的輸入是狀態(tài)信息和業(yè)務信息,網絡的輸出則是調度動作。
2.2.3 獎勵函數
本文設計的獎勵函數如下
式中:0<λ <1,0<α <1,0<β <1 表示權重,獎勵函數的第一項代表切片可用帶寬與業(yè)務的帶寬需求的貼合程度,因為本文設計的獎勵函數側重于帶寬需求,因此將二者的差值作為分母以提高其權重;獎勵函數的第二項代表業(yè)務的時延要求與切片當前時延的貼合程度;獎勵函數的第三項代表業(yè)務的丟包要求和切片當前丟包率的貼合程度。
2.3.1 基于深度強化學習的切片調度框架
本文采用人工神經網絡表示調度的確定性策略和值函數的估值,將觀測到的網絡環(huán)境狀態(tài)和業(yè)務感知端感知到的業(yè)務信息作為神經網絡的輸入,輸出則是值函數的估值信息和一個概率向量,切片調度器選擇概率最大的切片進行調度,視為調度動作。
具體的實現(xiàn)過程為:(1) 首先進行網絡訓練,感知端感知業(yè)務類型,得到業(yè)務對應的QoS 需求,切片調度器實時監(jiān)測所有切片的網絡狀態(tài),將業(yè)務和切片的信息作為DDPG 神經網絡的初始狀態(tài),利用貪心策略選擇概率值最大的切片進行調度,得到當前獎勵值并更新下一個時刻的神經網絡狀態(tài),不斷訓練直到模型收斂,學出較好的調度策略即根據獎勵函數的反饋學到每個切片的帶寬利用閾值,切片可用帶寬高于閾值,則繼續(xù)選擇該切片傳輸業(yè)務,切片帶寬低于閾值,則選擇更高優(yōu)先級的切片傳輸業(yè)務。 (2) 然后進行切片調度,使用訓練得到的調度策略進行切片調度,并把每次調度的信息以(st,at,rt,st+1,t) 的形式存入經驗回收池,經過一定調度周期后將經驗回收池中儲存的數據按批次取出,繼續(xù)訓練網絡,得到更好的調度策略,如此反復迭代,直到獎勵函數值不再提升為止,得到最好的調度策略,整體框架如圖2 所示。
圖2 基于深度強化學習的網絡切片調度算法框架
圖2 的控制層實現(xiàn)切片的在線調度,切片調度器將觀測到的網絡狀態(tài)和業(yè)務感知端感知到的業(yè)務信息st作為神經網絡的輸入,輸出層使用softmax 函數,輸出一組切片選擇的概率向量,調度器選擇最大概率的切片進行調度,輸出動作at; 然后回報函數會反饋切片調度器本次調度的獎勵值rt,同時環(huán)境狀態(tài)轉移到調度后的狀態(tài)st+1, 這些交互信息會被經驗采集器以(st,at,rt,st+1,t) 的形式保存在經驗回收池中,供訓練層使用。
圖2 的訓練層實現(xiàn)神經網絡的訓練,經驗采集器按照規(guī)定好的批次大小將經驗回收池中的調度信息取出,進行網絡訓練,更新網絡的訓練參數。
寬窄融合網絡的狀態(tài)變化時,訓練得到的最優(yōu)調度策略也需要不斷變化。 在線調度部分將網絡環(huán)境的動態(tài)變化信息存入經驗回收池,訓練層中由于網絡環(huán)境的動態(tài)變化導致獎勵函數降低或較大波動,DDPG 網絡將根據最新的網絡狀態(tài)參數繼續(xù)訓練,直到獎勵函數穩(wěn)定,得到新網絡狀態(tài)下的最優(yōu)調度策略。
2.3.2 深度強化學習算法
基于深度強化學習算法的DDPG 神經網絡的輸出有3 項:一個動作a=α(s |θα),一個值函數項V(s | θV) 和一個優(yōu)勢函數項A(s,a | θA), 其中α(s |θα) 表示狀態(tài)s下的策略網絡,θ表示網絡參數。 因此神經網絡訓練得到的當前Q值可由值函數項和優(yōu)勢函數項相加得到,優(yōu)勢函數可以參數化為一個非線性狀態(tài)特征的二次函數[10],表達式如下
其中U(s |θU) 是關于狀態(tài)的正定矩陣,可進行楚列斯基分解為
其中τ是學習速率(τ?1),這種小幅度的“軟更新”使得Critic 網絡的訓練更加穩(wěn)定。
具體的DDPG 網絡訓練過程如圖3 所示。
圖3 DDPG 網絡訓練流程圖
本文的深度強化學習算法的實驗環(huán)境是Python 3.6,Pytorch 1.5 配置;寬窄融合網絡仿真環(huán)境主要由路由器、交換機、寬帶移動鏈路、短波鏈路等組成,包括8 Mb/s、2 Mb/s、800 kb/s 和500 kp/s 等不同的寬窄無線鏈路,并在丟包率為0.5%以內隨機丟棄報文。 實驗共分為兩步進行,第一步是切片構造實驗,網絡信息搜集組件得到切片構造所需要的基本信息,如:業(yè)務的QoS 需求信息、由實際網絡拓撲圖轉化的網絡拓撲有向圖矩陣以及業(yè)務流量矩陣。 然后通過構造算法預劃分路徑,輸出一個切片庫,降低了實時構造切片的時間開銷。 第二步是切片調度實驗,針對復雜多變的網絡環(huán)境,將業(yè)務感知端得到的業(yè)務信息和實時檢測得到的切片狀態(tài)信息作為神經網絡的輸入,利用深度強化學習算法訓練得到在不同環(huán)境狀態(tài)下的最佳調度策略,均衡網絡負載,提高資源利用率的同時滿足業(yè)務定制化傳輸的要求。
業(yè)務QoS 需求表包括本文研究的7 種業(yè)務的優(yōu)先級、帶寬要求、時延要求、丟包要求等,如表1 所示,其中H 表示要求較高,M 表示要求中等,L 表示要求較低。
表1 業(yè)務QoS 需求表
實施QoS 切片構造算法后形成的切片拓撲如圖4 所示。
圖4 QoS 切片拓撲圖
根據構造算法,可以將網絡拓撲圖大致劃分成4 個切片鏈路,其中第一類鏈路適用于網絡協(xié)議類和短信息業(yè)務,第二類鏈路適用于緊急信息業(yè)務,第三類鏈路適用于長信息業(yè)務,第四類鏈路適用于視頻文件、管理信息和郵件業(yè)務。
本文設計如下實驗,分別從QoS 滿足率即業(yè)務是否進行定制化傳輸且沒有時間浪費、調度業(yè)務傳輸完成時間、切片帶寬平均利用率3 個方面比較本文采用的切片調度算法與對照算法的效果差異。 本文采用3 種對照算法:第一種算法是“盡力而為”調度算法,即先把業(yè)務全部調度到一個切片上去,切片負載過大后再調往另一條切片,以此類推;第二種算法是“專路專調”調度算法[8],即每類業(yè)務一開始只能調度到其對應的切片鏈路,鏈路堵塞則業(yè)務進行等待;第三種算法是對業(yè)務采用動態(tài)重路由[12]的方式進行調度。
首先模擬網絡低負載的情況,8 種業(yè)務每隔2 s傳輸3 輪,持續(xù)傳輸30 s。 然后模擬網絡高負載的情況,8 種業(yè)務每隔2 s 傳輸6 輪,持續(xù)傳輸30 s。最終得到的QoS 業(yè)務滿足率、切片帶寬平均利用率、業(yè)務調度完成時間分別如圖5、6、7 所示。
圖5 QoS 業(yè)務滿足率
圖6 切片帶寬平均利用率
由實驗可以得出如下結論:(1) 4 種方法除了算法一,其余的QoS 業(yè)務滿足率都很高,這是因為算法一總是盡力而為,并沒有考慮到業(yè)務的定制化傳輸需求,算法二雖然專路專調,但是鏈路堵塞時就會浪費時間資源,沒有很好地利用網絡資源,算法三雖然能夠動態(tài)重路由,但是低優(yōu)先級的業(yè)務必須等待高優(yōu)先級的業(yè)務探索路由后才能進行路由,因此這3 種方法的QoS 業(yè)務滿足率低于本文方法。(2) 本文設計的網絡切片調度算法可以使得切片間負載更加均衡,因為算法一和算法三都是先選擇一條鏈路進行業(yè)務傳輸,鏈路堵塞時才會重新選擇鏈路,因此并不能很好地均衡鏈路間的負載,算法二也是因為堵塞,造成了時間的浪費,影響了負載均衡的效果。 (3) 因為算法三需要動態(tài)劃分業(yè)務路由,而本文的網絡拓撲較為復雜,因此花費了更多時間在劃分路由上;算法一和算法二因為一開始只選擇一條鏈路,因此有鏈路擁塞造成的額外時間開銷,由此可見本文設計的算法可以使得業(yè)務的調度完成時間更短。
圖7 業(yè)務調度完成時間
本文通過對異構網絡切片技術的研究,根據差異化的業(yè)務需求構造基于人工智能構建的網絡切片,結合寬窄融合無線實時網絡環(huán)境的狀態(tài),提供定制的網絡資源對業(yè)務進行服務,實現(xiàn)了切片實例化。實驗表明,本文設計的網絡切片構造和調度算法在QoS 滿足率、切片帶寬平均利用率和業(yè)務調度完成時間上均有較大提升,均衡網絡負載的同時提高了網絡資源利用率。