分布式智能软件(一)基础概念

本文是分布式智能软件课程的笔记及心得记录

大纲

  • 分布式系统介绍
    • 多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通信行为