人工智能关键技术基础实验报告PROLOG语言编程练习
时间:2020-11-08 13:04:45 来源:勤学考试网 本文已影响 人
人工智能技术基础试验汇报
指导老师: 朱力
任课老师: 张勇
试验一 PROLOG语言编程练习
试验目标
加强学生对逻辑程序运行机能了解,使学生掌握PROLOG语言特点、熟悉其编程环境,同时为后面人工智能程序设计做好准备。
试验环境
在Turbo PROLOG或Visual Prolog集成环境下调试运行简单PROLOG程序,
试验内容
运行给定五个程序,验证程序,得到结果,了解逻辑程序特点,熟悉程序编辑、编译和调试过程
试验步骤
1、打开Turbo prolog2.0文件,开启prolog.exe应用程序,并按空格键(SPACE)进入集成开发环境。
2、选择Setup项,打开下拉菜单,选择Directories项,进行工作目录修改,按Esc键退出,选择Save Configuration项,保留修改。
3、在对应路径所在文件件夹中会生成work.Pro文件将其用文本打开,将要运行程序写入,保留。
4、选择Files项,选择Load项,选择要打开示例程序
5、编辑以后,能够选择Run项,实施程序,能够在Dialog窗口进行问询,即外部目标实施,查看程序运行结果,分析程序之功效。
6、仿前例,能够选择其它程序并运行,分析程序功效。
7、退出,选择Quit项,能够退出Turbo Prolog程序。
试验源程序
验证题1:
domains
d=integer
predicates
not_(D,D)
and_(D,D,D)
or_(D,D,D)
xor(D,D,D)
clauses
not_(1,0).
not_(0,1).
and_(0,0,0).
and_(0,1,0).
and_(1,0,0).
and_(1,1,1).
or_(0,0,0).
or_(0,1,1).
or_(1,0,1).
or_(1,1,1).
xor(Input1,Input2,Output):-
not_(Input1,N1),/*(1,0)*/
not_(Input2,N2),/*(0,1)*/
and_(Input1,N2,N3),
and_(Input2,N1,N4),
or_(N3,N4,Output).
验证题2:
predicates
student(integer,string,real)
grade
goal
grade.
clauses
student(1,"zhang",90.2).
student(2,"li",95.5).
student(3,"wang",96.4).
grade:-write("Please input name:"),readln(Name),
student(_,Name,Score),
nl,write(Name,"grade is",Score).
grade:-write("Sorry,the student cannot find!").
验证题3:
domains
n,f=integer
predicates
factorial(n,f)
goal
readint(I),
factorial(I,F),
write(I,"!=",F).
clauses
factorial(1,1).
factorial(N,Res):-
N>0,
N1=N-1,
factorial(N1,FacN1),
Res=N*FacN1.
验证题4:
domains
s=symbol
predicates
p(s) p1(s) p2(s) p3(s) p4(s) p5(s,s) p11(s) p12(s) p31(s)
goal
p(X),write("the x is ",X).
clauses
p(a1):-p1(b),p2(c).
p(a2):-p1(b),p3(d),p4(e).
p(a3):-p1(b),p5(f,g).
p1(b):-p11(b1),p12(b2).
p3(d):-p31(d1).
p2(c1).
p4(e1).
p5(f,g).
p11(b1).
p12(b2).
p31(d11).
验证题5:
domains
name=symbol
age =integer
predicates
player(name,age)
match(name,name)
cluases
player(peter,?9).
player(paul,?10).
player(chris,?9).
player(susan,?9).
试验结果
验证一:计算数非,和,或,异或,验证逻辑关系,非,和,或,异或正确性
图1.1
图1.2
验证二:查找某个人成绩
图2
验证三:计算数阶层
图3
验证四:走迷宫找出口
图4
验证五
在外部Goal: match(X,Y)条件下,分别采取以上各match谓词, 观察对应实施结果。
1、match(X,Y):- player(X,9), player(Y,9), X<>Y.
图5.1
2、match(X,Y):- !, player(X,9), player(Y,9), X<>Y.
图5.2
3、match(X,Y):- player(X,9), !, player(Y,9), X<>Y.
图5.3
4、match(X,Y):- player(X,9), player(Y,9), !, X<>Y.
图5.4
5、match(X,Y):- player(X,9), player(Y,9), X<>Y, !
图5.5
试验中出现问题及处理措施
试验早期,不知道怎样加载示例,造成在editor中编辑了一段程序,发觉程序修改很困难
上课时经过老师指导和向同学问询,知道能够先生成一个work.pro文件,然后用文本打开,在文本中编辑,然后在应用程序files—load中work.pro就能够了,处理了上述碰到问题。
试验总结
经过这次试验,我对Turbo PROLOG编程环境有了初步了解,对PROLOG语言特点有了更深了解,熟悉程序编辑、编译和调试过程,这次试验会对我以后试验有很大帮助。