2

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

我想知道是否有一种方法可以预先计算A*算法是否无法避免这种情况。我已经阅读了一些关于它是如何可能的,但找不到关于如何做到这一点的直接答案。

任何指导或选项表示赞赏。

4

2 回答 2

2

我认为 A* 并没有为您提供一种机制来了解问题是否可以解决。具体来说N-Puzzle,我认为这可以帮助您检查它是否可以解决:

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

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

于 2017-09-21T18:59:24.473 回答
2

特别是对于 N-puzzle,只有两个可能的奇偶校验,所以你只需要检查当前拼图是哪个奇偶校验。

有关如何在数学 stackexchange上执行此操作的深入解释

对于一般的 A* 问题,不,如果图是可解的,则无法预先计算。

于 2017-09-21T19:01:21.580 回答