一种多agen系统的应用_第1页
一种多agen系统的应用_第2页
一种多agen系统的应用_第3页
一种多agen系统的应用_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一种多agen系统的应用

多因素系统是人工智能的研究分支。此外,它还侧重于研究独立智能对象的复杂问题,如如何使用他人的智能对象来解决实际分布的复杂问题。随着人们对多Agent系统的研究越来越深入和Internet的不断发展,基于Agent的应用,特别是在Internet上的应用将会越来越多。在Internet上基于Agent的应用会涉及到不同平台和异构的Agent间协作,通信是协作的基础,而实现通信需要有协议的支持。Agent消息的传递需要通过通信语言来表达,其中如何有效地提高Agent间在分布式环境中的协作和通信是系统的一个难点,而MAS之间的通信是研究的重点。本文针对分布式环境中多Agent系统之间通信的特点和方式,利用XML和SOAP技术构造一种多Agent之间的通信框架1表面活性剂的特性XML是由w3C(worldwidewebconsortium,互联网联合组织)于1998年发布的一种标准,是一种中介标记语言,可提供描述结构化资料的格式。它是SGML的一个简化子集,目前已成为网络数据交换的标准。和HTML相比较,XML其实已不再是一种文本标识语言,而是一种表达数据中结构的共同语法的标识语言。XML弥补了HTML文档中有用数据信息不能被其他应用直接理解和重复使用的缺陷,使用DTD(文档类型定义)规定一套关于标记符号的语法、语义规则,能比较准确地描述文本数据的内容、含义、结构、特征和关系等信息(称为元数据),而把数据的外观表现形式交给样式表(如CSS、XSL、DSSSL等)处理,这样就把数据的内容和其表现形式合理地分隔开,从而大大提高了XML数据的可理解性、可交换性和重用性。另外,XML的优势还在于它的简单性、灵活性和可扩展性。XML文档是纯文本,独立于平台和应用。公司和组织可自由定义标签和文档结构,亦可增添或扩展已有文档结构定义,以满足新的挑战和应用需求,而不致于破坏原来的应用。一个结构良好的XML文档,其生存期可以很长。2soap通信2000年5月初,Microsoft,IBM,Ariba,CommerceOne等11家公司向万维网联盟(W3C)提交了SOAP1.1(simpleobjectaccessprotocol,简单对象访问协议),并被接受为W3CNote。SOAP基于万维网数据交换标准—可扩展标记语言XML,是一种新的软件通信技术。它把成熟的基于HTTP的Web技术与XML的灵活性和可扩展性组合在一起,使现有软件不论是基于什么样的编程模型都可以通过因特网通信。SOAP本身并不定义编程模型、实现方式等语义内容,而是通过为编码数据提供一种标准的打包模型来进行应用语义的表达。SOAP可被广泛应用于从消息系统到RPC系统等各种系统之中,并将会对DCOM和CORBA产生重要影响。一个SOAP消息是一个普通的XML文档,该文档包含如下的元素:SOAPenvelope,定义消息的内容;SOAPheader(可选),包含头信息;SOAPbody,包含所有的调用和应答信息。组成结构如图1所示。另外SOAP还有一些其他的优点SOAP采用HTTP作为底层通讯协议,用RPC作为一致性的调用途径,数据以XML格式进行传输,服务提供者和服务请求者可以通过防火墙在Internet上进行通信交互。SOAP主要目的是要实现平台与环境的无关性和独立性,每一个通过网络的远程调用都可以通过SOAP封装起来。XML是一个开放、健全、有语义的信息机制,而HTTP是一个广泛又能避免许多关于防火墙的问题,从而使SOAP得到了广泛应用。3uap通信模块组成基于XML和SOAP的Agent通信框架主要有Agent模块、ACL模块、XML模块和SOAP通信模块组成,如图2所示。其中:Agent模块负责设计Agent的功能;ACL模块负责设计Agent间知识级的通信功能;XML模块负责将Agent系统间通信的ACL进行封装,在多代理系统之间以XML文档的形式进行传输;SOAP通信模块用来实现应用层的传输。3.1用户接口模块Agent模块用来设计Agent的功能,负责处理用户输入,并向用户显示请求结果。当用户登陆的时候,根据用户的角色进行初始化,应该包括一个用户接口模块。发送消息时,通过接口将用户要传送的内容发给KQML模块;接收消息时,Agent模块通过接口接收KQML模块解析后的Agent消息。该模块在具体实现时主要是通过一个Agent类来实现的。3.2扩展kqml语言本模块的功能是将Agent需要传输的内容生成KQML格式的语言。Agent在需要通信的时候,先根据自己的知识库,经过计算和推理得到内部结果,形成Agent的通信内容。然后KQML模块选用合适的KQML原语将Agent的通信内容表示出来,得到Agent间通信的KQML语言。这样使得Agent应用系统的开发者可以把开发的重点放在Agent的具体功能上,而不必关心通信的具体细节,降低了Agent系统开发的难度。同时,KQML语言生成模块还提供扩展KQML语言的功能。在设计多Agent系统的时候,设计者可以根据自己的需要在现有的KQML语言的基础上,增加一些能提高系统通信效率的KQML语言,从而使Agent间的通信更加方便。实现扩展KQML语言功能的一种方法是定义扩展的KQML语言类,在扩展KQML语言类中定义用户自己的属性和方法。在扩展的KQML语言类中,统一消息的逻辑结构,从KQML消息的通信层中抽取参数,作为扩展KQML的参数,同时定义内容层及消息层,组成结构一致的KQML消息。扩展的KQML语言和没有扩展的KQML语言的关键区别在于内容层的内容定义有所不同,所以说扩展的KQML语言不仅包括了KQML语言常用的保留原语,还拥有自己的参数。Agent在通信的时候,只需调用KQML语言类,任何消息都可以作为该类的一个实例。用户在接收到某条消息时,根据消息的类型来获得内容层的实际内容,从而完成Agent间的通信。通过定义KQML类来实现KQML模块的功能,包括2个函数:KQMLPack(),将Agent消息生成KQML格式语言的函数;KQMLUnPack(),将KQML格式语言解析成Agent消息的函数。3.3kqml的给药与获取本模块的功能是将KQML语言串封装成XML文档并将接收到的XML文档解析为KQML语言串。XML对KQML的封装是通过给出KQML消息的Schema定义,然后将KQML中要表示的内容进行封装。这里以Agent间的通信为例,AgentA向AgentB发送的KQML消息为:Advertise:senderA:reply-withq1:languageKQML:ontologyK1:content(Evalute:LanguageKQML:ontologyP1:reply-withq1:content(val(torquemotorl)(sim-time5))同时,在不同的Agent系统中,还可以根据实际情况扩展KQML原语进行通信,因此,Schema定义中也可以方便的加入扩展的KQML原语。通过定义XML类来实现实现XML模块的功能,包括2个函数:XMLPack(),将KQML格式的语言封装成XML文档的函数;XMLUnpack(),将XML文档解析成KQML格式语言的函数。3.4通信模式单一以SOAP作为Agent间的通信机制。SOAP是独立于平台,独立于语言的纯消息规范,同时通信内容又是基于应用广泛的XML进行描述,因此应用难度减小。同时它通过加载HTTP协议在网络上传输可以很容易的通过防火墙。4生成wp文件在每次需要通信的时候,Agent首先根据自己的知识库进行计算或推理,选用合适的标准词汇集生成相应的请求,然后由KQML模块将请求生成相应的KQML语言串,接着使用XML封装器,将接收到的KQML语言串封装成XML文档,最后通过SOAP通信机制向其他的Agent传送该文档。其他Agent在收到该文档时,先使用XML解析器从中分离出KQML消息,并试图理解之;然后基于自己的知识库进行计算或推理,得出内部结果,并选用相应的标准词汇集生成回答;接着和发出请求的Agent相似,先通过KQ经过KQML模块处理生成KQML消息,再经XML模块生成XML文档;最后通过SOAP通信服务向请求Agent传回XML文档。具体的通信流程如图3。5soap技术本文引入XML技术和

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论