2.2 专家系统的特点
专家系统具有下列3个特点:
(1) 启发性
专家系统能运用专家的知识与经验进行推理、判断和决策。 (2) 透明性
专家系统能够解释本身的推理过程和回答用户提出的问题,以便让用户能够了解推理过程,提高对专家系统的信赖感。 (3) 灵活性
专家系统能不断地增长知识,修改原有知识,不断更新。由于这一特点,使得专家系统具有十分广泛的应用领域。
2.3 专家系统的优点
近十多年来,专家系统获得迅速发展,应用领域越来越广,这是专家系统的
优良性能以及对国民经济的重大作用决定的。具体地说,包括下列几个方面: (1) 专家系统能够高效率、准确、周到、迅速和不知疲倦地进行工作。 (2) 专家系统解决实际问题时不受周围环境的影响,也不可能遗漏忘记。 (3) 可以使专家的专长不受时间和空间的限制,以便推广珍贵和稀缺的专家知识与经验。
(4) 专家系统能促进各领域的发展,它使各领域专家的专业知识和经验得到总结和精炼,能够广泛有力地传播专家的知识、经验和能力。
(5) 专家系统能汇集多领域专家的知识和经验以及他们协作解决重大问题的能力,它拥有更渊博的知识、更丰富的经验和更强的工作能力。 (6) 军事专家系统的水平是一个国家国防现代化的重要标志之一。 (7) 专家系统的研制和应用,具有巨大的经济效益和社会效益。
(8) 研究专家系统能够促进整个科学技术的发展。专家系统对人工智能的各个领域的发展起了很大的促进作用,并将对科技、经济、国防、教育、社会和人民生活产生极其深远的影响。
6
3 详细介绍
3.1 专家系统的结构与类型
3.1.1 专家系统的结构
专家系统的结构是指专家系统各组成部分的构造方法和组织形式。系统结构选择恰当与否,是与专家系统的适用性和有效性密切相关的。选择什么结构最为恰当,要根据系统的应用环境和所执行任务的特点而定。图1表示专家系统的简化结构图。图2则为理想专家系统的结构图。由于每个专家系统所需要完成的任务和特点不相同,其系统结构也不尽相同,一般只具有图中部分模块。
图1 专家系统的简化结构
图2 理想专家系统的结构图
专家系统的主要组成部分归纳如下:
7
(1) 知识库(knowledge base)
知识库用于存储某领域专家系统的专门知识,包括事实、可行操作与规则等。 (2) 综合数据库(global database)
综合数据库又称全局数据库或总数据库,它用于存储领域或问题的初始数据和推理过程中得到的中间数据(信息),即被处理对象的一些当前事实。 (3) 推理机(reasoning machine)
推理机用于记忆所采用的规则和控制策略的程序,使整个专家系统能够以逻辑方式协调地工作。推理机能够根据知识进行推理和导出结论,而不是简单地搜索现成的答案。
(4) 解释器(explanator)
解释器能够向用户解释专家系统的行为,包括解释推理结论的正确性以及系统输出其它候选解的原因。 (5) 接口(interface)
接口又称界面,它能够使系统与用户进行对话,使用户能够输入必要的数据、提出问题和了解推理过程及推理结果等。系统则通过接口,要求用户回答提问,并回答用户提出的问题,进行必要的解释。
3.1.2 专家系统的类型
用于某一特定领域内的专家系统,可以划分为以下几类:
1、 诊断型专家系统:根据对症状的观察分析,推导出产生症状的原因以及排除故障方法的一类系统,如医疗、机械、经济等。
2、 解释型专家系统:根据表层信息解释深层结构或内部情况的一类系统,如地质结构分析、物质化学结构分析等。
3、 预测型专家系统:根据现状预测未来情况的一类系统,如气象预报、人口预测、水文预报、经济形势预测等。
4、 设计型专家系统:根据给定的产品要求设计产品的一类系统,如建筑设计、机械产品设计等。
5、 决策型专家系统:对可行方案进行综合评判并优选的一类专家系统。
8
6、规划型专家系统:用于制定行动规划的一类专家系统,如自动程序设计、军事计划的制定等。
7、 教学型专家系统:能够辅助教学的一类专家系统。
8、 数学专家系统:用于自动求解某些数学问题的一类专家系统。 9、 监视型专家系统:对某类行为进行监测并在必要时候进行干预的一类专家系统,如机场监视、森林监视等。
3.2 专家系统的工作方式
3.2.1 专家系统的工作过程
专家系统的基本工作流程是,用户通过人机界面回答系统的提问,推理机将用户输入的信息与知识库中各个规则的条件进行匹配,并把被匹配规则的结论存放到综合数据库中。最后,专家系统将得出最终结论呈现给用户。
在这里,专家系统还可以通过解释器向用户解释以下问题:系统为什么要向用户提出该问题(Why)?计算机是如何得出最终结论的(How)? 领域专家或知识工程师通过专门的软件工具,或编程实现专家系统中知识的获取,不断地充实和完善知识库中的知识。
3.2.2 专家系统的开发过程
1.开发步骤
采用原型技术的专家系统开发过程如下图3所示,它可分为设计初始知识库、原型系统开发与试验、知识库的改进与归纳三个主要步骤。
图3 建立专家系统的步骤
9
2.知识获取
图4 知识获取的任务
3.开发工具与环境
常用的专家系统开发工具和环境可按其性质分为程序设计语言、骨架型工具、语言型工具、开发环境及一些新型专家系统开发工具等。 (一)程序设计语言
程序设计语言包括人工智能语言和通用程序设计语言。它们是专家系统开发的最基础的语言工具。人工智能语言的主要代表有以LISP为代表的函数型语言和以PROLOG为代表的逻辑型语言等;通用程序设计语言的主要代表有C、C++和JAVA等。 (二)骨架型工具
骨架型工具也称为专家系统外壳,它是由一些已经成熟的具体专家系统演变来的。其演变方法是,抽去这些专家系统中的具体知识,保留它们的体系结构和功能,再把领域专用的界面改为通用界面,这样,就可得到相应的专家系统外壳。 (三)语言型工具
语言型工具是一种通用型专家系统开发工具,它是不依赖于任何已有专家系统,不针对任何具体领域,完全重新设计的一类专家系统开发工具。与骨架系统相比,语言型工具具有更大的灵活性和通用性,并且对数据及知识的存取和查询提供了更多的控制手段。常用的语言型工具有CLIPS和OSP等。 (四)开发环境
专家系统开发环境是一种为高效率开发专家系统而设计和实现的大型智能计算机软件系统。专家系统开发环境一般由调试辅助工具、输入输出设施、解释设施和知识编辑器4个典型部件所组成。
10