人工智能PROLOG程序

时间:2022-05-11 15:44:14 阅读: 最新文章 文档下载
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。
实验一 PROLOG语言编程

一、实验目的

1.加深学生对逻辑程序运行机理的理解。 2.掌握PROLOG语言的特点、熟悉其编程环境。 3.为今后人工智能程序设计做好准备。

二、预习要求

1.复习PROLOG语言的语法。 2.熟悉PROLOG的语言环境。 3.阅读一些PROLOG的程序。

三、实验内容

1编写一个描述亲属关系的PROLOG程序,然后再给予出一些事实数据,建立一个小型演绎数据库。

提示:可以以父亲和母亲为基本关系(作为基本谓词),再由此来描述祖父、祖母、兄弟、姐妹以及其他所属关系。

2、编写一个路径查询程序,使其能输出图中所有路径。

提示:程序中的事实描述了下面的有向图,规则是图中两节点间通路的定义。

3、一个雇主在发出招聘广告之后,收到了大量的应聘申请。为了从中筛选出不量的候选人,该雇主采用下列判据:申请者必须会打字、开车,并且住在伦敦。

a)用Prolog规则表述这个雇主的选择准则。 b)用Prolog事实描述下列申请者的情况: 史密斯住在剑桥,会开车但不会打字。 布朗住在伦敦,会开车也会打字。 简住在格拉斯哥,不会开车但会打字。 埃文斯住在伦敦,会开车也会打字。 格林住在卢顿,会开车也会打字。 c)要求Prolog提供一个候选人名单。

c

e

d

a

b




四、代码

1编写一个描述亲属关系的PROLOG程序,然后再给予出一些事实数据,建立一个小型演绎数据库。

提示:可以以父亲和母亲为基本关系(作为基本谓词),再由此来描述祖父、祖母、兄弟、姐妹以及其他所属关系。

domains

name=symbol. predicates

mother(name,name). father(name,name).

grandfather(name,name). grandmother(name,name). sister(name,name). aunt(name,name). goal

grandmother(a,X),write("X=",X),nl, father(b,Y),write("Y=",Y),nl, sister(d,Z),write("Z=",Z),nl, aunt(d,T),write("T=",T). clauses

mother(a,c). mother(a,d). mother(c,g). mother(c,f). father(b,c). father(b,d). father(e,g). father(e,f).

grandfather(X,Z):-father(X,Z),father(Y,Z). grandmother(X,Z):-mother(X,Y),mother(Y,Z). sister(X,Y):-mother(Z,X),mother(Z,Y).

aunt(X,Y):-mother(Z,Y),sister(Z,X).

2、编写一个路径查询程序,使其能输出图中所有路径。 domains

point=symbol predicates

road(point,point). path(point,point). goal

path(X,Y),write(X,"-->",Y),nl,fail. clauses road(a,b).


road(a,c). road(b,e). road(b,d). road(c,d). road(d,e).

path(X,Y):-road(X,Y).

path(X,Y):-road(X,Z),road(Z,Y),not(road(X,Y)).

3、一个雇主在发出招聘广告之后,收到了大量的应聘申请。为了从中筛选出不量的候选人,该雇主采用下列判据:申请者必须会打字、开车,并且住在伦敦。

a)用Prolog规则表述这个雇主的选择准则。 b)用Prolog事实描述下列申请者的情况: 史密斯住在剑桥,会开车但不会打字。 布朗住在伦敦,会开车也会打字。 简住在格拉斯哥,不会开车但会打字。 埃文斯住在伦敦,会开车也会打字。 格林住在卢顿,会开车也会打字。 c)要求Prolog提供一个候选人名单。

domains

people=symbol.skill=symbol. predicates

ziliao(people,skill,skill,skill). goal

ziliao(X,london,car,type),write("X=",X),nl,fail. clauses

ziliao(smith,jianqiao,car,nottype). ziliao(brown,london,car,type). ziliao(jane,glasg,nocar,type). ziliao(elven,london,car,type). ziliao(green,ludun,car,type).






本文来源:https://www.wddqw.com/doc/3cab6a0316fc700abb68fc96.html