3.2.1 理论基础
3.2.1.1 Agent和多Agent系统
1.Agent及其特点
Agent是具有自治性、社会性、反应性和能动性等特征的软件系统,结构分为接口、消息库、方法库、知识库及数据库等部分。从图3.3可以看出,当Agent接收到外部其他Agent的信息后,首先存放在消息库中,通过消息解码器对信息进行分析、加工以及处理,而后与方法库中已有的方法进行匹配,找出最为适当的解决方案,并将获得的经验和数据分别存入知识库和数据库,同时将任务执行情况报告给其他Agent。
自治性和社会性是Agent的基本特性,反应性和能动性则是其延伸特性。
(1)自治性。自治性是指Agent在无人或其他系统直接干预的情况下可自主操作,并能控制其行为和内部状态。自治性表明Agent是具有理性的独立个体,能很好地模拟人的行为。
图3.3 Agent结构
(2)社会性。社会性是指Agent之间可以实现个体之间的交互联系,Agent的社会性表明,多Agent系统能模拟复杂的行为。在设计基于多Agent的作战后勤保障仿真模型体系的过程中,不仅要考虑到单个实体Agent的知识和信念的表示方法及推理机制的实现,也要考虑到各类实体Agent间的复杂关系。
2.多Agent系统及其特点
多Agent系统也称MAS(Multi-agent System)是由具有耦合关系的不同Agent群体进行交互和协调形成的,是具有一定智能、组织结构和交互机制的社会群体。[3]MAS中,每个Agent成员拥有不同的属性、信息、知识和能力等特征,可以完成各自的任务,解决各自领域内的问题。通过Agent自主运行,能够实现与其他Agent交换信息,依据外界信息进行推理和规划,各类Agent交互协同执行任务、相互合作解决复杂问题等行为。因此,MAS解决问题的能力要大于几类Agent的简单加总。目前,MAS已被广泛应用于各类自然系统、人工系统及社会系统的抽象和分析,其中军事仿真是其重要的应用领域。作战后勤保障系统内部的各后勤保障部(分)队相互协调,共同完成后勤保障任务,采用MAS方法对其建模,组成了一个由多个Agent组成的相对完整的复杂系统,可以对其行为实现较好的模拟仿真。
3.2.1.2 UML统一建模语言
UML(Unified Modeling Language)是一种功能强大、面向对象的可视化建模语言,它提供了多种结构建模和行为建模的方法,广泛适用于包括作战仿真在内的各个应用领域。UML不仅可以描述系统的静态结构,还可以描述系统的动态行为。通过定义活动单元,描述业务逻辑,分析业务过程,将通常难以清晰表达的活动和逻辑可视化地表现出来,UML已成为业务建模的主流语言之一。
UML包含三种基本构造块,分别是事物(Thing)、关系(Relationship)和图(Diagram)。事物是对模型中最具代表性的元素的抽象,主要包括结构事物、行为事物、分组事物和注释事物;关系把事物结合在一起;图则聚集了相关的事物和关系。
1.UML事物
1)结构事物(Structure Thing)
结构事物是UML模型的静态部分,它们是UML模型中的名词,描述了概念或者物理元素。包括:类(Class),是对一组具有相同属性、相同操作、相同关系和相同语义的对象的描述;接口(Interface),是对一个类或组件的一个服务操作集的描述;协作(Collaboration),定义了一个交互,是由一组共同工作以提供某协作行为的角色和其他元素构成的一个群体,协作行为大于所有元素各自行为的总和;用例(Use Case),是对一组动作序列的描述,系统执行这些动作将产生一个对特定参与者有价值的可观测结果;主动类(Active Class),是主动对象,至少拥有一个进程或者线程,因此它能够启动控制逻辑活动。
2)行为事物(Behavior Thing)
行为事物是UML模型的动态部分,它们是UML模型中的动词,描述了跨越时间和空间的行为。包括:交互(Interaction),由在特定语境中共同完成一项任务的一组对象之间交换的消息组成;状态机(State Machine),描述了一个对象或者一个交互在生命周期内响应事件所经历的状态序列;活动(Activity),描述了一个状态机中进行的非原子的执行单元。
2.UML关系
UML关系包括依赖、关联、泛化和实现。依赖(Dependency),是两个事物之间的语义关系,其中一个事物(称为独立事物)发生变化会影响另一个事物(称为依赖事物)的语义;关联(Association),是一种结构关系,它描述了一组链的对象之间的相互连接;泛化(Generalization),是一种特殊/一般关系,特殊元素的对象(称为子类对象)可替代一般元素的对象(称为父类对象);实现(Realization),是两个类元之间的语义关系。
3.UML图
UML图是一组元素的图形表示,大多数情况下形式为顶点(代表事物)和弧(代表关系)的连通图。为了对系统进行可视化,可以从不同的角度画图,这样图就成为对系统的反映。其中,类图(Class Diagram)展现了一组类元、接口、协作以及它们之间的关系,在面向对象的系统建模中最常见的图就是类图;对象图(Object Diagram)展现了一组对象以及它们之间的关系;用例图(Use Case Diagram)展现了一组用例、参与者以及它们之间关系,其对于系统的行为和功能建模是非常重要的;顺序图(Sequence Diagram)展现了一种交互,由一组对象以及它们之间的链组成,对象之间通过发送消息来交互,是一种强调消息时间顺序的交互图;状态图(State Diagram)展现了一个状态机,由状态、转换、事件和活动组成;活动图(Activity Diagram)展现了系统中从一个活动到另一个活动的流程,是一种特殊的状态图;组件图(Component Diagram)展现了多个组件以及它们之间的组织和依赖关系。[4]