张俊峰,薛 青,汤再江,邓 青,高 超
(1.陆军装甲兵学院演训中心,北京 100072;2.解放军32370 部队,北京 100091)
战术兵棋系统是进行战术训练、战法研究的有效手段,随着战术兵棋向智能化方向发展,AI 兵棋和AI 指挥员成为研究热点[1]。态势估计是AI 指挥员决策的基础环节,需要考虑战场环境、兵力对比、敌方意图等诸多因素,是AI 兵棋研究的重难点问题。
国内外许多研究机构和学者对战场态势估计问题作了大量研究。研究方法包括:模糊集[2],贝叶斯网络[3],D-S 证据理论[4],势力图等。势力图(Influence Map,IM)是叠加在环境地图上的网格数据,将整个地图分解为离散区域来表示兴趣点或其他属性。在游戏相关领域,一些学者和开发人员已经研究并应用了IM 技术,例如:Dewitt 和Louis[5]在实时3D 策略游戏中使用势力图进行敌方信息分析,协调群组行动。Jong 等人[6]提出了一种基于A*算法和势力图的安全寻路方法,综合权衡行进距离和敌方威胁找到最佳路径。Sánchez-Ruiz 和Miranda[7]使用IM 来表示《星际争霸》的游戏状态并预测获胜者。
上述研究成果为势力图方法在战术兵棋上的应用提供了借鉴。由于战场是不透明的,对方的行动很难预测,对于AI 指挥员而言,态势估计的准确度很大程度上影响对战博弈的走势。本文针对AI兵棋特点,在传统静态势力图的基础上,把历史对战数据加入势力图层并在AI 实时对抗中,通过推理运算,把潜在的态势变化转换为动态势力图层,最大程度降低战场态势的信息熵,提高态势估计的准确度,为AI 决策提供参考依据。
势力图(IM)是基于空间区域定义战场环境的特征或者实体的影响,并将其形式化处理和体现的方法。实体A 影响一些空间区域,实体B 影响另外一些空间区域。在战术兵棋中,敌我双方是按照特定规则部署和集结的,在不同情况下作战单元具有不同的空间结构和组织结构。势力图将兵棋地图划分为多层级网格层,每个网格层包含有关该区域的特定信息、战场情况等。势力图层中每个网格单元的值通过特定功能函数计算,一旦计算,就会关联该函数确定的空间特征或概念。势力值可以表示地形的通行指数;还可以表示作战单元的攻击范围。每个战斗单元都占据并影响一定的空间,一般而言,某个单元位于地图上的某个网格时它对该点产生最大的影响,离该点的距离越远,影响效果越小,多个作战单元的影响力值可以叠加。
战术兵棋的棋盘通常由六角格组成[8-9],势力图不适合采用圆环的方式体现,本文的势力图以方格形式体现。举例说明,如果势力值用(1,3,5,7,9)五级标准简化表示,代表敌方火力威胁度的静态势力图示意如图1 所示。
图1 静态势力示意图(势力图网格颜色越深,威胁度越大)
将兵棋地图分解成网格,计算并存储战场环境以及每个作战单元的影响值,获得势力图,其生成过程如下:
步骤1 生成势力图基本信息
创建与战术地形图相同大小的网格图,比如128×128 大小的方格。量化战场环境信息、我方与敌方的作战单元信息,并将其值设置为分层IM 网格属性值。
步骤2 定义每个作战单元影响值的特征和范围
每个兵种的特征和能力值不同,其影响半径和影响程度也相同。例如,就火力覆盖这一属性而言,坦克的射程一般在3 km 左右;装甲步兵的作用范围在方圆1 km 以内,超过500 m 后步兵的作用非常有限,但是如果配备火箭筒,则其作用距离可以达到5 km 以上。
步骤3 实现传播算法和衰减算法
影响值的传播和衰减有不同的计算方法,并且叠加逻辑也不同。影响值传播一般采用随距离线性衰减的方式。在战术兵棋中,影响值的计算通过特定的功能函数计算,与距离的关系不是简单线性的。
步骤4 形成势力图图层
通过影响值加权运算得到结果,并赋值到势力图网格中,形成最终势力图。图层网格值一般在0~1之间,表示战术要点重要度、通行难度级别等信息。下页表1 显示了静态势力图的常见生成算法。
战术兵棋中,AI 指挥员根据掌握的战场态势制定战术策略,并命令作战部队执行战术行动,其决策过程是动态的,战场态势随之变化,因此,态势估计也是动态的。静态势力图满足不了动态态势估计的需求,需要在此基础上融合更多的信息,加入更复杂的推理运算,形成综合势力图来实现对战场态势的估计。
表1 静态势力图生成算法
态势估计是在特定的时空环境下,综合考虑战场环境、敌我双方部署、兵力对比、作战行动等影响因素,考虑战场突发事件,分析敌方可能的作战行动以及采取行动的原因,得到关于敌方部署调整、作战意图的估计,为己方采取相应的作战策略,以在军事对抗博弈中取得主动权提供依据[10]。
态势估计涉及确定信息和不完全信息,确定信息包括静态地图信息、可见实体信息和经验信息。经验信息从历史对战数据中分析得到,包括关键战术要点和通常的机动路线等。不完全信息更有价值,需要复杂的模型计算来获得,主要包括敌方作战单元的概略位置、状态、视野信息以及火力覆盖范围等。对确定信息进行统计分析,并且对不完全动态信息估计预测,然后将这些信息转换为不同的势力图层。
在战术兵棋中,利用势力图来进行态势估计有以下优势:战术兵棋的棋盘通常是六角格组成的,方便转换为势力图网格,将战场环境和作战单位的信息量化到势力图层中;以综合势力图的方式整合所有信息,通过推理运算分析敌方的兵力信息、对我方的火力威胁以及可能采取的行动。
技术实现框架主要分为两个部分:综合势力图的生成和算法分析。综合势力图由静态信息、经验信息和动态信息多个信息层组成。静态信息层指包含地图数据、初始兵力等量化数据的势力图层;经验信息层指通过数据挖掘方法从历史对战数据中总结出敌方位置概率等信息,形成的势力图层;动态信息层指在动态博弈中融合对战规则和态势数据综合分析出敌方位置、观察视野、火力覆盖等概率数据,并将其量化形成势力图层,其框架结构如图2 所示。
图2 基于综合势力图的态势估计框架
综合势力图按照下面的顺序生成:首先,提取环境数据和作战单元的初始信息,按信息类型分类为几个静态信息层;然后对兵棋数据库中数千局的历史战斗信息进行统计分析得到经验信息,这些信息可以提高敌方位置预测的准确度。最后,在双方作战过程中,根据交战规则和作战部队的动态信息,进行算法分析,形成动态势力图层,可表示敌我双方的观察视野和火力威胁信息。
算法分析分为我方信息的计算和敌方的估计:我方信息的计算包括观察视野以及火力覆盖范围计算,尤为重要的是对敌方信息的估计:分为敌方位置估计、观察视野估计和火力覆盖估计等。
在AI 作战博弈过程中,由于战争迷雾存在大量的动态信息不容易获取,例如:重要的战术要点位置和敌方可能的进攻路线。对AI 兵棋特点和规律进行分析,从兵棋对战历史数据中可以总结出有价值的信息,对这些信息进行量化可形成经验信息势力图层。在经验信息层,网格影响值可表示某点是战术要点或是行军途径关键点的概率值等等。敌方位置的估计是进行视野估计和火力覆盖估计的前提条件。
以从历史数据中提取某一网格的敌方棋子出现概率为例,进行数据统计分析和有效信息提取:历史数据中包含若干局对战信息,记录着想定ID、比赛时间、比赛阶段、棋子ID、上一步棋子的位置、棋子的当前位置、棋子的机动力、棋子的攻击力等状态信息。要提取的信息就是网格中敌方棋子出现的概率分布,敌方棋子是按照类型区分,提取出的信息如表2 所示。
表2 每一网格敌方棋子出现的概率
在某一对战阶段,对敌方棋子进行位置预估时,可以查询此表得到概率值作为位置估计参考因素。
如上文所述,综合势力图分为若干信息层,一些来自环境和兵力部署信息,一些来自作战历史数据的挖掘分析,而其他信息层则通过实时的推理算法获得。综合态势估计就是要根据要估计的因素融合所有势力图的信息,通过特定的算法得到结果。
“知己知彼,百战不殆”,对战场态势的准确估计,是取得作战胜利的关键所在。态势估计需要为AI 指挥员提供信息支持:进攻时,敌方防守的要点在哪?弱点在哪?防御退却时,好的隐蔽点在哪?安全的撤退点在哪?而这些估计和侦察、机动、火力等影响战术选择的重要因素密不可分。
2.4.1 侦察因素
指通过观察或者侦察,一方所能感知到的地图部分以及在此范围内的作战单元,可以称之为“视野”或者“开视野”。我方的视野是通过叠加每个作战单元的可视范围来计算的。敌方的视野通过其作战单元的在某一位置的概率与敌方侦察范围的加权计算获得。
2.4.2 机动因素
作战单元通过特定路线移动到指定位置,需要求解两个位置之间的最优路径。主要考虑两个因素:根据油料的消耗选择最短的路径,以及根据距敌方攻击范围最远的原则选择最安全的路径。机动中,AI 综合考虑敌方威胁与路径长度等因素进行路线调整。
针对侦察因素和机动因素的位置估计和视野估计算法如下:
1)敌方位置估计。指对敌方作战单元位置状态的计算推测。如果敌方单位在我方视野之内,则其位置是完全确定的;如果在我方视野之外,敌方位置的确定需要考虑敌方作战单元的机动能力、视野,由经验数据分析的概略位置以及距战术要点的距离等。在敌方位置不确定的情况下,由专家经验确定不同影响因素的权重,由影响值加权得到势力图任意位置上敌方作战单元出现的概率,可表示为:
式中,gridi为势力图上的任一方格,N 为网格数,W为不同因素的权重,Ve_hpos、Vgridi_vlevel、Vgridi_tdis分别指历史经验位置、敌方视野、敌方作战单元与战术要点的距离这3 个因素对位置估计的影响值。求得的μ(e,gridi)即是代表位置估计信息的IM 层中的某一网格的数值。
2)敌方视野估计:根据敌方的位置概率估计,结合每一作战单元的视野范围,综合计算出敌方在地图上的视野范围,并由此推测出可能观察到的我方作战单元。
3)我方视野:每个作战单元的视野集合及侦察到的敌方作战单元。
2.4.3 火力因素
主要计算某个位置受到的攻击威胁级别;这需要考虑两个因素:我方兵力是否在敌方的攻击范围内?敌方机动的单位在我方的攻击范围内吗?首先计算战斗单元所配备武器的火力打击范围,然后计算整体打击效果。我方的攻击范围是通过叠加每个作战单元的攻击范围来计算的。而敌方作战单元的攻击范围由其在某一位置的概率和攻击范围加权计算得出。相应的算法为我方火力覆盖及敌方火力覆盖估计:
1)我方火力覆盖范围:主要描述了我方作战单元k 的火力射程以及威胁程度。我方作战单元在战场某一位置的火力覆盖,可表示为:
式中,l 为我方火力在势力图上的任一方格的打击概率,uk为我方作战单元,M 为我方作战单元数;firelevel(uk,gridi)函数指根据目标属性,选择对敌毁伤效果最大的武器得到的火力威胁等级。求得的l(gridi)即是代表我方火力覆盖信息的IM 层中的某一网格的数值。
2)敌方火力覆盖估计:根据敌方的位置估计,计算地图上敌方火力的加权值。主要描述敌方部队的火力射程以及威胁程度,并以此分析敌方的关键攻防区域。敌方作战单元对我方某一作战单元的火力打击强度l,可表示为:
式中,ek为在方格的敌方作战单元,μ(ek,gridj)为ek在势力图上的gridj方格的位置估计概率,M 为敌方作战单元数,firelevel(ek,gridi,u)指ek对位于gridi方格的我方作战单元u 的火力威胁等级。求得的l(u,gridi)即是代表敌方打击强度信息的IM 层中的某一网格gridi的数值。
态势估计算法得到的敌方位置、敌方视野以及敌方火力覆盖估计结果,作为AI 指挥员决策的输入参数,帮助AI 选择最佳战术策略。
为验证本文所提算法的有效性,在AI 兵棋推演平台中进行算法实验,平台的程序开发语言是python,平台内置了基于规则的脚本AI。实验的想定背景是中等起伏地形下的坦克连进攻战斗,裁决指标是歼敌分值和控制要点分值加权的总分值。
战术兵棋对战双方分为红方AI 和蓝方AI,为测试想定设置和裁决规则的公平性,红蓝方阵营均采用内置脚本AI 进行对抗。
图3 内置脚本AI 间的对抗实验结果
经过3 080 轮战斗,红色阵营共取得1 538 场胜利,结果如图3 所示。根据歼敌分指标红方占优,根据控点分指标蓝方占优,但是依据总分指标,各方平均获胜率维持在0.5 左右,这意味着红方和蓝方的综合力量对比是相当的,想定设计考虑了博弈平衡,而这是后续算法验证的基础条件。
蓝方使用内置脚本AI,称之为规则AI;对红方AI 使用势力图算法,在进行态势分析时运用综合势力图信息,称之为IMAI。战术兵棋有其程序运行主循环,在每帧循环中IMAI 和规则AI 执行其自身的逻辑。算法验证设计框架如图4 所示。
图4 势力图算法验证设计
每帧循环中,内置规则AI 获取战场态势,根据基于知识的战术规则采取相应的战术行动。IMAI 增加了对静态数据和动态数据的管理模块,并根据估计算法,获取对敌方位置以及火力威胁的估计结果,反映到综合势力图中,基于势力图作出战术选择,采取战术行动。
图5 内置脚本AI 与IMAI 间的对抗实验结果
综合势力图结合了静态信息、历史对战信息及推理分析,为IMAI 提供信息支持。经过约3 000 场战斗,IMAI 的平均胜率约为0.9,红方大胜,结果如图5 所示。根据歼敌分指标,红方绝对占优,根据控点分指标,红方的控点能力也得到了大幅提升。
在战斗实验中,可以观察到IMAI 在执行战术动作针对性更强。例如,坦克分队在未观察到目标时执行攻击行动,AI 指挥官很难预测目标的位置,需要侦察才能得到目标。但如果参考了IM 的历史经验信息,则更容易选择侦察路线,大大提高目标位置预测的准确性,进而提升坦克攻击效果。
在战术兵棋环境中,AI 指挥员获取更全面的态势信息并据此分析态势走向,对于赢得战斗胜利十分关键。本文提出了基于综合势力图的态势估计技术实现框架,为AI 兵棋开发提供了有益参考。
综合势力图面向态势估计需求构建,通过静态势力图层表示初始态势信息;对数千局历史对战数据挖掘分析,找出重要的战术要点、机动关键点等;推理分析敌方位置、侦察范围、火力威胁等战术策略相关因素,在态势信息整合的基础上实现了综合态势分析,为AI 指挥员提供了决策依据;最后,在战斗博弈实验中基于势力图的AI 的机动和打击策略更有针对性,取得对内置AI 的压倒性胜利,证实本文所提方法的有效性和正确性。