1 / 8
文档名称:

重排九宫实验报告.doc

格式:doc   大小:149KB   页数:8页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

重排九宫实验报告.doc

上传人:cjl201702 2019/9/27 文件大小:149 KB

下载得到文件列表

重排九宫实验报告.doc

文档介绍

文档介绍:重排九宫算法实验报告1实验目的运用搜索算法重排九宫使之从初始状态到底目标状态,并求解最短路径。2实验内容用三种不同的搜索算法实现重排九宫。本实验用的方法分别是:A*算法、有界深度优先搜索和广度优先搜索。3实验原理启发式搜索是在搜索中加入了与问题有关的启发性信息,用以指导搜索朝着最有希望的方向前进,加速问题的求解过程并找到最优解。A*算法是一种启发式搜索。广度优先搜索按照“先扩展出的节点先被考察”的原则进行搜索。深度优先搜索按照“后扩展出的节点先被考察”的原则进行搜索。有界深度优先搜索的原则与深度优先搜索相同,但是它规定了深度限界,使搜索不得无限制地向纵深方向发展。4解存在算法如下图所示:判断是否有解的算法如下:lassMethod{ publicstaticbooleanParity(inta[]){ booleanparity=true; for(inti=0;i<;i++){ intk=i; for(intj=i+1;j<;j++){ if(a[k]>a[j]){ k=j; } } if(k!=i){ inttemp; temp=a[i]; a[i]=a[k]; a[k]=temp; parity=!parity; } } returnparity; } publicstaticbooleanisSolutionExist(intsrc[],intdest[],ints[][],intd[][]){ introw1=0,row2=0,clumn1=0,clumn2=0; booleanflag1,flag2; for(inti=0;i<3;i++){ for(intj=0;j<3;j++){ if(s[i][j]==0){ row1=i; clumn1=j; } if(d[i][j]==0){ row2=i; clumn2=j; } } } if((row1-row2+clumn1-clumn2)%2==0){ flag1=true; }else{ flag1=false; } if(Parity(src)==Parity(dest)){ flag2=true; }else{ flag2=false; } if(flag1==flag2){ returntrue; }else{ returnfalse; } }lassNode{ intdata[][];//状态 introw;//0所在行 intclumn;//0所在列 Nodeparent;//父亲节点 Node(intdata[][],Nodeparent,introw,intclumn){ =data; =parent; =row; =clumn; } }{ booleanflag=false; intd