《人工智能》实验二 图搜索问题求解

《人工智能》实验二 图搜索问题求解

ID:38261246

大小:446.00 KB

页数:5页

时间:2019-06-06

《人工智能》实验二 图搜索问题求解_第1页
《人工智能》实验二 图搜索问题求解_第2页
《人工智能》实验二 图搜索问题求解_第3页
《人工智能》实验二 图搜索问题求解_第4页
《人工智能》实验二 图搜索问题求解_第5页
资源描述:

《《人工智能》实验二 图搜索问题求解》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、淮海工学院计算工程学院实验报告书课程名:《人工智能》题目:实验二:图搜索问题求解  班级:D软件081学号:510856106姓名:汪晓骏评语:成绩:指导教师:批阅时间:年月日《人工智能》实验报告实验二图搜索问题求解实验目的和要求1、熟悉Prolog程序编写环境。2、掌握图搜索问题求解的基本方式。3、完成实验,并自己编写程序。实验重点1、自己编写程序。2、掌握头搜索实现方法。实验难点自己编写程序。实验环境WindowsXPprolog实验学时3学时,必做实验实验内容及实验步骤:实验内容:有一农夫带一只狼、

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

3、LOC,LOC,LOC)/*定义一个状态表示河两岸的情况*/PATH=STATE*/*状态改变的列表*/PREDICATESgo(STATE,STATE)/*开始状态*/path(STATE,STATE,PATH,PATH)/*记录过河路径*/move(STATE,STATE)/*移动一个对象*/opposite(LOC,LOC)/*可能的位置*/unsafe(STATE)/*安全状态检查*/member(STATE,PATH)/*检查是否记录过此状态*/write_path(PATH)3《人工智能》实验

4、报告write_move(STATE,STATE)GOALwrite("pressanykeyforeachstepofsolution"),go(state(east,east,east,east),state(west,west,west,west)),write("solvedpressanykeytocontinue"),readchar(_),exit.CLAUSESgo(S,G):-path(S,G,[S],L),nl,write("Asolutionis:"),nl,write_path(L

5、),fail.go(_,_).path(S,G,L,L1):-move(S,S1),not(unsafe(S1)),not(member(S1,L)),path(S1,G,[S1

6、L],L1),!.path(G,G,T,T):-!./*最终状态*/move(state(X,X,G,C),state(Y,Y,G,C)):-opposite(X,Y)./*FARMERandWOLF*/move(state(X,W,X,C),state(Y,W,Y,C)):-opposite(X,Y)./*FARMERandG

7、OAT*/move(state(X,W,G,X),state(Y,W,G,Y)):-opposite(X,Y)./*FARMERandCABBAGE*/move(state(X,W,G,C),state(Y,W,G,C)):-opposite(X,Y)./*FARMER*/opposite(east,west).opposite(west,east):-!.unsafe(state(F,X,X,_)):-opposite(F,X)./*狼和羊不安全*/unsafe(state(F,_,X,X)):-opp

8、osite(F,X)./*山羊和卷心菜不安全*/member(X,[X

9、_]).member(X,[_

10、L]):-member(X,L).write_path([H1,H2

11、T]):-!,readchar(_),write_move(H1,H2),write_path([H2

12、T]).write_path([]).3《人工智能》实验报告write_move(state(X,W,G,C),state(Y,W,G,C)):-!,write("farmercrossestheriverfrom",X,"to",

13、Y),nl.write_move(state(X,X,G,C),state(Y,Y,G,C)):-!,write("farmerandWolfcrossrivefrom",X,"to",Y),nl.write_move(state(X,W,X,C),state(Y,W,Y,C)):-!,write("farmerandGoatcrossrivefrom",X,"to",Y),nl.write_move(state(X,W,G,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。