姚江毅,張 陽,李雄偉,王艷超
(陸軍工程大學石家莊校區 裝備模擬訓練中心,石家莊 050003)
計算機生成兵力(computer generated force,CGF)指的是由計算機創建并能對其全部或部分動作和行為實施自主控制或指導的虛擬作戰兵力對象,構建CGF的核心任務是對戰場環境中作戰實體的行為進行建模。CGF路徑規劃是CGF行為建模中的重要環節,既是任務規劃、協同等行為的基礎,又是機動、沖擊等動作的前提,因此研究CGF路徑規劃問題對CGF行為建模具有重要意義。現有路徑規劃問題常采用遺傳算法、蟻群算法、粒子群算法、A算法以及人工勢場法等方法進行研究。但現有方法在路徑規劃的過程中通常要求環境模型是完全可知的,需要提前獲取全局精確信息,而復雜多變的戰場環境要求CGF實體能夠針對環境變化實時生成應對策略,因此將現有方法直接應用到CGF路徑規劃中具有一定局限性。
強化學習不需要完備的先驗知識,學習者面對陌生環境能夠通過與環境的動態交互自主獲得最優行為策略,因此將強化學習應用到CGF路徑規劃中具有一定優勢。本文針對軍用仿真系統中CGF實體路徑規劃問題進行研究,基于紅藍對抗系統構建直升機CGF突襲雷達陣地模型,結合人工勢場原理構建動態獎賞函數對強化學習SARSA算法進行改進。實驗表明改進SARSA算法性能有明顯提升,能夠為直升機CGF規劃出安全路徑。
某紅藍對抗系統中包含以下作戰單元:
1) 藍方直升機CGF:搭載有射程為8 km的空地導彈,告警裝置能夠捕獲雷達波束從而判斷自身是否被雷達鎖定。藍方CGF的任務是突襲50 km以外的紅方雷達陣地,其飛行過程墜機概率與飛行高度相關,可表示為

(1)
由于軍用直升機墜機概率數據通常是保密的,式(1)采用的是簡化后的概率模型。
2) 紅方雷達陣地:陣地包含雷達和防空武器系統,防空導彈的射程為10 km。紅方受訓人員可以操控雷達及時發現藍方CGF并鎖定,待藍方CGF進入防空導彈射程后將其擊毀。已知雷達偵測半徑最大為45 km,由于受到地面反射雜波以及探測角度等因素的影響,通常雷達難以探測到低空飛行的目標,雷達能夠探測到藍方CGF的概率與藍方CGF同雷達間距離以及藍方CGF的飛行高度均相關,具體可表示為

(2)
由式(2)可得雷達探測概率模型如圖1所示。

圖1 雷達探測概率模型示意圖
紅藍對抗系統中,藍方直升機CGF是紅方受訓人員的打擊對象,理想的藍方CGF應具有足夠的智能性,能夠隨著紅方受訓人員的訓練水平提升而提高自身能力,從而進一步砥礪受訓人員。目前藍方CGF建模通常采用有限狀態機、行為樹、規則腳本等知識工程方法,構建的藍方CGF行為方式相對固定,紅方人員經過多次觀察后便能掌握其行動規律,不利于進一步訓練。此次研究目的是結合強化學習算法使藍方直升機CGF擁有自主學習能力,能夠根據系統環境信息平衡墜機概率和雷達探測概率,選取適當高度飛行自主規劃出突襲安全路徑,從而提高其智能性。
假設紅藍雙方攻擊時均能保證百分百命中率,則藍方勝利的條件是至少飛抵距紅方雷達陣地8 km的空域,并且在飛行過程中藍方CGF應避免被紅方雷達偵測到。據圖1可知,藍方CGF在雷達探測范圍之外飛行時不會被發現,在雷達探測范圍內時,如果在0.2 km以下高度飛行也能夠躲避雷達探測。因此,藍方CGF可以利用圖中探測概率較低的區域進行突襲。
對戰場環境建模是CGF路徑規劃的前提。戰場建模是將戰場環境中與CGF路徑規劃相關的元素抽象為適合算法輸入的內部模型信息,從而將戰場區域劃分為可通行區域和不可通行區域。將戰場空間柵格化是研究路徑規劃問題常用的方式之一,柵格化可以將戰場空間中的連續信息離散化,便于強化學習算法的輸入,且離散化后的信息便于存儲和維護,本文采用柵格法進行戰場環境建模,具體建模情況如下。
結合系統信息,采用50×10的柵格對戰場環境進行仿真,利用二維直角坐標即可確定戰場環境中相關元素空間位置,并對每個柵格從左至右,從上到下依次標號得到圖2。

