假设启发式函数功能仍然存在 受理 - A *算法可以正常工作。
但是,对于非单调启发式函数,您可能需要更新已经“关闭”的节点,并且应该允许此行为。
如果是 的 树搜索 强> 它不需要保持一致是最佳的。相反,如果它是一个 的 图搜索 强> 只有在启发式是可接受且一致的情况下,A *才是最佳的。
在此图片中,您可以看到不一致启发式的示例:A *算法找不到正确的路径。
也许你可以像@amit那样修改标准的A *算法,但在这种情况下你需要考虑一个已经关闭的状态,所以搜索不是最优的。它可能会找到最佳路径,但它会比具有一致启发式的解决方案扩展更多节点,因此它将是次优的。