专家系统
专家系统是一个具有大量的专门知识与经验的程序系统,它应用人工智能技术和计算机技术,根据某领域一个或多个专家提供的知识和经验进行推理和判断,模拟人类专家的决策过程,以便解决那些需要人类专家处理的复杂问题。简而言之,专家系统是一种模拟人类专家解决领域问题的计算机程序系统。
专家系统是人工智能中最重要的也是最活跃的一个应用领域,它实现了人工智能从理论研究走向实际应用、从一般推理策略探讨转向运用专门知识的重大破。20世纪60年代初,出现了运用逻辑学和模拟心理活动的一些通用问题求解程序,它们可以证明定理和进行逻辑推理。但是这些通用方法无法解决大的实际问题,很难把实际问题改造成适合于计算机解决的形式,并且对于解题所需的巨大的搜索空间也难于处理。1965年,f.a.费根鲍姆等人在总结通用问题求解系统的成功与失败经验的基础上,结合化学领域的专门知识,研制了世界上第一个专家系统Dendral,可以推断化学分子结构。
专家系统可以解决的问题一般包括解释、预测、设计、规划、监视、修理、指导和控制等。目前,专家系统已经广泛地应用于医疗诊断、语音识别、图像处理、金融决策、地质勘探、石油化工、教学、军事、计算机设计等领域。
对专家系统可以按不同的方法分类。通常,可以按应用领域、知识表示方法、控制策略、任务类型等分类。如按任务类型来划分,常见的有解释型、预测型、诊断型、调试型、维护型、规划型、设计型、监督型、控制型、教育型等。
专家系统与传统的计算机程序系统有着完全不同的体系结构,通常它由知识库、推理机、综合数据库、知识获取机制、解释机制和人机接口等几个基本的、独立的部分所组成,其中以知识库与推理机相互分离而别具特色。专家系统的体系结构随专家系统的类型、功能和规模的不同,而有所差异。如图10-1所示为专家系统的总体架构。
图10-1 专家系统结构
1、知识库
知识库包含3类知识:
(1)基于专家经验的判断性规则。
(2)用于推理、问题求解的控制性规则。
(3)用于说明问题的状态、事实和概念,以及当前条件和常识等的数据。
知识库包含多种功能模块,主要有知识查询、检索、增删、修改和扩充等。知识
库通过人机接口与领域专家相沟通,实现知识的获取。
2、推理机
推理机是用于对知识库中的知识进行推理来得到结论的思维机构。
推理机包括如下3种推理方式:
(1)正向推理:从原始数据和已知条件得到结论。
(2)反向推理:先提出假设的结论,然后寻找支持的证据,若证据存在,则假设成立。
(3)双向推理:运用正向推理提出假设的结论,运用反向推理来证实假设。
3、知识的表示
常用的知识表示方法为:产生式规则、框架、语义网络、过程。其中,产生式规则是专家系统最流行的表达方法。由产生式规则表示的专家系统又称为基于规则的系统或产生式系统。
产生式规则的表达方式为:
IF E,THEN H, WITH CF(E,H)
其中,E表示规则的前提条件,即证据,它可以是单独命题,也可以是复合命题;H表示规则的结论部分,即假设,也是命题;CF为规则的强度,反映如果前提为真时,规则对结论的影响程度。
4、专家系统建立步骤
1)知识库的设计
(1)确定知识类型:叙述性知识、过程性知识、控制性知识。
(2)确定知识表达方法。
(3)知识库管理系统的设计:实现规则的保存、编辑、删除、增加、搜索等功能。
2)推理机的设计
(1)选择推理方式。
(2)选择推理算法:选择各种搜索算法,如深度优先搜索、广度优先搜索、启发式优先搜索等。
3)人—机接口的设计
(1)设计“用户—专家系统接口”:用于咨询理解和结论解释。
(2)设计“专家—专家系统接口”:用于知识库扩充及系统维护。
早期的专家系统采用通用的程序设计语言(如Fortran, Pascal, Basic等)和人工智能语言(如Lisp, Prolog, Smalltalk等),通过人工智能专家与领域专家的合作,直接编程来实现的。其研制周期长、难度大,但灵活实用,至今尚为人工智能专家所使用。大部分专家系统研制工作己采用专家系统开发环境或专家系统开发工具来实现,领域专家可以选用合适的工其开发自己的专家系统,大大缩短了专家系统的研制周期,从而为专家系统在各领域的广泛应用提供条件。