预先计算 A* 的结果
Precalculate Result of A*
目前正在学习 A*
搜索算法并使用它找到 N-Puzzle
的最快解决方案。对于初始起始状态的一些随机种子,难题可能无法解决,这将导致等待时间非常长,直到算法搜索整个搜索-space 并确定没有解决给定起始状态的方法。
我想知道是否有一种方法可以预先计算A*
算法是否会避免这种情况。我已经阅读了一些有关如何实现的内容,但找不到关于执行此操作的方法的直接答案。
欢迎提供任何指导或选项。
我认为 A* 没有为您提供一种机制来了解问题是否可解决。专门针对N-Puzzle
,我想这可以帮助你检查它是否可以解决:
http://www.geeksforgeeks.org/check-instance-8-puzzle-solvable/
看来,如果你处于奇数反转的状态,你肯定知道该排列的问题是不可行的。
具体到N-puzzle,只有两种可能的奇偶校验,所以你只需要检查当前拼图是哪一种奇偶校验即可。
上有关于如何执行此操作的深入解释
对于一般的 A* 问题,不,如果图是可解的,就没有办法预先计算。
目前正在学习 A*
搜索算法并使用它找到 N-Puzzle
的最快解决方案。对于初始起始状态的一些随机种子,难题可能无法解决,这将导致等待时间非常长,直到算法搜索整个搜索-space 并确定没有解决给定起始状态的方法。
我想知道是否有一种方法可以预先计算A*
算法是否会避免这种情况。我已经阅读了一些有关如何实现的内容,但找不到关于执行此操作的方法的直接答案。
欢迎提供任何指导或选项。
我认为 A* 没有为您提供一种机制来了解问题是否可解决。专门针对N-Puzzle
,我想这可以帮助你检查它是否可以解决:
http://www.geeksforgeeks.org/check-instance-8-puzzle-solvable/
看来,如果你处于奇数反转的状态,你肯定知道该排列的问题是不可行的。
具体到N-puzzle,只有两种可能的奇偶校验,所以你只需要检查当前拼图是哪一种奇偶校验即可。
上有关于如何执行此操作的深入解释对于一般的 A* 问题,不,如果图是可解的,就没有办法预先计算。