资源简介

一个java实现的A*算法来实现八数码,十五数码问题。启发函数为f(n)=d(n)+p(n)。本程序中八数码、十五数码均可计算,预先定义了初始状态和最终状态(可以根据需求改为控制台输入的)。

资源截图

代码片段和文件信息

import java.util.Arrays;

public class FifteenDigitalNode implements Comparable{
private int Fn;//启发函数值
private int Hn;//Hn=Pn不在位状态到在位状态距离之和
private int Gn;//Gn=Dn 当前的深度
private int[][] nodeValue;//状态矩阵
private FifteenDigitalNode parent;//当前状态的父状态
public FifteenDigitalNode(int fn int hn int gn int[][] nodeValue) {
super();
Fn = fn;
Hn = hn;
Gn = gn;
this.nodeValue = nodeValue;
}
public int getFn() {
return Fn;
}
public int getHn() {
return Hn;
}
public int getGn() {
return Gn;
}
public int[][] getNodeValue() {
return nodeValue;
}
public void setFn() {
Fn = Hn+Gn;
}
public void setHn(int hn) {
Hn = hn;
}
public void setGn(int gn) {
Gn = gn;
}
public void setNodeValue(int[][] nodeValue) {
this.nodeValue = nodeValue;
}
public FifteenDigitalNode getParent() {
return parent;
}
public void setParent(FifteenDigitalNode parent) {
this.parent = parent;
}
@Override
public int compareTo(object o) {
// TODO Auto-generated method stub
FifteenDigitalNode fNode=(FifteenDigitalNode)o;
return this.Fn-fNode.getFn();
}
//判断当前状态是否是目标状态
 public boolean isTarget(FifteenDigitalNode target){  
        return Arrays.equals(getNodeValue() target.getNodeValue());  
    }  
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        301  2018-01-05 16:35  FifteenDigital2\.classpath

     文件        391  2018-01-05 16:35  FifteenDigital2\.project

     文件        598  2018-01-05 16:35  FifteenDigital2\.settings\org.eclipse.jdt.core.prefs

     文件       1810  2018-01-06 15:32  FifteenDigital2\bin\FifteenDigitalNode.class

     文件       3220  2018-01-10 10:49  FifteenDigital2\bin\Test.class

     文件       3182  2018-01-10 10:42  FifteenDigital2\bin\Utils.class

     文件       1347  2018-01-05 22:46  FifteenDigital2\src\FifteenDigitalNode.java

     文件       2840  2018-01-10 10:49  FifteenDigital2\src\Test.java

     文件       3463  2018-01-10 10:42  FifteenDigital2\src\Utils.java

     目录          0  2018-01-11 20:03  FifteenDigital2\.settings

     目录          0  2018-01-11 20:03  FifteenDigital2\bin

     目录          0  2018-01-11 20:03  FifteenDigital2\src

     目录          0  2018-01-11 20:03  FifteenDigital2

----------- ---------  ---------- -----  ----

                17152                    13


评论

共有 条评论