您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > AI人工智能 > 人工智能PROLOG程序
实验一PROLOG语言编程一、实验目的1.加深学生对逻辑程序运行机理的理解。2.掌握PROLOG语言的特点、熟悉其编程环境。3.为今后人工智能程序设计做好准备。二、预习要求1.复习PROLOG语言的语法。2.熟悉PROLOG的语言环境。3.阅读一些PROLOG的程序。三、实验内容1、编写一个描述亲属关系的PROLOG程序,然后再给予出一些事实数据,建立一个小型演绎数据库。提示:可以以父亲和母亲为基本关系(作为基本谓词),再由此来描述祖父、祖母、兄弟、姐妹以及其他所属关系。2、编写一个路径查询程序,使其能输出图中所有路径。提示:程序中的事实描述了下面的有向图,规则是图中两节点间通路的定义。3、一个雇主在发出招聘广告之后,收到了大量的应聘申请。为了从中筛选出不量的候选人,该雇主采用下列判据:申请者必须会打字、开车,并且住在伦敦。(a)用Prolog规则表述这个雇主的选择准则。(b)用Prolog事实描述下列申请者的情况:史密斯住在剑桥,会开车但不会打字。布朗住在伦敦,会开车也会打字。简住在格拉斯哥,不会开车但会打字。埃文斯住在伦敦,会开车也会打字。格林住在卢顿,会开车也会打字。(c)要求Prolog提供一个候选人名单。abcde四、代码1、编写一个描述亲属关系的PROLOG程序,然后再给予出一些事实数据,建立一个小型演绎数据库。提示:可以以父亲和母亲为基本关系(作为基本谓词),再由此来描述祖父、祖母、兄弟、姐妹以及其他所属关系。domainsname=symbol.predicatesmother(name,name).father(name,name).grandfather(name,name).grandmother(name,name).sister(name,name).aunt(name,name).goalgrandmother(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).clausesmother(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).
本文标题:人工智能PROLOG程序
链接地址:https://www.777doc.com/doc-1878580 .html