第4章 超越經典的搜索


第四章

超越經典的搜索

一、局部搜索算法

條件

關注解狀態而不是路徑代價的問題(N皇后),找目標,純粹最優化的問題。

思想

從單個當前結點出發,通常只移動到他的臨近狀態而不保留搜索路徑。

優點

  1. 使用內存少。
  2. 能在很大或者無限狀態空間中找到合理解。

具體算法

  1. 爬山法

    • 思想

      不斷向值增加的方向持續移動,直到達到一個“峰頂”。

    • 優點

      使用內存少,速度快。

    • 缺點

      局部最優,在局部極大值、山脊、高原的情況下將陷入困境;

      成功與否嚴重依賴與狀態空間的地形圖形狀。

    • 改進
      • 隨機爬山法

        在上山移動中隨機的選擇下一步,每種走法被選中的概率隨上山移動的陡峭程度不同而不同。

        收斂速度慢,但在某些地形圖上能找到更好的解。

      • 首選爬山法

        隨機的生成后繼結點,直到生成一個優於當前結點的后繼。

        適用於后繼結點很多的情況。

      • 隨機重啟爬山法

        不斷隨機生成初始狀態來引導爬山法的搜索,直到成功找到目標狀態。

        完備概率接近1。

  2. 模擬退火搜索

    • 思想

      選擇隨機移動,允許算法向最壞的方向移動以擺脫局部最大值,但隨着狀態“變壞”與時間的推移,接受“壞移動”的概率下降。

    • 類比關系
      物理退火 退火算法
      物體內部狀態 問題解空間
      狀態能量 解的質量
      溫度 控制參數
      加熱(溶解)過程 設定初始控制參數
      退火冷卻過程 控制參數的修改
      狀態轉移 解在領域中變化
      能量最低狀態 最優解
    • 流程圖

  • 特點

    如果時間下降得足夠的慢,那么模擬退火算法找到一個全局最優值的概率接近於1

  1. 局部束搜索

    • 思想

      從k個隨機生成的狀態開始,每一步全部k個狀態的所有后繼會被隨機生成。如果其中一個是目標狀態,算法停止。否則,從后繼中選擇k個最佳的后繼。重復這個過程。

    • 特點

      有用的信息在並行的搜索線程間傳遞。

      狀態缺乏多樣性,可能聚集到狀態空間的一小塊區域內,使搜索代價比爬山法還高。

  2. 隨機束搜索

    • 思想

      從k個隨機生成的狀態開始,每一步全部k個狀態的所有后繼會被隨機生成。如果其中一個是目標狀態,算法停止。否則,從后繼中隨機選擇k個的后繼,隨機概率與狀態值成正比。重復這個過程。

  3. 遺傳算法

    • 思想

      從k個隨機生成的狀態開始,作為初始種群,其中每個狀態叫做個體,對每個狀態進行編碼。根據適應度函數的值決定每個個體被選中的概率。選擇k個狀態作為父狀態,每兩個父狀態交叉生成兩個子狀態。最后對子狀態進行變異操作。重復直到得到目標解。

    • 組成
      1. 染色體編碼

        二進制編碼、格雷碼等

      2. 種群初始化

      3. 適應度函數

        演化過程中進行選擇的唯一依據。對於好的狀態,適應度函數返回較高的值。

      4. 遺傳操作

        • 選擇

          樣本被選擇繁衍后代的概率正比於它的適應度函數值

        • 交叉

          發生交叉操作的概率需要預先設定,交叉位置隨機產生

        • 變異

          發生突變操作的概率需要預先設定,通常遠小於交叉概率

      5. 算法參數

    • 流程圖

    • 特點

      優勝劣汰的選擇機制使得適應值大的解有較高的存活率,這是遺傳算法與一般搜索算法的主要區別之一。

      為一些難以找到傳統數學模型的難題指出了一個解決辦法。

二、不確定動作的搜索

條件

不確定的環境,執行一個動作后狀態的變化是不確定的。

與或搜索樹

與或搜索問題的解是一顆子樹(圖中用粗線標出)。每個葉子上都有目標結點;在或節點上規范了一個行動;與結點上包含所有可能的后果。

算法

  • 深度優先遞歸算法

    關鍵:環的處理

    如果當前狀態與從根節點出發的路徑上的狀態相同,那么返回失敗。

    這樣每條路都必定到達目標、重復狀態或死胡同,這樣就可以保證算法可以在有限的狀態空間終止。

  • 寬度優先

  • 最佳優先

    啟發式函數概念必須修改為評估可能的解,而不是一個序列。

循環解

語法表示為

\[[Suck,L_1:Right,if \ State=5\ then\ L_1\ else\ Suck] \]

\[[while\ State=5\ do\ Right] \]

對於循環解,根據具體問題,決定不斷嘗試或嘗試一定次數后放棄誰更合理。

三、使用部分可觀察信息的搜索

無觀察信息的搜索

無觀察信息問題P的定義

  • 信念狀態

    包含物理狀態中每個可能的集合,假定N個物理狀態,最多有\(2^N\)個信念狀態

  • 初始狀態

    所有物理狀態的集合

  • 行動

    非法行動對環境無影響時

    有影響時,可能取交集。

    //吸塵器世界中,每個狀態都有相同的合法行動,兩種方法都有相同結果。

  • 轉移模型
    對於確定行動

    對於不確定行動

  • 目標測試

    信念狀態中的所有物理狀態都滿足目標狀態

  • 路徑開銷

    假定所有狀態下一個行動的開銷相同

搜索剪枝

檢測狀態是否重復。

如果一個行動序列是信念狀態b的解,那么它也是b的任何子集的解。所以如果已經生成子集,那么可以丟棄到元集合的解。當原集合有解,那么他也是他的任何子集的解。

搜索困境

每個信念狀態的大小。

通過用更緊湊的方式表示信念狀態,或增量式信念狀態搜索(首先找出適合狀態1的解,看他是否也滿足2;不滿足則回溯找出狀態1的另一種解,然后繼續...)

有觀察信息的搜索

狀態轉換步驟

預測階段

給定信念狀態b和行動a,預測信念狀態

觀察預測階段

確定預測信念狀態中可觀察到的感知信息o

更新階段

根據每個可能的感知信息得到信念狀態

問題求解Agent

形式化,搜索算法,執行解行動

解是一個條件規划不是一個序列 if-then-else

Agent在完成行動和接收感知信息時維護自身的信念狀態

四、聯機搜索

條件

未知環境。

不知道在當前狀態下采取行動后的對應狀態,只能通過執行行動后再觀察來確定。

聯機與脫機

脫機搜索算法:在行動之間計算好完整的解決方案。

聯機搜索算法:行動,觀察環境,下一步行動。

競爭比

競爭比=實際代價/最小代價。

競爭比越小越好。

競爭比可以是無窮大,比如達到某些狀態后無法達到目標狀態(活動不可逆)。

可安全探索的狀態空間:每個可達到的狀態出發都有達到目標狀態的行動,如迷宮問題,八數碼問題。

歡迎指正與補充,感謝點贊o( ̄▽ ̄)d


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM