人工智能原理6

上传人:mg****85 文档编号:54880414 上传时间:2018-09-21 格式:PPT 页数:115 大小:3.93MB
返回 下载 相关 举报
人工智能原理6_第1页
第1页 / 共115页
人工智能原理6_第2页
第2页 / 共115页
人工智能原理6_第3页
第3页 / 共115页
人工智能原理6_第4页
第4页 / 共115页
人工智能原理6_第5页
第5页 / 共115页
点击查看更多>>
资源描述

《人工智能原理6》由会员分享,可在线阅读,更多相关《人工智能原理6(115页珍藏版)》请在金锄头文库上搜索。

1、2018/9/21,1,Part I 人工智能语言 Part II 专家系统,2018/9/21,2,Part I 人工智能语言,由于人工智能研究的问题的特点和解决问题的方法的特殊性,为了能方便而有效地建立人工智能系统,需要发展专门的人工智能语言。,2018/9/21,3,人工智能语言,一般来说,人工智能语言应具备如下特点: 要有符号处理能力(即非数值处理能力); 适合于结构化程序设计,编程容易;要有递归功能和回溯功能; 要有人机交互能力; 适合于推理; 要有把过程与说明式数据结构混合起来的能力,又要有辨别数据、确定控制的模式匹配机制。,2018/9/21,4,人工智能语言,在人工智能手册中介

2、绍了七种人工智能语言:LISP,PLANNER,CINNIVER,QLISP,POP2,SAIL,FUZZY。近百种人工智能语言中,只有LISP和后起之秀Prolog是人工智能研究和应用中占重要地位的两种人工智能程序设计语言。虽然国内外对这两种AI语言曾有争议,褒贬不一,但LISP和PROLOG的重要性是都不可否认的。,2018/9/21,5,人工智能语言,函数型语言LISP和逻辑型语言PROLOG都适合作符号处理,都适合于结构化程序设计(LISP提供了函数定义,prolog提供了谓词定义),都具有递归功能(prolog还具有自动回溯功能),都具有人机交互能力(prolog还特别适合于推理),

3、也都具有把过程与说明式数据结构混合起来的能力以及辨别数据、确定控制的模式匹配机制(LISP将程序与数据均表示为表,因此可以把程序作为数据处理,也可将数据当作程序来执行。Prolog用一致的数据结构“项(term)”来构造数据和程序,事实、规则和询问的表现形式都为Horn子句,执行时作统一的操作匹配。LISP的匹配函数、prolog的合一运算自动匹配、自动搜索都具有很强的模式匹配机制。)因此可以说LISP和prolog是两种较为典型的人工智能语言。,2018/9/21,6,人工智能语言,谈到LISP和PROLOG两种AI语言的重要性,我们还可以从美国AI界的权威学者、麻省理工学院教授P.H.Wi

4、nston(温斯顿)所说的一段话来体会。,2018/9/21,7,人工智能语言,概括地说,计算机语言的发展正是一个从HOW型低级语言向WHAT型高级语言进化的过程.在HOW型语言中,程序编制者必须详细说明运算是怎样(HOW)一步一步进行的;而在WHAT型语言中,程序编制者只需简单说明要做的事情是什么(WHAT) 。 现代的LISP语言是这些语言的佼佼者,因为采用Common Lisp格式的Lisp具有非凡的表现力,但是如何做某件事情仍然是有待于Lisp程序编制者来表达的东西.相反,Prolog是一种明显地冲破了HOW型语言陈规的语言, 它鼓励程序编制者去描述情况和问题,而不是那些用来解决问题的

5、详细步骤。”,2018/9/21,8,LISP语言,1、BackGround1959年,麦卡锡基于阿隆索.邱奇(Alonzo Church)的-演算和西蒙、纽厄尔首创的“表结构“,开发了著名的LISP语言(LISt Processing language or LISt Processor),成为人工智能界第一个最广泛流行的语言。,2018/9/21,9,LISP语言,2、LISP语言的特点a、计算用的是符号表达式而不是数; b、具有表处理能力,即用链表形式表示所有的数据; c、控制结构基于函数的复合,以形成更复杂的函数; d、用递归作为描述问题和过程的方法; e、用LISP语言书写的EVAL

6、函数既可作为LISP语言的解 释程序,又可以作为语言本身的形式定义; f、程序本身也同所有其他数据一样用表结构形式表示。,2018/9/21,10,LISP语言,2、LISP的符号表达式符号:以字母开头不含规定的特殊字符的字符串,相当于其他语言中的变量。原子:LISP中不可再分割的对象,如数、符号、空表。表:若干个数或符号用括号括起来就构成一个表,表中的元素用空格分开,没有元素的表称为空表,用( )或者nil表示。符号表达式:原子和表的统称。,2018/9/21,11,LISP语言,LISP的符号表达式采用前缀表示形式,即表中第一个元素是函数符号名,其余的元素是这个函数要求的运算或处理的元素。

7、例如:(setq y (* 2 3 4 ) ),2018/9/21,12,LISP语言,3、LISP语言的基本函数 (1)数值运算函数 (2)求值与赋值函数 (3)表处理函数 (4)逻辑函数 (5)条件函数 (6)自定义函数与无名函数,2018/9/21,13,LISP语言,(1)数值运算函数 a、算术运算函数:+ - * / 1+ 1- 等(setq a 10)(/ a 2 2) b、超越函数:exp expt log sqrt abs signum c、数的逻辑运算函数:logior logxor logand lognot (lognot 12) ?,2018/9/21,14,LISP语

