战术级兵棋实体作战行动智能决策方法
战术级兵棋实体作战行动智能决策方法
兵棋是运用规则、数据和阶段描述实际或假定的态势,对敌对双方或多方的军事行动进行的模拟的统称,是分析战争的重要手段。随着人工智能技术的发展,如何利用数据挖掘和融合驱动实现战术级兵棋实体作战行动的智能决策成为研究热点。本文详细介绍了相关方法和模型框架,并结合具体案例展示了兵棋智能引擎的设计与实现。
研究背景
兵棋是运用规则、数据和阶段描述实际或假定的态势,对敌对双方或多方的军事行动进行的模拟的统称,是分析战争的重要手段。随着以深度强化学习为代表的人工智能技术在围棋上对人类的超越,认知智能技术开始成为当前最热门的研究热点之一。在军事应用上,兵棋可以作为研究智能决策的推演平台,但兵棋智能决策面临非完全信息、多智能体联合决策、超大状态空间上的难点,人工智能技术特别是深度学习技术运用在兵棋系统上研究才刚刚起步。然而,从兵棋数据中挖掘有用信息或提取有效特征,用于兵棋智能化推演是可行有效的思路。
本文分析了基于数据挖掘和融合驱动的战术级兵棋实体作战行动智能决策的基本概念和模型框架,并介绍了兵棋数据的数据处理方法和适用于兵棋机动终点位置选择的多属性综合评价软优选算法,最后结合具体属性数据和兵棋规则,设计并实现了一款兵棋智能引擎。
实体行动决策框架
兵棋智能推演需要解决4个层次问题:1)不同Agent决策先后次序如何确定?2)Agent有哪些可行行动?3)Agent可行行动的次序如何确定?4)一个行动有多种方案时如何选择?针对以上4个层次问题,前三个可以通过兵棋基本规则和程序流程控制简单解决,效果也相对较好。但第4个行动多方案选择问题,是最难也是最重要的问题,如作战实体机动,行进的终点和路线的选择很多,这种选择往往是最难也是最关键的。本文重点解决行动多方案优选问题。
某个位置对作战实体的重要程度可以通过一些属性进行评价,如敌情属性:棋子移动的终点被敌人观察到的可能性越小越好,我方越不容易被攻击;我情属性:统计以往的走子经验,我方停留次数越多的位置越好;环境属性:消耗体力少且越接近夺控点的位置越好。机动终点的选择是典型的多属性综合评价选择问题,可以用相关理论加以解决。
人类在推演兵棋时,首先判断双方态势,对敌情做出一定预判,基于历史经验和作战目标的推理后,决策出棋子下步的行动。人类的历史经验存在于大脑之中,其实兵棋推演的历史经验也蕴含在历史推演的数据之中,能够为解决行动多方案优选提供决策依据。
兵棋数据按状态可以分为静态数据和动态数据,静态数据包括环境数据(地图数据)、规则数据和推演历史数据,动态数据主要是推演进程中的态势数据。针对静态数据,可以基于数据挖掘的方法,提取与决策相关的数据,获取“知识”;针对动态数据(态势数据),可以基于数据融合的方法,将当前态势与知识数据进行融合,生成支持决策的属性数据。
本文设计了一个兵棋实体作战行动智能决策模型框架,如图1所示。静态数据挖掘对兵棋数据中的规则数据、环境数据和历史数据进行挖掘,提取与决策相关的静态的知识数据。动态数据融合对知识数据和推演系统的实时态势进行数据融合,形成决策相关的属性数据。多Agent行动序列决策综合兵棋基本规则、态势数据和属性数据,完成兵棋作战实体的行动命令生成。行动命令发送到战术级兵棋推演系统后被执行,推演系统会将新的态势数据传递出来。如此循环,实现兵棋推演系统的智能决策。
兵棋数据挖掘与融合
按照以上兵棋实体行动模型框架和关键技术,可以针对不同的战术级兵棋推演系统设计兵棋智能引擎。本文以2018第二届全国兵棋推演大赛使用的“铁甲突击群”兵棋推演系统为推演平台,以比赛过程中记录的约3000盘比赛数据和地图数据作为数据源,设计并实现具体的兵棋智能引擎。
数据挖掘(Data Mining)是KDD(Knowledge Discovery in Database)中的重要技术,可以从复杂的、多尺度的、信息丰富的海量数据中提取或挖掘出隐藏在背后的有价值的知识和信息。以多属性综合评价软优选算法需求的属性数据为目标,兵棋数据挖掘与融合可以分为5个步骤: (1)数据选择;(2)数据预处理;(3)数据转换;(4)数据挖掘;(5)数据融合。数据挖掘与融合的过程如图2所示。
最终生成3类(敌情属性,我情属性和环境属性)5种数据表格用于综合评价。5种数据表格分别是:棋子历史位置概率,对比赛数据进行统计分析,统计出特定阶段特定棋子在特定地图位置出现的概率;上下车位置,根据比赛数据,提取所有上车、下车的位置,生成上车位置列表和下车位置列表;夺控热度表,根据某点与夺控点距离和地形因素综合形成的与地图表格等大的数据表,表征了地图上各点的位置重要程度。因地形对车辆(这里特指坦克和装甲车的统称)和士兵的体力消耗影响不同,在生成夺控热度表时区分车辆夺控热度表和士兵夺控热度表;观察表,若棋子位于隐蔽地形内(如村庄、丛林等),其观察距离不变,但被观察距离减半,因此可通视的两点之间敌我双方的观察距离是不对等的。需分别计算出敌对我观察表和我对敌观察表;对敌观察度和被敌观察度,对敌观察度是我方棋子在某个位置对敌观察程度的度量,被敌观察度是我方棋子在某个位置被敌观察程度的度量。某点的对敌观察度可表征为某点的观察范围矩阵与敌人分布概率的矩阵之积,某点的被敌观察度可表征为某点的被观察范围矩阵和敌人分布概率矩阵之积。对地图上的多个点求对敌观察度和被敌观察度,而后进行线性归一化处理,就可以形成对敌观察度表和被敌观察度表。
主要动作生成规则和算法
棋子共有上车、下车、夺控、射击,机动等动作,下面介绍主要动作的生成规则和算法。射击、夺控动作的产生规则。当棋子满足射击或夺控条件后,就执行射击和夺控动作。上车下车动作的产生规则。人和战车的位置位于上车列表内,则执行上车动作。在满足下车条件后,载人战车的位置位于下车列表内,则执行下车动作。士兵移动算法。参考夺控热度和历史位置概率2个因素。因士兵目标较小,不易被敌方攻击,且需要士兵到前沿探查敌情,所以不考虑被敌观察度这一因素。依据多属性综合评价软优选算法,考虑夺控热度和我方棋子历史概率两个因素,进行综合评价和软优选处理后,得出棋子行进终点,调用路径生成函数,生成棋子移动路径。战车移动算法。参考夺控热度、历史位置概率和被敌观察度3个因素,依据多属性综合评价软优选算法,计算移动终点。最后,调用路径生成函数,生成战车机动路径。坦克移动算法。坦克在机动的过程中可以进行机动射击,控制过程相对复杂,需分别计算观察射击点和终点,在观察射击点的选择上还要区分有目标观察射击和无目标观察射击。整个流程如图3所示。
兵棋智能引擎设计
兵棋智能引擎基于python语言实现,除敌方位置概率表外,其它数据表都在数据预处理阶段提前生成,敌情位置概率表在态势处理步骤中进行数据融合生成。兵棋智能引擎的核心模块(主程序)流程如图4所示,首先初始化对战环境,然后更新态势信息并更新敌情,生成新的敌情位置概率表并放入数据库中,而后判断游戏是否结束,未结束则进入主要动作判断环节。每个动作依次查询我方所有棋子是否可以执行这个动作,可以执行,则调用相应算法模块,生成棋子动作,最后程序返回态势更新模块,执行下一个循环。针对不同Agent(作战实体)优先级排序,这里使用经验法,按照士兵、战车和坦克的顺序;针对可行动作优先级排序,这里也使用经验法,按照夺控、上车、下车、射击、机动的顺序。
兵棋智能引擎效果
本兵棋智能引擎与全国著名高校、研究所等组成的31支比赛队伍进行循环机机对战,最终排名第5,总决赛中与人类6名冠军选手进行人机对战,比分约为1:5,不敌人类选手。经赛后总结,基于兵棋数据挖掘的兵棋智能引擎不敌基于人类经验设计的兵棋智能引擎,但是优于基于深度强化学习的兵棋智能引擎,因为基于人类经验的引擎很好地总结了人类精英玩家的规则智慧,而深度强化学习目前没有解决多智能体协作和不完全信息这两个技术难点,对战效果相对较差。但基于人类经验的兵棋智能引擎只能针对特定的想定单独设计,往往开发周期较长,缺乏可移植性。
下步将从四个方面做深入研究,一是完善多属性综合评价软优选算法。目前选择的评价因素较为简单,加权因子是根据比赛成绩人为设定,这两个方面还可以进一步探索改进;二是分类走子风格。对比赛数据进行聚类,分类出防守型、进攻型、综合型等走子风格,对不同走子风格的数据进行知识挖掘;三是挖掘不同棋子间的关系。不同棋子间有较强的协作关系,在数据处理中不再简单挖掘单个棋子位置信息,而要整体考虑,挖掘棋子间关系,实现棋子间的联动;四是进一步细化规则判断。借鉴人类棋手的经验,将态势判断进一步细化,实现数据与规则双驱动。
主要作者介绍
刘满,陆军工程大学博士研究生,主要从事数据挖掘、军事训练仿真方向研究。
张宏军,陆军工程大学教授,博士生导师,从事数据工程、计算机仿真理论方法研究。