圖2 柵格戰場環境示意圖
圖2中每個柵格包含飛行高度和飛行距離二維信息,方格內隱含雷達探測概率和環境影響因素等。藍方直升機CGF在柵格內運動方向為前、后、上、下4個方向,飛行過程中如果被紅方雷達偵察到或發生墜機事件則視為任務失敗,若藍方CGF和紅方雷達陣地距離小于8 km則視為突襲成功。
強化學習是從環境狀態到動作映射的學習,目的是讓智能體(Agent)的動作從環境中獲得的累積獎賞最大,從而學習到最優策略。在強化學習算法中,SARSA算法是一種采用實際值進行迭代更新的在線學習算法。SARSA算法迭代更新時需要借助五元組(,,+1,+1,+1)進行,其中表示當前狀態;表示當前狀態下選擇的動作;+1是選擇動作后獲得的獎賞;+1和+1則分別代表后續的狀態和動作,具體更新方式如下:
(,)=(,)+(+1+(+1,+1)-(,))
(3)
式中(,)表示狀態下選擇動作的期望獎賞值(表 1),∈(0,1]為學習率,用來控制學習過程中未來獎賞的占比,∈(0,1)為衰減因子,表示未來獎賞的衰減,隨著和的增大,算法收斂速度會加快,但是震蕩也會增大。對于式(3),如果每個狀態和動作被無限訪問,且參數取合適值,那么值就會最終收斂到固定值。
按照上述迭代公式,算法會形成狀態與動作對應的Q表,最終Agent可按照Q表根據貪婪策略來進行動作決策。貪婪策略定義探索因子,當隨機數大于,Agent隨機選擇可選動作;而隨機數小于時,Agent基于Q表選擇當前狀態下對應獎賞最大的動作,因此隨著增大,Agent會變得愈發“短視”,不利于進一步探索次優動作。對于參數、和的取值,要根據實際情況經過探索最終確定。表1為4個狀態、2個動作的Agent生成的Q表示例。

表1 Q表Table 1 Q table
為使SARSA算法順利更新,需要設置合適的獎賞集合,通常情況下設置Agent完成任務時獲得獎賞,其他狀態則無獎賞。對于此次研究,系統中直升機CGF(Agent)從初始狀態開始探索時存在探索狀態空間爆炸的問題,假設最簡單的情況下,Agent需要50個狀態步到達目標空域,每走一步均可做4種選擇,因此50步可做出的選擇組合為4,如果采用上述獎賞設置方法,則僅在Agent到達目標區域時的狀態步才會獲得獎賞,在此之前的49個狀態步均為無效狀態,這種獎賞設置方式會導致算法收斂困難。
對于上述問題,可以通過獎勵塑造方式來解決。獎勵塑造指的是利用先驗人工知識來設計附加獎勵函數從而引導Agent完成期望任務。由先驗知識可知,此次模型中直升機CGF(Agent)的后退和上升高度動作是相對無效的動作,結合獎勵塑造的思想可以對這2個方向的動作進行約束,并且在Agent每完成一個狀態轉換且自身安全時都給予獎賞,如果完成狀態轉換后發生墜機或者被敵方雷達發現則給予懲罰,這種獎賞規則能夠克服稀疏獎勵引起的系統發散問題。但是引入人工先驗知識容易使算法陷入局部最優,且人工設計獎賞函數的過程繁瑣效率較低,為了進一步優化解決方式,本文將結合人工勢場法原理構建動態獎賞函數對SARSA算法進行改進。
人工勢場指的是戰場空間在障礙物和目標點的共同作用下會形成一個虛擬力場,其中障礙物會被斥力勢場所包圍,其產生的排斥力會隨著Agent與障礙物距離的減小而增大,排斥力的方向是背離障礙物的,而目標點則會被引力勢場所包圍,其產生的吸引力會隨著Agent與目標位置的接近而減小,吸引力的方向則指向目標點。最后將戰場空間中的障礙物和目標點所產生的勢能求和,沿著勢能函數梯度下降的方向就可以規劃出無碰路徑。
結合上述原理,引入動態獎賞機構對SARSA算法進行改進。對于SARSA算法,假設目標點對Agent既有引力作用也有斥力作用,且引力隨著Agent 與目標位置的接近而增大,斥力則隨著Agent與目標位置的接近而減小,可引入動態獎賞機構將目標點對Agent引力與斥力作用分別轉化為Agent執行動作后得到的獎賞和受到的懲罰,引入動態獎賞函數:

