基于能力组件的作战仿真Agent模块化结构设计

2017-12-19 06:56玮,李
复杂系统与复杂性科学 2017年3期
关键词:模块化组件状态

蒲 玮,李 雄

(装甲兵工程学院陆军装备作战仿真军队重点实验室,北京 100072)

基于能力组件的作战仿真Agent模块化结构设计

蒲 玮,李 雄

(装甲兵工程学院陆军装备作战仿真军队重点实验室,北京 100072)

针对目前作战仿真Agent软件实现模块化程度不高、复用性较差和开发效率较低的问题,提出了一种基于Agent能力组件的作战仿真Agent模块化结构设计方法。提出了BDI模型在作战仿真Agent中的实现方式及其能力封装与能力关系的基本概念;基于能力封装,设计了作战仿真Agent能力组件的结构、要素、功能类和执行算法;基于能力关系,设计了基于能力组件的作战仿真Agent通用执行模块的结构、数据模型、功能类和执行算法。以装甲分队平台级仿真Agent的实现为例,验证了方法的可行性与有效性。

Agent;作战仿真;能力;能力组件;模块化

0 引言

Agent的基本概念起源于分布式人工智能(Distributed Artificial Intelligence,DAI)技术的研究,在DAI领域通常把系统具有自主性、交互性、反应性、主动性等特征的计算机实体称为Agent[1]。目前,基于Agent的建模与仿真(Agent-Based Modeling and Simulation,ABMS)是复杂适应系统(Complex Adaptive System,CAS)研究最有效的方法之一,在社会生产生活的各个领域取得了广泛的应用[2]。将ABMS方法与军事问题研究相结合,所形成的基于Agent的作战建模与仿真方法[3],已经成为解决作战复杂系统分析问题的热点方法,并在军事科学研究的各个领域广泛使用[4]。

随着ABMS方法在实际建模仿真领域的广泛应用,在工程实践的过程中,暴露出了基于Agent的建模与仿真实现中存在的程序规范性不强、复用性较差、开发效率较低和平台适应性较弱的问题。基于以上问题的出现,面向Agent程序设计(Agent-Oriented Programming,AOP)[5-6]和面向Agent的软件工程(Agent-Oriented Software Engineering,AOSE)[7]思想被相继提出。基于长期以来面向对象程序设计的开发经验,基于组件技术,构建模块化的Agent体系结构,是解决当前面向Agent的软件工程面临的一系列问题的有效途径和方法[8]。文献[9]将仿真模型可移植性规范(SMP2)引入基于Agent的建模仿真中,将Agent仿真中的元素映射到SMP2的模型设计和开发模式架构下,并根据Agent仿真特性对SMP2进行相应扩展,实现了在多Agent仿真总体模型层次上的基于模型驱动架构和组件设计思想的Agent模块化仿真模型开发;文献[10]针对FatiMA(Fearnot AffecTIve MindArchitecture)Agent心智状态模型的实现,提出了一种通用性的模块化体系结构,由一个核心推理算法模块和环境识别、动作行为等若干个功能模块组成,设计了各模块的执行算法及其数据交互关系,相对于传统实现方法,其体系结构更加灵活和易于扩展,在Agent功能实现层次实现了模块化设计;文献[11]基于ABMS开发方法,在统一的作战概念模型框架下对物理域、信息域、认知域和社会域进行合理抽象,建立了可组合的体系仿真模型框架,据此开发了面向体系效能分析应用的仿真平台,用户可以根据体系效能评估问题和作战背景,快速定义和组合不同的作战实体Agent模型形成体系仿真应用系统,进行体系对抗仿真分析与评估,实现了Agent仿真模型与仿真管理框架相分离,在仿真系统构建层次实现了作战Agent仿真实现的模块化重组。

以上方法在多Agent仿真总体模型、Agent功能实现和仿真系统构建3个层次上,对实现Agent仿真模型的模块化进行了有益的探索,取得了良好的应用效果,为提高仿真模型的复用性和开发效率提供了基本方法支撑,对于作战仿真Agent软件实现模块化具有重要的参考借鉴价值。但是,作战仿真Agent实现的模块化,不仅局限于以上3个高层次的模块化,更包括了对于作战仿真Agent的战场情况判断、作战指挥决策、协同控制通信和作战行动执行等领域相关的低层次功能的模块化,如何实现对以上功能的模块化封装,完成在不同作战仿真Agent角色之间的相同功能模块重用,是当前作战仿真Agent建模面临的现实问题,也是提高作战仿真Agent建模效率的关键。Agent能力是一种在元级推理基础上,对BDI模型进行封装,支持模块化和复用的一种面向Agent的软件工程理论模型和机制[12],基于Agent能力的基本概念,可以实现对作战仿真Agent决策和执行等低层功能的封装。因此,本文基于Agent能力及其能力封装的基本概念,针对BDI作战仿真Agent模块化实现的军事需求,提出一种基于能力组件的作战仿真Agent模块化结构设计,在BDI心智状态模型及其能力封装基本方法研究的基础上,完成对作战仿真Agent能力组件及基于能力组件的体系结构设计,实现作战仿真Agent能力实现层面的深度模块化,提高作战仿真Agent建模的复用性和开发效率。

