唐 驍,吳建設
(1.江南機電設計研究所,貴州 貴陽 550009;2.西安電子科技大學,陜西 西安 710071)
火力分配問題[1]研究如何分配武器單元打擊敵方目標,以取得最佳的打擊效果。其本質是非線性組合優化問題,隨著武器單元及目標數量的增長,解空間的大小也呈指數增長,是一個NP 完全問題。常用的火力分配方法,有枚舉法、匈牙利算法以及動態規劃算法等傳統方法,也有遺傳算法、蟻群算法以及粒子群算法之類的啟發式算法。傳統方法原理簡單,但是流程較為繁瑣,難以處理大規模的火力分配問題;啟發式算法利用一些啟發式規則在解空間中進行尋優,可以高效地處理較大規模的火力分配問題。但是上述這些方法都僅適用于靜態火力分配問題中,無法處理動態火力分配問題。而動態火力分配問題是更加貼近真實作戰情況的。并且隨著近些年科學技術的發展,各類高超音速武器的出現,需要更快速地、更準確地打擊目標,這對于火力分配提出了更高的要求。同時在作戰理念上也發生了巨大的變化,主要特點就是從集中式指揮轉向了分布式指揮。即對于聯合作戰來說,要做到去中心化,每個作戰單元可以根據自己的信息進行自主決策。而現有的火力分配方法,無論是傳統方法抑或是啟發式算法,都只能在集中式指揮的場景下處理火力分配問題。
本文借用多智能體深度強化學習的方法,提出了多智能體近端策略優化方法以解決分布式指揮場景下的動態火力分配問題。
火力分配(WTA)是現代防御系統中的核心問題,指根據戰場態勢和武器性能等因素,將一定類型和數量的火力單元以某種準則進行分配,一般以最大化對目標的毀傷概率為目的。火力分配又分為靜態火力分配(SWTA)以及動態火力(DWTA)分配,靜態火力分配只考慮單次的火力分配,而動態火力分配考慮多次分配,且各次分配之間互有影響。
以靜態火力分配為例,假設有m個火力單元,分別用Mi(i=1,2,...,m)表示;共有n個來襲目標,用Tj(j=1,2,...,n)表示;ωj表示第j個目標的威脅度,Pij表示第i個武器對第j個目標的毀傷概率,xkj(k=1,2,...,m)為決策變量,表示是否分配第k個武器打擊第j個目標,xkj=1 表示分配,xkj=0 表示不分配。每個火力單元只能分配給單個目標。通過攻擊最大化對目標的毀傷,可描述為:

傳統的火力分配方法原理簡單,但是在規模較大的情況下難以高效地找到問題的解,現在多用的是啟發式的算法。文獻[2]針對鯨魚優化算法搜索精度低、易早熟的問題,提出了一種改進的鯨魚優化算法,提高了火力分配的收益和速度;文獻[3]通過將混沌優化算子應用到遺傳算法的選擇過程中,增強了遺傳算法的局部搜索及全局尋優能力。這些算法在靜態火力分配的問題中都能夠達到很不錯的效果,規模較大時尋優時間也能令人滿意。但是實際戰場中面臨的實質是動態火力分配的問題,每一次分配都會影響下一次分配。無論是傳統方法還是啟發式方法都難以解決這樣的序貫問題。
在2016年AlphaGo[4]在打敗世界頂尖棋手后,深度強化學習也引起了極大的關注,被視為邁向通用人工智能的重要技術。深度強化學習通過讓智能體與環境進行互動進行自學習。非常適合解決序貫問題。多智能體深度強化學習在此基礎上引入了多個智能體,讓智能體通過合作來解決問題。一般將多智能體所處的環境描述為部分可觀的馬爾科夫博弈。每個智能體只能獲得自己的觀測并據此進行決策,以使整個團隊獲得最大的獎勵。在火力分配問題中,戰場中具有諸多的火力單元,可以將每個火力單元看作一個智能體。這樣的做法不僅能夠適應當下去中心化的作戰理念,同時由于各個火力單元可以進行分散計算,對于算力的要求也更低。
本文采取集中式訓練分布式執行的范式[5],即在訓練階段對所有火力單元進行聯合訓練,在執行階段每個火力單元單獨執行自己的決策。對于每一個火力單元,采取Actor-Critic 結構[6],即每個火力單元都有一個Actor 以及一個Critic。每個火力單元的Actor 根據自己的觀測進行決策,目標是要使在一場戰斗中毀傷的目標威脅度之和最大,而Critic 僅僅在訓練階段使用,起到幫助Actor 訓練的作用。算法的網絡結構如圖1 所示。

