计算机工程
COMPUTER ENGINEERING
1999年 第25卷 第12期 vol.25 No.12 1999



一种基于Agent的决策支持系统生成器新框架
刘　宏　袁　捷
　　当今,决策显现出了一些新的特性。如，影响决策结果的因素增多，与决策问题相关的信息源种类增多,信息量增大，决策问题的非结构化程度、复杂性增强等等。针对新的决策形势，决策支持系统(DSS)领域的研究人员不断提出新的观点。如，在决策支持系统的框架结构方面，为了强调对整个决策问题的管理和处理，我们曾综合了Sprague等人的D-M-D结构和Bonczek等人的L-P-K结构，从Sprague的框架出发，增设问题处理组分、问题(管理)组分和知识组分，设计了一个智能化决策支持系统生成器(IDSSG)框架[1]；为了实现信息集成，改善建模和进行知识抽取, Ba Sulin等人设计了一个基于client-broker-server框架的Intranet决策支持系统[2]；为了解决复杂决策问题和实时决策问题，也有人开始将多Agent模型引入决策支持系统。所有这些框架的提出与实现，各自适用于不同的场合，都在不同程度上满足了新的决策形势的需求。为了有利于部门之间知识资源的共享，扩大知识来源的范围，进一步提高决策支持系统的智能化程度，笔者在借鉴现有决策支持系统框架的基础上，结合计算机网络、人工智能等领域的新发展，设计了一个基于Agent的决策支持系统生成器框架。
1 基于Agent的决策支持系统生成器框架
　　(1)决策支持系统生成器(DSSG)
　　开发决策支持系统一般有两种方法：一种是，针对特定问题一次性地建立一个专用DSS，但是这种方法工作量大，开发周期长，不能满足决策的时限要求，对开发者的要求较高。另一种是，以决策支持系统生成器为基础来开发专用DSS，这种方法方便、灵活、效率高，支持反复设计过程，使专用DSS能对组织机构、外部环境、用户风格及任务的性质等情况的变化作出快速响应。
　　目前在决策支持系统生成器概念的理解上有两种观点。一种观点认为，决策支持系统生成器是一个由一些预制件和第四代语言工具构成的集成软件，DSS开发人员以它为开发环境建立专用的DSS。另一种观点认为, 决策支持系统生成器是生成专用DSS所需的基本框架，已具有辅助和支持决策用户所需的基本的体系结构和内部控制机制，但需要DSS开发人员在此基本框架下补充数据库、模型库和知识库等的具体内容，内容不同，便构成了不同的专用DSS。笔者综合了上述两种观点，认为决策支持系统生成器是一个框架性的决策支持系统开发环境，它集成了建立专用DSS所需要的预制件和基本工具，可根据目标DSS的特殊需要集成入新的预制件；但是这些预制件中有些可能只是框架性的，需由DSS开发人员补充数据库、模型库和知识库等的具体内容。
　　(2)将Agent引入决策支持系统生成器
　　研究开发决策支持系统生成器的目的就是为DSS开发人员提供一个框架性的开发环境，以便高效、灵活地开发出专用DSS。因此，为了说明为何在决策支持系统生成器中引入Agent，需先考察Agent本身及其在决策支持系统中的作用。
　　Agent是一种抽象实体，它具有自主性、社会能力、反应能力和能动性[3]。还有些人认为Agent应具有一些人类才具有的概念，如知识、学习、信念、义务等。
　　这些特性，使得Agent至少可以在解决决策支持系统在以下4个问题方面有所帮助。
　　1) Agent具有社交能力，通过Agent之间的交互，位于网络不同节点的部门之间不仅可以方便地共享数据，而且可以方便地共享模型、规则、方案和方法等资源，从而扩大决策部门知识来源的范围；并且，由于Agent具有自主性，与知识的组织、搜索和选取等有关的繁琐、机械的任务可交给相关的Agent去完成，决策用户可将大部分精力集中于决策问题本身。不仅于此，个别部门还可以将一个决策问题分解为一系列子问题交由下级或同级部门去解决，从而在一定程度上支持分布式决策过程。
　　2) Agent可以拥有本地知识，并被赋予一定的学习能力，这是Agent智能行为的体现。Agent通过个体学习或群体学习可以提高自身的性能，这包括更合理的知识结构和更有效的工作等，从而有望提高整个系统的性能。
　　3) 由于Agent具有自主性，整个系统的稳定性可以得到增强，不会因为某个子系统出错而导致整个系统崩溃。
　　4) 可以通过Agent改造、封装原有系统的部分代码，只要使其对外呈现出一种具有良定义的Agent行为，就可将之集成到基于Agent的新系统中去，从而在一定程度上保护了在原有系统上的投资。基于以上理由，我们把Agent作为决策支持系统生成器的基本集成单元。
　　(3)决策支持系统生成器的总体框架下面给出笔者所设计的一个基于Agent的决策支持系统生成器总体框架，如图1所示。