1 BDI概念模型及其Agent能力封装

1.1 BDI概念模型及其在作战仿真Agent中的实现方式

Bratman提出的BDI(Belief-Desire-Intension)心智状态模型[13]如图1所示,是当前应用最为广泛的Agent决策推理模型。其中,信念(Belief)指Agent对所处环境和自身执行状态的认知,愿望(Desire)是指在特定的任务状态下Agent希望达成的目标,意图(Intension)是指为实现目标所选择的当前行动[14-15]。其基本的推理过程为:Agent获取环境和自身状态信息更新信念库,根据变化的信念,生成愿望目标,综合信念和愿望,选择当前意图即行动计划,进行执行[16]。

图1 BDI心智状态模型

由于BDI模型是从哲学层面提出的,能够全面地反映人类推理过程的理论模型,在当前计算能力和资源有限的条件下进行实际应用,应根据仿真领域和仿真应用的实际需要,对BDI模型进行简化和改进[17-18]。对于作战仿真Agent的BDI模型,主要依据作战行动的基本特点和规律,从军事概念和仿真实现两个层次进行简化和改进,形成的BDI模型在军事概念层次和仿真实现层次的对应关系如图2所示,对于作战仿真BDI模型的实现,最终转化为对于状态—事件—计划(State-Event-Plan,SEP)模型的实现。

图2 BDI模型要素在其他层的对应关系

1)军事概念层次

首先,信念一词在军事领域有特定的用途,使用该词容易引起歧义,由于BDI模型中的信念主要指对所处环境和自身执行状态的认知,因此,将信念在军事概念层次映射为外部战场环境状态和Agent内部属性状态;其次,愿望在BDI模型中表示从Agent个体出发,希望达到或保持的状态,强调的是个体的主观能动性,而作战实体是在上级的作战编成内行动,其行动目标主要受到上级的作战命令控制,可以根据战场态势和自身状态的变化进行一定程度的灵活处置,因此,愿望在军事概念层次映射为作战命令、战场状态改变和属性状态改变;最后,意图在BDI模型中表示为实现目标所选择具体行为,在军事概念层次,可以理解为所选择的作战执行计划。

2)仿真实现层次

仿真实现的主要工作就是使用当前主要的程序设计方法和语言将军事概念模型映射为仿真模型,以便于在计算机平台中进行实现。首先,战场状态和属性状态均是一种可实时更新的多类型的数据集合,数据结构比较接近,因此,以状态数据集的形式进行实现;其次,作战命令、战场状态改变和属性状态变化均可理解为引起作战仿真Agent行为变化的事件,因此,使用事件数据集的形式进行实现;最后,由于作战计划包括了动作行为及其相互关系,与其他数据在数据结构和存储方式上均有所不同,因此,采用计划数据集的形式进行实现。

1.2 Agent能力及能力封装

软件工程的许多工作主要集中在如何处理多部门平行开发、开发成果重用和大型软件维护所带来的复杂性问题,模块化是解决这一系列问题的关键,随着基于Agent的仿真系统开发的愈加复杂,也面临着和其他类型软件系统开发相同的问题。在长期的工程实践过程中,Agent能力的概念应运而生,Agent能力通过将与Agent的某种功能相关的信念、愿望、意图及其执行方法的封装,实现Agent的模块化,基于能力的Agent可以被视为由不同的能力组成的集合。按照作战仿真Agent仿真实现层对BDI模型要素的映射,作战仿真Agent能力(Warfare Simulation Agent Capability,WSAC)可以定义为:WSAC={Identifier,Perceived Events,States,Plans,OtherWSAC},其中:

Identifier表示能力的惟一性标识,包括名称、类型、编号和层级等内容;

Perceived Events表示在本能力外由其他Agent或本Agent的其他能力所产生,并被本能力所关注,并能够进行处理的事件,事件包括了事件类型、事件名称、与该事件有关的计划集合等内容;

