汪 鑫,高 巖,陳 逸,邱靖鈞
華東師范大學 計算機科學與軟件工程學院,上海200062
作戰班組的行為建模是戰術仿真領域中的關鍵問題[1],常見的行為建模方法有FSM(Finite State Machine)[2]、規則系統[3-4]、數據驅動[5-6]、行為樹[7]、HTN等。FSM方法雖然在結構上清晰、簡單,邏輯關系明確,系統實現相對容易,但難以實現復雜的行為表示。基于規則系統的推理方式具有知識表示容易、適應性良好等特點。數據驅動方法利用機器學習的方法對實體行為進行建模,但需要大量的數據作為支撐,且無法對其產生的模型進行準確的驗證[8]。行為樹被廣泛地應用于各種行為建模中,其利用樹形結構來表示行為節點,可以采用事件驅動的方式執行行為樹,在行為的描述和決策的效率上都具有更好的表現,且便于對模型進行維護。HTN[9]是人工智能規劃領域常用的方法之一,常見的HTN規劃器有NOAH、SIPE、O-Plan、SHOP等[10],它們根據相關領域知識,對將復雜抽象的任務分解成越來越小的子任務,直到出現的任務都可以通過執行規劃動作就能完成為止,與人的思維模式較為接近,這是其他方法所不具備,但在輸入規模較大時,求解過程容易變成NP完全問題。
戰場中虛擬兵力通常按作戰任務被劃分為多個作戰編組,如步槍組、機槍組、反坦克組、火箭筒組等。每個班組成員數量通常為3~5人,成員攜帶不同的武器,執行不同的戰術動作,多個班組之間以及組內士兵之間在執行戰術命令過程中會采用火力吸引、迂回包抄、選擇打擊目標、火力分配等配合行動,同時單個士兵的行為又會受到環境因素的影響。單一的行為建模難以同時表達班組間的協同和成員個體的行為,需要針對班組和成員實體兩個層次分別進行建模。班組層關注執行任務時成員間的協同性,利用行為樹進行建模相比其他方法具有更強的描述能力、更高的執行效率,更好的維護性。個體層關注的是士兵根據環境等因素能夠動態規劃行動的能力,例如士兵在發動攻擊時需要完成武器的確認、根據彈藥和自身安全性決定攻擊持續時間、攻擊完成后重新回到掩體等多個原子任務,采用行為樹建模時,復雜的層次關系會帶來過多的行為節點和過深的樹形結構,增加模型的維護難度,由于行為樹每次都從根節點開始遍歷的特性,會增加CPU損耗,降低行為樹的效率,并且行為樹難以表達對未來的推理能力。雖然HTN在輸入規模較大時可能會變成NP完全問題,但將其應用于小規模輸入的士兵個體行為規劃中,通過一定的優化能夠有效避免此問題,且HTN規劃最大的優勢是能夠自然地描述并推理士兵執行任務的過程,能夠有效提高模型對個體行為描述的表達能力,彌補行為樹的不足。
本文基于行為樹和HTN方法提出了班組戰術行為的層次模型,基于行為樹的班組決策層和基于HTN的實體執行層。班組決策層中,決策行為樹根據戰術命令為班組成員分配各自的具體任務目標,并就班組決策應考慮環境與敵我態勢的問題引入了TPS[11]方法,通過利用評估函數對周圍環境因素的定量評估對戰場環境和敵我態勢進行分析,選擇最有利的戰術位置。實體執行層中,HTN的規劃算法根據實體獲得的具體命令以及對環境的感知信息,對復合任務進行不斷地分解得到一系列原子任務,構造出實體的行動計劃,自然地描述和推理實體執行命令的過程。
本文提出的基于行為樹和HTN的班組作戰層次行為模型,在模型層次上分為了基于行為樹模型的班組決策層和基于HTN的作戰實體執行層。
班組層次行為模型的整體結構如圖1所示。班組在接收到戰術命令后,班組決策層會根據戰術命令與班組狀態通過行為樹模型為班組中各個作戰實體分配具體的任務和目標。作戰實體接收到行為樹分配的具體任務后,執行由HTN算法規劃生成的計劃來完成當前戰術目標。

