面向Agent技术
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
典型的混合结构PRS(Georgeff和Lansky)
监控、 感知器
数据库 (belief) 解释器 (reasoner) 目标 (desires)
知识库 (plans)
环境
意图结构
效应器
主体通信语言ACL
目标G
Agent i
消息M
意图I
言语行为
Agent i
消息M
转换到传输格式
从传输格式转换
消息发送/传输服务器
– 概念定义的内容和方式的差异(内部体系结构、外部行 为方式) – 本质:软件的角度(量变),社会的角度(质变) – 抽象程度不同 – 对象是静态的,agent是活的、动态的 – 自主性:对象(状态), agent(状态和行为) – 通讯本质:对象(方法激活), agent(社会性知识交互) – 灵活性(反应性,社会性,自发性):对象(不具备), agent(具备)
agent是指驻留于环境下,能够自主、灵活地执行动 作以满足设计目标的计算机系统
agent的基本属性
• (1)自治性(Autonomy ) : Agent能根据外界环境的变化,而 自动地对自己的行为和状态进行调整,而不是仅仅被动地 接受外界的刺激,具有自我管理自我调节的能力。 • (2)反应性(Reactive):能对外界的刺激作出反应的能力、 • (3)主动性(Proactive):对于外界环境的改变,Agent能主动 采取活动的能力。 • (4)社会性(Social ) : Agent具有与其它Agent或人进行合作 的能力,不同的Agent可根据各自的意图与其它Agent进行 交互,以达到解决问题的目的。 • (5)进化性:Agent能积累或学习经验和知识,并修改自己的 行为以适应新环境
主体通信语言ACL
• KQML
一个例子: (ask-all : sender : receiver : in-reply-to : reply-with : language : ontology : content
A B
ido idl Prolog foo “bar (X, Y)”)
主体通信语言ACL
2.
反应型agent的框图
传感器
当前世界 环
条件-动作 规则
动 作 效应器
境
反应型Agent程序如下: function Reactive-Agent(percept) return action static: state, /*描述当前世界状态*/ rules,/*一组条件-动作规则*/ stateInterpret-Input(percept) ruleRule-Match(state,rules) actionRule-Action[rule] return action
思考型agent
• 思考型agent包含世界和环境的显式表示和符号模型,其 中决策通过基于模式匹配和符号操作的逻辑推理实现。
期望 知 信 目标 意图 规
识
念
划
• 必须解决如下两个重要的问题:
– 转换问题:如何将现实世界转化为确切的符号描述; – 表示和推理问题:如何用符号来表示现实世界的复杂实体所包含的 信息,以及agent如何利用这些信息推理。
主体通信语言ACL
• 言语行为 –有关言语行为理论的研究主要集 中在如何划分不同类型的言语行 为。 –在主体通信语言的研究中,言语 行为理论主要用来考虑主体之间 可以交互的信息类型。
主体通信语言ACL
• 通信语言
–KQML:由美国ARPA的知识共 享计划中提出,规定了消息格式 和消息传送系统,为多主体系统 通信和协商提供了一种通用框架。 –ACL:由FIPA制定的一种规范。 与KQML非常相似
agent技术标准化
• agent技术标准化的目的:确保互操作 • 致力于agent标准化的组织
– OMG – FIPA
• 已经取得了一定进展,如ACL, 但远远没有 达到与其估计,成为障碍agent技术发展和 应用的重要因素
混合型agent
• 反应型agent能及时而快速地响应外来信 息和环境的变化,但其智能程度较低, 也缺乏足够的灵活性。 • 思考型agent具有较高的智能,但无法对 环境的变化作出快速响应,而且执行效 率相对较低。 • 混合型agent(hybrid agent)综合了二 者的优点,具有较强的灵活性和快速响 应性。
面向agent软件开发范型特点
• agent的高度自治
– 对自身状态和行为的控制 – 独立性强、模块性、可维护性、可重用性更好
• agent的动态性
– 持续性、反应性、主动性
面向agent软件开发范型特点
• agent的并发性
– 反应性,是一个多线程系统
• agent行为的智能性
– 自主性、自发性
• FIPA ACL
消息结构开始 通信动作类型
消息参数
(inform 消息内容表达式 : sender agent1 : receiver hpl-auction-server : content (price (bid good02) 150) : in-reply-to round-4 参数表达式 : reply-with bid04 : language s1 : ontology hpl-auction )
产生和发展背景
• 对软件开发技术提出的要求
软 件 开 发 技 术 的 发 展 轨 迹
计算机产生 软件工程 结构化软件开发 面向对象软件开发
面向agent软件开发
20世纪40年代
20世纪60年代
20世纪70 - 80年代 20世纪80年代中 - 20世纪90年代中 -
Agent与对象的区别
• agent与object是二个完全不同的概念
• 支持基于agent系统开发的方法学
– 建模语言 – 建模过程
• 自1995年成为研究热点,取得了不少研究成果 • 代表性工作
– Gaia方法学,Wooldridge, Jennings and Kinny于1999年提出,支 持面向agent的需求建模和设计建模 – Multiagent System Engineering 方法学,由Wood和DeLoach于 1999年提出,支持面向agent的需求建模和设计建模,以及代码自 动生成 – AOR(Agent-Object Relationship)方法学,支持信息系统设计建模, 由Wagner于2000年提出 – AUML, 扩展UML支持面向agent的建模
• 因此,基于agent的软件开发方法体现了一种新的 软件开发范型
产生一组新的概念
• 多agent系统(MAS)
– 由一组具有一定资源和能力、相对独立且交互合作的 agent组成的系统
• 基于agent系统(ABS):由一个或者多个agent构 成的系统 • 面向agent的程序设计(AOP)
– 支持基于agent系统开发的程序设计语言
– Fisher提出并开发 – 基于时序逻辑 – 非编译型,而是直接解释执行
面向agent的开发平台
• 支持基于agent系统开发的CASE国工具和环境 – 软件开发包(Java类库) – 集成开发环境 • agent软件开发包例子:Jatlite – Stanford大学 • 一组Java包,支持开发利用KQML进行通讯的软件agent • a型agent的支持者们认为: agent的智能取决于感知和行动(所以在AI领域也被称 为行为主义),从而提出agent智能行为的“感知-动 作”模型; agent不需要知识,不需要表示,也不需要推理, agent可以像人类一样逐步进化,agent的行为只能在 现实世界与周围环境的交互作用中表现出来;
• 不可预测性和不确定性
– agent的自主性
• 可能的无序和混乱
– 自主和约束的合理结合,社会规则
agent技术研究
• 为什么需要技术研究 为基于agent系统的开发提供方法、实现技 术和平台
开发方法 开发平台 AOP
标准化
体系结构
通讯语言
面向agent的程序设计语言
• AOP:支持基于agent系统程序设计的编码语言 • 1993,shoham在“Artificial Intelligence”中发表了 “Agent-oriented programming”,提出了agent-0 及其编译器,开创面向agent程序设计的范型 • 随后,陆续提出许多AOP语言 • Concurrent MetataM AOP
智能Agent
Agent
• 智能Agent的几个典型的实例: –Microsoft的Office助手 –计算机病毒(破坏主体) –计算机游戏或模拟中的智能角色 –贸易和谈判主体(如Ebay的拍卖主体) –网络蜘蛛Web Spider(搜索引擎中的数 据搜集和索引主体,如Google)
Agent结构
面向Agent技术
学生:刘宇航 戴腾蛟 学号:21107005 21107008
什么是agent?
an agent is an encapsulated computer system that is situated in some environment,and that is capable of flexible, autonomous action in that environment in order to meet its design objectives -- N.R.Jennings
• 建造agent:
–如何把一个agent分解为成份模块集合及模块间相互 作用。模块集合及其相互作用必须能回答这样的问题:
• agent获得的数据和它的当前内部状态如何决定其采取 动作 • 如何决定和修改agent的未来的状态。
• 建造agent的方法可分为三类:
–(1)思考型结构(deliberative architectures); –(2)反应型结构(reactive architectures) ; –(3)混合型结构(hybrid architectures);
面向agent软件开发的基本思想
• 强调基于agent这一抽象概念模型来认识、描述、 分析应用以及开发软件系统:
– 系统由一个或者多个agent构成,即构成系统的成分是 一个个agent; – 每个agent都是自主或者半自主的计算实体; – agent间存在复杂的关系(组织结构关系、依赖关系等); – agent间通过复杂的社会性交互和合作来实现系统功能 和行为。
• 面向agent的软件工程(AOSE)
– 支持基于agent系统开发的方法、技术、过程和工具的 统称
面向agent软件开发范型特点
• 高度抽象,自然建模
– agent概念是对现实世界(应用)中计算实体的自 然建模 数据抽象 ->对象抽象 -> agent抽象 – 是对现实世界中问题求解方式的自然建模 过程及其调用 -> 对象间的消息传递 -> agent间 社会性的交互与合作
AgentBuilder 商用,Reticular Systems Inc开发,构造智能软件agent, 支持BDI agent 模型 Jack 商用,Agent oriented Software pty.Ltd开发,利用组件方法开发 基于Java的多agent系统,支持BDI模型和反应式模型
面向agent的软件开发方法
• agent间的合作,协同,协商,竞争等
– 体现了一种更为灵活的“分而治之”的思想 – 反应了计算的社会性
面向agent软件开发范型局限性
• 无全局控制
– agent的自主性,通过合作实现问题求解
• 无全局观点
– 每个agent都有其自身的知识、能力和任务 – 知识的一致性、及时性和全局性 – 部分最优解