消防部队联合救援协同组织指挥
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

第二章 基础理论

第一节 多Agent理论

智能Agent是分布式计算环境下系统建模的一种新的理论模型,具有自治性、交互性、响应性、自适应性等基本特性。随着灾害事故形式的不断变化,变得越来越复杂,施救难度越来越高,如何科学施救就变得越来越紧迫。通过人工智能技术的运用以及对救援行为的足够建模,快速对救援环境中的事件和状态做出反应,实施救援行动。

一、Agent的定义和分类

Agent系统具有很多优点,利用Agent技术可以为复杂性问题提供新的计算和问题求解规范。由于Agent概念的出现,人们对人工智能进行了重新定义:人工智能是计算机科学的一个分支,它的目标是构造能表现出一定智能行为的Agent。可以看出,Agent的研究在人工智能领域越来越受到关注,成为研究的核心问题。

Agent最开始源于人工生命科学,它被描述为能对环境进行搜索并做出相应决策的模型的基本单位。利用Agent对所研究的问题建模的思路是根据系统特点抽象出相应的个体,然后通过建立个体之间相互关系的模型来表征整个系统。Agent模型如图2-1所示。

图2-1 Agent模型

Agent的概念有许多种定义,被大多数研究者认同的一种定义是:将Agent看成用于某一特定环境,具有一定生命周期的计算实体,它具备自身的特性,能够感知周围的环境,自治运行,并反过来能够影响和改变环境。

Agent模型可以解决两个方面问题:一方面由于Agent是针对复杂性问题提出来的,因此它可以控制分布式计算的复杂性;另一方面Agent具有自治性,可以解决人机界面局限性的问题。

具有代表性的Agent模型结构是由Bartmna提出了BDI模型,用以描述Agent基本特性,该模型将Agent划分为三种基本状态:信念(belief,对应于系统中的知识)、期望(desire,对应于系统中的能力)和意图(intention,对应于系统中要达到的目标)。BDI模型对于系统的描述是通过这三种基本状态与环境之间交互,以及系统中各个Agent之间的相互协作来完成的。Rao等人在BDI模型的基础上对其进行形式化描述,包括基础逻辑的定义、模态操作符的定义等。ICP(incorporating cooperation protocols)协议是由COSY设计采用的,又叫合并合作协议,ICP协议主要是解决Agent之间如何相互作用及协调协作问题。还有许多学者都提出了针对具体问题的模型,或者对已有模型进行修改和完善。Wooldridge和Jennings在总结了前人理论的基础上,提出了从狭义和广义,即从Agent的“弱定义”和“强定义”这两个方面去理解Agent的特征。

该定义从广义的角度来看,Agent应该包括反应性、自治性、社会性和自发性。反应性,主要是指Agent如何对环境进行感知,同时又能与环境交互,通过交互又反过来对环境产生影响。自治性,这是Agent的一个重要特征,它是根据自身状态和行为来自主运行,不受外界环境和其他Agent的直接控制。社会性,是指Agent不仅能独自承担任务,同时在需要的时候可以通过和其他Agent协作完成系统指定任务。自发性,是Agent具有的一种智能性,它的行为是自动的,不受其他Agent的影响,能够独立运行。

从狭义的角度来看,对于某些特定领域和问题的研究者来说,Agent除了具备上述的几个特征,还应具有某些和人类相似的特征,如知识、意图、信念、承诺等心智状态。

在上述Agent特征分析的基础上,可以对Agent下定义:Agent是能对特定环境进行感知,实现设计者目标的计算机系统,能在该环境下自主运行的计算机实体或程序。Agent的提出给计算和问题求解提供了一个新的思路,为远程智能设计提供了实现方法。Agent的中文名称很多,如“主体”“智能体”等,本文采用目前比较常用的“智能体”这一名称。

二、多Agent系统

