面向Agent的软件设计开发方法
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.4 Agent的组织类型

前面章节解释了Agent的内部组成,本节处理Agent之间的交互,即为了解决共同的或内部关联的问题,它们一起协作的方式。

虽然已经提出了几个比喻来对系统中的Agent交互方式进行建模(Iglesias等,1998),但是“组织”(Fox,1981)正在成为面向Agent软件工程(Agent Oriented Software Engineering,AOSE)中最为常用的一个比喻(DeLoach,2002;Kolp等,2002),因为它是直接的,并且已经在多种情况下被成功应用。大体上,组织比喻是源于人类在组织环境中可以通过协同工作来解决问题,如商业。商业有需要达到的目标,并且为了实现这些目标,需要将其分解为具体的任务,如生产和分配。然后,再将这些具体任务分配给由人扮演的角色。为了执行它们的任务,角色根据预定义的模式进行交互,这些模式定义了一些角色从属于另一些角色的权威。这些交互也形成了一个可辨认的通信路径网络。更一般地,根据组织比喻,MAS中的每一个Agent都可以扮演一个或多个角色;反之,每一个角色负责追踪一个或几个明确定义的责任,这些责任一般是通过与其他角色的交互来完成的。然而,两个角色之间的交互不仅是联合的关系,事实上还是一个建立权威的关系,这是角色定义的一个部分。角色、交互和权威关系定义了组织的结构。

“组织”可以指导系统中的Agent通过交互来完成各自或全局的目标,并影响它们如何协调和分配资源,以及相互之间的从属关系。这样,通过和其他Agent的交互,“组织”可以帮助简单的Agent完成复杂的任务,帮助复杂的Agent降低过程的复杂性(Horling等,2005)。可以认为,所有的MAS都有某种形式的组织,即使是隐含的。因为在任何MAS中,分布式Agent通过交互一起活动,执行分配的任务并且使用资源去完成这些任务。然而,可能不止一个组织适应于某一特定系统(例如,一条生产线可以被建模为一条管道,也可以是一个层次),因为组织的任务分配方式和所拥有的通信路径各不相同,不同的组织会导致不同的系统执行效率(如通信和计算的开销)、不同的可靠性和不确定性管理。除此之外,组织提出了可测量性、冗余和灵活性的不同标准。虽然没有两个组织是相同的,但是根据它们交互所形成的拓扑结构和Agent之间所展示的权威关系,把它们归为某一类型是可能的,下面是一些最常用的组织类型或范型。

1.层次(Hierarchies)

这是最简单的,也是被研究最多的组织形式(Fox,1981;Horling等,2005)。在层次中,Agent从概念上被排列为一个树形结构,角色的位置越高,就越重要。一般地,低层Agent会为高层Agent产生数据,高层Agent会执行更为复杂的处理,如合并、分析或决策。层次在分布式应用软件建模中被广泛应用(Fox,1981)。实际上,著名的合同网协议(Smith,1977)倾向于产生分层结构。在合同网协议中,Agent可以通过广播来分配一个子任务,在其他Agent所提供的服务中选择一个最为方便的,从而协助它完成任务。

2.组合(Holarchies)

在这个范型中,系统被认为是由基本组织单元构成,即一个子模块可以被看做是由其他(更基本)模块构成(Fischer等,2003;Horling等,2005);例如,一个制造系统由制造单元组成,而制造单元又是由设备、操作员和过程等组成。组合的关键是子模块的局部自治,因为缺乏自治性将会退化为分层,完全的自治性又会导致无组织群体。更明确地,如果系统中Agent之间的关系是完全从属的,组合会退化为分层。组合的另一个重要方面是每个子模块代表着一个复杂的子组织,需要进一步分解。把系统建模为一个分层嵌套结构,已经证明适合于对某些特定的实际问题进行建模,如制造业控制(Zhang等,1999)。在(Zhang等,1999)中,一个整合不同类型(静态的、中介者和动态的)子模块的模型被用于为制造业控制系统建立一个组织。这里,静态创建的子模块被用于表示环境实体,如制造设备、设计计划和传输带,而动态创建的子模块被用于表示新任务,中介者类型子模块管理次序和协调资源。

3.团队(Teams)

团队就是多个合作Agent追求共同目标的系统(Beavers等,2001)。因为没有对它们的交互类型加以制约,团队的拓扑结构往往是十分随意的。然而,团队成员经常共享它们的思维状态,尤其是对于“共同目标、相互信任和团队行为”的通用表示。例如,(Jennings,1995)展示了依赖于共同任务的表示和合作过程,Agent可以成功解决电力运输的问题,但是在缺乏共同表示时,它们倾向于无条理的行为。

4.市场(Markets)

在这种特殊类型的组织中,Agent可以购买和出售类似于服务或任务这样的项目(Fox,1981;Wellman,2004)。扮演购买者角色的Agent投标,扮演出售者角色的Agent接受投标并确定获胜者,其方式在很大程度上类似于真实的市场。通常是这种情况,一些Agent的存在是为了促进组织在共同任务中的操作,如接受投标和确定获胜者。Kasbah(Chavez和Maes,1996)是最早基于Agent的市场例子之一,其中购买者和出售者通过一系列的特征、期望价格和限制价格来描述它们感兴趣的货物类型。这里当购买者愿意付给出售者所期望的价格时,一次交易就会发生。

在每一种特定的方法中,组织表述的方式都不相同。例如,在Gaia方法学(Zambonelli等,2000)中,角色组织由组织结构和组织规则组成。组织结构通过其本身的拓扑结构和控制机制进行描述。拓扑结构包括一系列由组织中角色相互作用形成的通信路径,以及有可能采取的典型方式,如线、树或网络。另外,控制机制包含角色之间的权威关系;例如,在雇用控制机制中,作为工作划分的结果,低级角色要服从高级角色。最后,组织规则提供对组织元素操作方式的限制;例如,市场中的组织规则可以规定:如果没有收到相应的支付,不能交付相应的产品。

总之,将组织方法应用于多Agent范型是一种有前途的工具,可以处理目前软件系统的复杂性(Zambonelli等,2003;DeLoach,2002),这主要是由于以下事实:组织提供了一个概念性的框架,其中Agent所执行的复杂交互可以被适当地建模。这个概念性的框架建立了一个位于顶部的抽象层次,由Agent进行补充。