States表示与本能力相关的所有状态信息,包括战技性能指标、空间位置属性、作战任务状态、其他Agent的状态和环境状态等内容,在仿真执行过程中,可以通过状态改变事件进行状态变量的更新,并可对状态的外部可见性进行区分;

Plans表示为处理某一个事件,所要执行的具体实施计划的集合,每一条计划包括了处理事件、计划内容、状态要求和权重系数等属性;

OtherWSAC表示与该能力执行中需要调用的其他能力,能力之间通过事件和直接访问的方式进行交互。

基于单一WSAC的作战仿真Agent决策行为的基本过程如图3所示。首先,Agent将环境产生的事件按照WSAC的Perceived Events数据集的需求,发送给对应的WSAC,WSAC根据事件更新状态集合;其次,接收到事件后,WSAC在Perceived Events数据集中进行查找,找到该事件及其对应的计划集合,按照权重系数选择执行计划;最后,在计划集合中查找该计划,并根据计划的状态要求与状态集合进行比对,确定计划执行满足条件后,执行该计划,否则选择其他计划执行,计划执行中更新状态集合数据。

1.3 Agent能力关系

为进一步提升Agent能力实现的模块化水平,增强对于层次化能力结构的表述,实现慎思型Agent推理过程的组合运用,提高作战仿真Agent决策的时效性和准确性,需要引入Agent能力关系的概念[19],这种能力关系包括3种类型:

1)协作关系。该类型关系指为完成某一个作战任务,需要以某一个能力为主,在其他能力的协助下共同完成,此时,能力之间的关系为协作关系,如图4a所示,火力打击能力需要在战场机动能力、侦察情报能力和通信指挥能力的协作下,完成火力打击任务。

2)组成关系。该类型关系指某一高层次能力由多个低层次子能力构成,依托该关系可实现作战仿真Agent的多层次推理,如图4b所示,指挥控制能力由决策能力、通信能力、终端操作能力构成。

3)泛化关系。该类型关系指能力之间的一般与特殊的关系,在新的能力出现后,可以基于已有的一般能力,在继承的基础上进行能力扩展,从而提高能力的复用性,如图4c所示,装甲车机动能力、坦克车机动力和轮式车辆机动能力可以继承自机动能力。

图3 基于作战仿真Agent能力的Agent决策行为过程

图4 作战仿真Agent能力的关系

图5 作战仿真Agent能力组件结构

2 作战仿真Agent的能力组件设计

2.1 能力组件的结构设计

作战仿真Agent的能力组件是构成作战仿真Agent的核心功能实现单元,是对WSAC在功能实现层次的进一步封装,使其具备根据能力内容进行自主决策和行为执行的能力,其体系结构如图5所示,主要包括事件接收机、决策推理机、行为执行机和能力体4个功能部件。事件接收机主要功能为接收来自外部(环境、其他Agent和本Agent的其他能力组件)和内部(能力组建运行中产生的事件)的事件消息,构成一个事件缓存队列;决策推理机主要完成根据外部事件触发,更新状态数据,查询最优方案,控制行为执行的功能;能力体包括事件集、状态集、计划集合相关能力组建集4个数据集合,是能力组建的核心部件,主要功能为对能力数据进行记录,管理,为决策推理机等部件提供基本知识数据;行为执行机根据决策推理机选择的计划执行,在执行过程中不断更新状态集数据,并根据情况变化产生外部和内部事件。

2.2 能力体的要素设计

事件集、状态集和计划集是能力体的3个核心数据集合,是能力体发挥作用的关键,因此,能否按照作战仿真Agent能力的基本理论和要求,对事件、状态和计划的具体实现进行设计,决定了作战仿真Agent能否实现自主决策和智能推理。

1)事件。事件Event可以定义为:Event={ID,Type,TimeRule,PlansList,EData},其中,ID表示对事件的唯一标识,Type表示对事件的类型划分,TimeRule表示对事件处理的时限性要求,PlanList表示处理该事件的相关计划集合,EData表示与该类型事件相关的数据。事件各属性的数据类型和其他情况说明如表1。

表1 事件结构体数据项

2)状态。状态State可以定义为:State={ID,Type,AgentLocation,CapbilityLocation,SData},其中,ID表示对状态的唯一标识,Type表示状态数据的类型,AgentLocation表示状态数据的Agent位置,CapbilityLocation表示状态数据的能力组件位置,SData表示与该类型状态对应的数据。状态各属性的数据类型和其他情况说明如表2。

表2 状态结构体数据项

