分布计算环境笔记11——代理技术

1.基本概念:

1)定义:代理可代表其它实体如人、系统资源或其它程序自主地运行,并常常是事件或时间驱动的。它可与用户、系统资源或其它代理进行通信以执行自己的任务。更先进的代理可与其它代理合作承担单个代理无法完成的任务。移动代理还可根据需要从一个系统移到另一个系统上运行。软件Agent是运行于动态环境的、具有高度自治能力的实体,它能够接受其它实体的委托并为之服务。不难看出,软件Agent首先具有智能特性,它对环境有响应性、自主性和主动性;同时,软件Agent还具有社会特性。设计智能代理的目的就是让它作用于周围环境。软件Agent技术的诞生和发展是人工智能和网络技术相结合的产物。在Internet这一目前最庞大的互联网络环境中,计算机软件体系结构和组织结构的复杂性不断增加,传统的软件设计方法已经无法满足实际需要,分布式、 智能化才是今后软件发展的基本方向。软件分布式的目标是要将问题进行分解,由多个实现了知识共享的软件模块或网络节点来共同完成问题求解,而智能化的目标 是要在智能主机之间实现智能行为的协调,两者的结合就产生了软件Agent的概念。

软件Agent属于人工智能的范畴,它在一定程序上模拟了人类社会的行为和关系,具有一定的智能并能够自主运行,向其它软件实体提供相应的服务。软件Agent具有极大的灵活性和适应性,更加适合于开放、动态的网络环境,也更能体现人类的社会职责。

  • 广义的代理:人类、物理世界中的移动机器人和信息世界中的软件机器人
  • 狭义的代理:信息世界中的软件实体。具有一定程度的智能,其智能化的程度可以从简单的预定义规则到复杂的自学习人工智能推理机。

image

代理与普通对象的主要区别:

  • 相对于对象,代理是粒度更大、智能性更高,具有一定自治性的实体。
  • 代理的内部状态是心智状态,如知识、信念、能力、承诺、目标等。
  • 代理之间的消息传递是基于语言动作的通信原语,如通知、请求、承诺、拒绝等。

智能代理与专家系统的主要区别:

  • 代理是个性化的:每个代理有不同的行为,整个专家系统是相同的行为
  • 代理是主动的,自治的:代理根据它们自己的目标行动,专家系统被动地回答问题
  • 代理是自适应的:代理可以不断地学习并调整自己的知识,专家系统一般是静态的

2)特点:

image

  • 代理性(Acting on Behalf of Others):代理具有代表他人的能力,即它们都代表用户工作而不是代表自身。这是代理的第一基本特征。另外,代理可以把其它资源包装起来,引导并代替用户对这些资源进行访问,成为便于通达这些资源的枢纽和中介。(有的人已经取消了这一点)
  • 自治性(Autonomy):一个智能代理应该是一个独立自主的计算实体,具有不同程度的自治能力,即部分或彻底地不受用户干预而自行工作。它应能在无法事先建模、动态变化的信息环境中独立规划复杂的操作步骤,解决实际问题;在没有用户参与的情况下,独立发现和索取符合用户需求的资源与服务。自治性是指Agent能够在没有人或其他Agent直接干预的情况下持续运行 并能采取灵活自主的行动控制 和改变自身的行为与内部状态。自治性是Agent最重要的特征, 是软件Agent区别于普通软件程序的基本特征。具有自治性的Agent被称为自治Agent。
  • 主动性 (Proactivity):代理能遵循承诺采取主动行动,表现出面向目标的行为。例如,Internet上的代理可以漫游全网,为用户收集信息,并将信息主动提交给用户。
  • 反应性(Reactivity):代理能感知所处的环境,并对相关事件做出适当反应。
  • 社会性(Social Ability):代理具有一定程度的社会性,即它们可以跟所代理的用户,资源以及其它代理进行通信交流。
  • 智能性(Intelligence):代理具有一定层次上的智能,包括从预定义规则到自学习人工智能推理机等一系列的能力。例如,理解用户用自然语言表达的对信息资源和计算资源的需求;帮助用户在一定程度上克服信息内容的语言障碍;捕捉用户的偏好与兴趣;推测用户的意图并为其代劳。
  • 合作性(Collaboration):更高级的代理可以与其它代理分工合作,共同完成单个代理无法完成的任务。
  • 移动性(Mobility):具有移动能力的代理,为完成自己的任务,可以从某地移动到其它地方。比如访问远程资源、与其它代理“会面”并与之协作完成工作。
  • 诚实性(veracity):认为代理不会故意发布错误消息。
  • 顺从性:即代理不会违背命令,每个代理都会尽力完成用户所要求的任务。
  • 理智性(rationality):即代理仅采取有助于自身目标任务实现的行动,而不会采取妨碍自身目标任务实现的行动―――至少不会盲目采取行动。
  • 推理性(Reasoning) 软件Agent可根据已有的知识和经验,以理性的方式进行推理。软件Agent的智能由三个主要部件来完成,即内部知识库、自适应能力以及基于知识库的推理能力。
  • 角色(Character) 软件Agent在社会活动中需要对安全、风险、诚信等因素进行考虑。
  • 通信/合作/协调(Communication/Cooperation/Coordination) 这是在软件Agent群体中应该具有的社会属性。