图1 基于Agent的决策支持系统生成器的总体框架
　　DSS开发人员可在该框架下开发分布式的专用DSS，其中数据Agent、模型Agent、规则Agent和问题Agent构成一个Agent群，它是与实际生活中的一个决策部门相对应的局部决策单元。各类Agent在实际决策过程中的作用如下：问题Agent一方面和决策用户交互，支持对本地问题的描述、分解和求解以及对结果的评价，另一方面为其它部门提供知识资源、解决结构化程度较高的决策问题；数据Agent、模型Agent和规则Agent负责向本部门问题Agent提供数据、模型和规则；协调Agent响应问题Agent提出的资源请求，寻求其它部门提供所需的数据、模型或规则，并且，协调Agent还可将问题Agent提交的结构化程度较高的决策问题转交给其它部门的问题Agent去解决，待求解后将结果返回。
　　在以上述生成器为开发环境开发专用DSS的过程中，DSS开发人员可能要做两个方面的工作。一是：根据个别部门的特殊需求，利用随决策支持系统生成器一起提供的基本类库和工具开发出特殊类型的Agent,然后将新的Agent成员集成入已有系统，为决策用户提供特殊的支持。二是：补充数据Agent中的数据、模型Agent中的模型、规则Agent中的规则、问题Agent中本地字典的具体内容及其分类和索引、以及协调Agent中全局字典的具体内容及其分类和索引，从而在此决策支持系统生成器上构造出具有不同目标、资源、选择原则、学习内容等的上述5类Agent，进而构造出满足特定需要的专用DSS。
2 本框架中各类Agent的结构说明
　　(1)数据Agent、模型Agent和规则Agent
　　这3种Agent的结构相似，本文只给出它们的结构图(如图2)

图2 数据Agent、模型Agent和规则Agent的结构
　　(2)问题Agent
　　问题Agent的结构如图3。问题描述模块帮助决策用户描述决策问题。问题分解模块采用人机交互的方式将要分解的决策问题(特别是一些含有非结构化成分或复杂程度较大的决策问题)在空间上进行分解,直到得到一组结构化、可映射到结构化或仍带有一定非结构化程度的子问题,然后将这些子问题交由问题求解模块进行求解。通过查询本地字典, 问题Agent可知本地的数据Agent、模型Agent和规则Agent能否提供解决问题所需的数据、模型和规则。若本地Agent无法提供所需资源，问题求解模块可通过通信模块向协调Agent提出资源请求。问题求解模块还可将某些结构化程度较高的子问题提交给协调Agent，通过协调Agent的协调作用寻求由其它部门解决。最后，问题求解模块对子问题进行与分解"逆向"的综合和解释，得到问题的最终解，并交由评价模块对结果进行评价。若决策用户对结果不满意，可对问题进行重新描述、分解和求解，直到得到满意解为止。问题求解模块还可响应由其它部门提交的资源请求或结构化程度较高的决策问题，待求解后，通过协调Agent将结果返回给请求方。通信模块负责与协调Agent、本地数据Agent、模型Agent和规则Agent通信。


图3问题Agent的结构
　　在对决策问题进行描述、分解、求解和评价的过程中，一方面，这些模块取得问题库和本地字典中的知识；另一方面，学习模块将通过学习获得的知识存储于问题库和本地字典中。另外，问题库中存储本部门决策用户提出的决策问题及其解决方案的描述。本地字典中记录本部门有哪些知识资源，以及对这些知识资源的描述。
　　(3)协调Agent
　　协调Agent(如图4)是总体框架中的重要成分，关系到各个部门之间能否成功地共享资源和协作。协调模块接受问题Agent提交的知识请求或问题，然后按照一定规则检索全局字典，通过检索全局字典，协调模块可提供一系列的知识资源或问题解决方案供提出问题的部门(请求方)选择。在请求方给定选择结果后，协调Agent通过通信模块将请求提交给相关部门的问题Agent(服务方)求解。最后将结果返回给请求方。针对全局字典中一项知识资源或问题解决方案，权限审定模块负责审定请求方是否拥有足够的权限来享受这项服务。学习模块可以学习协调Agent的协调过程，获得与知识资源或问题解决方案使用情况相关的信息存储于全局字典中。通信模块负责与问题Agent、及其本组织以外的知识资源代理或问题求解代理的通信。