虽然Agent定义了其具备的特定功能,但对于复杂的大规模问题,单个Agent由于能力有限,同时受到资源及其他Agent相互关系的限制,很难独立完成复杂问题的求解。这就需要有若干个Agent通过一定的合作方式,共同完成一项复杂任务,这样就有了多Agent系统。

多Agent系统顾名思义就是由多个Agent组成。在多Agent系统中,每个Agent个体仍旧具有独立性。这些Agent既具备自身的问题求解能力和行为目标,还能在系统指定时,通过一定的协作机制,共同完成任务,提高系统的整体性能,实现系统的整体目标。它们相互之间既是独立自主的,能感知环境并控制自身的行为又能作用于环境,也能和其他Agent进行交互,相互配合完成共同任务。

因此多Agent系统可定义为:能对环境的变化具有适用力及相应的自我调整能力,并能通过与其他Agent进行交互的方式共同完成复杂问题求解的智能系统。

通常情况下,多Agent系统具有如下特征。

①系统中单个Agent的能力有限,不能完成整个问题的求解,系统必须由多个Agent共同协作来完成全局目标,并且Agent之间是非对抗的。

②系统中没有集中处理结构,数据存储和信息处理是分散的。

③系统内部的交互和相互之间表现出的整体性都是通过封装来实现的,多个Agent是作为一个整体进行连续操作的且具有可靠性。

④各Agent并发计算、异步通信,因此对于某些共享资源应具备锁定功能。

由于多Agent系统更能体现人类的社会智能,具有更大的灵活性和适应性,更加适合开放、动态的环境,因此具有更高的智能性和更强的信息处理能力。当前Agent领域的研究很多都是集中在多Agent系统的建立和运行上。根据组成多Agent的个体结构的不同,将多Agent系统分为同构和异构两种形式。组成多Agent的个体具有相同模型结构和功能,这样的多Agent系统称为同构多Agent系统;如果组成的个体性质和功能完全不同,个体的局部目标也不相同,系统的整体目标是在各个局部目标实现过程中实现的,这样的多Agent系统称为异构多Agent系统。

单个Agent是多Agent系统的基本单元,研究多Agent系统是以单个Agent为基础的,但是多Agent系统更加着重于以下几个方面。

1.多Agent系统的体系结构

多Agent系统的体系结构是指由多个Agent组成的系统内部的通信和控制模式,它的形式对整个系统性能有重要的影响。系统的体系结构主要有三种形式:集中式、分布式和混合式。但从本质上讲,所有的多Agent系统都是分布式结构。集中式结构如图2-2所示,它将系统里的多个Agent分成若干个组,在组里面采取集中式管理,并设一个管理Agent,负责组内成员的全局知识的控制,如任务规划和分配等,并且由一个消息传递模块来承担消息传递任务,而整个系统采用同样的方式对各成员Agent组进行管理。集中式的优势在于能保持系统内部信息的一致性,系统管理的实现比较简单。集中式结构对系统的控制和调度较为容易,但此方式随着各Agent复杂性和动态性的增加,控制显得更为难以实现,因此必须有适应系统的控制方式。

图2-2 集中式体系结构图

分布式结构如图2-3所示,它和集中式结构的区别在于,不仅组内各Agent之间是分布式结构,而且组与组之间也是分布式结构,各Agent组或Agent无主次之分,均处于平等地位。Agent是否被激活以及激活后做什么动作取决于系统状况、周围环境、自身状况以及当前拥有的数据情况。由于系统中没有一个集中管理的角色,因此设立了多个中介服务机构,它们的主要职责是为Agent成员寻求协作伙伴时提供服务。这种结构方式增加了系统的灵活性、稳定性,有效地提高了系统的控制性。其不足之处在于由于信息的局部和不完整(如局部目标、局部规划),使得每个Agent组或Agent的运作受到限制,有可能会造成单个Agent由于系统或者Agent之间的目标、意愿和行动的不一致,甚至引起冲突。

图2-3 分布式体系结构图

