







所属成套资源:粤教版信息技术选修5人工智能初步课件PPT
- 2.4 状态空间表示法 课件 课件 0 次下载
- 2.5 产生式规则表示法 课件 课件 0 次下载
- 2.7 综合活动:知识表示法运用 课件 课件 0 次下载
- 3.1 认识专家系统 课件 课件 0 次下载
- 3.2 专家系统的知识获取 课件 课件 0 次下载
2.6 Prolog语言 课件
展开Prolog 语言 人工智能技术需要用计算机软件去实现,因此,我们需要学习人工智能程序设计语言和方法。本节我们将学习一种人工智能语言——Prolog语言,以及如何利用这种语言去解决一些简单问题。1初识Prolog语言 Prolog是1972年开发的通用程序设计语言。下面是一个Prolog语言的程序段,其中包括有陈述性和控制性知识,你能看懂各条语句的意义吗?fruit(pears).fruit(apples).color(pears,yellow).color(oranges,orange).color(apples,yellow).color(apples,red).likes(bill,pears).likes(bill,popcorn).likes(bill,apples)./*pears、apples被声明为fruit(水果)*//*描述pears、oranges、apples这几种水果的颜色*//*描述bill喜欢pears、apples、popcorn(爆玉米花)*/例1:Prolog语言程序段likes(tom,X):- likes(bill,X), fruit(X), color(X,red).likes(tom,X):- likes(bill,X), X=popcorn./*此语句描述tom喜欢X的三个条件:*//*1)X必须是bill喜欢的 *//*2)X必须是fruit *//*3)而X这种水果是红色的 *//*此语句描述tom喜欢X的两个条件:*//*1)X必须是bill喜欢的 *//*2)X必须是popcorn(爆玉米花) */2prolog语言的三种基本语句1.事实事实即已知的要素,如例1中的语句:fruit(apples).color(apples,red).likes(bill,pears). 这些语句在Prolog语言中我们称为事实,事实是用来说明一个问题中已知对象和它们之间关系的语句。在Prolog程序中,事实由谓词(或称为关系)名和它后面用括号括起来的一个或几个对象组成。谓词和对象可由用户自己定义,并选择不同的名字,事实是逻辑推理的前提。 如语句fruit(apples)中的谓词为fruit,表示apples是一种水果,又如语句likes(bill,pears)中,谓词为likes,表示bill和pears之间有喜欢的关系。bill和pears在上述程序中属对象。 事实的一般形式为: p(o1,o2,…,on). P为谓词名,一般由小写英文字母开头的字母、数字、下划线等组成的字符串。括号内o1,o2,…,由若干对象(变元及常量)构成,事实后面用“.”结束。 事实句型的成立不依赖于其他的目标,事实句型恒为真。2.规则规则即从已知事实进行推断。likes(tom,X):- likes(bill,X)./*tom喜欢bill喜欢的一切东西*/likes(tom,X):- likes(bill,X), X=popcorn./*若bill喜欢的一种东西,而这种东西是爆玉米花的话*//*那么tom也喜欢爆玉米花 */likes(tom,X):- likes(bill,X); X=popcorn./*tom除了喜欢bill喜欢的一切东西,还喜欢爆玉米花*/ 这些语句在Prolog中我们称为规则,规则由几个互相有依赖性的简单句(谓词)组成,用来描述事实之间的关系。从形式上看,规则可分解为表示条件的前提谓词和表示结论的后件谓词。 规则和事实在Prolog中被称为谓词子句(clause),子句的集合称为Prolog的内部数据或知识库。Prolog系统的任务就是依据知识(规则和事实)来回答用户问题,使用事实和规则及提供的推理方法从一些事实推出另一些事实。3.询问 把事实和规则写进Prolog程序后,就可以通过Prolog询问有关问题,要求Prolog系统在给定目标(goal)的情况下求解问题。询问语句(或称目标语句)的一般格式为:goal 一个简单谓词或多个谓词组合3Prolog程序的基本结构 语言程序都有自己的基本结构,Prolog语言程序的基本结构由四段组成: domains段:定义程序中将要用到的变量和符号的类型及取值范围。 predicates段:定义程序中用到的谓词,一般用nondeterm来规定输入和输出对象。 clauses段:存放事实和规则。 goal段:定义程序的目标,它是程序运行的起点。4Prolog语言内部谓词 电话是人们日常生活中必不可少的通信方式,电话号码簿的查询功能给人们带来许多方便,下面我们来看看Prolog电话号码查询程序。Prolog语言电话号码查询程序 对大多数程序来说,运行时从键盘上输入有关数据、信息和显示输出有关数据、信息是必不可少的。为此Visual Prolog语言提供了专门的输入输出内部谓词,供用户直接调用。 (1)write(X1,X2,…,Xn) 该谓词的功能是把项X1的值显示在屏幕上。 (2)n1 该谓词的功能是换行,它使后面的输出(如果有的话)另起一行。 (3)readln(X) 该谓词的功能是从键盘上读取一个字符串,然后约束给变量X。 (4)readint(X) 该谓词的功能是从键盘上读取一个整数,然后约束给变量X,如果键盘上输入的不是整数,则该谓词失败。 (5)readreal(X) 该谓词的功能是从键盘上读取一个实数,然后约束给变量X,如果键盘上输入的不是实数,则该谓词失败。 (6)readchar(X) 该谓词的功能是从键盘上读取一个字符,然后约束给变量X,如果键盘上输入的不是单个字符,则该谓词失败。 对于其他的内部谓词,如需要引用时,可以从Prolog语言的说明书中找到。5Prolog语言的特点 Prolog语言具有以下特点: (1)在Prolog程序中,仅含有事实、规则及询问语句,强调的是它们之间的逻辑关系,不要求给出求解问题的步骤,因而Prolog被看作是一种描述性的语言。 (2)Prolog语言具有自动实现搜索、模式匹配及回溯的功能,从而实现了自动逻辑推理。 (3)Prolog的数据和程序结构统一。 (4)递归是Prolog的一个重要特征,它反映在程序及数据结构中。由于这一特征,使得Prolog可把一个大的数据结构作为一个小的程序来处理。