汪 鑫,高 巖,陳 逸,邱靖鈞
華東師范大學(xué) 計算機科學(xué)與軟件工程學(xué)院,上海200062
作戰(zhàn)班組的行為建模是戰(zhàn)術(shù)仿真領(lǐng)域中的關(guān)鍵問題[1],常見的行為建模方法有FSM(Finite State Machine)[2]、規(guī)則系統(tǒng)[3-4]、數(shù)據(jù)驅(qū)動[5-6]、行為樹[7]、HTN等。FSM方法雖然在結(jié)構(gòu)上清晰、簡單,邏輯關(guān)系明確,系統(tǒng)實現(xiàn)相對容易,但難以實現(xiàn)復(fù)雜的行為表示。基于規(guī)則系統(tǒng)的推理方式具有知識表示容易、適應(yīng)性良好等特點。數(shù)據(jù)驅(qū)動方法利用機器學(xué)習(xí)的方法對實體行為進行建模,但需要大量的數(shù)據(jù)作為支撐,且無法對其產(chǎn)生的模型進行準(zhǔn)確的驗證[8]。行為樹被廣泛地應(yīng)用于各種行為建模中,其利用樹形結(jié)構(gòu)來表示行為節(jié)點,可以采用事件驅(qū)動的方式執(zhí)行行為樹,在行為的描述和決策的效率上都具有更好的表現(xiàn),且便于對模型進行維護。HTN[9]是人工智能規(guī)劃領(lǐng)域常用的方法之一,常見的HTN規(guī)劃器有NOAH、SIPE、O-Plan、SHOP等[10],它們根據(jù)相關(guān)領(lǐng)域知識,對將復(fù)雜抽象的任務(wù)分解成越來越小的子任務(wù),直到出現(xiàn)的任務(wù)都可以通過執(zhí)行規(guī)劃動作就能完成為止,與人的思維模式較為接近,這是其他方法所不具備,但在輸入規(guī)模較大時,求解過程容易變成NP完全問題。
戰(zhàn)場中虛擬兵力通常按作戰(zhàn)任務(wù)被劃分為多個作戰(zhàn)編組,如步槍組、機槍組、反坦克組、火箭筒組等。每個班組成員數(shù)量通常為3~5人,成員攜帶不同的武器,執(zhí)行不同的戰(zhàn)術(shù)動作,多個班組之間以及組內(nèi)士兵之間在執(zhí)行戰(zhàn)術(shù)命令過程中會采用火力吸引、迂回包抄、選擇打擊目標(biāo)、火力分配等配合行動,同時單個士兵的行為又會受到環(huán)境因素的影響。單一的行為建模難以同時表達班組間的協(xié)同和成員個體的行為,需要針對班組和成員實體兩個層次分別進行建模。班組層關(guān)注執(zhí)行任務(wù)時成員間的協(xié)同性,利用行為樹進行建模相比其他方法具有更強的描述能力、更高的執(zhí)行效率,更好的維護性。個體層關(guān)注的是士兵根據(jù)環(huán)境等因素能夠動態(tài)規(guī)劃行動的能力,例如士兵在發(fā)動攻擊時需要完成武器的確認(rèn)、根據(jù)彈藥和自身安全性決定攻擊持續(xù)時間、攻擊完成后重新回到掩體等多個原子任務(wù),采用行為樹建模時,復(fù)雜的層次關(guān)系會帶來過多的行為節(jié)點和過深的樹形結(jié)構(gòu),增加模型的維護難度,由于行為樹每次都從根節(jié)點開始遍歷的特性,會增加CPU損耗,降低行為樹的效率,并且行為樹難以表達對未來的推理能力。雖然HTN在輸入規(guī)模較大時可能會變成NP完全問題,但將其應(yīng)用于小規(guī)模輸入的士兵個體行為規(guī)劃中,通過一定的優(yōu)化能夠有效避免此問題,且HTN規(guī)劃最大的優(yōu)勢是能夠自然地描述并推理士兵執(zhí)行任務(wù)的過程,能夠有效提高模型對個體行為描述的表達能力,彌補行為樹的不足。
本文基于行為樹和HTN方法提出了班組戰(zhàn)術(shù)行為的層次模型,基于行為樹的班組決策層和基于HTN的實體執(zhí)行層。班組決策層中,決策行為樹根據(jù)戰(zhàn)術(shù)命令為班組成員分配各自的具體任務(wù)目標(biāo),并就班組決策應(yīng)考慮環(huán)境與敵我態(tài)勢的問題引入了TPS[11]方法,通過利用評估函數(shù)對周圍環(huán)境因素的定量評估對戰(zhàn)場環(huán)境和敵我態(tài)勢進行分析,選擇最有利的戰(zhàn)術(shù)位置。實體執(zhí)行層中,HTN的規(guī)劃算法根據(jù)實體獲得的具體命令以及對環(huán)境的感知信息,對復(fù)合任務(wù)進行不斷地分解得到一系列原子任務(wù),構(gòu)造出實體的行動計劃,自然地描述和推理實體執(zhí)行命令的過程。
本文提出的基于行為樹和HTN的班組作戰(zhàn)層次行為模型,在模型層次上分為了基于行為樹模型的班組決策層和基于HTN的作戰(zhàn)實體執(zhí)行層。
班組層次行為模型的整體結(jié)構(gòu)如圖1所示。班組在接收到戰(zhàn)術(shù)命令后,班組決策層會根據(jù)戰(zhàn)術(shù)命令與班組狀態(tài)通過行為樹模型為班組中各個作戰(zhàn)實體分配具體的任務(wù)和目標(biāo)。作戰(zhàn)實體接收到行為樹分配的具體任務(wù)后,執(zhí)行由HTN算法規(guī)劃生成的計劃來完成當(dāng)前戰(zhàn)術(shù)目標(biāo)。
圖1 班組層次行為模型整體結(jié)構(gòu)
首先對步兵班組執(zhí)行壓制戰(zhàn)術(shù)命令的過程中采用的行動策略進行了分析,然后根據(jù)分析結(jié)果設(shè)計了班組決策行為樹的總體結(jié)構(gòu)和壓制行為子樹。最后針對影響戰(zhàn)術(shù)位置選擇的敵我因素進行了分析與建模。
如圖2所示,現(xiàn)有黑白兩組士兵正在進行對抗,白組需要前往掩體Coverb處對黑組進行壓制。
圖2 戰(zhàn)場示意圖
按照一般戰(zhàn)術(shù)執(zhí)行的原則,白組為了確保在移動至Coverb過程中的安全性,必然不能全隊成員一同移動,需要相互掩護,協(xié)同移動,即分配成員火力掩護和移動。整個過程如圖3所示,首先圖3(a)中白組整體移動至掩體Coverc處;然后圖3(b)中,成員S1與S2對敵方進行火力壓制,S3在S1與S2的掩護下,移動至Coverb;圖3(c)中,S3移動至Coverb后對敵人進行火力壓制,S1與S2在S3的掩護下移動至Coverb;最終圖3(d)中,S1、S2與S3到達Coverc一起對敵方進行火力壓制。
在上面的分析中,步兵班組根據(jù)掩體的位置,動態(tài)地制定戰(zhàn)術(shù)行為,具有一定的不確定性,且班組的戰(zhàn)術(shù)行為被分解為若干個基本行為,例如壓制行為中涉及了需找掩體、火力掩護、移動等行為,且隨著環(huán)境的變化,每個班組成員所承當(dāng)?shù)娜蝿?wù)也有所不同,以此達到協(xié)同行動的目的。
行為樹是有限狀態(tài)機和層次有限狀態(tài)機的改進,采用樹形結(jié)構(gòu)設(shè)計,由不同職責(zé)的節(jié)點連接構(gòu)成,包括順序節(jié)點、條件節(jié)點、執(zhí)行節(jié)點。順序節(jié)點負(fù)責(zé)順序執(zhí)行所屬的所有子節(jié)點,選擇節(jié)點根據(jù)規(guī)則選擇其中一個子節(jié)點進行執(zhí)行,條件節(jié)點判斷條件是否成立,執(zhí)行節(jié)點負(fù)責(zé)執(zhí)行行為。
如圖4所示,在行為樹中,本文按照班組的戰(zhàn)術(shù)行為構(gòu)建了機動子樹、攻擊子樹等,每個子樹中又分別包括多種行為子樹,例如攻擊子樹中又包含壓制子樹、掩護子樹等。行為樹會根據(jù)當(dāng)前的戰(zhàn)術(shù)命令選擇對應(yīng)行為子樹,并對每個行為子樹分別進行建模。例如壓制行為子樹對圖3中壓制行過程進行了建模。其中條件1為是否到達目標(biāo)點,條件2為是否處于安全位置。
圖4 行為樹整體設(shè)計
班組在進行決策時,需要在執(zhí)行任務(wù)的同時考慮成員的安全,這也影響行為決策的可信度,因此借鑒了TPS方法[12],其核心思想是對環(huán)境和敵我態(tài)勢因素進行評估,選擇相對較優(yōu)的目標(biāo)位置。
TPS方法的種類較多,如布爾矩陣法、感知法、評估法,本文采用較為主流的評估法,通過設(shè)置一系列評估要素和評估函數(shù),對環(huán)境和態(tài)勢進行評估,并參考了文獻[13]。中的動態(tài)過程化作戰(zhàn)戰(zhàn)術(shù)生成算法,獲取距離、威脅源、威脅范圍等信息,經(jīng)由評估函數(shù)的評估與加權(quán)求和后,為班組提供較優(yōu)的選擇。并根據(jù)需求調(diào)整各個評估要素的權(quán)重。
圖3 白組S1、S2和S3三名士兵執(zhí)行壓制行為的過程
以班組壓制過程中掩體的選擇為例,班組會以預(yù)設(shè)的最大距離rmax對周圍地物進行探測,獲取rmax范圍內(nèi)所有可被利用的地物作為候選,再根據(jù)班組與掩體的尋徑距離、武器威脅以及加權(quán)求和對掩體進行評估,按照評估結(jié)果選擇最優(yōu)的掩體作為移動目標(biāo)。
3.3.1 掩體靠近程度評估要素
在對掩體靠近程度的評估中,本文將班組與掩體的距離和敵人與掩體的距離作為評估因素,掩體靠近程度的評估Cdis如式(1)所示,Cdis越大意味著掩體越安全。
其中,cs為班組與掩體的距離,ce為敵人與掩體的距離,班組與掩體越近評分越高,敵人與掩體越近評分越低。ωs和ωe和分別為兩者的權(quán)重,ωs,ωe>0。
班組與掩體的距離cs與班組中每個成員與掩體的距離相關(guān),由于士兵在沒有掩體的情況下移動得越遠,潛在的危險越大,所以采用指數(shù)函數(shù)進行評估,具體如式(2)所示:
其中,dis()Si為士兵Si到掩體的尋徑距離,αs為調(diào)節(jié)因子,能夠針對具體任務(wù)進行調(diào)節(jié),αs>0。
與cs類似,敵人與掩體的距離評估ce如式(3)所示,ce<0。其中αs為調(diào)節(jié)因子,且αs>0,Ei表示士兵探測最大距離rmax內(nèi)的敵人。
3.3.2 武器威脅評估要素
與掩體評估類似,武器威脅的評估Cthreat考慮了班組自身武器和敵人武器的影響,并將掩體防護度納入評估因素。如式(4)所示,cte為敵人武器威脅,cts為自身武器威脅,權(quán)重ωte,ωts>0。
由于武器的種類繁多,且攻擊方式不同,這里主要分為兩大類:范圍攻擊武器(Indir)和單點攻擊武器(Dir)。例如手雷、榴彈、火箭筒等為范圍攻擊武器,步槍、狙擊槍等為單點攻擊武器。其中范圍攻擊武器會在一定范圍內(nèi)對敵人造成傷害,且傷害的大小與距離有關(guān),距離越近傷害越高。
敵方武器威脅的評估函數(shù)如式(5)所示,由于敵方武器威脅越大掩體越不安全,所以cte<0。
其中,P代表掩體的抵抗攻擊的有效程度,P越大敵方武器對掩體產(chǎn)生的威脅越小,P∈[0 ,1]。Ei為威脅對象,damageDir和damageIndir分別表示單點攻擊武器和范圍攻擊武器的傷害值。distance( Ei)表示威脅對象與目標(biāo)掩體的距離,rangeIndir( Ei)為范圍攻擊武器的攻擊范圍。敵方武器對掩體的威脅隨距離的增加而減少,范圍攻擊武器的攻擊范圍越大對掩體造成的威脅也越大。同理,對敵方發(fā)動攻擊的有效評估如式(6)所示,表示利用該掩體對敵人發(fā)動攻擊的有效程度,cts≥0。
其中,Si為自身對象,Ej為敵方對象,damageDir()Si和damageIndir( Si)分別表示自身武器的傷害值,distance( Ei)表示敵方與掩體的距離,rangeIndir( Si)表示自身范圍攻擊武器的攻擊范圍。
班組決策層完成為班組中每個成員的任務(wù)分配后,作戰(zhàn)實體需要通過HTN規(guī)劃器獲取并執(zhí)行計劃,本章介紹執(zhí)行層的結(jié)構(gòu)設(shè)計以及HTN規(guī)劃器的規(guī)劃過程。
執(zhí)行層的整體結(jié)構(gòu)如圖5所示。其中基礎(chǔ)屬性為士兵的生命值、彈藥數(shù)量等信息;命令為班組決策層經(jīng)過決策為士兵分配的具體任務(wù)目標(biāo),如火力壓制,移動至掩體等;同時班組成員需要掩護這一信息會以消息的新式傳送到狀態(tài)中;士兵實體感知器所接收到來著外界的刺激,如察覺到敵人,將作為威脅傳送至狀態(tài)中。HTN規(guī)劃器需要根據(jù)當(dāng)前的狀態(tài)信息構(gòu)造士兵接下來的行動計劃,每當(dāng)狀態(tài)發(fā)生改變,HTN就會重新搜索并構(gòu)建新的計劃。
圖5 實體執(zhí)行層架構(gòu)
考慮到作戰(zhàn)仿真系統(tǒng)對實時性有著較高的要求,且傳統(tǒng)HTN規(guī)劃器可能由于分解順序不當(dāng)導(dǎo)致計劃的生成變?yōu)镹P完全問題[14],因此本文采用了HTN規(guī)劃器眾多實現(xiàn)中的TFD(Total-order Forward Decomposition)規(guī)劃,它屬于STN(Simple Task Network),將復(fù)合任務(wù)的先后順序直接作為其產(chǎn)生計劃的依據(jù),雖然會降低HTN規(guī)劃的靈活性,并且不能確保規(guī)劃結(jié)果的絕對最優(yōu),但在任務(wù)網(wǎng)絡(luò)過于復(fù)雜時能有效降低HTN規(guī)劃的時間和風(fēng)險,保證士兵執(zhí)行命令時的一致性。最后由實體控制器控制士兵實體完成計劃的執(zhí)行。
除了狀態(tài)信息,HTN規(guī)劃器的工作還依賴于任務(wù)網(wǎng)絡(luò)。通過對狀態(tài)的判斷,不斷將復(fù)合任務(wù)分解為更具體的子任務(wù),直至所有的子任務(wù)都為原子任務(wù),以此形成最終的計劃。狀態(tài)空間的改變會導(dǎo)致HTN的重新規(guī)劃,因此在設(shè)計狀態(tài)空間時需要避免數(shù)據(jù)的過于復(fù)雜,對連續(xù)的數(shù)據(jù)離散化,降低規(guī)劃的復(fù)雜性。
步兵實體狀態(tài)主要包含是否遇敵、是否攻擊、彈藥數(shù)量、健康狀態(tài)等,將健康狀態(tài)、彈藥數(shù)量等數(shù)值信息離散化為健康狀態(tài)(健康、受傷、死亡),彈藥數(shù)量(高、中、低、無)。
如圖6所示,根任務(wù)由士兵的多種方法(行為)組成,每個方法擁有特定的前置條件,如命令、基礎(chǔ)屬性、消息、威脅等,同時方法的排列順序決定了該方法的優(yōu)先級[15],分解時,由根任務(wù)開始,遍歷其包含的方法,當(dāng)某個方法的前置條件被滿足且優(yōu)先級比當(dāng)前執(zhí)行的任務(wù)更高時,將該方法的子任務(wù)加入推理的任務(wù)棧中繼續(xù)進行推理。
圖6 任務(wù)網(wǎng)絡(luò)結(jié)構(gòu)
子任務(wù)可能是復(fù)合任務(wù),也可能是原子任務(wù),復(fù)合任務(wù)又包含多個方法,原子任務(wù)不包含任何方法,是士兵可以執(zhí)行的具體操作。例如攻擊任務(wù)是復(fù)合任務(wù),其所包含的子任務(wù)有武器確認(rèn)、位置檢查、開火攻擊和隱蔽四個方法,其中武器切換是原子任務(wù),直接控制士兵切換對應(yīng)武器,而攻擊位置檢查是復(fù)合任務(wù),包含位置檢查和位置選擇兩個子任務(wù)。
規(guī)劃算法是HTN的核心,本文基于TFD設(shè)計了任務(wù)網(wǎng)絡(luò)的規(guī)劃算法。規(guī)劃過程如算法1所示,算法中維護了任務(wù)處理棧TStack和分解記錄棧DStack,其中TStack存儲著由深度優(yōu)先搜索到的任務(wù)信息,用以構(gòu)造最優(yōu)計劃,而DStack存儲著任務(wù)分解過程中每一次的分解信息,當(dāng)分解后的任務(wù)不滿足推理狀態(tài)時,能夠根據(jù)DStack中的信息,將任務(wù)分解恢復(fù)到之前的狀態(tài)。p存儲著當(dāng)前任務(wù)的優(yōu)先級,決定了該任務(wù)是否可以繼續(xù)被分解或是否可以被執(zhí)行,若低于當(dāng)前執(zhí)行任務(wù)的優(yōu)先級,則算法放棄規(guī)劃。
算法1 HTN規(guī)劃算法
輸入:
Troot:根任務(wù);
s0:初始狀態(tài);
輸出:
P:計劃隊列。
1.TStack={Troot},DStack={},s=s0,p=0;
2.while TStack不為空do
3.T=TStack.Pop();
4. if T是復(fù)合任務(wù)then
5. 尋找滿足條件的方法m
6. if m優(yōu)先級大于p then
8. TStack.Push(m );
9. else
10. return;
11. end if
12. else
13. if T滿足狀態(tài)s then
14. 修改狀態(tài)s
15. P.Push(T);
16. else
18. end if
19. end if
20.end while
21. return P
為了驗證作戰(zhàn)班組行為模型的有效性,本文搭建了紅藍雙方進行對抗的仿真戰(zhàn)場實驗環(huán)境,紅方負(fù)責(zé)進攻,藍方負(fù)責(zé)防守,場景及兵力構(gòu)成如圖7所示。藍方利用高臺、碉堡、掩體進行防衛(wèi),紅方利用掩體和小隊間的協(xié)同,進攻藍方。
圖7 紅藍對抗仿真戰(zhàn)場及兵力構(gòu)成
仿真戰(zhàn)場實驗環(huán)境的開發(fā)平臺:Visual Studio 2017和Unreal Engine 4,軟硬件環(huán)境:Intel i5-7500、16 GB內(nèi)存、GTX1050ti、Windows 10操作系統(tǒng)。
其中紅方進攻的作戰(zhàn)想定為:紅方小隊利用墻壁作為掩體躲避藍方攻擊;小隊R1和R2執(zhí)行火力壓制,在正面與藍方交戰(zhàn);小隊R2停止火力壓制,利用石頭掩體進行正面突擊;小隊R4利用火箭筒爆破藍方碉堡。
實驗中紅藍班組的具體行動過程如圖8所示。從圖中可以看出,紅方基本能夠正確依靠作戰(zhàn)環(huán)境展開行動,并且最終戰(zhàn)勝藍方,驗證了班組層次行為模型的有效性。
圖8 紅藍雙方交戰(zhàn)過程
本文提出了基于行為樹和HTN的班組作戰(zhàn)層次行為模型,將戰(zhàn)術(shù)命令的執(zhí)行分為班組決策和實體執(zhí)行兩個層次。在班組決策層,通過對步兵班組軍事行動作戰(zhàn)規(guī)律的研究與分析,設(shè)計了步兵班組決策層的父子行為樹結(jié)構(gòu),并就班組決策應(yīng)考慮環(huán)境與敵我態(tài)勢的問題引入了TPS方法,利用距離、威脅因素對戰(zhàn)術(shù)位置進行評估。在實體執(zhí)行層的HTN設(shè)計中,闡述了實體執(zhí)行層的架構(gòu),并對HTN規(guī)劃的狀態(tài)空間和任務(wù)網(wǎng)絡(luò)進行了分析與設(shè)計,提出的規(guī)劃算法根據(jù)實體獲得的具體命令以及對環(huán)境的感知信息,對復(fù)合任務(wù)進行不斷地分解,構(gòu)造實體的行動計劃。最后通過搭建紅藍對抗仿真戰(zhàn)場實驗環(huán)境,驗證了作戰(zhàn)班組層次行為模型的有效性。