Algorithm 如果我使用4X曼哈顿距离作为15个谜题的启发式,为什么A*更快

Algorithm 如果我使用4X曼哈顿距离作为15个谜题的启发式,为什么A*更快,algorithm,a-star,heuristics,Algorithm,A Star,Heuristics,我已经实现了一个A*算法来解决15个难题。我做了一项研究,寻找一些可行的或可接受的启发式方法,寻找一个快速的解决方案,我发现使用4*Manhattan距离作为启发式方法总是在不到一秒钟的时间内解决任何15个难题。我试过了,效果很好。我试图找到答案,但我找不到 任何人都可以解释这一点?4*曼哈顿距离不是可接受的启发式,这使得算法的行为“更接近”贪婪的最佳优先(算法仅根据启发式函数选择要开发的节点)。这使得算法有时更倾向于深度的解决方案和探索,而不是广度和最优性 这个想法类似于在中发生的情况,在中,

我已经实现了一个A*算法来解决15个难题。我做了一项研究,寻找一些可行的或可接受的启发式方法,寻找一个快速的解决方案,我发现使用4*Manhattan距离作为启发式方法总是在不到一秒钟的时间内解决任何15个难题。我试过了,效果很好。我试图找到答案,但我找不到


任何人都可以解释这一点?

4*曼哈顿距离不是可接受的启发式,这使得算法的行为“更接近”贪婪的最佳优先(算法仅根据启发式函数选择要开发的节点)。这使得算法有时更倾向于深度的解决方案和探索,而不是广度和最优性


这个想法类似于在中发生的情况,在中,为了加速算法,您允许A*在某个范围内开发非最优节点,实际上-我怀疑如果您使用曼哈顿距离和
ε=3
运行一个*-ε,您将得到相同的(或类似的结果)。(如果我是正确的,这将使您在修改的启发式中找到的解决方案以
4*最优
为界,其中最优是最优路径的长度)

您是否也更改了成本函数?我建议您命名您尝试的其他启发式,因为这不是可接受的启发式。我还有另一个问题,我在其他拼图(6x6拼图或5x5拼图)中尝试了这种启发式(4*MD),但效果并不相似,这意味着我需要为每个特定的拼图找到一个ε?还有一种更快的启发式也是可以接受的?@RaulOtaño:最快的可接受启发式是
h*(v)
——它准确地预测了目标的成本,但是——如果你有了它——你就不需要*,贪婪的最佳优先启发式会很容易地为你提供最短路径!