清新de花 发表于 2016-3-10 08:59:22

PROLOG语言编程


实验一 PROLOG语言编程一、实验目的1.加深学生对逻辑程序运行机理的理解。2.掌握PROLOG语言的特点、熟悉其编程环境。3.为今后人工智能程序设计做好准备。二、预习要求1.复习PROLOG语言的语法。2.熟悉PROLOG的语言环境。3.阅读一些PROLOG的程序。三、实验内容1、编写一个描述亲属关系的PROLOG程序,然后再给予出一些事实数据,建立一个小型演绎数据库。提示:可以以父亲和母亲为基本关系(作为基本谓词),再由此来描述祖父、祖母、兄弟、姐妹以及其他所属关系。2、编写一个路径查询程序,使其能输出图中所有路径。提示:程序中的事实描述了下面的有向图,规则是图中两节点间通路的定义。






3、一个雇主在发出招聘广告之后,收到了大量的应聘申请。为了从中筛选出不量的候选人,该雇主采用下列判据:申请者必须会打字、开车,并且住在伦敦。(a)用Prolog规则表述这个雇主的选择准则。(b)用Prolog事实描述下列申请者的情况:   史密斯住在剑桥,会开车但不会打字。   布朗住在伦敦,会开车也会打字。   简住在格拉斯哥,不会开车但会打字。   埃文斯住在伦敦,会开车也会打字。   格林住在卢顿,会开车也会打字。(c)要求Prolog提供一个候选人名单。
四、代码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、编写一个路径查询程序,使其能输出图中所有路径。domainspoint=symbolpredicatesroad(point,point).path(point,point).goalpath(X,Y),write(X,"-->",Y),nl,fail.clausesroad(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提供一个候选人名单。domainspeople=symbol.skill=symbol.predicatesziliao(people,skill,skill,skill).goalziliao(X,london,car,type),write("X=",X),nl,fail.clausesziliao(smith,jianqiao,car,nottype).ziliao(brown,london,car,type).ziliao(jane,glasg,nocar,type).ziliao(elven,london,car,type).ziliao(green,ludun,car,type).





页: [1]
查看完整版本: PROLOG语言编程