1. 1.Zeus系统简介 Zeus多代理设计开发平台(The Zeus Agent Building Toolkit)是英国电信实验室智能代理研究小组综合了现有的代理技术规范,研究开发出来的,用于快速开发协作式多代理系统的设计开发平台[1]。它希望通过定义一套标准的单个代理功能结构以及多代理通讯协调的体系,使用户能够摆脱复杂而繁琐的对代理底层结构的定义工作,从而关注于对应用问题的设计与实施,使用户能够快捷的开发出协作式多代理的应用系统。Zeus系统严格遵循FIPA97规范[2],系统的Java源程序全部公开以方便用户研究与扩展。 1.1基于Zeus的多代理应用系统的系统体系结构 一般我们设计开发多代理应用系统,需要解决两个层次的问题:一是对应用问题的分析与设计,定义各个功能代理的相互关系;二是设计底层单个代理的推理、协调、通讯机制。Zeus系统为了让用户能够迅速的开发多代理应用系统,已经提供了尽量完备的单个代理的功能体系与多代理协调与通讯机制。用户只需要关注特定应用问题的分析与设计,只有在必要时才需对代理的底层机制进行增强与改动。一个基于Zeus系统的多代理应用系统的系统结构如下图所示:
图一:Zeus应用系统框架图 1.2 Zeus Agent的协调求解机制 Zeus Agent作为一个完备的任务执行体,它具有消息接收与发送、目标协调求解、行为计划与调度、动作执行与监控、以及内部状态和资源管理五个大的功能模块。其中,目标协调求解是Agent的核心,它决定了Agent完成任务的途径,同时它还负责调度Agent的其他功能与内部资源,自动的完成预定的目标。 Zeus Agent通过可递归的行为转换网络图(Recursive Transition Network Graphs)来实现Agent的任务求解推理。这个网络图是由行动节点(node)与状态转换弧(arc)构成的。行动节点表示的是Agent采取某一种行动,弧则用来检验从一种状态到另一种状态的可能行。Zeus Agent缺省定义的行为转换网络图如下图所示:
图二:Zeus Agent缺省的协调求解机制
如上图所示,人们或外部程序通过设定任务目标(Goal)来触发Agent的自主求解机制,如果Agent在任务求解过程中,需要外部Agent的功能与资源,它将通过合同网络协议(Contract Net Protocol)[3],生成 外部合约(Contract)与其他Agent进行谈判(Negotiation)。Zeus系统允许用户自己定义谈判的策略,甚至进一步开发自己的Agent谈判协议。 1.3 Zeus Agent的信息表达与通讯 在Zeus系统中,系统用本体(Ontology)统一表达和管理在代理之间传递和使用的概念和定义。具体的说,它使用Fact这个Java对象及其派生出来的Java类表示和存储这些概念和定义。一个Fact由名称及其属性构成,需要在设计开发过程中事先定义。 Zeus Agent通过代理通讯语言(ACLs)进行消息传递[4]。ACL基于语言行为理论(speech act theory[5]),该理论认为人们的语言表达的一般模式是行为(Action)加上该行为的对象。Zeus定义了常用的通讯协调行为,如Query,Inform,Propose,同时它也为用户定义自己的通讯协调行为预留了扩展空间。 2. 2.问题与模型 我们以一家国内著名的个人电脑生产企业作为原型,进行供应链的多代理建模研究。该企业采用根据定货装配(Assemble-to-Order)的生产模式,在全国建有四个装配生产厂与配套仓库,企业还与专业的运输公司合作,把产品及时输送至各个代理分销商手中。为了应付产品零配件供应的意外情况以及顾客需求的突然增长,企业还要保有一定的零配件安全库存与产品的额外库存。为了应付原材料与客户需求的快速变动,企业迫切需要有一套决策支持系统,能够快速评估各种参数变动所造成的后果,发现供应链运行的瓶颈,但同时还要求系统具有良好的可拓展性,以适应由于企业自身快速的增长而带来的业务变动与机构变动。 通过分析,我们认为企业的库存水平是影响该企业效益的关键瓶颈。我们的模型将以企业的原料库存与产品库存为中心,通过模拟供应链运行,获得供应商供货提前期、产品装配延时、顾客需求变动、运输延时等参数对企业库存水平以及定单完成率(Order Fulfillment Rate)的影响,从而辅助决策者制定库存管理方案。同时,我们还想通过该模型,尝试利用代理的自主推理、自主决策的特性,实现供应链的自动运行。 由于Zeus系统引入了本体对象Fact的概念,我们就可以把供应链中每个实体之间的相互关系都抽象为对Fact的一种买和卖的供求关系。我们把现实供应链的实体,依据不同的业务功能以及决策权限,把它们归类、整合成为一个个的功能角色。一种功能角色将根据任务处理的复杂程度度由一个或多个Zeus Agent来实现。这种划分角色、设计代理的方式有利于企业管理者更快更好的理解模型,代理之间良好的独立性也方便使用者设置参数,同时使系统具有良好的可扩展性。
Task Name Consumed Fact Product Fact Cost Time Description checkInv PinvNote Order 0 1 定单代理向成品库存代理询问目前产品库存情况 manuPurpose ManufactPurpose Order 0 2 定单代理向生产计划代理提出生产请求 由于以上两个任务反映的是企业内部信息的传递,不存在资金成本的问题,所以它们的任务执行成本(Cost)都设为0;而信息的传递往往需要时间,尤其在现实情况中,确认定单是否有能力执行需要更长的确认期,所以我们把询问库存的延时设为1个时间单位;确定生长能力的延时设为2个时间单位。 4.3代理任务协调 Zeus 代理内部的任务触发机制是源于一个目标(Goal)的生成。一个Goal生成之后,Zeus代理自动检查自身是否能够完成该任务以及是否占有完成该任务所需的全部资源,若否,Zeus代理将把所缺少的资源,以子目标(SubGoal)的形式向相关代理发出询问,寻求合作。因此,在确定代理内部的任务处理之后,我们要描述整合以本体Fact为信息流的任务之间的相互关系,明确子目标,从而反映出代理之间的任务协调关系。