预先计算 A* 的结果

Precalculate Result of A*

目前正在学习 A* 搜索算法并使用它找到 N-Puzzle 的最快解决方案。对于初始起始状态的一些随机种子,难题可能无法解决,这将导致等待时间非常长,直到算法搜索整个搜索-space 并确定没有解决给定起始状态的方法。

我想知道是否有一种方法可以预先计算A*算法是否会避免这种情况。我已经阅读了一些有关如何实现的内容,但找不到关于执行此操作的方法的直接答案。

欢迎提供任何指导或选项。

我认为 A* 没有为您提供一种机制来了解问题是否可解决。专门针对N-Puzzle,我想这可以帮助你检查它是否可以解决:

http://www.geeksforgeeks.org/check-instance-8-puzzle-solvable/

看来,如果你处于奇数反转的状态,你肯定知道该排列的问题是不可行的。

具体到N-puzzle,只有两种可能的奇偶校验,所以你只需要检查当前拼图是哪一种奇偶校验即可。

math stackexchange

上有关于如何执行此操作的深入解释

对于一般的 A* 问题,不,如果图是可解的,就没有办法预先计算。