CH7-面向AGENT的软件工程
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
7.1 面向Agent的技术
• 3.Agent的概念为人工智能的成果提供了一个统 一的观点,通过使用Agent和MAS作为存放智能 行为的、可靠的和易管理的知识库,从而利用人 工智能的成果解决现实世界中的问题。
7.1.1 Agent的基பைடு நூலகம்概念
• 两种观点:弱概念、强概念 • 弱概念:在主流计算中很流行,这种观念认为 Agent类似于UNIX进程,具有自治,社交,反应 和预动等属性,自治是指Agent在没有人为干预的 情况下的工作能力,可以控制它们自己的状态和 行为。 • 强概念:在人工智能领域中很常见,认为Agent是 一个计算机系统。除了这些属性外,还可以被概 念化或模型化,具有人类的特征,例如知识、信 念、目的和义务等思维概念。
7.1.2 Agent的体系架构
• 2.PRS架构的主要组件
数据库 目标栈
解释器
KA库
意图结构
7.1.3 Agent的组织类型
• MAS中的每一个Agent负责追踪一个或几个明确 定义的责任,这些责任一般是通过与其他角色的 交互来完成的。然而,两个角色之间的交互不仅 是联合的关系,事实上还是一个建立权威的关系, 这是角色定义的一个部分。角色、交互和权威关 系定义了组织的结构。
7.1.2 Agent的体系架构
• 1.包容性体系结构 • 包容性体系架构是 Brooks 对反应型体系架构的改 进,是基于行为存在和它们的抑制关系。
行为N
行为N-1
动作
行为1
7.1.2 Agent的体系架构
• 2.PRS • 在 PRS中,信念、期望和意图被明确地描述,并 且一起决定系统的行为。它们还会随着推理机制 动态改变。 PRS由解释程序和几个模块构成,模 块包括数据库,目标栈,知识区域库和意图结构。
第7章 面向AGENT的软件工程(续)
• • • • 7.5.5 协调对MAS工程化的影响 7.5.6 MAS协调的行为理论框架 7.5.7 制品与协调基础设施 7.5.8 MAS工程中的协调平衡
7.1 面向Agent的技术
• 面向Agent技术是面向过程技术、面向对象技术和 面向组件技术的继承和发展。 • 1.Agent是自治的应用组件,反映了现代分布式 系统内在的分散性,并且可视为系统被不同的利 益相关者所拥有,在模块化和封装概念上进行了 自然延伸。 • 2.Agent运行和交互所采取的灵活方式,适应于 现代软件在动态和不可预知的情况下运行。
7.1.1 Agent的基本概念
• 1.自治性 • 在相同的框架下,实现自治的参与者也可以自如 地处理基础机制的变化。 • 2.异构性 • 在设计一个开放系统时,一定要有对共同性的说 明。 • 3.动态性 • Agent所倡导的动态配置技术有一些变种 。
7.1.1 Agent的基本概念
• 4.通信 • Agent能够通过环境进行持续交互,然而通过交互 可能会影响交互各方的自治性。 • 5.协议 • 协议简述了一个Agent应该何时,以及如何同其他 Agent进行通信。 • 6.承诺 • 可以将“承诺的可复用交互模式”形式化,这些 模式可以用作设计多Agent系统的基础,并确保最 终产生交互具有某些属性。
• 1.分析 • 在Agent领域,有的方法直接处理这些需求,还有 一些混合方法适合于采用Agent概念,需要考虑: Agent在分析目的中的角色,使用Agent 概念的范 型语言,以及这些语言的支持工具。 • 2.设计 • 考虑如何使用 Agent 概念和技术来简化 MAS 的设 计。为了能够转换分析规范,就有必要知道如何 从头构建Agent,如何使用Agent开发环境。
7.1.3 Agent的组织类型
• • • • • 常用的组织类型或范型: 1.层次 2.组合 3.团队 4.市场
7.1.4 Agent与组件的对比
• 下面从几个方面来比较Agent和组件 :
特 征 状态 通信 面向Agent 精神状态 ACL 面向组件 属性和关系 元对象协议
责任委派
各方之间的关系 与环境交互
7.1.5 语义复用的Agent和组件
• (1) Agent的知识接近于Agent所相信的,即通过 环境感知运用稳定规则推导出来。 • (2) Agent的目标近似于意图,能够从信念和计划 引擎所派生出来的规则计算出来。 • (3) Agent所能解决的目标近似于它行动的后续条 件。这些后续条件考虑了Agent的状态和行动完全 施行以后的环境状态。
7.3.3 MASE方法
• (4)分析阶段总结 • 2.设计阶段 • (1)创建Agent类 • (2)构建对话 • (3)组装Agent • (4)系统设计
7.3.3 MASE方法
• 3.设计阶段总结 • 完成了部署图之后,MASE的设计阶段就结束了, 可以总结如下: • (1)向Agent分派角色,确认对话; • (2)构建对话,增加消息/状态来获得健壮性; • (3)定义Agent内部结构; • (4)使用部署图来定义最终的系统结构。
7.4.2 HDA的使用规则
• 层次/模型样式表
阶段和层次 A元模型
模型一名称
阶 段 名 称
7.3.2 Tropos方法
• Tropos方法采用I模型,它将行为者、目标、行为 者的依赖关系作为早期需求分析时应用建模的基 本概念。 • Tropo方法的目的是支持软件开发的四个阶段: • 1.早期需求分析 • 2.后期需求分析 • 3.架构设计 • 4.详细设计
7.3.3 MASE方法
• 提供了一种分析设计MAS的详细方法,它将几种 已有的模型通过组合形成了一个完整的方法,并 提供了一整套的转换步骤,说明如何从现有的模 型派生出新的模型。 • MASE方法是一个覆盖完整生命周期的开发方法, 包括了异构MAS的分析、设计和开发。 • 1.分析阶段 • (1)捕捉目标 • (2)使用用例 • (3)定义角色
7.1.2 Agent的体系架构
• BDI在Agent社区中很流行,主要出于下面几个关 键的原因: • (1)基于意图概念对系统进行建模,对人类来说更 加自然。 • (2)大部分BDI体系架构有一个基础良好的哲学和 理论背景。
7.1.2 Agent的体系架构
• BDI架构的成功取决于以下方面: • (1)应用程序编制时基于计划构建,方便于模块化 和渐增式的开发。 • (2)由系统来管理反应行为和面向目标行为之间的 平衡,终端用户不需要参与复杂的低级语言编程, 这改进了可靠性。 • (3)终端用户采用人类的思维状态来进行编码,而 不是低级语言。
高级软件工程
第7章 面向AGENT的软件工程
第7章 面向AGENT的软件工程
• 7.1 面向Agent的技术 • 7.1.1 Agent的基本概念 • 7.1.2 Agent的体系架构 • 7.1.3 Agent的组织类型 • 7.1.4 Agent与组件的对比 • 7.1.5 语义复用的Agent和组件 • 7.2面向Agent的软件工程 • 7.2.1 面向Agent的研究内容
7.2.2 面向Agent的开发过程
• 3.实现 • 这一部分主要使用Agent技术来实现面向Agent的 设计。 • 4.测试 • 用来检查一个 MAS是否满足初始要求,已经构建 的是否没有错误。
7.3面向Agent的经典开发方法
• 面向Agent的方法是一个新的研究领域,并且 Agent范型与新的概念相关联,目前的工作主要集 中于过程的前三个阶段:需求、分析和设计。但 是有很多工作与Agent平台相关联,可以用于开发 和部署阶段。面向Agent的经典开发方法有: Gaia方法、Tropos方法和MASE方法。
7.3.1 Gaia方法
• 1. 分析阶段 • 在分析阶段,确认系统中的角色,然后对它们之 间的交互进行建模。角色是用来进行概念化描述 的抽象结构,在现实系统中并没有具体的对应物。 • 对于每个角色范型从四个属性进行定义:权限、 职责、行为和协议。
7.3.1 Gaia方法
• 2. 设计阶段 • 分析阶段的抽象结构,即角色和交互模型中所展 现的角色和协议,在设计阶段需要被映射成具体 的结构,也就是在运行时能够实例化的Agent类型。 • 产生的三个模型:Agent模型、服务模型、熟人模 型。
7.1.2 Agent的体系架构
• Agent体系架构可以分为慎思型、反应型和混合型。 • 信念---期望---意图(BDI) 体系架构是Agent的表示 形式,Agent的行为可以被描述成好像拥有信念、 期望和意图等思维状态。 • (1)信念表示Agent拥有的知识; • (2)期望描述Agent追求的目标; • (3)意图说明Agent选择计划以实现哪些目标。
7.1.5 语义复用的Agent和组件
• 1. 可重用性的目的在于:加速新系统的实现;通 过组合大量的组件,确保所实现系统的质量。 • 2. 需考虑的三个方面:语义的互操作性,语义的 组合性,语义扩展性。 • 3.大致语义可重用性 • 组件和Agent提供了不同的近似,在复用性方面 Agent比组件所具有的优势正来自于这些不同的近 似, parade框架给出的语义可重用性大致如下:
7.4.2 HDA的使用规则
• 为了保证整个方法定制过程的顺利进行,需要弄 清楚HDA中的三个关系: • (1)明确应该选用HDA哪些层次。 • (2)判断某个元模型是否适合于某个层次。 • (3)根据需要将设计模式同元模型关联起来。 • 在HDA各个阶段中,从底层到顶层中,一步步充 实方法的细节,最终形成了适合于特定应用的新 方法,包括一组有序的步骤、一套模型及模型之 间的关系。
任务和责任委派
能力描述 新的概念
任务委派
接口 事件
7.1.4 Agent与组件的对比
• 面向组件的方法似乎比面向Agent的方法能够更好 的实现封装:只有决定改变组件本身以对事件做 出反应时,组件的状态才会改变。面向Agent的方 法也重视封装。Agent具有组件推理能力,这都是 由推理来决定,思维状态依然保持封装。
7.3.3 MASE方法
• 会议管理系统的一个部署图
A1: Author PCM1: PCMember A2: Author A3: Author
Database: DB
Chair: PCChair
7.4 按需定制的开发框架HDA
• • • • 方法工程学的概要图如下所示: 1.如何获取元模型; 2.如何组织元模型以形成一个合适的方法; 3.如何根据项目的需求来定制方法。
7.2 面向Agent的软件工程 7.2.1 面向Agent的研究内容
• • • • • • • • AOSE的关键主题包括: 1.需求工程 2.开发语言 3.建模语言 4.平台 (1)JADE(Java Agent DEvelopment framework) (2) ZEUS 5.方法学
7.2.2 面向Agent的开发过程
第7章 面向AGENT的软件工程(续)
• 7.4.3元模型 • 7.4.4 潜在的问题 • 7.4.5 Agent建模阶段 • 7.5 多Agent系统的基础设施 • 7.5.1 MAS的基础设施 • 7.5.2 基础设施的授权与协调 • 7.5.3 授权型基础设施JADE • 7.5.4 MAS的协调基础设施
元模型(方法单元) 构成 方 法 定制
实际项目
7.4.1 HDA的定义
• HDA(Hierarchical Development Architecture,层 次开发框架)被提出,用来作为“方法定制”的方 向性指导框架,帮助开发人员从不同AO方法中提 取出合适的元模型,放置到HDA中合适的阶段和 层次,根据项目的特殊需要进行剪裁调整,最终 获取所需的开发方法。 • 开发人员可以在HDA的不同阶段和层次之间并发 进行或迭代往复。
第7章 面向AGENT的软件工程(续)
• 7.2.2 面向Agent的开发过程 • 7.3面向Agent的经典开发方法 • 7.3.1 Gaia方法 • 7.3.2 Tropos方法 • 7.3.3 MASE方法 • 7.4 按需定制的开发框架HDA • 7.4.1 HDA的定义 • 7.4.2 HDA的使用规则