唐 驍,吳建設(shè)
(1.江南機(jī)電設(shè)計(jì)研究所,貴州 貴陽 550009;2.西安電子科技大學(xué),陜西 西安 710071)
火力分配問題[1]研究如何分配武器單元打擊敵方目標(biāo),以取得最佳的打擊效果。其本質(zhì)是非線性組合優(yōu)化問題,隨著武器單元及目標(biāo)數(shù)量的增長,解空間的大小也呈指數(shù)增長,是一個(gè)NP 完全問題。常用的火力分配方法,有枚舉法、匈牙利算法以及動(dòng)態(tài)規(guī)劃算法等傳統(tǒng)方法,也有遺傳算法、蟻群算法以及粒子群算法之類的啟發(fā)式算法。傳統(tǒng)方法原理簡(jiǎn)單,但是流程較為繁瑣,難以處理大規(guī)模的火力分配問題;啟發(fā)式算法利用一些啟發(fā)式規(guī)則在解空間中進(jìn)行尋優(yōu),可以高效地處理較大規(guī)模的火力分配問題。但是上述這些方法都僅適用于靜態(tài)火力分配問題中,無法處理動(dòng)態(tài)火力分配問題。而動(dòng)態(tài)火力分配問題是更加貼近真實(shí)作戰(zhàn)情況的。并且隨著近些年科學(xué)技術(shù)的發(fā)展,各類高超音速武器的出現(xiàn),需要更快速地、更準(zhǔn)確地打擊目標(biāo),這對(duì)于火力分配提出了更高的要求。同時(shí)在作戰(zhàn)理念上也發(fā)生了巨大的變化,主要特點(diǎn)就是從集中式指揮轉(zhuǎn)向了分布式指揮。即對(duì)于聯(lián)合作戰(zhàn)來說,要做到去中心化,每個(gè)作戰(zhàn)單元可以根據(jù)自己的信息進(jìn)行自主決策。而現(xiàn)有的火力分配方法,無論是傳統(tǒng)方法抑或是啟發(fā)式算法,都只能在集中式指揮的場(chǎng)景下處理火力分配問題。
本文借用多智能體深度強(qiáng)化學(xué)習(xí)的方法,提出了多智能體近端策略優(yōu)化方法以解決分布式指揮場(chǎng)景下的動(dòng)態(tài)火力分配問題。
火力分配(WTA)是現(xiàn)代防御系統(tǒng)中的核心問題,指根據(jù)戰(zhàn)場(chǎng)態(tài)勢(shì)和武器性能等因素,將一定類型和數(shù)量的火力單元以某種準(zhǔn)則進(jìn)行分配,一般以最大化對(duì)目標(biāo)的毀傷概率為目的。火力分配又分為靜態(tài)火力分配(SWTA)以及動(dòng)態(tài)火力(DWTA)分配,靜態(tài)火力分配只考慮單次的火力分配,而動(dòng)態(tài)火力分配考慮多次分配,且各次分配之間互有影響。
以靜態(tài)火力分配為例,假設(shè)有m個(gè)火力單元,分別用Mi(i=1,2,...,m)表示;共有n個(gè)來襲目標(biāo),用Tj(j=1,2,...,n)表示;ωj表示第j個(gè)目標(biāo)的威脅度,Pij表示第i個(gè)武器對(duì)第j個(gè)目標(biāo)的毀傷概率,xkj(k=1,2,...,m)為決策變量,表示是否分配第k個(gè)武器打擊第j個(gè)目標(biāo),xkj=1 表示分配,xkj=0 表示不分配。每個(gè)火力單元只能分配給單個(gè)目標(biāo)。通過攻擊最大化對(duì)目標(biāo)的毀傷,可描述為:
傳統(tǒng)的火力分配方法原理簡(jiǎn)單,但是在規(guī)模較大的情況下難以高效地找到問題的解,現(xiàn)在多用的是啟發(fā)式的算法。文獻(xiàn)[2]針對(duì)鯨魚優(yōu)化算法搜索精度低、易早熟的問題,提出了一種改進(jìn)的鯨魚優(yōu)化算法,提高了火力分配的收益和速度;文獻(xiàn)[3]通過將混沌優(yōu)化算子應(yīng)用到遺傳算法的選擇過程中,增強(qiáng)了遺傳算法的局部搜索及全局尋優(yōu)能力。這些算法在靜態(tài)火力分配的問題中都能夠達(dá)到很不錯(cuò)的效果,規(guī)模較大時(shí)尋優(yōu)時(shí)間也能令人滿意。但是實(shí)際戰(zhàn)場(chǎng)中面臨的實(shí)質(zhì)是動(dòng)態(tài)火力分配的問題,每一次分配都會(huì)影響下一次分配。無論是傳統(tǒng)方法還是啟發(fā)式方法都難以解決這樣的序貫問題。
在2016年AlphaGo[4]在打敗世界頂尖棋手后,深度強(qiáng)化學(xué)習(xí)也引起了極大的關(guān)注,被視為邁向通用人工智能的重要技術(shù)。深度強(qiáng)化學(xué)習(xí)通過讓智能體與環(huán)境進(jìn)行互動(dòng)進(jìn)行自學(xué)習(xí)。非常適合解決序貫問題。多智能體深度強(qiáng)化學(xué)習(xí)在此基礎(chǔ)上引入了多個(gè)智能體,讓智能體通過合作來解決問題。一般將多智能體所處的環(huán)境描述為部分可觀的馬爾科夫博弈。每個(gè)智能體只能獲得自己的觀測(cè)并據(jù)此進(jìn)行決策,以使整個(gè)團(tuán)隊(duì)獲得最大的獎(jiǎng)勵(lì)。在火力分配問題中,戰(zhàn)場(chǎng)中具有諸多的火力單元,可以將每個(gè)火力單元看作一個(gè)智能體。這樣的做法不僅能夠適應(yīng)當(dāng)下去中心化的作戰(zhàn)理念,同時(shí)由于各個(gè)火力單元可以進(jìn)行分散計(jì)算,對(duì)于算力的要求也更低。
本文采取集中式訓(xùn)練分布式執(zhí)行的范式[5],即在訓(xùn)練階段對(duì)所有火力單元進(jìn)行聯(lián)合訓(xùn)練,在執(zhí)行階段每個(gè)火力單元單獨(dú)執(zhí)行自己的決策。對(duì)于每一個(gè)火力單元,采取Actor-Critic 結(jié)構(gòu)[6],即每個(gè)火力單元都有一個(gè)Actor 以及一個(gè)Critic。每個(gè)火力單元的Actor 根據(jù)自己的觀測(cè)進(jìn)行決策,目標(biāo)是要使在一場(chǎng)戰(zhàn)斗中毀傷的目標(biāo)威脅度之和最大,而Critic 僅僅在訓(xùn)練階段使用,起到幫助Actor 訓(xùn)練的作用。算法的網(wǎng)絡(luò)結(jié)構(gòu)如圖1 所示。
圖1 多智能體近端策略優(yōu)化算法網(wǎng)絡(luò)結(jié)構(gòu)
火力單元i由Critici與Actori構(gòu)成,其中Actori接收局部觀測(cè)oi輸出決策向量,但是由于實(shí)際情況中有些操作無法進(jìn)行,因此要對(duì)該輸出的決策向量進(jìn)行Mask 操作[7],最后得到最終的決策ai。而Critici僅在訓(xùn)練階段使用,根據(jù)集中式訓(xùn)練分布式執(zhí)行的框架,為了提升訓(xùn)練效率需要充分利用各智能體獲取的信息。具體操作為,將所有火力單元的局部觀測(cè)進(jìn)行拼接得到全局狀態(tài)的近似向量,將該向量輸入到火力單元i的Critici得到狀態(tài)價(jià)值Vi以指導(dǎo)Actori做出合理的決策。在訓(xùn)練過程中,參數(shù)為θi的Actori的優(yōu)化目標(biāo)為:
該式由TD-error 的方式[9]得到,其中是第k步的目標(biāo)獎(jiǎng)勵(lì),B 為批量大小,sk為第k步的近似全局狀態(tài)信息,由所有智能體在第k步的觀測(cè)向量拼接得到。
實(shí)驗(yàn)場(chǎng)景考慮空襲場(chǎng)景,假設(shè)敵方對(duì)我方某要地進(jìn)行打擊。我方防空武器系統(tǒng)有10個(gè)火力單元,分別為3種類型的防空武器,其中,5個(gè)火力單元為一型武器,3個(gè)火力單元為二型武器,2個(gè)火力單元為三型武器。各型武器的裝填時(shí)間分別為0、1、2,單位為防空系統(tǒng)的時(shí)間步(發(fā)現(xiàn)目標(biāo)到發(fā)射的時(shí)間),裝填時(shí)間為0 表示其裝填時(shí)間小于1 時(shí)間步。敵方具有無人機(jī)、巡航導(dǎo)彈、戰(zhàn)斗機(jī)、轟炸機(jī)、戰(zhàn)術(shù)導(dǎo)彈5 種類型的空襲兵器。其數(shù)量比約為10∶6∶4∶3∶1。設(shè)探測(cè)到的來襲目標(biāo)均為符合攔截條件,對(duì)于符合攔截條件的目標(biāo),各型攔截武器對(duì)其毀傷概率僅與來襲目標(biāo)類型有關(guān)。由于來襲目標(biāo)類型、突防能力、殺傷力各不相同,同類型的來襲目標(biāo)威脅度在一定范圍內(nèi)。表1 為環(huán)境具體數(shù)據(jù),包含威脅度及毀傷概率。
表1 環(huán)境參數(shù)
每一場(chǎng)防空作戰(zhàn),設(shè)定空襲方對(duì)我方進(jìn)行30 輪空襲,我方武器儲(chǔ)備充足,對(duì)方最大空襲能力為10,即每一時(shí)間步空襲方最多會(huì)有由各類型空襲兵器組合成的10個(gè)目標(biāo)。對(duì)于每個(gè)來襲目標(biāo),我方只能在當(dāng)前時(shí)間步內(nèi)將其摧毀。對(duì)于判定目標(biāo)是否被摧毀,由環(huán)境生成隨機(jī)數(shù),若小于當(dāng)前攔截武器對(duì)目標(biāo)的毀傷概率則判定為摧毀。同時(shí),在分布式指揮場(chǎng)景下,令每個(gè)火力單元僅能觀測(cè)到來襲目標(biāo)的信息,但是無法獲取其他火力單元對(duì)于攔截目標(biāo)選擇的信息。我方最終目的是在一場(chǎng)防空作戰(zhàn)內(nèi),使被摧毀來襲目標(biāo)的威脅度之和盡可能高。
由于當(dāng)前并沒有能夠適用于分布式指揮下動(dòng)態(tài)火力分配問題的算法。因此本文選取文獻(xiàn)中的算法,并對(duì)其進(jìn)行適當(dāng)調(diào)整,使其能夠適應(yīng)動(dòng)態(tài)火力分配問題。然而該算法僅適用于集中式指揮場(chǎng)景,因此在用該算法模擬時(shí),作戰(zhàn)場(chǎng)景調(diào)整為集中式指揮的方式,即算法可以根據(jù)所有現(xiàn)有信息為所有火力單元統(tǒng)一分配目標(biāo)。
具體做法是,由于動(dòng)態(tài)火力分配可以看作一次次的靜態(tài)火力分配,因此對(duì)于每一時(shí)間步的情況當(dāng)作靜態(tài)火力分配處理。每一時(shí)間步不同的量為來襲目標(biāo)的類型和數(shù)量,此外由于裝填時(shí)間的存在,另一個(gè)每一時(shí)間步會(huì)不同的量為可開火的火力單元數(shù)量。綜上,在每一時(shí)間步中,改變粒子的編碼長度,令其長度為當(dāng)前可開火的火力單元數(shù)量,并調(diào)整其合法區(qū)間在來襲目標(biāo)的數(shù)量之內(nèi)。每一時(shí)間步均設(shè)種群規(guī)模為30,迭代次數(shù)為200。
對(duì)于多智能體近端策略方法來說,令每個(gè)火力單元的局部觀測(cè)向量(即火力單元的Actor 的輸入向量)為來襲目標(biāo)的威脅度信息,當(dāng)前火力單元對(duì)于當(dāng)前來襲目標(biāo)的毀傷概率以及當(dāng)前火力單元的裝填信息。同時(shí)為了訓(xùn)練的穩(wěn)定性,對(duì)來襲目標(biāo)按威脅度由大到小進(jìn)行了排序。另外,當(dāng)當(dāng)前火力單元處于裝填狀態(tài)無法進(jìn)行攔截時(shí),對(duì)于向量中毀傷概率的部分進(jìn)行置零操作。輸出動(dòng)作設(shè)為11 維,分別代表不發(fā)射、攔截1 號(hào)目標(biāo)、……、攔截10 號(hào)目標(biāo)。應(yīng)注意的是,神經(jīng)網(wǎng)絡(luò)的輸出需要設(shè)置為定長,根據(jù)實(shí)際情況是可以改變其維度的。
在實(shí)驗(yàn)中,使用多智能體近端策略優(yōu)化方法進(jìn)行50 000 代訓(xùn)練并記錄的平均獎(jiǎng)勵(lì),這里的平均獎(jiǎng)勵(lì)為一場(chǎng)防空作戰(zhàn)中所摧毀的來襲目標(biāo)威脅度之和。作為對(duì)比,使用粒子群優(yōu)化算法在防空作戰(zhàn)場(chǎng)景中進(jìn)行20 次仿真,記錄仿真中取得的最優(yōu)獎(jiǎng)勵(lì)、最差獎(jiǎng)勵(lì)并計(jì)算20次仿真的平均獎(jiǎng)勵(lì)。實(shí)驗(yàn)結(jié)果如圖2 所示,可以看到經(jīng)過50 000 代訓(xùn)練,多智能體近端策略優(yōu)化方法的平均獎(jiǎng)勵(lì)超過了40。圖中的三條虛線分別為粒子群優(yōu)化算法進(jìn)行20 次仿真的最優(yōu)獎(jiǎng)勵(lì)、最差獎(jiǎng)勵(lì)以及平均獎(jiǎng)勵(lì)。
圖2 多智能體近端策略優(yōu)化的訓(xùn)練結(jié)果
從圖2 可以看到多智能體近端策略優(yōu)化方法的攔截效果要遠(yuǎn)遠(yuǎn)超過粒子群優(yōu)化算法,為了說明這樣的差距是如何產(chǎn)生,接下來的實(shí)驗(yàn)中選取相同的連續(xù)3 輪空襲的防空?qǐng)鼍?,分別令粒子群算法以及多智能體近端策略優(yōu)化方法進(jìn)行分配。并且,在該實(shí)驗(yàn)中,所有武器單元在一開始都處于可開火的狀態(tài)。表2 為3 輪空襲中來襲目標(biāo)的情況。其中類型一欄1-5 分別代表無人機(jī)、巡航導(dǎo)彈、戰(zhàn)斗機(jī)、轟炸機(jī)以及戰(zhàn)術(shù)導(dǎo)彈。
表2 來襲目標(biāo)情況
從表中可以發(fā)現(xiàn),敵方在第一輪空襲中采取了飽和式攻擊,但是同時(shí)又以威脅度較低的無人機(jī)及巡航導(dǎo)彈為主;隨后第二輪空襲中敵方投入了戰(zhàn)斗機(jī)搭配無人機(jī)的攻擊方式;第三輪敵方則使用了各種類型空襲兵器的搭配,并且還包含威脅度極高的戰(zhàn)術(shù)導(dǎo)彈。
表3為粒子群優(yōu)化算法所做分配,需要說明的是在火力單元一欄中,火力單元1-5 為一型武器,火力單元6-8 為二型武器,火力單元9 和10 為三型武器。可以看到在進(jìn)行第一輪攔截時(shí),所有的火力單元都選擇了目標(biāo)進(jìn)行攔截。這就導(dǎo)致在第二輪攔截中,有一半的火力單元處于無法開火的狀態(tài),能夠開火的火力單元均為一型武器,也無法高效地對(duì)戰(zhàn)斗機(jī)進(jìn)行攔截。在第三輪中,盡管二型武器完成裝填,但是對(duì)于戰(zhàn)術(shù)導(dǎo)彈有較高攔截效率的三型武器都處于無法開火的狀態(tài)。
表4為多智能體近端策略優(yōu)化算法所做的分配,火力單元一欄的表示與表3 相同??梢钥吹皆诿鎸?duì)第一輪飽和攻擊時(shí),防空系統(tǒng)放過了近一半的目標(biāo),在第二輪和第三輪攔截時(shí),都只有一個(gè)火力單元處在裝填的狀態(tài)。并且在最為復(fù)雜嚴(yán)峻的第三輪空襲中對(duì)所有的來襲目標(biāo)都進(jìn)行了分配,并且威脅最大的彈道導(dǎo)彈都分配了三型武器進(jìn)行攔截。
表3 粒子群優(yōu)化算法的分配情況
表4 多智能體近端策略優(yōu)化算法的分配情況
根據(jù)上面的實(shí)驗(yàn),可以發(fā)現(xiàn),在動(dòng)態(tài)火力分配問題中,由于有了時(shí)間維度的考量,每一次分配就需要考慮對(duì)于之后分配可能會(huì)產(chǎn)生的影響。粒子群優(yōu)化算法亦或是其他的啟發(fā)式算法以及傳統(tǒng)的方法都無法考量時(shí)間維度上一次分配可能會(huì)對(duì)后續(xù)分配產(chǎn)生的影響。而在多智能體近端策略優(yōu)化算法中,盡管是分布式指揮方式,但是火力單元之間依然存在非常好的合作,并且其能夠未雨綢繆,為未來的風(fēng)險(xiǎn)預(yù)留武器。
本文針對(duì)當(dāng)前無論是啟發(fā)式算法或是傳統(tǒng)方法都難以處理分布式指揮下的動(dòng)態(tài)火力分配問題,引入了多智能體深度強(qiáng)化學(xué)習(xí),提出了使用多智能體近端策略優(yōu)化方法,采取集中式訓(xùn)練分布式執(zhí)行框架以及Actor-Critic 框架。通過實(shí)驗(yàn)證明了該方法能夠有效地處理分布式指揮下的動(dòng)態(tài)火力分配問題。為研究處理分布式場(chǎng)景下的動(dòng)態(tài)火力分配提供了參考。對(duì)于該研究未來的方向,可以考慮如何在智能體數(shù)量大規(guī)模增加時(shí),處理智能體中Critic 的輸入向量以降低計(jì)算量。