《人工智能专家系统.ppt》由会员分享,可在线阅读,更多相关《人工智能专家系统.ppt(69页珍藏版)》请在课桌文档上搜索。
1、2023/3/20,1,第五章 专家系统,1 专家系统概述2 LISP语言3 知识库与推理机,2023/3/20,2,专家系统概述,1、定义 专家系统(ES,Expert System)是一种模拟人类专家解决领域问题的计算机程序系统。,2023/3/20,3,专家系统概述,2、专家系统的类型1)解释型 6)预测型2)诊断型 7)规划型3)调试型 8)设计型4)维修型 9)监测型5)教育型 10)控制型,2023/3/20,4,专家系统概述,3、专家系统的一般特点(1)知识的汇集(2)启发性推理(3)推理和解释的透明性(how&why)(4)知识的更新,2023/3/20,5,专家系统概述,4、
2、专家系统的结构,人机接口,解释器,知识库,推理机,全局数据库,2023/3/20,6,4、建造专家系统的步骤(1)认识阶段(2)概念化阶段(3)形式化阶段(4)实现阶段(5)测试阶段,专家系统概述,2023/3/20,7,认 识,测 试,概念化,形式化,实现,专家系统开发过程的瀑布模型,专家系统概述,2023/3/20,8,人工智能语言,由于人工智能研究的问题的特点和解决问题的方法的特殊性,为了能方便而有效地建立人工智能系统,需要发展专门的人工智能语言。,2023/3/20,9,人工智能语言,一般来说,人工智能语言应具备如下特点:要有符号处理能力(即非数值处理能力);适合于结构化程序设计,编程
3、容易;要有递归功能和回溯功能;要有人机交互能力;适合于推理;要有把过程与说明式数据结构混合起来的能力,又要有辨别数据、确定控制的模式匹配机制。,2023/3/20,10,人工智能语言,在人工智能手册中介绍了七种人工智能语言:LISP,PLANNER,CINNIVER,QLISP,POP2,SAIL,FUZZY。近百种人工智能语言中,只有LISP和后起之秀Prolog是人工智能研究和应用中占重要地位的两种人工智能程序设计语言。虽然国内外对这两种AI语言曾有争议,褒贬不一,但LISP和PROLOG的重要性是都不可否认的。,2023/3/20,11,人工智能语言,函数型语言LISP和逻辑型语言PRO
4、LOG都适合作符号处理,都适合于结构化程序设计(LISP提供了函数定义,prolog提供了谓词定义),都具有递归功能(prolog还具有自动回溯功能),都具有人机交互能力(prolog还特别适合于推理),也都具有把过程与说明式数据结构混合起来的能力以及辨别数据、确定控制的模式匹配机制(LISP将程序与数据均表示为表,因此可以把程序作为数据处理,也可将数据当作程序来执行。Prolog用一致的数据结构“项(term)”来构造数据和程序,事实、规则和询问的表现形式都为Horn子句,执行时作统一的操作匹配。LISP的匹配函数、prolog的合一运算自动匹配、自动搜索都具有很强的模式匹配机制。)因此可以
5、说LISP和prolog是两种较为典型的人工智能语言。,2023/3/20,12,人工智能语言,谈到LISP和PROLOG两种AI语言的重要性,我们还可以从美国AI界的权威学者、麻省理工学院教授P.H.Winston(温斯顿)所说的一段话来体会。,2023/3/20,13,人工智能语言,概括地说,计算机语言的发展正是一个从HOW型低级语言向WHAT型高级语言进化的过程.在HOW型语言中,程序编制者必须详细说明运算是怎样(HOW)一步一步进行的;而在WHAT型语言中,程序编制者只需简单说明要做的事情是什么(WHAT)。现代的LISP语言是这些语言的佼佼者,因为采用Common Lisp格式的Li
6、sp具有非凡的表现力,但是如何做某件事情仍然是有待于Lisp程序编制者来表达的东西.相反,Prolog是一种明显地冲破了HOW型语言陈规的语言,它鼓励程序编制者去描述情况和问题,而不是那些用来解决问题的详细步骤。”,2023/3/20,14,LISP语言,1、BackGround1959年,麦卡锡基于阿隆索.邱奇(Alonzo Church)的-演算和西蒙、纽厄尔首创的表结构,开发了著名的LISP语言(LISt Processing language or LISt Processor),成为人工智能界第一个最广泛流行的语言。,2023/3/20,15,LISP语言,2、LISP语言的特点a、
7、计算用的是符号表达式而不是数;b、具有表处理能力,即用链表形式表示所有的数据;c、控制结构基于函数的复合,以形成更复杂的函数;d、用递归作为描述问题和过程的方法;e、用LISP语言书写的EVAL函数既可作为LISP语言的解 释程序,又可以作为语言本身的形式定义;f、程序本身也同所有其他数据一样用表结构形式表示。,2023/3/20,16,LISP语言,2、LISP的符号表达式 符号:以字母开头不含规定的特殊字符的字符串,相当于其他语言中的变量。原子:LISP中不可再分割的对象,如数、符号、空表。表:若干个数或符号用括号括起来就构成一个表,表中的元素用空格分开,没有元素的表称为空表,用()或者n
8、il表示。符号表达式:原子和表的统称。,2023/3/20,17,LISP语言,LISP的符号表达式采用前缀表示形式,即表中第一个元素是函数符号名,其余的元素是这个函数要求的运算或处理的元素。例如:(setq y(*2 3 4),2023/3/20,18,LISP语言,3、LISP语言的基本函数(1)数值运算函数(2)求值与赋值函数(3)表处理函数(4)逻辑函数(5)条件函数(6)自定义函数与无名函数,2023/3/20,19,LISP语言,(1)数值运算函数a、算术运算函数:+-*/1+1-等(setq a 10)(/a 2 2)b、超越函数:exp expt log sqrt abs si
9、gnumc、数的逻辑运算函数:logior logxor logand lognot,2023/3/20,20,LISP语言,2023/3/20,21,LISP语言,(2)求值与赋值函数a、禁止求值函数 quote(quote(a b c)(setq x(a b c)(setq x(a b c)b、赋值函数 setqc、求值函数(values(*2 3)(+4 5),2023/3/20,22,LISP语言,2023/3/20,23,LISP语言,(3)表处理函数:LISP的基本数据结构是表,LISP语言最擅长的也是表。a、取表部分内容的函数 car函数:取表的第一个元素(car(a b c)a
10、 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,2023/3/20,24,LISP语言,2023/3/20,25,LISP语言,b、构造表的函数,2023/3/20,26,LISP语言,c、其他表函数,2023/3/20,27,LISP语言,4、逻辑函数:只能返回真t或假nil 数据类型判断函数,2023/3/20,28,LISP语言,数的比较函数=/=等值函数 equal(equal()nil)t(equal(a b c)(
11、a b d)nil逻辑运算函数 and or not,2023/3/20,29,LISP语言,5、条件函数 if 函数(if test then else)返回:else or nilwhen函数:(when test form*)unless函数(unless test form*),2023/3/20,30,LISP语言,condition函数,2023/3/20,31,LISP语言,6、自定义函数与无名函数 自定义函数,2023/3/20,32,LISP语言,6、自定义函数与无名函数 无名函数,2023/3/20,33,LISP语言,7、迭代与递归,2023/3/20,34,LISP语言
12、,do函数,2023/3/20,35,LISP语言,do函数,2023/3/20,36,LISP语言,(2)非结构化迭代,2023/3/20,37,LISP语言,2023/3/20,38,专家系统实例,动物识别系统这是一个用以识别虎、金钱豹等七种动物的小型专家系统。系统结构1、主控模块 2、创建知识库模块 3、建立数据库模块 4、推理机 5、解释机构,2023/3/20,39,创建知识库模块 用于知识获取,建立知识库,并且把各条知识用链连接起来,形成“知识库规则链表”。此外,它还对包含最终结论的规则进行检测,做上标志。建立数据库模块 用于把用户提供的已知事实以及推理中推出的新事实放入数据库中,
13、并分别形成“已知事实链表”和“结论事实链表”。,专家系统实例,2023/3/20,40,专家系统实例,推理机:用于实现推理,推理中凡是被选中参加推理的规则形成“已使用规则链表”。解释机构:用于回答用户的问题,它将根据“已使用规则链表”进行解释。推理过程:采用正向推理和反向推理。,2023/3/20,41,知识库与推理机,领域专家解决领域问题的能力主要体现在两个方面:1、专家拥有大量的知识。2、专家具有选择知识来解决问题的能力。知识库是专家系统中必不可少的组成部分,是基于知识的推理的基础和核心,2023/3/20,42,知识库与推理机,1、产生式规则与规则库的存储产生式规则的存储结构 一条产生式
14、规则的前件或后件可能是有限个事实或结论的合取式的析取。例如:规则R为:(F1F2 F3)(F4 F5)H1 H2,2023/3/20,43,知识库与推理机,规则R等价变换为:R11:F1F2 F3 H1 R12:F4 F5 H1 R21:F1F2 F3 H2R22:F4 F5 H2a.允许有前件不同但后件相同的规则。b.后件相同时,它们的前件没有包含关系。,2023/3/20,44,知识库与推理机,可以用一个与/或图表示产生式的规则的事实和结论之间的与或关系。,F1,F5,F4,F2,F3,H2,H1,2023/3/20,45,知识库与推理机,LISP中产生式规则的存储形式:表(规则名(if(
15、条件1)(条件2).(条件n)(then(结论1)(结论2).(结论m),2023/3/20,46,知识库与推理机,2、规则库的存储结构:分层结构的表 若规则库有N条规则,则规则库表就有N个顶层元素,每个顶层元素是一个规则子表,每个规则子表有3个元素,分别是规则名,规则前件和规则后件。,2023/3/20,47,知识库与推理机,规则库的例子,2023/3/20,48,知识库与推理机,2023/3/20,49,知识库与推理机,动物识别专家系统规则库与/或图,2023/3/20,50,知识库与推理机,3、推理机及其实现 a.正向推理 b.反向推理(自学),2023/3/20,51,知识库与推理机,
16、正向推理过程:根据在综合数据库中给出的已知事实,正向使用规则,即把规则的前件同当前数据库的内容进行匹配来选取可用规则,若多条规则可用,则按冲突消解策略从中选择一条规则执行,将执行规则的结论添加到综合数据库中,直至问题求解或没有可用规则。,2023/3/20,52,知识库与推理机,2023/3/20,53,知识库与推理机,反向推理过程:根据在综合数据库中给出的假设,反向使用规则,即把规则的后件同当前数据库的内容进行匹配来选取可用规则,若有多条规则可用,则按冲突消解策略从中选择一条规则,将该规则的前件添加到综合数据库中,直至问题求解或没有可用规则。,2023/3/20,54,知识库与推理机,202
17、3/3/20,55,知识库与推理机,正向推理机 用LISP语言编制的产生式系统中的综合数据库的存储结构也是一个表,我们用facts作为综合数据库表的名称。我们首先给出正向推理机需要调用的几个函数的定义,最后给出实现的正向推理机,2023/3/20,56,知识库与推理机,2023/3/20,57,知识库与推理机,2023/3/20,58,知识库与推理机,2023/3/20,59,知识库与推理机,2023/3/20,60,知识库与推理机,2023/3/20,61,知识库与推理机,2023/3/20,62,知识库与推理机,2023/3/20,63,知识库与推理机,2023/3/20,64,解释机制与
18、解释器,How解释,2023/3/20,65,解释机制与解释器,Why解释,2023/3/20,66,专家系统工具,1、概述 80年代以来,专家系统工具不断涌现。EMYCIN:PUFF,SACON,CLOT,HEAMED,DART,BLUEBOX,OPS:R1,2023/3/20,67,专家系统工具,2、专家系统工具分类 专家系统工具按其功能主要分为两类,一类是用于生成专家系统的工具,称为生成工具;另一类用于改善专家系统性能的工具,称为辅助工具。(1)系统生成工具 系统生成工具主要帮助知识工程师构造专家系统中的推理机和知识库结构。,2023/3/20,68,专家系统工具,程序设计语言 LISP
19、 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,2023/3/20,69,专家系统工具,专家系统开发环境 专家系统开发环境是以一种或多种工具和方法为核心,加上与之配套的各种辅助工具和界面环境的完整的集成系统。目前,有些知识工程语言系统已经发展成这样的集成系统,集成系统中有一组预先定义的称为组件的程序模块,每个组件实现一种人工智能技术。,
链接地址:https://www.desk33.com/p-246157.html