VisualProlog实验

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

VisualProlog实验

————————————————————————————————作者:————————————————————————————————日期:

实验一Visual Prolog运行环境实验(1学时)

一、实验目的

1、了解PROLOG解释器;

2、掌握PROLOG语言中常量、变量的表示方法;

3、掌握利用PROLOG进行事实库、规则库的编写方法。

二、实验要求

1、熟悉Visual Prolog运行环境,包括硬件与软件环境;

2、学习示例程序,分析其功能;

3、写出Example 1、Example 2、Example 3示例程序的功能;

4、利用PROLOG进行事实库、规则库的编写,并在此基础上进行简单的询问。

三、实验设备

计算机,Visual prolog教学软件。

四、实验内容及步骤

(一)实验内容:

1、熟悉Visual prolog的运行环境,包括所用的机器的硬件与软件环境;

2、学习使用Visual prolog,包括进入Prolog主程序、编辑源程序、修改环境目录、退出等基本操作;

3、学习Visual prolog的简单程序结构,掌握分析问题、询问解释技巧;

4、了解PROLOG语言中常量、变量的表示方法;

5、利用PROLOG进行事实库、规则库的编写,并在此基础上进行简单的询问。

(二)实验步骤:

1、启动Windows 2000操作环境;

2、安装Visual Prolog集成开发环境;

3、双击桌面图标或者找到Visual Prolog可执行文件所在目录双击图标,启动Visual prolog集成开发环境;

4、打开Project菜单,选择New Project菜单项,将工作目录修改为你要保存到的文

件夹,例如,c:\11,给出工程文件名;

5、打开Option菜单,选择Project菜单项打开下拉菜单,选择Compiler Options项,按下图中显示进行设置;

6、从工程界面中选择“new”按钮或者从file菜单中选择“new”菜单项,弹出一个界面,将所有的复选框都去掉,进入Visual Prolog的程序编辑界面;

7、将下面的Example 1编辑到编辑界面里面,Project菜单里面的Test goal菜单项或者直接点击菜单栏中的Test Goal按钮执行程序。查看执行结果显示窗口中结果是否与理论分析的结果一致;

8、仿前例,运行Example 2、Example 3,分析程序功能;

9、保存每个.Pro文件,保存工程。退出Visual Prolog系统,返回到Windows2000环境。

五、源程序

Example 1:

domains

person, activity = symbol

predicates

likes(person,activity)

clauses

likes(ellen,tennis).

likes(john,football).

likes(tom,baseball).

likes(eric,swimming).

likes(mark,tennis).

likes(bill,X):-likes(tom,X).

goal

likes(bill, What).

Example 2:

domains

element=c(char);i(integer);r(real);s(symbol)

mixlist=element*

predicates

length(mixlist, integer)

clauses

length([],0).

length([_|T],L):-length(T,L1),L=L+1.

goal

length([10,9,8,7,6,5,4,3,2,1],X).

Example 3:

predicates

fac(integer,real)

clauses

fac(1,1):-!.

fac(X,FactX):- Y=X-1, fac(Y,FactY), FactX=X *FactY.

goal

fac(3,X).

实验二知识表示、推理、搜索实验(10学时)正确完成给15分

一、实验目的

1、掌握利用PROLOG进行推理、问题求解的方法。

2、掌握PROLOG编程技巧。

二、实验要求

对同学进行分组,每组完成一题:

1.野人与传教士过河问题:有传教士和野人各三人需要过河,他们都会划船。现只有

一条船,一次只能载两人。假设野人多于传教士时传教士就会被吃掉。试编程求出

所有能确保全部安全的过河的计划,并给出Visual Prolog程序。

2.农夫和小米问题:农夫、狐狸、鸡和米都在一条河的左岸,现在要把它们全部送到

右岸去,农夫有一条船,过河时,除农夫外,船上至多能载狐狸、鸡和米中的一样。

狐狸要吃鸡,鸡要吃米,除非农夫在那里。试编程求出所有能确保全部安全的过河

的计划,并给出Visual Prolog程序。

3.八皇后问题模拟:在8 8格的国际象棋盘上摆放八个皇后,使其不能互相攻击,即

任意两个皇后都不能处于同一行、同一列或同一斜线上。试编程求出所有能满足要

求的摆法,并给出Visual Prolog程序。

4.谁是盗窃犯问题:某人被盗,公安局派出所派出5个侦察员去调查。研究案情时:

侦察员A说:“赵与钱中至少有一人作案”;

侦察员B说:“钱与孙中至少有一人作案”;

侦察员C说:“孙与李中至少有一人作案”;

侦察员D说:“赵与孙中至少有一人与此案无关”;

侦察员E说:“钱与李中至少有一人与此案无关”。

如果这5个侦察员的话都是可信的,试编程求出谁是盗窃犯,并给出Visual Prolog程序。

5.理发师问题:一个理发店接待室有n张椅子,工作室有1张椅子;没有顾客时,理

发师睡觉;第一个顾客来到时,必须将理发师唤醒;顾客来时如果还有空座的话,他就坐在一个座位上等待;如果顾客来时没有空座位了,他就离开,不理发了;当

理发师处理完所有顾客,而又没有新顾客来时,他又开始睡觉。试编程求出谁是盗

相关文档
最新文档