搜索
搜索方式
按是否使用啟發(fā)式信息分
啟發(fā)式搜索
盲目搜索
按問題的表示方式分
狀態(tài)空間搜索
與/或樹搜索
搜索策略
寬度優(yōu)先搜索
寬度優(yōu)先搜索算法是沿著樹的寬度遍歷樹的節(jié)點,如果發(fā)現(xiàn)目標(biāo),則算法中止。屬于盲目搜索。
深度優(yōu)先搜索
深度優(yōu)先搜索沿著樹的最大深度方向生成節(jié)點并與目標(biāo)節(jié)點進行比較,只有當(dāng)上次訪問的節(jié)點不是目標(biāo)節(jié)點,而且沒有其他節(jié)點可以生成的時候,才轉(zhuǎn)到上次訪問節(jié)點的父節(jié)點,然后搜索該節(jié)點的其他子節(jié)點。因此深度優(yōu)先搜索也稱為回溯搜索。它既不是完備的,也不是最優(yōu)的。有時候,某些特定的問題會產(chǎn)生大量重復(fù)的節(jié)點。例如“八數(shù)碼”問題就是這樣的,當(dāng)每次運用向上、向下、向左、向右移動空格的算符時,可能產(chǎn)生與已經(jīng)產(chǎn)生的節(jié)點重復(fù)的節(jié)點。當(dāng)再次搜索到這個重復(fù)節(jié)點時,由于應(yīng)用的算符基本一致,還會產(chǎn)生重復(fù),所以為了節(jié)約時間和存儲空間,往往在深度優(yōu)先算法中設(shè)立一個機制,用來刪除這些重復(fù)的節(jié)點,以提高效率。
迭代加深搜索(ID搜索)
對深度優(yōu)先搜索進行了一定改進,對搜索樹的深度進行控制,即有界深度優(yōu)先搜索。
在程序找到目標(biāo)之前,通過迭代不斷增大d以保證完備性和最優(yōu)性。雖然會有不少重復(fù)搜索,但是鑒于每增加一次d,則搜索的時間復(fù)雜度會以指數(shù)級別增加,所以重復(fù)搜索的時間可以忽略,亦可以與A*算法結(jié)合(即IDA*搜索算法)來剪枝。
迭代加深搜索通常用于那種搜索樹又深又寬、但是解并不是很深的情況,這時廣度優(yōu)先搜索會超空間,而深度優(yōu)先搜索會超時。這時迭代加深搜索很有用,可是說是在用遞歸方法在實現(xiàn)廣度優(yōu)先搜索。
啟發(fā)式OR圖搜索算法
爬山算法
模擬退火算法
最好優(yōu)先
通用圖
A*
AND-OR圖啟發(fā)式搜索
一個特殊問題:博弈論
約束滿足搜索
搜索策略還可以指在使用搜索引擎中所使用的策略,它通常是搜索之母,一個好的搜索過程必定有一個好的搜索策略來支持。
評價準(zhǔn)則
完備性
時間復(fù)雜性
空間復(fù)雜性
最優(yōu)性
免責(zé)聲明:以上內(nèi)容版權(quán)歸原作者所有,如有侵犯您的原創(chuàng)版權(quán)請告知,我們將盡快刪除相關(guān)內(nèi)容。感謝每一位辛勤著寫的作者,感謝每一位的分享。
- 有價值
- 一般般
- 沒價值
{{item.userName}} 舉報
{{item.time}} {{item.replyListShow ? '收起' : '展開'}}評論 {{curReplyId == item.id ? '取消回復(fù)' : '回復(fù)'}}
{{_reply.userName}} 舉報
{{_reply.time}}