古詩詞大全網 - 四字成語 - 什麽是有界深度優先搜索

什麽是有界深度優先搜索

深度優先搜索是壹種在開發爬蟲早期使用較多的方法。

壹、深度優先搜索

深度優先搜索屬於圖算法的壹種,是壹個針對圖和樹的遍歷算法,英文縮寫為DFS即Depth First Search。深度優先搜索是圖論中的經典算法,利用深度優先搜索算法可以產生目標圖的相應拓撲排序表,利用拓撲排序表可以方便地解決很多相關的圖論問題,如最短路徑問題等等。

壹般用堆數據結構來輔助實現DFS算法。其過程簡要來說是對每壹個可能的分支路徑深入到不能再深入為止,而且每個節點只能訪問壹次。

二、廣度優先搜索

廣度優先搜索(也稱寬度優先搜索,縮寫BFS,以下采用廣度來描述)是連通圖的壹種遍歷算法這壹算法也是很多重要的圖的算法的原型。Dijkstra單源最短路徑算法和Prim最小生成樹算法都采用了和寬度優先搜索類似的思想。其別名又叫BFS,屬於壹種盲目搜尋法,目的是系統地展開並檢查圖中的所有節點,以找尋結果。

換句話說,它並不考慮結果的可能位置,徹底地搜索整張圖,直到找到結果為止。基本過程,BFS是從根節點開始,沿著樹的寬度遍歷樹的節點。如果所有節點均被訪問,則算法中止。壹般用隊列數據結構來輔助實現BFS算法。

深度優先遍歷的思想:

首先訪問圖中某指定的起始點Ⅵ,然後由Ⅵ出發訪問它的任壹個鄰接點vj,再從vj出發訪問vj任壹個未被訪問的鄰接點vk,接著從vk出發進行類似的訪問,如此進行下去,壹直到某頂點已沒有未被訪問過的鄰接點,則退回壹步,找前壹個頂點的其他尚未被訪問的鄰接點。

如果有尚未被訪問的鄰接點,則訪問此頂點後,再從該頂點出發進行與前述類似的訪問;如果退回壹步後,前壹個頂點也沒有未被訪問的鄰接點,則再向前回退壹步再進行搜索,重復上述過程,直到所有頂點均被訪問過為止。