圖1 班組層次行為模型整體結構
首先對步兵班組執行壓制戰術命令的過程中采用的行動策略進行了分析,然后根據分析結果設計了班組決策行為樹的總體結構和壓制行為子樹。最后針對影響戰術位置選擇的敵我因素進行了分析與建模。
如圖2所示,現有黑白兩組士兵正在進行對抗,白組需要前往掩體Coverb處對黑組進行壓制。

圖2 戰場示意圖
按照一般戰術執行的原則,白組為了確保在移動至Coverb過程中的安全性,必然不能全隊成員一同移動,需要相互掩護,協同移動,即分配成員火力掩護和移動。整個過程如圖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一起對敵方進行火力壓制。
在上面的分析中,步兵班組根據掩體的位置,動態地制定戰術行為,具有一定的不確定性,且班組的戰術行為被分解為若干個基本行為,例如壓制行為中涉及了需找掩體、火力掩護、移動等行為,且隨著環境的變化,每個班組成員所承當的任務也有所不同,以此達到協同行動的目的。
行為樹是有限狀態機和層次有限狀態機的改進,采用樹形結構設計,由不同職責的節點連接構成,包括順序節點、條件節點、執行節點。順序節點負責順序執行所屬的所有子節點,選擇節點根據規則選擇其中一個子節點進行執行,條件節點判斷條件是否成立,執行節點負責執行行為。
如圖4所示,在行為樹中,本文按照班組的戰術行為構建了機動子樹、攻擊子樹等,每個子樹中又分別包括多種行為子樹,例如攻擊子樹中又包含壓制子樹、掩護子樹等。行為樹會根據當前的戰術命令選擇對應行為子樹,并對每個行為子樹分別進行建模。例如壓制行為子樹對圖3中壓制行過程進行了建模。其中條件1為是否到達目標點,條件2為是否處于安全位置。

圖4 行為樹整體設計
班組在進行決策時,需要在執行任務的同時考慮成員的安全,這也影響行為決策的可信度,因此借鑒了TPS方法[12],其核心思想是對環境和敵我態勢因素進行評估,選擇相對較優的目標位置。
TPS方法的種類較多,如布爾矩陣法、感知法、評估法,本文采用較為主流的評估法,通過設置一系列評估要素和評估函數,對環境和態勢進行評估,并參考了文獻[13]。中的動態過程化作戰戰術生成算法,獲取距離、威脅源、威脅范圍等信息,經由評估函數的評估與加權求和后,為班組提供較優的選擇。并根據需求調整各個評估要素的權重。

圖3 白組S1、S2和S3三名士兵執行壓制行為的過程
以班組壓制過程中掩體的選擇為例,班組會以預設的最大距離rmax對周圍地物進行探測,獲取rmax范圍內所有可被利用的地物作為候選,再根據班組與掩體的尋徑距離、武器威脅以及加權求和對掩體進行評估,按照評估結果選擇最優的掩體作為移動目標。
3.3.1 掩體靠近程度評估要素
在對掩體靠近程度的評估中,本文將班組與掩體的距離和敵人與掩體的距離作為評估因素,掩體靠近程度的評估Cdis如式(1)所示,Cdis越大意味著掩體越安全。

其中,cs為班組與掩體的距離,ce為敵人與掩體的距離,班組與掩體越近評分越高,敵人與掩體越近評分越低。ωs和ωe和分別為兩者的權重,ωs,ωe>0。
班組與掩體的距離cs與班組中每個成員與掩體的距離相關,由于士兵在沒有掩體的情況下移動得越遠,潛在的危險越大,所以采用指數函數進行評估,具體如式(2)所示:

其中,dis()Si為士兵Si到掩體的尋徑距離,αs為調節因子,能夠針對具體任務進行調節,αs>0。
與cs類似,敵人與掩體的距離評估ce如式(3)所示,ce<0。其中αs為調節因子,且αs>0,Ei表示士兵探測最大距離rmax內的敵人。

