網絡流專題

網絡流之最大流

基本概念:

第一步:瞭解Ford-Fulkerson方法 《數據結構與算法分析C語言描述》p233
        算法模板 pascal教程〉圖論4-網絡流〉圖論4-網絡流初步.doc
        模板題:PKU 1273 Drainage Ditches

第二步:Edmonds-Karp算法
        在Ford-Fulkerson算法中,增廣路徑是隨意找一條,如果用廣度優先搜索來查找一條增廣路徑,即查找從s到t最短的增廣路徑,算法的時間複雜度爲O(VE2)。如果是每次尋找包含弧的個數最少的增廣路進行增廣,並引入距離標號的概念,稱爲SAP算法(SAP:Shortest Augmenting Paths ,最短增廣路),算法的時間複雜度爲O(V2E)。

第三步: ISAP算法
         ISAP 算法則是最短增廣路算法的一個改進(Improved Shortest Augmenting Path,改進的最短增廣路)。概括地說,ISAP算法就是不停地找最短增廣路,找到之後增廣;如果遇到死路就retreat,直到發現s,t不連通,算法結束。找最短路本質上就是無權最短路徑問題,因此採用BFS的思想。具體來說,使用一個數組d,記錄每個節點到匯點t的最短距離。搜索的時候,只沿着滿足d[u]=d[v]+1的邊u→v(這樣的邊稱爲允許弧)走。顯然,這樣走出來的一定是最短路。
     算法模板 pascal教程〉圖論4-網絡流〉圖論4-網絡流初步.doc
     網絡流-最大流問題ISA 算法解釋:http://www.renfei.org/blog/isap.html
     網絡流sap算法演示:http://wenku.baidu.com/view/ff0b8ace9ec3d5bbfd0a7413.html?re=view

第四步: Dinic算法
               Dinic算法

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章