本文是分布式智能软件课程的笔记及心得记录
大纲
- 分布式系统介绍
- 多Agent系统的技术需求
- 多Agent系统求解方案
- Agent定义
- 多Agent系统(MAS)
- Agent技术概述
- 广义Agent概念解析
- 判断Agent
- 面向Agent软件开发
- 面向Agent建模技术
- Agent通信与协作
- FIPA
- FIPA请求交互协议(IP)
- FIPA合同网交互协议
多Agent系统的技术需求
技术需求:应用系统向复杂性发展的挑战,并表现出新的特征,如
- 分布:数据、资源、处理实体在物理或者逻辑上是分布的,如电子邮件系统,客户端存放发送接收邮件,客户端管理请求组织邮件
- 交互:分布系统为了达到目标和完成任务,处理实体之间需要进行交互以实现合作、协商、竞争等,如电子商务卖卖方议价等
- 动态开放:系统没有明确边界,允许成分动态变化(加入、离开),如Internet中节点动态加入和离开
多Agent系统求解方案
分布式复杂问题主要有两类求解方案:
- 自顶向下——分布式问题求解(DPS):将一个复杂问题求解任务在多个合作、共享的模块间划分
- 自底向上——多Agent系统(MAS):研究自主的Agent之间智能行为的协调,为了一个全局目标自主的Agent共享知识协作求解问题
Agent定义
驻留在某一环境下能够自主、灵活地执行动作以满足其设计目标的行为实体
如物理Agent——空调的恒温调节器,植物Agent——睡莲的奇特习性,软件Agent——游戏中的AI角色等
多Agent系统(MAS)
两个或者多个相对独立同时又相互作用的Agent所构成的系统
如物理系统——空调设备Agent与恒温调节器Agent,软件系统——病毒防护中病毒数据维护Agent、文件实时保护Agent和病毒分析清理Agent等
广义Agent概念解析
广义Agent定义是驻留在某一环境下能够自主、灵活地执行动作以满足其设计目标的行为实体
- 行为实体:Agent是具有一组动作和具备动作实施能力的实体
- 自主性:Agent能根据其内部状态和环境输入决定自身状态、控制自身行为
- 灵活性:Agent能感知环境并对环境中发生的事件作出实时反应,能与环境中其余Agent进行交互、通信
- 驻留环境:Agent能与环境持续交互(感知环境输入、对环境产生影响)
判断Agent
- 是否具有独立心智:Agent运行时不受外界敢于,对其行为是否执行、何时执行有自主控制能力
- 是否与外界交互:Agent能感知环境变化(输入),根据环境变化做出相应反应(输出)
面向Agent软件开发
软件开发技术的发展轨迹
Object对象存在的不足:
- 没有区分现实中的实体:现实世界的实体映射到OO世界中都是数据和操作的集合类(Object),但是没有根据实体是否有独立心智而加以区分这些集合类,这些集合类可以被分为只能被动调用和可以自发执行
- 无法自然模拟现实世界中的感知能力:现实世界的实体在OO世界中无法感知环境变化,如一个类需要感知另一个类的变化需要使用观察者模式(Observer),但这需要被感知的类提醒感知类,存在逻辑错误
面向Agent建模技术
Agent与Object不同和相关:
- 抽象层级不同
- Object之间交互使用相互调用方法的方式,Agent之间交互使用通信语言
- Object是对于被动实体很好抽象,Agent是对于主动实体的很好抽象
- Object只能外部被动调用,Agent有主动性
- 相关:Agent由对象构成
Agent通信
Agent之间使用Agent通信语言(ACL)进行交互,这种语言基于言语行为理论,不同于Agent内容语言
通讯言语要求:表达合作的意图和内容
通讯行为的影响:通讯行为会影响自身和其他Agent状态,不会直接影响环境状态。非通讯行为会影响自身和环境状态,不会直接影响其他Agent状态
常用的Agent通信语言:当前广泛使用的是FIPA ACL
Agent协作
Agent协作要求每个Agent个体以一直的方式相互作用
Agent协作原因:
- Agent之间可能存在行为冲突
- Agent是相互依赖的
- Agent具有不同的能力和知识
- Agent协作使目标更快达成
Agent协作方法——合同网协作:实现Agent之间任务与资源的分配决定组织结构的协作技术
- 基于分散的市场结构:每个Agent分别承担管理者或合同者角色
- 基本前提:一个Agent不能用本地资源/知识解决问题,它会将问题分解成几个子问题分配给其他拥有相应资源/知识的Agent
分解子问题解决机制——合同机制
FIPA(智能物理Agent基金会)
其核心概念为Agent通信和Agent管理
Agent通信:强调通信行为,如通知(inform)、请求(request)、同意(agree)、不理解(not-understood)和拒绝(refuse)的行为方式
基于Agent通信行为集,FIPA执行了一些交互协议,如请求交互协议、合同网交互协议
Agent管理:FIPA Agent管理框架中Agent可以存活、操作并被有效管理,框架有为Agent创建、注册、定位、通信、迁移、操作建立了相应逻辑参考模型
FIPA请求交互协议(IP)
FIPA请求交互协议(IP)允许一个Agent(发起者)请求(request)另一个Agent(参与者)执行一个动作。参与者处理该请求并决定是同意(agree)还是拒绝(refuse)该请求,若是同意该请求则需返回执行动作结果(failure——失败、inform-done——通知已完成、inform-result——通知结果)
FIPA合同网交互协议
FIPA合同网交互协议描述一个Agent(发起者)期望某些任务由另外的一个或多个Agent(参与者)来完成。
发起者通过征求建议(call for proposals,cfp)通信行为(CA)向m个Agent征求建议,接收到征求建议的n个参与者视为潜在合同合作者产生n条回复,其中j是愿意执行propose通信行为的合同合作者个数,i为拒绝合同的Agent个数,达到要求时限后,发起者对j条回复进行评估,选择l个Agent作为合同合作者发送accept-proposal通信行为,剩余的k个Agent收到reject-proposal通信行为