《人工智能》实验二-图搜索问题求解_第1页
《人工智能》实验二-图搜索问题求解_第2页
《人工智能》实验二-图搜索问题求解_第3页
《人工智能》实验二-图搜索问题求解_第4页
《人工智能》实验二-图搜索问题求解_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、淮海工学院计算工程学院实验报告书课程名: 人工智能 题 目: 实验二:图搜索问题求解 班 级: D软件081 学 号: 姓 名: 汪晓骏 评语:成绩: 指导教师: 批阅时间: 年 月 日实验二 图搜索问题求解实验目的和要求1、熟悉Prolog程序编写环境。2、掌握图搜索问题求解的基本方式。3、完成实验,并自己编写程序。实验重点1、 自己编写程序。2、 掌握头搜索实现方法。实验难点自己编写程序。实验环境Windows XP prolog实验学时3学时,必做实验实验内容及实验步骤:实验内容:有一农夫带一只狼、一只羊和一筐菜欲从河的左岸乘船到右岸,但受下列条件限制:1) 船太小,农夫每次只能带一样东

2、西过河。2) 如果没有农夫看管,则狼要吃羊,样要吃菜。 请设计一个国和方案,使得农夫、狼、羊、菜都能不受损失地过河。画出相应的状态空间图。提示:1) 用四元组(农夫、狼、羊、菜)表示状态,其中每个元素都可为0或1,用0表示在左岸,用以表示在右岸。2) 把每次过河的一种安排作为一个算符,每次过河都必须有农夫,因为只有他可以划船。实验步骤:DOMAINSLOC = east ; west /*定义河的两岸*/STATE = state(LOC,LOC,LOC,LOC) /*定义一个状态表示河两岸的情况*/PATH = STATE* /*状态改变的列表*/PREDICATESgo(STATE,STA

3、TE) /* 开始状态 */path(STATE,STATE,PATH,PATH) /* 记录过河路径 */move(STATE,STATE) /* 移动一个对象 */opposite(LOC,LOC) /*可能的位置 */unsafe(STATE) /* 安全状态检查 */member(STATE,PATH) /* 检查是否记录过此状态 */write_path(PATH)write_move(STATE,STATE)GOAL write(press any key for each step of solution), go(state(east,east,east,east),state

4、(west,west,west,west),write(solved press any key to continue),readchar(_),exit.CLAUSESgo(S,G):-path(S,G,S,L),nl,write(A solution is:),nl,write_path(L),fail.go(_,_).path(S,G,L,L1):- move(S,S1), not( unsafe(S1) ), not( member(S1,L) ), path( S1,G,S1|L,L1),!.path(G,G,T,T):- !. /* 最终状态 */ move(state(X,X,

5、G,C),state(Y,Y,G,C):-opposite(X,Y). /* FARMER and WOLF */move(state(X,W,X,C),state(Y,W,Y,C):-opposite(X,Y). /* FARMER and GOAT */move(state(X,W,G,X),state(Y,W,G,Y):-opposite(X,Y). /* FARMER and CABBAGE */move(state(X,W,G,C),state(Y,W,G,C):-opposite(X,Y). /* FARMER */opposite(east,west).opposite(west

6、,east):-!.unsafe( state(F,X,X,_) ):- opposite(F,X). /* 狼和羊不安全 */unsafe( state(F,_,X,X) ):- opposite(F,X). /* 山羊和卷心菜不安全 */member(X,X|_).member(X,_|L):-member(X,L).write_path( H1,H2|T ) :- !, readchar(_), write_move(H1,H2), write_path(H2|T).write_path( ).write_move( state(X,W,G,C), state(Y,W,G,C) ) :-

7、!, write( farmer crosses the river from ,X, to ,Y),nl.write_move( state(X,X,G,C), state(Y,Y,G,C) ) :-!, write( farmer and Wolf cross rive from ,X, to ,Y),nl.write_move( state(X,W,X,C), state(Y,W,Y,C) ) :-!, write( farmer and Goat cross rive from,X, to ,Y),nl.write_move( state(X,W,G,X), state(Y,W,G,Y) ) :-!,write( farmer and cabbage cro

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论