资源描述
2021-4-26 1 第五章 专家系统 1 专家系统概述 2 LISP语言 3 知识库与推理机 2021-4-26 2 专家系统概述 1、定义 专家系统(ES, Expert System)是一种模拟人类专家解决领域问题的计算机程序系统。 2021-4-26 3 专家系统概述 2、专家系统的类型 1)解释型 6)预测型 2)诊断型 7)规划型 3)调试型 8)设计型 4)维修型 9)监测型 5)教育型 10)控制型 2021-4-26 4 专家系统概述 3、专家系统的一般特点 (1)知识的汇集 (2)启发性推理 (3)推理和解释的透明性(how而在WHAT型语言中,程序编制者只需简单说明要做的事情是什么(WHAT) 。 现代的LISP语言是这些语言的佼佼者,因为采用Common Lisp格式的Lisp具有非凡的表现力,但是如何做某件事情仍然是有待于Lisp程序编制者来表达的东西.相反,Prolog是一种明显地冲破了HOW型语言陈规的语言, 它鼓励程序编制者去描述情况和问题,而不是那些用来解决问题的详细步骤。” 2021-4-26 14 LISP语言 1、BackGround 1959年,麦卡锡基于阿隆索.邱奇(Alonzo Church)的-演算和西蒙、纽厄尔首创的表结构,开发了著名的LISP语言(LISt Processing language or LISt Processor),成为人工智能界第一个最广泛流行的语言。 2021-4-26 15 LISP语言 2、LISP语言的特点 a、计算用的是符号表达式而不是数; b、具有表处理能力,即用链表形式表示所有的数据; c、控制结构基于函数的复合,以形成更复杂的函数; d、用递归作为描述问题和过程的方法; e、用LISP语言书写的EVAL函数既可作为LISP语言的解 释程序,又可以作为语言本身的形式定义;f、程序本身也同所有其他数据一样用表结构形式表示。 2021-4-26 16 LISP语言 2、LISP的符号表达式 符号:以字母开头不含规定的特殊字符的字符串,相当于其他语言中的变量。 原子:LISP中不可再分割的对象,如数、符号、空表。 表:若干个数或符号用括号括起来就构成一个表,表中的元素用空格分开,没有元素的表称为空表,用( )或者nil表示。 符号表达式:原子和表的统称。 2021-4-26 17 LISP语言 LISP的符号表达式采用前缀表示形式,即表中第一个元素是函数符号名,其余的元素是这个函数要求的运算或处理的元素。例如:(setq y (* 2 3 4 ) ) 2021-4-26 18 LISP语言 3、LISP语言的基本函数 (1)数值运算函数 (2)求值与赋值函数 (3)表处理函数 (4)逻辑函数 (5)条件函数 (6)自定义函数与无名函数 2021-4-26 19 LISP语言 (1)数值运算函数 a、算术运算函数:+ - * / 1+ 1- 等 (setq a 10) (/ a 2 2) b、超越函数:exp expt log sqrt abs signum c、数的逻辑运算函数:logior logxor logand lognot 2021-4-26 20 LISP语言 2021-4-26 21 LISP语言 (2)求值与赋值函数 a、禁止求值函数 quote (quote (a b c) (setq x (a b c) (setq x (a b c) b、赋值函数 setq c、求值函数 (values (* 2 3) (+ 4 5) ) 2021-4-26 22 LISP语言 2021-4-26 23 LISP语言 (3)表处理函数:LISP的基本数据结构是表,LISP语言最擅长的也是表。 a、取表部分内容的函数 car函数:取表的第一个元素 (car (a b c) a cdr函数:取表中去除第一个元素的余下表 (cdr (a b c) (b c) car和cdr的连续作用 (car (cdr (cdr (cdr (a b c d e f )可表示为 (cadddr (a b c d e f ) Max=4 2021-4-26 24 LISP语言 2021-4-26 25 LISP语言b、构造表的函数 2021-4-26 26 LISP语言c、其他表函数 2021-4-26 27 LISP语言4、逻辑函数:只能返回真t或假nil 数据类型判断函数 2021-4-26 28 LISP语言数的比较函数 = = = /= 等值函数 equal (equal ( ) nil ) t (equal (a b c) (a b d) nil逻辑运算函数 and or not 2021-4-26 29 LISP语言5、条件函数 if 函数 (if test then else) 返回:else or nilwhen函数: (when test form* ) unless函数 (unless test form* ) 2021-4-26 30 LISP语言condition函数 2021-4-26 31 LISP语言6、自定义函数与无名函数 自定义函数 2021-4-26 32 LISP语言6、自定义函数与无名函数 无名函数 2021-4-26 33 LISP语言7、迭代与递归 2021-4-26 34 LISP语言do函数 2021-4-26 35 LISP语言do函数 2021-4-26 36 LISP语言(2)非结构化迭代 2021-4-26 37 LISP语言 2021-4-26 38 专家系统实例动物识别系统这是一个用以识别虎、金钱豹等七种动物的小型专家系统。系统结构1、主控模块 2、创建知识库模块 3、建立数据库模块 4、推理机 5、解释机构 2021-4-26 39 创建知识库模块 用于知识获取,建立知识库,并且把各条知识用链连接起来,形成“知识库规则链表”。此外,它还对包含最终结论的规则进行检测,做上标志。建立数据库模块 用于把用户提供的已知事实以及推理中推出的新事实放入数据库中,并分别形成“已知事实链表”和“结论事实链表”。专家系统实例 2021-4-26 40 专家系统实例推理机:用于实现推理,推理中凡是被选中参加推理的规则形成“已使用规则链表”。解释机构:用于回答用户的问题,它将根据“已使用规则链表”进行解释。推理过程:采用正向推理和反向推理。 2021-4-26 41 知识库与推理机领域专家解决领域问题的能力主要体现在两个方面: 1、专家拥有大量的知识。 2、专家具有选择知识来解决问题的能力。 知识库是专家系统中必不可少的组成部分,是基于知识的推理的基础和核心 2021-4-26 42 知识库与推理机 1、产生式规则与规则库的存储产生式规则的存储结构 一条产生式规则的前件或后件可能是有限个事实或结论的合取式的析取。例如:规则R为: (F1 F2 F3) (F4 F5) H1 H2 2021-4-26 43 知识库与推理机规则R等价变换为:R11: F1 F2 F3 H1 R12: F4 F5 H1 R21: F1 F2 F3 H2R22: F4 F5 H2a.允许有前件不同但后件相同的规则。b.后件相同时,它们的前件没有包含关系。 2021-4-26 44 知识库与推理机可以用一个与/或图表示产生式的规则的事实和结论之间的与或关系。F1 F5F4F2F3 H2H1 2021-4-26 45 知识库与推理机 LISP中产生式规则的存储形式:表 (规则名 (if (条件1) (条件2). (条件n) ) (then (结论1) (结论2). (结论m) ) ) 2021-4-26 46 知识库与推理机 2、规则库的存储结构:分层结构的表 若规则库有N条规则,则规则库表就有N个顶层元素,每个顶层元素是一个规则子表,每个规则子表有3个元素,分别是规则名,规则前件和规则后件。 2021-4-26 47 知识库与推理机规则库的例子 2021-4-26 48 知识库与推理机 2021-4-26 49 知识库与推理机动物识别专家系统规则库与/或图 2021-4-26 50 知识库与推理机 3、推理机及其实现 a.正向推理 b.反向推理(自学) 2021-4-26 51 知识库与推理机正向推理过程: 根据在综合数据库中给出的已知事实,正向使用规则,即把规则的前件同当前数据库的内容进行匹配来选取可用规则,若多条规则可用,则按冲突消解策略从中选择一条规则执行,将执行规则的结论添加到综合数据库中,直至问题求解或没有可用规则。 2021-4-26 52 知识库与推理机 2021-4-26 53 知识库与推理机反向推理过程: 根据在综合数据库中给出的假设,反向使用规则,即把规则的后件同当前数据库的内容进行匹配来选取可用规则,若有多条规则可用,则按冲突消解策略从中选择一条规则,将该规则的前件添加到综合数据库中,直至问题求解或没有可用规则。 2021-4-26 54 知识库与推理机 2021-4-26 55 知识库与推理机正向推理机 用LISP语言编制的产生式系统中的综合数据库的存储结构也是一个表,我们用facts作为综合数据库表的名称。 我们首先给出正向推理机需要调用的几个函数的定义,最后给出实现的正向推理机 2021-4-26 56 知识库与推理机 2021-4-26 57 知识库与推理机 2021-4-26 58 知识库与推理机 2021-4-26 59 知识库与推理机 2021-4-26 60 知识库与推理机 2021-4-26 61 知识库与推理机 2021-4-26 62 知识库与推理机 2021-4-26 63 知识库与推理机 2021-4-26 64 解释机制与解释器 How解释 2021-4-26 65 解释机制与解释器Why解释 2021-4-26 66 专家系统工具 1、概述 80年代以来,专家系统工具不断涌现。 EMYCIN:PUFF, SACON, CLOT, HEAMED, DART, BLUEBOX, OPS:R1 2021-4-26 67 专家系统工具 2、专家系统工具分类 专家系统工具按其功能主要分为两类,一类是用于生成专家系统的工具,称为生成工具;另一类用于改善专家系统性能的工具,称为辅助工具。 (1)系统生成工具 系统生成工具主要帮助知识工程师构造专家系统中的推理机和知识库结构。 2021-4-26 68 专家系统工具 程序设计语言 LISP PROLOG C PASCAL 骨架系统 EMYCIN MYCIN 知识工程语言 OPS: Official Production System KEE: Knowledge Engineering Environment ROSIE: Rule-Oriented System for Implementing Expertise CLIPS: C Language Integrated Production System ART: Automatic Reasoning Tool 2021-4-26 69 专家系统工具 专家系统开发环境 专家系统开发环境是以一种或多种工具和方法为核心,加上与之配套的各种辅助工具和界面环境的完整的集成系统。 目前,有些知识工程语言系统已经发展成这样的集成系统,集成系统中有一组预先定义的称为组件的程序模块,每个组件实现一种人工智能技术。
展开阅读全文