2013-04-14 260 views
0

對於「介紹人工智能」的任務,我需要解決以下問題:實現A * - 搜索作爲廣度優先搜索/深度優先搜索

Let f(n) = c1*g(n) + c2*h(n) be an evaluation function, where c1,c2 be constants. 
1. Define c1,c2,h(.),g(.) such that A* with this evaluation function is bfs. 
2. Define c1,c2,h(.),g(.) such that A* with this evaluation function is dfs. 

對於BFS我有下面的想法: 設g(n)是從開始節點到當前節點的成本,以及從當前節點到目標的估計成本h(n)。 如果我設置c2 = 0它實際上應該是廣度優先搜索。

對於DFS我想設置c2 = 0c1 = (-1)

任何意見,建議或反饋,你可以給我嗎?

回答

1

我認爲你的答案是預期的答案。不過,我認爲這個問題有點不對,因爲我認爲不可能製作BFS和DFS(用我理解的術語)。

問題是DFS和BFS都不關心路徑長度。他們只關心節點順序。

您的BFS解決方案實際上是一個均勻成本搜索(或dijkstra算法),它是對基本BFS的改進。

您的DFS解決方案擴展了最遠的節點,而不是實際的DFS(使用堆棧)如何工作。

如果有某個地方說弧成本總是相同的話,答案是正確的。

+0

確定thx的答案,我也發現這個問題有點奇怪,這就是爲什麼我決定問這裏。但是,謝謝你的幫助:) –