(4)
式中:∈(0,∞)為獎賞系數,為當前狀態時Agent和目標距離,+1為后續狀態Agent和目標距離,為取值大于任意位置Agent和目標距離最大值的常數。
由式(4)可知,在Agent每次位置發生變化后,如果離目標更近,則可獲得獎賞,如果離目標更遠,則會受到懲罰(負獎賞),這與強化學習的基本原理一致。分析獎賞函數可知,Agent與目標位置較遠時,在負獎賞的約束下會快速向目標點靠近,而隨著Agent靠近目標點,負獎賞的約束能力逐漸減弱,正獎賞的激勵作用增強,Agent可以在靠近目標點得同時適當探索次優動作(采取次優動作不會受到大力度懲罰),從而順利規劃出最優路徑。改進SARSA算法學習框圖如圖3。

圖3 改進SARSA算法學習框圖
改進SARSA算法的主要改變是在Agent的學習過程中引入動態獎賞機構,Agent執行動作后并不會立即得到獎賞,而是需要待獎賞機構結合環境信息和Agent的狀態變化情況生成實時獎賞,生成的獎賞值能夠反映出Agent當前狀態與任務目標之間的關系。與采取獎勵塑造方式人工設計得獎賞函數相比,此次改進能夠簡化獎賞函數設計過程,提高效率,且動態獎賞函數繼承了人工勢場法良好平滑得控制性能,相對人工設計的固定獎賞而言能夠根據連續預估得代價場信息進行優化搜索,從而具有更為平滑的獎賞累積過程。改進SARSA算法具體流程如算法1所示:
1改進SARSA算法
1) 初始化:(,)=0,?(,)∈×
2) repeat (對于每一個迭代回合)
3) 初始化狀態
4) 狀態下,根據貪婪策略選擇動作
5) repeat (對于回合中的每一步)
6) 采取動作,獲得后續狀態+1
7) 比較狀態和狀態+1獲得獎賞+1
8) 在狀態+1下,根據貪婪策略選擇動作+1
9)(,)=(,)+(+1+(+1,+1)-(,))
10)←+1,←+1
11) end repeat (為終止狀態)
12) end repeat (訓練結束)
13) 輸出Q表
為了驗證改進SARSA算法性能,基于本文構建的模型環境選擇傳統SARSA算法和改進SARSA算法進行對比實驗。結合柵格戰場,將Agent當前狀態(飛行高度、飛行距離、是否墜機和是否被雷達偵察到)做為算法輸入,直升機CGF(Agent)在柵格內運動方向為前、后、上、下4個方向,分別用F、B、U、D表示,這樣此次訓練形成的Q表容量為500×4,Agent起始位置在(1,1.0)處,雷達位置為(50,0.1)。按照算法1流程,算法完成初始化得到Q表后,結合當前Agent狀態信息根據貪婪策略選擇相應動作,動作執行完畢得到對應獎賞對Q表進行更新,待迭代完成得到經過訓練的Q表,Agent依據訓練過的Q表行動便能得到規劃路徑。此次對比實驗的目的是驗證改進SARSA算法性能,因此2種算法均采用相同參數,其中學習率為0.01,衰減因子為0.1,探索因子為0.9,傳統SARSA算法獎賞函數表示為