3.3.2 武器威脅評估要素
與掩體評估類似,武器威脅的評估Cthreat考慮了班組自身武器和敵人武器的影響,并將掩體防護度納入評估因素。如式(4)所示,cte為敵人武器威脅,cts為自身武器威脅,權重ωte,ωts>0。

由于武器的種類繁多,且攻擊方式不同,這里主要分為兩大類:范圍攻擊武器(Indir)和單點攻擊武器(Dir)。例如手雷、榴彈、火箭筒等為范圍攻擊武器,步槍、狙擊槍等為單點攻擊武器。其中范圍攻擊武器會在一定范圍內對敵人造成傷害,且傷害的大小與距離有關,距離越近傷害越高。
敵方武器威脅的評估函數如式(5)所示,由于敵方武器威脅越大掩體越不安全,所以cte<0。

其中,P代表掩體的抵抗攻擊的有效程度,P越大敵方武器對掩體產生的威脅越小,P∈[0 ,1]。Ei為威脅對象,damageDir和damageIndir分別表示單點攻擊武器和范圍攻擊武器的傷害值。distance( Ei)表示威脅對象與目標掩體的距離,rangeIndir( Ei)為范圍攻擊武器的攻擊范圍。敵方武器對掩體的威脅隨距離的增加而減少,范圍攻擊武器的攻擊范圍越大對掩體造成的威脅也越大。同理,對敵方發動攻擊的有效評估如式(6)所示,表示利用該掩體對敵人發動攻擊的有效程度,cts≥0。

其中,Si為自身對象,Ej為敵方對象,damageDir()Si和damageIndir( Si)分別表示自身武器的傷害值,distance( Ei)表示敵方與掩體的距離,rangeIndir( Si)表示自身范圍攻擊武器的攻擊范圍。
班組決策層完成為班組中每個成員的任務分配后,作戰實體需要通過HTN規劃器獲取并執行計劃,本章介紹執行層的結構設計以及HTN規劃器的規劃過程。
執行層的整體結構如圖5所示。其中基礎屬性為士兵的生命值、彈藥數量等信息;命令為班組決策層經過決策為士兵分配的具體任務目標,如火力壓制,移動至掩體等;同時班組成員需要掩護這一信息會以消息的新式傳送到狀態中;士兵實體感知器所接收到來著外界的刺激,如察覺到敵人,將作為威脅傳送至狀態中。HTN規劃器需要根據當前的狀態信息構造士兵接下來的行動計劃,每當狀態發生改變,HTN就會重新搜索并構建新的計劃。

圖5 實體執行層架構
考慮到作戰仿真系統對實時性有著較高的要求,且傳統HTN規劃器可能由于分解順序不當導致計劃的生成變為NP完全問題[14],因此本文采用了HTN規劃器眾多實現中的TFD(Total-order Forward Decomposition)規劃,它屬于STN(Simple Task Network),將復合任務的先后順序直接作為其產生計劃的依據,雖然會降低HTN規劃的靈活性,并且不能確保規劃結果的絕對最優,但在任務網絡過于復雜時能有效降低HTN規劃的時間和風險,保證士兵執行命令時的一致性。最后由實體控制器控制士兵實體完成計劃的執行。
除了狀態信息,HTN規劃器的工作還依賴于任務網絡。通過對狀態的判斷,不斷將復合任務分解為更具體的子任務,直至所有的子任務都為原子任務,以此形成最終的計劃。狀態空間的改變會導致HTN的重新規劃,因此在設計狀態空間時需要避免數據的過于復雜,對連續的數據離散化,降低規劃的復雜性。
步兵實體狀態主要包含是否遇敵、是否攻擊、彈藥數量、健康狀態等,將健康狀態、彈藥數量等數值信息離散化為健康狀態(健康、受傷、死亡),彈藥數量(高、中、低、無)。
如圖6所示,根任務由士兵的多種方法(行為)組成,每個方法擁有特定的前置條件,如命令、基礎屬性、消息、威脅等,同時方法的排列順序決定了該方法的優先級[15],分解時,由根任務開始,遍歷其包含的方法,當某個方法的前置條件被滿足且優先級比當前執行的任務更高時,將該方法的子任務加入推理的任務棧中繼續進行推理。

