Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用A*算法解8字谜_Java_Algorithm - Fatal编程技术网

Java 用A*算法解8字谜

Java 用A*算法解8字谜,java,algorithm,Java,Algorithm,我想用Java中的A*算法解决/实现8个难题。我在问是否有人能帮助我,向我解释解决这个问题必须遵循的步骤。我在网上读过A*是如何工作的,但我不知道如何开始用Java实现 如果你们能帮助我,给我一些指导方针,让我自己用Java实现它,我将非常感激。我真的很想这样做,以便能够理解它,所以我只需要开始的指导方针 我将使用优先级队列,并从文本文件中读取初始配置,例如: 4 3 6 1 2 5 7 8 欢迎指向其他站点以获取更多解释/教程。我首先决定如何表示游戏板状态, 然后执行操作(例

我想用Java中的A*算法解决/实现8个难题。我在问是否有人能帮助我,向我解释解决这个问题必须遵循的步骤。我在网上读过A*是如何工作的,但我不知道如何开始用Java实现

如果你们能帮助我,给我一些指导方针,让我自己用Java实现它,我将非常感激。我真的很想这样做,以便能够理解它,所以我只需要开始的指导方针


我将使用优先级队列,并从文本文件中读取初始配置,例如:

4  3  6
1  2  5
7  8  

欢迎指向其他站点以获取更多解释/教程。

我首先决定如何表示游戏板状态, 然后执行操作(例如,向上移动(空白)平铺,向下移动(空白)平铺,…)。 通常,您将有一个数据结构来表示开放列表(即这些状态 已发现但尚未探索(即与目标状态相比)和另一个 封闭列表(即发现和探索的那些状态,发现它们不是目标状态)。 您使用起始状态为打开列表种子,并重复使用“下一个”状态 从开放列表中进行探索,对其应用运算符以生成新的可能状态 等等

我多年前在以下网站准备了一个教程:


不过,它远不是状态空间搜索的权威词汇,它只是对那些全新概念的人的一种教育工具。

A*与Djikstra的算法非常相似,只是它包含了一个启发式算法。你可能想读一读,或者读一读关于单源最短路径算法的一般知识

很多基本的东西都很重要,但很明显。你需要代表电路板并创建一个方法来生成可能的下一个状态


任何位置的基本分数显然都是达到该位置的实际移动的最小数量。要使A*起作用,您需要一个启发式,可以帮助您选择可能的下一个状态的最佳选项。一个启发式可能是正确位置的碎片数。

检查它描述了解决这个问题的方法。

您需要登录链接。