资源简介
可以自己输入起始状态和终止状态,包含全局最优搜索,深度最优搜索,广度最优搜索,启发式最优搜索
代码片段和文件信息
package exercise0;
//定义状态结点
public class OneState {
private int id = 1;// 状态编号
private int layer = 1;// 所在层数
private int parent = 0; // 父结点编号
private int estimate = 65535; // 启发权值
public int[][] stateArray; // 状态数组
private operator operate = operator.ROOT;// 父节点执行的操作
public int m n;// 数组行列数
public OneState() {
}
public OneState(int[][] array) {
m = array.length;
n = array[1].length;
stateArray = new int[m][n];
for (int i = 0; i < m; i++)
for (int j = 0; j < n; j++)
stateArray[i][j] = array[i][j];
}
public OneState(OneState x) {
m = x.m;
n = x.n;
id = x.id;
layer = x.layer;
operate = x.operate;
parent = x.parent;
estimate = x.estimate;
stateArray = new int[m][n];
for (int i = 0; i < m; i++)
for (int j = 0; j < n; j++)
this.stateArray[i][j] = x.stateArray[i][j];
}
public void setId(int n) {
id = n;
}
public int getId() {
return id;
}
public void setParent(int n) {
parent = n;
}
public int getParent() {
return parent;
}
public void setlayer(int n) {
layer = n;
}
public int getlayer() {
return layer;
}
public void setOperate(operator x) {
operate = x;
}
public operator getOperate() {
return operate;
}
// 用启发式函数设置启发权值
public void setEstimate(OneState y) {
estimate = 0;
if (m != y.m || n != y.n)
estimate = 65535;
else
for (int i = 0; i < m; i++)
for (int j = 0; j < n; j++)
if (stateArray[i][j] != y.stateArray[i][j])
estimate++;
estimate += layer;
}
public int getEstimate() {
return estimate;
}
public void display() {
String str;
str = “编号为“ + this.id + “的结点位于第“ + this.layer;
if (this.parent == 0)
str += “层,它为初始结点“;
else
str += “层它由编号为“ + this.parent + “的结点通过Move“ + this.operate + “得到“;
for (int i = 0; i < m; i++)
for (int j = 0; j < n; j++) {
if (j % n == 0)
str += “\n“;
str += “ \t“ + stateArray[i][j];
}
System.out.println(str);
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 385 2010-04-14 15:06 eightnums\.project
文件 99 2010-04-14 16:22 eightnums\src\exercise0\operator.java
文件 5102 2010-04-15 19:02 eightnums\src\exercise0\Test5.java
文件 5200 2010-04-15 19:02 eightnums\src\exercise0\Test4.java
文件 1402 2010-04-15 19:17 eightnums\src\exercise0\SqQueue.java
文件 5055 2010-04-15 19:02 eightnums\src\exercise0\Test3.java
文件 10628 2010-04-15 19:03 eightnums\src\exercise0\Test2.java
文件 2138 2010-04-15 16:20 eightnums\src\exercise0\OneState.java
文件 2713 2010-04-15 16:22 eightnums\src\exercise0\Operators.java
文件 10272 2010-04-15 19:02 eightnums\src\exercise0\Test1.java
文件 10203 2010-04-15 19:17 eightnums\src\exercise0\Test0.java
文件 756 2010-04-15 19:17 eightnums\src\exercise0\SqStack.java
文件 1249 2010-04-15 16:37 eightnums\src\exercise0\startclass.java
文件 5017 2010-04-14 21:29 eightnums\src\MyLesson\EightNumber\EightNumber4.java
文件 332 2010-04-14 16:26 eightnums\src\net\javagarage\enums\EnumDemo.java
文件 1232 2010-04-15 08:35 eightnums\bin\net\javagarage\enums\EnumDemo$Seasons.class
文件 789 2010-04-15 08:35 eightnums\bin\net\javagarage\enums\EnumDemo.class
文件 1082 2010-04-15 08:35 eightnums\bin\exercise0\operator.class
文件 6760 2010-04-15 19:03 eightnums\bin\exercise0\Test2.class
文件 6636 2010-04-15 19:02 eightnums\bin\exercise0\Test1.class
文件 6575 2010-04-15 19:17 eightnums\bin\exercise0\Test0.class
文件 1185 2010-04-15 19:17 eightnums\bin\exercise0\SqStack.class
文件 1757 2010-04-15 19:17 eightnums\bin\exercise0\SqQueue.class
文件 2532 2010-04-15 16:22 eightnums\bin\exercise0\Operators.class
文件 3247 2010-04-15 16:20 eightnums\bin\exercise0\OneState.class
文件 2021 2010-04-15 16:37 eightnums\bin\exercise0\startclass.class
文件 4441 2010-04-15 19:02 eightnums\bin\exercise0\Test3.class
文件 4436 2010-04-15 19:02 eightnums\bin\exercise0\Test4.class
文件 4558 2010-04-15 19:02 eightnums\bin\exercise0\Test5.class
文件 2811 2010-04-15 08:35 eightnums\bin\MyLesson\EightNumber\node.class
............此处省略22个文件信息
- 上一篇:java小程序图形用户界面程序设计
- 下一篇:数据使用规范-阿里手册
评论
共有 条评论