圖1 多智能體近端策略優化算法網絡結構
火力單元i由Critici與Actori構成,其中Actori接收局部觀測oi輸出決策向量,但是由于實際情況中有些操作無法進行,因此要對該輸出的決策向量進行Mask 操作[7],最后得到最終的決策ai。而Critici僅在訓練階段使用,根據集中式訓練分布式執行的框架,為了提升訓練效率需要充分利用各智能體獲取的信息。具體操作為,將所有火力單元的局部觀測進行拼接得到全局狀態的近似向量,將該向量輸入到火力單元i的Critici得到狀態價值Vi以指導Actori做出合理的決策。在訓練過程中,參數為θi的Actori的優化目標為:


該式由TD-error 的方式[9]得到,其中是第k步的目標獎勵,B 為批量大小,sk為第k步的近似全局狀態信息,由所有智能體在第k步的觀測向量拼接得到。
實驗場景考慮空襲場景,假設敵方對我方某要地進行打擊。我方防空武器系統有10個火力單元,分別為3種類型的防空武器,其中,5個火力單元為一型武器,3個火力單元為二型武器,2個火力單元為三型武器。各型武器的裝填時間分別為0、1、2,單位為防空系統的時間步(發現目標到發射的時間),裝填時間為0 表示其裝填時間小于1 時間步。敵方具有無人機、巡航導彈、戰斗機、轟炸機、戰術導彈5 種類型的空襲兵器。其數量比約為10∶6∶4∶3∶1。設探測到的來襲目標均為符合攔截條件,對于符合攔截條件的目標,各型攔截武器對其毀傷概率僅與來襲目標類型有關。由于來襲目標類型、突防能力、殺傷力各不相同,同類型的來襲目標威脅度在一定范圍內。表1 為環境具體數據,包含威脅度及毀傷概率。

表1 環境參數
每一場防空作戰,設定空襲方對我方進行30 輪空襲,我方武器儲備充足,對方最大空襲能力為10,即每一時間步空襲方最多會有由各類型空襲兵器組合成的10個目標。對于每個來襲目標,我方只能在當前時間步內將其摧毀。對于判定目標是否被摧毀,由環境生成隨機數,若小于當前攔截武器對目標的毀傷概率則判定為摧毀。同時,在分布式指揮場景下,令每個火力單元僅能觀測到來襲目標的信息,但是無法獲取其他火力單元對于攔截目標選擇的信息。我方最終目的是在一場防空作戰內,使被摧毀來襲目標的威脅度之和盡可能高。
由于當前并沒有能夠適用于分布式指揮下動態火力分配問題的算法。因此本文選取文獻中的算法,并對其進行適當調整,使其能夠適應動態火力分配問題。然而該算法僅適用于集中式指揮場景,因此在用該算法模擬時,作戰場景調整為集中式指揮的方式,即算法可以根據所有現有信息為所有火力單元統一分配目標。
具體做法是,由于動態火力分配可以看作一次次的靜態火力分配,因此對于每一時間步的情況當作靜態火力分配處理。每一時間步不同的量為來襲目標的類型和數量,此外由于裝填時間的存在,另一個每一時間步會不同的量為可開火的火力單元數量。綜上,在每一時間步中,改變粒子的編碼長度,令其長度為當前可開火的火力單元數量,并調整其合法區間在來襲目標的數量之內。每一時間步均設種群規模為30,迭代次數為200。
對于多智能體近端策略方法來說,令每個火力單元的局部觀測向量(即火力單元的Actor 的輸入向量)為來襲目標的威脅度信息,當前火力單元對于當前來襲目標的毀傷概率以及當前火力單元的裝填信息。同時為了訓練的穩定性,對來襲目標按威脅度由大到小進行了排序。另外,當當前火力單元處于裝填狀態無法進行攔截時,對于向量中毀傷概率的部分進行置零操作。輸出動作設為11 維,分別代表不發射、攔截1 號目標、……、攔截10 號目標。應注意的是,神經網絡的輸出需要設置為定長,根據實際情況是可以改變其維度的。
在實驗中,使用多智能體近端策略優化方法進行50 000 代訓練并記錄的平均獎勵,這里的平均獎勵為一場防空作戰中所摧毀的來襲目標威脅度之和。作為對比,使用粒子群優化算法在防空作戰場景中進行20 次仿真,記錄仿真中取得的最優獎勵、最差獎勵并計算20次仿真的平均獎勵。實驗結果如圖2 所示,可以看到經過50 000 代訓練,多智能體近端策略優化方法的平均獎勵超過了40。圖中的三條虛線分別為粒子群優化算法進行20 次仿真的最優獎勵、最差獎勵以及平均獎勵。

