如何确定算法的启发式算法,比如A *,是一个很好的算法

时间:2013-09-12 06:14:56

标签: artificial-intelligence heuristics

我最近在学习A *算法,我知道在找到潜在路径时它需要一个启发式值,而且我也理解启发式算法的一致性和可接受性。但我很困惑,什么样的启发式是好的,为什么它好?

顺便说一下,启发式工作原理如何?

1 个答案:

答案 0 :(得分:1)

在我看来,选择启发式方法主要取决于问题。然而,如果以面向目标的方式理解问题,选择启发式变得更容易。至少那就是我做的。我遵循的想法是:

启发式在目标状态下评估为零。

那么所有情景都是什么?在目标中产生零的所有函数是什么?

  
    

可能的启发式

  
     
      
  1. 剩下的食品托盘数量?
  2.   
  3. 当前托盘与下一个未探测托盘的距离?
  4.   
  5. 带有食品托盘等的网格中的未开发区域
  6.   

我会选择最后一个选项,因为它似乎更可靠,尽管这三个最终都会导致解决方案。

  

所以,我相信,你通过把自己放在目标上来选择启发式   状态,然后回头看看你所做的一切   办法。所以从某种意义上说,启发式只不过是近似的   需要完成什么(在目标时评估为0)。