圖6 任務網絡結構
子任務可能是復合任務,也可能是原子任務,復合任務又包含多個方法,原子任務不包含任何方法,是士兵可以執行的具體操作。例如攻擊任務是復合任務,其所包含的子任務有武器確認、位置檢查、開火攻擊和隱蔽四個方法,其中武器切換是原子任務,直接控制士兵切換對應武器,而攻擊位置檢查是復合任務,包含位置檢查和位置選擇兩個子任務。
規劃算法是HTN的核心,本文基于TFD設計了任務網絡的規劃算法。規劃過程如算法1所示,算法中維護了任務處理棧TStack和分解記錄棧DStack,其中TStack存儲著由深度優先搜索到的任務信息,用以構造最優計劃,而DStack存儲著任務分解過程中每一次的分解信息,當分解后的任務不滿足推理狀態時,能夠根據DStack中的信息,將任務分解恢復到之前的狀態。p存儲著當前任務的優先級,決定了該任務是否可以繼續被分解或是否可以被執行,若低于當前執行任務的優先級,則算法放棄規劃。
算法1 HTN規劃算法
輸入:
Troot:根任務;
s0:初始狀態;
輸出:
P:計劃隊列。
1.TStack={Troot},DStack={},s=s0,p=0;
2.while TStack不為空do
3.T=TStack.Pop();
4. if T是復合任務then
5. 尋找滿足條件的方法m
6. if m優先級大于p then
8. TStack.Push(m );
9. else
10. return;
11. end if
12. else
13. if T滿足狀態s then
14. 修改狀態s
15. P.Push(T);
16. else
18. end if
19. end if
20.end while
21. return P
為了驗證作戰班組行為模型的有效性,本文搭建了紅藍雙方進行對抗的仿真戰場實驗環境,紅方負責進攻,藍方負責防守,場景及兵力構成如圖7所示。藍方利用高臺、碉堡、掩體進行防衛,紅方利用掩體和小隊間的協同,進攻藍方。

圖7 紅藍對抗仿真戰場及兵力構成
仿真戰場實驗環境的開發平臺:Visual Studio 2017和Unreal Engine 4,軟硬件環境:Intel i5-7500、16 GB內存、GTX1050ti、Windows 10操作系統。
其中紅方進攻的作戰想定為:紅方小隊利用墻壁作為掩體躲避藍方攻擊;小隊R1和R2執行火力壓制,在正面與藍方交戰;小隊R2停止火力壓制,利用石頭掩體進行正面突擊;小隊R4利用火箭筒爆破藍方碉堡。
實驗中紅藍班組的具體行動過程如圖8所示。從圖中可以看出,紅方基本能夠正確依靠作戰環境展開行動,并且最終戰勝藍方,驗證了班組層次行為模型的有效性。

圖8 紅藍雙方交戰過程
本文提出了基于行為樹和HTN的班組作戰層次行為模型,將戰術命令的執行分為班組決策和實體執行兩個層次。在班組決策層,通過對步兵班組軍事行動作戰規律的研究與分析,設計了步兵班組決策層的父子行為樹結構,并就班組決策應考慮環境與敵我態勢的問題引入了TPS方法,利用距離、威脅因素對戰術位置進行評估。在實體執行層的HTN設計中,闡述了實體執行層的架構,并對HTN規劃的狀態空間和任務網絡進行了分析與設計,提出的規劃算法根據實體獲得的具體命令以及對環境的感知信息,對復合任務進行不斷地分解,構造實體的行動計劃。最后通過搭建紅藍對抗仿真戰場實驗環境,驗證了作戰班組層次行為模型的有效性。