A演算法和A 演算法的區別是什麼

時間 2021-05-30 08:50:23

1樓:若羽

A* 演算法是一種可容納最優的啟發式搜尋演算法 。

其中 是最接近目標的真實代價, 是實際A*演算法擬合的函式。

伯克利的CS188課舉過這樣乙個例子:

A是最優目標(區域性的),B是次優目標。

B在邊緣,A的一些祖先節點n也在邊緣,代價函式f(n)小於f(A)A*搜尋必須考慮forward cost和backward cost啟發式性質

不考慮最短路徑優先的Dijkstra演算法,等效於廣度優先演算法B為次優解

h=0 at a goal

如果A之前的祖先容納B,A也可以容納B,A*搜尋是一種啟發式區域性最優的演算法。

2樓:OKWeCool

(作為另乙個同學回答的補充)

A 演算法本質上是圖搜尋和啟發式函式的結合,這個啟發式函式當然可以自己定義,而且具有多樣性。A* 演算法是在 A 演算法的基礎上,每一次都選擇最佳節點產生後繼,並且人為的規定最小費用的估計始終滿足 h ≤ h*,防止搜尋過程中偏離期望的最佳路徑。(若偏離則搜尋停止,說明問題可能無解,或最小費用的估計過小)

在這種情況下,若問題有解,則一定可以通過 A* 演算法找到最優解,該性質被稱為可採納性

例如在8數碼問題中,可以將初始狀態下每個數字移動到相應位置的步數之和定義為 h*,此時搜尋過程中就不會搜尋到多餘步驟的解,此時相當於優化了 A 演算法的搜尋模式。

3樓:豬豬俠

(僅發表自己的想法,不具有代表性)

A*演算法是由A演算法約束得到的,同時由A*演算法的性質:假如問題有解,則A*演算法一定能找到最優解。

所以我理解下,A*演算法是A演算法的最優版本。

演算法工程師與程式設計師的區別是什麼?

土鹽 我認識一些在高校讀研搞計算機視覺的朋友,他們有的研究跟我當初一樣做2D影象分割專案 有的研究slam自動駕駛無人車 有的研究三維重建,這些方向都跟影象演算法相關,往往想從事演算法相關的崗位。有的公司的演算法崗位只要是碩士,就給演算法工程師,因為碩士基本靠譜。有的公司,不僅要求是碩士還要會牛客網...

大林演算法與PID演算法有什麼本質區別

李崇 應某總的要求 施法前搖 試著回答一下此問題。先說結論,兩者最初的思路完全不同,我不知道為啥會有人會問這個問題,有相似之處嗎?大林法是針對純滯後系統的乙個控制演算法,思路上比較接近使用參考模型 我後面會具體解釋的。pid我相信大家都很了解了,只說一句,pid的兩個零點也會對系統的純延遲起到很好的...

演算法時間複雜度為O(n )的是什麼演算法?

子正 O n 的演算法不稱其為演算法,它意味著這個問題尚未解決。n稍微大一點,就會耗盡CPU的算力。它比不斷摺紙 圍棋盤上擺大公尺得到的數更大。這種 演算法 是進行演算法改進的物件。演算法老師沒有花力氣說明這種演算法的荒謬之處倒是個很不可思議的事情。n 是個很大的數,你可以用windows自帶的計算...