當前位置:首頁 » 操作系統 » A星逆演算法

A星逆演算法

發布時間: 2023-08-14 19:01:50

❶ 深度優先搜索和廣度優先搜索、A星演算法三種演算法的區別和聯系

1、何謂啟發式搜索演算法
在說它之前先提提狀態空間搜索.狀態空間搜索,如果按專業點的說法就是將問題求解過程表現為從初始狀態到目標狀態尋找這個路徑的過程.通俗點說,就是 在解一個問題時,找到一條解題的過程可以從求解的開始到問題的結果(好象並不通俗哦).由於求解問題的過程中分枝有很多,定性,不完備性造成的,使得求解的路徑很多這就構成了一個圖,我們說這個圖就是狀態空間.問題的求解實際上就是在這個圖中找到一條路徑可以從開始到結果.這個尋找的過程就是狀態空間搜索.
常用的狀態空間搜索有深度優先和廣度優先.廣度優先是從初始狀態一層一層向下找,直到找到目標為止.深度優先是按照一定的順序前查找完一個分支,再查找另一個分支,以至找到目標為止.這兩種演算法在數據結構書中都有描述,可以參看這些書得到更詳細的解釋.
前面說的廣度和深度優先搜索有一個很大的缺陷就是他們都是在一個給定的狀態空間中窮舉.這在狀態空間不大的情況下是很合適的演算法,可是當狀態空間十分大,且不預測的情況下就不可取了.他的效率實在太低,甚至不可完成.在這里就要用到啟發式搜索了.
啟發式搜索就是在狀態空間中的搜索對每一個搜索的位置進行評估,得到最好的位置,再從這個位置進行搜索直到目標.這樣可以省略大量無畏的搜索路徑,提 到了效率.在啟發式搜索中,對位置的估價是十分重要的.採用了不同的估價可以有不同的效果.我們先看看估價是如何表示的.
啟發中的估價是用估價函數表示的,如:
f(n) = g(n) + h(n)
其中f(n) 是節點n的估價函數,g(n)實在狀態空間中從初始節點到n節點的實際代價,h(n)是從n到目標節點最佳路徑的估計代價.在這里主要是h(n)體現了搜 索的啟發信息,因為g(n)是已知的.如果說詳細點,g(n)代表了搜索的廣度的優先趨勢.但是當h(n) >> g(n)時,可以省略g(n),而提高效率.這些就深了,不懂也不影響啦!我們繼續看看何謂A*演算法.
2、初識A*演算法
啟發式搜索其實有很多的演算法,比如:局部擇優搜索法、最好優先搜索法等等.當然A*也是.這些演算法都使用了啟發函數,但在具體的選取最佳搜索節點時的 策略不同.象局部擇優搜索法,就是在搜索的過程中選取「最佳節點」後舍棄其他的兄弟節點,父親節點,而一直得搜索下去.這種搜索的結果很明顯,由於舍棄了 其他的節點,可能也把最好的節點都舍棄了,因為求解的最佳節點只是在該階段的最佳並不一定是全局的最佳.最好優先就聰明多了,他在搜索時,便沒有舍棄節點 (除非該節點是死節點),在每一步的估價中都把當前的節點和以前的節點的估價值比較得到一個「最佳的節點」.這樣可以有效的防止「最佳節點」的丟失.那麼 A*演算法又是一種什麼樣的演算法呢?其實A*演算法也是一種最好優先的演算法.只不過要加上一些約束條件罷了.由於在一些問題求解時,我們希望能夠求解出狀態空 間搜索的最短路徑,也就是用最快的方法求解問題,A*就是干這種事情的!我們先下個定義,如果一個估價函數可以找出最短的路徑,我們稱之為可採納性.A* 演算法是一個可採納的最好優先演算法.A*演算法的估價函數可表示為:
f'(n) = g'(n) + h'(n)
這里,f'(n)是估價函數,g'(n)是起點到終點的最短路徑值,h'(n)是n到目標的最斷路經的啟發值.由於這個f'(n)其實是無法預先知道 的,所以我們用前面的估價函數f(n)做近似.g(n)代替g'(n),但 g(n)>=g'(n)才可(大多數情況下都是滿足的,可以不用考慮),h(n)代替h'(n),但h(n)

❷ A星搜索演算法

A星演算法是定義了一個函數f,公式為:
f = g + h
其中g函數代表目前為止從出發地到達該節點的成本,h函數是預估的當前節點到到目的地的成本,即
g(path) = path cost
h(path) = h(s) = estimated distance to goal
朝著使函數f具有最小值的路徑拓展,該演算法可以找到消耗最小消耗的路徑

注意A星演算法並不是總能找到最優解,能否找到最優解依賴於h函數,條件是

❸ 計算機演算法必須具備5個特性

計算機演算法是對計算機上執行的計算過程的具體描述。計算機演算法的五個特點:
1.有窮性。
2. 確定性。
3. 輸入性。
4. 輸出性。
5.有效性。

熱點內容
電腦微信登錄密碼怎麼設置 發布:2025-03-11 01:36:35 瀏覽:12
如何在伺服器里添加mod 發布:2025-03-11 01:36:27 瀏覽:281
java培訓到底怎麼樣 發布:2025-03-11 01:31:19 瀏覽:999
開機密碼怎麼設 發布:2025-03-11 01:31:18 瀏覽:511
公司郵箱收發件伺服器怎麼填 發布:2025-03-11 01:20:30 瀏覽:137
雲主機怎麼配置雲桌面 發布:2025-03-11 01:17:39 瀏覽:208
c語言tinyxml 發布:2025-03-11 01:12:39 瀏覽:823
資料庫inner 發布:2025-03-11 01:06:55 瀏覽:900
ice解壓 發布:2025-03-11 00:54:50 瀏覽:379
網址批量訪問 發布:2025-03-11 00:40:38 瀏覽:750