2.1 专家系统
2.1.1 专家系统概述
1.定义
专家系统是一类包含知识和推理的智能计算机程序,其内部包含某领域专家水平的知识和经验,具有解决专门问题的能力。
2.发展历史
专家系统的发展分为3个时期。
(1)初创期(1965—1971年)
第一代专家系统DENLDRA和MACSMA的出现,标志着专家系统的诞生。其中,DENLDRA为推断化学分子结构的专家系统,由专家系统的奠基人、Stanford大学计算机系的Feigenbaum教授及其研究小组研制。MACSMA为用于数学运算的数学专家系统,由麻省理工学院完成。
(2)成熟期(1972—1977年)
在此期间Stanford大学研究开发了最著名的专家系统——血液感染病诊断专家系统MY-CIN,标志着专家系统从理论走向应用。另一个著名的专家系统——语音识别专家系统HEARSAY的出现,标志着专家系统从理论走向成熟。
(3)发展期(1978年至现在)
在此期间,专家系统走向应用领域,专家系统的数量增加,仅1987年研制成功的专家系统就有1000多种。
专家系统可以解决的问题一般包括解释、预测、设计、规划、监视、修理、指导和控制等。目前,专家系统已经广泛地应用于医疗诊断、语音识别、图像处理、金融决策、地质勘探、石油化工、教学、军事、计算机设计等领域。
2.1.2 专家系统的构成
专家系统主要由知识库和推理机构成,专家系统的结构如图2-1所示。
图2-1 专家系统的结构
2.1.3 专家系统的建立
1.知识库
知识库包含3类知识:
① 基于专家经验的判断性规则;
② 用于推理、问题求解的控制性规则;
③ 用于说明问题的状态、事实和概念及当前的条件和常识等的数据。
知识库包含多种功能模块,主要有知识查询、检索、增删、修改和扩充等。知识库通过人机接口与领域专家相沟通,从而实现知识的获取。
2.推理机
推理机是用于对知识库中的知识进行推理来得到结论的“思维”机构。推理机包括3种推理方式。
① 正向推理:从原始数据和已知条件得到结论。
② 反向推理:先提出假设的结论,然后寻找支持的证据,若证据存在,则假设成立。
③ 双向推理:运用正向推理提出假设的结论,运用反向推理来证实假设。
3.知识的表示
常用的知识表示方法为:产生式规则、框架、语义网络、过程。其中,产生式规则是专家系统最流行的表达方法。由产生式规则表示的专家系统又称为基于规则的系统或产生式系统。
产生式规则的表达方式为
IF E THEN H WITH CF(E,H)
式中,E表示规则的前提条件,即证据,它可以是单独命题,也可以是复合命题;H表示规则的结论部分,即假设,也是命题;CF(Certainty Factor)为规则的强度,反映当前提为真时,规则对结论的影响程度,即可信度。
4.专家系统开发语言
① C语言,人工智能语言(如Prolog,Lisp等)。
② 专家系统开发工具:已经建好的专家系统框架,包括知识表达和推理机。在运用专家系统开发工具开发专家系统时,只需要加入领域知识。
5.专家系统建立步骤
(1)知识库的设计
① 确定知识类型:叙述性知识、过程性知识、控制性知识。
② 确定知识表达方法。
③ 知识库管理系统的设计:实现规则的保存、编辑、删除、增加、搜索等功能。
(2)推理机的设计
① 选择推理方式;
② 选择推理算法:选择各种搜索算法,如深度优先搜索、广度优先搜索、启发式优先搜索等。
(3)人机接口的设计
① 设计“用户-专家系统接口”:用于咨询理解和结论解释。
② 设计“专家-专家系统接口”:用于知识库扩充及系统维护。