中南民族大学人工智能导论实验报告

中南民族大学人工智能导论实验报告

ID:47633000

大小:387.18 KB

页数:21页

时间:2019-09-21

中南民族大学人工智能导论实验报告_第1页
中南民族大学人工智能导论实验报告_第2页
中南民族大学人工智能导论实验报告_第3页
中南民族大学人工智能导论实验报告_第4页
中南民族大学人工智能导论实验报告_第5页
资源描述:

《中南民族大学人工智能导论实验报告》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、院系:专业:年级:课程名称:学号:姓名:指导教师:计算机科学学院XXXXXX级人工智能导论XXX2013年12月1日年级XXX级XXX学号XXX专业XXX姓名XXX实验名称水壶问题实验类型设计型综合型创新型实验目的或要求给定A,B两个个水壶,一个最终状态C,其中水壶A的容量为V_A,水壶B的容量为V_B,求是否可以通过水壶A和B,使得最终A或B中水的体积为C实验原理(算法流程)约定有6屮操作,并分别记为操作号1,2,3,4,5,6FILL(A)将A壶装满FILL(B)将B壶装满Empty(A)将A壶中的水倒空Empty(B)将B壶中的水倒空Pour(A,B)将水从A壶倒到B壶Pour

2、(B,A)将水从B壶倒到A壶A,B壶的初始状态为空,显然这是一颗六叉树,并11这不是一颗完整的六叉树,因为有一些节点并不符合,对于不合法的节点,将它剪掉(剪枝操作)广度优先搜索(BFS):(1)将首节点(0,0)入队(2)队列不为空循环[2.1]队首节点出队,判断A,B壶中是否至少有一个达到C状态[2.2]对于6种操作,每个父节点产生6个新的节点,将合法的节点入队,不和法的节点剪掉(3)如果有可行解,打印可行解组内分工(可选)实验结果分析及心得体会成绩评定教师签名:2013年月日运行结果截图:rI下:'PROGRAMFILESMICROSOFTVISUALSTUDIOMYP682

3、TotalStep:2FillPourCB,A>354TotalStep:6FillPourCB,A>£mptyPourCB,A>FillPour146NoSolution.备注:源代码附后,源代码要求有注释说明代码:#include#include#include#include#include#defineM1000intvis[M+5][M+5];intaNum,bNum,eNum;structNode/*状态节点*/{intx;inty;intste

4、p;};structparent/*记忆表*/{intpx;intpy;}prev[M+5][M+5];voiddfs(intx,inty){if(prev[x][yj.px+prev[xj[y].py!=0){dfs(prev[x][yl.px,prev[x][y].py);}/*EndofIf*/intprex=prev[x][y].px;intprey=prev[x][yj.py;/*Fill(A)*/if(prex!=aNum&&x==aNum&&y==prey){printf(,,FiIl(A)H);return;}/*Fill(B)*/if(prey!=bNum&&y

5、==bNum&&x==prex){printf(”Fill(B)iT);return;}/*Empty(A)*/if(prex!=0&&x==0&&y==prcy){printf(HEmpty(A)u);return;/*Empty(B)*/if(prey!=O&&y==0&&x==prex){printf(nEmpty(B)H);return;}/*Pour(A,B)orPour(B,A)*/if(prex+prey==x+y){/*倒水前后总水量不变*/if(x==0

6、

7、y==bNum){printf("Pour(A,B)H);)else{printf(MPour(

8、B,A)n);}return;)}/*dfs*/voidBFS(){intIsSolve=0;/*问题求解标志,初始时问题未被求解*/intrear=-1;/*队列尾指针*/intfront=-1;/*队首指针*/Nodecur,next;Nodequeue[M+10]={0};cur.x=0;/*当前水壶A状态*/cur.y=0;/*当前水壶B状态*/cur.step=0;/*记录当前步数*/queue[++rear]=cur;/*初始状态入队*/vis[0][0]=1;/*初始状态设为己被访问*/while(front!=rear){/*队列不为空时循环*/cur=queue

9、[++front];if(cu匚x==cNum

10、

11、cuiy==cNum){IsSolve=1;printf(nTotalStep:%dfcur.step);dfs(cur.x,cur.y);/*dfs回溯打印可行方案*/break;}/*EndofIf*//*operationstepaddone*/next.step=cur.step+1;/*OP1:Fill(A)*/next.x=aNum;next.y=cu匚y;if(!vis[next.x]

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

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

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