APP下载

作战班组层次行为建模

2020-06-18邱靖钧

计算机工程与应用 2020年12期
关键词:子树掩体战术

汪 鑫,高 岩,陈 逸,邱靖钧

华东师范大学 计算机科学与软件工程学院,上海200062

1 引言

作战班组的行为建模是战术仿真领域中的关键问题[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的规划算法根据实体获得的具体命令以及对环境的感知信息,对复合任务进行不断地分解得到一系列原子任务,构造出实体的行动计划,自然地描述和推理实体执行命令的过程。

2 层次模型概述

本文提出的基于行为树和HTN的班组作战层次行为模型,在模型层次上分为了基于行为树模型的班组决策层和基于HTN的作战实体执行层。

班组层次行为模型的整体结构如图1所示。班组在接收到战术命令后,班组决策层会根据战术命令与班组状态通过行为树模型为班组中各个作战实体分配具体的任务和目标。作战实体接收到行为树分配的具体任务后,执行由HTN算法规划生成的计划来完成当前战术目标。

图1 班组层次行为模型整体结构

3 班组决策层

首先对步兵班组执行压制战术命令的过程中采用的行动策略进行了分析,然后根据分析结果设计了班组决策行为树的总体结构和压制行为子树。最后针对影响战术位置选择的敌我因素进行了分析与建模。

3.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一起对敌方进行火力压制。

在上面的分析中,步兵班组根据掩体的位置,动态地制定战术行为,具有一定的不确定性,且班组的战术行为被分解为若干个基本行为,例如压制行为中涉及了需找掩体、火力掩护、移动等行为,且随着环境的变化,每个班组成员所承当的任务也有所不同,以此达到协同行动的目的。

3.2 班组决策行为树设计

行为树是有限状态机和层次有限状态机的改进,采用树形结构设计,由不同职责的节点连接构成,包括顺序节点、条件节点、执行节点。顺序节点负责顺序执行所属的所有子节点,选择节点根据规则选择其中一个子节点进行执行,条件节点判断条件是否成立,执行节点负责执行行为。

如图4所示,在行为树中,本文按照班组的战术行为构建了机动子树、攻击子树等,每个子树中又分别包括多种行为子树,例如攻击子树中又包含压制子树、掩护子树等。行为树会根据当前的战术命令选择对应行为子树,并对每个行为子树分别进行建模。例如压制行为子树对图3中压制行过程进行了建模。其中条件1为是否到达目标点,条件2为是否处于安全位置。

图4 行为树整体设计

3.3 班组战术位置选择

班组在进行决策时,需要在执行任务的同时考虑成员的安全,这也影响行为决策的可信度,因此借鉴了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)表示自身范围攻击武器的攻击范围。

4 实体执行层

班组决策层完成为班组中每个成员的任务分配后,作战实体需要通过HTN规划器获取并执行计划,本章介绍执行层的结构设计以及HTN规划器的规划过程。

4.1 执行层结构

执行层的整体结构如图5所示。其中基础属性为士兵的生命值、弹药数量等信息;命令为班组决策层经过决策为士兵分配的具体任务目标,如火力压制,移动至掩体等;同时班组成员需要掩护这一信息会以消息的新式传送到状态中;士兵实体感知器所接收到来着外界的刺激,如察觉到敌人,将作为威胁传送至状态中。HTN规划器需要根据当前的状态信息构造士兵接下来的行动计划,每当状态发生改变,HTN就会重新搜索并构建新的计划。

图5 实体执行层架构

考虑到作战仿真系统对实时性有着较高的要求,且传统HTN规划器可能由于分解顺序不当导致计划的生成变为NP完全问题[14],因此本文采用了HTN规划器众多实现中的TFD(Total-order Forward Decomposition)规划,它属于STN(Simple Task Network),将复合任务的先后顺序直接作为其产生计划的依据,虽然会降低HTN规划的灵活性,并且不能确保规划结果的绝对最优,但在任务网络过于复杂时能有效降低HTN规划的时间和风险,保证士兵执行命令时的一致性。最后由实体控制器控制士兵实体完成计划的执行。

