第四章
超越經典的搜索
一、局部搜索算法
條件
關注解狀態而不是路徑代價的問題(N皇后),找目標,純粹最優化的問題。
思想
從單個當前結點出發,通常只移動到他的臨近狀態而不保留搜索路徑。
優點
- 使用內存少。
- 能在很大或者無限狀態空間中找到合理解。
具體算法
-
爬山法
-
思想
不斷向值增加的方向持續移動,直到達到一個“峰頂”。
-
優點
使用內存少,速度快。
-
缺點
局部最優,在局部極大值、山脊、高原的情況下將陷入困境;
成功與否嚴重依賴與狀態空間的地形圖形狀。
-
改進
-
隨機爬山法
在上山移動中隨機的選擇下一步,每種走法被選中的概率隨上山移動的陡峭程度不同而不同。
收斂速度慢,但在某些地形圖上能找到更好的解。
-
首選爬山法
隨機的生成后繼結點,直到生成一個優於當前結點的后繼。
適用於后繼結點很多的情況。
-
隨機重啟爬山法
不斷隨機生成初始狀態來引導爬山法的搜索,直到成功找到目標狀態。
完備概率接近1。
-
-
-
模擬退火搜索
-
思想
選擇隨機移動,允許算法向最壞的方向移動以擺脫局部最大值,但隨着狀態“變壞”與時間的推移,接受“壞移動”的概率下降。
-
類比關系
物理退火 退火算法 物體內部狀態 問題解空間 狀態能量 解的質量 溫度 控制參數 加熱(溶解)過程 設定初始控制參數 退火冷卻過程 控制參數的修改 狀態轉移 解在領域中變化 能量最低狀態 最優解 -
流程圖
-
-
特點
如果時間下降得足夠的慢,那么模擬退火算法找到一個全局最優值的概率接近於1
-
局部束搜索
-
思想
從k個隨機生成的狀態開始,每一步全部k個狀態的所有后繼會被隨機生成。如果其中一個是目標狀態,算法停止。否則,從后繼中選擇k個最佳的后繼。重復這個過程。
-
特點
有用的信息在並行的搜索線程間傳遞。
狀態缺乏多樣性,可能聚集到狀態空間的一小塊區域內,使搜索代價比爬山法還高。
-
-
隨機束搜索
-
思想
從k個隨機生成的狀態開始,每一步全部k個狀態的所有后繼會被隨機生成。如果其中一個是目標狀態,算法停止。否則,從后繼中隨機選擇k個的后繼,隨機概率與狀態值成正比。重復這個過程。
-
-
遺傳算法
-
思想
從k個隨機生成的狀態開始,作為初始種群,其中每個狀態叫做個體,對每個狀態進行編碼。根據適應度函數的值決定每個個體被選中的概率。選擇k個狀態作為父狀態,每兩個父狀態交叉生成兩個子狀態。最后對子狀態進行變異操作。重復直到得到目標解。
-
組成
-
染色體編碼
二進制編碼、格雷碼等
-
種群初始化
-
適應度函數
演化過程中進行選擇的唯一依據。對於好的狀態,適應度函數返回較高的值。
-
遺傳操作
-
選擇
樣本被選擇繁衍后代的概率正比於它的適應度函數值
-
交叉
發生交叉操作的概率需要預先設定,交叉位置隨機產生
-
變異
發生突變操作的概率需要預先設定,通常遠小於交叉概率
-
-
算法參數
-
-
流程圖
-
特點
優勝劣汰的選擇機制使得適應值大的解有較高的存活率,這是遺傳算法與一般搜索算法的主要區別之一。
為一些難以找到傳統數學模型的難題指出了一個解決辦法。
-
二、不確定動作的搜索
條件
不確定的環境,執行一個動作后狀態的變化是不確定的。
與或搜索樹
與或搜索問題的解是一顆子樹(圖中用粗線標出)。每個葉子上都有目標結點;在或節點上規范了一個行動;與結點上包含所有可能的后果。
算法
-
深度優先遞歸算法
關鍵:環的處理
如果當前狀態與從根節點出發的路徑上的狀態相同,那么返回失敗。
這樣每條路都必定到達目標、重復狀態或死胡同,這樣就可以保證算法可以在有限的狀態空間終止。
-
寬度優先
-
最佳優先
啟發式函數概念必須修改為評估可能的解,而不是一個序列。
循環解
語法表示為
或
對於循環解,根據具體問題,決定不斷嘗試或嘗試一定次數后放棄誰更合理。
三、使用部分可觀察信息的搜索
無觀察信息的搜索
無觀察信息問題P的定義
-
信念狀態
包含物理狀態中每個可能的集合,假定N個物理狀態,最多有\(2^N\)個信念狀態
-
初始狀態
所有物理狀態的集合
-
行動
非法行動對環境無影響時
有影響時,可能取交集。
//吸塵器世界中,每個狀態都有相同的合法行動,兩種方法都有相同結果。
-
轉移模型
對於確定行動對於不確定行動
-
目標測試
信念狀態中的所有物理狀態都滿足目標狀態
-
路徑開銷
假定所有狀態下一個行動的開銷相同
搜索剪枝
檢測狀態是否重復。
如果一個行動序列是信念狀態b的解,那么它也是b的任何子集的解。所以如果已經生成子集,那么可以丟棄到元集合的解。當原集合有解,那么他也是他的任何子集的解。
搜索困境
每個信念狀態的大小。
通過用更緊湊的方式表示信念狀態,或增量式信念狀態搜索(首先找出適合狀態1的解,看他是否也滿足2;不滿足則回溯找出狀態1的另一種解,然后繼續...)
有觀察信息的搜索
狀態轉換步驟
預測階段
給定信念狀態b和行動a,預測信念狀態
觀察預測階段
確定預測信念狀態中可觀察到的感知信息o
更新階段
根據每個可能的感知信息得到信念狀態
問題求解Agent
形式化,搜索算法,執行解行動
解是一個條件規划不是一個序列 if-then-else
Agent在完成行動和接收感知信息時維護自身的信念狀態
四、聯機搜索
條件
未知環境。
不知道在當前狀態下采取行動后的對應狀態,只能通過執行行動后再觀察來確定。
聯機與脫機
脫機搜索算法:在行動之間計算好完整的解決方案。
聯機搜索算法:行動,觀察環境,下一步行動。
競爭比
競爭比=實際代價/最小代價。
競爭比越小越好。
競爭比可以是無窮大,比如達到某些狀態后無法達到目標狀態(活動不可逆)。
可安全探索的狀態空間:每個可達到的狀態出發都有達到目標狀態的行動,如迷宮問題,八數碼問題。
歡迎指正與補充,感謝點贊o( ̄▽ ̄)d