標籤:

《人工智慧》第二周問題集2 tree search & graph search

0. tree search 和 graph search是什麼意思?

tree search可不是在tree上的search,graph search也不是在graph上的search!!!

它們都假定你是在一個graph上進行search!

tree search可能會訪問同一個state multiple times。而graph search不會。

1. 為什麼講tree search而不是graph search?

一般來說,graph search更general,但是只要不考慮狀態重複,基本上是一樣的。

2. tree search的過程?

需要注意的是,一般並不在add the resulting nodes to the frontier時候(展開的時候)進行goal test,而是在choose a leaf node from frontier的時候才做goal test。原因是如果一展開就進行goal test,可能給出的並不是最優解。

3. graph search時如果不記住repeated states,最壞會怎樣?

那麼一個linear的搜索可能變成指數級別的搜索。

當狀態空間比較大時,比如說棋盤狀態,這個時候記住所有的states可能會相當大,所以就需要用hashing來減少空間的佔用。

4. graph search的過程?

只有2,9,11行和tree search不同。

5. 在實現時,state叫做什麼?

node。在實現時,為了記錄action sequence,所以會記錄parent,path cost等。

6. frontier在實現時用什麼實現?

不同的search algorithm實際上就是不同的queue。

7. 如何來描述不同的search strategy?

要注意的一點是,search algorithm的瓶頸一般不出現在time complexity,而是出現在space complexity上,比如上面提到的repeated states的問題。


推薦閱讀:

TAG:人工智能 |