1、(2 2)7.2传统决策支持系统开发工具传统决策支持系统开发工具 7.2.1 决策支持系统开发技术与方法决策支持系统开发技术与方法 7.2.2 系统快速原型开发方法系统快速原型开发方法 7.2.3 决策支持系统的开发实践决策支持系统的开发实践 7.2.4 专家系统开发工具与实例专家系统开发工具与实例7.2.1 决策支持系统开发技术与方法决策支持系统开发技术与方法 1决策支持系统开发技术级别决策支持系统开发技术级别 决策支持系统开发分为三个技术级别:专用决策支持系统开发分为三个技术级别:专用DSS、DSS生成器、生成器、DSS工具。工具。(1)专用)专用DSS(Specific DSS)专用专用
2、DSS是实际执行决策支持系统。是实际执行决策支持系统。(2)DSS生成器(生成器(DSS Generators)DSS生成器是提供迅速而方便地开发专用生成器是提供迅速而方便地开发专用DSS的能的能力。力。(3)DSS工具工具 DSS工具可以直接用于开发专用工具可以直接用于开发专用DSS,一般,一般用通用语言、数据存取软件、模型程序包等用通用语言、数据存取软件、模型程序包等开发某个专用开发某个专用DSS程序。程序。DSS开发的技术级别开发的技术级别 2.决策支持系统开发方法决策支持系统开发方法(1)系统开发的生命周期法)系统开发的生命周期法系统开发生命周期法主要包括四个阶段:系统分系统开发生命周
3、期法主要包括四个阶段:系统分析、系统设计、系统编程调试、系统实现。这析、系统设计、系统编程调试、系统实现。这种方法也是传统的计算机信息系统的开发方法。种方法也是传统的计算机信息系统的开发方法。本章本章7.1.1节的决策支持系统开发过程基本是按节的决策支持系统开发过程基本是按照此生命周期。照此生命周期。(2)快速原型法)快速原型法 快速原型法是对生命周期法的一种改进,即把生命快速原型法是对生命周期法的一种改进,即把生命周期的四个阶段合并为一体周期的四个阶段合并为一体 利用利用DSS生成器和生成器和DSS工具,在很短的时间内开发工具,在很短的时间内开发出一个初始的可用的原型系统出一个初始的可用的原
4、型系统 根据用户的反映进行评价、修改和扩充。经过几轮根据用户的反映进行评价、修改和扩充。经过几轮循环后,得到一个相对稳定的系统。循环后,得到一个相对稳定的系统。7.2.2系统快速原型开发方法系统快速原型开发方法1.概述概述快速原型方法是根据系统的需求能迅速的产生出系快速原型方法是根据系统的需求能迅速的产生出系统的原型,该原型能表现出系统的功能、行为统的原型,该原型能表现出系统的功能、行为特性,但不一定符合其全部要求。特性,但不一定符合其全部要求。当用户对原型运行结果不满意时,能迅速修改原型,当用户对原型运行结果不满意时,能迅速修改原型,经过几次反复,将可得到用户满意的应用系统。经过几次反复,将
5、可得到用户满意的应用系统。这种方法大大缩短了系统的开发周期。这种方法大大缩短了系统的开发周期。快速原型法的实现是需要一个很好的支撑环境来保快速原型法的实现是需要一个很好的支撑环境来保证软件原型的快速生成。证软件原型的快速生成。2.决策支持系统的快速原型开发决策支持系统的快速原型开发快速原型开发技术用于决策支持系统的主要任务是:快速原型开发技术用于决策支持系统的主要任务是:按决策问题处理过程,按决策问题处理过程,快速生成对多模型的组合、快速生成对多模型的组合、知识推理以及大量数据库数据的存取并进行集成的知识推理以及大量数据库数据的存取并进行集成的决策支持系统。决策支持系统。模型库、知识库和数据库
6、是模型库、知识库和数据库是共享资源共享资源,它们为决策支,它们为决策支持系统的快速原型开发,奠定了很好的基础。持系统的快速原型开发,奠定了很好的基础。n决策支持系统快速原型开发的关键是如何快速决策支持系统快速原型开发的关键是如何快速的生成系统的总控制程序。的生成系统的总控制程序。n决策支持系统的系统控制程序需要完成:模型决策支持系统的系统控制程序需要完成:模型程序的调用和运行;知识推理的调用和运行;程序的调用和运行;知识推理的调用和运行;数据库中数据的存取;模型和知识组合形式数据库中数据的存取;模型和知识组合形式(顺序、选择、循环);人机交互等工作。(顺序、选择、循环);人机交互等工作。n系统
7、控制程序是一个比较规范的程序,它的结系统控制程序是一个比较规范的程序,它的结构相对简单,它本身没有复杂的运算和复杂的构相对简单,它本身没有复杂的运算和复杂的逻辑结构。只要能实现对系统控制程序的自动逻辑结构。只要能实现对系统控制程序的自动生成就能实现对决策支持系统的快速原型开发生成就能实现对决策支持系统的快速原型开发。7.2.3决策支持系统的开发实践决策支持系统的开发实践 7.2.3.1 综合部件的总控程序开发综合部件的总控程序开发从从DSS总控程序的设计中可知它要完成的工作为:总控程序的设计中可知它要完成的工作为:(1)控制模型程序的运行;)控制模型程序的运行;(2)控制知识推理程序的运行;)
8、控制知识推理程序的运行;(3)存取数据库的数据;)存取数据库的数据;(4)进行数据处理;)进行数据处理;(5)进行数值计算;)进行数值计算;(6)完成人机交互。)完成人机交互。n总控程序虽然只起控制作用,但它具有的功能总控程序虽然只起控制作用,但它具有的功能却要求很高,即它既要有数值计算能力又要有却要求很高,即它既要有数值计算能力又要有数据处理能力,还需要有很强的人机交互能力。数据处理能力,还需要有很强的人机交互能力。n它要达到集成模型部件、知识部件、数据部件它要达到集成模型部件、知识部件、数据部件以及人机交互形成以及人机交互形成DSS系统的作用。系统的作用。n它是一个集成语言。它是一个集成语
9、言。n从总控程序的功能要求选择计算机语言,将没从总控程序的功能要求选择计算机语言,将没有一个语言是完全适用于有一个语言是完全适用于DSS的要求。的要求。n数值计算语言缺乏对数据库的操作能力,数值计算语言缺乏对数据库的操作能力,n数据库语言的数值计算能力很差,没有指针、数据库语言的数值计算能力很差,没有指针、链表,不能完成递归运算等。链表,不能完成递归运算等。n由此可知决策支持系统发展缓慢的一个重要原由此可知决策支持系统发展缓慢的一个重要原因在于没有集成数值计算和数据处理的计算机因在于没有集成数值计算和数据处理的计算机语言。语言。两种途径两种途径 n1.研制适合于决策支持系统开发的集成语言研制适
10、合于决策支持系统开发的集成语言n我们为开发决策支持系统,研制了我们为开发决策支持系统,研制了GFKD-DSS决策支持系决策支持系统工具,自行设计了统工具,自行设计了DSS集成语言(在工具中称核心语言)集成语言(在工具中称核心语言)和数据库接口语言。和数据库接口语言。n该集成语言是将该集成语言是将PASCAL语言的核心功能(数值计算)与语言的核心功能(数值计算)与数据库语言的核心功能(数据处理)结合起来而设计的,数据库语言的核心功能(数据处理)结合起来而设计的,它为决策支持系统综合部件总控程序的编制服务。它为决策支持系统综合部件总控程序的编制服务。n通过该通过该DSS语言描述实际决策问题,对多模
11、型组合运行、语言描述实际决策问题,对多模型组合运行、大量数据库存取、数据处理、数值计算、人机交互等有机大量数据库存取、数据处理、数值计算、人机交互等有机结合,即集成模型部件、数据部件形成决策支持系统。结合,即集成模型部件、数据部件形成决策支持系统。n当时,市场上还没有数据库接口语言的情况下,我们自行当时,市场上还没有数据库接口语言的情况下,我们自行设计和完成了数据库接口语言。设计和完成了数据库接口语言。研制新语言实质上是要研制新语言的编译系统。研制新语言实质上是要研制新语言的编译系统。对新语言提出语言文法(文本)以后,需要按该对新语言提出语言文法(文本)以后,需要按该文法的语句研制编译系统。文
12、法的语句研制编译系统。这项工作的工作量是很大的。但是,研制决策支这项工作的工作量是很大的。但是,研制决策支持系统集成语言是解决决策支持系统开发的根持系统集成语言是解决决策支持系统开发的根本途径。本途径。2.以某功能较强的计算机语言为主语言,嵌入开发决以某功能较强的计算机语言为主语言,嵌入开发决策支持系统尚不足的其它语言形成宿主语言策支持系统尚不足的其它语言形成宿主语言我们研制的我们研制的“分布式多媒体智能决策支持系统平台分布式多媒体智能决策支持系统平台DM-IDSSP”是采用此途径。是采用此途径。用功能很强的用功能很强的C+语言为主语言,嵌入语言为主语言,嵌入CODEBASE数据库接口语言,再
13、嵌入多媒体表现语言(自行研数据库接口语言,再嵌入多媒体表现语言(自行研制的)和知识推理语言(自行研制的),形成了多制的)和知识推理语言(自行研制的),形成了多功能的宿主语言。功能的宿主语言。7.2.3.2 数据库接口数据库接口n数据处理是用数据库语言完成,数值计算语言数据处理是用数据库语言完成,数值计算语言编制的程序要实现对数据库数据的存取以及加编制的程序要实现对数据库数据的存取以及加工均要通过数据库接口。工均要通过数据库接口。n目前,已经有为开发数据库接口的商品软件,目前,已经有为开发数据库接口的商品软件,如如ODBC、ADO等,它们嵌入到等,它们嵌入到C语言中实现语言中实现对数据库的操作。
14、对数据库的操作。7.2.4专家系统开发工具与实例专家系统开发工具与实例7.2.4.1专家系统开发过程专家系统开发过程1.开发过程综述开发过程综述专家系统的开发一般是由专家和知识工程师共同专家系统的开发一般是由专家和知识工程师共同配合研制完成的。配合研制完成的。知识工程师是懂计算机和专家系统原理并具有编知识工程师是懂计算机和专家系统原理并具有编制专家系统程序能力的人。制专家系统程序能力的人。专家可以不懂计算机,但他一定是某个实际领域专家可以不懂计算机,但他一定是某个实际领域经验丰富的人。经验丰富的人。专家系统开发过程专家系统开发过程 原型及知识原型及知识 专专 家家知识知识工程师工程师建立建立知
15、识库知识库设计推理机设计推理机等模块等模块建立专家建立专家系统系统提问提问知识工程师用很大的代价来完成知识的收集、整理和知识工程师用很大的代价来完成知识的收集、整理和形式化,这是开发专家系统的瓶颈问题。形式化,这是开发专家系统的瓶颈问题。另一种获取知识方式,是利用知识获取工具,它帮助另一种获取知识方式,是利用知识获取工具,它帮助知识工程师很快地形成计算机的知识知识工程师很快地形成计算机的知识。知识工程师在获取知识的同时,要进行专家系统的开知识工程师在获取知识的同时,要进行专家系统的开发,把知识和推理与有关的动态数据库、人机交互发,把知识和推理与有关的动态数据库、人机交互界面等组合起来形成能像专
16、家解决实际问题那样的界面等组合起来形成能像专家解决实际问题那样的计算机程序系统。计算机程序系统。开发专家系统的途径开发专家系统的途径 知识工程师知识工程师 程序设计语言程序设计语言 专家系统专家系统 知识获取工具知识获取工具 专家系统开发工具专家系统开发工具2.程序设计语言程序设计语言(1)第一类语言第一类语言(C、PASCAL等语言等语言)这类语言具有很强的计算能力,有丰富的图形功能,这类语言具有很强的计算能力,有丰富的图形功能,递归效果也很好,用它来开发有大量数值计算,人递归效果也很好,用它来开发有大量数值计算,人机交互和图形显示的专家系统有它的优点。机交互和图形显示的专家系统有它的优点。
17、但是,由于专家系统需要一个很强的推理机,这需要但是,由于专家系统需要一个很强的推理机,这需要专门设计,在这点上比第二类语言要复杂一些。专门设计,在这点上比第二类语言要复杂一些。(2)第二类语言()第二类语言(PROLOG、LISP)这类语言是为人工智能而设计的,它们具有如下这类语言是为人工智能而设计的,它们具有如下共同功能:共同功能:搜索和匹配功能。搜索和匹配功能。回溯功能。回溯功能。解释说明功能。解释说明功能。3.知识获取工具知识获取工具(1)基于知识编辑的知识获取工具,)基于知识编辑的知识获取工具,如如KAS系统。系统。(2)基于知识库修改的知识获取工具,)基于知识库修改的知识获取工具,如
18、如TEIRESIAS系统。系统。7.2.4.2.专家系统开发工具专家系统开发工具1.专家系统开发工具结构专家系统开发工具结构专家系统开发工具一般包括两部分:开发环境和专家系统开发工具一般包括两部分:开发环境和运行环境。运行环境。开发环境开发环境是由知识的编辑、编译模块、知识库维是由知识的编辑、编译模块、知识库维护模块、事实数据库的维护模块等组成。护模块、事实数据库的维护模块等组成。运行环境运行环境由推理机、解释器、人机交互等模块组由推理机、解释器、人机交互等模块组成。成。知识库和事实数据库都是空着的知识库和事实数据库都是空着的。但知识库和事。但知识库和事实数据库都实数据库都有一定的格式要求有一
19、定的格式要求,它们是由开发,它们是由开发环境输入,给运行系统使用。环境输入,给运行系统使用。知识编辑、编知识编辑、编译译知识库查询、知识库查询、维护维护数据库查询、数据库查询、维护维护 开发环境开发环境知识库(空)知识库(空)事实数据库事实数据库(空)空)推推理理机机解解释释机机制制人人机机交交互互运行环境运行环境用用户户开开发发人人员员例如例如:EMYCIN专家系统工具专家系统工具在输入肺病诊断医疗知识后,就形成了在输入肺病诊断医疗知识后,就形成了肺病诊断肺病诊断医疗专家系统医疗专家系统PUFF。在输入地下岩石标识知识后就形成了在输入地下岩石标识知识后就形成了地下岩石标地下岩石标识专家系统识
20、专家系统LITHO。生成了生成了玉米虫害预测专家系统玉米虫害预测专家系统PLANT/CDP生成了生成了工程结构分析专家系统工程结构分析专家系统SACON等多个专家系统。等多个专家系统。2.专家系统工具与专家系统的对比专家系统工具与专家系统的对比(1)工具由开发环境与运行环境组成)工具由开发环境与运行环境组成开发环境用于建立知识库、事实数据库,并修开发环境用于建立知识库、事实数据库,并修改、查询知识库等。工具一般都指定知识表示改、查询知识库等。工具一般都指定知识表示形式。形式。对指定知识表示形式的推理机和解释器预先做对指定知识表示形式的推理机和解释器预先做好。好。运行环境目的在于支持实际系统的运
21、行。在知运行环境目的在于支持实际系统的运行。在知识库中知识输入完成以后,它和推理机结合起识库中知识输入完成以后,它和推理机结合起来就形成了实际专家系统。来就形成了实际专家系统。(2)工具的语言体系)工具的语言体系专家系统工具需要提供一套语言,用于开发专家系统。专家系统工具需要提供一套语言,用于开发专家系统。知识表示语言知识表示语言工具中的知识库是空的,但知识是具有一定格式标准工具中的知识库是空的,但知识是具有一定格式标准要求,用语言文本描述(如产生式规则的描述)。要求,用语言文本描述(如产生式规则的描述)。知识进入知识库以后,进行语法检查。完成外部知知识进入知识库以后,进行语法检查。完成外部知
22、识到内部知识的编译。识到内部知识的编译。工具操作语言工具操作语言通过操作语言使用工具中开发环境以及实现运行环境通过操作语言使用工具中开发环境以及实现运行环境的各功能,即具有对知识库的查询、修改和系统运的各功能,即具有对知识库的查询、修改和系统运行的跟踪、显示等。行的跟踪、显示等。专家系统工具的语言体系,也称为知识工程语言。专家系统工具的语言体系,也称为知识工程语言。7.2.4.3.专家系统工具专家系统工具TOES 我们研制的专家系统工具我们研制的专家系统工具TOES(Tool Of Expert System)1.系统结构系统结构TOES专家系统工具从结构上讲包括知识获取系统、专家系统框架、专
23、家系统工具从结构上讲包括知识获取系统、专家系统框架、人机交互使用环境三部分。人机交互使用环境三部分。知识获取部分包括知识编辑和知识编译;知识获取部分包括知识编辑和知识编译;专家系统框架由推理机和解释器、目标知识库及动态数据库组成。专家系统框架由推理机和解释器、目标知识库及动态数据库组成。人机交互使用环境由专家系统生成器及系统操作的有关命令组成。人机交互使用环境由专家系统生成器及系统操作的有关命令组成。TOES专家系统工具结构图专家系统工具结构图 用户用户专家专家知识工程师知识工程师知识知识编辑编辑源源知识库知识库知识知识编译编译知识知识获取获取系统系统动态动态数据库数据库推理机推理机和和解释器
24、解释器目标目标知识库知识库专家专家系统系统对数据对数据库操作库操作专家系统生成专家系统生成对知识对知识库操作库操作人机人机使用使用环境环境窗口和命令窗口和命令2.系统功能系统功能系统的主要功能包括如下几个方面:系统的主要功能包括如下几个方面:(1)知识获取)知识获取(知识库编辑知识库编辑)由专家和知识工程师总结整理出的知识,通过编由专家和知识工程师总结整理出的知识,通过编辑的功能输入和建立源知识库,辑的功能输入和建立源知识库,知识外部表示形式为:知识外部表示形式为:IF前提前提THEN结论结论CF可信度可信度知识库编译知识库编译将源知识库的外部表示形式编译成专家系统要求将源知识库的外部表示形式
25、编译成专家系统要求的内部表示形式,提高对知识搜索的运行过的内部表示形式,提高对知识搜索的运行过程。程。编译的另一个目的是检查外部知识的语法错误。编译的另一个目的是检查外部知识的语法错误。(2)专家系统的生成)专家系统的生成知识库的装入知识库的装入将目标知识库装入内存,准备形成专家系统。将目标知识库装入内存,准备形成专家系统。生成专家系统生成专家系统将目标知识库和专家系统工具已做好的推理机、将目标知识库和专家系统工具已做好的推理机、动态数据库连接在一起,形成特定领域的专家动态数据库连接在一起,形成特定领域的专家系统。系统。(3)元知识元知识专家系统中预先定义的起控制作用的知识,一般专家系统中预先
26、定义的起控制作用的知识,一般称为元知识。具体有:称为元知识。具体有:1)目标)目标 GOAL=EXPRESSION EXPRESSION描述咨询的目标,给定描述咨询的目标,给定GO命令命令时,专家系统首先寻找这个表达式的值。时,专家系统首先寻找这个表达式的值。2)多值)多值 MULTIVALUED(EXPRESSION)EXPRESSION可以有多值,当一个确定的值可以有多值,当一个确定的值求得后,专家系统将继续寻找下一个值。求得后,专家系统将继续寻找下一个值。3)提问句)提问句 QUESTION(EXPRESSION)=TEXT TEXT是提问表达式所用的信息。是提问表达式所用的信息。TEX
27、T必须是符号串,必须是符号串,提供的回答将受到该表达式的合法值域的检查。提供的回答将受到该表达式的合法值域的检查。4)合法值)合法值 LEGALVALS(EXPRESSION)=LIST LIST表中的元素是该表达式可接受的值。表中的元素是该表达式可接受的值。5)改变推理路径)改变推理路径 WHENFOUND(EXPRESSION)=LIST当求得当求得EXPRESSION的值后,立即求的值后,立即求LIST中的值。中的值。8.4.1.4工具的应用工具的应用1.实例专家系统实例专家系统对已完成的专家系统(取自论文和资料)所提供的对已完成的专家系统(取自论文和资料)所提供的知识,我们用知识,我们
28、用TOES工具重新生成专家系统,对工具重新生成专家系统,对比原来专家系统,效果相同。比原来专家系统,效果相同。(1)弹簧振动建模专家系统)弹簧振动建模专家系统该专家系统的知识由清华大学自动化系熊光楞同志该专家系统的知识由清华大学自动化系熊光楞同志的论文的论文“计算机辅助专家系统计算机辅助专家系统”而来。而来。用用TOES工具生成的专家系统的推理效果和论文中工具生成的专家系统的推理效果和论文中的实例相同。的实例相同。(2)北方暴雨预报专家系统)北方暴雨预报专家系统该专家系统的知识取自北京市气象局吴高任同志该专家系统的知识取自北京市气象局吴高任同志的论文的论文“北京地区区域性暴雨专家系统北京地区区
29、域性暴雨专家系统”暴雨是北京地区夏季重要的灾害性天气。该专家暴雨是北京地区夏季重要的灾害性天气。该专家系统能对北京地区夏季(系统能对北京地区夏季(7月、月、8月)月)08时气时气象资料来预报未来象资料来预报未来24小时(小时(0808时)的区时)的区域性暴雨。域性暴雨。用用TOES工具生成的专家系统达到相同的效果。工具生成的专家系统达到相同的效果。(3)WINE(酒的选择咨询)(酒的选择咨询)该实例是美国该实例是美国M.1工具列举的主要实例,对工具列举的主要实例,对WINE的的知识,用知识,用TOES工具生成的系统,达到和工具生成的系统,达到和M.1工具工具生成的系统相同的效果。且每步推导过程
30、,生成的系统相同的效果。且每步推导过程,TOES的速度都比的速度都比M.1快。快。(4)MEDIA ADVISOR(训练工具咨询)(训练工具咨询)用用TOES工具生成的专家系统,达到了文献中该实例工具生成的专家系统,达到了文献中该实例的效果。的效果。2.实际专家系统实际专家系统-马尾松毛虫防治决策专家系统马尾松毛虫防治决策专家系统马尾松毛虫防治决策专家系统是我们和中南林学院马尾松毛虫防治决策专家系统是我们和中南林学院合作完成的。合作完成的。对马尾松毛虫与天敌、寄主、环境之间的关系,防对马尾松毛虫与天敌、寄主、环境之间的关系,防治方法与整个松林内昆虫群落结构的影响,以及治方法与整个松林内昆虫群落结构的影响,以及抽样技术、预测预报及经济阈值的研究,积累了抽样技术、预测预报及经济阈值的研究,积累了大量的第一手资料。大量的第一手资料。广泛地收集了多年来各地松毛虫研究的资料及最新广泛地收集了多年来各地松毛虫研究的资料及最新成果,吸收了很多专家长期工作的实践经验,进成果,吸收了很多专家长期工作的实践经验,进行系统地整理、行系统地整理、总结形成了马尾松毛虫防治决策的系统知识。总结形成了马尾松毛虫防治决策的系统知识。利用利用TOES工具生成了该专家系统。工具生成了该专家系统。习题习题 8,9,12,13