網絡流專題

求最大流:

? ? ? ?求最大流的過程,就是不斷找到一條源到匯的路徑,然后構建殘余網絡,再在殘余網絡上尋找新的路徑,使總流量增加,然后形成新的殘余網絡,再尋找新路徑…..直到某個殘余網絡上找不到從源到匯的路徑為止,最大流就算出來了。重要的一點就是建立反向邊。

Edmonds-Karp 最短增廣路算法:

? ? ? 先用BFS找到從源點到匯點的最短可行路徑,并記錄每個點的前驅點和路徑上最小的流量值,然后反向從匯點到源點的邊把最小流量值減去的同時加上反向邊,不斷這樣找,直到找不到路時就結束,把所求的最小流量值加起來就得到最大流。

Dinic 快速網絡流算法:

先利用BFS對殘余網絡分層,分完層后,從源點開始,用DFS從前一層向后一層反復尋找增廣路(即要求DFS的每一步都必須要走到下一層的節點),復雜度為O(n^2m)。

有源上下界網絡最大流:

? ? ? 先對原圖把所有下界通過兩個超級匯點st-ed替換,原圖的流量就是上界-下界,然后加上一條流量無窮大的t-s邊,求出最大流,求出s匯點的流出的量記錄為sum1并檢查超級匯點的流量是否流滿,如果滿流,就滿足下界的條件,然后把超級匯點、所連的邊和無窮大的t-s的邊刪除,然后再求一次s-t的最大流,記錄為sum2,最后滿足條件的最大流就是sum1+sum2;如果不滿足,就不能求出滿足題意的最大流。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 最大流&&最小費用最大流&&最大二分匹配 中文是2017年8月的筆記,英文是2018.11月的筆記 英文筆記來自于...
    廖少少閱讀 35,205評論 6 20
  • 目錄 1.流網絡及最大流問題1.1 流網絡1.2 最大流問題1.3 最大流問題的三種解法對比 2.Ford-Ful...
    王偵閱讀 4,700評論 0 3
  • 1 序 2016年6月25日夜,帝都,天下著大雨,拖著行李箱和同學在校門口照了最后一張合照,搬離寢室打車去了提前租...
    RichardJieChen閱讀 5,165評論 0 12
  • 題目描述 如題,給出一個網絡圖,以及其源點和匯點,求出其網絡最大流。 輸入輸出格式 輸入格式第一行包含四個正整數N...
    Ricardo_Y_Li閱讀 7,859評論 2 4
  • 轉載自這里最小費用最大流通過EK,Dinic,ISAP算法可以得到網絡流圖中的最大流,一個網絡流圖中最大流的流量m...
    Gitfan閱讀 3,497評論 0 1