圖2 多智能體近端策略優化的訓練結果
從圖2 可以看到多智能體近端策略優化方法的攔截效果要遠遠超過粒子群優化算法,為了說明這樣的差距是如何產生,接下來的實驗中選取相同的連續3 輪空襲的防空場景,分別令粒子群算法以及多智能體近端策略優化方法進行分配。并且,在該實驗中,所有武器單元在一開始都處于可開火的狀態。表2 為3 輪空襲中來襲目標的情況。其中類型一欄1-5 分別代表無人機、巡航導彈、戰斗機、轟炸機以及戰術導彈。

表2 來襲目標情況
從表中可以發現,敵方在第一輪空襲中采取了飽和式攻擊,但是同時又以威脅度較低的無人機及巡航導彈為主;隨后第二輪空襲中敵方投入了戰斗機搭配無人機的攻擊方式;第三輪敵方則使用了各種類型空襲兵器的搭配,并且還包含威脅度極高的戰術導彈。
表3為粒子群優化算法所做分配,需要說明的是在火力單元一欄中,火力單元1-5 為一型武器,火力單元6-8 為二型武器,火力單元9 和10 為三型武器。可以看到在進行第一輪攔截時,所有的火力單元都選擇了目標進行攔截。這就導致在第二輪攔截中,有一半的火力單元處于無法開火的狀態,能夠開火的火力單元均為一型武器,也無法高效地對戰斗機進行攔截。在第三輪中,盡管二型武器完成裝填,但是對于戰術導彈有較高攔截效率的三型武器都處于無法開火的狀態。
表4為多智能體近端策略優化算法所做的分配,火力單元一欄的表示與表3 相同。可以看到在面對第一輪飽和攻擊時,防空系統放過了近一半的目標,在第二輪和第三輪攔截時,都只有一個火力單元處在裝填的狀態。并且在最為復雜嚴峻的第三輪空襲中對所有的來襲目標都進行了分配,并且威脅最大的彈道導彈都分配了三型武器進行攔截。

表3 粒子群優化算法的分配情況

表4 多智能體近端策略優化算法的分配情況
根據上面的實驗,可以發現,在動態火力分配問題中,由于有了時間維度的考量,每一次分配就需要考慮對于之后分配可能會產生的影響。粒子群優化算法亦或是其他的啟發式算法以及傳統的方法都無法考量時間維度上一次分配可能會對后續分配產生的影響。而在多智能體近端策略優化算法中,盡管是分布式指揮方式,但是火力單元之間依然存在非常好的合作,并且其能夠未雨綢繆,為未來的風險預留武器。
本文針對當前無論是啟發式算法或是傳統方法都難以處理分布式指揮下的動態火力分配問題,引入了多智能體深度強化學習,提出了使用多智能體近端策略優化方法,采取集中式訓練分布式執行框架以及Actor-Critic 框架。通過實驗證明了該方法能夠有效地處理分布式指揮下的動態火力分配問題。為研究處理分布式場景下的動態火力分配提供了參考。對于該研究未來的方向,可以考慮如何在智能體數量大規模增加時,處理智能體中Critic 的輸入向量以降低計算量。