您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > Agent的通信解析
Agent的通信合作可以获得整体利益大于各部分和的效果,而通信是实现合作必不可少的基础条件。Agent之间如果想进行合作交流,就必须进行通信。Agent所处环境的变化对Agent的行为有很大甚至是决定性的影响。一个Agent在对环境变化进行预测时,要考虑到其它Agent的活动一般是不受自己控制,难于预测的。为了更好地预测环境变迁和增强自身的行动能力、实现自身需求,Agent之间必须进行通信。通信是实现和提高Agent智能性的途径,是Agent社会性的体现,是Agent具有实用价值不可或缺的能力之一。Agent的通信过程发送方sender将自己的思想翻译成通信所用语言的格式sender将语言格式加载到通信传播载体,比如文字、声音和图象传播载体到达接收方receiverreceiver读取载体中的语言代码receiver在思维空间中将语言代码按其格式翻译为思想,从而熟悉sender的思维状态Agent的通信层次Agent的通信可以从逻辑上划分成三个不同的层次,从上到下依次是:会话层、通信语言层和传输层。传输层指实现数据信息传输的协议和有关机制,如:TCP/IP、UDP、HTTP、SMTP、IIOP等。通信语言层则指Agent赖以表达它关于通信内容的观点或态度并将其传输给会话方的一种媒介或工具。Agent可以就某特定问题提出请求、查询、声明、通知或作出回答等。会话层包括Agent用以管理整个会话过程的结构、规则和有关的会话策略。Agent通信语言——ACLAgent的通信是它与其环境(指它所生存的系统,包括其他Agent)协调、交流、合作和竞争等活动的基础。Agent可以通过某种“高级”的通信语言来表达它关于其生存环境的认识、观念、态度、它的知识、解题能力、合作愿望和方式、情感和它对问题空间的理解和定义等。这种专门用于Agent通信的语言称为Agent通信语言,即(AgentCommunicationLanguage,简称ACL)。需要保证Agent在进行通信时可以屏蔽掉其内部的实现细节,它们之间需要的是一种独立于领域知识的、高层的、能够直接互相操作的通信语言.Agent通信中的对象在Agent的通信中涉及到两类对象:参与通信的Agent和传播载体。传播载体的行为由自然规则约束,它一旦离开了发送方,就不再完全由发送方控制。Agent可以创建载体,发送载体,但是不能完全控制它的传送。从实际的角度说,在动态开放环境中的通信,其真正的通信行为,仅限于对载体的处理。Agent进行通信就是要改变信息载体,将载体发送到接收Agent的可观察环境中。ACL基础为了在开放的环境中进行合作,以Agent为基础的各种系统,至少体现在系统接口上,必须在以下的几个层次上达成一致:传输层(Transport):Agent如何接受和发送消息。语言层(Language):每一条消息的含义是什么规则(Policy):Agent如何利用语言层的消息组织对话体系结构(Architecture):根据各种协议如何连接不同的系统显而易见,语言层是Agent通信语言所最关注的。ACL的产生ACL最初源于KSE(KnowledgeSharingEffort知识共享工程)的工作。KSE发布的两个主要文件:知识查询与操纵语言(KQML,KnowledgeQueryandManipulationLanguage)。KQML是一种用做Agent通信的“外层”语言,它为消息定义了一个“信封”格式,使用这个格式,Agent可以明显地说明一条消息不发音的言语想动作的能力。KQML并不关心消息的内容。知识交换格式(KIF,KnowledgeInterfaceFormat)。KIF是一种显式地允许对某个特定的“谈论的领域”进行知识表示的语言。它主要是要(尽管不是唯一地)形成KQML消息的内容部分。ACL的特性(一)形式上,ACL应具有表达性,语法简单,容易被人类阅读,能够被各种使用者接受;为了传输和解析的方便,ACL应是线性或容易转变为线性的;为了易于集成到各种系统中其语法应该可以扩展。内容上,ACL应是分层的,尤其是要将ACL传输的内容与它所要表达的通信动作(即上面所说的命题态度)分开。ACL中应该定义一个可扩展的执行原语集合,这些执行原语提供了Agent认知状态与消息标识之间的映射,而且该集合中至少应包含独立于具体应用的执行原语内核。语义上,ACL语义的描述应为Agent的通信提供一个模型,保证应用系统的设计者们对ACL的理解和使用无论何时何地都具有一致性。ACL的特性(二)实现上,ACL应该可以充分利用现有的软件技术;外部接口简单易用并且可以被各种语言实现;位于通信原语底层的网络情况对于用户来说是透明的;应用系统可以根据实际情况只部分地实现语言的内容。网络上,ACL应该支持各种先进的网络技术,连接方式(点到点、组播、广播等)和通信模式(同步通信、异步通信等);提供一个丰富的执行原语集合以支持高层语言和协议的构造,且应保证这些高层协议独立于ACL使用的传输技术。工作环境上,ACL必须提供可以处理异构和动态的工具,必须支持与其它语言和协议之间的互操作,支持在大型网络环境中的知识查找,易于与现存系统无缝地连接。可靠性上,ACL必须支持Agent之间可靠的、安全的通信,应提供识别和表示错误与警告的机制。两种ACLKQML(KnowledgeQueryandManipulationLanguage)KQML是由KSE制定的ACL,它常被ACL领域的研究人员当作是说明、理解和建造新ACL的参照语言,也是目前应用得最多的ACL。不过,由于KQML在建造的初期忽略了语义的科学说明,成为使用KQML的不同应用系统之间进行有效通信的障碍FIPAACL(FoundationforIntelligentPhysicalAgentsAgentCommunicationLanguage)。FIPAACL是由FIPA制定的ACL,它与KQML有很多的相似之处,例如它们都是基于言语行为理论、分层的通信语言、有相同的语法形式等等。但是,KQML和FIPAACL使用的是完全不同的语义模型,因此,想在两者之间进行精确的转换几乎是不可能的KQML通过对言语行为理论地研究,制定了一个框架模型来描述其消息的语义,而FIPAACL则使用一种多模态逻辑语言SL来描述其消息的语义含义,也正因为有了SL语言的规范,使得FIPAACL具有良好的扩展性。使用者可以根据自身的需要定义执行原语,并且利用SL语言描述它的语义,这是它比KQML优越的地方。从目前的使用情况看,大部分Agent应用系统采用的通信语言为KQML,而使用FIPAACL的应用系统则比较少。KQMLKQML是目前被应用得最多的ACL,它的核心是提供一个通信原语(消息类型)的抽象集合,利用这些通信原语表达出消息发送者对待真正想要交换的信息的态度。为此,KQML被设计成一种分层的语言,它共有三个逻辑层次:内容层(contentlayer)、消息层(messagelayer)和通信层(communicationlayer)。(ask-one:content(PRICEIBM?price):receiverstock-server:languageLPROLOG:ontologyNYSE-TICKS)执行原语参数名参数值KQML逻辑层具体含义内容层中携带的信息是一条KQML消息所真正要传输的信息。通过利用内容层,KQML消息可传递使用任何语言编写的信息,实现KQML消息与传输内容的分离,从而屏蔽Agent内部实现的异构性。消息层是KQML的核心,它最重要的功能是提供发送者对待内容层信息所要传递的言语行为(比如,这条KQML消息是陈述一个事实还是发出一个询问或者是请求),也就是说,这一层包含了发送者对待内容层中信息的态度。此外,由于内容层的表示语言对KQML消息来说是透明的,所以在消息层中还应包含可以识别内容层所使用语言的信息,即提供内容层的语义信息,包括内容层使用的是什么语言,如何解释其所涉及信息的含义。这一点是非常重要的,从常规意义上说,如果相互通信的Agent之间,对同一个内容有不同的理解,通信也就失去了其意义。但由于理论与现实的差距,真正做到这一点是非常不容易的。通信层中所携带的信息主要是为底层传输服务的。如提供KQML消息发送者和接收者的身份识别信息,是同步还是异步消息。语言的三要素任何一种语言都需要包括语法、语义和语用三大要素。语法确定了语言使用的基本符号(字符、字母、字)的集合,提供了一批可以用于判断什么样的符号序列(排列)是一个合法句子的约定,保证了语言形式的合法性。语义说明了合法的语言所蕴涵的意义,为理解语言的含义提供了一个标准。语用则是关于语言使用方面的一些约定的规则。KQML的语法标准的KQML语法基于Lisp语言中的S-表达式。一条KQML消息以执行原语(performative)开始,接在它后面的是若干个该原语所需要使用的参数名和参数值对,参数名以“:”开始。KQML中定义了一些保留的参数名。不同的执行原语可以有不同的参数,而且其中有些参数是可选的。KQML的BNF表示KQML的保留参数(部分)参数名参数含义receiver一条KQML消息真正的接收者in-reply-to接收者针对前一个收到的消息回答时所使用的标识号sender一条KQML消息真正的发送者reply-with针对当前的消息期望接收者在回答时所使用的标识号ontology解释content中所使用的各种术语的含义content一条KQML消息真正要传输的内容languagecontent所使用的表示语言KQML的语义言语行为理论认为一个句子是由“以言指事”、“以言行事”和“以言成事”三个层次构成。“以言指事”表达了说话人的语气以及相关的由满足语言语法及词汇要求的单词所组成的句子内容;“以言行事”将说话人的意愿传达给听话人,用来执行相应的动作;“以言成事”则是完成动作到达的目标。映射到一条KQML消息上,“以言指事”是消息内容完整的语法表示,包括消息真正要传输的内容和说话者对待消息内容态度的标识,即KQML的执行原语。“以言行事”暗示出消息的含义,它将说话者的意图传达给听话者。最后,“以言成事”与消息所暗指的动作是否成功执行有关。KQML的执行原语根据具体的应用,KQML的执行原语可扩充执行原语执行原语含义Announce(A,B,X)A向B就任务X招标Bid(A,B,X)A向B就任务X投标Award(A,B,X)A向B委托任务XAccept(A,B,X)A接受B委托的任务XThank(A,B,X)A收到B的最终汇报,通知B任务结束合同网中的部分执行原语课堂思考结合上节课所讲的基于合同网的协商和本节课的执行原语,试画出用执行原语描述的过程示意流程图。对上述的执行原语可以进行相应扩充。试构造拍卖的执行原语。Agent通信的本体本体问题的出现有如下原因:如果两个Agent就某个领域的问题通信,那么,它们必须就描述这一领域使用的术语取得一致。本体就是对这些术语集合的说明。如前面所述的KIF就是定义本体的语言的例子。也开发了许多其他语言和工具表示本体,最重要的可能就是可扩展标记语言XML(一种定义语言的语言)和DARPAAgent标记语言DAML(一个基于XML的语言)。协调语言(黑板模型)开发多Agent系统最重要的先导之一是黑板模型(EngelmoreandMorgan,1988)。黑板模型首先于1973-1976年在美国Carnegie-Mellon大学开发的HEARSAY-Ⅱ系统中创立,又在HEARSAY-Ⅲ中得到发展,这个模型建议群体问题求解由一组“知识源”(Agent)完成,它们观察一个称为黑板的共享数据结构:随着知识源不断提供问题的部分答案,完成问题求解。黑板模型结构黑板模型由“黑板”、知识源(KnowledgeSource)和控制机构组成。所谓“黑板”,就是一个分层的全局工作区(或称全局数据库)。它用
本文标题:Agent的通信解析
链接地址:https://www.777doc.com/doc-5649096 .html