第7章决策支持系统的开发与实例(1)第7章决策支持系统的开发与实例7.1传统决策支持系统的设计与开发7.2传统决策支持系统开发工具7.3新决策支持系统的开发7.4基于客户/服务器的决策支持系统快速开发平台CS-DSSP7.5基于客户/服务器的决策支持系统实例7.6网络环境的决策支持系统的对比分析7.1决策支持系统的设计与开发7.1.1决策支持系统开发过程7.1.2决策支持系统设计7.1.3决策支持系统关键技术第(1)部分7.1.1决策支持系统开发过程DSS系统开发的主要步骤为:(1)DSS系统分析,包括确定实际决策问题目标,对系统分析论证。(2)DSS系统初步设计,包括对决策问题进行分解成多个子问题以及它们的综合。(3)DSS系统详细设计,包括各个子问题的详细设计(数据设计和模型设计)和综合设计。数据设计包括数据文件设计和数据库设计。模型设计包括模型算法设计和模型库设计。知识设计包括知识表示设计、推理机设计和知识库管理系统的设计。综合设计包括对各个子问题的综合控制设计。(4)各部件编制程序,包括①建立数据库和数据库管理系统;②编制模型程序,建立模型库、模型库管理系统;③建立知识库、编制推理机程序以及完成知识库管理系统。④编制综合控制程序(总控程序),由总控程序控制模型的运行和组合,对数据库数据的存取、计算等处理,设置人机交互等。(5)四部件集成为DSS系统,包括解决部件接口问题,由总控程序的运行实现对模型部件和数据部件的集成,形成DSS系统。确定决策目标实际决策问题DSS系统总体设计问题综合控制设计子问题控制设计问题分解子问题设计总控详细设计数据设计模型设计知识设计数据文件设计数据库设计模型库设计模型算法设计知识库设计推理机设计数据部件集成建数据库数据库管理系统模型部件集成模型库管理系统编制模型程序建模型库知识部件集成知识库管理系统编制推理机程序建知识库解决部件接口问题进行系统各部件集成形成决策支持系统编制总控程序和设置人机对话DSS集成DSS系统分析DSS初步设计DSS设计详细各部件编制程序决策支持系统(DSS)的开发流程图1.DSS系统分析确定决策目标,目标代表了方向和预期的结果。对于建立新系统,提出总的设想、途径和措施。在系统分析的基础上提出系统分析报告。2DSS的初步设计DSS系统初步设计完成系统总体设计,进行问题分解和问题综合。对问题进行分解,分解成多个子问题并进行功能分析。在系统分解的同时,对各子问题之间的关系以及它们之间的处理顺序进行问题综合设计。对于数量化比较明确的决策问题,可以采用定量的数学模型。对于数量化不明确的决策问题,可以采用知识推理的定性模型。对于比较简单的决策问题可以采用定量模型或定性模型来加以解决。对于复杂的决策问题需要把多个定量模型和定性模型结合起来。对各子问题还要进行数据设计,主要考虑到两方面:(1)数据提供辅助决策的要求。(2)为模型计算提供所需要的数据。3DSS详细设计对数据的设计,包括数据文件设计和数据库的设计。对模型的详细设计包括模型算法设计和模型库的设计对于模型的多个文件如何组织和存贮是模型库设计的主要任务。对于数学模型一般是以数学方程的形式表示。如何在计算机上实现,需要对模型方程提出算法设计,当模型在设计了有效的算法后,才能利用计算机语言编制计算机程序,在计算机上实现。对知识的详细设计包括确定知识表示形式,知识获取一般由知识工程师从领域专家那里获取。对知识的推理机实际上是对推理树的深度优先搜索。4各部件编制程序(1)数据部件的处理针对具体的实际问题,需要建立数据库。建立数据库一般包括建数据库结构和输入实际数据。利用数据库管理系统提供的语言,建立有关数据库查询、修改的数据处理程序。(2)模型部件的处理模型库管理系统现在没有成熟的软件,需要自行设计并进行程序开发。模型库的组织和存贮,一般由模型字典和模型文件组成。模型库管理系统就是对模型字典和模型文件的有效管理。模型部件的集成,主要体现在模型库和模型库管理系统的统一。(3)知识部件的处理知识部件需要建立知识库、编制推理机程序和开发知识库管理系统。知识库中除领域知识以外还需要增加元知识,帮助推理机从目标开始搜索到叶节点,向用户提问。对多知识树还需进行元知识的推理。推理机的原理是在知识树中进行深度优先搜索。知识库管理系统类似于数据库管理系统,可以自行设计和完成。(4)综合部件处理编制DSS总控程序是按总控详细流程图,DSS系统总控的计算机语言,需要有数值计算能力、数据处理能力、模型调用能力等多种能力。利用象PASCAL、C这样的语言作为宿主语言增加在DSS中不足的功能(如数据处理以及模型调用和知识推理调用等)。5.DSS集成DSS的四部件集成,首先要解决四部件之间的接口问题,然后对四部件进行集成,最后形成DSS系统。(1)接口问题最基本的接口问题是模型对数据库中数据的存取接口。第二个接口问题是总控程序对数据库的接口问题第三个接口问题是总控程序对模型的调用实际上总控对模型程序的调用需通过模型字典作桥梁,再调用模型执行程序文件。第四个接口问题是总控程序对知识推理的接口,当知识推理部件采用的语言和总控程序采用的语言是一致时,就可以直接调用。若采用是不一样的语言时,就存在两种语言的接口问题。DSS总控程序调用模型程序的运行过程图DSS总控程序模型字典模型执行程序(2)集成问题DSS总控程序是由DSS语言来完成的,也即DSS语言是一种集成语言,目前各类计算机中还未配备这种多功能的DSS语言,自行设计DSS语言,将针对这几种能力集成为一体,将能有效地完成DSS系统的集成。以C和PASCAL语言为宿主语言的基础上,增加对数据库操作的能力,设置接口程序。使它们提高到DSS集成语言的水平上,才能完成DSS总控程序的需要。(3)形成DSS系统利用DSS集成语言编制DSS总控程序,形成有机整体的DSS系统。7.1.2决策支持系统设计1.设计思想决策支持系统的系统结构是由综合部件、模型部件、知识部件、数据部件四大部件组成。决策支持系统设计主要是决策支持系统总体结构设计,它包括运行结构设计和管理结构设计。运行结构是对实际决策问题用决策支持系统原理设计的程序结构。管理结构是完成模型库管理和数据库的管理,达到多模型的共享和大量数据的共享。运行结构的关键是综合部件。决策支持系统总体结构图数据部件模型部件问题综合与人机交互总控程序(综合部件)多模型程序多数据库其它模型程序其它数据库模型库管理系统MBMS数据库管理系统DBMSDSS运行结构其它知识库知识库推理机知识库管理系统知识部件2设计内容在DSS运行结构中,最关键的是总控程序的设计,其次是模型程序的设计和推理机的设计。在DSS管理结构中最困难的是模型库管理系统和知识库管理系统的设计。1.总控程序的设计(1)对每个模型的控制运行。(2)模型间数据的加工。(3)对知识推理的控制。(4)人机交互设计。2.模型程序的设计由于模型包括的种类较多,各模型所采用的计算机语言可以不同。数学模型用数值计算语言,数据处理模型、报表模型用数据库语言。3.推理机程序的设计推理机一般采用逆向推理,这样推理目标明确,为完成知识树的逆向推理,由于知识树并不存在计算机中,需要建立一个规则栈,通过进栈和出栈来完成虚拟知识树的深度优先搜索,最后得出目标的取值。7.1.3决策支持系统的关键技术7.1.3.1建方案技术DSS建方案的主要问题是如何选择多个模型组合形成解决实际问题的方案。也可以认为该方案是解决实际问题的大模型。每个具体的小模型又涉及所需要的数据。多模型的组合表现为用模型资源和数据资源来组合成实际问题方案。模型资源和数据资源是共享决策资源,用模型资源和数据资源可以构建不同的方案,用来解决同一实际问题。7.1.3.2模型库系统如何表示模型?如何组织模型库?模型库管理系统的功能要求有哪些?这些问题就成为决策支持系统开发的关键。模型库系统的开发就由研制者自行完成。由于模型比数据复杂,模型库就要比数据库复杂得多,模型库管理系统功能随之复杂。模型库管理系统同样需要设计一套语言来完成模型库的各项管理功能,7.1.3.3接口技术1.模型部件和综合部件存取数据库的接口模型程序一般采用数值计算语言编制。不具有数据库操作功能。而数据库语言对数组运算等数值计算功能很弱,故数据库语言不适合于编制数值计算类型的模型程序。决策支持系统又需要把数值计算和数据处理二者结合起来。有效的途径是解决好模型存取数据库的接口。决策支持系统中,把所有公用的数据都放入数据库中,这便于数据库共亨,又便于数据的统一管理。模型程序用到数据时,需要通过这个接口去存取所需数据。综合部件存取数据库接口类似于模型对数据库的接口。2.综合部件对模型的接口综合部件对模型的控制运行以及多模型的组合。一般采用“顺序、选择、循环”结构以及嵌套组合结构形式来组合模型。3.综合部件对知识推理的接口知识部件是推理机对知识库中知识的推理。推理机程序采用的语言如果和综合部件采用的语言不一致时,需要解决好这个接口,综合部件才能调用知识部件。7.1.3.4综合部件的集成技术决策支持系统由“综合、模型、知识、数据”四部件组成。综合部件如何使其它三部件有机集成为系统又是一个关键技术。它要真正达到控制单模型运行以及多模型的组合运行,控制大量的数据库的存取,控制知识推理,实现DSS的系统集成。综合部件需要利用一种计算机语言,针对具体的决策问题,编制或者自动生成决策问题的总控程序,将所需要的模型库、知识库、数据库进行集成,形成一个实际的决策支持系统。可以采取两种途径来进行:(1)自行设计这种多功能的集成语言来完成决策支持系统的需要。(2)选用功能较强的计算机语言,如C、PASCAL等作为宿主语言,增加一些它不足的功能语句,如数据处理功能语句等,嵌入到宿主语言中形成一种集成语言。7.1.4决策支持系统的开发1.综合部件的总控程序开发从DSS总控程序的设计中可知它要完成的工作为:(1)控制模型程序的运行;(2)存取数据库的数据;(3)进行数据处理;(4)进行数值计算;(5)完成人机交互。总控程序既要有数值计算能力又要有数据处理能力,还需要有很强的人机交互能力。可见它是一个集成语言。为解决决策支持系统的开发,可以采用以下两种途径:1.研制适合于决策支持系统开发的集成语言我们为开发决策支持系统,研制了GFKD-DSS决策支持系统工具,其中重要组成部分是自行设计了DSS集成语言(在工具中称核心语言)。该语言是将PASCAL语言的核心功能(数值计算)与数据库语言的核心功能(数据处理)结合起来而设计的,它为决策支持系统综合部件总控程序的编制服务。研制新语言实质上是要研制新语言的编译系统。研制决策支持系统集成语言是解决决策支持系统开发的根本途径。2.以某功能较强的计算机语言为主语言,嵌入开发决策支持系统尚不足的其它语言形成宿主语言。我们在研制的“分布式多媒体智能决策支持系统平台DM-IDSSP”是采用此途径。用功能很强的C++语言为主语言,嵌入CODEBASE数据库操作语言,再嵌入多媒体表现语言(自行研制的)和知识推理语言(自行研制的),形成了多功能的宿主语言。2数据库接口目前,已经有为开发数据库的商品软件,如ODBC、ADO等,它们嵌入到C语言中实现对数据库的操作。利用这些接口软件,嵌入到主语言(如C)中,就达到了扩充主语言对数据库操作的能力。3模型库系统开发者可以根据实际决策问题的需要自行研制。习题1,2,5,7,10