人工智能程序设计语言.docxVIP

  • 3
  • 0
  • 约2.17万字
  • 约 18页
  • 2023-09-09 发布于天津
  • 举报
人工智能程序设计语言----Prolog 1概述 1970年由法国马赛大学AlainColmerauer等开发,作为逻辑程序设计的工具。 很多著名的专家系统外壳都用Prolog编写,如ESP/Advisor,APE,X1等。 程序特点:陈述式语言。只要给出必要的事实和规则,Prolog就可以用演绎推理自动求解问题。而过程式语言必须告之求解过程才行。 实例与基本概念: 一个Prolog的实例程序如下: domains/*领域声明段*/ person,activity=symbol/*域person和activity的声明,symbol为标准域*/ predicates/*谓词格式说明段*/ likes(person,activity)/*likes为谓词名,表示某人person喜欢activity活动*/ clauses/*子句段*/ likes(ellen,tennis)./*事实:ellen喜欢tennis*/ likes(john,football). likes(tom,baseball). likes(eric,swimming). likes(mark,tennis). likes(bill,X):-likes(tom,X)./*规则:tom喜欢的,bill也喜欢*/ goal/*目标段*/ likes(bill,football)./*考察bill是否喜欢football*/ 变量:以大写字母开头,后跟若干数字、下划线、字母组成的符号名称。是在满足目标时,其值未知的量。例如:likes(X_Persons,tennis).中的X。 对象与关系:谓词表示一个或多个对象之间的某种关系。例如:likes(mark,tennis).中的likes谓词表示某人喜欢某类活动。其中,mark和和tennis分别是关系likes中的对象。 又如:owns(susan,horse). eats(jill,meat). valuable(gold)./*黄金是值钱的*/ 注:对象名和关系名都必须以小写字母开头。 领域与谓词:谓词是用语描述事实和关系的。但与此相关的谓词之涉及对象的领域范围必须明确。因此,在Prolog中,需要对关系中的对象的域进行声明。例如:likes(person,activity).表明,谓词likes中第一个参数为person域,第二个为activuty域。如果目标中输入likes(12,x),系统将给出一个领域类型错的信息。因为,第一个参数不属于person域,此处即symbol域。 复合目标:由多个子目标构成的问题目标描述。例如:likes(tom,X)andlikes(erric,X)。 无名变量:即谓词参数中以下划线表示时,该变量称为无名变量。表示此时该变量的值无关紧要。例如:likes(_,baseball)andlikes(ellen,tennis)表示只要有人喜欢baseball,ellen就喜欢tennis。car(_,_,Age,_,Cost)andCost27000表示查找价格在27000$以下的车,并给出其使用年限和价格。 无名变量用于事实时,表示任意或全部都成立。例如:owns(_,shirt).表示人人都有一件衬衣。washface(_).表示人人都洗脸。 回溯:当子目标匹配或搜索失败时,回到最近的成功点继续进行余下的事实或规则的匹配的过程。以如下程序为例: domains child=symbol age=integer predicates pupil(child,age) clauses pupil(peter,9). pupil(chris,9). pupil(paul,10). pupil(susan,9). 问题:安排一次班级上9岁同学的乒乓球比赛,每对运动员赛两场。则目标子句可描述pupil(P1,9)andpupil(P2,9)andP1P2.|的执行过程如下: 子目标1 子目标2 子目标3 结果 说明 peter peter peterpeter 失败 回溯到第二子目标 chris peterchris 成功 回溯到第二子目标继续寻找下一组解 susan petersusan 成功 子目标2已搜索完毕,回溯到子目标1 chris peter chrispeter 成功 回溯到第二子目标继续寻找下一组解 chris chirschris 失败 回溯到第二子目标 susan chrissusan 成功 子目标2已搜索完毕,回溯到子目标1 susan peter susanpeter 成功 回溯到第二子目标继续寻找下一组解 chris susanchris 成功 回溯到第二子目标继续寻找下一组解 susan susansusan 失败 全部搜索完毕 not的用法:表示谓词或规

文档评论(0)

1亿VIP精品文档

相关文档