在A*中使用可接受和一致的启发式方法

Gem*_*nus 3 algorithm heuristics a-star

有人有一个简单和/或直观的解释,为什么你必须在A*中使用一个可接受的启发式,以及为什么你"应该"使用一致的启发式?

Duk*_*ing 6

受理的:

确保我们认为达到目标所需的成本不会超过实际成本.

如果它超过实际成本,我们实际上可能最终采取更昂贵的路径,因为实际成本可能比我们认为这条路径的成本更便宜.

一致性:

如果我们朝着目标前进,我们不应该突然认为到达目标需要的时间比我们刚刚做的要长.[1]

如果我们接近目标并且我们突然认为从这里到达目标需要更长的时间,我们最终可能会在最终到达目标之前探索一大堆其他路径,因为我们可以认为那些可能更便宜.

[1]:我只是在谈论我们认为这需要多长时间,而不是已经花了多长时间 - 所以,我们可能认为需要10分钟但是,在旅行了5分钟后,我们现在认为我们仍然有7分钟后 - 这很好,但如果我们认为我们有超过10分钟的时间,这不是很好.