基于FIPA的多Agent系统通信研究

时间:2022-09-08 08:16:13

基于FIPA的多Agent系统通信研究

摘要:Agent通信是多Agent系统(MAS:Multi-Agent System)的核心活动之一,是Agent相互协调、合作的基础。依据FIPA(Foundation for Intelligent Physical Agents)规范,采用消息传送与CORBA技术相结合的通信方式,实现了MAS中Agent之间的有效通信。通过具体的通信实例讨论了MAS中Agent通信的实现。

关键词:;多Agent系统;FIPA

中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)26-1792-03

Research on Multi-Agent System Communication Based on FIPA

YU Wei-hua, SHI Jing

(Electronic Information Engineering College, Henan University of Science and Technology, Luoyang 471003, China)

Abstract: Agent communication, as one of the core activites in multi-agent systems, is the basis for agent coordination and cooperation. According to Standard of FIPA, efficient communication between agents in multi-agent system is implemented by using the communication mode combining message transmission and CORBA. The realization of agent communication in multi-agent system is discussed by example.

Key words: agent; multi-agent system; FIPA

1 引言

近年来Agent和MAS的理论和技术已经成为分布式人工智能、软件工程等领域研究的热点。在MAS中,智能Agent通过相互作用实现问题求解和相互间的行为协调,通信是Agent实现相互作用的桥梁。通过通信,Agent可以了解其他Agent的状态,各Agent之间不断进行相互通信,保证了问题求解过程的顺利完成。

FIPA组织是非赢利性的国际标准化组织。FIPA制定了一系列的技术规范,来促进基于Agent的应用、服务和设备的成功实现[1]。

2 Agent与FIPA

Agent可译为或主体,广义上是指具有智能的任何实体,包括人类、智能硬件和智能软件[2]。智能Agent置身于某种环境之中,通过感知器感知环境,如图1所示。

图1Agent与环境的交互

在实际环境中,单个Agent的能力有限,当利用Agent求解问题时,应该将具有不同能力的Agent个体组成一个为完成某个任务而共同合作的整体,以期获得整体效应大于各部分和的目的,这是导致MAS产生的直接原因。与此同时,Internet的迅速普及更为MAS中各Agent之间的行为动作、合作交互提供了一个开放的基础环境。

2.1 面向Agent的软件开发

美国斯坦福大学的Shoham教授参考面向对象程序设计思想,提出了面向Agent的程序设计(AOP:Agent Oriented Programming)框架。在AOP中,Agent的状态由信念(Beliefs)、承诺(Commitments)、能力(Capabilities)、行为(Actions)等组成。他还定义了Agent之间的通信原语,并实现了一种基于AOP思想的Agent程序设计语言[3]。目前,AOP的含义己经不再局限于把意识态度作为程序的核心,而是泛指将Agent作为原子实体的设计和构建Agent系统的各种软件技术和开发方法,包括各种开发工具。具有代表性的开发方法有:Gaia[4],MAS―CommonkADS[5]以及其它基于Telescript、AGENT0、PLACA、AgentSpeak(L)、April等Agent编程语言的分析和设计方法[6]。

2.2 FIPA规范

随着AOP技术的不断发展,应用于不同领域的异构Agent应运而生。最初建立FIPA的目的就是为了提高异构Agent系统之间的交互性,并为此制定了一系列的技术规范,从体系结构、通信语言、内容语言到交互协议。FIPA通过融合言语行为理论、谓词逻辑及公共的本体论,来提供一个标准的方法以理解Agent之间的交流。

FIPA Agent必须运行在FIPA平台(FIPA Agent Plauform)内,平台为其提供了基本的服务支持,因此在某种程度上也可以称平台为Agent的中间件。平台主要功能是管理Agent的生命周期、使Agent能与平台内或平台外的Agent通信、使之能访问平台提供的服务等。

FIPA的管理模型如图2所示,主要有以下几个功能模块:

1)AMS(Agent Management System),是FIPA管理模型中必须的部分,相当于平台的管理者,它监控着Agent对平台的访问;

2)DF(Directory Facilitator)也是平台的必须部分,它提供平台内的黄页服务;

3)MTS(Message Transport Service)提供了不同Agent之间的消息交互机制,MTS由平台上的Agent Communication Channel(ACC)提供,ACC是平台上为Agent提供消息交互的实体;

4)AP(Agent Platform)是Agent能被部署运行的物理实体,它不仅包括前面的AMS、DF、MTS,还包括底层硬件、操作系统和支撑软件,如JRE等。

FIPA并没有规定AP的实现方式,平台的内部实现由Agent系统的开发者决定。

3 基于FIPA的Agent通信机制

FIPA标准规定Agent系统内部采用消息传递的通信模式,Agent系统之间基于CORBA IIOP通信。

3.1 消息通信

Agent的通信是它与其环境协调、交流、合作和竞争等活动的基础。FIPA综合了ARCOL的规范性和KQML的用户友好性和可用性创建了Agent通信语言FIPA ACL。它基于Speech-act理论,其消息本身表达通信动作,也就是说,Agent通过发送消息企图达到或完成某一特定目的或动作。

FIPA-ACL规定消息包含一个或多个参数,根据情况的不同,有效的Agent通信需要不同的参数;所有ACL都必需的一个参数是performative,大多数消息还需要包含sender, receiver和content参数。FIPA ACL的消息示例如下:

(inform

: sender agent 1

: receiver hpl-auction-server

: content (price (bid good02) 150)

: in-reply-to round-3

: reply-with bid03

: language fipa-sl

: ontology hpl-auctio

)

FIPA定义了一整套规范性的通信动作,它们代表了用来构建Agent之间对话行为的集合。每个通信动作由名称(表明消息的类型、含义和通信意图)和消息参数构成。FIPA ACL中的两个最重要的通信原语是Inform和Request。事实上,FIPA中所有其他的语用词是根据这两个原语定义的。

为完成一个任务,Agent之间要发送多次消息。针对不同的任务,Agent之间的会话经常会遵循固定的模式,消息的发送和接收具有特定的次序,比如一个Agent在向另外一个Agent发送一个请求的消息,它就会等待对方回复消息。这种典型的消息交换方式就是交互协议。FIPA定义了包括请求协议(FIPA-Request)、查询协议(FIPA-Query)、建议协议(FIPA- Propose)等。图3给出了FIPA请求协议的通信行为。

当Agent系统处在分布环境中时,个体Agent很可能分布在不同的物理位置、甚至运行在不同的平台上。这就要求MAS必须满足在不同物理位置和不同操作系统的环境下不改变代码或重新编译仍可运行,包括相互之间的信息的正确通信,即跨平台性、可移植性。选用中间件技术CORBA可以满足分布环境下的MAS的要求。CORBA作为一个通信中间件,通过把应用程序和通信核心细节分离,将底层调用API的细节隐藏起来,屏蔽复杂的网络通信,留给开发者的是较高层次的通用接口。对象请求ORB是整个CORBA结构的核心,也是重要组成部分。ORB的体系结构提供了分布式异步环境中基于C/S模式的通信机制。

Agent通信过程中,消息发送端对应CORBA结构中的客户端,接收端对应CORBA结构中的服务器端。由此组合可以实现Agent之间跨平台的互相通信,而且收发相互不会影响。这种方式使得Agent能有更多的自主性和交互能力,实现更强的功能。

3.2 通信实例

基于FIPA的Agent通信机制使得Agent准确、迅速的理解对方的通信意图,实现高效通信。以下通过一个购买CD的通信实例对系统中Agent间的通信情况进行描述。

