EightFigure

所属分类:人工智能/神经网络/深度学习
开发工具:Java
文件大小:2214KB
下载次数:65
上传日期:2005-07-08 15:24:06
上 传 者270500
说明:  自己用JAVA编的人工智能的A*算法的八数码程序
(own use JAVA series of the artificial intelligence of the A* algorithm eight digital procedures)

文件列表:
EightFigure (0, 2004-05-12)
EightFigure\EightFigure.jpx.local~ (1496, 2004-05-12)
EightFigure\EightFigure.jpx~ (0, 2004-05-12)
EightFigure\EightFigure.jpx (2354, 2004-05-18)
EightFigure\src (0, 2004-05-12)
EightFigure\src\eightfigure (0, 2004-05-12)
EightFigure\src\eightfigure\searchProcess.java~4~ (8960, 2004-05-21)
EightFigure\src\eightfigure\Frame2.java (2421, 2004-05-21)
EightFigure\src\eightfigure\Frame1.java (8974, 2004-05-21)
EightFigure\src\eightfigure\searchProcess.java (8958, 2004-05-24)
EightFigure\src\eightfigure\searchProcess.java~1~ (5791, 2004-05-14)
EightFigure\src\eightfigure\searchProcess.java~2~ (6814, 2004-05-15)
EightFigure\src\eightfigure\searchProcess.java~3~ (8484, 2004-05-17)
EightFigure\src\eightfigure\mainProcess.java (1295, 2004-05-20)
EightFigure\bak (0, 2004-05-12)
EightFigure\bak\eightfigure (0, 2004-05-12)
EightFigure\bak\eightfigure\Frame2.java~78~ (2322, 2004-05-21)
EightFigure\bak\eightfigure\Frame2.java~79~ (2446, 2004-05-21)
EightFigure\bak\eightfigure\searchProcess.java~142~ (8930, 2004-05-21)
EightFigure\bak\eightfigure\Frame2.java~81~ (2588, 2004-05-21)
EightFigure\bak\eightfigure\Frame2.java~82~ (2590, 2004-05-21)
EightFigure\bak\eightfigure\searchProcess.java~134~ (12653, 2004-05-21)
EightFigure\bak\eightfigure\searchProcess.java~140~ (8931, 2004-05-21)
EightFigure\bak\eightfigure\searchProcess.java~136~ (12112, 2004-05-21)
EightFigure\bak\eightfigure\searchProcess.java~137~ (12224, 2004-05-21)
EightFigure\bak\eightfigure\searchProcess.java~138~ (8931, 2004-05-21)
EightFigure\bak\eightfigure\searchProcess.java~139~ (8932, 2004-05-21)
EightFigure\bak\eightfigure\Frame2.java~80~ (2447, 2004-05-21)
EightFigure\bak\eightfigure\searchProcess.java~141~ (8932, 2004-05-21)
EightFigure\bak\eightfigure\Frame1.java~28~ (8974, 2004-05-21)
EightFigure\bak\eightfigure\Frame2.java~83~ (2478, 2004-05-21)
EightFigure\bak\eightfigure\Frame2.java~84~ (2474, 2004-05-21)
EightFigure\bak\eightfigure\Frame1.java~29~ (8981, 2004-05-21)
EightFigure\bak\eightfigure\Frame2.java~76~ (2323, 2004-05-21)
EightFigure\bak\eightfigure\Frame2.java~77~ (2590, 2004-05-21)
EightFigure\bak\eightfigure\searchProcess.java~135~ (12281, 2004-05-21)
EightFigure\bak\eightfigure\searchProcess.java~143~ (8932, 2004-05-21)
EightFigure\bak\eightfigure\Frame2.java~75~ (2556, 2004-05-21)
EightFigure\bak\eightfigure\Frame1.java~20~ (8729, 2004-05-19)
EightFigure\bak\eightfigure\Frame1.java~21~ (8858, 2004-05-19)
... ...

尚老师暂时我还没作出来扩展节点的显示,我先把这个发过来吧, 我尽量把扩展节点显示出来,有的地方我还没想明白,如果做出来,我再发过去。 你让我做的一些JAVA小程序,我整理一下,下周给您发过去。 说明: 本程序在JBuilder环境下运行 EightFigure 问题程序由四部分组成: Frame1.java 显示初始界面 ,初始化,调用searchProcess和Frame2 Frame2.java 显示运行结果界面 mainProcess.java 系统自动生成的程序运行的入口,运行时右键点击此处运行 searchProcess.java 系统主要的执行过程,为本程序的主要部分。 searchProcess.java 程序的关键原码如下: public class searchProcess { public Vector open=new Vector(); public Vector close=new Vector(); public int pnodeId=0; public Vector execute(int[][] Source,int[][] Dest){ boolean flag; Node source=new Node(0,0,Source,0,0,0); Node dest=new Node(0,0,Dest,0,0,0); source.h=caculatemove(source,dest); source.f=source.g+source.h; push(source,open); Node pnode=source; while(flag=true){ //OPEN表为空退出 if(open.isEmpty()){ flag=false; break; } pnode=pop(open); push(pnode,close); if (judgesame(pnode, dest)) //找到目标退出 break; extendnode(pnode,dest); queopen(); } Node Father; //根据父节点找最佳路径 Vector Result=new Vector(); int k=0; if(flag=true){ Result.add(pnode); int m=pnode.parentid; while(m>0){ Father=found(m,close,source); m=Father.parentid; Result.add(Father); k++; } } else{ //没找到标志 System.out.print("no found"); } Result.add(source); return Result; //即为结果 } ////////////////////////////////////// //以下是EXECUTE实现的所有方法: public void push(Node node,Vector ope){ //将NODE加进OPEN表 ope.add(node); } public Node pop(Vector ope){ //将OPEN表的第一个NODE弹出 Node firstnode=(Node)ope.get(0); ope.removeElementAt(0); return firstnode; } public Node found(int k,Vector vec,Node Source){ //在CLOSE表中ID号相同的NODE Node result=Source; int i; for(i=0;i-1) { int[][] arr=new int[3][3]; boolean flag=true; Node pnewnode=new Node(0,0,arr,0,0,0); for(int i=0;i<=2;i++) for( int j=0;j<=2;j++) pnewnode.arr[i][j]=pnode.arr[i][j]; pnewnode.arr[m][n]=pnewnode.arr[m-1][n]; pnewnode.arr[m-1][n]=0; int k=0; while(k-1) { int[][] arr=new int[3][3]; boolean flag=false; Node pnewnode=new Node(0,0,arr,0,0,0); for( int i=0;i<=2;i++) for(int j=0;j<=2;j++) pnewnode.arr[i][j]=pnode.arr[i][j]; pnewnode.arr[m][n]=pnewnode.arr[m][n-1]; pnewnode.arr[m][n-1]=0; int k=0; while(k0) nume=num; else nume=-num; return nume; } } class Node { //定义NODE 结构 int Id; int[][] arr=new int[3][3]; int parentid; int g; int f; int h; public Node() {} public Node(int Id,int parentid,int[][] arr,int f,int g,int h) { this.Id=Id; this.parentid=parentid; for(int i=0;i<=2;i++) {for(int j=0;j<=2;j++) this.arr[i][j]=arr[i][j]; } this.f=f; this.g=g; this.h=h; } }

近期下载者

相关文件


收藏者