3)计划。计划Plan可以定义为:Plan={ID,EventType,Order,StateID,SCondition,SubPlanList},其中,ID表示对计划的唯一标识,EventType表示计划对应的事件,Order表示该计划的优先级,StateID表示执行该计划对应状态,SCondition表示执行该计划满足的状态要求,SubPlanList表示该计划具体的子计划。计划各属性的数据类型和其他情况说明如表3。

表3 计划结构体数据项

2.3 能力组件的功能类设计

对于能力组件的功能结构和能力体的要素,采用12个功能类进行实现,所建立的作战仿真Agent能力组件的类图如图6所示。其中,CapComponent类是整个能力组件的管理类,对EventReceiver、Reasoner、ActionExecute和Capability 4个功能部件类进行统一管理控制,4个功能部件类与能力组件结构设计中的功能部件相对应,分别实现接收内外事件、决策推理、行为执行和能力知识与数据管理的功能;EventSet、StateSet、PlanSet和CapComponnetSet类是能力的数据管理类,对Event类、State类和Plan类等能力要素类对象进行管理,数据管理类对象由Capability类进行管理。

图6 作战仿真Agent能力组件的功能类

图7 作战仿真Agent能力组件的执行流程

2.4 能力组件的执行算法设计

根据作战仿真Agent能力组件的功能类设计和基于单一WSAC的作战仿真Agent决策行为的基本过程,设计能力组件的执行算法,以4个功能部件类的交互关系对执行算法进行表述,构建的交互图模型如图7所示。能力组件的执行包括3个独立平行运行的循环线程,第1个循环线程是事件接收,主要执行过程为EventReceiver接收事件,放入事件缓存,根据事件类型是否为本组件处理和相关组件处理,分别通知Resaoner或Cpability进行事件处理;第2个循环线程是决策推理,主要执行过程为Reasoner解析事件,根据事件数据,更新状态集合,查找和按照优先级选择执行计划,根据计划执行的状态约束对计划是否可执行进行判断,并通知ActionExecute对计划进行执行;第3个循环线程是行为执行,ActionExecute接收执行计划,进行执行,并更新状态数据,根据实际情况产生内部事件进行战场情况的自适应运行。

3 基于能力组件的作战仿真Agent通用执行模块设计

3.1 通用执行模块总体功能结构设计

基于能力组件的作战仿真Agent主要由通用执行模块和能力组件构成,不同的作战仿真Agent通用执行模块相同,但能力组件不同,通用执行模块的主要功能是实现Agent与环境的数据通信,对能力组件进行集中管理和统一调度,其体系结构如图8所示。通用执行模块主要包括交互数据通信模块、作战仿真Agent管理控制模块、作战仿真Agent能力组件管理模块和Agent交互条件数据库。交互数据通信模块主要功能为按照作战Agent通信语言,依据作战Agent交互协议完成多Agent之间的数据通信;作战仿真Agent管理控制模块主要功能为对整个作战仿真Agent的各模块进行管理控制,实现从事件获取到动作执行全决策过程的运行控制;作战仿真Agent能力组件管理模块主要功能为对能力组件及其注册事件进行统一管理,在管理控制模块的控制下,完成作战仿真Agent决策推理和作战行为执行的任务;Agent交互条件数据库主要功能为对编程编组数据、指挥系统数据和交互协议数据进行管理,为其他模块提供作战仿真Agent交互关系条件的查询和数据更新接口服务。

3.2 能力组件集合的数据结构设计

能力组件集合数据结构是作战仿真Agent通用执行模块设计的关键,其主要作用就是对于能力的关系进行表述,以便于对能力组件进行高效的访问。由于能力关系中的泛化关系表示了能力之间的继承关系,因此,在能力组件的具体实现中,不会对父类进行实例化,因此能力组件集合的数据结构主要对协作关系和组成关系进行表述,采用二叉树的数据结构进行表示,具体实现方法为对Capbility类增加CapComS属性,该属性的数据类型为CapComponentPointerSet结构体指针(见图6),其中,CapComponentPointerSet数据结构包括以CapComponent*为数据类型的Relation和Compose属性,分别表示协作关系和组成关系,以及Next属性,以便于对能力组件按照属性结构进行数据组织。以火力打击能力为例,其数据结构如图9所示。火力打击能力包括3个协作关系的能力和3个组成关系的能力,按照能力组件集合的数据结构设计,所形成的数据结构为:火力打击能力组件的Relation属性指向第1个通信指挥能力组件,通信指挥能力组件使用Next属性与侦察情报和战场机动能力组件形成线性列表关系;火力打击能力组件的Compose属性指向第1个跟踪瞄准能力组件,跟踪瞄准能力组件使用Next属性与激光制导和效果评估能力组件形成线性列表关系。

