資源簡介
一個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
評論
共有 條評論