《人工智能ArtificialIntelligenceP.ppt》由会员分享,可在线阅读,更多相关《人工智能ArtificialIntelligenceP.ppt(94页珍藏版)》请在三一办公上搜索。
1、人工智能Artificial Intelligence,主 讲 人:Yao ZhongE-mail:,第五章 专家系统,课前索引,【熟手与新手】对于一个从事教学工作多年的专业教师来说,当看到一道新的题目时经验丰富的老中医在诊断疑难杂症时常年工作在一线的维修工作在检查设备故障时当生物学家碰到新的生命物种时如果是初出茅庐的新手碰到复杂问题时为什么专家能够解决这些问题?计算机能否模拟专家解决这些问题?-专家系统是一类具有专门知识和经验的计算机智能程序系统。-专家系统(Expert System)是人工智能应用研究最活跃和最广泛的领域之一。,本章主要内容,【发展】I965年斯坦福大学的费根鲍姆和化学家
2、勒德贝格合作研制DENDRAL系统,使得人工智能的研究从面向基本技术和基本方法的理论研究走向解决实际问题的具体研究,从探索广泛的普遍规律转向知识的工程应用,体现知识的巨大力量。,什么是“专家”:经过不断的学习和工作,部分人在某一工作领域中积累了丰富的经验性知识以及解决问题时独有的思维方式,我们称这些有“经验”的人为该领域的专家。你能说出它们是什么动物吗?它们有什么特征?,专家系统概念,但如果是仅仅知道这些动物的特征你是否能够推断出它们是什么动物呢?你是否能够用计算机推断出它们是什么动物呢?-专家系统 专家系统就是一个具有智能特点(专门知识和经验)的计算机软件系统。它使用了某些领域的人类专家知识
3、,并将这些知识通过编程嵌入到计算机内部,采用人工智能中的知识表示和知识推理技术来模拟通常由专家才能解决的复杂问题,达到具有与专家同等解决问题能力的水平。计算机嵌入了这些知识后,可以通过友好的用户界面同用户进行交流,并允许用户向计算机提出一些问题。,专家系统概念,ES包括以下三个方面的含义:(1)ES是一种程序系统,但又具有智能,因此它不同于一般的程序系统,而是一种能运用专家知识和经验进行推理的启发式程序系统。(2)ES的智能来源于领域专家的知识、经验及解决问题的诀窍。为此,ES内部必须包含有大量专家水平的领域知识与经验,并且能够在运行过程中不断地增长新知识和修改原有知识。(3)ES所要解决的问
4、题一般是那些本来应该由领域专家才能解决的问题。,专家系统概念,一、ES结构,专家系统概念,二、ES的分类 ES都是针对某一应用领域而建立的。不同应用领域的ES,其功能、设计方法及实现技术也各不同。对ES的类型,可以有多种不同的划分方法。例如,可以按求解问题的性质分类,也可以按求解问题的要求分类,还可以按系统的体系结构分类等。1.按求解问题的性质分类(l)解释型ES;(2)预测型ES;(3)设计型ES;(4)诊断型ES;(5)规划型ES;(6)监视型ES;(7)控制型ES;(8)调试型ES;(9)教学型ES;(10)修理型ES 除了上述10种ES类型外,还有诸如决策型和管理型的ES。决策型ES是
5、对各种可能的决策方案进行综合评判和选优的一类ES。它同时具有解释、诊断、预测、规划等功能,并能对相应领域中的问题做出辅助决策和对决策做出解释。管理型ES是在管理信息系统和办公自动化系统的基础上发展起来的一类ES。,专家系统概念,2.按系统的体系结构分类(l)集中式ES:对知识和推理进行集中管理的一类ES。目前,得到成功应用的ES多属于这一类型。(2)分布式ES:指具有分布处理能力以及多ES、多知识元的协同处理能力的ES。系统中数据、知识及控制不但在逻辑上,而且在物理上都是分布的;系统中诸机构通过计算机网络实现互连,这些机构之间相互协作,可以求解单个机构难以解决,甚至不能解决的问题。目前,基于多
6、Agent的研究是分布式ES研究的重点。(3)神经网络ES:运用人工神经网络技术建造的ES,目前尚处于研究阶段。(4)符号系统与神经网络相结合的ES:把基于连接主义的神经网络与基于符号处理的ES有机结合形成的一种混合型ES。这种ES可以充分发挥神经网络与符号系统的优点,克服它们的缺点,实现优势互补。,专家系统概念,三、ES的特点 在总体上,ES具有以下一些共同特点;(1)可具有一个或多个专家的知识和经验,能以接近于人类专家的水平在特定领域工作。(2)能高效、准确、迅速地工作,不会像人类专家那样产生疲倦和不稳定。(3)使人类专家的领域知识突破了时间和空间的限制,ES程序可永久保存,并可复制任意多
7、的副本或在网上供不同地区或不同部门的人们使用。(4)能进行有效推理,包括各种精确性推理和非精确性推理等。(5)具有透明性,能以可理解的方式解释推理过程。(6)具有自学习能力,可总结规律,不断扩充和完善系统自身。(7)能提高生产率,产生巨大的社会效益、经济效益等。(8)对推动人工智能等其他学科的发展具有重大的作用。,专家系统概念,一、知识库 知识库是ES的知识存储器,用来存放求解问题的领域知识。对领域问题的专家知识,首先需要用相应的知识表示方法将其表示出来,然后再进行形式化,并经编码放入知识库中。知识库中的知识分为两大类型:一类是领域中的事实,称为事实性知识,这是一种广泛公用的知识,也即写在书本
8、上的知识及常识;另一类是启发性知识,它是领域专家在长期工作实践中积累起来的经验总结。领域专家所拥有的经验性、判定性知识,实际上是一种直觉性和诀窍性的知识。在问题求解过程中,这种知识是最难获得的,原因是不少专家很少意识到自己是如何使用这些知识解决问题的,甚至没有意识到自己在解决问题时究竟使用了多少这样的知识,而且让他们把这些直觉、诀窍、经验讲出来,本身就是一件比较困难的事情。但是,这些知识又恰恰是知识库的核心部分。,ES的基本结构,二、数据库 数据库也称为全局数据库或综合数据库,用来存储有关领域问题的事实、数据、初始状态(证据)和推理过程中得到的各种中间状态及目标等。它相当于ES的工作存储器,用
9、来存放用户回答的事实、已知的事实和由推理得到的事实。随着问题的不同,数据库的内容也可以是动态变化的。数据库存放的是该系统当前要处理对象的一些事实。例如,在医疗ES中,数据库存放的仅是当前患者的情况,如姓名、年龄、症状等及推理过程中得到的一些中间结果、病情等;在气象ES中,数据库存放的是当前气象要素,如云量、温度、气压以及推理得到的中间结果等。,ES的基本结构,三、推理机 推理机是一组用来控制、协调整个ES的程序。它根据数据库当前输入的数据,利用知识库中的知识,按一定的推理策略,去求解当前的问题、解释外部输入的事实和数据,推导出结论并向用户提示等。推理机所采用的推理方法可以是正向推理、逆向推理、
10、或正逆向结合的双向推理,并且,在这三种推理方式中,都包含有精确推理和非精确推理。对于一些大中型ES,由于其知识库中的知识数量很多,因此其推理机制由知识库管理系统和推理机两个主要部分组成。其中,知识库管理系统实现对知识库中知识的合理组织和有效管理,并能根据推理过程的需求去搜索、运用知识和对知识库中的知识做出正确的解释;而推理机则主要用于生成并控制推理的进程和使用知识库中的知识。推理机和知识库相分离,是ES的一大特点。这不仅便于对知识库的管理,而且还可以实现具有可塑性、通用性的系统。,ES的基本结构,四、解释机构 ES应该能够以用户便于接受的方式解释自己的推理过程。例如,回答用户提出的“为什么?”
11、,给用户说明“结论是如何得出的?”等。通过这种解释,既可以使ES更取信于用户,又可以帮助系统建造者发现知识库及推理机中的错误。解释机构实际上也是一组程序,它包括系统提示、人机对话、能书写规则的语言以及解释部分程序,其主要功能是解释系统本身的推理结果,回答用户的提问,使用户能够了解推理的过程及所运用的知识和数据。目前,大多数ES的解释机构都采用人机对话的交互式解释方法。,ES的基本结构,五、知识获取机构 知识获取是ES的一种辅助功能,它可为修改知识库中的原有知识和扩充新知识提供相应手段。其基本任务是把知识加入到知识库中,并负责维持知识的一致性及完整性,建立起性能良好的知识库。在不同ES中,知识获
12、取的功能和实现方法差别较大,有的系统首先由知识工程师向领域专家获取知识,然后再通过相应的知识编辑软件把知识送到知识库中;有的系统自身就具有部分学习功能,由系统直接与领域专家对话获取知识;有的系统具有较强的学习功能,可在系统运行过程中通过归纳、总结,得出新的知识。无论采取哪种方式,知识获取都是目前ES研制中的一个重要问题。,ES的基本结构,六、用户界面 用户界面是ES的另一个关键组成部分,它作为ES与外界的接口,主要用于系统和外界之间的通讯与信息交换。ES的使用者包括最终用户、领域专家、知识工程师。最终用户和领域专家一般都不是计算机专业人员,因此用户界面必须适应非计算机人员的需求,不仅应把系统的
13、输出信息转换为便于用户理解的形式,而且还应使用户能方便地操纵系统运行。用户界面应尽可能地拟人化,尽可能地使用接近于自然语言的计算机语言,并能理解和处理声音、图像等多媒体信息。,ES的基本结构,专家系统开发工具人工智能语言:LISP,Prolog,C/C+,Java专家系统外壳:又称为骨架系统,从成功应用的专家系统演变而来的。如:MYCIN-E-MYCIN PROSPECTOR的知识获取系统-KAS通用型专家系统工具:OPS系列,CLIPS(JESS):规则型 ART:规则+框架专家系统开发环境:ES开发的工具包,提供多种方便的构件,ES的开发语言与环境,一、程序设计语言 程序设计语言包括通用程
14、序设计语言和人工智能语言。它们是开发专家系统的最基础的语言工具。作为通用程序设计语言的主要代表有C、PASCAL、ADA等;作为人工智能语言的主要代表有以 LISP为代表的函数型语言,以PROLOG为代表的逻辑型语言,以及C、JAVA等为代表的面向对象语言。LISP(List Processing Language)是1960年研究出来的,在专家系统发展的早期,有许多著名的专家系统都是用这种语言开发出来的。例如 MYCIN和PROSPECTOR(勘探者)等。,ES的开发语言与环境,PROLOG(Programming in Logic)语言是1972年研制成功的一种逻辑程序设计语言。由于它具有
15、简洁的文法以及一阶逻辑的推理能力,因而被广泛地应用于人工智能的许多研究领域中。C十十语言既是一种通用程序设计语言,又是一种很好的人工智能语言,它以其强大的功能和面向对象特征,在人工智能中得到了广泛的应用。已有不少人直接用它来开发专家系统或各种专家系统工具。尤其是 Visual C十的发展,为专家系统对多媒体信息的处理、可视化界面的设计、基于网络的分布式运行等提供了一种很好的语言环境。对于基于网络的分布式多专家协同专家系统的开发,Java语言也是值得考虑的一种语言工具。,ES的开发语言与环境,专家系统工具CLIPS(1),早期的专家系统工具大都用LISP、Prolog等编程语言开发,它们的共同问
16、题是运行速度慢,可移植性差,解决复杂问题的能力差。为此,1984年美国航空航天局约翰逊空间中心(NASAs Johnson Space Center)推出CLIPS(C Language Integrated Production System)。CLIPS是一个基于Rete算法的前向推理语言,用标准C语言编写。它具有高移植性、高扩展性、强大的知识表达能力和编程方式以及低成本等特点。,专家系统工具CLIPS(2),CLIPS中的知识表示 1.字段在CLIPS中,把从键盘或文件读入的一组有特定意义的字符叫做一个“令牌(token)”,它是CLIPS的基本语言符号单位。字段(field)是由一组令
17、牌组成的,是CLIPS中知识表示的基本单位。字段可以是常量也可以是变量,CLIPS有七种字段,它们是CLIPS的原始数据类型:整型(Integer)、浮点型(Float)、符号型(Symbol)、字符串型(String)、外部地址(External address)、示例名(Instance name)和示例地址(Instance address)。,专家系统工具CLIPS(3),CLIPS中的知识表示 2.事实在CLIPS中,事实由关系名,后面跟着零个或多个槽(也称为符号字段)以及它们的相关值组成。事实分为两类:自定义模板事实(deftemplate fact)和有序事实(ordered f
18、act)。自定义模板结构的一般格式为:(deftemplate*)的定义可以为:(slot)|(multislot),专家系统工具CLIPS(4),CLIPS中的知识表示 3.规则在CLIPS语言中,规则表示为如下形式:(defrule*;Left-Hand Side(LHS)of the rule*);Right-Hand Side(RHS)of the rule其中,rule-name为规则名,patterns为一组模式,actions为一组动作,CLIPS结构图,WORKINGMEMORY,RULE BASE,EXECUTIONENGINE,INFERENCEENGINE,PATTERN
19、MATCHER,AGENDA,CLIPS的匹配算法(1),模式一般是指组成规则前提的基本的单位,每个模式由一个或多个字段组成。可满足规则:一个规则称为可满足的,若规则的每一模式均能在当前工作存储器中找到可匹配的事实,且模式之间的同一变量能取得统一的约束值。即r:P1 P2 PnQ1Q2 Qm 若存在一个置换,使得对每一个模式Pi,在工作存储器中有一个元素Wi满足 Pi=Wi,i=1,2,n 作用在某个模式的结果称为模式实例,作用在整个规则的结果称为规则实例。,CLIPS匹配算法(2),Rete算法 是一个快速的模式匹配器,它通过在网络上存储规则信息来提高速度 由于在每一个识别动作循环中,那些没
20、有变化的数据可以不用考虑,因此可以大大提高事实与前件的匹配速度。类似Rete算法的一些快速模式匹配算法的出现,奠定了专家系统走向实用的基础。,CLIPS匹配算法(3),Rete算法的基本思想 该算法快速匹配的重要依据为:时间冗余性:工作存储器中的内容在推理过程中的变化是缓慢的,即在每个执行周期中,增删的事实只占很小的比例 结构相似性:许多规则常常包括类似的模式和模式组 Rete算法的基本思想是保存过去匹配过程中留下的全部信息,以空间代价来换取产生式系统的执行效率,CLIPS匹配算法(4),Rete匹配网络结构 Rete算法的核心是建立Rete匹配网络结构。这一网络结构由模式网络和连接网络两部分
21、构成。其中,模式网络记录每一模式各域的测试条件,每一测试条件对应于网络的一个域结点,每一模式的所有域结点依次连起来,构成模式网络的一条匹配链。在每一模式匹配链的终结点上都有一个寄存器来记录所有能与该模式匹配的事实集合,即模式实例集,这种寄存器称为寄存器。,CLIPS匹配算法(5),模式网络 若两个模式的前k个域相同,则它们可以共享k个域结点。连接网络 用于检查同一规则不同模式之间因同名变量而带来的相应模式实例之间的相互约束关系,以保证同名变量取值的一致性。,CLIPS匹配算法(6),定义 称满足相互约束条件的k个模式实例为可满足的k模式实例。显然,寄存器中所有非空模式实例均为1模式实例,且是可
22、满足的 可满足的k模式实例存在寄存器k中,寄存器可以看成寄存器1。在连接网络中,每一连接点有两个输入,一个来自含有1模式实例的寄存器,另一个来自含有可满足的k模式实例集的寄存器(k=1)或寄存器k(k1),连接点指出两组输入模式实例的约束条件,输出可满足的(k+1)模式实例集,存入寄存器k+!。,CLIPS匹配算法(7),Rete网络匹配过程 Rete网络匹配过程由模式网络上的模式匹配和连接网络上的部分匹配两部分构成。在模式网络的机器内部表示中,我们把共享一个父结点的所有结点表示成一条共享链,同时,把每一模式匹配链中的结点表示成一条下拉链,于是,每一结点由共享链和下拉链指向其后继结点,模式网络
23、就是一棵可以使用典型遍历算法进行测试的二叉树。模式网络上的模式匹配过程就是上述二叉树的条件遍历过程,CLIPS 匹配算法(8),模式网络上的模式匹配过程一旦结束,便开始连接网络上的部分匹配过程,其作用是:根据每一模式寄存器的变化,激活相应的连接网络,并修改寄存器的内容。,CLIPS 匹配算法(9),Rete算法也存在很大的局限性 这对于大型专家系统,特别是专家数据库系统的实现,弄不好易导致组合爆炸 采用固定的模式连接次序,从而影响了执行效率的提高,二、开发环境 在国外已有一批较有影响的专家系统开发环境,如 KEE、GUGU等。KEE是由美国加州Intellicorp公司推出的一个集成化的专家系
24、统开发环境,它把基于框架的知识表示、基于规则的推理、逻辑表示、数据驱动的推理、面向对象的程序设计等结合在一起,可以满足各个领域开发专家系统的需求。GUGU是由微数据公司MDBS于1985年用C语言研制的一个功能很强的混合型专家系统开发环境,它包含关系数据库系统、标准的 SQL查询语言、远程通讯、多功能程序设计等多种功能。,ES的开发语言与环境,国内由中国科学院、浙江大学、武汉大学等七个单位联合开发,于1990年完成了一个专家系统开发环境天马。该系统有4部推理机,即常规推理机、规划推理机、演绎推理机及近似推理机;有3个知识获取工具,即知识库管理系统、机器学习、知识求精;有4套人机接口生成工具,即
25、窗口、图形、菜单及自然语言;有多种知识表示模式,如框架、规则及过程。应用天马环境,已经开发出了一些专家系统,如暴雨预报专家系统、长沙旅游咨询专家系统、石油测井数据专家系统等。天马是一个通用型,集成式的专家系统开发环境,是国家七五攻关的一项重大成果。自一九九零年问世以来,已经运用于农业,畜牧,铁路,医学,石油,煤矿,核能,气象,农机,水利,力学,资源,电力,旅游,国防等二十多个领域,产生了重要的经济和社会效益。获1992年国家科技进步一等奖。,ES的开发语言与环境,1977年美国斯坦福大学计算机科学家费根鲍姆(E.A.Feigenballm)在第五届国际人工智能联合会议上提出知识工程的新概念。2
26、0世纪80年代以来,在知识工程的推动下,涌现出了不少专家系统开发工具,例如EMYCIN、CLIPS(OPS5,OPS83)、G2、KEE、OKPS等。1977年,基于关幼波先生的经验,研制成功了我国第一个“中医肝病诊治专家系统”。1985年10月中科院合肥智能所熊范纶建成“砂姜黑土小麦施肥专家咨询系统”,这是我国第一个农业专家系统。中科院计算所史忠植与东海水产研究所等合作,研制了东海渔场预报专家系统。在专家系统开发工具方面,中科院数学研究所研制了专家系统开发环境“天马”,中科院计算所研制了面向对象专家系统开发工具“OKPS”。,ES的开发语言与环境,5.4.1 动物识别专家系统 1.动物识别专
27、家系统的知识库 用产生式系统鉴别动物,需要一种演绎机制,利用已知事实的集合做出新的结论,一种方法是替动物园中的每一个动物作一个产生式,使用者首先收集所有可利用的事实,然后在产生式的表中进行扫描,寻找一个在条件部分能与之匹配的产生式。一般要经过多步并生成和利用一些中间事实才能从基本事实推出结论,这样做,所包含的产生式可以比较小,容易理解,容易使用和容易产生。,ES实例,1.知识库中10条规则用Prolog语言表示:It-is(“哺乳动物”):positive(“产奶”).It-is(“哺乳动物”):positive(“有毛发”).It-is(“食肉动物”):positive(“吃肉”).It-i
28、s(“食肉动物”):positive(“有犬齿”),positive(“有爪”),positive(“眼前视”).It-is(“有蹄动物”):positive(“有蹄子”),it_is(“哺乳动物”).It-is(“有蹄动物”):positive(“反刍食物”),it_is(“哺乳动物”).animal_is(“老虎”):it_is(“哺乳动物”),it_is(“食肉动物”),positive(“黄褐色”),positive(“有黑条纹”).animal_is(“金钱豹”):it_is(“哺乳动物”),it_is(“食肉动物”),positive(“黄褐色”),positive(“有暗斑点”)
29、.animal_is(“斑马”):it_is(“有蹄动物”),positive(“有黑条纹”).animal_is(“长颈鹿”):it_is(“有蹄动物”),positive(“有长脖子”),positive(“有长腿”),positive(“有暗斑点”).,前件:肯定的,事实,证据,ES实例,后面是前件,2.数据库 在计算机中留出一些存储区间,以存放反映系统当前状态的事实,存放用户回答的事实、己知的事实和由推理而得的事实,即由己知事实推导出的假设成立时,也作为事实。如用下列语句可通过问答建立动物识别专家系统动态数据库:positive(X):ask(X).ask(X):write(X,”吗?
30、”),readln(Reply),remember(X,Reply).当内部目标和 animal_js(“老虎”)匹配时,首先要满足条件it_is(“哺乳动物”),也即要满足positive(“产奶”),这时搜索数据库没有发现这个事实,系统立即转入询问,通过谓词readln(Reply)从键盘输入“yes”或“no”,用自定义谓词 remember(X,Reply)来肯定产奶或否定产奶,从而达到增加某个新数据或否定某个数据的目的。,ES实例,3.知识表示 知识的表达形式应该自然简单、精确,又容易存取。在Prolog专家系统中,知识通常用以下两种方法之一来表示:-把事实和数据(事实性知识)分类,
31、放到Prolog规则库中。这种表示实用于基于规则的专家系统。在基于规则的专家系统中,肯定的结果是一个产生式规则的动作,这些产生式规则由输入数据激活。-把事实和数据构成子句,形成子句知识库。这种子句表示实用于基于逻辑的专家系统,在基于逻辑的专家系统中,知识库是由说明事实的谓词逻辑子句组成,有一个可以由输入数据流激活的规则集,如上例的动物识别专家系统的四种动物可用如下Prolog语句表示:,ES实例,rule(1,“老虎”,1,2,3,4)rule(2,“金钱豹”,l,2,3,5)rule(3,“斑马”,4,6)rule(4,“长颈鹿”,5,6,7,8)condition(1,“哺乳动物”)con
32、dition(2,“食肉动物”)condition(3,“黄褐色”)condition(4,“有黑条纹”)condition(5,“有暗斑点”)condition(6,“有蹄动物”)condition(7,“有长脖子”)condition(8,“长腿”),Condition:条件,ES实例,4推理机 推理机是一组函数,本例既有正向推理机又有反向推理机,都是用精确推理。l)正向推理 用户首先提供一批事实,存放到数据库中,然后推理机进行工作。推理机用这批事实与知识库中规则的前提进行匹配。把匹配成功的规则的结论部分作为新的事实加到数据库中去。再用更新后的数据库中的所有事实,重复上述、二步,如此反复进
33、行,直到得出结论(答案)或不再有新的事实加到数据库为止。例如,用户输入一批事实:动物有暗斑点、长脖子、长腿、产奶、有蹄子,要求系统判断这是一个什么动物?,ES实例,推理机利用这批事实来匹配规则,方法一般是将第一条规则的前提部分取出来,验证一下这些前提是否在数据库中,若都在,匹配成功,不然就取第二条规则进行匹配,如此下去。首先,成功地匹配了第一条规则it_is(“哺乳动物”),于是把该规则的结论“哺乳动物”加到数据库中去;接着又成功地匹配了规则it_is(“有蹄动物”),因为数据库中有:哺乳动物及有蹄子,满足该规则的前提,于是把该规则的结论“有蹄动物”加到数据库中去;接着又成功地匹配了规则ani
34、mal_is(“长颈鹿”),于是得出结论:这个动物是长颈鹿。当一条规则匹配成功之后,不仅将其结论部分加入到数据库,而且还要记录下这条规则,当推理结束时,以备解释显示调用规则的轨迹。,ES实例,设计一个正向推理机就是设计一组程序,使其至少具有以下的功能:能用数据库中的事实去匹配规则的前提,若匹配不成功,能自动地进行下一条规则的匹配。如何匹配最为合适,是设计专家系统者根据专业特点和知识表示等情况,需要很好考虑的问题,也就是在匹配时到底用什么策略等问题都需要考虑周全;若某条规则匹配成功了,系统能将此规则的结论部分自动加入数据库;能判断何时应结束推理;能将匹配成功的规则记录下来;,正向推理,正向推理,
35、2)反向推理 由用户或系统首先提出一批假设,然后系统逐一验证这些假设的真假性,方法是:看假设是否在数据库中,若在,则假设成立,推理结束或进行下一个假设的验证,否则,进行下一步。判断这些假设是否是证据节点,若是,系统提问用户,否则进行下一步。找出结论部分包含此假设的那些规则,把这些规则的所有前提作为新的假设。重复、步。,反向推理,反向推理,例如,用户要求系统验证一下该动物是否是老虎(此时数据库中什么也没有)。系统首先检查数据库,看其中有没有老虎这个事实,现在没有,即不满足第一步;其次检查此假设“老虎”是否是证据节点,得出结论:不是,即不满足第二步;进行第三步,在知识库中找出结论部分含有“老虎”的
36、规则,结果找出规则animal_is(“老虎”)。第四步:将该规则的四个前提条件:1.哺乳动物、2.食肉动物、3.黄褐色和4.有黑条纹都作为新的假设,逐一验证这些新假设。,反向推理,首先验证“1.哺乳动物”是否为真。前二步都不满足,即数据库中既没有“哺乳动物”,又不是证据节点。那么进行第三步,系统查出:它是如下规则的结论部分。it_is(“哺乳动物”):positive(“产奶”)it_is(“哺乳动物”):positive(“有毛发”)”于是将该两条规则的前提:“有毛发”和“产奶”作为新的假设进行验证。先验证“有毛发”是否为真,它不满足第一步。当系统进行第二步时,查出“有毛发”是证据节点,于
37、是系统就提问用户“此动物有毛发吗?”,反向推理,若用户回答“有”,则系统自动地将事实“动物有毛发”加入数据库,于是系统证实了此动物是哺乳动物,所以将“哺乳动物”这一事实自动加入数据库,并记录匹配成功的前一条规则(由于这两条规则都能推出是哺乳动物,若前一条规则为真,即已证实此动物是哺乳动物,这时系统能自动地不考察后一条规则的真假,否则,系统还要考察后一条规则)。其次验证“2.食肉动物”是否为真。前两步都不满足,进行第三步时,系统查出它是如下规则的结论部分,it_is(“食肉动物”):positive(“吃肉”)it_is(“食肉动物”):positive(“有犬齿”),positive(“有爪”
38、),positive(“眼前视”)于是将该两条规则的前提部分“吃肉”和“有犬齿”、“有爪”、“眼前视”都作为新的假设来进行逐一验证;,反向推理,先验证前一规则的前提“吃肉”是否为真,由于它是证据节点,系统问用户:“此动物吃肉吗?”,若用户回答“是”,至此,系统已证实了此动物是“食肉动物”,于是系统将此事实自动加入数据库,并记录匹配成功的前一规则。再验证“3.黄褐色”是否为真。因为“黄褐色”是证据节点,所以系统问用户:“该动物是黄褐色的吗?”若用户回答“是”,则系统自动地将此事实“黄褐色”加入数据库。,反向推理,最后验证“4.有黑条纹”是否为真。因为“有黑条纹”是证据节点,所以系统问用户:“该动
39、物有黑条纹吗?”用户回答“有”,则系统将此事实“有黑条纹”自动地加入数据库。至此,系统证实了此动物是“老虎”。此时,系统将此事实“老虎”自动地加入数据库,并记录此匹配成功的规则animal_is(“老虎”)。如果上述假设“老虎”被否定,那么系统能提出下一个假设,比方是“金钱豹”来进行验证。直至某一个假设成立,系统就结束推理。若所有假设都验证了且都不成立,此时系统回答:“不认识此动物”。,反向推理,从上面例子可知,要设计一个反向推理机,至少要具有以下功能:能根据用户要求或情况提出假设;能验证此假设是否是在数据库中;能把知识库中将结论部分包含此假设的规则都找出来;能将找出来的规则的前提部分取出,并
40、作为新的假设逐条验证;能判断假设是否是证据节点,若是,能向用户提出相应的问题,并记录结果;能将匹配成功的规则记录下来;能判断何时应结束推理。,反向推理,3)反向推理机的实现 positive(X):xpositive(X),!positive(X):not(negative(X),!,ask(X)negative(X):xnegative(X),!ask(X):write(”该动物是”,X,”吗?”),readln(Reply),remember(X,Reply)remember(X,yes):asserta(xpositive(X)remember(X,no):asserta(xnegati
41、ve(X),fail clear_facts:retract(xpositive(_),fail clear_facts:retract(xnegative(_),fail推理机必须有管理用户输入的规则,并用产生式规则与其匹配,记录yes和no的回答,规则positive和negative用于将用户输入数据和产生式规则中的相应部分进行匹配。,加入谓词,取消谓词,肯定的动态数据库,否定的动态数据库,反向推理,规则remember根据yes和no的回答生成断言,供匹配使用。clear_facts规则在识别-动作循环末端除去知识库项。这里xpositive和xnegative分别是肯定和否定的动态数
42、据库,asserta和retract分别是插入和删除动态数据库的内部谓词。当系统搜索到没有某个事实,就会启动上述推理机(语句),通过人机对话对事实进行肯定或否定,并把肯定或否定结果放入动态数据库,以保证问过的问题不会再问。不管是正向推理机还是反向推理机,都是根据情况,用某种程序语言实现的。,反向推理,6.2 ES的基本结构 ES的结构是指ES各组成部分的构造方法和组织形式。一个最基本的ES应由知识库、数据库、推理机、解释机构、知识获取机构和用户界面6个部分所组成。,回忆-ES的基本结构,5解释部分 本例中仅能回答下列两个问题。(1)怎么得出这个结论的?系统回答这个问题是通过打印(或屏幕显示)展
43、示推导这个结论所用的规则。例如若用户问:“为什么说该动物是金钱豹呢?”系统回答:“由于你告诉动物有毛发,它是哺乳动物;又由于你告诉它吃肉,所以它又是食肉动物;由于它是哺乳动物、食肉动物,且你告知是黄褐色的,又有暗斑点,所以它是金钱豹。”(2)为什么问我这个问题?系统根据推理过程,解释问这个问题的原因。若用户提出:“为什么问我:动物吃肉?”系统就会回答:“我为了推出该动物是金钱豹,我首先看它是否是哺乳动物,根据你的回答,这个结论是对的,于是我要考虑它是否是食肉动物,因为只要它吃肉,它就是食肉动物,所以我要问你这个问题。”,ES实例,对于一般的专家系统,它到底应该能回答哪些问题?在设计专家系统时,
44、就应该与领域专家商量好。因为到目前为止,计算机对自然语言的理解(即能听懂人说的话),还是很有局限性的。因此计算机只能回答你预先设计好的问题。专家系统的解释部分,至少应有以下功能:能分辨出用户问的是什么问题;能从推理记录中找出答案来。6知识获取部分 知识获取部分也称学习功能,这是为了向专家获取新规则或修改已有的不适用或有错误的规则。通过这个手段,可以不断增加知识库中的知识,使系统能做更多、更复杂的事,且做得更好。,ES实例,7动物识别专家系统的Prolog程序,ES实例,7动物识别专家系统的Prolog程序(续1),ES实例,7动物识别专家系统的Prolog程序(续2),ES实例,5.4.2 飞
45、机结构布局设计专家系统 假设飞机总体确定了机翼的平面形状为三角翼。机翼展弦比为2.35,机翼相对厚度平均为4.5%。机翼外形由其4个顶点的(X,Z)坐标定义,坐标的单位为m。这4个顶点为(1.219,0.9)(6.602,4.875)(7.352,4.875)(7.526,0.9)机翼上安装有3个活动翼面,包括1个前缘襟翼和2个后缘副翼。活动翼面的外形也由顶点坐标定义,分别为 襟翼:(3.133,2.315),(6.229,4.6),(6.428,4.35),(3.898,2.315)。内侧副翼:(2,6.644),(0.9,6.674),(2.602,7.451),(2.602,7.526,
46、0.9)。外侧副翼:(3,6.674,2.608),(6.713,4.875),(7.352,4.875),(7.451,2.608)。目前的有限源分析软件大多具有这些功能,ES实例,原始设计数据如下:展弦比 BWLB=2.35;平面形状 BPTY=三角翼;翼身相对位置 BWFP=下单翼;翼身连接方式 BWFF=集中连接;平面轮廓 BOUT=1.219,0.9,6.602,4.875,7.352,4.875,7.526,0.9;展长 BWEL=9.75;后掠角 BARL=53.56;根肋位置 BRRD=0.9;根弦长 BRRL=6.415;翼尖弦长 BRTL=0.75;机翼面积 BWSQ=40
47、.46;最大使用过载 BBGN=9;压心位置X BPXX=5.4;压心位置Z BPZZ=2.3;翼载 BWPN=500;平均相对厚度 BBRT=0.045;,ES实例,全机重心位置 BWCE=4.546,-0.081,0;翼型布置位置 BWID=0.90,101,1.112,7.529,活动翼面有无 BAWN=1;活动翼面个数 BAAN=3;机翼起落架有无 BWGR=0;翼内整体油箱有无 BWWT=1;翼内整体油箱个数 BTNN=1;装载要求有无 BWTT=1;操纵要求有无 BWST=0;活动翼面参数 BFLB=1,3.133,2.315,6.229,4.6,6.428,4.35,3.898,
48、2.315,2,6.644,0.9,6.674,2.602,7.451,2.602,7.526,0.9,3,6.674,2.608,6.713,4.875,7.352,4.875,7.451,2.608;安装角 BWEA=0;下反角 BBAA=0;单位面积翼重 BUWW=30;颤振速度 BWVV=680;滚转效率 BREF=0.3;,ES实例,布局设计结果,ES实例,医疗诊断系统 专家系统的一个重要应用领域就是医疗诊断系统。早在一九七一年就由斯坦福大学的EHShortiffe等研制了血液感染病医疗诊断系统MYCIN,它已成为成功的专家系统的一个典型。此外,世界上比较著名的医疗诊断系统还有青光眼
49、医疗诊断系统CASNET,内科病医疗诊断系统INTERNIST,肾病医疗诊断系统PIP,处理精神病的系统PARRY等。我国的研究者根据我国的特点,在中医专家系统方面做了大量的工作,有一些已投入实际应用。,ES实例,MYCIN系统研制发起人EHShortiffe(爱德华持肖持利夫)是哈佛大学数学系毕业生,他获得了斯坦福大学面向医学的计算机应用方面的奖学金,到斯坦福大学当研究生。他在计算机科学和医学之间的边缘领域一一医疗诊断的研究中,进行了开创性的工作。当他在一九七一年完成MYCIN系统时,他只是一名研究生,到了一九七九年成为斯坦福大学的内科副教授。一九八零年召开第二届医疗中的人工智能(AIM)学
50、术会议时,他成为大会的组织委员会主席。,ES实例,MYCIN是有关传染病诊断和治疗的咨询系统。它能教会不擅长诊治传染病的医生,怎样从患者症状出发,确定病的种类及相应的治疗方法。我们知道,传染病种类繁多,与其相应的抗生素种类也不少。要在限定的时间内确定病症,选择出恰当的治疗方法,决非易事。似乎这就是开发MYCIN系统的着眼点。,ES实例,MYCIN系统存放有大量传染病专家长期积累的知识,它们是肖特利夫与许多著名的传染病专家交谈,推理和总结得到的,他把这些知识归纳成200多条规则(后扩充至500多条)存放在计算机中,这些规则具有“如果那么”这种形式,称为产生式规则。这是目前专家系统使用得最广泛的推