平特心水报图
新網絡營銷基礎與實踐

你的位置:首頁 >網絡營銷 >寬度優先搜索

寬度優先搜索

寬度優先搜索算法(又稱廣度優先搜索)是最簡便的圖的搜索算法之一,這一算法也是很多重要的圖的算法的原型。Dijkstra單源最短路徑算法和Prim最小生成樹算法都采用了和寬度優先搜索類似的思想。其別名又叫BFS,屬于一種盲目搜尋法,目的是系統地展開并檢查圖中的所有節點,以找尋結果。換句話說,它并不考慮結果的可能位址,徹底地搜索整張圖,直到找到結果為止。

詳細解釋

  已知圖G=(V,E)和一個源頂點s,寬度優先搜索以一種系統的方式探尋G的邊,從而“發現”s所能到達的所有頂點,并計算s到所有這些頂點的距離(最少邊數),該算法同時能生成一棵根為s且包括所有可達頂點的寬度優先樹。對從s可達的任意頂點v,寬度優先樹中從s到v的路徑對應于圖G中從s到v的最短路徑,即包含最小邊數的路徑。該算法對有向圖和無向圖同樣適用。   之所以稱之為寬度優先算法,是因為算法自始至終一直通過已找到和未找到頂點之間的邊界向外擴展,就是說,算法首先搜索和s距離為k的所有頂點,然后再去搜索和S距離為k+l的其他頂點。   為了保持搜索的軌跡,寬度優先搜索為每個頂點著色:白色、灰色或黑色。算法開始前所有頂點都是白色,隨著搜索的進行,各頂點會逐漸變成灰色,然后成為黑色。在搜索中第一次碰到一頂點時,我們說該頂點被發現,此時該頂點變為非白色頂點。因此,灰色和黑色頂點都已被發現,但是,寬度優先搜索算法對它們加以區分以保證搜索以寬度優先的方式執行。若(u,v)∈E且頂點u為黑色,那么頂點v要么是灰色,要么是黑色,就是說,所有和黑色頂點鄰接的頂點都已被發現。灰色頂點可以與一些白色頂點相鄰接,它們代表著已找到和未找到頂點之間的邊界。   在寬度優先搜索過程中建立了一棵寬度優先樹,起始時只包含根節點,即源頂點s.在掃描已發現頂點u的鄰接表的過程中每發現一個白色頂點v,該頂點v及邊(u,v)就被添加到樹中。在寬度優先樹中,我們稱結點u 是結點v的先輩或父母結點。因為一個結點至多只能被發現一次,因此它最多只能有--個父母結點。相對根結點來說祖先和后裔關系的定義和通常一樣:如果u處于樹中從根s到結點v的路徑中,那么u稱為v的祖先,v是u的后裔。

網絡營銷詞典內容均由網友提供,僅供參考。

平特心水报图