好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

新编第7章_专家系统课件.ppt

89页
  • 卖家[上传人]:夏日****8
  • 文档编号:328261922
  • 上传时间:2022-07-29
  • 文档格式:PPT
  • 文档大小:749.51KB
  • / 89 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 第七章交通信息管理技术第七章交通信息管理技术-专家系统专家系统 专家系统专家系统(Expert System,ES)是一种模拟人类专家解决领域问题的计算机软件系统专家系统内部含有大量的某个领域的专家水平的知识与经验,能够运用人类专家的知识和解决问题的方法进行推理和判断,模拟人类专家的决策过程,来解决该领域的复杂问题7.1专家系统概述7.1.1 专家系统研究的意义专家系统研究的意义(1)专家系统研究是计算机科学的应用和发展的需要.(2)专家系统为人类保存、传播、使用和评价知识提供了一种有效的手段.(3)专家系统研究可以产生巨大的经济效益.7.1.2 专家系统的结构与开发方法1 专家系统的结构专家系统的结构 知识库以某种存储结构存储领域专家的知识全局数据库亦称为“黑板”,它用于存储求解问题的初始数据和推理过程中得到的中间数据,以及最终的推理结论推理机推理机根据全局数据库的当前内容,从知识库中选择匹配成功的可用规则,并通过执行可用规则来修改数据库中的内容,直至推理来出问题的结论解释器解释器用于向用户解释专家系统的行为用户接口用户接口是系统与用户进行对话的界面知识获取模块知识获取模块把知识工程师提供的知识转换为知识内部表示模式存入知识库中,在知识存储的过程中,对知识进行一致性、完整性检测。

      图7.1 专家系统结构框图7.2 专家系统的开发(1)自一九六八年由费根鲍姆主持研制完成的第一个专家系统DENDRAL(质谱数据分析、推断化学分子结构的系统)以来,已经在各行各业中研制了大量的专家系统专门为专家系统设计的语言软件Lisp和Prolog也已诞生2)尽管有报道说某些专家系统的分析判断能力超过了专家水平,并创造了大量社会财富但是绝大多数的专家系统只能达到或接近专家水平3)在专家系统的研制过程中,人们越来越感到专家知识的获取并转换成计算机能够接受的形式是专家系统研究的瓶颈7.2.1 LISP语言的特点1 LISP语言的特点语言的特点 (1)函数性 (2)递归性 (3)数据与程序的一致性 (4)自动进行存储分配 (5)语法简单7.2.2 LISP语言的基本函数1 数值运算函数数值运算函数 (1)算术运算函数 算术运算函数有:加函数+、减函数-、乘函数*、除函数/、加1函数1+、减1函数1-等/等函数可对多个数或已经赋值的符号进行数值运算2)超越函数(3)数的逻辑运算函数 数的逻辑运算函数可把指定的多个十进制整数先转换成二进制数,然后把这多个二进制数的对应位进行逻辑运算,把运算结果再转换成十进制整数作为函数返回值。

      逻辑运算函数有:逻辑或运算函数logior、逻辑异或运算函数logxor、逻辑与运算函数logand、逻辑非运算函数lognot 等2 求值与赋值函数求值与赋值函数 (1)禁止求值函数 禁止求值函数quote对指定的表说明表中元素都是数例如(quote (a b c )的返回值是表(a b c)quote函数的缩写为“”2)赋值函数 赋值函数setq用于对变元赋值,对一个变元赋的值可以是一个数、一个符号表达式、一个表或者另一个变元setq函数可以对多个变元依序赋值,例如 (setq x (1 2)y x)3 表处理函数表处理函数 (1)取表部分内容的函数 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)(2)构造表的函数 cons函数:把指定的两个元素构造成一个表,如果第2个元素是一个表,则把第1个元素加到第2个元素的表头例如 (cons a (b c)(a b c)(cons (a b)(c d)(a b)c d)list函数:把指定的多个元素按顺序构造成一个表。

      例如(list a b c d)(a b c d)(list (a b)(c d)(a b)(c d)append函数:把指定的多个表拼接成一个表例如(append (a b)(c d)(a b c d )(3)其他表函数)其他表函数 list-length函数返回指定的一个表的元素个数例如 (list-length (a (b c)2 member函数表达式为 (member item list)如果item是表list中的一个元素,则member返回list中从元素item开始的余下表;否则,返回空表(),也即是返回nilmember b (a b c d))(b c d)(member (a b)(a b c d)()(member (b c)(a (b c)d)(b c)d)4 逻辑函数逻辑函数 (1)数据类型判断函数 atom函数:判断其后的对象是否是原子,若是一个原子,则返回t;否则,返回nillistp函数:判断其后的对象是否是一个表,若是一个表(包括空表),则返回t;否则,返回nilnull函数:判断其后的对象是否是一个空表,若是一个空表,则返回t;否则,返回nil2)数的比较函数 数的比较函数用于比较两个数的大小,有大于比较函数小于比较函数大于等于比较函数=小于等于比较函数等于比较函数=不等于比较函数/=若指定的两个数满足函数的比较关系,则返回t;否则,返回nil。

      3)等值函数 数的等于比较函数“=”用于比较两个数是否相等,若要判别两个表或符号是否相等,则要用等值函数equalequal (a b c)(a b c)t(equal ()nil)t(equal (a b c)(a (b c)nil (4)逻辑运算函数 and 函数:当且仅当其各元素的值均为非nil,则返回值为t;否则,返回nilor函数:当且仅当其各元素中只要有一个元素的值为非nil,则返回值为t;否则,返回nilnot函数:当且仅当其元素的值为nil,则返回值为t;否则,返回nil5 条件函数条件函数 (1)if函数函数 if函数的表达式为 (if test then else)若测试条件表达式test的值为非nil,则对表达式then求值,且if函数的返回值就是then的值;否则,对表达式else求值并作为if函数的返回值,如果没有else,则if函数返回nilif函数表达式中,else部分是可缺省的表达式中用方括号 括起来的部分表示是可缺省的2)when函数函数 when函数的表达式为 (when test form*)其中,test为测试条件表达式,form为符号表达式,form*表示可有多个符号表达式。

      若test的值为非nil,则顺序对多个form求值,且以最后一个form的值作为when函数的返回值;否则,when函数返回nil3)unless函数函数 unless函数的表达式为 (unless test form*)若测试条件表达式test的值为nil,则顺序对多个符号表达式form求值,且以最后一个form的值作为unless函数的返回值;否则,unless函数返回nil4)cond函数函数 cond函数的表达式为 (cond (exp11 exp12 )(exp21 exp22 )(expn1 expn2 )cond函数顺序对n个表进行处理,一个表(expi1 expi2 )称为一个cond分句分句每个分句中的第一个元素expi1是这个分句的测试条件表达式,其后各元素是符号表达式cond函数顺序计算各分句expi1的值,若expi1的值为非nil,则计算这个分句各表达式的值,且以最后一个表达式的值作为cond函数的返回值;若所有分句的条件表达式的值均为nil,则cond函数返回nil一种特殊情况是:若某个cond分句中只有expi1且expil的值为非nil,则cond函数返回这个expi1的非nil值。

      6 自定义函数自定义函数 derfun自定义函数的表达式为(derfun name lambda-list form*)其中 name是新函数的函数名,lambda-list是新函数name的变量表,form*是由多个表达式组成的新函数name的定义体例例7.17.1 用自定义函数用自定义函数defundefun定义比较函数定义比较函数comparecompare解解:可如下定义函数compare:(defun compare (x y)(cond (=x y)(print“numbers are same”)(x y)(print“fist is bigger”)(t (print“first is smaller”)一个新的函数被定义后就可如同LISP的基本函数一样被直接调用例如(compare (3 5)“first is smaller”7 结构迭代函数结构迭代函数 do函数的表达式为:(do (var1 init1 upd1)(var2 init2 upd2))(condition action1 action2 )form*)(condition action1 action2)是循环是否结束的判断子句,若condition的值为非nil,则循环结束,并对action1,action2,依序求值,把最后一个表达式action的值作为do函数的返回值;否则,执行循环体form*。

      例例7.47.4 用结构迭代方式来定义计算阶乘用结构迭代方式来定义计算阶乘n n!的函数!的函数factorial(factorial(n n)解解:可如下定义:(defun factorial (n)(do (i 1 (1+i)(result 1)(i n)result)(setq result (*i result)调用时,用实参代替函数factorial的形参n例如(factorial 4)248 非结构迭代函数非结构迭代函数 prog函数的表达式为 (prog (var1 init1)(var2 init2)exp1 exp2 )在表达式序列exp1,exp2,中可以有多个表达式含有go函数表达式,至少有一个表达式含有return函数表达式若没有go和return,则对各表达式顺序求值后退出prog,且函数prog的返回值为nilgo函数的表达式为(go symbol)在prog中找名为symbol的表达式(原子),若未找到,则prog函数返回出错信息;若找到,转到名为symbol的原子之后的表达式继续执行return函数的表达式为(return form)对form求值后退出prog,且函数prog的返回值为form的值。

      7.3 知识库与推理机7.3.1 产生式规则与规则库的存储结构产生式规则与规则库的存储结构7.3.2 正向推理机正向推理机7.3.3 反向推理机反向推理机7.3.1 产生式规则与规则库的存储结构1 产生式规则的存储结构 (F1F2F3)(F4F5)H1H2可等价变换为下述4条规则:R11:F1F2F3 H1 R12:F4F5 H1 R21:F1F2F3 H2 R22:F4F5 H2用与/或图表示规则的事实和结论之间的与或关系:F1F2F3F4F5H2H1图图7.3 产生式规则与产生式规则与/或或图图 产生式规则与条件语句之间存在以下根本的区别根本的区别:产生式规则具有自含性可用规则的执行将取决于产生式系统的冲突消解策略在LISP中,一条产生式规则的存储结构是一个表:(规则名(规则名 (if(条件(条件1)(条件)(条件2)(条件(条件n)(then(结论(结论1)(结论)(结论2)(结论(结论m)2 规则库的存储结构规则库的存储结构 例例7.57.5 建立动物识别专家系统的规则库,规则名分别是rule1,rule2,rule15,规则库的符号名为rulessetq rules (rule1 (if (animal has hair)若动物有毛发(F1)(then (an。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.