注意:在实际系统中,代理的以上属性并不能真正全部得到保证。

3)研究学派

智能代理学派:来源于人工智能(AI)/分布式人工智能(DAI)领域,其主要关注的问题是如何解决那些可以天然地对应到多自治代理交互的分布式问题。智能代理是研究的重点。

用户接口学派:主要关注的问题是将代理应用于用户接口设计。其研究目标是改变目前用户接口设计中占统治地位的直接操纵模式,而采用主动行为,并采取更为协作性的辅助行为的应用来协助完成用户的任务。如Office助手。 

移动代理学派:来源于面向对象的编程模式的发展,主要关注于移动代理,也就是说,编写那种能执行移动指令的代码,能在网络中移动程序本身和它的状态。像隐私和安全性等问题就是这种代理现在考虑的重点。

机器人研究学派:把注意力集中在自治性的、能进行决策的机器人系统上,将其作为机器人研究的一个发展方向。

4)语言行为

语言行为理论的主要原理:通信语言也是一种动作,发言人说话是为了使世界的状态发生改变,通常是改变听众的某种心智状态。它不一定达到它的预期目的,因为每个代理对自身有控制权,不一定按发言人要求的那样进行响应。

分类:

  • 断言型            电视机是关着的
  • 指示型            把电视机关掉
  • 承诺型            我会关掉电视的
  • 允许型            你可以把电视机关上
  • 禁止型            你不能把电视机关掉
  • 声明型            我宣布这个电视机归我所有

5)KQML

一种用于交换信息和知识的语言和协议。KQML既是一种消息传递格式,又是消息处理协议,它为表达消息和处理消息提供了标准的格式,可用于支持代理之间的实时知识共享。KQML包括了一系列可扩充的行为原语(Performative), 行为原语定义了代理对知识和目标的各种操作,在其上可以建立代理互操作的高层模型。一条KQML消息也称为一条行为原语,行为原语用ASCII串表示,行为用的参数由关键字标识,与顺序无关。

  • 基本操作原语:Tell、Deny
  • 基于知识数据库的操作原语:Insert、Delete
  • 基本响应原语:Error、Sorry
  • 基本查询原语:Evaluate、Reply、Ask-If
  • 能力宣告原语
  • 网络操作原语:register, forward
  • 协调操作原语:broker-one

2.代理语言

1)代理编程语言

a.JAVA

b.TCL(Tool Command Language): SUN公司开发的一种脚本语言,与JAVA相比,它对用户更友好。TCL/TK用来进行快速原型开发和GUI的开发。Safe-Tcl 是运行代理的扩展。

c.APRIL(Agent Process Internet Language):由Fujitsu实验室开发。专用来建造能在Internet上运行的多代理系统。在April中,代理位于April语言之上,并分成若干层。April提供了一个基本特征集从而允许创建并发进程、并发进程间的TCP/IP通信、高层通信原语及list数据结构等。

2)代理通信语言

代理通信语言ACL是实现Agent与Agent Host、Agent与Agent间进行通信的基础,开放式Agent系统的ACL应具有环境无关性、应用普遍性、简捷性、语法语义一致性等特点。
通常独立于传输层。基于语言-行为理论:语言的行为通过标准的关键字来表达。也称为 “行为原语”( Performatives),例如“Ask”、“Request”、“Tell”。代理的消息包括几个参数,如消息的“Sender”、和“Receiver”,用于嵌入内容的“Language”和“Ontology”(本体)以及实际的“Content”(内容)。有些消息也可增加信息来记录消息的“历史”。典型的代理通信语言:FIPA ACL,KQML

3)代理内容语言

用于表示嵌在代理消息内的内容。

  • KIF(Knowledge Interchange Format:知识交换格式)
  • SGML(标准通用标记语言):(AND(Block A)Block B)(On A B))
  • XML(可扩展标记语言)

 

3.多代理系统