图4 协调A gent的结构
　　全局字典是协调Agent的关键资源，它立足于全局来把握所有部门的资源。在全局字典中存储了两类各个部门愿意公开以与其它部门共享的知识。一类是本部门内决策问题及其解决方案的概要信息。另一类知识是本部门内的知识资源的概要信息。
3 Agent的实现
　　图5给出了上述各类Agent的实现模型框图。其工作过程如下：信息收集器收集信息，并将收集来的信息放入信息队列；信息解释器取得信息队列中的信息，对之进行解释，然后根据自身状态调用合适的方法，执行相应的动作。

图5 Agen的实现模型框图
　　可借助分布式对象技术实现上述各类Agent及其之间的通信。分布式对象技术的基本思想是：将分布式、可互操作的对象机制引入到分布式网络系统，使得对象之间可以在网络范围内相互通信，一个对象可以以动态的Client/Server模式请求、取得另一个对象的服务。但Agent和对象是有区别的：Agent具有能动性，而对象是被动的；Agent具有自主性，而对象是受控的，对象不是根据当前的状态分析信息的含义做出适当的动作，而只是机械地执行信息规定的动作。
　　目前，在分布式对象互操作技术方面有三大标准：一个是Microsoft公司的OLE/COM/DCOM，另一个是OMG的CORBA，还有一个是Sun公司的RMI。这3种标准各有其优缺点。考虑到1)目前有很多工具可以用来创建OLE/COM/DCOM组件，如VC++、VB、Delphi和PowerBuilder等；2)OLE/COM/DCOM得到Windows操作系统的直接支持，无需购买专门的中间件或安装虚拟机；3)有大量的已被建立、商品化了的OLE/COM/DCOM组件可供使用；4)OLE/COM/DCOM拥有大量的用户群，许多开发者具有OLE开发经验；我们选择OLE/COM/DCOM来实现Agent。
　　我们在Windows NT网络环境中使用VC++5.0等工具，在OLE自动化的技术层次上实现了前述各类Agent及其之间的通信。然后，以这些Agent作为系统集成的基本单位，构造了一个决策支持系统生成器原型；并以此决策支持系统生成器原型为开发环境开发了一个试验性的专用决策支持系统。在该决策支持系统生成器原型中，各类Agent作为OLE自动化服务器来实现，而信息收集器作为OLE自动化服务器中的一个可编程对象来实现，一个Agent通过定位和激活另一个Agent的信息收集器，将信息传递给另一个Agent。这样，Agent之间便实现了"私线"方式的通信。这种通信方式的特点是直接通信，保密性好。
4 总结和展望
　　从本文给出的总体框架图可以看出，Agent是系统的基本构成单位，通过协调Agent的协调、解释作用，一个部门可以共享别的部门的知识资源；通过提高各类Agent的智能性，整个系统的智能化程度可以得到提高；通过采用Agent封装、改造和扩展原有决策支持系统的问题部件、数据部件和模型部件等，一方面使得新系统的开发有了一定的基础，另一方面使旧系统上的投资得到了一定程度的保护；该系统栖身于当前流行的网络化、分布式计算环境中，整个系统的展开更具灵活性；另外，该框架还将决策支持系统生成器概念理解上的两种观点统一了起来，对决策支持系统的发展起到一定的促进作用。如何提高各个Agent的学习能力，如何使各类Agent的结构更具合理性以及如何解决协调Agent的全局字典与问题Agent的问题库、本地字典之间的一致性，将是我们今后进一步研究的方向。
作者单位：上海大学计算机学院，上海201800
参考文献
1 Shi Zhenxia.An Intelligent Decision Support Systems Generator. Chinese Journal of Systems Engineering and Electronics,1993,4 (1):45-52 
2 Ba Sulin.A Client-broker-server Architecture for Intranet Decision Support.Decision Support Systems,1997,19(3):171-192
3 Wooldridge M.Intelligent Agents:Theory and Practice.Knowledge Engineering Reciview,1995,10(2)
