四個基本步驟:
1、目標形式化(goal formulation)• 成功的狀態描述
2、問題形式化(problem formulation)• 根據所給的目標考慮行動和狀態的描述
3、搜尋(search)• 通過對行動序列代價計算來選取最佳的行動序列.
4、執行(execute)• 給出 「解」執行行動.
問題求解:形式化——搜尋——執行
• 乙個問題可以由四個組成部分來形式化:
1、初始狀態
2、動作或後續函式
3、目標測試
4、路徑代價
• 乙個解是從初始狀態到目標狀態的動作系列
解、代價、耗散值、最優解、無解……
example.真空吸塵機械人
• 狀態:機械人的位置及灰塵位置
• 動作: 向左,向右,吸
• 目標測試:所有位置都不髒
• 路徑代價:每做乙個動作計代價為1
我們怎麼找到解決問題的方法?
•搜尋狀態空間(記住空間的複雜性取決於狀態表示)
•這裡:通過顯式生成樹搜尋
根=初始狀態。
節點和葉子通過後繼函式生成。
•在一般的搜尋生成圖(相同的狀態,通過多條路徑)
基本思想: 通過產生已經探索到的狀態的後續狀態的方法來離線地進行狀態空間的模擬搜尋。
•搜尋策略指結點擴充套件順序的選擇。
•搜尋策略的效能由下面四個方面來評估:
• 完備性: 如果問題的解存在時它總能找到解。
• 時間複雜性: 產生的結點個數。
• 空間複雜性: 搜尋過程中記憶體中的最大結點數。
• 最優性: 它總能找到乙個代價最小的解。
• 問題難度由時間和空間複雜度的定義來度量的:
時間和空間複雜度根據下面三個量來表達:
• b: 搜尋樹的最大分支數
• d: 最小代價解所在的深度
• m: 狀態空間的最大深度(可能是∞)
盲目搜尋策略僅利用了問題定義中的資訊:
• 寬度優先搜尋
• 一致代價搜尋
• 深度優先搜尋
• 深度有限搜尋
• 迭代深度搜尋
• 優先擴充套件最淺層的未擴充套件結點
• 實現方法
:• fringe表採用先進先出佇列( fifo queue),即新的後續節點總是放在佇列的末尾
• 優先擴充套件具有最小代價的未擴充套件結點
• 實現: fringe 是根據路徑代價排序的佇列
• 在單步代價相等時與寬度優先搜尋一樣
• 完備性? yes, 只要單步代價不是無窮小
• 時間? 代價小於最優解的結點個數, o(bceiling(c*/ ε))
• 空間? 代價小於最優解的結點個數, o(bceiling(c*/ ε))
• 最優性? yes – 結點是根據代價排序擴充套件的
• 擴充套件最深層的未擴充套件結點
• 實現:fringe = 後進先出佇列(lifo queue)
人工智慧 第三章 通過搜尋進行問題求解
無資訊搜尋演算法 指演算法除了問題定義本身沒有任何其他資訊 有資訊搜尋演算法 可以利用給定的知識引導更有效地找到解。3.1 問題求解agent 1 問題形式化 在給定目標下確定需要考慮哪些行動和狀態的過程 2 搜尋 尋找一組解決問題的行動序列的過程稱為搜尋,搜尋演算法的輸入是問題,輸出是問題的解,以...
人工智慧(2) 搜尋問題
搜尋方式 盲目搜尋 深度優先搜尋 寬度優先搜尋 啟發式搜尋 a 演算法 ps 本處選用4 4網格,放置4個皇后,使每個皇后橫 豎 斜都不在一條直線。採用深度 操作步驟 1,1 1,1 1,1 2,3 1,1 2,3 1,1 1,1 1,1 2,4 1,1 2,4 1,1 2,4 3,2 1,1 2,...
人工智慧基礎知識複習 問題求解與搜尋
圖的搜尋 無資訊搜尋 盲目搜尋 深度優先搜尋dfs 寬度優先搜尋bfs 有界深度搜尋dls 等代價搜尋ucs bfs的擴充套件版本 迭代加深搜尋ids 有資訊搜尋 啟發式搜尋 a演算法,a 演算法 圖的搜尋所需的資料結構 open表 記錄還沒有擴充套件的點 closed 記錄已經擴充套件的點 節點結...