張俊峰,薛 青,張 揚(yáng),張媛媛
(1.陸軍裝甲兵學(xué)院演訓(xùn)中心,北京100072;2.解放軍32370部隊(duì),北京10091)
戰(zhàn)術(shù)兵棋對(duì)戰(zhàn)場(chǎng)環(huán)境、作戰(zhàn)兵力、作戰(zhàn)行動(dòng)等作戰(zhàn)相關(guān)要素進(jìn)行抽象,通過數(shù)字地圖、推演棋子和運(yùn)行規(guī)則等進(jìn)行作戰(zhàn)模擬,具有不完全信息、不確定條件、博弈對(duì)抗等特點(diǎn),為研究作戰(zhàn)決策提供了工具手段[1,2]。通常,兵棋分為紅藍(lán)兩方陣營,一方的指揮員可由AI擔(dān)當(dāng),稱為AI指揮員,是作戰(zhàn)決策的主體。在兵棋對(duì)抗中,作戰(zhàn)決策是隨著戰(zhàn)場(chǎng)態(tài)勢(shì)的變化而不斷調(diào)整適應(yīng)的動(dòng)態(tài)過程,如何動(dòng)態(tài)評(píng)估戰(zhàn)場(chǎng)情況并采取合理有效的戰(zhàn)術(shù)策略體現(xiàn)AI的智能程度。
AI作戰(zhàn)決策建模要反映人類指揮員決策過程,以合理的戰(zhàn)術(shù)策略為決策對(duì)象,主要考慮決策主體分析戰(zhàn)場(chǎng)態(tài)勢(shì)、制定作戰(zhàn)決心、下達(dá)作戰(zhàn)命令的一系列活動(dòng),決策過程如圖1所示。首先是收集信息,分析并評(píng)估戰(zhàn)場(chǎng)情況,這是指揮官做出決定的前提和基礎(chǔ),指揮官需要掌握兵力部署、敵方兵力對(duì)比和作戰(zhàn)目標(biāo)等信息,并分析敵人的主要進(jìn)攻(防御)方向以及環(huán)境對(duì)戰(zhàn)術(shù)行動(dòng)的影響;然后,指揮官進(jìn)行兵力分配,確定行動(dòng)目標(biāo)和基本戰(zhàn)術(shù),做出戰(zhàn)術(shù)決策。最后,指揮官指揮部隊(duì)展開戰(zhàn)術(shù)行動(dòng),影響改變戰(zhàn)場(chǎng)態(tài)勢(shì)。分析評(píng)估戰(zhàn)場(chǎng)態(tài)勢(shì)和進(jìn)行戰(zhàn)術(shù)選擇是決策行為的重要組成部分,兩者不是割裂的,并且以分析態(tài)勢(shì)—>采用戰(zhàn)術(shù)策略—態(tài)勢(shì)變化—>調(diào)整戰(zhàn)術(shù)策略的方式循環(huán)運(yùn)行,兩者有機(jī)統(tǒng)一地貫穿在AI指揮員決策活動(dòng)過程中。
圖1 指揮員決策過程
勢(shì)力圖(Influence Map,IM)[4]是疊加在地圖的信息網(wǎng)格,每個(gè)網(wǎng)格基于一些功能函數(shù)賦值,可反映融合不同類型的信息,用來為AI指揮官提供戰(zhàn)場(chǎng)信息支撐。行為樹(Behavior Tree,BT)基于分類的思維方式,對(duì)戰(zhàn)術(shù)行動(dòng)進(jìn)行分解,以樹的形式對(duì)戰(zhàn)術(shù)選擇和行動(dòng)進(jìn)行編碼,將決策邏輯層次化、可視化,可用來實(shí)現(xiàn)AI指揮員的決策行為[3];本文分析作戰(zhàn)指揮決策的一般流程,并分析了勢(shì)力圖和行為樹的相關(guān)原理及其在AI指揮官?zèng)Q策建模中的應(yīng)用;在此基礎(chǔ)上設(shè)計(jì)融合勢(shì)力圖和行為樹的作戰(zhàn)決策框架,并針對(duì)坦克分隊(duì)行動(dòng)決策做了具體闡述;最后借助兵棋對(duì)抗比賽平臺(tái),設(shè)計(jì)了智能決策引擎,對(duì)算法進(jìn)行驗(yàn)證。
AI邏輯常用的實(shí)現(xiàn)技術(shù)是有限狀態(tài)機(jī)(Finite State Machine,F(xiàn)SM),它維護(hù)Agent的狀態(tài)圖,通過邏輯判斷來更改Agent的狀態(tài),使其從一種狀態(tài)轉(zhuǎn)換為另一種狀態(tài)。但是當(dāng)AI邏輯復(fù)雜時(shí),其狀態(tài)很難重用且狀態(tài)切換非常繁瑣,不方便對(duì)現(xiàn)有行為邏輯進(jìn)行擴(kuò)展。行為樹BT[5,6]是對(duì)FSM的改進(jìn)。FSM中的節(jié)點(diǎn)表示狀態(tài),而BT中的節(jié)點(diǎn)代表動(dòng)作,BT[7]把AI邏輯抽象成不同類型的節(jié)點(diǎn),并將各節(jié)點(diǎn)組織成分層樹結(jié)構(gòu)。BT的優(yōu)點(diǎn)如下:提供許多過程控制方法,使AI邏輯更為明晰;行為模塊間藕合度較低且復(fù)用性高,可快速迭代;方便代碼編寫和調(diào)試。
BT的建模主要分為節(jié)點(diǎn)的內(nèi)部邏輯和節(jié)點(diǎn)的遍歷機(jī)制。
1)節(jié)點(diǎn)的內(nèi)部邏輯
節(jié)點(diǎn)集可表示為V=T∪C∪D∪A∪C,包括根節(jié)點(diǎn)T,控制節(jié)點(diǎn)集C,裝飾節(jié)點(diǎn)集,D動(dòng)作節(jié)點(diǎn)集A,條件節(jié)點(diǎn)C。父節(jié)點(diǎn)控制子節(jié)點(diǎn),子節(jié)點(diǎn)向父節(jié)點(diǎn)返回True或False。動(dòng)作節(jié)點(diǎn)和條件節(jié)點(diǎn)是行為樹的葉子節(jié)點(diǎn)。
①動(dòng)作節(jié)點(diǎn):指用于完成動(dòng)作的節(jié)點(diǎn),可描述AI的各種行為,比如機(jī)動(dòng)、射擊等。
②條件節(jié)點(diǎn):自身包含的條件為真則返回True,為假則返回False。
③裝飾節(jié)點(diǎn),只能有一個(gè)子節(jié)點(diǎn),為子節(jié)點(diǎn)添加一些功能設(shè)計(jì)的。比如說子節(jié)點(diǎn)的循環(huán)次數(shù),改變子節(jié)點(diǎn)的返回狀態(tài)等。
④控制節(jié)點(diǎn):指具有多個(gè)子節(jié)點(diǎn)行為的節(jié)點(diǎn),用以實(shí)現(xiàn)更為復(fù)雜的邏輯,是非葉節(jié)點(diǎn)。一般分為選擇節(jié)點(diǎn)、序列節(jié)點(diǎn)、并行節(jié)點(diǎn)等。選擇節(jié)點(diǎn):從頭到尾,依次執(zhí)行每個(gè)子節(jié)點(diǎn)直到其中一個(gè)成功執(zhí)行或者全部失敗為止;序列節(jié)點(diǎn):從頭到尾,順序執(zhí)行每一個(gè)子節(jié)點(diǎn),直到其中一個(gè)失敗為止;并行節(jié)點(diǎn):從頭到尾,平行執(zhí)行它的所有子節(jié)點(diǎn)。
2)節(jié)點(diǎn)的遍歷機(jī)制
從根節(jié)點(diǎn)開始,查詢子節(jié)點(diǎn)的狀態(tài),當(dāng)節(jié)點(diǎn)狀態(tài)為激活時(shí),會(huì)繼續(xù)執(zhí)行節(jié)點(diǎn)的邏輯,節(jié)點(diǎn)執(zhí)行后,向父節(jié)點(diǎn)返回True或者False。
戰(zhàn)術(shù)兵棋中,BT將作戰(zhàn)決策過程抽象為控制節(jié)點(diǎn)和動(dòng)作節(jié)點(diǎn),如進(jìn)攻,偵察,目標(biāo)選擇等[8];而后組織成分層行為樹推理戰(zhàn)術(shù)決策結(jié)果。由于其可視化和可拓展的特點(diǎn),軍事需求人員可以方便地添加和完善功能。
勢(shì)力圖基于空間區(qū)域劃分實(shí)體的勢(shì)力范圍,定義每個(gè)實(shí)體在空間區(qū)域的影響[9,10]。勢(shì)力圖將作戰(zhàn)地圖劃分為多級(jí)單元格網(wǎng)格,每個(gè)單元格反映有關(guān)該區(qū)域的特定信息。每個(gè)戰(zhàn)斗單位都占據(jù)并影響一定的空間,通常影響效果隨距離增加而減?。痪哂邢嗤瑢傩缘膯挝豢梢辕B加影響效果。
實(shí)體u在網(wǎng)格(x,y)的勢(shì)力值可用下式表示,其勢(shì)力值隨著距離的變化而變化。
(1)
其中influence表示實(shí)體在所在位置的勢(shì)力值,Size表示勢(shì)力圖的大小。
為使AI指揮員獲取盡可能多的信息,降低決策信息熵,本文構(gòu)建了基于概率模型的綜合勢(shì)力圖,以更充分地挖掘態(tài)勢(shì)信息,為戰(zhàn)術(shù)策略選擇提供支撐,如圖2所示。
圖2 基于概率模型的綜合勢(shì)力圖
綜合勢(shì)力圖有多個(gè)信息層組成,其信息來源一方面是完全信息,一方面是不完全信息,即動(dòng)態(tài)估計(jì)的信息。完全信息可分為靜態(tài)信息和歷史經(jīng)驗(yàn)信息。圖中,圖層顏色的深淺反映出某種勢(shì)力屬性的強(qiáng)弱,箭頭從上到下,反映了勢(shì)力圖的形成過程。首先,提取對(duì)戰(zhàn)初始狀態(tài)的信息例如我方兵力,可觀察到的敵方部署,戰(zhàn)術(shù)要點(diǎn)等,量化處理后形成靜態(tài)信息層;然后對(duì)數(shù)千局兵棋對(duì)戰(zhàn)信息進(jìn)行數(shù)據(jù)挖掘,分析關(guān)鍵地點(diǎn),敵方分隊(duì)的常用行進(jìn)路線,形成經(jīng)驗(yàn)信息層;最后,在作戰(zhàn)過程中,分析交戰(zhàn)規(guī)則、裁決信息和戰(zhàn)場(chǎng)態(tài)勢(shì)信息,通過功能函數(shù)加權(quán)運(yùn)算,形成代表視野和火力威脅等動(dòng)態(tài)信息的勢(shì)力圖層。
AI指揮官綜合分析戰(zhàn)場(chǎng)環(huán)境和兵力對(duì)比等信息,結(jié)合經(jīng)驗(yàn)知識(shí)確定作戰(zhàn)目標(biāo)、制定相應(yīng)的戰(zhàn)術(shù)策略,定下戰(zhàn)斗決心;指揮作戰(zhàn)部隊(duì)執(zhí)行戰(zhàn)術(shù)行動(dòng),引發(fā)戰(zhàn)場(chǎng)情況的變化;根據(jù)態(tài)勢(shì)變化調(diào)整戰(zhàn)術(shù)策略,整個(gè)過程形成一個(gè)決策循環(huán)。在決策建模過程中充分利用了勢(shì)力圖和行為樹技術(shù),如圖3所示。
圖3 決策循環(huán)過程
運(yùn)用行為樹將戰(zhàn)術(shù)指令進(jìn)行梳理分析成控制節(jié)點(diǎn)和行為結(jié)點(diǎn),以樹的形式進(jìn)行組織,使得AI具備了分類推理的能力。利用勢(shì)力圖管理綜合信息:地形及可見實(shí)體信息;通過歷史數(shù)據(jù)挖掘的包括分隊(duì)關(guān)鍵地點(diǎn)和行進(jìn)常用路線等信息;利用功能函數(shù)計(jì)算得到的敵方概略位置、敵我雙方觀察視野、敵我雙方火力覆蓋范圍等動(dòng)態(tài)信息,使得AI擁有了經(jīng)驗(yàn)知識(shí)和推理計(jì)算能力。AI指揮官通過勢(shì)力圖獲取盡可能多的信息,然后通過查詢策略行為樹,得到?jīng)Q策結(jié)果,執(zhí)行戰(zhàn)術(shù)指令。
AI指揮員作戰(zhàn)決策是對(duì)情況進(jìn)行判斷、定下決心和任務(wù)規(guī)劃的動(dòng)態(tài)過程。基于行為樹和勢(shì)力圖的決策模型契合了這一過程。對(duì)戰(zhàn)博弈中,AI指揮官始終考慮戰(zhàn)場(chǎng)態(tài)勢(shì)和敵方戰(zhàn)術(shù)變化,根據(jù)掌握的綜合信息,運(yùn)用勢(shì)力圖對(duì)敵方位置和火力威脅等進(jìn)行估計(jì)。如圖4所示。
圖4 基于行為樹的決策框架
AI指揮員可利用勢(shì)力圖對(duì)不完全信息進(jìn)行有效預(yù)估。以敵方位置估計(jì)為例,采用實(shí)時(shí)偵察結(jié)果、裁決結(jié)果和歷史對(duì)抗數(shù)據(jù)的先驗(yàn)知識(shí)進(jìn)行融合建模,預(yù)測(cè)棋子位置的準(zhǔn)確率平均可達(dá)到85%以上。如果敵方作戰(zhàn)單元可被我偵察到,則其位置是確定的;在敵方作戰(zhàn)單元位置難以確定時(shí),可通過式(2)計(jì)算敵方單位在勢(shì)力圖任意位置上出現(xiàn)的概率。
(2)
式中:gi為勢(shì)力圖上的任一方格,N為網(wǎng)格數(shù);ω為不同因素的權(quán)重;vi_hpos、vi_v、vi_tdis分別指先驗(yàn)位置、敵方視野、敵方單位與關(guān)鍵要點(diǎn)的距離對(duì)位置估計(jì)的影響值。
AI指揮員根據(jù)戰(zhàn)場(chǎng)態(tài)勢(shì)分析情況,將任務(wù)分解為子任務(wù);子任務(wù)劃分為若干個(gè)行動(dòng),由作戰(zhàn)分隊(duì)劃分為若干個(gè)小組分別完成。作戰(zhàn)小組在執(zhí)行行動(dòng)前,利用勢(shì)力圖判斷情況,進(jìn)行決策,下面以坦克分隊(duì)執(zhí)行目標(biāo)攻擊任務(wù)為例進(jìn)行說明。
戰(zhàn)術(shù)兵棋中有多種類型作戰(zhàn)單元,如坦克、裝甲車和步兵等,其武器裝備和作戰(zhàn)樣式也不同。以坦克分隊(duì)打擊決策為例,把分隊(duì)行動(dòng)劃分為偵察、撤回、射擊、防御、攻擊等子節(jié)點(diǎn)。AI指揮員利用行為樹實(shí)現(xiàn)坦克分隊(duì)攻擊的合理決策,在此過程中不斷計(jì)算、查詢和更新勢(shì)力圖,如圖5所示。圖中一格表示六角格棋盤上的一個(gè)距離單位。從圖中可以看出行為樹對(duì)整個(gè)決策過程有清晰直觀的表達(dá),而且動(dòng)作結(jié)點(diǎn)在很大程度上可以復(fù)用。決策過程體現(xiàn)為以下步驟:
圖5 基于行為樹的坦克分隊(duì)行動(dòng)決策
步驟1.坦克分隊(duì)通過勢(shì)力圖判斷戰(zhàn)場(chǎng)情況,并決定進(jìn)攻還是防守。決策依據(jù)是
?最大化視野內(nèi)敵我雙方兵力比。
?最大化我方火力覆蓋范圍。
?最大化降低作戰(zhàn)單元被擊中的概率。
根據(jù)基于概率的勢(shì)力圖模型,建立敵方火力威脅、指定范圍內(nèi)敵我兵力對(duì)比、我方火力覆蓋等目標(biāo)函數(shù)。式(3)計(jì)算決策綜合指標(biāo)。
μ=W1*Peu+W2*Pflevel+W3*Pv
(3)
式中:ω為決策因素的權(quán)重,Peu是雙方兵力比;Pflevel表示敵方火力威脅,Pv表示我方火力覆蓋度。定義決策閾值,比較μ和閾值得到?jīng)Q策結(jié)果。
步驟2.根據(jù)上步結(jié)果決定是否執(zhí)行攻擊動(dòng)作。繼續(xù)判斷攻擊方式:運(yùn)動(dòng)間射擊還是停止間射擊,如果攻擊范圍內(nèi)發(fā)現(xiàn)敵方作戰(zhàn)單元,可執(zhí)行停止間射擊或者執(zhí)行前出射擊,作戰(zhàn)單位根據(jù)目標(biāo)特征選擇毀傷效果最佳的武器;如果攻擊范圍內(nèi)沒有敵人,需要在運(yùn)動(dòng)時(shí)偵察尋找目標(biāo)。
步驟3.通過勢(shì)力圖進(jìn)行查找敵方目標(biāo)最可能出現(xiàn)的位置,提高對(duì)目標(biāo)的搜索效率和準(zhǔn)確性。綜合考慮路徑長度和威脅度獲取最佳的偵察路線,執(zhí)行一格偵察或兩格偵察,偵察過程中發(fā)現(xiàn)目標(biāo)即發(fā)起攻擊。
步驟4.通過運(yùn)動(dòng)偵察找到目標(biāo),選擇對(duì)敵毀傷效果最好的武器執(zhí)行射擊動(dòng)作。最后,為盡量避開敵人的前出射擊,根據(jù)最新的勢(shì)力圖,規(guī)劃撤離路線,完成一次攻擊行動(dòng)。
實(shí)驗(yàn)基于“先知·兵圣”兵棋對(duì)抗賽使用的兵棋平臺(tái)進(jìn)行,該平臺(tái)包含內(nèi)置腳本AI,并為參賽隊(duì)伍提供了完備的應(yīng)用程序接口,可對(duì)AI指揮官進(jìn)行編程。在此基礎(chǔ)上,本文設(shè)計(jì)了AI決策引擎,對(duì)基于勢(shì)力圖和行為樹的作戰(zhàn)決策方法進(jìn)行了實(shí)驗(yàn)。
AI決策引擎設(shè)計(jì)如圖6所示。決策引擎從兵棋接口平臺(tái)中獲取地形、兵力、裁決結(jié)果等信息,從歷史對(duì)戰(zhàn)數(shù)據(jù)中挖掘出經(jīng)驗(yàn)信息,生成綜合勢(shì)力圖。AI指揮員利用行為樹技術(shù),推理行為策略,向接口平臺(tái)輸出動(dòng)作指令,然后驅(qū)動(dòng)前端界面顯示。
圖6 AI決策引擎
基于決策引擎開發(fā)融合行為樹和勢(shì)力圖技術(shù)的AI指揮員,稱之為BTAgent。BTAgent融合戰(zhàn)場(chǎng)態(tài)勢(shì)信息、歷史經(jīng)驗(yàn)數(shù)據(jù)等信息,構(gòu)建基于概率模型的勢(shì)力圖;使用行為樹推理選擇戰(zhàn)術(shù)策略,并充分利用勢(shì)力圖提供的信息進(jìn)行決策。BTAgent吸取了人類選手的經(jīng)驗(yàn),其做出的戰(zhàn)術(shù)行為較為合理,實(shí)現(xiàn)了最大限度地消滅敵人并保存自己的戰(zhàn)術(shù)目標(biāo)。
在兵棋比賽中,BTAgent與其它參賽隊(duì)伍開發(fā)的AI指揮員之間進(jìn)行機(jī)機(jī)對(duì)戰(zhàn),其總成績名列前茅,驗(yàn)證了建模方法的有效性。
在兵棋對(duì)戰(zhàn)博弈中,AI指揮官如何運(yùn)用更靈活和更合理的戰(zhàn)術(shù)策略?本文提出了行為樹與分層勢(shì)力圖相結(jié)合的作戰(zhàn)決策方法來解決該問題。利用行為樹對(duì)AI行為邏輯進(jìn)行建模,利用分層勢(shì)力圖掌握盡可能多的戰(zhàn)場(chǎng)態(tài)勢(shì)信息、為AI指揮員確定打擊目標(biāo),選擇戰(zhàn)術(shù)策略提供信息支撐;利用行為樹使得決策過程更為明晰,AI指揮官的戰(zhàn)術(shù)決策更為合理。本文所提方法通用性強(qiáng),隨著軍事需求的拓展,很容易修改或添加決策相關(guān)功能,為作戰(zhàn)決策建模提供了參考借鑒。