1. 程式人生 > >A演算法與A*演算法區別

A演算法與A*演算法區別

A演算法由 f(n)=g(n)+h(n)f(n)=g(n)+h(n) 倆個因素決定, g(n)g(n) 是這一步的代價函式, h(n)h(n) 是這一步的預估函式; 
  對於A*演算法來說,評判函式也是 f(n)=g(n)+h(n)f(n)=g∗(n)+h∗(n) 這個,只不過加了約束條件, g(n)g∗(n) >0, h(n)<=h(n)h∗(n)<=任意h(n) ; 
  以上只不過是定義,對於一個例項來說, h(n)h(n) 由很多種, h(n)h(n) 只是估值函式的一個集合,有各種方法
h1(n)h1(n) h2(n)h2(n) h3(n)h3(n) …,取其中任意一個方法帶入上述公式,組成評判函式,都是A演算法的實現,現在取從集合中一個函式 h(n)h∗(n) ,使得它比集合中任意的函式都優秀,這樣的演算法叫A*演算法。 
    也就是A*演算法是最優的A演算法,(因為估值函式最優)!