图8 作战仿真Agent通用执行模块功能结构

图9 能力组件集合的数据结构

3.3 通用执行模块的功能类设计

通用执行模块,采用10个功能类进行实现,所建立的基于能力组件的作战仿真Agent通用执行模块的类图如图10所示。其中,BaseAgent类代表作战仿真Agent,对AgentManager、Communication、InterConditionDataBase和CapbilityManager类等通用执行模块功能类进行管理,主要功能是为仿真系统提供该作战仿真Agent的执行接口,启动和循环执行仿真过程;AgentManager类实现作战仿真Agent管理控制模块的功能;Communication类实现交互数据通信模块的功能;InterConditionDataBase类实现Agent交互条件数据库模块的功能,包括:GroupStructDataManager类,实现作战编组数据的管理与查询,CommunicationNetManager类,实现作战实体指挥信息系统网络数据的管理与查询,InterProtoclsManager类,实现作战仿真实体交互协议数据的管理与查询;CapbilityManager类实现作战仿真Agent能力组件管理模块的功能,包括:RegisterEventSet类,实现对能力组件可处理事件的注册与管理,CapbilitySet类,实现对能力组件的管理和事件处理。

图10 作战仿真Agent通用执行模块功能类

3.4 通用执行模块的执行算法设计

根据作战仿真Agent通用执行模块的功能类设计和能力组件的执行流程,设计通用执行模块的执行算法,以4个通用执行模块类的交互关系对执行算法进行表述,构建的活动图模型如图11所示,执行的主要过程为:Communication类根据接收到的数据,通知AgentManager类进行数据的读取和处理,AgentManager类根据数据类型进行处理,如果为系统数据,根据数据更新要求,调用InerConditionDataBase类对组织结构数据和通信网络数据等进行更新;如果为事件,则将事件转发给CapabilityManager类,CapabilityManager类接收事件,并根据事件注册判断,是否处理该事件,如果处理该事件,则通过CapbilitySet类查找到处理该事件的CapbilityComponent类进行处理,并根据需要,向InterConditionDataBase类查询交互条件,调用Communication类与其他Agent进行通信。

4 仿真实例验证

4.1 仿真条件设置

本文所提出的基于能力组件的作战仿真Agent模块化结构设计方法的根本目标,在于使作战仿真Agent能够更加真实地仿真实际作战行为,并基于真实作战行为的仿真,发现作战规律,检验评估战法,为作战人员的战法选择、决策制定提供定量分析的依据。装甲分队(包括坦克连、战车排等)作战仿真是陆军体系作战仿真的基础,主要用于探索复杂陆战系统行为规律。因此,为仿真验证本文所提出的基于能力组件的作战仿真Agent模块化结构设计的可行性及有效性,并分析方法应用的局限性,以坦克连进攻战斗中“正面攻击”和“正击侧攻”2种典型战法的仿真评估(战损情况和作战效率2个方面)为目标,构设了一个“红军某新型坦克连对蓝军战车排进攻战斗”的仿真实验想定条件,主要内容包括:战场环境:中等起伏丘陵地;作战阶段划分:机动展开、冲击突破和战斗结束;作战兵力规模:红方1个坦克连(10辆坦克,配属3辆步战车),蓝方一个战车排(4辆战车);信息通联情况:红、蓝双方分别组建战术互联网;仿真结束条件:对抗双方一方被全部消灭;仿真实验平台:基于白方Agent的通用作战仿真控制系统(软件著作权登记号:2016SR110946)。白方Agent主要实现作战仿真Agent模型之外的仿真系统的态势显示控制、数据统计分析、通信服务等功能。新型坦克改进情况:新型坦克(Ⅱ型)是在是在原有型号(Ⅰ型)基础上,在底盘等部分保持不变的情况下,通过对火控系统和信息系统升级改造形成的改进型号;已有能力组件:原有型号坦克的全部能力组件、红军步战车的全部能力组件和蓝军步战车的全部能力组件。

图11 作战仿真Agent通用执行模块执行过程

图12 作战仿真初始态势

仿真粒度及作战仿真Agent映射关系:仿真粒度为单装平台级,即采用将1个坦克、步战车等作战实体直接映射为1个Agent的方式。红方作战力量映射为1个坦克连长车指挥Agent,3个坦克排长车指挥Agent、6个战斗坦克Agent和3个步战车Agent,蓝方作战力量映射为1个战车排长车指挥Agent和3个战车Agent,共计6类17个作战仿真Agent。