在此例中购买CD的Agent和出售CD的Agent通过系统平台实现购买CD的交易,双方Agent分别命名为:CDBuyerAgent、CDSellerAgent。首先描述双方Agent的通信细节。卖方Agent启动后,响应买方Agent的请求,告知对方自己拥有名为“Synchronicity”的CD;买方Agent请求该CD的价格,卖方Agent告知其价格;买方Agent请求使用信用卡购买此CD;卖方Agent完成出售CD的动作,并通知买方Agent相关操作已经执行。该实例使用了两个本体元素集合来支持双方通信,它们是musicShopOntology和ecommerceOntology,前者用来描述卖方所拥有CD的信息,后者用来描述买卖双方交易的相关信息。

消息的实现通过一个ACLMessage类中的对象来完成,其中的get和set方法可以访问ACL格式指定的所有域。发送一条消息只需填写一个ACLMessage对象的域,然后调用Agent类中的send()方法。 FIPA定义的ACL 通信动作可以通过良好定义的语义使得当一个消息到来时,一个agent可以自动做出适当的决定。

下面的代码创建了一个消息来通知昵称为Peter的Agent:We have the CD you want。

ACLMessage* msg = new ACLMessage(ACLMessage.INFORM);

msgaddReceiver(new AID("Peter", AID::ISLOCALNAME));

msgsetOntology("musicShopOntology");

msgsetContent("We have the CD you want");

CDBuyerAgent和CDSellerAgent都继承自Agent类,在完成通信之前它们都需要进行创建本体、内容语言和内容管理器的工作,涉及代码如下:

ContentManager manager = (ContentManager) getContentManager();

Codec*codec = new SLCodec();

Ontologyontology = MusicShopOntology.getInstance();

发送消息一方重写Agent类中的setup方法,在setup中注册本体和内容语言,并调用addbehaviour方法为Agent添加行为,在添加的行为中,通过action方法创建消息、填写参数、依据使用的本体对消息内容编码以及调用send方法完成消息发送等。接收消息一方通过receive方法从消息队列中取出消息后,解析内容,根据得到的通信动作决定行为,例如CDSellerAgent收到来自CDBuyerAgent的QUERY-REF消息后,发出INFORM消息,告知其所需CD的价格。买方Agent和卖方Agent通过消息传送表达自己的意图,进行协商,从而完成CD购买交易。

4 结束语

通信能力是Agent的一个重要特征。文中讨论了依据FIPA规范将消息传送与CORBA技术相结合的通信机制,实现了MAS中不同Agent间的有效通信。本体在Agent通信中的应用能够保证通信的双方对事物理解的一致性,减少或者避免通信过程中的二义性,有效提高通信效率。Agent间如何在语义层面更加准确的理解彼此的通信意图是下一步工作的重点。

参考文献:

[1] 董爱兵,王小平,曹立明.基于FIPA ACL和RDF的Agent通信语言[J].计算机应用研究,2005,22(7):24-25.

[2] 张云勇,刘锦德.移动agent技术[M].北京:清华大学出版社,2003.

[3] Shoham Y. Agent0: a simple agent language and its interpreter[M]. In: Proc AAAI-91, 1991:704-709

[4] Wooldridge M, Jennings N R, Kinny D. The Gaia Methodology for Agent-Oriented Analysis and Design[J].Journal of Autonomous Agents and Multi-Agent Systems,2000,12(3):141-145.

[5] Iglesias C A,Garjo M,Gonzàlez J C, et al. Analysis and design of multiAgent systems using MAS-CommonKADS[C]. In:AAA'97 Workshop on Agent Theories, Architectures and Languages, Providence, RI, ATAL. An extended version of this paper has been published in INTELLIGENT AGENTS IV: Agent Theories, Architectures, and Languages, Springer-Verlag, 1998

[6] 刘大有,杨鲲,陈建中.Agent研究现状与发展趋势[J].软件学报,2000,11(3):315-321.

上一篇:基于朴素贝叶斯分类的手机垃圾短信过滤系统 下一篇:Windows 2000设计缺陷引起的错误及应对策略