人工智能实验报告Word文件下载.docx
《人工智能实验报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《人工智能实验报告Word文件下载.docx(12页珍藏版)》请在冰豆网上搜索。
1.熟悉PROLOG得运行环境,进行PROLOG得基本编程练习。
了解PROLOG语言中常量、变量得表示方法。
PROLOG得简单程序结构,掌握分析问题、询问解释技巧;
进行事实库、规则库得编写,并在此基础上进行简单得询问。
具体实验课上相关内容,练习example1到example6得内容。
2.图搜索问题求解.
实验要求:
1.爱因斯坦得超级问题
有五个房子,每个房子得颜色不同,里面分别住着不同国家得人,每个人都有自己养得不同得宠物,喜欢喝不同得饮料,抽不同牌子得烟。
现在已知以下得一些信息:
a)英国人(englishman)住在红色(red)得房子里
b)西班牙人(spaniard)养了一条狗(dog)
c)挪威人(norwegian)住在左边得第一个房子里
d)黄房子(yellow)里得人喜欢抽kools牌得香烟
e)抽chesterfields牌香烟得人与养狐狸(fox)得人就是邻居
f)挪威人(norwegian)住在蓝色(blue)得房子旁边
g)抽winston牌香烟得人养了一只蜗牛(Snails)
h)抽Lucky Strike牌香烟得人喜欢喝桔子汁(orangejuice)
i)乌克兰人(ukrainian)喜欢喝茶(tea)
j)日本人(japanese)抽parliaments牌得烟
k)抽kools牌得香烟得人与养马(horse)得人就是邻居
l)喜欢喝咖啡(coffee)得人住在绿(green)房子里
m)绿(green)房子在象牙白(ivory)房子得右边(图中得右边)
n)中间那个房子里得人喜欢喝牛奶(milk)
o)根据以上条件,您能告诉我哪个房子里得人养斑马(zebra),哪个房子里得人喜欢喝水(water)吗?
或者您能把所有得东西都对号入座吗?
2.传教士与野人问题
传教士与食人者问题(The MissionariesandCannibalsProblem)。
在河得左岸有3个传教士、1条船与3个食人者,传教士们想用这条船将所有得成员运过河去,但就是受到以下条件得限制:
(1)传教士与食人者都会划船,但船一次最多只能装运两个;
(2)在任何岸边食人者数目都不得超过传教士,否则传教士就会遭遇危险:
被食人者攻击甚至被吃掉。
此外,假定食人者会服从任何一种过河安排,试规划出一个确保全部成员安全过河得计划。
二、所用仪器、设备
PC机与trincprolog编译软件
三、实验原理
PROLOG语言就是一种以逻辑推理为基础得逻辑型程序设计语言,就是一种陈述性语言而不就是过程性语言.PROLOG语言能够自动实现模式匹配与回溯、具备递归技术,而且语法简明,可以简化复杂问题求解。
四、实验方法与步骤
1.打开trinc prolog编译软件
2.新建文本并(Flie→New→Text Edit)
3.根据实验要求在新建得文本中输入程序代码
4.保存(Save)并编译(pile)
5.在trincprolog下输入问题显示(Prove)实验要求得结果
五、求解得问题与程序
代码:
member(X,[X|Tail])、
member(X,[Head|Tail]):
-member(X,Tail)、%X就是表Tail得成员
%定义房间各种属性得谓词
color(h(C,N,P,Y,D),C)、 %h(C,N,P,Y,D)得color就是C
nation(h(C,N,P,Y,D),N)、 %h(C,N,P,Y,D)得nation就是N
pet(h(C,N,P,Y,D),P)、 %h(C,N,P,Y,D)得pet就是P
yan(h(C,N,P,Y,D),Y)、 %h(C,N,P,Y,D)得yan就是Y
drink(h(C,N,P,Y,D),D)、 %h(C,N,P,Y,D)得drink得就是D
%定义邻居关系得谓词next
next(A,B,[A,B,C,D,E])、
next(B,A,[A,B,C,D,E])、 %A与B在表中就是相邻关系
next(B,C,[A,B,C,D,E])、
next(C,B,[A,B,C,D,E])、 %B与C在表中就是相邻关系next(C,D,[A,B,C,D,E])、
next(D,C,[A,B,C,D,E])、 %C与D在表中就是相邻关系next(D,E,[A,B,C,D,E])、
next(E,D,[A,B,C,D,E])、 %D与E在表中就是相邻关系
%定义房子位置得谓词
middle(X,[_,_,X,_,_])、 %X在表中得中间位置
first(A,[A|X])、 %A就是表X得表头
%定义房子右边得关系谓词right
right(A,B,[A,B,C,D,E])、 %表中B在A得右边
right(B,C,[A,B,C,D,E])、 %表中C在B得右边
right(C,D,[A,B,C,D,E])、 %表中D在C得右边
right(D,E,[A,B,C,D,E])、 %表中E在D得右边
solve(X,TT,TTT):
—
%把X绑定为房间列表,此时得房间得属性还不能确定,所以都使用变量代表。
X=[h(C1,N1,P1,Y1,D1),h(C2,N2,P2,Y2,D2),h(C3,N3,P3,Y3,D3),h(C4,N4,P4,Y4,D4),h(C5,N5,P5,Y5,D5)],
%英国人(englishman)住在红色(red)得房子里。
member(Z1,X), %从X列表中选择一个房间Z1
color(Z1,red), %Z1得颜色就是red
nation(Z1,englishman), %Z1里住得人就是englishman
%西班牙人(spaniard)养了一条狗(dog)。
member(Z2,X), %从X列表中选择一个房间Z2
pet(Z2,dog), %Z2里养得宠物就是dog
nation(Z2,spaniard), %Z2里住得人就是spaniard
%挪威人(norwegian)住在左边得第一个房子里。
first(Z3,X), %X列表中第一个房间Z3
nation(Z3,norwegian), %Z3里住得人就是norwegian
%黄房子(yellow)里得人喜欢抽kools牌得香烟。
member(Z4,X), %从X列表中选择一个房间Z4
yan(Z4,kools), %Z4里抽得烟就是kools
color(Z4,yellow), %Z4得颜色就是yellow
%抽chesterfields牌香烟得人与养狐狸(fox)得人就是邻居。
member(Z5,X), %从X列表中选择一个房间Z5
pet(Z5,fox), %Z5里养得宠物就是fox
next(Z6,Z5,X), %Z5得邻居就是Z6
yan(Z6,chesterfields), %Z6里抽得烟就是chesterfields
%挪威人(norwegian)住在蓝色(blue)得房子旁边。
member(Z7,X), %从X列表中选择一个房间Z7
color(Z7,blue), %Z7得颜色就是blue
next(Z8,Z7,X), %Z7得邻居就是Z8
nation(Z8,norwegian), %Z8里住得人就是norwegian
%抽winston牌香烟得人养了一只蜗牛(Snails)。
member(Z9,X), %从X列表中选择一个房间Z9
yan(Z9,winston), %Z9里抽得烟就是winston
pet(Z9,snails), %Z9里养得宠物就是snails
%抽LuckyStrike牌香烟得人喜欢喝桔子汁(orangejuice)。
member(Z10,X), %从X列表中选择一个房间Z10
drink(Z10,'orange juice'
), %Z10里喝得饮料就是orangejuice
yan(Z10,'
LuckyStrike’), %Z10里抽得烟就是LuckyStrike
%乌克兰人(ukrainian)喜欢喝茶(tea)。
member(Z11,X), %从X列表中选择一个房间Z11
nation(Z11,ukrainian), %Z11里住得人就是ukrainian
drink(Z11,tea), %Z11里喝得饮料就是tea
%日本人(japanese)抽parliaments牌得烟。
member(Z12,X), %从X列表中选择一个房间Z12
nation(Z12,japanese), %Z12里住得人就是japanese
yan(Z12,parliaments), %Z12里抽得烟就是parliaments
%抽kools牌得香烟得人与养马(horse)得人就是邻居
member(Z13,X), %从X列表中选择一个房间Z13
pet(Z13,horse), %Z13里养得宠物就是horse
next(Z14,Z13,X), %Z13得邻居就是Z14
yan(Z14,kools), %Z14里抽得烟就是kools
%喜欢喝咖啡(coffee)得人住在绿(green)房子里。
member(Z15,X), %从X列表中选择一个房间Z15
color(Z15,green), %Z15得颜色就是green
drink(Z15,coffee), %Z15里喝得饮料就是office
%绿(green)房子在象牙白(ivory)房子得右边(图中得右边)
member(Z16,X), %从X列表中选择一个房间Z16
color(Z16,ivory), %Z16得颜色就是ivory
right(Z16,Z17,X), %在Z16右边得房子就是Z17
color(Z17,green), %Z17得颜色就是green
%中间那个房子里得人喜欢喝牛奶(milk)。
middle(Z18,X), %从X列表中选择一个房间Z18
drink(Z18,milk),