4.2 状态与任务网络

除了状态信息,HTN规划器的工作还依赖于任务网络。通过对状态的判断,不断将复合任务分解为更具体的子任务,直至所有的子任务都为原子任务,以此形成最终的计划。状态空间的改变会导致HTN的重新规划,因此在设计状态空间时需要避免数据的过于复杂,对连续的数据离散化,降低规划的复杂性。

步兵实体状态主要包含是否遇敌、是否攻击、弹药数量、健康状态等,将健康状态、弹药数量等数值信息离散化为健康状态(健康、受伤、死亡),弹药数量(高、中、低、无)。

如图6所示,根任务由士兵的多种方法(行为)组成,每个方法拥有特定的前置条件,如命令、基础属性、消息、威胁等,同时方法的排列顺序决定了该方法的优先级[15],分解时,由根任务开始,遍历其包含的方法,当某个方法的前置条件被满足且优先级比当前执行的任务更高时,将该方法的子任务加入推理的任务栈中继续进行推理。

图6 任务网络结构

子任务可能是复合任务,也可能是原子任务,复合任务又包含多个方法,原子任务不包含任何方法,是士兵可以执行的具体操作。例如攻击任务是复合任务,其所包含的子任务有武器确认、位置检查、开火攻击和隐蔽四个方法,其中武器切换是原子任务,直接控制士兵切换对应武器,而攻击位置检查是复合任务,包含位置检查和位置选择两个子任务。

4.3 规划算法

规划算法是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

5 实验结果

为了验证作战班组行为模型的有效性,本文搭建了红蓝双方进行对抗的仿真战场实验环境,红方负责进攻,蓝方负责防守,场景及兵力构成如图7所示。蓝方利用高台、碉堡、掩体进行防卫,红方利用掩体和小队间的协同,进攻蓝方。

图7 红蓝对抗仿真战场及兵力构成

仿真战场实验环境的开发平台:Visual Studio 2017和Unreal Engine 4,软硬件环境:Intel i5-7500、16 GB内存、GTX1050ti、Windows 10操作系统。

其中红方进攻的作战想定为:红方小队利用墙壁作为掩体躲避蓝方攻击;小队R1和R2执行火力压制,在正面与蓝方交战;小队R2停止火力压制,利用石头掩体进行正面突击;小队R4利用火箭筒爆破蓝方碉堡。

实验中红蓝班组的具体行动过程如图8所示。从图中可以看出,红方基本能够正确依靠作战环境展开行动,并且最终战胜蓝方,验证了班组层次行为模型的有效性。

图8 红蓝双方交战过程

6 结束语

本文提出了基于行为树和HTN的班组作战层次行为模型,将战术命令的执行分为班组决策和实体执行两个层次。在班组决策层,通过对步兵班组军事行动作战规律的研究与分析,设计了步兵班组决策层的父子行为树结构,并就班组决策应考虑环境与敌我态势的问题引入了TPS方法,利用距离、威胁因素对战术位置进行评估。在实体执行层的HTN设计中,阐述了实体执行层的架构,并对HTN规划的状态空间和任务网络进行了分析与设计,提出的规划算法根据实体获得的具体命令以及对环境的感知信息,对复合任务进行不断地分解,构造实体的行动计划。最后通过搭建红蓝对抗仿真战场实验环境,验证了作战班组层次行为模型的有效性。

猜你喜欢

子树掩体战术
一种新的快速挖掘频繁子树算法
犬用战术头盔
广义书本图的BC-子树计数及渐近密度特性分析*
书本图的BC-子树计数及渐进密度特性分析∗
美国:中小学开始装防弹掩体
瑞士将关闭国内一半掩体
基于覆盖模式的频繁子树挖掘方法
如何对抗毛球!全方位战术考察
请君入瓮
巧用翻边战术