焦蕾
(陕西工业职业技术学院 陕西 咸阳 712000)
软件Agent技术的诞生和发展是人工智能和网络技术相结合的产物。从20世纪60年代起,传统的人工智能技术开始致力于对知识表达、智能推理、机器学习等领域的研究,这些研究成果在计算机软件中的应用使得软件有了一定程度上的主动性,并在自主判断和行为选择上有了一定的智能性。
在Internet这一目前最庞大的互联网络环境中,计算机软件体系结构和组织结构的复杂性不断增加,传统的软件设计方法己经无法满足实际需要,分布式、智能化才是今后软件发展的基本方向。软件分布式的目标是要将问题进行分解[1],由多个实现了知识共享的软件模块或网络节点来共同完成问题求解,而智能化的目标是要在智能主机之间实现智能行为的协调,两者的结合就产生了软件Agent的概念
到目前为止,许多研究者提出了各自对Agent的定义,但至今没有一个被大多数人认可的统一的定义。但人们大致认为:软件Agent是运行于动态环境的、具有高度自治能力的实体,它能够接受其他实体的委托并为之服务。不难看出,软件Agent首先具有智能特性,它对环境有响应性、自主性和主动性。同时,软件Agent还具有社会特性。它在一定程度一上模拟了人类社会的行为和关系,具有一定的智能并能够自主运行,向其它软件实体提供相应的服务。软件Agent具有极大的灵活性和适应性,更加适合于开放、动态的网络环境,也更能体现人类的社会职责。
与传统的对象概念比较,Agent和对象存在一定的相似性,虽然它们都使用消息传递的方式来进行通信,但Agent不是简单的对象。对象是一种静态概念,不具备自主、推理和社会特征,而Agent是动态的,可以鉴别不同类型的消息,使用复杂协议来协商,Agent具有精神状态,同时具备上文描述的一些特征。具有更强的Agent问题求解和自制能力。此外,Agent之间可以相互感知与协作,从而可以协作求解一个共同的任务。Agent的概念更贴近现实世界,使用Agent来分析、设计、模仿和实现现实世界中的系统,无论从概念上,还是从结构上,都更加清晰和容易。
移动Agent[2]可以看成是软件Agent技术与分布式计算技术相结合的产物。移动Agent是一个全新的概念,目前还没有统一的定义。20世纪90年代初,GeneralMagic公司在推出其商业系统Telescript时第一次提出了移动Agent的概念,即一个能在异构网络环境中自主地从一台主机迁移到另一台主机,并可与其他Agent或资源交互的软件实体(4d)。移动Agent除了具有软件Agent的基本特性外,还具有移动性、自治性、响应性、主动性、推理性和适应性等特性。移动Agent必须可以自主地从一个节点移动到另一个节点,这是移动Agent最基本的特征,也是它区别与其他Agent的标志。
移动Agent不同于远程过程调用(RPC),这是因为移动Agent能够不断地从网络中的一个节点移动到另一个节点,而且这种移动是可以根据自身需要进行选择的。移动Agent也不同于一般的进程迁移,因为一般来说进程迁移系统不允许进程自己选择什么时候迁移以及迁移到哪里,而移动Agent却可以在任意时刻进行移动,并且可以移动到它想去的任何地方。移动Agent更不同于Java语言中的Applet,因为Apples只能从服务器向客户机做单方向的移动,而移动Agent却可以在客户机和服务器之间进行双向移动。
Bratman 的 BDI (Belief-Desire-Intention)理 论[3]是被 公 认的Agent理论基础。Bratman从哲学的角度对人们的意图进行了深入研究,认为只有保持信念(Belief)、愿望(Desire)和意图(Intention)的理性平衡才能有效地解决问题,他认为在开放世界中,理性Agent的行为不能直接由信念与愿望以及有这两者组成的规划所驱动,在愿望与规划之间应有一个基于信念的意图存在,一个理性Agent的行为是受制于意图的,Agent不会毫无理由地改变自己的意图,也不会坚持不切实际的意图。信念是Agent对世界的认识,愿望是分配给Agent的任务,在通常情况下,Agent不可能满足所有的愿望,因此,Agent只能集中有限的资源用于某些愿望,这些愿望就是意图。下面分别介绍基于BDI理论的3种主要理论模型。
Cohen和Levesque最早开始这方面的形式化概念工作,其逻辑基础建立在Bratman哲学观点之上。采用基于线性时序逻辑,分别引入并表示了时间、事件、行为目标和意念等概念,给出了一个形式模型,但该模型并不能完全实现Bratman的哲学思想,没有解决意图和目标的关系,十分抽象而且难于实现。Rao和George 1991年和1992年采用了非线性分支时态逻辑,分别给出了PRS结构的形式化描述和完整的语义描述。与Cohen和Levesque的BDI模型相比,Rao和George的理性 Agent的BDI模型描述了意图和目标的关系,语义较为明确,仍过于抽象,难于实现。
Agent属于非线性系统,其中的变化过程属于动力学演变过程。Kiss利用动力学系统范形为Agent的目标、喜好等基本概念给出一个理论模型,为形式化描述Agent和多Agent提供了基础。不过,对Agent内部到底该如何构造等的本质问题,人们尚未充分认识。 Haddadi认为,可以将通常应用于人类自身行为描述的一些概念如信念、意图、承诺等赋予Agent,形成所谓的意识系统。另一方面,可以为机器建立比较简单的信念、知识和愿望理论,并最终将其应用于人。也就是说,人脑的研究和Agent的研究可以相辅相成,互相促进,而在现阶段大都是将前者的一些研究成果应用于后者。
虽然许多研究者从不同角度研究了Agent的理论模型,为形式化描述Agent提供了基本的方法,因而是十分重要的,但这些理论模型仍存在以下问题[4]:
1)各模型并不能完全实现Bratman的哲学思想,模型描述不够完整,不能反应Agent的社会特性,没有解决意图和目标的关系,十分抽象而且难于实现。
2)Agent模型和具体Agent结构没有明确的映射关系。各模型中没有细化Agent的内部结构,所以并不能很好地把Agent行为与其内部状态的变化过程联系起来,无法体现Agent的外部交互行为应与其内在意识、精神状态密切相关这一基本思想。在实际的构造Agent过程中,很难用现有的程序语言进行编程实现。
3)Agent模型中普遍存在“逻辑上无所不知”的问题,使得Agent系统过于复杂,在实际的构造Agent系统过程中,缺乏实用性。
4)Agent的求解过程和Agent状态变化的关系还没能充分地进行动态描述,尤其存在Agent状态变化控制关系的不确定性。
上述研究一般建立在Agent是一个意识系统的基础之上,这种不依赖于具体的物理实现就可以得到Agent行为的规则和模式,对Agent行为研究有很大的好处。从结构上看,Agent属于非线性系统,其中的变化过程属于动力学演变过程。从动力学角度来看,行为是可以按时间展开的具有一定完整意义的状态变化过程。
Kiss利用动力学系统范形为Agent的目标、喜好等基本概念给出一个理论模型,为形式化描述Agent和Multi-agent提供了基础。不过,对Agent内部到底该如何构造等的本质问题,人们尚未充分认识。在Bratman,Wooldrige和Kiss的研究基础上,具体化Agent的内部结构,文中将给出一个具有人类社会行为特征的Agent模型,即HSA (Human-Society-Actions)模型。模型定义[5]如下:
定义 Agent可描述为一个3元组的智体,
其中,H代表Agent的机体,它是Agent的物质和精神载体;S代表Agent在社会中的角色、职能、任务和目标等;A是Agent对自我行为与活动的表述,它是按时间展开的序列,该序列中既有有意识的行为与活动表述,又有一些自我的无意识状态与意识的转换过程,反应了Agent的自治、主动及相互间的联系。
人们通常从3个方面看待Agent:1)物理立场,基于系统的物理特性和规律;2)设计立场,基于系统的设计目标;3)意识立场,把系统看作理性主体,通过信念、愿望和其他意属性来预测其行为。BDI研究建立在Agent是一个意识系统的基础之上,模型描述不够完整、抽象且没有反应Agent的社会特性。Agent是一个智能实体,HSA模型模拟人类意识及行为设计的,拥有完整的内部结构属性,反应了Agent的社会特性;Agent模型和具体Agent结构、行为和目标有明确的映射关系;动态描述了Agent的任务求解过程和Agent的状态变化的关系。HSA模型的正确性和有效性在电子谈判模型中加以验证。HSA对于进一步研究基于Multi-Agent的电子商务系统打下了一定的理论基础。
研究者提出了不同的Agent结构模型,试图从不同的角度对Agent进行实现。主要的Agent结构模型有慎思Agent、反应Agent和混合Agent等。给出了一个Agent的结构模型,该模型包含两个部分:Agent内部结构和外部环境,该模型没有反应Agent社会特性,未能定义Agent的角色、职能和目标等社会属性。在此模型的基础上,HSA结构模型增加了Agent的社会属性,把Agent看作一个黑箱,通过感知外部环境,经过意识系统的推理,对外部环境的事件输入产生相应的输出活动。Agent社会是联系其内部结构和外部环境的纽带。一个反应Agent的工作过程[6]如图1所示。
图1 Agent的工作过程Fig.1 Process of Agent
Agent通过外部接口感知外部环境,与外部环境进行交互,通过感知模块接受外部信息,并对输入信息进行过滤和分类,把信息传递给意识模块,社会赋予Agent角色和任务,意识模块根据知识库模块的历史经验和知识进行推理,最后决策模块根据推理和规则做出决策,把动作指令交给执行模块,通过外部接口对外部环境产生动作。
除了接口Agent它由Agent机体H表示。具有用户图形接口以外,执行Agent的结构是相同的社会S、和执行模块A和通信设施4部分组成。如图2所示。
1)Agent机体
Agent机体相对于HSA模型中的H元组,由Agent属性、意识系统和知识库组成。系统Agent管理Agent的基本属性,如标识ID、名字、位置和状态等,安全代理负责执行Agent的注册、身份认证;意识模块具有感知、学习、推理和决策功能,控制执行模块完成社会赋予的任务目标;知识库存储推理规则、约束条件和学习的知识。
2)社会
社会是执行Agent与用户的接口,它相对于HSA模型中的S元组。用户通过系统Agent定义它的角色、分配任务和提取相关策略。这里策略与结构分开,使它更具灵活性;角色决定Agent的类型及移动与否。
3)执行模块
执行模块相对于HSA模型中的A元组。存储Agent的代码,它由一系列相对独立的子模块构成。代码可以动态装载,使之具有动态结构特征。动态Agent把数据、知识和程序作为对象,新创建的Agent都是一样的,它们的具体行为来自对动态装载的数据、知识和程序类修改而得。
4)通信设施
通信设施是Agent之间进行信息交换的机制。Agent之间采用的通信语言是KQML(Knowledge Query Manipulation Language)a KQML规范定义了可扩充的行为原语,行为原语是根据“言谈行为理论”获得的能够对知识和目标进行各种操作,并以此为基础开发代理间更高级的通信模型,例如合同网、谈判机制等。
图2 执行Agent结构Fig.2 Implementation of Agent structure
KQML语言分为3层:内容层、通信层和消息层。内容层是消息所包含的真正内容,用XML语言表示。XML是基于Web文档数据结构交换的规范,为开发人员提供了标识数据结构的框架,其中的DTD(Document Type Definition)规定了XML文件的文档格式,定义了XML文件的元素、元素的属性以及元素和元素属性之间的关系,它可以帮助XML文件的分析程序校验XML文件标记的合法性。通信设施包含KQML和XML解释器,XML解释器对需要传送给另一个Agent的KQML消息进行分析,然后生成新的含有XML内容的KQML消息,以便进行Agent之间的通信。
由于移动Agent具有动态适应环境、自然的异构性、异步自主执行功能、降低网络负载、包装不同的协议和很强的健壮性及容错性等优越性,使它在诸多领域得以应用。
商务活动一直由人与人之间的交往来实现,由人来决定买什么东西、什么时候买以及花多少钱等。但随着网上信息的丰富化和多样化,由人来负责信息搜索并完成交易将越来越困难,信息筛选和信息搜集是解决信息过载问题的有效方式,人工是很难完成的。客户与商家都要寻找最为合适的合作伙伴,并迅速与其信息系统集成以实现在线交易。目前可以通过UDDI或ebXML实现。然而,但由于这两种方法均是基于第三方的注册机制实现的,需要有相当的注册规模和共同遵守的标准。同时UDDI或ebXML站点是一个高度集权的中枢节点,站点管理随着注册规模的增大和镜像站点的增多而变得越来越复杂,维护费用也迅速增加,其频繁的交互还将会造成很大的系统开销。可见,UDDI或ebXML能否领导电子商务时代,还有待于实践检验。因此,如果能有一种不借助第三方的具有自组织特性的机制来描述、发现和集成企业的应用系统,实现全球范围内的企业动态联盟,必将给电子商务增添新的活力。移动Agent可在一定程度上胜任上述要求,建立企业敏捷的电子商务系统。
电子商务常常要求实时访问远程信息,如股票报价,甚至是进行实时谈判。不同的Agent拥有不同的目标,采取不同的策略,实现各自的目标。
在己有的Agent形式化描述基础上,具体化Agent的内部结构,设计了一个具有人类社会行为特征的完整的Agent模型,即HSA模型。HSA模型是模拟人类意识及行为设计的,拥有完整的内部结构属性,反应了Agent的社会特性;Agent模型和具体Agent结构、行为和目标有明确的映射关系;动态描述了Agent的任务求解过程和Agent的状态变化的关系。
[1]巩志国,周龙骧.多媒体对象的Agent展示集成模型[J].软件学报,1999(1):35-42.
GONG Zhi-guo,ZHOU Long-xiang.Multimedia objects in the Agent display integrated model[J].Journal of Software,1999(1):35-42.
[2]项君,周立,吴泉源,等.CORBA分布计算平台基于反应式Agent模型的流控机制研究 [J].计算机研究与发展,2001(7):826-832.
XIANG Jun,ZHOU Li,WU Quan-yuan,et al.Research on stream control in CORBA platforms based on reactive agent model[J].Journal of Compter Research&Development,2001(7):826-832.
[3]张军,张荣涛,孙宇.分布式检测监控系统中Agent模型及实现研究[J].计算机工程,2001(2):93-95.
ZHANG Jun,ZHANG Rong-tao,SUN Yu.Research on an Agent model and its realization in a distributea inspection and monitoring system[J].Computer Engineering,2001(2):93-95.
[4]何国田,覃朝莲,谭兴文.基于Agent的网上CAI系统设计研究[J].微型电脑应用,2001(6):13-14.
HE Guo-tian,TAN Zhao-lian,TAN Xing-wen.The Internet based on Agent CAI system design[J].Computer Applications,2001(6):13-14.
[5]刘洪,梁栋,何辅云.基于态势理论的Agent模型及受损图像的恢复[J].计算机工程与应用,2002(8):82-84.
LIU Hong,LIANG Dong,HE Fu-yun.The Agent model based on the ecostate-ecorole theory and restoring the damaged picture[J].Computer Engineering and Applications,2002(8):82-84.
[6]万华,陆廷金,张玉柱,等.基于Petri网的Agent建模及其用于C4ISR的时间分析 [J].情报指挥控制系统与仿真技术,2002(2):56-58.
WAN Hua,LU Ting-jin,ZHANG Yu-zhu,et al.Petri net based modeling and its application in Agent C4ISR time analysis[J].information command control system and simulation technology,2002(2):56-58.