资源描述:
《人工智能实验报告1prolog初步.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数学与软件科学学院实验报告学期:2015至2016第1学期2015年10月12日课程名称:人工智能概论专业:信息与计算科学实验编号:01实验项目:prolog基础指导教师:郭远华2012级5班学号:姓名:龚浪实验成绩:一、目的要求掌握visualprolog中的基本结构,包括域说明、谓词说明、事实和规则说明、目标说明;掌握简单查询,变量查询,组合查询,规则查询;熟悉递归设计,学习prolog语言与C等语言不同的思维方式;初步掌握prolog中cut(!)的用法。二、实验内容1.阅读下列prolog程序,回答问题。DOMAINSpara=symbolP
2、REDICATESnondetermroom(para)nondetermlocation(para,para)nondetermedible(para)CLAUSESroom(kitchen).room(office).room(hall).room("diningroom").room(cellar).location(desk,office).location(apple,kitchen).location(flashlight,desk).location("washingmachine",cellar).location(nani,"was
3、hingmachine").location(broccoli,kitchen).location(crackers,kitchen).location(computer,office).edible(apple).edible(crackers).GOALroom(office).(1)程序有几块?分别是什么作用?答:程序有四块,分别为域说明部分(DOMAINS),说明了谓词对象的数据类型;谓词说明部分(PREDICATES),定义程序中除内部谓词以外的所有谓词;子句部分(CLAUSES),列出全部事实和规则,也可看作是程序的静态数据;目标部分(G
4、OAL),说明程序最后目标。(2)程序运行的结果?将GOAL部分的内容分别替换成room(pen),location(apple,kitchen),location(app,kitchen),location(Apple,kitchen),location(Apple,Kitchen)后,运行结果?为什么?答:程序运行结果为:yes。room(pen)的运行结果为:no。在数据库中没有事实与room(pen)匹配,查询失败。location(apple,kitchen)的运行结果为:yes。在数据库中找到与location(apple,kitchen
5、)匹配的事实,查询成功。location(app,kitchen)的运行结果为:no。在数据库中没有事实与location(app,kitchen)匹配,查询失败。location(Apple,kitchen)的运行结果为:no。在数据库中没有事实与location(Apple,kitchen)匹配,查询失败。location(Apple,Kitchen)的运行结果为:Apple=desk,Kitchen=officeApple=apple,Kitchen=kitchenApple=flashlight,Kitchen=deskApple=washi
6、ngmachine,Kitchen=cellarApple=nani,Kitchen=washingmachineApple=broccoli,Kitchen=kitchenApple=crackers,Kitchen=kitchenApple=computer,Kitchen=office8Solutions这里Apple和Kitchen作为变量,将数据库中每一条事实都显示出来。(3)将GOAL部分的内容分别替换成edible(X),location(X,kitchen),运行结果?并从回溯的角度分析结果产生原因。答:edible(X)的运行结果为
7、:X=appleX=crackers2Solutions目标为edible(X),Prolog找到数据库中的第一条edible子句,并与目标进行比较:edible(X)子句#1edible(apple).匹配成功,因为这里的X是作为变量,而变量的值就被绑定成apple,解释器就会显示:X=apple。数据库中还有未搜索的子句,Prolog就继续寻找其他的答案,首先它会释放变量X的值,然后从上一次成功的位置的下一条子句开始继续搜索,即从子句edible(apple)开始往下搜索,然后找到第二条edible子句,并与目标进行比较:edible(X)子句#
8、12edible(crackers).同样匹配成功,原理如上。所以解释器在搜索完毕后将显示:X=appleX