计算机毕业论文:ML在多Agent系统中的应用

时间:2022-10-08 03:57:00

计算机毕业论文:ML在多Agent系统中的应用

摘要文章探讨了XML在多Agent系统中的应用。利用Java实现包含XML对象的Agent称为XMLAgent,它允许应用程序接收、发送和携带XML文档,可以将逻辑和数据封装在一起从一个节点移动到另一个节点,XMLAgent能够智能地保存、查询、交换信息。它为解决Agent间的通信提供了一种新的思路。

关键词AgentXMLJava

近年来,人们对多Agent系统的研究正越来越深入,已开始利用多Agent系统构建智能搜索引擎和灵活的电子商务系统。其中,如何有效地提高Agent间的协作和通信是系统的一个难点。

1Agent理论

和GUI技术一样,Agent技术的应用将会十分普遍,如今它正日益引起人们的研究兴趣。简单地讲,Agent可被看成是运行在计算机上的一个软件程序。它具有以下几方面的特征:

?Agent是一类自治实体。

一个自治实体的计算机程序是指它能依据自己的规则运行,并能初始化自身的操作。

?Agent具有通信的能力。

Agent之间应能互相通信,发送信息。

?Agent具有目标和意图。

Agent具有一定的功能。因此,它具有实现的目标,在这个意义上,它具有实现其目标的意图。

?Agent具有知识。

Agent为了实现目标,它必须具备实现自身目标的一些知识。

?Agent具有智能。

Agent具有一定的智能,能自主地适应环境的变化,通过学习来提高自身能力。

2XMLAgent

XML以其良好的数据存储格式、可扩展性、高度结构化、便于网络传输等特点,已经被业界倡导作为电子商务的通用描述语言。XML提供了丰富的语法来存储数据、携带数据和交换数据,能方便地在独立的平台之间交换数据和针对特定的应用定义自己的标记语言。

在Java2平台里,增加了处理XML文档的API函数—CommonDOMAPI和SimpleAPIForXMLParsing(SAX)等,它符合W3C提供的文档对象模型(DOM—DocumentObjectModel)等接口规范。

因为Java的安全性和可移植性,Java简化了Agent的开发,Java字节码能够在任何具有Java虚拟机的硬件环境和操作系统平台上运行。

Agent采用Java实现并且包含XML对象因此称为XMLagent。它具有以下特征:智能性,通用、简单的数据交换等。XMLAgent将逻辑和数据封装在一起,在网络间移动,能在具有Java运行环境的目的节点直接处理。

3分布式多Agent系统的结构

根据其是否移动,XMLAgent可简单地分为:移动XMLAgent,固定XMLAgent(本地和远程)。Java包包含很多类,我们可以对其进行扩展增加Agent通信时的智能性。

在分布式系统中,应用程序分布于网络的不同计算机上。当Agent移动到目的节点时,它会携带自身的程序、数据和状态一起移动,这是与CORBA、DCOM等分布式计算解决方案的主要区别。CORBA和DCOM提供了分布式对象相互通信的方法标准,规定了组件和应用程序如何建立在一个分布的有组织的体系结构里,依据其标准能构建复杂的分布对象应用。将这些标准与XMLAgent结合起来,在具体的开发中将十分有用。

3.1系统的描述

在多Agent系统中,我们采用FIPAACL通信语言。为了实现Agent间的协作,我们使用XML来对Agent请求、提供的服务进行描述。分布式多Agent系统的结构如图1所示:

图1分布式多Agent系统的结构

用户通过接口Agent能够进行注册,给出反馈,查看信息,创建Agent,查看结果以及系统的状态、性能等。通过调度Agent通过AgentServer选择合适的Agent执行服务请求。DBAgent能够从数据库中接收具体的控制信息。

固定Agent(DBAgent)管理各数据库的状态,当需要时就调用它们。固定Agent接收和转换来自于移动Agent的请求。我们可以认为固定Agent涉及各数据库的本地字典,而移动Agent涉及到了全局字典。这样,固定Agent通过接收、执行移动Agent传送过来的请求最终完成应用程序之间的协作。移动Agent从一个节点移动到另一个节点,通过与固定Agent交换信息(发送和接收XML信息),实现服务请求。固定Agent和移动Agent都是用包含XML对象的Java实现的,即所谓的XMLAgent。

3.2通信框架

在多Agent系统中,Agent间的通信采用ACL通信语言。我们使用多层的ACL通信语言:一个外部的“Agent交互协议”AIP层和一个内部的内容体层。AIP层提供了一个可扩展的原语集,它能控制Agent间的基本交互。另外,原语集并非闭集,实际应用中设计者能对其进行扩展以满足通信的能力。为了实现目标,我们可使用如下原语,如表1所示:

Requiredperformatives:RequestReplyError

Additionalperformatives:InformFailureUnderstand

表1原语

AIP描述Agent的交互过程,如信息的交换过程,它允许通过不同的系统组件解决问题。每个AIP组件既能进行全局处理也能进行局部处理。移动Agent检索可用的应用程序来执行服务,当初始服务失败时,它应能提供必要的反馈结果。它携带自身的程序,数据与本地的应用程序通信。而本地处理的过程是由固定Agent以分布的方式实现的。因此,全局问题的解决过程和本地问题的解决过程是可以相互独立修改的。

在应用中,我们首先根据需要使用DTD(文档类型定义)定义Agent通信信息的XML文档模板,然后将具体的XML文档嵌入到FIPA-ACL框架的内容体中,ACL可被称为XML-ACL。

由于XML描述数据和元数据的能力,Agent能够十分容易地理解基于XML的描述信息。FIPAXML-ACL格式请求信息的例子如下:

(request

:senderMobileAgent

:receiverStaticAgent

:languageXML

:interaction-protocolagent-request

:ontologyagent-management-ontology

:content<?xmlversion=”1.0”>

<action>register</action>

<actor>StaticAgent</actor>

<args>null</args>

<protocol>Request-inform</protocol>

<reply-with>Hello!</reply-with>

<ontology>default</ontology>

)

CORBA,DCOM等标准和方法都是为了解决分布对象应用问题的,能确保应用程序交换数据并能跨平台的远程调用。

把这些标准和XMLAgent技术结合起来,将极大地提高系统的可扩展性和智能性。

4结论

随着分布式应用程序的增多和Agent技术的兴起,人们研究的难点大多集中于应用程序的交互和Agent间的协作上,我们探讨了XML在多Agent系统中的应用,为解决此问题提供了新的思路。

5参考文献

[1]FIPA.FIPAInteractionProtocolLibrarySpecification./specs/fipa00025/XC00025D.html[J/OL],2001

[2]殷兆麟等.Java网络编程[M].国防工业出版社,2001

[3]FIPA.FIPAACLMessageStructureSpecification./specs/fipa00061/[J/OL],2001

[4]DistributedCommonObjectModel

,2002

[5]黄理,曹林有等.全面引爆XSP网站开发——XSP/Cocoon/XML核心技术内幕[M].北京希望电子出版社,2002.