【正文】
487321??????????586470321??????????586047321??????????560487321??????????056487321??????????567480321初 始 化開 始O P E N 表 = { }失 敗是取 得 待 擴 展 節(jié) 點 nn : = M O V E F I R S T ( O P E N )否n 是 目 標 狀 態(tài) 節(jié) 點成 功是擴 展 節(jié) 點 n 的 子 節(jié) 點插 入 搜 索 圖 G 和 O P E N 表 否標 記 和 修 改 指 針重 新 排 序 O P E N 表2022/8/21 61 ??????????586427301??????????586427031??????????586407321??????????586427310??????????506487321??????????586470321??????????586047321??????????560487321??????????056487321??????????567480321初 始 化開 始O P E N 表 = { }失 敗是取 得 待 擴 展 節(jié) 點 nn : = M O V E F I R S T ( O P E N )否n 是 目 標 狀 態(tài) 節(jié) 點成 功是擴 展 節(jié) 點 n 的 子 節(jié) 點插 入 搜 索 圖 G 和 O P E N 表 否標 記 和 修 改 指 針重 新 排 序 O P E N 表??????????567481320??????????5674083212022/8/21 62 ??????????586427301??????????586427031??????????586407321??????????586427310??????????506487321??????????586470321??????????586047321??????????560487321??????????056487321??????????567480321??????????567481320??????????567408321初 始 化開 始O P E N 表 = { }失 敗是取 得 待 擴 展 節(jié) 點 nn : = M O V E F I R S T ( O P E N )否n 是 目 標 狀 態(tài) 節(jié) 點成 功是擴 展 節(jié) 點 n 的 子 節(jié) 點插 入 搜 索 圖 G 和 O P E N 表 否標 記 和 修 改 指 針重 新 排 序 O P E N 表2022/8/21 63 ??????????586427301??????????586427031??????????586407321??????????586427310??????????506487321??????????586470321??????????586047321??????????560487321??????????056487321??????????567480321??????????567481320??????????567408321初 始 化開 始O P E N 表 = { }失 敗是取 得 待 擴 展 節(jié) 點 nn : = M O V E F I R S T ( O P E N )否n 是 目 標 狀 態(tài) 節(jié) 點成 功是擴 展 節(jié) 點 n 的 子 節(jié) 點插 入 搜 索 圖 G 和 O P E N 表 否標 記 和 修 改 指 針重 新 排 序 O P E N 表2022/8/21 64 ??????????586427301??????????586427031??????????586407321??????????586427310??????????506487321??????????586470321??????????586047321??????????560487321??????????056487321??????????567480321??????????567481320??????????567408321初 始 化開 始O P E N 表 = { }失 敗是取 得 待 擴 展 節(jié) 點 nn : = M O V E F I R S T ( O P E N )否n 是 目 標 狀 態(tài) 節(jié) 點成 功是擴 展 節(jié) 點 n 的 子 節(jié) 點插 入 搜 索 圖 G 和 O P E N 表 否標 記 和 修 改 指 針重 新 排 序 O P E N 表2022/8/21 65 ??????????586427301??????????586427031??????????586407321??????????586427310??????????506487321??????????586470321??????????586047321??????????560487321??????????056487321??????????567480321??????????567481320??????????567408321初 始 化開 始O P E N 表 = { }失 敗是取 得 待 擴 展 節(jié) 點 nn : = M O V E F I R S T ( O P E N )否n 是 目 標 狀 態(tài) 節(jié) 點成 功是擴 展 節(jié) 點 n 的 子 節(jié) 點插 入 搜 索 圖 G 和 O P E N 表 否標 記 和 修 改 指 針重 新 排 序 O P E N 表2022/8/21 66 狀態(tài)空間搜索 —— ( 2)一般圖搜索算法 ——搜索過程中的指針修改 ? 節(jié)點 n擴展后 的子節(jié)點分為 3類 : ? (i)全新節(jié)點 ? (ii)已出現(xiàn)在 OPEN表 中的節(jié)點 ? (iii)已出現(xiàn)的 CLOSE表 中的節(jié)點 ? 指針標記和修改的方法: ? (i)類節(jié)點:加入 OPEN表,建立從子節(jié)點到父節(jié)點 n的指針 ? (ii)類節(jié)點、 (iii)類節(jié)點 ? 比較 經(jīng)由 老父節(jié)點 、 新父節(jié)點 n到達 初始狀態(tài)節(jié)點 的 路徑代價 ? 經(jīng)由新父節(jié)點 n的代價比較小,則將原子節(jié)點指向老父節(jié)點的指針,修改為指向新父節(jié)點 n ? (iii)類節(jié)點還得從 CLOSE表中移出,重新加入 OPEN表。 2022/8/21 70 深度優(yōu)先實例 2 3 1 8 4 7 6 5 2 3 1 8 4 7 6 5 2 8 3 1 4 7 6 5 2 3 1 8 4 7 6 5 2 8 3 1 4 7 6 5 2 8 3 1 6 4 7 5 2 8 3 1 4 7 6 5 2 8 3 1 6 4 7 5 2 8 3 1 6 4 7 5 2 8 3 7 1 4 6 5 8 3 2 1 4 7 6 5 2 8 1 4 3 7 6 5 2 8 3 1 4 5 7 6 1 2 3 7 8 4 6 5 1 2 3 8 4 7 6 5 2 8 3 6 4 1 7 5 2 8 3 1 6 7 5 4 8 3 2 1 4 7 6 5 2 8 3 7 1 4 6 5 2 8 1 4 3 7 6 5 2 8 3 1 4 5 7 6 1 2 3 4 6 8 9 11 13 14 16 18 19 1 2 3 8 4 7 6 5 目標 5 7 10 12 15 17 20 21 2022/8/21 71 深度優(yōu)先搜索 ? 在深度優(yōu)先搜索中,首先擴展最新產(chǎn)生的 (最深的 )節(jié)點,深度 相等的節(jié)點可以任意排列。 2022/8/21 73 Procedure Depth First Search Begin 把初始節(jié)點壓入棧,并設置棧頂指針; While 棧不空 do Begin 彈出棧頂元素; If 棧頂元素 =goal,成功返回并結束; Else 以任意次序把棧頂元素的子女壓入棧中; End While End ?基于棧實現(xiàn)的深度優(yōu)先搜索算法: 2022/8/21 74 ? 初始節(jié)點放到棧中,棧指針指向棧的最上邊的元素。 2022/8/21 75 深度優(yōu)先搜索的性質(zhì) ?一般不能保證找到最優(yōu)解 ?當深度限制不合理時, 可能找不到解 ,可以將算法改為 可變深度限制 ?最壞情況時,搜索空間等同于窮舉 ?是一個通用的與問題無關的方法 2022/8/21 76 ? 深度優(yōu)先搜索 的 優(yōu)點 是比寬度優(yōu)先搜索算法需要較少的空間,該算法只需要保存搜索樹的一部分,它由當前正在搜索的路徑和該路徑上還沒有完全展開的節(jié)點標志所組成。很多問題可能具有很深甚至是無限的搜索樹,如果不幸選擇了一個錯誤的路徑,則深度優(yōu)先搜索會一直搜索下去,而不會回到正確的路徑上。 2022/8/21 79 寬度優(yōu)先實例 2 3 1 8 4 7 6 5 2 8 3 1 4 7 6 5 2 3 1 8 4 7 6 5 2 3 1 8 4 7 6 5 2 8 3 1 4 7 6 5 2 8 3 1 6 4 7 5 2 8 3 1 4 7 6 5 2 8 3 1 6 4 7 5 2 8 3 1 6 4