您好, 访客   登录/注册

多Agent协作模型

来源:用户上传      作者:

  摘要:Agent系统是人工智能中的一个重要部分,而多Agent系统便是侧重于各个Agent之间的协作机制。对于已经存在的多Agent系统,多数都是人类以语言的形式进行描述.本文首先提出多Agent协作模型,并对该模型进行形式上的描述。
  关键词:智能Agent多Agent系统Agent协作模型
  
  一、多Agent系统
  多Agent系统(Multi-Agent System――简称为MAS)由多个自主或半自主的智能体组成,每个Agent或者履行自己的职责,或者与其他Agent通信获取信息互相协作完成整个问题的求解。多Agent系统的研究主要是集中在如何在一群自制的Agent之间进行行为的协作。在第二章中,我们主要是研究了单个Agent的内部结构,可以这认为是Agent理论的一个基础,也可以认为是多Agent的一个微观世界,在这一章中,我们介绍一下多Agent的结构。
  MAS有如下特点:
  1、社会性
  Agent处于由多个Agent构成的社会环境中,通过某种Agent语言与其他Agent实施灵活多样的交互和通讯,实现与其他Agent的合作、协同、协商、竞争等。
  2、自制性
  在多Agent系统中一个Agent发出请求后,其他Agent只有同时具备提供此服务的能力与兴趣时才能接受动作委托,即一个Agent不能强制另一个Agent提供某种服务。
  3、协作性
  在多Agent系统中,具有不同目标的各个Agent必须相互协作、协同、协商对未完成问题的求解。
  二、多Agent系统中Agent之间的通信机制
  通信的能力是Agent系统的一个重要的部分,某一个Agent可以通过通信的方式来改变另一个Agent的目标和信念。在这里我们介绍两种比较常见的通信机制,黑板和KQML。
  1、黑板
   Agent系统的通信机制中很重要的一个模型就是黑板系统,它是传统的人工智能系统和专家系统的一个扩充。
  在智能Agent系统中,黑板是一个公共的工作区域,以便于各个Agent交换信息、数据和知识。某一Agent在黑板上留下信息项后,可被黑板系统中其他Agent所共享。值得注意的是在黑板通信的系统中,智能Agent之间不会发生直接的通信。它们以黑板为共同的信息池,独立的完成各自携带的任务。Agent可以在任何时候访问黑板,看看有没有新的信息到来。它并不会阅读所有信息,可以采用过滤器抽取当前工作所需的信息。黑板可以用在任务共享和结果共享的系统中,但是如果系统中的Agent过多,那么这个黑板中的数据就会成指数增加。为了处理这个问题,一般的解决方法是将黑板分成若干个区域,将Agent划分到不同的区域内。
  2、市场结构
  在这里我们提出一种我们叫做“市场”的多Agent协作模型,这种协作模型有较强的通用性,很适合多个Agent之间的知识共享。在这种协作模型中,我们可以认为MAS中的协作工作是通讯、相互协调以及制定协议的一个集合,我们把这样的通讯、协调、协议动作叫做一个协作点,我们可以在任何的时间来定义这个协作点的参与者,这样的结构我们就称之为市场结构。
  每个市场中都要包含管理和参与这两种Agent形式,其中参与Agent所体现的是协作行为的参与者,管理Agent体现的是市场的管理者和服务的提供者,并且每当一个新的市场产生的时候都会产生一个管理的Agent与之对应,与市场结构关系最大的结构就是黑板结构和KQML,市场结构与黑板结构主要的区别就是市场结构不能体现出在多Agent系统中的控制模型,但是市场重点强调的是它的结构性,在市场结构中不允许不同市场之间的注册Agent相互通信。
  它与KQML的主要区别就是:市场可以自动的产生或者被取消,并且市场之间可以被链接。Agent之间以及市场之间是可以互相链接的。我们可以认为市场结构是传统黑板结构更高的一个层次。
  通过上面的描述我们可以看出市场结构的用处:首先它标识出了协作工作的参与者,其次它是通过协作点即市场来寻求协作以及协议,它为参与的Agent相互配对,它通过注册Agent在市场中注册的可以提供的动作以及想要得到事务在市场中动态的匹配。
  3、市场结构中的协作方案
  寻找协作伙伴的过程实质上就是一个选择协作方案的过程,因为在协作伙伴确定后,协作方案也就相应地确定了。为了减少寻找协作伙伴的盲目性,提高协作效力,有必要对协作结构做一定的处理。
  要实现协作的目的多Agent之间的协作要遵循一些性质和标准,主要包括:
  1、Agent间应该相互影响。
  2、所有Agent应对联合行动做出承诺。
  3、每个Agent应承诺对相互之间的行动给予支持;以及协作过程中不发生死锁现象、能满足特定的环境约束等等。
  在协作的过程中,Agent性质表现在以下的几个方面:
  1、Agent之间相互信赖。Agent在协作时不必太顾忌其他Agent的行为,可以自主的去实现自己的目标。
  2、Agent对协作行动赋予承诺,并保证在正常情况下不影响协作的顺利进行。
  3、无死锁的协作过程。在选择协作方案阶段,首先对协作结构进行了优化,排除了死锁现象出现的可能性。
  4、协作与约束。在协作目标中,不仅定义了多Agent应该完成的任务,还定义了多Agent在协作过程中应满足的环境限制或约束。
  5、协作与协调。Agent间的协作往往离不开协调,将目标关系进程与目标结构进程组合在一起,从而保证了多Agent行为的协调性。
  显然一个好的协作模型可以使得Agent之间的通信变得更加的方便。一般情况下协作模型要包含以下的元素:
  1、协作实体,可以并发执行的能动的实体,即每个Agent实体。
  2、协作的媒体,它允许参与的实体进行相互协作。媒体同样为实体构建一个构架提供了服务。
  3、协作规则,它决定了实体是怎样通过协作媒体来进行相互协作的。
   首先介绍一下实体,我们可以认为一个实体是一组动机、目标、动作和属性的集合,一个对象也可以是一个实体,但它要有一定的能力,可以在它所处在的位置上影响环境,一个Agent我们也可以理解成一个实体。对于一个实体来说它并不是自治的,也就是说它并不属于Agent,即它要比Agent低一个层次,但是我们可以把一个Agent看成是一个实体。
  当一个Agent为另一个Agent提供服务时,服务的提供者就要适应或者满足服务享受者的目标,。我们所说的Agent的自治性其实就是Agent本身可以通过它本身的动机来产生一组目标,在某一个协作模型中应该会存在着并不是自治Agent比如服务Agent。对于自治的Agent来说它能够产生出自己的目标,并且能决定什么时候采用其它Agent的目标,如果一个Agent能够采用其他Agent的目标,那么我们就可以认为这个Agent可以和其他的Agent相互协作。即在Agent之间它们是相互影响的,这就为所有的多Agent系统打下了基础,这为在某个目标中Agent的相互关系提供了分析方法。
  下面我们对这个视图中可能产生的关系以形式化的方法对其进行描述和定义。
  直接协议关系:它所指的关系是这种情况,其中一个Agent是客户端(client),另一个Agent是服务器(server),这样一个Agent c和另一个Agent s就存在着一个直接协议,这种协议没有媒体的参与就可以完成。对于某个多Agent系统在同一时刻可能会有多个协议的存在,这样我们就要使用一个协议链的结构。设协议链为ec,在这个协议链中应该包括s并且c在链中的位置应该比s要靠前,这是由于我们首先考虑的是目标。由于c是一个自治的Agent则当某个Agent不能满足它的目标的时候,c就会与其它的Agent 签订协议。这就要求存在一个before关系(这里说的before是存在与一对元素上面的,即在某个序列中第一个元素要在第二个元素的前面):
  如果有多个Agent都与同一个实体签订协议,那么就没有一个Agent能够完全的控制它,某一个Agent执行的任何一个影响该实体的动作都可能会阻止这个实体同其他Agent的协议。因此什么时候与实体签订协议或者在不损坏其他Agent的情况下修改协议就变得很重要了。当没有其它Agent为了它的目的来使用这个实体的时候,我们就说与这个实体签订协议的Agent就拥有了该实体。以上我们所说的情况都是一个自治的Agent和一个非自治的实体共同完成同一个目标,还会存在以下的这种情况,两个自治的Agent共同完成一个目标,它们之间并不是所属的关系,而是一种并列的关系。像这样的关系,我们称之为两个Agent的协作(cooperation),我们注意到这种关系并不是对称的。比如说一个Agent a,另一个Agent b,如果b与a协作,a并不需要一定与b协作。
  针对这种情况我们使用一种实体的方法来辅助Agent之间的协作关系,也就是说这种实体决定了Agent之间的相互影响。当Agent之间需要协作的时候,我们便拥有一个实体,这个实体会做需要Agent协作的事件,而这个实体会使用其他的几个Agent来共同实现这个目标,也就是使用了一个实体来当作媒体,来辅助Agent之间的协作关系。
  
  参考文献:
  [1]祁爱华,温秀梅.对多Agent系统协同的研究.福建电脑,2005,(1).
  [2]程显毅,夏德深.Agent思维状态属性的研究.南京理工大学学报,28(6).
  [3]何曙光,齐二石,李钢.基于多Agent系统的项目调度研究 .数学的实践与认识,35(1).□


转载注明来源:https://www.xzbu.com/9/view-2821928.htm