2012-03-01 90 views

回答

0

Greedy Best First Search在任何情況下的行爲都可能與Depth First Search類似嗎?

不,如果是的話,它會深度優先搜索。

我看到這兩種算法的最壞情況是類似的O(b^m)。這是否意味着他們的行爲方式相同?

0

「最佳第一」只是意味着它完全依靠一些啓發式該分數可能的選項,並首先擴展的最佳選擇。深度優先搜索不使用這種啓發式。

想一想,它的一個方法是Djiksta將返回圖中具有非負邊的最短路徑。當您添加最佳優先搜索的評分機制時,您會得到A *。帶走Djikstra,你會再次回到最佳狀態。

+0

是否有任何可能的情況,當兩個算法以相同的方式尋找答案時,可能通過以相同方式遍歷節點。讓我們說目標在於m級樹的葉節點。 DFS的最壞情況是o(b^m),GBFS也是如此。我們可以改變h(n)是否有某種方式使它像DFS一樣適用於某些特殊情況? – Zombie 2012-03-01 10:43:41

+0

設置h(n)= -g(n)會給你一個搜索,這取決於你從隊列中取出什麼順序。 (可能是隨機或先入,模擬BFS)。 因此,使它像DFS一樣行事的策略是維護一個計數器,每次計算啓發式時都會減少計數器。例如。您的啓發函數是: H(N): 計數器=計數器 - 1 回報-g(N)+計數器 再次,這是不是A *的一個特別有用的應用,但它確實工作。 – sjdlgjsljg 2012-03-01 11:14:52