基于Agent的建模方法

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第九章基于Agent的建模方法及Swarm仿真为了研究或应用的需要,对所研究的系统进行必要的化简,并用适当的形式或规则把它的主要特征描述出来,这就形成了模型。这种抽象的过程也就是建模的过程。人们提出了许多建模的方法和技术。尤其是计算机工程领域,产生了一系列的建模方法,常用的有:过程抽象、数据类型抽象、结构化编程、面向对象的方法、基于构件的方法等。现在人们又提出了基于Agent的建模方法,并由此衍生出一系列的相关概念和技术。如基于Agent的软件工程(ABSE:Agent-BasedSoftwareEngineering)、基于Agent的计算(Agent-BasedComputing)、面向Agent的程序设计(AOP:Agent-OrientedProgramming)Agent通信语言(ACL:AgentCommunicationLanguage)等等。由于Agent具有巨大的研究优势和应用前景,九十年代以来,Agent已成为了计算机领域和人工智能研究的重点前沿;与此同时,许多领域都在借鉴或采用该概念进行本领域的研究工作。本章主要介绍基于Agent的建模方法,以及用于Agent建模和仿真的Swarm平台和应用实例等。9.1Agent的基本概念9.1.1Agent的定义Agent最初来源于分布式人工智能的研究。目前,由于Agent已经渗透到计算机科学技术的许多领域和许多非计算机领域中,所以从一般意义上很难给出Agent严格而清晰的定义,到目前为止,还没有形成一个统一确定的Agent定义。在英文中,“Agent”有三种含义:一是指对其行为负责任的人;二是指能够产生某种效果的,在物理、化学或生物意义上活跃的东西;三是指代理,即接受某人的委托并代表他执行某种功能或任务。基于对Agent英文原意的理解,常被人解释为代理。但随着Agent广泛应用的不同领域,不再局限于“代理”。1.Agent应具有的特性:1)Agent是一个具有明确边界和界面的问题求解实体。2)Agent处于特定环境之中,它通过感知器来观测环境,通过效应器来作用于环境。3)自治性。这是一个Agent最本质的特征。4)社会性。无论是现实世界,还是虚拟世界,通常都是由多个Agent组成的系统。在该系统内,单个Agent或多个Agent的行为必须遵循符合Agent社会的规则。能通过Agent交互语言,与其他Agent进行灵活多样的交互,并有效进行合作。5)反应性。Agent能够感知其所处的环境,可能是物理世界,或操纵人机界面的用户,或与它进行交互和通信的其他Agent等等。并能及时迅速地作出反应以适应环境变化。在一些特定领域的研究,特别是人工智能领域的研究,还赋予Agent一些更高级的特性,使其更符合于所研究对象的特征:1)理性。Agent没有相互冲突的目标。2)诚实性。Agent不故意传播虚假的信息。3)友好性。Agent总是尽可能地完成其他Agent的请求。2.特性综合:可以看出,Agent的特性常常因为应用的不同领域而有所不同,也就形成对Agent的不同理解或定义。但是,自治性是Agent概念的核心。在实际应用中,Agent常被分为三种类型:类型Agent:描述特定实体或某一类实体。集中服务Agent(多Agent):为多个Agent提供特定的服务或一组服务。移动Agent:可在不同的实体之间进行移动.概括起来,可以说Agent是实际系统的物理实体抽象或系统的功能抽象,它能够在一定的环境中为了满足其设计目标而采取一定的自主行为;Agent总是能感知其所处的环境,适应环境变化。9.1.2Agent与对象对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。一个对象由一组属性和对这组属性进行操作的一组服务组成。从认识论的角度来说,对象就是一种抽象技术,他的最基本特征是封装、继承和多态;从软件的角度来看,对象是一个计算实体,它封装了一些状态以及可根据这些状态采取特定措施的方法,对象之间可通过消息的传递来进行交互。从这些方面来对比对象与Agent,可以看出它们之间有许多共同点,如数据和方法的封装,因为Agent是一个独立的个体。拥有对象的继承与多态等性质。但又有一些区别。Ageng与对象的一些明显区别:一是Ageng和对象的自治程度。二是有关自治行为的灵活性,即自治性、反应性、社会性。三是对每一个Agent来说,它都有自己独立的控制线程;而在标准的对象模型中,整个系统才有一个控制线程。值得注意的是:尽管Agent与对象有着重大的区别,但这并不妨碍用面向对象技术来实现Ageng。事实上,现在许多Agent开发工具和应用实例都是用面向对象技术来实现。9.1.3多Agent系统通常,我们将多个Agent组成的系统称为多Agent系统(MultiAgentSystem,MAS)。Agent是一种新的方法论,在生产分布式控制、自适应及处理复杂过程的关键技术。多Agent系统具有以下特点:1)高层次的交互2)Agent之间丰富的组织关系3)数据、控制和资源的分布9.1.4Agent的作用1.应用方面1)模块化:最适合于自然模块的应用问题。一个Agent有自己的状态变量集,这些状态变量不同于环境的状态变量。Agent状态变量的一些子集与环境状态变量的一些子集相耦合,以提供输入输出。2)分散化:一个Agent不需要外部的激励,可自主地监视它自己的环境,并在它认为合适的时候采取行动。3)可变性:因为Agent非常适合于模块化和分散化的问题,所以,当一个问题可能经常变化时,Agent的两个特征结合在一起会使它们具有特殊的价值。4)不良结构:所谓不良结构,简单的说,是在系统设计时,并非所有必须的结构化信息能够得到。Agent自然地支持这样的应用。5)复杂性:衡量系统复杂性的一种方法是看系统必须演示的不同行为的数目;而经过恰当设计的Agent体系结构可以将组合行为空间的发生从设计时移到运行时,这将急剧地减少必须要设计的软件代码数,进而降低构造系统的成本。2.研究方面基于Agent建模与仿真技术方面有三大优势:1)传统方面:可明确地给出所研究系统的某种特定的、可求解的范围;最常见的是数学方程。2)问题不可解:系统虽然可以明确地给出系统的规范,但无法对其进行求解,或没有合适的求解方法,或依赖许多参数而无法计算等。3)无法形式化:在实现世界中有许多问题,我们无法给出其明确的方程(形式化)。希望用高度形式化的方法进行数学计算是不可能的。9.2基于Agent的建模方法9.2.1基于Agent的建模思想Agent技术发展和应用的两个基本推动力:1)无论是现在还是将来,计算机科学及其应用领域内,由Agent组成的MAS有能力扮演重要的角色。因为现在的计算机平台和信息环境都是分布的、开放和异构的,计算机不再是一个独立的系统,而是越来越多的与其他的计算机及它们的用户紧密的联系在一起。2)在建立和分析人类社会中的交互模型和理论方面,MAS也可以扮演重要的角色。由于Agent建模的思想来源于以上两个基本的推动力,需要再次强调Agent在建模中的角色:1)Agent是一个自治的计算实体。2)智能性是指Agent在变化的环境中灵活而有理性地运作,具有感知和效应的能力。3)互交能力是指Agent可以被其他为追求自己的子目标而执行相应任务的Agent所影响。由于将Agent看成是主动对象,基于Agent的建模技术完全可以从面向对象技术中继承并发展。9.2.2面向Agent的系统分析在一般情况下,建立系统模型是由一群Agent组成的MAS,它可以用三个层次结构来描述:1)Agent层:系统中所有反映问题域和系统责任的Agent。2)个体Agent:特征模型层,即Agent的结构与特征,包括内部状态(数据、变量)和行为规则(函数、方法等)。3)MAS层:即组成系统的Agent群体所采用的体系结构,主要要解决的问题是Agent之间的通信与协调等问题。基于Agent的系统模型的层次如图9.1所示。1.发现个体AgentAgent层个体Agent特征模型MAS层图9.1基于Agent的系统模型的层次对于给定系统,就是有确定的系统问题和系统边界,发现个体Agent的任务就是解决这样的问题:将系统中的什么映射作为Agent?也就是对系统进行Agent抽象。Agent抽象的基本原则是:从系统的物理结构出发,围绕着系统的目标来对系统进行抽象。以系统的物理结构作为抽象的基本点,就意味着可根据物理世界的实际构成来划分Agent。一般的处理原则是将组成系统的每个实体都抽象为一个Agent,称为实体Agent。这对自然的分布式系统尤为实用。但是要注意两个问题:1)异质Agent与同质Agent的处理:通常,系统是由多个实体构成的,实体之间可能是异质的,存在本质上的区别,如经济系统中的人、企业与政府等;;而有些是同质的,在本质是相同的,如一个生物种群中多个生物个体。处理方法是将异质Agent分别形成相应的Agent类,而将同质的多个Agent抽象归结为一个Agent类。2)抽象的粒度根据研究与应用的需要,要给系统确定一个抽象的层次,必须要有所为,又有所不为,即有所取舍。在确定了实体Agent后,有时为了实现系统的目标,还要设计一些其他的辅助Agent,被称为集中服务Agent。2.个体Agent的建模在建立系统的类图后,接着要进行建立每个Agent的模型。在这方面主要处理两个问题1)每个Agent如何建立世界模型?任何在一个变化的世界内起作用的Agent必须建立世界内部模型。但是Agent在知识表达的复杂性和对任务所使用的推理方面是有区别的。2)如何构筑Agent的内部结构?一个系统中不同的Agent可以是同质的、异质的或共享某些共同的模块,或在其它的模块中不同。它们也许会、也许不会记得过去的状态;在系统生命周期内,他们的代码可以改变,也可以不改变。3.目前三种Agent结构模型1)基于逻辑的Agent模型在该模型中,Agent决策的制定过程是通过逻辑演绎的方式来实现的,类似于专家系统2)反映式Agent模型在该模型中,Agent决策的制定过程是通过环境与行为的直接映射来实现的,如一般的控制系统。3)信念-愿望-意图Agent模型在该模型中,Agent决策的制定过程是依赖于表达Agent的信念、愿望和意图的数据结构之间的操作来实现的,它更接近人类的思维方式。4.关于Agent的通用模型由于Agent技术正处于发展之中,各种模型都有待于不断完善。就目前来说,可以将Agent视为由环境、感知器和效应器三部分组成,如图9.2所示。1)每个Agent都有自己的状态。环境感知器效应器内部状态图9.2Agent的通用模型2)每个Agent都拥有一个感知器来感知环境,根据环境的状态来改变自己状态的方法。3)每个Agent都拥有一个效应器作用于环境,用来改变环境状态的方法。5.多Agent的体系结构为了建立由多个Agent组成的完整的系统模型,确定多Agent系统的体系的体系结构,就要处理好以下5个问题:1)系统应有多少个Agent?根据系统的目标要求,确定各种Agent的总数以及系统运行时Agent的数目是否可改变。2)Agent之间采用什么样的通信渠道?通常在传输介质(共享物理环境与数字网络)、访问(广播、面向目标、Agent到Agent)等方面可能有所不同。3)Agent之间采用什么样的通信协议?通常采用的通信方式有共享全局存储器(如黑板机制)、消息传递以及两者的结合。通信协议决定了被建立的Agent之间如何交流。4)怎样建立Agent与其相关的其他Agent之间的结合?一个Agent群体的结构描述每个Agent的直接的熟人(Agent)和它们之间由于信息和物料流动等原因而产生的拓扑结构,常见的如象分层嵌套结构、网络结构等。9.2.3实现与仿真1.实现有了系

1 / 57
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功