網路流的入門思想

來源:互聯網
上載者:User

很多問題都可以轉化成網路流問題,如運輸貨物時的物流問題,水流問題,匹配問題等等。網路是一個各條邊都有權值和方向的圖。

網路流問題,一般情況下我們會把各種網路問題抽象成網路流問題,網路流是滿足以下性質的網路:每一條邊擁有一個最大的容量c,即該條邊可以容納的最大流量,f是流過該邊的實際流量,且總有f<=c。對於圖中每個頂點(源點和匯點除外)都有流出的流量等於流入的流量。圖中只有一個源點一個匯點,且對於源點來說其流入量為0,對於匯點來說流出量為0,源點的流出量等於匯點的流入量,對於最大流問題既是要找出流入匯點的最大流量值。

求最大流的演算法:

EK演算法:EK演算法中涉及的三個關鍵詞:殘留網路,增廣路,割。

殘留網路,假定我們已經找到了一個可行的流,那麼對於每條邊如果流量小於容量則表示該條邊有剩餘,以流的流量我們也可以看成是反向的殘留,得到一個殘留網路。

增廣路:在殘留網路中如果可以找到一條從源點到匯點的路,即為增廣路,我們就可以將流值增加這條增廣路上的最小邊。

EK演算法就是在殘留網路中尋找增廣路使得流值不斷增大,直至達到最大為止。

Ek演算法由於在尋找增廣路時具有盲目性,演算法效率不高。

Dinic演算法:基於EK演算法的思想,再從源點到匯點做bfs來尋找路時,對各點標一個層次值表示從源點到該點所需的最小步數,然後在這些層次的基礎上做dfs,dfs的時候只能到其下一層的點,且容量需要比已流流量大,然後重複上述過程即可得到解。

最大流和最小割,如果我們想要把一個網路分成兩部分,一部分包含源點s,另一部分包含匯點t,我們把這個集合之間,從源集合到彙集合之間的正向流量之和,稱為是網路的割,而一個網路的割中最小的那個,我們稱之為最小割。

最大流最小割定理:一個網路的最小割等於最大流。

最小費用最大流:在保證最大流的情形下,網路中的邊,可能不只有流量還有費用,那麼如果我們一方面希望網路擁有最大流,另一方面我們要求費用達到最小,這就是一個費用流的問題了,對於費用流的問題,事實上我們可以這麼考慮,首先我們必須要找到的是最大流,另一方面我們需要費用最小,而在找最大流的時候我們總是在尋找增廣路來增廣,來使得我們能得到一個比現在更大的流,那麼另一方面要求費用最小,所以我們可以在尋找增廣路的時候找一條費用最小路來增廣,而費用我們也可以看成是距離類的東西,也就是這樣的話,我們可以用最短路,來找出這樣一個最小費用的路來進行增廣,而不斷增廣,即可得到最大流,這樣我們就可以得到最小費用最大流。

網路流和費用流中經常會涉及到拆點的操作,將一個點分成入和出,來拆成兩個點。例如聯合訓練賽的第六場第一個題目tour,給出一張圖,要求將這個圖劃分成幾個集合,要求每個集合的點的個數大於等於2,要求這個集合所有點可以構成一個環。圖中的每條邊都有一個邊權,最後找到各個集合的總花費為所有構成環的邊的權之和。要求這個花費最小。分析題目可以知道,我們最後分成各個集合之後一定是每個點的出度和入度都為1,所以這個題經過拆點之後就是最小權匹配問題,用km演算法即可解決,當然我們也可以將它轉化成一費用流問題,將圖中的每個節點都拆成入和出兩個點,增加源和匯,源點到進入的點連一條費用為0,流量為1的邊,從出點到匯連一條費用為0,流量為1的邊,原圖中的邊都練成費用為邊權,流量為1的邊
,最後只要求這個網路的最小費用流即可。另外對於一些題是點權而不是邊權的題目,也可以通過拆點來將點權轉化成邊權。所以拆點的想法在網路流中十分重要。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.