仿真初始态势:仿真初始态势如图12所示,蓝军战车排已经进入防御阵地,完成战斗准备,红军坦克连从行军转入疏开队形,3个坦克排按照预定路线机动接敌。

4.2 能力组件构设

根据基于能力组件的作战仿真Agent模块化结构设计,各作战仿真Agent的通用执行模块是相同的,区分不同作战仿真Agent模型的关键在Agent所包含的能力组件,因此,基于仿真条件中给出的已有能力组件,针对仿真实验想定设置的6类作战仿真Agent建模的实际需要,所构建的能力组件结构如图13所示,其中,灰色的矩形代表了为本仿真实例新开发的能力组件,白色矩形代表了已有能力组件,圆角矩形代表了6类作战仿真Agent,各能力之间构成了协作(实心箭头表示)、组成(空心菱形表示)和泛化(空心箭头表示)关系。

图13 装甲分队平台级作战仿真Agent能力组件结构

4.3 作战仿真实验

将仿真案例中确定的6类基于能力组件的作战仿真Agent模型,按照图12所设计的能力组件关系结构,与通用执行模块一同,在Microsoft Visual Studio 2010编译环境中进行了编译,共生成了TankCompanyAgent.dll、TankPlatoonAgent.dll和TankAgent.dll等6个动态库,将生成的动态库以仿真模型的形式嵌入“基于白方Agent的通用作战仿真控制系统”中使用,利用该系统已有的仿真条件输入、态势显示控制、数据统计分析、通信服务、时间与模型管理和数据库管理等仿真平台功能,按照仿真想定要求,分别针对“正面攻击”(战法1)和“正击侧攻”(战法2)2种典型战法,进行了100次的红军坦克连对蓝军战车排进攻战斗的仿真推演,仿真推演界面如图14所示,推演过程如图15所示。

图14 仿真实例运行界面

图15 仿真过程二维态势

4.4 仿真结果分析

1)可行性分析。可行性分析是指根据仿真实验的数据结果,对本文所提出的基于能力组件的作战仿真Agent模块化结构设计方法,是否满足作战仿真实际需要的分析,根据作战仿真的目标,主要包括两个方面,一是所构建的作战仿真Agent的行为是否符合作战行为实际,二是基于Agent的作战仿真能够评估战法,发现作战行为规律。

(1)仿真实际作战行为。通过对仿真想定所设置的2种战法的作战仿真过程的回放和数据统计,军事专业人员认为基于能力组件的作战仿真Agent对于作战命令事件、战场状态改变事件和属性状态改变事件的计划处置情况,符合仿真Agent和战场环境状态实际,总体与实际作战理论与经验一致(具体数据见表4),满足了仿真可信度的要求。

表4 事件处理结果数据统计

(2)发现作战行为规律。根据对坦克连进攻战斗中“正面攻击”和“正击侧攻”2种典型战法的仿真评估目标,分别对相同条件下的2种战法的“红方战斗结束后剩余车辆数”和“战斗结束时间”2个数据项进行了迭代仿真100次的数据统计,统计结果如图16所示。“红方战斗结束后剩余车辆数”经过仿真迭代,战法1平均为5.15台,战法2平均为8.55台,“战斗结束时间”经过仿真迭代,战法1平均为46.14分,战法2平均为32.72分,通过仿真数据可见,使用战法2红方战损数量较少,完成战斗的时间较短,因此,在地形条件和敌情条件允许的情况下,使用“正击侧攻”的战法,可提高战斗效能,以较小的代价和较高的效率,达成战斗目标。

2)有效性分析。有效性分析是指在可行性要求满足的基础上,对本文所提出的基于能力组件的作战仿真Agent模块化结构设计方法,是否能够提高作战仿真Agent的模块化程度,提高仿真模型的复用性和开发效率进行分析。首先,从作战仿真Agent的体系结构来看,无论从通用执行程序(通用执行模块),还是从作战领域模型程序(能力组件)均实现了模块化;其次,与传统的将作战仿真Agent的所有功能集中在知识库、行为库、事件库中的实现方法相比较,传统的作战仿真Agent的复用是在C++(或其他语言)类的层次上进行的,而本文所提出的方法,是在组件层次上的复用,比传统的方法复用效率有了较大的提高,为仿真模型的模块级层次复用提供了结构基础;最后,从本仿真实验案例的能力组件结构(如图13所示)来看,针对新型坦克进行作战仿真的能力组件的复用情况如表5所示。

图16 作战仿真实验的战损及战斗时间的统计数据

表5 作战仿真Agent能力组件的复用情况

其复用率为:

可见,能力组件的复用率较高,同时,新的能力组件开发,只需要关注新型坦克与原型坦克的不同,在现有的体系框架内进行开发,避免了针对框架的重复开发工作。因此,本文所提出的基于能力组件的作战仿真Agent模块化结构设计方法对于提高仿真模型的复用性和开发效率具有一定的效果。

3)局限性分析

本文对作战仿真Agent采用了慎思型BDI的决策机制模型,相比于传统的反应型模型,从理论上讲,在决策处理的时间消耗会有所提高,为对这一问题进行定量化分析,基于性能分析软件,对仿真实例进行了软件执行性能测试,系统运行的硬件基本环境为:CPUXeon3.2GHz,内存32G,显卡NVIDIA Quadro5000,操作系统Window 7 64位旗舰版,性能测试工具为Vtune Performance Analyzer 8.0,1个仿真周期的CPU执行时间测试结果如图17所示,反应型数据来源于实验室历史数据。EventReceiver、Reasoner和ActionExecute分别对应图10中的功能类,表示该类中函数的执行时间,Other代表了除了以上类函数的执行时间外,1个仿真周期内的数据读写、态势渲染和模型管理等函数的执行时间。通过数据可见,机动展开阶段,处理的事件和交互关系较少,慎思型和反应型的Agent执行时间差距不大,但是冲击突破阶段,处理的事件和交互关系更为复杂,慎思型的Agent执行时间明显增加。因此,在计算能力有限,执行效率要求较高的情况下,本文所提出的方法比较适于Agent数量较少,仿真行为与复杂系统的实际行为之间的一致性要求较高的小规模分队级作战仿真Agent使用,对于规模大、数量多的基于Agent的作战仿真而言,采用该方法会出现仿真运行时间较长的问题。

图17 仿真模型的执行性能比较

5 结论

本文针对作战仿真Agent软件实现中存在的模块化程度不高,复用性较差和开发效率较低的问题,从军事需求出发,提出了BDI模型在作战仿真Agent中的实现方式,基于Agent能力及其能力封装的基本概念,对作战仿真Agent的BDI模型进行了能力封装,构建了可模块化组合的能力关系,对作战仿真Agent的能力组件和基于能力组件的作战仿真Agent通用执行模块进行了结构、要素、功能类和执行算法的设计,形成了一种基于能力组件的作战仿真Agent模块化结构设计方法,并构建了一个“红军新型坦克连对蓝军战车排进攻战斗”的仿真想定和应用案例,通过仿真模型的构成和仿真系统的运行,验证了所提出的模块化设计方法的可行性和有效性。该方法通过作战仿真Agent能力层次的模块化结构设计,提高了作战仿真Agent模型构建的质量和软件开发的工作效率,保证了仿真行为与复杂系统的实际行为之间的一致性,通过性能分析,该方法主要适用于规模小、精度要求高的分队平台级作战仿真,下一步将对该方法进行功能拓展,使之能应用于更高层次,更大规模的基于Agent的体系作战仿真中。

[1]史忠植.智能主体及其应用[M]. 北京: 科学出版社, 2000.

[2]廖守亿, 王仕成, 张金生. 复杂系统基于Agent的建模与仿真[M]. 北京: 国防工业出版社, 2015.

[3]李雄. 基于Agent的作战建模[M].北京:国防工业出版社, 2013.

[4]姜晓平, 朱奕, 伞冶. 基于复杂系统的信息化作战仿真研究进展[J]. 计算机仿真, 2014, 31(2): 8-13.

Jiang Xiaoping, Zhu Yi, San Ye. Survey of information-based combat simulation using complex systems theory[J]. Computer Simualtion, 2014, 31(2): 8-13.

[5]毛新军, 胡翠云, 孙跃坤, 等. 面向Agent程序设计的研究[J]. 软件学报, 2012, 23(11): 2923-2936.

Mao Xinjun, Hu Cuiyun, Sun Yuekun, et al. Research on agent-oriented programming[J]. Journal of Software, 2012, 23(11): 2923-2936.

[6]胡翠云, 毛新军, 陈寅. 基于组织的面向Agent程序设计及其语言Oragent[J]. 软件学报, 2012, 23(11): 2885-2900.

Hu Cuiyun, Mao Xinjun, Chen Yin. Organization-based agent-oriented programming and language oragent[J]. Journal of Software, 2012, 23(11): 2885-2900.

[7]毛新军. 面向Agent软件工程:现状、挑战与展望[J]. 计算机科学, 2011, 38(1): 1-7.

Mao Xinjun. State-of-the-Art, challenges and perspectives of agent-oriented software engineering[J]. Computer Science, 2011, 38(1): 1-7.

