目前正在了解A*
搜索算法并使用它来查找N-Puzzle
的最快解决方案。对于初始起始状态的一些随机种子,拼图可能是无法解决的,这将导致极长的等待时间,直到算法搜索整个搜索空间并确定没有解决给定开始状态。
我想知道是否有一种预先计算A*
算法是否无法避免这种情况的方法。我已经阅读了一些关于它是如何可行的内容,但无法找到一个直接的答案。
感谢任何指导或选择。
答案 0 :(得分:2)
我认为A *不会为您提供一种机制来了解问题是否可解决。特别是N-Puzzle
,我认为这可以帮助您检查是否可以解决:
http://www.geeksforgeeks.org/check-instance-8-puzzle-solvable/
似乎如果你处于一个奇数量反转的状态,你肯定知道这种排列的问题是不可行的。
答案 1 :(得分:2)
具体来说,对于N拼图,只有两个可能的奇偶校验,所以你只需要检查当前拼图是哪个奇偶校验。
有关如何在math stackexchange
上执行此操作的详细说明对于一般A *问题,不,如果图表是可解的,则无法预先计算。