百科全書《人工智慧(第2版)》之盲目搜尋

2021-08-27 08:18:05 字數 3004 閱讀 2535

本文摘自《人工智慧 (第2版)》人民郵電出版社出版

在本文中,我們從在人工智慧中經常遇到的最重要的問題之一 ——搜尋開始學習。我們的目標是介紹在ai中用於求解問題的最流行方法:搜尋、知識表示和學習。我們開始學習基本的搜尋演算法——所謂的「無資訊搜尋」或「盲目搜尋」的方法。這些演算法不依賴任何問題領域的特定知識。正如我們將看到的,這些演算法通常需要大量的空間和時間。

許多演算法專門通過列表進行搜尋和排序。當然,人們同意,如果資料按照邏輯順序組織,那麼搜尋就會比較方便一些。想象一下,如果姓名和**號碼隨機排列,那麼搜尋相對較大城市的**簿會有多麻煩。因此,搜尋和資訊組織在智慧型系統的設計中發揮了重要作用,這並不奇怪。也許我們要搜尋曾經到訪過地方的名字或序列中的下乙個數字(見第1章),抑或是井字遊戲或跳棋遊戲中下一步最佳移動(見第4章和第16章)。人們認為,可以非常快地解決此類問題的人,通常比其他人更聰明。軟體系統也通常使用相同的術語,例如,人們也認為,效能更好的西洋棋博弈程式比同型別的程式更加智慧型。

本章還引入了兩種經典的搜尋方法:貪婪演算法和回溯。這兩種方法都是先將問題分成若干步驟。例如,如果你要將8個皇后放在棋盤上,任何兩個皇后都不會互相攻擊,也就是說,任何兩個皇后都沒有佔據同一行、同一列或同一對角線。第 1 步就是將第乙個皇后放在棋盤上,第2步就是將第二個皇后放在安全的方格中,以此類推。正如你在2.2節中所看到的,在選用何種標準做出具體選擇方面,這兩種方法互不相同。

但是,如果在每個節點的可替代選項很多,那麼bfs可能會因需要消耗太多的記憶體而變得不切實際。dfs採用了不同的策略來達到目標:在尋找可替代路徑之前,它追求尋找單一的路徑來實現目標。dfs記憶體需求合理,但是它可能會因偏離開始位置無限遠而錯過了相對靠近搜尋起始位置的解。具有迭代加深的dfs是介於bfs和dfs之間的折中方案,它將dfs中等空間需求與bfs提供能找到解的確定性結合到了一起。

狀態空間圖(state-space graph)是對乙個問題的表示,通過問題表示,人們可以探索和分析通往解的可能的可替代路徑。特定問題的解將對應狀態空間圖中的一條路徑。有時候,我們要搜尋乙個問題的任意解;而有時候,我們希望得到乙個最短(最優)的解。本章將主要關注所謂的盲目搜尋方法,即尋找發現任意解。第 3 章將重點關注知情搜尋演算法,這些演算法通常可以發現問題的最佳解。

在電腦科學中,乙個眾所周知的問題是假幣問題。有12枚硬幣,已知其中一枚是假的或是偽造的,但是不知道假幣是比其他幣更輕還是更重。普通的秤可以用於確定任何兩組硬幣的質量,即一組硬幣比另一組硬幣更輕或更重。為了解決這個問題,你應該建立乙個程式,通過稱量三組硬幣的組合,來識別假幣。

在這一章中,我們將解決乙個相對簡單的問題例項,這只涉及6枚硬幣;與上述的原始問題一樣,它也需要比較三組硬幣,但是在這種情況下,任何一組硬幣的硬幣枚數相對較少,我們稱之為最小假幣問題。我們使用符號ci1ci

2…cir

:cj1

cj2…cjr

來指示r枚硬幣,比較ci1ci

2…cir

與另r枚硬幣cj

1 cj

2…cjr

的質量大小。結果是,要麼這兩組硬幣同樣重,要麼不一樣重。我們不需要進一步知道左邊盤子的硬幣是否比右邊盤子的硬幣更重或是更輕(如果要解決這個問題的12枚硬幣的版本,就需要知道其他知識)。最後,我們採用記號[ck1ck

2…ckm

]來指示具有m枚硬幣的子集是所知道的包含了假幣的最小硬幣集合。圖2.1給出了這個最小假幣問題的乙個解。

