如果我使用4x曼哈顿距离作为15-Puzzle的启发式,为什么A *会更快

时间:2012-10-25 18:47:06

标签: algorithm a-star heuristics

我已经实现了一个用于解决15-puzzle的A *算法。我进行了一项研究,寻找一些可行的或可接受的启发式方法,寻找快速解决方案,我发现使用4 * Manhattan Distance作为启发式方法总能在不到一秒的时间内解决任何15个难题。我试过这个并且有效地工作了。我试图找到答案,但我找不到。

任何人都能解释一下吗?

1 个答案:

答案 0 :(得分:3)

4 *曼哈顿距离不允许启发式,这使得算法首先表现得更接近贪婪(算法选择哪个节点仅基于启发式函数开发)。这使得算法有时更喜欢解决方案的深度和对广度和最优性的探索。

这个想法类似于A*-Epsilon中发生的事情,你允许A *在没有最佳节点的情况下发展到某个界限,以加快你的算法速度。实际上 - 我怀疑你会得到同样的结果(或者类似的结果)如果你运行曼哈顿距离和epsilon = 3的A * -Epsilon。 (如果我是正确的,这会使您在4*OPTIMAL限定的修改启发式中找到解决方案,其中OPTIMAL是最佳路径的长度)