人工智能程序设计语言.ppt
《人工智能程序设计语言.ppt》由会员分享,可在线阅读,更多相关《人工智能程序设计语言.ppt(69页珍藏版)》请在课桌文档上搜索。
1、人工智能程序设计语言,2023/3/20,2,内容,综述函数型程序设计语言LISP逻辑性程序设计语言PROLOGPROLOG程序设计,2023/3/20,3,内容,综述函数型程序设计语言LISP逻辑性程序设计语言PROLOGPROLOG程序设计,2023/3/20,4,综述,人工智能所解决的问题并非一般的数值计算或数据处理问题是要实现对脑功能的模拟和再现人工智能程序面向问题面向逻辑支持知识表示能描述逻辑关系和抽象概念处理对象更多的是知识,或者说是符号常规程序设计语言受限,2023/3/20,5,综述,人工智能程序设计语言函数型语言逻辑性语言面向对象语言混合型语言,2023/3/20,6,综述-
2、函数型语言,函数型语言 LISP是一种函数型程序设计语言。LISP程序由一组函数组成,程序的执行过程就是一系列的函数调用和求值过程。但LISP还不是纯函数型语言,准确地讲,它是基于-函数的语言。除LISP外,20世纪70年代J.Backus还提出了一种称为FP的所谓纯函数型程序设计语言。但该语言现在还限于理论研究,实现上还存在一定困难。,2023/3/20,7,综述-逻辑型语言,逻辑型语言 逻辑型程序设计语言起源于PROLOG(PROgramming in LOGic)。PROLOG语言首先由法国马塞大学的Colmerauer和它的研究小组于1972年研制成功,后来在欧洲得到进一步发展。特别是
3、1981年日本宣布要以PROLOG作为他们正在研制的新一代计算机智能计算机的核心语言,更使PROLOG举世瞩目,迅速风靡世界。,2023/3/20,8,综述-逻辑型语言,现在PROLOG几乎在人工智能的所有领域都获得了应用,成为与LISP并驾齐驱的甚至更加流行的智能程序设计语言。由于PROLOG语言是一种逻辑型程序设计语言,因此用它编写的程序也就是逻辑程序,即在PROLOG程序中一般不需告诉计算机“怎么做”,而只需告诉它“做什么”。因此,PROLOG亦属陈述性语言。与通常的过程性程序设计语言相比,PROLOG是更高级的语言。,2023/3/20,9,综述-面向对象语言,面向对象语言 20世纪8
4、0年代以来,面向对象程序设计(ObjectOrientedProgramming,简称OOP)异军突起,发展迅速。OOP以其信息隐蔽、封装、继承、多态、消息传递等一系列优良机制,大大改善了软件的复杂性、模块性、重用性和可维护性,有望从根本上解决软件的生产效率问题。另一方面,由于面向对象程序设计的类、对象、继承等概念,与人工智能特别是知识表示和知识库产生了天然的联系。,2023/3/20,10,综述-混合型语言,混合型语言 1.函数型与逻辑型相结合的语言 函数型与逻辑型语言的结合方式有耦合型和统一型两类。统一型又可分为具有归结语义的函数型语言和集成式语言两个子类。耦合型语言意为将具有归约语义的函
5、数型语言和具有归结语义的逻辑型语言组合在一起,并在二者之间提供一个接口而形成的一种混合型语言。其典型代表有:,2023/3/20,11,综述-混合型语言,(1)LOGLISP。该语言在LISP的基础上增加了表达合一、回溯等机制的系统函数,从而在保持LISP特色的同时又有了逻辑程序设计能力。(2)FUNLOG。该语言在 PROLOG 之外又增加了函数定义机制,系统以归结语义执行PROLOG程序,以归约语义求解函数。(3)POPLOG。这是POP-11、PROLOG和LISP的混合型语言,三种成分各有一个增量式编译器。具有归结语义的函数型语言又可分为N-语言、F-语言和R语言。,2023/3/20
6、,12,综述-混合型语言,2.函数型与面向对象相结合的语言 在LISP语言的基础上再扩充面向对象机制而产生的语言,称为函数型的面向对象程序设计语言(亦称为面向对象的LISP)。这种语言现已成为一个家族,其中比较著名的有:(1)Flavors 由 MIT 的 Lisp Machine 小组于 1979 年研制而成,它的基语言是Symbolics Common LISP。(2)LOOPS(Lisp-Object-OrientedProgramming System)。它是在InterLisp-D环境上实现的基于LISP的OOP语言,由Xerox公司于1983年推出。,2023/3/20,13,综述
7、-混合型语言,(3)CommonLoops。它是基于CommonLisp的函数型OOP语言,由Xerox公司于1985 年推出。(4)CLOS(CommonLisp Objetc System)。它是Xerox公司于1986 年推出的一个CommonLoops与New Flavors的后继产品。(5)CommonObjects。它是由HP公司于19831985年实现的又一个基于CommonLisp 的OOP语言。(6)OBJ2 也是一种面向对象的函数型语言。,2023/3/20,14,综述-混合型语言,3.逻辑型与面向对象相结合的语言 这类语言著名的有:(1)SPOOL。日本IBM分部于198
8、5年推出的以面向对象思想扩充的PROLOG语言。(2)Orient 84K。Keio大学于1984年发表的基于PROLOG和Smalltalk 的并行执行语言。(3)Vulan。一种面向对象的逻辑型语言。,2023/3/20,15,内容,综述函数型程序设计语言LISP逻辑性程序设计语言PROLOGPROLOG程序设计,2023/3/20,16,函数型程序设计语言LISP,LISP是第一个人工智能程序设计语言LISt Processing,表处理语言1960年由MIT的麦卡锡和他的研究小组设计,擅长表处理,即符号处理许多人工智能系统用LISP语言编写LISP被誉为人工智能的数学,是人工智能研究和
9、开发的主要工具,2023/3/20,17,函数型程序设计语言LISP,LISP语言的主要特点:LISP程序由一组函数组成,程序的执行过程是函数的调用过程程序和数据在形式上是相同的,即都是符号表达式,简称为S表达式递归是LISP语言的主要控制结构程序以交互方式运行,2023/3/20,18,LISP的程序结构,LISP的程序一般由函数的定义和函数的调用两部分组成。其一般格式为:(DEFUN()()()()()(),“DEFUN”是定义函数的关键字“函数名”可以是系统的内部函数(名),也可以是用户用DEFUN定义的函数(名),2023/3/20,19,一个LISP程序,(DEFUN HANOI(a
10、 b c n)(COND(=n 1)(MOVE-DISK a c)(T(HANOI a c b(-n 1)(MOVE-DISK a c)(HANOI b a c(-n 1)(DEFUN MOVE-DISK(from to)(TERPRI)(PRINC Move Disk From)(PRINC from)(PRINC To)(PRINC to)(HANOI abc 3),两个函数前者调用后者,函数调用部分只有一个函数调用,2023/3/20,20,LISP的基本函数,LISP的函数一律使用前缀表示方式,分为内部函数(基本或系统函数)和用户自定义函数两类基本函数的种类有十多个,仅给出主要的几类表
11、处理函数算数函数求值与赋值函数谓词函数条件函数,2023/3/20,21,表处理函数,表处理是LISP的主要特色,下面仅给出最常用的几个:1)CAR函数功能取出表中的表头。如CAR(LISP Language Program)返回值LISP2)CDR函数 功能 取出表中的表尾 如(CDR(LISP Language Program)返回值(Language Program),2023/3/20,22,表处理函数,3)CONS函数 功能 将S表达式作为表头加到表中去 如(CONSMy(LISP Language Program)返回值(My LISP Language Program)4)APP
12、END函数功能 将n个表中的元素合并成一个新表如(APPEND(TIGER LION)(DOG CAT)返回值(TIGER LION DOG CAT)5)LIST函数功能把n个S表达式作为元素构成一张新表如(LISTYELLOWREDBLUE)返回值(YELLOW RED BLUE),2023/3/20,23,算术函数,LISP的算术表达式也是用函数表示的,称为算术函数举例说明(+2 5)表示2+5,返回值为7(-(*4 8)(/10 5)表示48-10/5,返回值为30,2023/3/20,24,求值与赋值函数,撇号是禁止求值函数QUOTE的简写形式赋值函数有多个SET函数是最基本的一个功能
13、把S表达式赋给变量例如:(SETX8);X 得到值8(SETY(a b c);Y 得到值(a b c)(SETZ(CDRY);Z 得到值(b c),2023/3/20,25,谓词函数,返回值为逻辑值真或假的函数称为谓词函数真和假分别用T和NIL表示谓词函数也有多个,仅给出常用的几个:(1)原子谓词ATOM 功能检测其参数是否为原子,是则T,否则NIL 例如:(ATOMa);返回T(ATOM(a b);返回NIL,2023/3/20,26,谓词函数,(2)相等谓词EQUAL 功能判断两个参数是否逻辑相等 例如:(EQUALaa);返回T(EQUAL(a b)(a c);返回NIL(3)判空表函数
14、NULL 功能判断参数是否为空表,是则返回T,否则返回NIL,2023/3/20,27,条件函数,条件函数类似于分支语句,其作用是控制程序的流程 格式(COND(P1 e1)(P2 e2)(Pn en)其中Pi(i=1,.,n)为谓词,ei(i=1,.,n)为一个或多个S表达式 功能如果P1为真,则COND函数的值为e1。否则,判断P2,直到某个Pi真为止,然后将对应的ei作为函数值。若没有一个Pi的值为非NIL,则COND的返回值为NIL。特别地,Pi也可以为逻辑常量T,这时则对其对应的各表达式求值,并把最后一个表达式的值作为COND的返回值,2023/3/20,28,条件函数,例如:(CO
15、ND(NULL x)0)(ATOM x)1)(LISTP x)(LENGTH x)其语义是,若x的值为NIL,则COND的返回值为0;若x为原子,则COND的返回值为1;若x的值为表,则COND的返回值为表的长度,2023/3/20,29,自定义函数,自定义函数的格式为:(DEFUN()其中函数体,又可能是用户自定义的函数或LISP基本函数的某种组合,2023/3/20,30,例 定义求N!的LISP函数,阶乘的公式是 n!n(n-1)!1!1 0!1其LISP函数如下:(DEFUNN!(n)(COND(=n 0)1)(=n 1)1)(T(*n(N!(-n 1),该函数的最后一行中又调用了它自
16、己这个函数N!是递归定义的,2023/3/20,31,例 HANOI,(DEFUN HANOI(a b c n)当只有一个盘子时,直接将a上的盘子移动到c上(COND(n 1)(MOVEDISK a c)其他情况,通过递归,先将柱a上的n1个盘子通过柱c移到柱b上(T(HANOI a c b(n 1)再将柱a上的一个盘子移动到柱c上(MOVEDISK a c)最后再通过递归,将柱b上的n1个盘子通过柱a移动到柱c上(HANOI b a c(n 1)函数MOVE-DISK起显示的作用,表示从柱from到柱to移动了一个盘子(DEFUN MOVEDISK(from to)TERPRI是回车换行函数
17、,PRINC是显示参数的函数(TERPRI)(PRINC”Move Disk From”)(PRINC from)(PRINC”To”)(PRINC to),2023/3/20,32,内容,综述函数型程序设计语言LISP逻辑性程序设计语言PROLOGPROLOG程序设计,2023/3/20,33,逻辑型程序设计语言PROLOG,1972年,法国马赛大学的Alain.Colmerauer提出了Prolog的雏型1975年,Prolog被用于问题求解系统,此后在许多领域获得了应用,如关系数据库、定理证明、智能问题求解、计算机辅助设计、规划生成等领域Prolog语言是以一阶谓词逻辑的Horn 子句集
18、为语法,以Robinson的消解原理为工具,加上深度优先的控制策略而形成的人工智能通用程序设计语言,2023/3/20,34,Horn逻辑,文字:原子公式(正文字)或原子公式的否定(负文字)P,Q,R子句:若干文字的析取 PQR在数理逻辑中,霍恩子句(Horn Clause)是带有最多一个肯定文字的子句(文字的析取)Horn子句:子句L1L2 Ln中如果至多只含一个正文字,那么该子句称为Horn子句。Horn子句P Q1 Q2 Qn通常表示为:P Q1,Q2,Qn,2023/3/20,35,Horn逻辑,Horn子句的类型:过程:P Q1,Q2,Qn事实:P 目标:Q1,Q2,Qn空子句:,2
19、023/3/20,36,Horn逻辑,例:过程:AT(dog,x)AT(Zhang,x)事实:AT(Zhang,train)目标:AT(dog,train)首先目标中过程调用AT(dog,train)与过程名AT(dog,x)匹配,合一为train/x,调用过程AT(Zhang,x),从而产生新目标 AT(Zhang,train),与事实匹配,产生目标。因而调用成功,输出“是”。,2023/3/20,37,Prolog的基本特点,Prolog既是一种逻辑程序设计语言,又是一个逻辑系统Prolog是一种描述性语言,是一种面向问题的语言,只需要告诉它要做什么,即给出问题的形式描述,而不需要知道应该
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 人工智能 程序设计语言

链接地址:https://www.desk33.com/p-246168.html