為了簡化上述搜尋過程以及避免盲目搜尋,我們討論啟發式策略
同樣以八數碼為例
使用估價函式f的最佳優先搜尋
a演算法本質上就是在一般的樹式搜尋基礎上新增了估價函式的一種啟發式搜尋演算法
估價函式的作用僅僅是幫助確定結點的擴充套件,從而避免盲目搜尋
對a演算法增加限制:對任一節點x均有 h(x)<= h*(x)
h(x)為啟發函式,h*(x)為x到目標節點的實際最小代價
與或圖一般表示問題的變換過程
即將乙個大問題通過邏輯變換不斷分解成乙個個小問題
類似遞迴的思想,下面乙個例子以漢諾塔問題解釋這種思想
顧名思義,搜尋的每次結點擴充套件遵循以下規則:
對於博弈雙方a和b,樹上每次結點的擴充套件按照對a最有利/最不利交替進行
可以理解為短路邏輯,為了提高搜尋效率,在生成博弈樹的同**估各節點的倒推值,若子節點的倒推值超出父節點的評估範圍則不必再擴充套件該枝的其餘子節點
A 搜尋演算法
啟發式搜尋演算法 要理解 a 搜尋演算法,還得從啟發式搜尋演算法開始談起。所謂啟發式搜尋,就在於當前搜尋結點往下選擇下一步結點時,可以通過乙個啟發函式 來進行選擇,選擇代價最少的結點作為下一步搜尋結點而跳轉其上 遇到有乙個以上代價最 少的結點,不妨選距離當前搜尋點最近一次展開的搜尋點進行下一步搜尋 ...
A 搜尋演算法
a 演算法是基於bfs的一種入門級啟發式搜尋演算法,就是將bfs的佇列改為基於估價的優先佇列,可以快速地找到答案。優先隊列為小根堆 while 優先佇列不為空 取出隊頭並擴充套件 將擴充套件節點以估價值 當前值為優先順序入隊 endwhile估價函式越接近真實值演算法越優,但一定不能大於真實值,否則...
搜尋演算法小結
搜尋演算法是利用計算機的高效能來有目的的窮舉乙個問題的部分和所有的可能情況,從而求出問題的解的一種方法。常用的搜尋演算法有 一.回溯法 回溯演算法是所有搜尋演算法中最為基本的一種演算法,其採用了一種 走不通就掉頭 思想作為其控制結構,其相當於採用了先根遍歷的方法來構造解答樹,可用於找解或所有解以及最...