您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > AI人工智能 > 第10章 人工智能程序设计
人工智能基础智能基主讲:蔡自兴教授主讲:蔡自兴教授第十章人工智能程序设计第十章人工智能程序设计101符号和逻辑处理编程语言10.1符号和逻辑处理编程语言10.2LISP语言10.3PROLOG语言104专用开发工具与人工智能机10.4专用开发工具与人工智能机10.1符号和逻辑处理编程语言对符号和逻辑处理编程语言的要求对符号和逻辑处理编程语言的要求具有表结构形式便于表示知识和逻辑计算具有识别数据确定控制匹配模式和进行自具有识别数据、确定控制匹配模式和进行自动演绎的能力能够建立框架结构便于聚集各种知识和信能够建立框架结构,便于聚集各种知识和信息,并作为一个整体存取具有以昀适合于特定任务的方式把程序与说具有以昀适合于特定任务的方式把程序与说明数据结合起来的能力具有并行处理的能力310.1符号和逻辑处理编程语言现有的符号和逻辑处理语言编程语言现有的符号和逻辑处理语言编程语言图10.1逻辑型编程语言的分类410.2LISP语言10.2.1LISP的特点和数据结构LISP语言的特点主要数据结构是表的特点和数据结构主要数据结构是表特性表简单昀主要的控制结构为递归程序内外一致程序内外致能够产生更复杂的函数和解释程序对事物的约束发生在尽可能晚的时刻对事物的约束发生在尽可能晚的时刻数据和过程都可以表示成表交互方式运行510.2.1LISP的特点和数据结构数据结构数据结构原子LISP中昀小的符号单位各种性质或属性可附加到单个原子上昀重要的属性除其名字外是值表表递归地定义为括号内零个或n个元素的序列表的数据结构(CONS单元)表的数据结构(CONS单元)控制结构610.2.1LISP的特点和数据结构变量约束及其辖域变量约束及其辖域变量约束到值上建立函数辖域辖域710.2.2LISP的基本函数CAR和CDRCAR和CDRCDR返回表中除第一个元素之外的其余部分CAR返回表中的第一个元素SET和SETQSET和SETQ赋值函数SET使第二个自变量为第一个自变量的值SETQ不对第一个变量求值Q个求值810.2.2LISP的基本函数APPENDLIST和CONSAPPEND、LIST和CONSAPPEND把所有作为自变量的表内各元素串在一起LIST用自变量造出一张表,每个自变量成为用自变量造出张表每个自变量成为表中的一个元素CONS作用于一张表,在其中插入一个新的CONS作用于张表,在其中插入个新的第一元素EVALEVAL910.2.2LISP的基本函数DEFUNDEFUN建立新函数T和NIL逻辑上的真与假逻辑上的真与假AND、OR及NOTCOND条件函数条件函数PROG1010.2.2LISP的基本函数GET和PUTPROPGET和PUTPROPGET检索特征值PUTPROP存放特征值、替代特征值LAMBDALAMBDA定义匿名函数READ和PRINT对话对话1110.2.3递归和迭代递归递归执行的一部分涉及到再次执行该函数迭代①约束某些变量①约束某些变量;②测试变量以检查出口(停止)条件是否适用若适用则进行③用。若适用,则进行③;③以某种方法改变变量的值;④返回②。1210.2.4LISP编程举例LISP程序设计的般步骤LISP程序设计的一般步骤将问题用递归的表处理方式表示,即问题的概念化。根据问题求解的要求,设计问题求解的搜索根据问题求解的要求,设计问题求解的搜索推理过程。根据所设计的求解过程定义所需要的工作根据所设计的求解过程,定义所需要的工作函数。根据求解过程给出函数调用的顺序根据求解过程,给出函数调用的顺序。根据问题求解的目标和解的评价准则,给出程序结束的标志程序结束的标志。1310.3PROLOG语言10.3.1语法与数据结构项的定义语法与数据结构子句事实事实规则问题表结构表结构1410.3.2PROLOG程序设计原理匹配(Mthi)匹配(Matching)设法满足一个目标从事实和规则的顶部开始搜索。找到一个与之匹配的事实或规则的头。找不到相匹配的事实或规则的头,则目标失败。设法重新满足这一目标。设法重新满足这目标。1510.3.2PROLOG程序设计原理合(Uifiti)合一(Unification)①对事实子句(或规则)中的变量进行换名,使其不与目标中的变量同名对变量受囿表进行初始化目标中的变量同名,对变量受囿表进行初始化。②检查目标子句与事实子句(或规则)的下一个相异项是否不存在;若不存在,则结束合一过程,合一成功是否不存在;若不存在,则结束合过程,合成功,返回合一过程中产生的变量受囿表;若存在,则转③。③根据合一原则,判断目标子句与事实子句(或规则)的下一个相异项是否可合一。若可合一,就把这两项加入到变量受囿表中并对目标子句和事实子句(或加入到变量受囿表中,并对目标子句和事实子句(或规则)中的有关变量进行置换,然后转②;若不可合一,则结束合一过程,释放变量受囿表,返回不可合信息一信息。1610.3.2PROLOG程序设计原理回溯(Bktki)回溯(Backtracking)①把问题语句作为初始目标,并置其为激发状态,开始执行该目标执行该目标。②系统处于激发状态时,先为该目标保存必要的回溯信息,然后判断它是否是单一子句组成的目标。如果是息,然后判断它是否是单子句组成的目标。如果是就转③;否则就依次从左到右求解激发目标的各个子目标。当所有的子目标都得到满足时,激发目标就成功返回否则激发目标就失败返回功返回。否则,激发目标就失败返回。③系统执行一个由单一子句组成的激发目标时,就从事实规则库中取出与激发目标子句句首谓词符号相同的实规则库中取出与激发目标子句句首谓词符号相同的子句子集,从该子句子集的顶部开始查找可与激发目标合一的子句。1710.3.3PROLOG编程举例梵塔问题hanoi(N):-move(N,left,centre,right)move(0,_,_,_,):-!.move(NABC):MisN1move(MACB)move(N,A,B,C):-MisN-1,move(M,A,C,B),inform(A,B),move(M,C,B,A)inform(X,Y):-write([move,a,disc,from,the,X,pole,to,the,Y,pole]),n1.?-honoi(3).[moveadiscfromtheApoletotheBpole][moveadiscfromtheApoletotheBpole][moveadiscfromtheApoletotheCpole][moveadiscfromtheBpoletotheCpole][moveadiscfromtheApoletotheBpole][moveadiscfromtheCpoletotheApole][moveadiscfromtheCpoletotheBpole][pp][moveadiscfromtheApoletotheBpole]1810.4专用开发工具与人工智能机专用开发工具专用开发工具专家系统开发工具神经网络系统开发工具模糊系统开发工具模糊系统开发工具视觉和听觉系统开发工具人智能机人工智能机研制高度并行处理机制高度并行机研制直接面向符号处理的机器19
本文标题:第10章 人工智能程序设计
链接地址:https://www.777doc.com/doc-3405213 .html