欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    人工智能实验资料报告材料70296.doc

    • 资源ID:1173421       资源大小:285.06KB        全文页数:10页
    • 资源格式: DOC        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    人工智能实验资料报告材料70296.doc

    实 验 报 告实验名称PROLOG语言编程练习与图搜索问题求解课程名称人工智能与应用一、 实验目的与要求实验目的:1. 熟悉PROLOG的运行环境,进展PROLOG的根本编程练习。了解PROLOG语言中常量、变量的表示方法。PROLOG的简单程序结构,掌握分析问题、询问解释技巧;进展事实库、规如此库的编写,并在此根底上进展简单的询问。具体实验课上相关容,练习example1到example6的容。2. 图搜索问题求解。实验要求:1. 爱因斯坦的超级问题有五个房子,每个房子的颜色不同,里面分别住着不同国家的人,每个人都有自己养的不同的宠物,喜欢喝不同的饮料,抽不同牌子的烟。现在以下的一些信息:a) 英国人englishman住在红色red的房子里b) 西班牙人spaniard养了一条狗dogc) 挪威人norwegian住在左边的第一个房子里d) 黄房子yellow里的人喜欢抽kools牌的香烟e) 抽chesterfields牌香烟的人与养狐狸fox的人是邻居f) 挪威人norwegian住在蓝色blue的房子旁边 g) 抽winston牌香烟的人养了一只蜗牛Snailsh) 抽Lucky Strike牌香烟的人喜欢喝桔子汁orange juicei) 乌克兰人ukrainian喜欢喝茶teaj) 日本人japanese抽parliaments牌的烟k) 抽kools牌的香烟的人与养马horse的人是邻居 l) 喜欢喝咖啡coffee的人住在绿green房子里 m) 绿green房子在象牙白ivory房子的右边图中的右边n) 中间那个房子里的人喜欢喝牛奶milko) 根据以上条件,你能告诉我哪个房子里的人养斑马zebra,哪个房子里的人喜欢喝水water吗?或者你能把所有的东西都对号入座吗?2. 传教士与野人问题传教士和食人者问题The Missionaries and Cannibals Problem。在河的左岸有3个传教士、1条船和3个食人者,传教士们想用这条船将所有的成员运过河去,但是受到以下条件的限制:1传教士和食人者都会划船,但船一次最多只能装运两个;2在任何岸边食人者数目都不得超过传教士,否如此传教士就会遭遇危险:被食人者攻击甚至被吃掉。此外,假定食人者会服从任何一种过河安排,试规划出一个确保全部成员安全过河的计划。二、所用仪器、设备PC机和trinc prolog编译软件三、实验原理PROLOG语言是一种以逻辑推理为根底的逻辑型程序设计语言,是一种述性语言而不是过程性语言。PROLOG语言能够自动实现模式匹配和回溯、具备递归技术,而且语法简明,可以简化复杂问题求解。四、实验方法与步骤1. 打开trinc prolog编译软件2. 新建文本并(FlieNewText Edit)3. 根据实验要求在新建的文本中输入程序代码4. 保存(Save)并编译(pile)5. 在trinc prolog下输入问题显示(Prove)实验要求的结果五、求解的问题与程序1. 爱因斯坦的超级问题代码: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是Cnation(h(C,N,P,Y,D),N). %h(C,N,P,Y,D)的nation是Npet(h(C,N,P,Y,D),P). %h(C,N,P,Y,D)的pet是Pyan(h(C,N,P,Y,D),Y). %h(C,N,P,Y,D)的yan是Ydrink(h(C,N,P,Y,D),D). %h(C,N,P,Y,D)的drink的是D %定义邻居关系的谓词nextnext(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的表头%定义房子右边的关系谓词rightright(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列表中选择一个房间Z1color(Z1,red), %Z1的颜色是rednation(Z1,englishman), %Z1里住的人是englishman%西班牙人spaniard养了一条狗dog。member(Z2,X), %从X列表中选择一个房间Z2pet(Z2,dog), %Z2里养的宠物是dognation(Z2,spaniard), %Z2里住的人是spaniard%挪威人norwegian住在左边的第一个房子里。first(Z3,X), %X列表中第一个房间Z3nation(Z3,norwegian), %Z3里住的人是norwegian%黄房子yellow里的人喜欢抽kools牌的香烟。member(Z4,X), %从X列表中选择一个房间Z4yan(Z4,kools), %Z4里抽的烟是koolscolor(Z4,yellow), %Z4的颜色是yellow%抽chesterfields牌香烟的人与养狐狸fox的人是邻居。member(Z5,X), %从X列表中选择一个房间Z5pet(Z5,fox), %Z5里养的宠物是foxnext(Z6,Z5,X), %Z5的邻居是Z6yan(Z6,chesterfields), %Z6里抽的烟是chesterfields%挪威人norwegian住在蓝色blue的房子旁边。member(Z7,X), %从X列表中选择一个房间Z7color(Z7,blue), %Z7的颜色是bluenext(Z8,Z7,X), %Z7的邻居是Z8nation(Z8,norwegian), %Z8里住的人是norwegian%抽winston牌香烟的人养了一只蜗牛Snails。member(Z9,X), %从X列表中选择一个房间Z9yan(Z9,winston), %Z9里抽的烟是winstonpet(Z9,snails), %Z9里养的宠物是snails%抽Lucky Strike牌香烟的人喜欢喝桔子汁orange juice。member(Z10,X), %从X列表中选择一个房间Z10drink(Z10,'orange juice'), %Z10里喝的饮料是orange juiceyan(Z10,'Lucky Strike'), %Z10里抽的烟是Lucky Strike%乌克兰人ukrainian喜欢喝茶tea。member(Z11,X), %从X列表中选择一个房间Z11nation(Z11,ukrainian), %Z11里住的人是ukrainiandrink(Z11,tea), %Z11里喝的饮料是tea%日本人japanese抽parliaments牌的烟。member(Z12,X), %从X列表中选择一个房间Z12nation(Z12,japanese), %Z12里住的人是japaneseyan(Z12,parliaments), %Z12里抽的烟是parliaments%抽kools牌的香烟的人与养马horse的人是邻居member(Z13,X), %从X列表中选择一个房间Z13pet(Z13,horse), %Z13里养的宠物是horsenext(Z14,Z13,X), %Z13的邻居是Z14yan(Z14,kools), %Z14里抽的烟是kools%喜欢喝咖啡coffee的人住在绿green房子里。member(Z15,X), %从X列表中选择一个房间Z15color(Z15,green), %Z15的颜色是greendrink(Z15,coffee), %Z15里喝的饮料是office%绿green房子在象牙白ivory房子的右边图中的右边member(Z16,X), %从X列表中选择一个房间Z16color(Z16,ivory), %Z16的颜色是ivoryright(Z16,Z17,X), %在Z16右边的房子是Z17color(Z17,green), %Z17的颜色是green%中间那个房子里的人喜欢喝牛奶milk。middle(Z18,X), %从X列表中选择一个房间Z18drink(Z18,milk), %Z18里喝的饮料是milk%以上是所以的条件,下面开始回答我们的问题%找出宠物为zebra的房间。member(TT,X), %从X列表中选择一个房间TTpet(TT,zebra), %TT里养的宠物是zebra%找出喝水的房间。member(TTT,X), %从X列表中选择一个房间TTTdrink(TTT,water). %TTT里喝的饮料是water2. 传教士与野人问题代码:%船上所能够载人的状态就是可能的操作move(1,0). %表示船上有一位传教士,没有野人move(0,1). %表示船上没有传教士,有一位野人move(0,2). %表示船上没有传教士,有两位野人move(2,0). %表示船上有两位传教士,没有野人move(1,1). %表示船上有一位传教士,一个野人%判断两岸的状态是否合法legal(X,Y,_):- %X为左岸,Y为右岸,_取0左岸或1右岸legal1(X), %判断左岸的状态是否合法legal1(Y). %判断有岸的状态是否合法legal1(X,Y):-X=:=0,Y>=0,!. %传教士人数为0,野人的人数大于0,合法legal1(X,Y):-Y=:=0,X>=0,!. %野人人数为0,传教士的人数大于0,合法legal1(X,Y):-X>=Y,X>=0,Y>=0.%传教士数大于等于野人数,且都大于0,合法%update谓词能够完成把合理的移动作用的某个状态上,从而到达新的状态。update(X,Y,0),Move,Statu1):- %船在左岸将要采取的操作。(A,B)=X, %X储存A,B两个数值(C,D)=Y, %Y储存C,D两个数值(E,F)=Move, %船上Move储存传教士E,野人F两个数值C1 is C+E, %用C1记录C+E的结果D1 is D+F, %用D1记录D+F的结果A1 is A-E, %用A1记录A-E的结果B1 is B-F, %用B1记录B-F的结果Statu1=(A1,B1),(C1,D1),1). %船到右岸后左右两岸传教士野人的人数状况update(X,Y,1),Move,Statu1):- %船在右岸将要采取的操作。(A,B)=X, %X改为储存A,B两个数值(C,D)=Y, %Y改为储存C,D两个数值(E,F)=Move, %船上Move重新储存传教士E,野人F两个数值C1 is C-E, %C1重新记录C-E的结果D1 is D-F, %D1重新记录D-F的结果A1 is A+E, %A1重新记录A+E的结果B1 is B+F, %B1重新记录B+F的结果Statu1=(A1,B1),(C1,D1),0). %船到右岸后左右两岸传教士野人的人数状况%connect谓词得到正确操作船的方案connect(Statu,Statu1):- move(X,Y), %船载传教士X,野人Yupdate(Statu,(X,Y),Statu1), %更新两岸传教士野人的人数状况legal(Statu1). %判断Statu1两岸的状态是否合法member(X,X|Tail).member(X,Head|Tail):-member(X,Tail). %判断对象X是表的成员%再使用深度搜索方法就可以找到答案了findroad(X,X,L,L). %递归的边界条件findroad(X,Y,L,L1):- % L为储存的路径表connect(X,Z),not(member(Z,L),%当前状态Z不在已经储存的路径表中findroad(Z,Y,Z|L,L1). %形成递归六、讨论与结论1. 爱因斯坦的超级问题用PROLOG语言解决爱因斯坦的超级问题主要是先定义谓词描述事实,再用定义的谓词描述的容,最后定义所求的谓词求解。本实验主要是运用表,对的信息与表中的进展匹配得到最后的结果。2. 传教士与野人问题图搜索问题解决传教士与野人问题,PROLOG语言能够自动实现模式匹配和回溯、具备递归技术。本实验的重点是定义递归谓词,然后是船的操作谓词,最后还有的是判断传教士是否安全的谓词,在定义完上面所述的谓词后,输入原状态和最后得到岸对面的状态,通过自动匹配,递归等得出可行方案。七、所附实验输出的结果或数据1. 爱因斯坦超级问题的输出结果(如如下图)2. 传教士与野人问题输出的结果(如如下图)八、Prolog实验课的问题程序例子中用到过哪些环境自带的谓词?1) 比拟谓词>=,输出谓词write(X),否认谓词not(X)2) example2.txt中没有运用环境自带的谓词3) example3.txt中运用了输出谓词write(X),nl谓词,接口谓词fail4) example4.txt中运用了输出谓词write(X)5) example5.txt中运用了输出谓词write(X),nl谓词,接口谓词fail,截断谓词!6) Example6.txt中运用了截断谓词!7) Example7.txt中没有运用环境自带的谓词

    注意事项

    本文(人工智能实验资料报告材料70296.doc)为本站会员(李司机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开