混合式结构如图2-4所示,这种结构一般是对集中式和分布式两类结构进行混合,表现为一部分Agent可能是采用集中式,另一些Agent则是采用分布式。在集中的部分包含一个或多个管理服务机构,此机构对部分成员Agent以某种方式进行统一管理,参与解决Agent之间的任务划分和分配、共享资源的分配和管理、冲突的协调等。分布的部分成员之间是平等的,它们的所有行为由自身做出决策。此结构平衡了集中式和分布式两种结构的优点和不足,因此也是目前系统结构普遍采用的一种形式,适应分布式多Agent系统复杂、开放的特点。

图2-4 混合式体系结构图

依据Agent的自然描述特性和Agent的人性化特征,首先对系统按照粒度进行自然分类,然后建立Agent实体模型,并对每个Agent实体模型进行封装,选择与系统相适应的多Agent体系结构,实现Agent实体模型的综合集成,最终完成构建多Agent系统。

体系结构的设计同单个Agent的设计联系紧密,体系结构的不同则各Agent之间的一致性、自主性、异步运算的程度也不同,也将选择不同的数据存储和共享的方式,同时也要采用不同的通信和协作方式。

2.任务分解和分派

多Agent系统中对任务的分解是指采用一定的方法将一个具体的任务分解成多个子任务使系统运行满足时间短、效率高,资源利用充分以及更加易于执行的要求。任务分解的方法可以分为以下几类:一是分解方法存在于任务本身,在任务描述中就包含了任务分解;二是在系统运行时,采用分层方法将问题分解;三是在需要时由设计者进行分解。

任务的分派是指任务分解之后,如何将生成的多个可执行的子任务分配给多个不同的Agent来执行。一般来说,应该选择具有最大视野的Agent分配任务,在分派任务时,应遵循一定的原则:一是应平衡系统中的各部件,避免关键设备的超负荷;二是适当为某些单元安排有部分重叠的任务以获得整体一致性;三是具有较强关联性的任务应安排给空间或语义上相近的Agent,满足在必要时能够进行重叠安排,以处理某些突发事件。任务的分解和分配是一项智能化要求相对较高的功能,因此也是多Agent系统研究的热点和难点问题。

3.Agent之间的协调、合作机制和冲突消解

由于多Agent系统没有中央控制模块,难以避免在Agent进行决策的时候出现相互冲突的情况,由于系统的不确定性,原来没有冲突的决策在运行过程中受其影响也可能产生冲突。因此从系统接受任务开始直到完成任务,Agent之间的协调、合作机制和冲突消解就一直存在。所以多Agent系统需要解决的另一个重要问题就是如何避免冲突,或者出现了冲突如何消除,使得系统在单元的行为与总体目标相符合整体上是一致的,称为整体一致性。多Agent系统中的冲突分为两种,分别是资源冲突和目标冲突。资源冲突,表现在由于资源有限,当若干单元同时要使用某一资源,而系统无法满足所有单元需求的时候就发生了资源冲突,这种冲突是若干Agent对资源不适当共享的结果;目标冲突是指当一个目标实现时,另外一个目标则无法实现,这种冲突经常发生在局部目标和全局目标中。正是由于冲突的存在,为了避免和减少由于出现冲突而导致系统运行不畅或者崩溃,必然要引入一种协调和合作的机制来处理该问题,通过这一机制以获得总体的一致性。

三、Agent的体系建模方法

1.Agent的体系建模策略

体系建模策略是对特定领域建模的方法规划,包括两方面内容:总体建模思路和建模过程描述。Agent体系建模就是以Agent理论为基础,将研究对象进行描述并实现仿真模型的过程。Agent体系总体建模思路是:根据所研究对象的属性和特征,在一定粒度上对系统进行自然划分,并建立对应的Agent实体模型,采用合适的体系结构对各实体模型进行综合集成,实现该研究对象的多Agent仿真模型,即为建立的多Agent系统。

2.Agent的建模内容