如圖2.1所示,狀態空間樹由節點和分支組成。乙個橢圓是乙個節點,代表問題的乙個狀態。節點之間的弧表示將狀態空間樹移動到新節點的算符(或所應用的算符)。請參考圖2.1中標有(*)的節點。這個節點[c1c

2c3c

4]表示假幣可能是c

1、c2、c

3或c4中的任何乙個。我們決定對c

1和c2以及c

5和c6之間的質量大小(應用算符)進行比較。如果結果是這兩個集合中的硬幣質量相等,那麼就知道假幣必然是c

3或c4中的乙個;如果這兩個集合中的硬幣質量不相等,那麼我們確定c

1或c2是假幣。為什麼呢?狀態空間樹中有兩種特殊型別的節點。第乙個是表示問題起始狀態的起始節點。在圖2.1中,起始節點是[c1c

2c3c

4c5c

6],這表明起始狀態時,假幣可以是6枚硬幣中的任何乙個。另一種特殊型別的節點對應於問題的終點或最終狀態。圖2.1中的狀態空間樹有6個終端節點,每個標記為[ci

](i = 1,…, 6),其中i的值指定了哪枚是假幣。

圖2.1 最小假幣問題的解

問題的狀態空間樹包含了問題可能出現的所有狀態以及這些狀態之間所有可能的轉換。事實上,由於迴路經常出現,這樣的結構通常稱為狀態空間圖。問題的解通常需要在這個結構中搜尋(無論它是樹還是圖),這個結構始於起始節點,終於終點或最終狀態(goal state)。有時候,我們關心的是找到乙個解(不論代價);但有時候,我們可能希望找到最低代價的解。

說到解的代價,我們指的是到達目標狀態所需的算符的數量,而不是實際找到此解所需的工作量。相比電腦科學,解的代價等同於執行時間,而不是軟體開發時間。

到目前為止,我們不加區別地使用了節點(node)和狀態(state)這兩個術語。但是,這是兩個不同的概念。通常情況下,狀態空間圖可以包含代表相同問題狀態的多個節點,如圖2.2所示。回顧最小假幣問題可知,通過對兩個不同集合的硬幣進行稱重,可以到達表示相同狀態的不同節點。

圖2.2 狀態空間圖中的不同節點可以表示相同的狀態

如圖2.1所示,這是最小假幣問題的解。解決這個問題的人穿著一件藍色的襯衫,或者在處理12硬幣版本的問題時,其他人需要一大杯咖啡,這些可能都是真的。但是,這些細節應該與解無關。抽象允許你拋開這樣的細節。

在求解過程中,可以有意忽略系統的某些細節,這樣就可以允許在合理的層面與系統進行互動,這就是在第1章中定義的抽象。例如,如果你想玩棒球,那麼抽象就可以更好地讓你練習如何打弧線球,而不是讓你花6年時間成為研究物體如何移動的力學方面的博士。

HZgdqs簡明百科全書

1885年由德國物理學家提出,適用於牛頓力學。牛頓運動定律在其中有效的參考係。光是乙個物理學名詞 廢話 其本質是一種處於特定頻段的光子流。由光源發出光。通常指電磁波 包括光波 在真空中傳播的速率,常用 c 表示。實驗測得各種波長的電磁波在真空中的速度是一常數,其值為 c 2.99792458 10 ...

OpenMP 維基百科,自由的百科全書

openmp 維基百科,自由的百科全書 維基百科,自由的百科全書 跳轉到 導航 搜尋openmp open multi processing 是由openmp architecture review board牽頭提出的,並已被廣泛接受的,用於共享記憶體並行系統的多執行緒程式設計的一套指導性注釋 c...

自由的百科全書 Wikipedia 18 周歲了

wikipedia 18 周歲了。2001 年 1 月 15 日 jimmy wales 與 larry sanger 上線 wikipedia 專案,larry 正式提出 wikipedia 一詞,昨天正是它的 18 周歲生日。wikipedia,中文名 維基百科 它的 slogan 是 自由的百...