Artificial intelligence 你如何用A-Star或Dijkstra';s算法?

Artificial intelligence 你如何用A-Star或Dijkstra';s算法?,artificial-intelligence,graph-theory,dijkstra,a-star,Artificial Intelligence,Graph Theory,Dijkstra,A Star,我在我的一本AI书籍中读到,在模拟或游戏中用于路径查找的流行算法(A-Star、Dijkstra)也被用于解决著名的“15难题” 有谁能给我一些建议,告诉我如何将15个难题简化为一个节点和边的图形,以便我可以应用其中一个算法 如果我将图中的每个节点视为一个游戏状态,那么这棵树不会变得很大吗?或者这只是一种方法吗?只需使用游戏树即可。请记住,树是图形的一种特殊形式 在您的情况下,每个节点的叶子将是您在当前节点上进行一个可用移动后的游戏位置。快速的谷歌搜索会找到一些文章,详细介绍了这一点:一篇在上,

我在我的一本AI书籍中读到,在模拟或游戏中用于路径查找的流行算法(A-Star、Dijkstra)也被用于解决著名的“15难题”

有谁能给我一些建议,告诉我如何将15个难题简化为一个节点和边的图形,以便我可以应用其中一个算法


如果我将图中的每个节点视为一个游戏状态,那么这棵树不会变得很大吗?或者这只是一种方法吗?

只需使用游戏树即可。请记住,树是图形的一种特殊形式


在您的情况下,每个节点的叶子将是您在当前节点上进行一个可用移动后的游戏位置。

快速的谷歌搜索会找到一些文章,详细介绍了这一点:一篇在上,一篇在上


当涉及到算法问题时,一般的经验法则是:可能有人在你之前做过,并发表了他们的发现。

同样。请注意,至少使用A-Star算法,您将需要找出一个可接受的启发式,以确定可能的下一步是否比另一步更接近完成的路线。

对于A-Star的15个谜题,一个好的启发式是位于错误位置的方块数。因为你需要每一个不合适的方块至少移动一次,所以不合适的方块数量保证小于或等于解谜所需的移动数量,使其成为A-Star的适当启发式。

给你

这是一个关于使用A*算法的8字谜问题的作业,非常详细,但也非常简单:


记住,A*将搜索问题空间,沿着heurestic定义的最可能的目标路径前进


只有在最坏的情况下,它才会淹没整个问题空间,当您的问题没有实际的解决方案时,这种情况往往会发生。

解决问题的图论方法是将电路板的每个配置想象为图形的顶点,然后使用呼吸优先搜索,并根据电路板的Manhatten距离等进行修剪,以从起点导出最短路径解决方案的配置

这种方法的一个问题是,对于任何
nxn
棋盘,其中
n>3
游戏空间变得如此之大,以至于不清楚如何有效地标记访问的顶点。换句话说,没有明显的方法来评估电路板的当前配置是否与之前通过遍历其他路径发现的配置相同。另一个问题是,随着
n
(大约是
(n^2)!
)的增加,图形大小增长得如此之快,以至于它不适合于brue force攻击,因为路径的数量在计算上变得不可行

Ian Parberry的这篇文章描述了一个简单的贪心算法,它通过完成第一行、第一列、第二行、第二行、第二行、第二行、第二行、第二行、第二行、第二行、第三行、第三行、第三行、第三行、第三行、第三行、第三行。。。它几乎立刻就得到了一个解决方案,但是这个解决方案远远不是最优的;从本质上讲,它解决了问题的方式,人类将不利用任何计算肌肉

这个问题与求解魔方密切相关。所有游戏的图表都表明它太大,无法用brue force求解,但有一个相当简单的7步方法,可以用于灵巧的人在大约1~2分钟内求解任何立方体。这条道路当然不是最优的。通过学习识别定义动作序列的模式,速度可以降低到。然而,Jiri的这一壮举有点超人


Parberry描述的方法一次只移动一块瓷砖;有人设想,通过利用Jiri的灵巧性和一次移动多个瓷砖,可以更好地构造该算法。正如帕贝里所证明的那样,这不会减少路径长度从
n^3
,但会减少前导项的系数。

根据我目前的经验,如何解决一个8字谜。 需要创建节点。跟踪所采取的每一步 从下面的每一步中得到曼哈顿距离,走/走到距离最短的一步。
更新节点,然后继续,直到达到目标

这闻起来像是compsci作业!这是一个很常见的问题。我认为你提出的指标不适合这个问题。直觉上,它会很容易受到一些碎片在电路板错误一侧的情况的影响。你们可能会在距离最终位置的距离总和上做得更好。谢谢,这是我的页面!有代码可以解决8个难题,它是基于Ivan Bratko的Prolog编程中的处理。一个可接受的启发式只需要永远不要高估所需的步骤数。如果你能分辨出两个步骤中哪一个更接近,你就不会进行通常意义上的搜索,只是在步骤接近时重复这些步骤,如果你的链接已经失效。