1)定义:

  • 单代理系统:系统中的代理代表用户或进程执行任务。在执行任务时,代理可能要与用户、本地或远端系统资源通信,但它们不会与其它代理通信。
  • 多代理系统:系统中的代理之间可能会广泛地合作以实现各自的目标。多代理系统中的代理还可能与系统资源和用户交互。根据单个代理之间的协作程度将MAS 分成两类:
    • 协作式多代理系统(CMAS):代理们为扩大集体利益而彼此之间共享资源。这种系统的设计目的只是为整个系统性能,而不针对单个代理。
    • 自利益多代理系统(SMAS):每个代理的目标都是扩大自身利益,虽然也试图与其它代理达成一致。这些代理是代表某个用户,而不是整体的一部分进行工作。因此这样的代理被认为是自利益的,彼此之间存在竞争或无协作并有可能表示相斥的关系。

2)特点:

多代理系统侧重于研究多个代理如何协调工作,以完成单个代理无法完成的任务。主要关心代理间的合作,例如:为了合作解决问题,代理间应当如何协调它们的知识、目标、技能和计划。与单代理系统的本质区别:支持代理间的通信。

3)协调方法:

a)基本概念:

  • 协调:为了保证一个整体中的各个代理以连贯和协调的方式进行工作而进行的调节过程。
  • 组织式协调:提供一个对系统有较全面了解的代理,从而能够利用一种组织或层次结构组织协调。
  • 协调约定 ― 协约网络协议:代理们具有管理者和投标者的两重职能。假如一个代理无法用本地资源来解决分配给自己的某一问题时,它就把该问题分解成许多子问题,并寻找具有所需资源的代理来解决这些子问题。子任务分配通过一个投标机制来完成

b)具体方法:

  • 多代理计划式协调:多代理计划协调策略侧重于避免冲突发生
    • 集中式多代理计划:单代理将各自的计划发送给一个集中的协调者,由协调者来分析这些单个计划并找出其中潜在的冲突;
    • 分布式技术策略:允许单个代理形成自己的计划。代理之间通过通信来建立并修改各自的计划,直至彼此间消除冲突为止。
  • 法规协调:通过制定法规,实现诸如空中运输控制或城市交通领域内的职能代理之间的协调。

c)优点:

  • 任务的分布:一个任务可分成若干子任务并分派到一系列代理上。通过知识交换、协商及控制信息的传送等,这些代理可并行地协调工作。
  • 快速求解问题:由于代理间可以并行工作,多代理系统可以快速求解问题。
  • 增加灵活性:不同问题域的代理可以相互合作解决一个更大的问题。
  • 增加可靠性:系统中若一个代理不可用,或因某种原因未能完成任务时可交由其它代理完成任务,从而增加了整个系统的可靠性。
  • 可扩展性:当网络、业务、管理能力不足时,新的相关能力可以容易地通过引入相关代理或代理子系统来完成。
  • 有效协商:通过以高级代理通信语言ACL进行通信,多代理系统中的用户、业务提供者、网络提供者之间能够动态和有效地协商业务,从而在任务分派、业务花费、业务参数及业务质量等方面达成协议。
  • 动态环境配置:当网络或业务发生变化时,代理间可以通过知识交换来互相通知相关信息。
  • 易于与传统软件集成:ACL语言具有高级异步通信特点,它灵活地定义了组件交互的方法,易于与传统软件集成。
  • 个人化: 个人代理可根据用户的需求调整自身以向用户传送合适的业务。在管理业务的提供及使用中也可采用同样的思想。

4.移动代理

1)概念:

移动代理:一个能在异构网络环境中自主地从一台主机迁移到另一台主机,并可与其它Agent或资源交互的软件实体。移动Agent可以看成是软件Agent技术与分布式计算技术相结合的产物,它与传统网络计算模式有着本质上的区别。移动Agent不同于远程过程调用 (RPC),这是因为移动Agent能够不断地从网络中的一个节点移动到另一个节点,而且这种移动是可以根据自身需要进行选择的。移动Agent也不同于 一般的进程迁移,因为一般来说进程迁移系统不允许进程自己选择什么时候迁移以及迁移到哪里,而移动Agent却可以在任意时刻进行移动,并且可以移动到它 想去的任何地方。移动Agent更不同于Java语言中的Applet,因为Applet只能从服务器向客户机做单方向的移动,而移动Agent却可以在 客户机和服务器之间进行双向移动。

 

移动代理迁移的内容 = 代码+运行状态。

  • 运行状态 - 执行状态和数据状态。
  • 执行状态 - 移动代理当前运行时状态如程序计数器,运行栈内容等。
  • 数据状态 - 与移动代理运行有关的数据堆的内容。

所有的移动Agent系统都包含移动Agent(简称MA)和移动Agent服务设施(简称MAE)两个部分:


  移动Agent系统

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值