难道这些是过时的东西?大家发表意见啊
转贴:
面向智能代理的设计方法 作者:高雷 发布时间:2001/04/17
文章摘要:
本文涉及到了"面向代理(Agent)"的初级思想。在本文中,笔者不象以往的文章那样,直接阐释什么是"AO",给人以满头雾水的感觉。为此,笔者另辟蹊径,尝试着从大家都熟悉的"对象"一步步过渡到"代理",由浅入深阐述了"面向代理"的思想。
关键词 人工智能,智能代理,AOD,对象
--------------------------------------------------------------------------------
正文:
面向智能代理的设计方法
--从"OO"到"AO"
一 本源
近些年来,无论是在计算机科学领域,还是在人工智能领域中,一种软件设计方法已经被越来越的研究者所关注,并成为各相关领域瞩目的热点。这就"AOD"(Agent Oriented Design)--"面向智能代理的设计方法"。有许多研究者认为:这种方法将是今后计算机科学领域和人工智能领域相交汇的重要结果。
对于"Agent"一词,中文译法甚多。如"主体"、"代理"、"智能体"、"智体"等等,本文暂且将之称为"智能代理",简称为"代理"。笔者这样翻译的原因将在后文讨论。
在此给刚刚从我这里第一次听到"代理"这个词的人一个小小的建议:不要以为"代理"是多么难以理解的东西。你只要把它想象成一个"对象"(Object)就可以了。其实,从本质上说,"代理"的确是一个对象;而且从编码的角度来讲,"AOP"与"OOP"简直就是一个模子里刻出来的!
好了,现在我们已经迈出了从"OO"到"AO"的第一步:一切从对象出发!
二 超越
那么"代理"基于"对象"而又脱离于"对象"的原因何在呢?换句话说,到底"代理"与"对象"之间有什么异同呢?概括来讲,它们之间最主要的区别就是:"对象"是被动的,而"代理"则是主动的。"代理"超越"对象"的主要方面在于:
·自治(autonomy)--"代理"具有对象做不具备的一些"智能",如"意图(intention)、情感(emotion)、愿望(desire)、信念(belief)"等。基于这些"智能","代"可以在没有外界控制的环境下,在一定程度上自行决策,采取主动的行为,完成"自治"的功能。
·反应(reactivity)--"代理"感知(perception)外界环境的变化,接受刺激,然后对这种变化或刺激做出一定的动作(action)。基于这种特性,"代理"可以做出代理业务、接受委托、遵循承诺等各种反应。这就是本文把"Agent"译作"智能代理"的原因。
·主动(pro-activeness)--"代理"根据内部状态和外部环境,产生面向预定目标的主动行为,称为 "主动性"或"预见性"。
·社会行为(social ability)--"代理"之间互相通讯,分工合作,协同解题,并行计算。这是仅仅能够互相传递消息的对象所不具备的功能。这种行为被称"社会性"或者"群体性"。这是"面向代理"应用于分布式系统的重要特性。
到此为止,我们已经知道了"代理"与"对象"的许多区别。这是我们从"OO"过渡到"AO"的第二步。恭喜你!
三 实现
这句话说在最前面:"代理"更多的应用是在分布式系统。所以建议读者不应该用单机、单进程的观点思考它。
既然"面向代理"是"面向对象"的一种超越,那么理所当然的,"面向代理"的设计方法是"面向对象"的设计方法的发展。
回顾一下从"PO"到"OO"的过程,我们把过程(procedure)封装到了对象(object)中;现在我们也是如此转换:我们要把软件体系结构、设计模式、组件以及面向对象全部都归结为基于主体的计算。
由此,"AO"不仅要继承"OO"的通用性、模块性、重用性、扩展性、移植性,而且更应该发展提高软件系统智能性、互操作性、灵活性、编程效率和程序自动化水平、智能化水平。
概括来说,"代理"是深刻的,"对象"是普遍的。
从本体的方面看。"对象"是被动的,"面向对象"的设计包含的是数据(data)以及定义在这些数据上的操作(operation);"代理"是主动的,"面向代理"的设计包含的是目标(goal)、状态(state)和行为(action)。
从交互的方面看。"面向对象"的设计方法是基于句法(syntactic)的,而"面向代理"的设计方法是构建在语义(semantic)之上的;前者单机工作(off-line)而后者联机工作(on-line);前者侧重静态编译(design-time)而后者侧重动态连接(run-time)。
从与其它同类的联系来看。"对象"是偏向继承(inherited)的,"代理"是偏向组合(organizational)的。
综上所述,"面向代理"是从"面向对象"发展演化而来的。因此,初学者要从"面向对象"的思想出发,来理解"面向代理"的概念,这也是笔者的一个初衷。本文只是从演化的角度来揭开"面向代理"的面纱。对"面向代理"有兴趣的读者,如果想进一步研究的话,可以参阅以下文献:
[1] 史忠植等,智能主体研究现状与发展趋势,计算机世界报,98.1.26专题版
[2] 沈达阳等,Internet 上的软件 Agent,计算机科学,1997 Vol.24
[3]M.Wooldridge , Intelligent Agents: Theory and Practice, Knowledge Engineering Review, 10(2)1995
[4]Mihai Barbuceanu, The Architecture of an Agent Buildings Shell, Proceedings of IJCAI'95
[5]Michael Wooldridge, Time-Knowledge and Choice, Proceedings of IJCAI'95
Jorg P. Muller, The Design of Intelligent Agents A Layered Approach, 1996
作者会员名:nanakase