8、言,2018/9/21,15,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) ),2018/9/21,16,LISP语言,2018/9/21,17,LISP语言,(3)表处理函数:LISP的基本数据结构是表,LISP语言最擅长的也是表。 a、取表部分内容的函数car函数:取表的第一个元素(car (a b c) acdr函数:取表中去除第一个元素的余下表(cdr (a b c) (b c)car和cdr的

9、连续作用(car (cdr (cdr (cdr (a b c d e f ) 可表示为 (cadddr (a b c d e f ),Max=4,2018/9/21,18,LISP语言,2018/9/21,19,LISP语言,b、构造表的函数,2018/9/21,20,LISP语言,c、其他表函数,2018/9/21,21,LISP语言,4、逻辑函数:只能返回真t或假nil数据类型判断函数,2018/9/21,22,LISP语言,数的比较函数 = = = /= 等值函数 equal(equal ( ) nil ) t(equal (a b c) (a b d) nil 逻辑运算函数and or

10、 not,2018/9/21,23,LISP语言,5、条件函数 if 函数(if test then else) 返回:else or nilwhen函数:(when test form* ) unless函数(unless test form* ),2018/9/21,24,LISP语言,condition函数,2018/9/21,25,LISP语言,6、自定义函数与无名函数 自定义函数,2018/9/21,26,LISP语言,6、自定义函数与无名函数 无名函数,2018/9/21,27,LISP语言,7、迭代与递归,2018/9/21,28,LISP语言,do函数,2018/9/21,29

11、,LISP语言,do函数,2018/9/21,30,LISP语言,(2)非结构化迭代,2018/9/21,31,LISP语言,2018/9/21,32,Prolog,Prolog语言最早是由法国马赛大学的Colmerauer和他的研究小组于1972年研制成功。 Prolog是当代最有影响的人工智能语言之一,由于该语言很适合表达人的思维和推理规则,在自然语言理解、机器定理证明、专家系统等方面得到了广泛的应用,已经成为人工智能应用领域的强有力的开发语言。 尽管Prolog语言有许多版本,但它们的核心部分都是一样的。Prolog的基本语句仅有三种,即事实、规则和目标三种类型的语句,且都用谓词表示,因

12、而程序逻辑性强,文法简捷,清晰易懂。另一方面,Prolog是陈述性语言,一旦给它提交必要的事实和规则之后,Prolog就使用内部的演绎推理机制自动求解程序给定的目标,而不需要在程序中列出详细的求解步骤。,2018/9/21,33,Prolog,Prolog语言接近于自然语言,文法简捷,逻辑性强,易写易读,便于学习和使用,易于正确性证明,具有一阶逻辑的推理能力,因而被应用于人工智能多个研究领域中。 Prolog语言具有下面的特点: (1)在Prolog程序中,仅含有事实、规则及询问语句,强调的是它们之间的逻辑关系,不要求给出求解问题的步骤,因而Prolog被看作是一种描述性的语言。 (2)Pro

13、log语言具有自动实现搜索、模型匹配及回溯的功能,从而实现了自动逻辑推理。 (3)Prolog的数据和程序结构统一。 (4)递归是Prolog的一个重要特征,它反映在程序及数据结构中。由于这一特征,使得Prolog可把一个大的数据结构作为一个小的程序处理。,2018/9/21,34,Prolog,、事实 事实用来说明一个问题中已知的对象和它们之间的关系。在Prolog程序中,事实由谓词名及用括号括起来的一个或几个对象组成。谓词和对象可由用户自己定义。 例如,谓词likes(bill,book). 是一个名为like的关系,表示对象bill和book之间有喜欢的关系。,2018/9/21,35,

14、Prolog,、规则 规则由几个互相有依赖性的简单句(谓词)组成,用来描述事实之间的依赖关系。从形式上看,规则由左边表示结论的后件谓词和右边表示条件的前提谓词组成。 例如,规则 bird(X):-animal(X),has(X,feather). 表示凡是动物并且有羽毛,那么它就是鸟。,2018/9/21,36,Prolog,、目标(问题) 把事实和规则写进Prolog程序中后,就可以向Prolog询问有关问题的答案,询问的问题就是程序运行的目标。目标的结构与事实或规则相同,可以是一个简单的谓词,也可以是多个谓词的组合。目标分内、外两种,内部目标写在程序中,外部目标在程序运行时由用户手工键入。

15、 例如问题 ?-student(john). 表示“john是学生吗?”,2018/9/21,37,Prolog,Prolog程序的简单例子 例1 谁是john的朋友? predicates /*谓词段,对要用的谓词名和参数进行说明*/ likes(symbol, symbol) friend(symbol, symbol) clauses /*子句段,存放所有的事实和规则*/ likes(bell,sports). /*前4行是事实*/ likes(mary,music). likes(mary,sports). likes(jane,smith). friend(john,X):-likes(X,sports),likes(X,music). /*本行是规则*/ 当上述事实与规则输入计算机后,运行该程序,用户就可以进行询问,如输入目标: friend(john,X) 即询问john的朋友是谁,这时计算机的运行结果为: X=mary (mary是john的朋友) 1 Solution (得到了一个结果),

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号