(1)Agent的实体行为建模 Agent的实体行为是对研究对象活动的反映,研究对象活动的结果是由实体的行为来决定的。在联合救援作战中,任何实体要完成某项任务,都需要靠行为表现出来 因此对Agent系统建模首先要对实体行为建模。采用Agent描述对Agent的实体行为进行规划和实现。实体行为是由一系列活动来组成的,由发生的时间、周围的环境、何种情况下发生的哪个动作等环节实现的。在对实体行为进行建模中,由Agent实体进行外部环境感知、规划动作、效应实现等过程来完成,在此过程中建立Agent实体结构,知识库作为知识资源支持相关行为模型。

(2)Agent实体交互建模 多Agent系统的Agent实体通过交互将感知环境和行为结果作用于其他实体。描述实体之间的交互,就是进行Agent实体交互建模。实体由于交互关系的产生,分为主动实体和被动实体。主动实体指主动产生并对其他Agent实体施加影响的Agent,被动实体指接受交互并受交互影响的Agent。交互模块存在于每个Agent实体中,通过交互模块实现对Agent的实体交互建模。在交互模块中定义了主动实体,指出了被动实体,描述交互的内容、交互的方式。交互模块中的交互内容通常是动态的,会随着Agent实体行为所产生的行为结果而发生变化。

(3)Agent实体模型结构 Agent实体模型结构是指Agent实体模型的组成成分。实体模型结构是由该实体所拥有的行为决定的。实体发生什么样的行为,取决于Agent实体对环境的感知、Agent自身的状态和Agent内部推理过程。Agent模型结构包括三种形式:反应式Agent实体模型结构、逻辑的Agent实体模型结构和信念-愿望-意图Agent实体模型结构。第一种反应式Agent实体模型结构是一种直接映射关系,即Agent实体的行为是通过设计者指定的环境与动作相对应的关系来实现的。第二种逻辑的Agent实体模型结构的决策过程是通过逻辑演绎方式完成的,在内部进行指定的逻辑推理。第三种信念-期望-意图(BDI模型)是模仿人类的思维方式,通过Agent的信念、期望和意图的数据结构之间的操作来对指挥决策问题进行建模。

3.Agent建模的过程

根据所研究的对象,从建模的角度出发,建立起与之对应的Agent模型的步骤如下。

(1)明确研究目的 系统建模不是面向整个实际系统的,而是为了解决所要研究的问题。因此,根据所要解决的问题及其实现的目标,对系统进行分析,在此基础上确定系统的实体组成、问题边界、约束条件等方面。

(2)确定Agent的种类以及Agent的粒度 Agent系统建模的基本组成就是具有主动性、适应性的Agent,在建立目标模型时,要对系统进行分析调查,确定所建立的模型中有哪些类Agent个体组成。在Agent种类确定之后,要根据研究问题的需要,确定每类Agent的粒度。粒度也并不是越细越好,需要考虑建模实现的要求,权衡对问题描述的满意度和易实现性。例如,可以将每个战士作为一个Agent,也可以将一个作战小组作为一个Agent,考虑到联合作战的实际需要,本文将一个作战编成作为一个Agent。

(3)确定模型的信息流 系统内部的个体之间,个体与环境之间主动地、反复地进行交互作用,形成了相互联系的有机的整体,这种交互作用就是通过信息流来实现的,因此确定Agent建模的信息流向是建模的关键环节。

(4)确定模型每一类个体的目标和行为 对每类个体描述之前要明确个体演化目标,然后确定个体行为,个体行为的描述是每类个体建模的关键和核心,它代表的是微观层面的行为,然后通过个体的行为体现宏观的结果。事实上,在实际建模过程中,往往很难一次性准确地描述出微观个体的行为,可以首先进行假设,然后进行建模仿真,通过不断地修改,最后逐渐逼近真实的个体行为。从这一点上讲,Agent建模的难点在于对个体行为的描述。

(5)确定仿真平台实现模型 以上述四步工作为基础,选择一个合适的仿真平台,将模型通过编写的程序代码在计算机上实现,不断调试、修改和完善,最终得到一个解决目标问题的满意的模型。