[8]Dam H K, Winikoff M. Towards a next-generation AOSE methodology[J]. Science of Computer Programming,2013,78(6):684-694.

[9]余文广, 王维平, 李群, 等. 模型驱动的组件化Agent仿真模型开发方法[J]. 系统工程与电子技术, 2011, 33(8): 1907-1912.

Yu Wenguang, Wang Weiping, Li Qun, et al. Modeldriven and componentbased development method ofagentbased simulation models[J]. Systems Engineering and Electronics, 2011, 33(8): 1907-1912.

[10] Joao D, Samuel M, Ana P. FAtiMA modular: towards an agentarchitecture with a generic appraisalframework[J]. Lecture Notes in Computer Science, 2014, 8751(1):44-56.

[11] 黄建新, 李群, 贾全, 等. 可组合的Agent体系仿真模型框架研究[J]. 系统工程与电子技术, 2011, 33(7): 1553-1567.

Huang Jianxin, Li Qun, Jia Quan, et al.Research on composable agent model framework for SoS[J]. System Engineering and Electronics, 2011, 33(7): 1553-1567.

[12] Lin P, Patrick L. Formalisations of capabilities for BDI-agents[J]. Autonomous Agents and Multi-Agent Systems, 2005, 19(10): 249-271.

[13] Bratman M, Israel D, Pollack M. Plans and resource-bounded practical reasoning[J]. Computational Intelligence, 1988, 4(3): 349-355.

[14] Simeon V, John T, James H, et al. Preference-based reasoning in BDI agent systems[J]. Autonomous Agents and Multi-Agent Systems, 2016, 30(2): 291-330.

[15] Max W, Lin P, Sebastian S. Improving domain-independent intention seletion in BDI system[J]. Autonomous Agents and Multi-Agent Systems, 2015, 29(4): 683-717.

[16] Hanen L R, Fahem K, Lamjed B S. Computational models of immediate and expected emotions for emotional BDI agents[J]. Lecture Notes in Computer Science, 2015, 9120(1): 424-435.

[17] Rao A S, Georgeff M. BDI agents: from theory to practice[C]. 1st International Coference on Multi-Agent System, 1995, 312-319.

[18] James H, David N M, John T, et al. An operational semantics for the goal life-cycle in BDI agents[J]. Autonomous Agents and Multi-Agent Systems, 2014, 28(4): 682-719.

[19] Ingrid N. Improving the design and modularity of BDI agents with cpability relationships[J]. Lecture Notes in Computer Science, 2014, 8758(1): 58-80.

[20] 蒲玮, 李雄, 陈强. 基于MaSE的多Agent作战仿真控制框架设计方法[J]. 装甲兵工程学院学报, 2015, 29(6): 64-71.

Pu Wei, Li Xiong, Chen Qiang. Multi-agent warfare simulation control framework design methodbased on MaSE[J]. Journal of Academy of Armored Force Engineering, 2015, 29(6): 64-71.

ModularizationStructureDesignforWarfareSimulationAgentBasedonCapabilityComponent

PU Wei,LI Xiong

(PLA Key Laboratory of Army Equipment Warfare Simulation, Academy of Armored Forces Engineering, Beijing 100072, China)

To solve the problem of low degree of modularity, low reuse and low development efficiency of warfare simulation agent software, a modularization structure design method for warfare simulation agent based on capability component is proposed. The implementation of BDI model in warfare simulation agent, and the basic concept of capability encapsulation and capability relationship are proposed. The structure, element, class and executive algorithm of warfare simulation agent’s capability component based on capability encapsulation are designed. The structure, data model, class and executive algorithm of warfare simulation agent’s general executive module based on capability component are designed. An instance of platform-level armored troop warfare modeling is used to verify the feasibility and effectiveness of the method.

agent; warfare simulation; capability; capability component; modularization

1672-3813(2017)03-0045-13;

10.13306/j.1672-3813.2017.03.004

TP391.9

A

2016-07-31;

2016-11-24

国家自然科学基金(61473311);北京市自然科学基金(9142017)

蒲玮(1983-),男,河北石家庄人,博士研究生,主要研究方向为复杂作战系统仿真、装备作战仿真等。

(责任编辑耿金花)

猜你喜欢
模块化组件状态
模块化自主水下机器人开发与应用
无人机智能巡检在光伏电站组件诊断中的应用
新型碎边剪刀盘组件
模块化住宅
U盾外壳组件注塑模具设计
状态联想
生命的另一种状态
ACP100模块化小型堆研发进展
模块化VS大型工厂
坚持是成功前的状态