|
||||
基于异质网络的软件Agent系统 |
|
北京航空航天大学计算机系 陶伟 宿利 一、研究的意义 随着信息高速公路的出现,整个计算环境正在经历着深刻的变革,这表现在高度的分布式 、异质网络与操作系统,极强的动态性和大量的独立网络结点。处于这样的环境之中,信息系 统面临着以下问题: ·在Internet上的主流计算模型是Client/Server,这种模型的限制较多,无法主动地向 用户提供信息。在交互操作的过程中,一些节点要同时扮演Client和Server的角色,这是经典 Client/Server模型所无法满足的。 ·我们面临着多种形式的异质信息,如异质操作系统、异质网络、异质机器,以及不同的 数据格式、不同的信息服务能力、不同的标准(CORBA、OLE、LINDA、ISIS、ZIRCON、OpenD oc)等。 ·软件间的协同作业困难。今天,我们有数以万计的软件产品可供用户选择,这些软件产 品为各个领域提供了不同的信息和服务。可是多数软件只能孤立地被使用,一旦要求多种软 件协作完成一项复杂的任务,人们往往束手无策,即使勉强把若干软件"集成"在一起使用,也 要花费大量的人力和物力。 造成上述问题的根源是异质。因为程序是由不同的程序员、在不同的时间、不同的操作 系统下、不同的网络环境中、用不同的语言开发的,它们提供的接口是迥异的。 为了解决这些问题,研究人员开始把人工智能Agent的概念引入到软件开发的过程中,其 目的是增强软件之间的可协作性。采用这种方法进行软件开发,应用程序被视为软件Agent, 它们之间可以通过Agent通讯语言进行信息交换。 软件Agent的主要用途是在异质的网络、操作系统以及机器环境中实现不同软件的数据 交换和协同作业。 软件Agent的研究是一个综合性的理论与技术的研究,它涉及人工智能、网络通讯、工程 数据交换标准、软件工程和操作系统等多个方面。软件Agent的理论与技术,可极大地提高在 异质计算环境中各种软件的协作能力,提高软件的可重用性,这在计算机网络广泛应用的今天 有着非常重要的意义。 二、研究状况和发展方向 1.Agent理论的研究 理论研究的内容是:Agent的概念、性质以及表示。这部分涉及人工智能、哲学、心理学 等多个学科。至于Agent理论的模型和形式化的方法,学术界尚未形成统一的观点。下面是几 个主要流派: (1)意向系统(Intentional system)现在被大多数人认同的Agent的概念是一种所谓的意 向系统定义。所谓的意向系统是这样的一个实体,该实体的行为可以通过一组方法来预测,这 组方法可以给信念(Belief)、愿望(Desire)及合理的智能(Rational acumen)赋值。 意向系统可以分成不同层次:第一层有信念、愿望等,但没有关于信念、愿望的信念与愿 望。第二个层次有关于信念、愿望的信念与愿望,依次可以分下去。 一般来说,对于一个系统,我们了解得越多,就越能精确地预测和解释系统的行为。但对 于复杂的系统,即使我们掌握了系统的全部细节,也很难对系统的行为做出解释与预测。例如 ,一台计算机,我们拥有它全部的电路图和各种技术资料,但是我们仍然很难解释:为什么人一 按鼠标,屏幕上就会出现一个菜单?因此,我们可以把意向系统作为一种抽象工具,来描述、解 释、预测复杂系统的行为。 作为一个意向系统的Agent,它有两种观点:信息观点(Information attitude)和预先观 点(Preattitude)。 信息观点是指Agent拥有的外部环境的信息,预先观点是Agent的行为准则,这两部分之间 是紧密结合的。许多Agent的理论研究工作着重于两者之间的关系。 用经典的一阶逻辑来表达意向概念是不适合的。研究人员开始寻求更为合理的、形式化 的表示方法,以解决意向概念形式化表达中的语法和语义问题。 针对语法问题,研究人员提出了两个解决方案。第一采用模态语言(Model Language),这 种语言包含非真值函数的模态操作符,可用于公式。另一种方法是采用元语言(Meta-langua ge)。意向概念可以用元语言的谓词,以及任何被认为是合理的公理来表达。 语义问题也有两个解决方案。第一种是众所周知的可能世界语义(Possible worlds se mantics)。Agent的信念、知识、目标等被称之为一个可能边界的集,集中的各元素有着访问 联系。由于可能世界语义和一致性理论(Correspondence theory)有着紧密联系,使它成为一 个有效的数据工具,但是,它也存在着所谓逻辑全知(Logical Omniscience)问题。因此,某些 研究人员开始对可能世界语义进行改进,在保持一致性理论的前提下,消除逻辑全知。 Agent的各种形式化工作基本上都是集中于某一个方面,或是知识,或是信念。但是,实用 的Agent理论需要一种更为丰富的逻辑框架。首先,Agent与其存在的环境是动态的,要求Age nt逻辑具有描述动态的Agent和世界的能力;其次,虽然基于行动的理论有二义性,然而我们最 终是希望Agent完成某种工作,所以,我们希望形式化工作应包括对行动的表达。 (2)Moore的知识和行动模型(Knowledge and action)该模型的研究重点是行动的知识前 置条件。它回答了一个Agent行动之前,需要知道什么。 (3)Cohen和Leveque的意向模型 该模型对Agent理论有着非常重要的影响,它首先在形式 化中引入了意向的概念。其逻辑体系已广泛应用于Agent的推理、多Agent系统的冲突和协作 的分析,以及协作的问题求解。 (4)Rao和GeorgeFaciliator的信念、愿望、意向模型 该理论模型把信念、愿望、意向 综合起来,以期建立一种更为理想的Agent模型。 (5)Wooldridge的多Agent系统 该模型建立了一系列的逻辑来表达多Agent系统的性质。 2.Agent系统的体系结构 (1)经典方法:构造式体系结构(Deliberative Architecture)符号的AI范型是基于所谓 的物理符号系统假设。一个物理符号系统可以由一组物理符号组成,智能任务可以通过符号 内部表示进行操作的推理进程实现,推理进程以及内部表示构成了Agent的基本框架。 建立这样的Agent系统,至少要解决以下两个问题: ·转换问题:如何迅速地把实事世界映射成为一个准确而完全的符号描述,并保证这种描 述的有效性。 ·表示和推理问题:如何用符号去表示复杂的实事世界的实体和过程?如何使用Agent依 据这些符号系统进行快速推理,以得到有效的结论? 前一个问题涉及视觉和语言识别、学习等,后一个问题涉及知识表示、自动推理、自动 规划等。虽然计算机理论的科学家在这些问题上投入了大量的精力,但离问题的根本解决仍 相差甚远。因此,多数研究者对这种体系结构并没有抱太高的奢望。 (2)反应式体系结构(Reactive Architecture)由于符号AI仍有许多问题没有解决,许多 研究者开始怀疑符号AI的可行性,开始建立一种新的体系结构,即所谓的反应式体系结构。它 的特点是不包含任何中心符号世界模型(Central symbolic world model),不使用任何复杂 的符号推理。 (3)混合式体系结构(Hybrid Architectures)许多研究人员认为构造式和反应式结构都 无法单独完成Agent功能,他们提出了混合方式,把两者结合起来,其代表有George & Lansky 的PRS(Procedural Reasoning System)、Ferguson的TouringMachines。 3.Agent语言 所谓Agent语言,是以Agent所定义的方式对计算机软件或硬件进行编程的一个系统。最 引人注目的Agent语言是Shoham提出的面向Agent的编程AOP(Agent-Oriented Programming) 。 AOP以一种社会学的观点来看待计算。AOP范型的核心是以一种理智性、意向概念来对A gent进行编程。它反映了主流Agent理论的思想。 Agent提出的AOP系统由三个部分组成: ·一个用于定义Agent理性状态的逻辑系统。 ·一个用于Agent编程的解释性程序设计语言。 ·一个Agent化工具,把Agent程序编译成低级的可执行系统。 AOP语言的第一个实验性系统是AGENT0系统。AGENT0的语言是由以下几个部分组成:一组 描述Agent能力的语句,一组原始的信念和承诺,一组承诺规则。其中最重要的是承诺规则,它 决定了Agent如何行动。每个承诺规则由消息条件、理论条件和行动组成。一旦Agent接受到 消息,和消息条件及理性相匹配,规则就被激活。如果规则被激活,Agent就要实施它所承诺的 行动。行为可以是私有的。Agent内部执行的子程序,也可以是通讯,向其它Agent发消息,消 息分成三种类型:请求(Request)、撤消请求(Unrequest)、通知(Inform)请求和撤消请求信 息改变Agent的承诺,通知消息改变Agent的信念。 Agent的应用是非常广泛的,其中软件Agent是较有前途的一个方向,因为它具有很强的实 用价值,特别对于异质网络、操作系统、机器、不同软件之间的数据交换和协同有着更为重 要的意义。 三、主要研究内容 1.Agent通讯语言ACL(Agent Communication Language) ACL标准可以把接口和Agent的实现分开,简化Agent协作功能的开发。只要所有软件遵守 ACL标准,它们之间就可以进行协作。现在,不同的应用领域都有自己的标准,例如,在不同厂 家开发的E-mail程序可通过SMTP进行相互操作,不同的图像软件通过GIF和JPEG进行数据交换 ,正文格式程序和打印机之间通过Postscript进行数据交换。 不幸的是,如果两个程序分别是由两种语言开发的,那么,两者有着不同的数据格式和术 语,即使是同一术语,也可能有着不同的语义。 软件Agent要通过一种通用的通讯语言来解决上述问题。通用的通讯语言可以有两种设 计方法:一种是基于过程的,另一种是基于声明的。 基于过程的方法的基本思想是程序之间通过过程命令的交换来实现通讯,Scripting La nguage(如Apple的Events及Telescript)都是基于上述方法。它们不仅可以传输单个命令,而 且可以传输整个程序。 纯粹的过程式也有它的缺点,首先,有时设计一个过程需要接受者的信息,而这些信息是 发送者无法获得的;其次,过程无方向性。许多Agent共享信息在两个方面均可使用。更为严 重的是文本是难以合并的。当一个Agent同时接到了若干个Agent的消息文本时,过程式方法 就很难处理。 与过程方法相对应,基于声明的方法是通过其声明语句(如定义、假设等)的语言来进行 通讯的。这种基于声明的语言一方面要简洁,另一方面要有通用性,不局限于某个特定语言或 特定的领域。这种方法的工作主要是由ARPA的Knowledge share项目来完成的。它定义了一 套Agent通讯语言ACL。 ACL有三个部分组成:词汇表(Vocabulary)、内部语言KIF(Knowledge Interchange For mat)、外部语言KQML(Knowledge Query Manipulation Language)。一个ACL消息是由一组K QML表达组成,KQML表达式的参数是KIF格式的项或句子,KIF的项或句子由ACL词汇表中的单词 组成。 ACL词汇表是面向一般应用领域的开放的字典。字典中的每个单词都有用户理解的语义 描述,以及它们在KIF中的含义,新的应用领域的单词可以很方便地加进去。 ACL字典并不是描述一个应用领域唯一的途径。实际上每一个给定的领域、概念都会有 多种表达方式。例如,描述几何的三维坐标有极坐标、直角坐标系坐标、圆柱坐标,程序可以 采取具体问题具体分析的方法选择最合适的表达方法,同一概念的不同表达方式的形式化,使 不同程序之间消息翻译成为可能。 KIF实际上是对一阶谓词演算的扩展,它比一阶谓词演算有更强的表达力,它为简单数据 、约束、规则、数字表达式及元信息提供了编码机制。 如果整个ACL均是KIF形式的句子,Agent的通讯将是非常高效的,但是若干KIF句子的组合 会构成上下文语义,这时ACL必须提供发送者、接受者、消息时间、消息的历史等方面的信息 。为了表达KIF句的上下文语义,A-CL提供了一个KQML语言层。 ACL已经被成功地运用于几个大型的软件Agent的实验系统中,已取得了可喜成果。ACL的 定义已有几个标准化,标准化委员会亦推出了若干草案,一些公司也承诺提供处理ACL的商业 化产品,一些大的计算机系统厂商也把ACL视为一种对于异质系统通讯的较理想的语言。 2.构造一个可用ACL通讯的Agent Agent的准则可以从行为上理解。一个实体被称为软件Agent,是因为它可以用ACL之类的 语言进行通讯。这意味着该实体可以读写ACL消息,必须遵守消息中隐含的行为约束。 一个消息中有特定的约束消息的内容和Agent行为的一般准则。例如,Agent的行为必须 遵守以下准则:真实,Agent必须提供实事;自主,一个Agent不能强迫其它Agent为其服务,除非 某个Agent愿意为之服务;承诺,如果Agent愿意提供某种服务,那么当其它Agent请求服务时, 它必须满足。 从理论的角度讲,Agent的所有行为准则来自于真实。换言之,每个Agent都必须说实话, 然后是自主、承诺等。对人来说,整天说真话,似乎太难了,然而对Agent,这并不难,因为Age nt总是知道它自己的输入、输出和定义,每一条程序的执行证明了它的信念。从实践的角度 讲,是ACL给Agent带来了行为上的约束。 如果事先给出一组明确的声明和行为规范,那么一般来说,在这种前提下编制的Agent程 序应该能执行正确行动,但是,面对成千上万已经开发成功的程序,Agent化并不是一件易事。 但是,它们是历史留下的丰富遗产,不可不用。因此,已有软件的Agent化也是Agent研究的重 要方面。软件Agent化的途径有三条:外挂式、包装式和重写式。 外挂式的实现方式是实现一个作为该程序和其它程序的中介Transducer。Transducer从 其它Agent接受消息,把它转换成程序可用的通讯协议,转移给程序。它也可以接受程序的反 应,将它翻译成ACL,把结果消息传递给其它Agent。 此法的好处在于无需了解程序内部的细节,而仅知其通讯行为即可。特别是无法获得源 代码,或者在程序弱不禁风、难以修改的情况下,该法更能显示其优越。 第二种方法是包装式。它是一种半自动方式,需一个包装器(Wrapper)。包装器直接把代 码插入到程序源码中,使之成为Agent,可用ACL通讯。包装器可以直接检查和修改程序的数据 结构。 此法比外挂式有更高的效率,更少的串行通讯。对于没有进程的通讯能力的程序,该法也 相当适合。唯一的缺点是要源代码。 第三种方法,全是手工作业。但是功能、效率最高。 3.Agent之间的协作通讯结构 一旦我们定义了ACL和构造Agent的能力,下一步工作就是如何把这些Agent组织起来,提 高它们之间的协作能力。Agent的组织方式有两种:直接通讯方式,每个Agent自己管自己;辅 助通讯方式,Agent通过一个特定的系统程序进行通讯。 基于直接通讯的结构有两种较为流行:契约网络方法(Contractnet approach)和规格说 明共享(Specification sharing)。 在契约网络结构中,需要服务的Agent把请求发给所有的Agent,接收到消息的Agent分析 后向发生者投标,以示自己可以提供服务。请求服务Agent接到标书后,再决定把任务分配给 谁,并和提供服务的Agent签定契约。 在规格说明共享的结构中,每个Agent向其它Agent提供自己的能力和需求信息,Agent通 过这些信息去协调自己的行动。这种结构比契约网络结构效率更高一些,原因是它减少了Ag ent之间的信息传输量。 直接通讯方法的一个显著缺点是通讯开销大。当Agent数目较少时,这显然不成问题。然 而上了Internet,我们将面临数以百万计的程序,广播式的消息发送显然是不切实际的。 另一个问题是实现的复杂性,在直接通讯体系中,每个Agent独自负责和其它Agent协商, 必须拥有必要的信息,其程序复杂性可想而知。 比直接通讯方法更好的设计是所谓的联邦系统(Federated system)。系统中每台机器运 行若干Agent,Agent之间通过一个Facilitator通讯。 在联邦系统中,Agent使用ACL来描述它们的能力和需求,除了元信息外,Agent也可以发送 和应用相关的信息,要请求Facilitator接受应用层信息和请求。Facilitator接受到Agent用 的ACL表达的信息,经处理选择路由后,发到目的地。所谓联邦系统,是指若干Agent构成的一 个小"联邦",通过Facilitator和其它Agent系统通讯。 其实联邦系统并不是什么新鲜的概念。分布式对象管理系统(诸如CORBA、OLE、DSOM)都 为面向对象系统提供了位置透明的消息传递机制。主动代理者(Broker),诸如Macintosh的P ublish和Subscrible能力,DDE、BMS、Tooltalk等,不仅具有消息的发送和接受机制,而且可 以处理消息产生的问题,把结果送回原消息发送者。 基于Agent的软件工程和上述软件间的相互操作的区别在于Facilitator处理过程的复杂 性。使用A-CL,Agent可以更精确地表达其能力和需求,它强于基于模式的元语言。Facilita tor可以通过ACL消息更有效地为消息进行路由选择。为了解决消息符号上的不兼容性,Faci litator可以参考ACL字典或Agent提供的定义,把一个应用领域的消息转换成另一个领域的消 息。Facilitator可以把消息分解,分发到多个不同的Agent处,也可以把多个消息合并成一个 消息。Facilitator有时扮演翻译者的角色,有时扮演连接者的角色。 为了提供上述能力,当前的Facilitator的实现均借助于AI和数据库发展的自动推理技术 。为了提高消息处理的性能,采用了强有力的查询控制技术,为了获取至高的效率,采用自动 生成器,以自动生成消息路由选择程序和消息翻译器。 四、关键技术 Agent系统的研究是一个涉及面广的综合研究领域。最高层是知识的表达、推理、交换 ,最低层是操作系统、网络通讯,此外,还有不同应用领域的数据格式的转换、术语统一等等 。其中Agent系统的语言标准是关键,其目的是解决Agent之间的知识共享,使Agent之间可以 交流。 Agent语言标准的制定工作是由外部界面工作组完成的。外部界面工作组是在DARPA的支 持下于1990年建立的,它主要由从事AI和分布或系统研究的科学家组成。其主要目标是为自 主式信息系统建立可表达知识之间的交换协议。其最大成果是知识查询与处理语言KQML。其 它工作组分别是知识交换格式KIF工作组、本体论(Ontologies)工作组,以及知识表示系统标 准KESS工作组。 1.KQML KQML辅助了领域知识的表达。KQML可以用于面向对象数据的传输和把各种不同的信息收 集起来。程序可以使用KQML表达对信息的态度,如查询、请求、提供等,KQML并不关心信息本 身的格式,因此KQML可包含多种知识的表达形式。 对于自主的异步的Agent程序,KQML在通讯方面扮演着非常重要的角色。主动意味着Age nt之间有着不同,甚至是冲突的计划,这样,KQML的消息以约束形式定义在消息发送方而不是 接受方。这样使接受方能够选择一组行动不与发送方冲突。当然,完全的协作是不可能的,总 会有不可解决的冲突。 KQML的传输层为分布式计算提供了方便,例如OMG的OKB定义了进程之间及平台之间的消 息传输、分布式服务、数据类型的翻译和名字注册等,但它没有像KQML那样定义了如此丰富 的一套消息类型和它们的语义。 2.KIF KIF是用于不同程序之间知识交换的形式语言,这些程序分别由不同的程序员、在不同的 时间、用不同的语言开发的。 KIF并不是为和人交互,也不是用于程序内部的知识表示,虽然它可以用于这些目的。一 个应用程序可以读KIF格式的知识库,然后KIF格式数据转换成自己的内部格式。当一个程序 和另一个程序通讯时,需要把内部数据格式转变成KIF格式。 KIF的目的实际上和Postscript类似。Postscript是广泛应用于正文和图形描述的语言 ,它完成文档和打印机之间的通讯。虽然Postscript不是为某种文档专门设计的,也没有所见 即所得的显示,但它是一种程序员可读的表达方式,使文档的排版程序和打印机的开发独立起 来。同样,KIF虽然没有某些专用的知识表示主方式效率高,也没有专门的显示方式,但它也是 一种程序员可读的语言,方便了知识处理程序的开发。 KIF的定义有以下三个特点: (1)语言为声明语言。程序员可以查解获得语言中表达式的含义,而无需借助某种解释器 。这种KIF区别于其它基于Prolog语言的专用语言。 (2)语言是逻辑上可理解的,它可以用谓词演算表达任意句子,在这一点上,它区别于关系 数据库语言和类Prolog语言。 (3)提供一种知识表达的知识表达,这样可以显式地做出所有知识表达的决定,并允许进 入新的知识表达结构,而无需改变语言本身。 3.Facilitator Facilitator的设计和实现涉及网络通讯、知识的推理、冲突的协调及Agent通讯等,直 接影响整个系统的效率和可用程度,是当前研究的重点之一。 分布式人工智能的研究对多Agent之间的协作和冲突的处理也有着重要的意义。分布式 人工智能的研究重点是在分布式环境下,多个智能体的集群推理,它强调各智能体之间的数据 通讯和协同工作。 随着网络技术的不断发展,其数据吞吐能力有了很大的提高。例如,FDDI可以以100Mbps 的传输率运行;ATM技术则可以支持文本数据、图像、声音等多媒体信息的传输。现代网络技 术为Agent提供了高速数据传输,是软件Agent研究的物质基础。 五、两个著名的实验系统 1.Stanford大学的PACT系统 PACT系统是一个并行工程的实验系统。它受到了DARPA、NASA、Hewlett Packard实验室 的支持,由Stanford大学、Lockheed公司、HP公司和Enterprise Integration Techologies 公司四家联合研制。PACT集成了四个并行工程系统,协作完成一个机器人控制器的设计、模 拟与实验。其目的是建立一个具有知识共享、可相互操作的基于Agent的体系结构。 2.Carnegie Mello大学的PLEIADES 随着WWW的广泛应用,基于网络的信息与服务成几何级数增加,仅靠人工去寻找信息,做出 决策显然已不能满足应用的需求。PLEIADES的目的是建立一系列智能信息Agent,使信息可以 被主动筛选出来,并无缝地集成到用户的问题解决过程与决策过程中去。 PLEIADES是一个基于Internet网的分布式结构,由一组智能信息Agent组成,Agent之间通 过协作完成信息的主动查询、获取、过滤、集成和监视,把信息集成到以用户的问题解决过 程中,以完成特定的任务。 六、小结 基于Agent的软件工程已逐步走向实用,在众多的应用领域得到了验证,也是信息高速公 路重要的支持技术。 当然,Agent系统也有一些问题没有很好地解决,例如同步、安全、服务收费、事故恢复 及程序说明的不一致性等等,都是应进一步研究的问题。 随着Internet应用的发展,Agent系统不得不考虑商业方面的问题。将来,Internet网上 运行的都是人格化的Agent程序,由它辅助人类获取、处理信息和提供服务。因此,提供服务 就存在收费问题,特别是一个Agent提出的问题,需要多个Agent协作解决,那资金应该怎么分 配,如何支付,是现金?还是支票?或是电子货币?由于商业化,Agent说实话的前提假设又不存 在了,一个Agent可能会欺骗人或其它Agent,而非法获取财富,那么,法律上又如何处置呢?还 有许多有趣的问题和有趣的现象,都会随着Agent的出现而出现。 (计算机世界报 1997年 第8期) |
周报全文频道联系方式:010-68130909 |
||||||
| 【关于我们】 【广告服务】 【周报发行】 【投稿指南】 【投稿声明】 【联系方式】 【法律声明】 【媒体手册】 【编读往来】 |
||||||
| Copyright© ccw.com.cn,All rights reserved | ||||||
| 中国计算机世界出版服务公司版权所有 | ||||||