智能Agent2020/6/222Agent技术是在分布式人工智能研究需求的基础上发展起来的一种技术。近10多年来,Agent和多Agent系统的研究成为分布式人工智能研究的一个热点。本内容主要针对多Agent系统的相关技术进行探讨,介绍Agent系统的模型和结构,重点介绍Agent的基本结构、Agent之间的通信模式、协作和协调方式。2020/6/2231分布式人工智能2Agent的结构3Agent通信4Agent协作与协调5多Agent环境MAGE主要内容:2020/6/2241分布式人工智能一个分布式系统是把各种不同地理位置上的计算资源连接起来形成一个系统。分布式人工智能主要研究在逻辑上或物理上分散的智能系统如何并行的、相互协作地实现问题求解。有两种主要的方法:(1)自顶向下:分布式问题求解。在多个合作和共享的知识模块或系统之间划分任务,并求解问题。(2)自底向上:基于Agent的方法。在一群自主的Agent之间进行智能行为的协调。2020/6/2251.1分布式人工智能的研究与发展分布式人工智能的研究可以追溯到70年代末期。早期分布式人工智能的研究主要是分布式问题求解,其目标是要创建大粒度的协作群体,它们之间共同工作以对某一问题进行求解。1980年Davis和Smith提出了合同网(CNET)CNET使用投标---合同方式实现任务在多个节点上的分配。合同网系统的重要贡献在于提出了通过相互选择和达成协议的协商过程实现分布式任务分配和控制的思想。2020/6/2261980年麻萨诸塞大学的Lesser,Corkill和Durfee等人主持研制DVMT该系统对市区内行驶的车辆轨迹进行监控,并以此环境为基础,对分布式问题求解系统中许多技术问题进行研究。DVMT是以分布式传感网络数据解释为背景,对复杂的黑板问题求解系统之间的相互作用进行了研究,提供了抽象和模型化分布式系统行为的方法。1983年Hewitt和他的同事们研制了基于ACTOR模型的并发程序设计系统。ACTOR模型提供了分布式系统中并行计算理论和一组专家或ACTOR获得智能行为的能力。在1991年Hewitt提出开放信息系统语义,指出竞争、承诺、协作、协商等性质应作为分布式人工智能的科学基础,试图为分布式人工智能的理论研究提供新的基础。2020/6/2271987Gasser等持研制了一个实验型的分布式人工智能系统开发环境MACE系统。MACE中每一个计算单元都称作Agent,它们具有知识表示和推理能力,它们之间通过消息传送进行通信。MACE是一个类面向对象环境,但避开了并发对象系统中难于理解和实现的继承问题。MACE的各个机构并行计算,并提供了描述机构的描述语言,具有跟踪的demons机制。该课题研究的重点是在实际并行环境下运行分布式人工智能系统,保持概念的清晰性。2020/6/2281989年清华大学石纯一等主持研制了分布式运输调度系统DTDS-I。该系统以运输调度为背景,提出了分布式问题求解系统的体系结构,对问题分解、任务分布算法和基于元级通信的协作机制等方面进行了探讨。1990中国科学院计算技术研究所史忠植等研究了分布式知识处理系统DKPS。该系统采用逻辑------对象知识模型,研究了知识共享和协作求解等问题。2020/6/22990年代,多Agent系统(Multi-agentsystems---MAS)的研究成为分布式人工智能研究的热点。MAS主要研究自主的智能体之间智能行为的协调,为了一个共同的全局目标,也可能是关于各自的不同目标,共享有关问题和求解方法的知识,协作进行问题求解。基于智能Agent的概念,有人提出了一种新的人工智能定义:“人工智能是计算机科学的一个分支,它的目标是构造能表现出一定智能行为的Agent”。所以,智能Agent的研究应该是人工智能的核心问题。斯坦福大学计算机科学系的Hayes-Roth在IJCAI'95的特邀报告中谈到:“智能的计算机Agent既是人工智能最初的目标,也是人工智能最终的目标。”2020/6/22101.2分布式人工智能的特点①分布性:系统中的数据、知识,以及控制不但在逻辑上,而且在物理上是分布的,既没有全局控制,也没有全局的数据存储。②连接性:各个求解机构由计算机网络互连,在问题求解过程中,通信代价要比求解问题的代价低得多。③协作性:系统中诸机构能够相互协作,来求解单个机构难以解决,甚至不能解决的任务。④开放性:通过网络互连和系统的分布,便于扩充系统规模,具有比单个系统更多的开放性和灵活性。2020/6/2211⑤容错性:系统具有较多的冗余处理结点、通讯路径和知识,能够使系统在出现故障时,仅仅降低响应速度或求解精度,以保持系统正常工作,提高工作可靠性。⑥独立性:系统把求解任务归约为几个相对独立的子任务,从而降低了各个处理结点和子系统问题求解的复杂性,也降低了软件设计开发的复杂性。分布式人工智能的优点:1)提高问题求解能力。2)提高问题求解效率。3)扩大应用范围。4)降低软件的复杂性。2020/6/22121.3分布式问题求解分布式问题求解将问题分解成若干子问题,并分配给各个子系统并行完成求解,最后通过综合各个子问题的解而完成整个问题的求解。分布式问题求解过程可以分为四步:任务分解任务分配子问题求解结果综合在分布式问题求解系统中,数据、知识、控制均分布在系统的各节点(子系统)上,没有全局数据和知识存储。因此,在求解子问题时,子系统之间通常需要交互和协作。2020/6/2213分布式问题求解中有两种基本的协作方式:1)任务分担2)结果共享1)任务分担Smith和Davis提出了任务分担方式。在任务分担系统中,结点之间通过分担执行整个任务的子任务而相互协作,系统中的控制以目标为指导,各结点的处理目标是为了求解整个任务的一部分。任务分担的问题求解方式适合于求解具有层次结构的任务,如工厂联合体生产规划、数字逻辑电路设计、医疗诊断。2020/6/22142)结果共享Lesser和Corkill提出了结果共享方式。在结果共享方式的系统中,各结点通过共享部分结果相互协作,系统中的控制以数据为指导,各结点在任何时刻进行的求解取决于当时它本身拥有或从其它结点收到的数据和知识。结果共享的求解方式适合于求解与任务有关的各子任务的结果相互影响,并且部分结果需要综合才能得出问题解的领域。如分布式运输调度系统、分布式车辆监控实验系统DVMT2020/6/22151.4基于Agent的问题求解在人工智能领域Agent有多种翻译,如“智能体”、“主体”、“智能代理”、“真体”等。它可以看做是一个自动执行的实体,通过传感器感知环境,通过效应器作用于环境。多Agent系统主要研究在逻辑上或物理上分离的多个Agent协调其智能行为,即知识、目标、意图及规划等,实现问题求解。可以看作是一种由底向上设计的系统。下面将对多Agent系统的相关技术进行探讨。环境传感器效应器?Agent感知作用2020/6/22162Agent的结构构建Agent的任务就是设计Agent程序,即实现Agent从感知到动作的映射。体系结构使得传感器的感知对程序可用,运行程序并把该程序的作用选择反馈给执行器。Agent结构需要解决的问题包括:Agent由那些模块组成模块之间如何交互信息Agent感知到的信息如何影响它的行为和内部状态如何将这些模块用软件或硬件的方式组合起来形成一个有机的整体2020/6/22172.1Agent模型Agent的理论模型研究主要从逻辑、行为、心理、社会等角度出发,对Agent的本质进行描述,为Agent系统创建奠定基础。1、理性Agent模型(BDI模型)Belief——信念,Agent对环境的基本看法。Desire——愿望,Agent想要实现的状态,即目标。Intention——意图,目标的子集。BDI模型可以通过下列要素描述:(1)一组关于世界的信念;(2)Agent当前打算达到的一组目标;(3)一个规划库,描述达到目标和改变信念的方案;(4)一个意图结构,描述当前状态如何达到目标和改变信念。2020/6/2218BDI-Interpreterinitialize-state();dooptions:=option-generator(event-queue,B,G,I);selected-options:=deliberate(options,B,G,I);update-intentions(selected-options,I);execute(I);get-new-external-events();drop-successful-attitudes(B,G,I);drop-impossible-attitudes(B,G,I);untilquitBDI解释器2020/6/2219情景演算是描述动作的主要的形式框架。在情景演算中引入了状态和动作的概念,并利用两条逻辑公理来描述动作与状态的关系。一条公理描述一个动作在满足什么条件的状态之下可能发生,另外一条描述在一个状态之下某个动作发生以后当前状态如何改变。2、动作理论模型环境状态:State={P1,P2,…Pn}目标:Goal=State,weightiness动作模板:Act_template=name,roles,preconditions,effects,resourcesAgent能力:Ability=Act_template,role,cost2020/6/2220环境Agent感知作用Agent的工作过程2.2Agent的基本结构环境交互信息融合信息处理作用交互感知作用问题求解器2020/6/2221(1)在计算机系统中,Agent相当于一个独立的功能模块、独立的计算机应用系统,它含有独立的外部设备、输入/输出驱动装备、各种功能操作处理程序、数据结构和相应输出。(2)Agent程序的核心部分叫做决策生成器或问题求解器,起到主控作用,它接收全局状态、任务和时序等信息,指挥相应的功能操作程序模块工作。(3)Agent的运行是一个或多个进程,并接受总体调度。特别是当系统的工作状态随工作环境而经常变化时以及各Agent的具体任务时常变更时,更需搞好总体协调。(4)各个Agent在多个计算机CPU上并行运行,其运行环境由体系结构支持。体系结构还提供共享资源(黑板系统)、Agent间的通讯工具和Agent间的总体协调,使各Agent在统一目标下并行协调地工作。2020/6/22222.3Agent的特性通常认为一个Agent需要具有以下部分或全部特征:①自治性Agent能够控制它的自身行为,其行为是主动的、自发的和有目标和意图的,并能根据目标和环境要求对短期行为做出规划。②交互性也叫反应性,Agent能够与环境交互作用,能够感知其所处环境,并借助自己的行为结果,对环境做出适当反应。③协作性各Agent合作和协调工作,求解单个Agent无法处理的问题,提高处理问题的能力。④社会性Agent存在于由多个Agent构成的社会环境中,与其它Agent交换信息、交互作用和通讯。2020/6/2223⑤持续性Agent的程序在起动后,能够在相当长一段时间内维持运行状态,不随运算的停止而立即结束运行。⑥适应性能够把新建立的Agent集成到系统中而无需对原有的多Agent系统进行重新设计,因而具有很强的适应性和可扩展性。⑦智能性Agent强调理性作用,可作为描述机器智能、动物智能和人类智能的统一模型。Agent的功能具有较高智能,而且这种智能往往是构成社会智能的一部分。在实际应用中,Agent可以具有上述全部或部分特性。另外也可以根据实际需要,具有一些其他的特性,如实时性、移动性等。2020/6/22242.4Agent的结构分类根据人类思维的不同层次,可把Agent分为下列几类:(1)反应式Agent:反应式Agent只简单地对外部刺激产生响应,没有任何内部状态。每个Agent既是客户,又是服务器,根据程序提出请求或做出回答。环境执行器