A算法与A*算法区别

  A算法由 f(n)=g(n)+h(n) 俩个因素决定, g(n) 是这一步的代价函数, h(n) 是这一步的预估函数;
  对于A*算法来说,评判函数也是 f(n)=g(n)+h(n) 这个,只不过加了约束条件, g(n) >0, h(n)<=h(n)
  以上只不过是定义,对于一个实例来说, h(n) 由很多种, h(n) 只是估值函数的一个集合,有各种方法 h1(n) h2(n) h3(n) …,取其中任意一个方法带入上述公式,组成评判函数,都是A算法的实现,现在取从集合中一个函数 h(n) ,使得它比集合中任意的函数都优秀,这样的算法叫A*算法。
    也就是A*算法是最优的A算法,(因为估值函数最优)!

你可能感兴趣的:(算法)