(5)
改進SARSA算法獎賞函數表示為

(6)
式中: failure代表直升機CGF墜機或者被雷達發現,success和safety分別代表直升機CGF完成任務以及自身安全,對比式(5)和式(6)可知傳統SARSA算法通過獎勵塑造方式對Agent動作進行了約束,改進SARSA則采用了動態獎賞。在上述參數下分別對2種算法進行1 000次迭代訓練,選擇算法收斂時所需迭代次數和經過訓練CGF完成任務的成功率兩個指標對算法優劣進行評價。為消除實驗誤差,每種算法各進行5次實驗,并對實驗結果進行平均處理,得到表2、表3。

表2 算法收斂所需迭代次數

表3 完成任務成功率
對比實驗結果可知,收斂所需迭代次數方面,改進SARSA算法收斂時所需迭代次數是傳統SARSA算法的一半,能夠以更少迭代次數收斂。完成任務成功率方面,經過1 000次迭代,改進SARSA算法完成任務成功率平均為84%,傳統SARSA僅為72%,成功率提升12%,表明改進SARSA算法擁有更好的訓練效果。
改進SARSA算法收斂速度快的原因在于路徑規劃時,獎賞機構能夠根據Agent狀態實時生成動態獎賞,激勵Agent快速向目標位置靠攏,提高了算法訓練效率。在動態獎賞的作用下,改進SARSA算法能夠綜合環境信息,探索出最優飛行高度進行突襲,從而有效提高完成任務的成功率。
為了使Agent能夠充分利用模型環境信息,利用改進SARSA算法對Agent進行十萬次訓練,訓練結果如圖5所示,圖5中橫坐標為算法迭代次數,縱坐標為直升機CGF(Agent)完成突襲任務的成功率。由圖5可知經過10萬次訓練Agent完成突襲任務的成功率能夠穩定在95%以上,能夠滿足作戰仿真需求。訓練完成之后,將直升機CGF(Agent)完成突襲任務經過的坐標位置輸出,便可繪制出路徑規劃結果,同人工規劃的結果一起作圖得到圖6。

圖5 100 000次訓練結果曲線

圖6 規劃路徑曲線
圖6中橫坐標代表飛行距離,縱坐標代表飛行高度,人工路徑是根據已知模型信息人為規定的安全路徑,智能路徑則是經過算法訓練的Agent完成突襲任務時經過的路徑。由圖可知,經過訓練后直升機CGF(Agent)在飛抵紅方雷達邊界前(5 km處)能夠主動下降飛行高度從而避免被雷達偵察到,之后選擇安全高度(0.1~0.2 km)飛行,且在飛行過程中通過衡量因飛行高度過低而導致墜機概率增加和因飛行高度過高而被雷達偵察到事件之間的關系,從而采取最優飛行高度進行突襲,飛行過程中能夠主動變換飛行高度進一步優化自身行動,最終順利完成突襲任務。對比分析可知,人工規劃的路徑相對固定靈活性差,容易被紅方掌握規律后進行針對性打擊,智能規劃路徑則更為靈活,能夠結合環境信息實時規劃出安全路徑,從而不容易被紅方針對。
改進SARSA算法相對傳統SARSA算法有著更優異的性能,算法收斂速度以及任務完成率都有明顯提升。改進SARSA算法實時性好,能夠使直升機CGF順利規劃出安全路徑,且生成的路徑比人工規劃路徑更靈活。