1. 網路流的割:是網路中頂點的乙個劃分,把所有頂點劃分成兩個頂點集合s和t,其中源點s屬於s,匯點t屬於t,記作cut(s,t)。
2. 割的割邊:如果一條弧的兩個頂點乙個屬於頂點集s乙個屬於頂點集t,該弧為割cut(s,t)的一條割邊。
3. 從s指向t的割邊是正向割邊;
從t指向s的割邊是逆向割邊。
4. 割的容量:所有正向割邊的容量和,不同割的容量不同。
5. 最小割通俗概念:網路是水管網路,乙個割就相當於是乙個****把你家和自來水廠之間的水管網路砍斷了一些之後,自來水廠無論怎麼放水,水都只能從水管斷口嘩嘩流走了,使你家就接受不到水。
所以割的大小應該是****應該關心的事,畢竟細管子好割一些嘛,這就是求最小割的問題,即最小割所花的力氣最小。
6. 定理一:如果f是網路中的乙個流(不必須是最大流),cut(s,t)是任意乙個割,那麼f的值等於該割中的正向割邊的流量和與逆向割邊的流量和之差。
6.1. 推論1:如果f是網路中的乙個流,cut(s,t)是乙個割,那麼f的值不超過割cut(s,t)的容量。
6.2. 推論2:網路中的最大流不超過任何割的容量。
7. 定理二:在任何網路中,如果f是乙個流,cut(s,t)是乙個割,且f的值等於該割的容量,那麼f是乙個最大流,cut(s,t)是乙個最小割(容量最小的割)。
8. 定理三:最大流最小割定理:在任何網路中,最大流的值等於最小割的容量。
9. 結論1:最小割中,其正向割邊的流量一定等於割的容量,且如果存在逆向割邊的話,逆向流量為0,否則一定還可以增廣。
可以根據下圖思考一下(斜線左邊為容量,右邊為流量)。
假如逆向割邊1->2存在乙個1的流量,那麼破壞的肯定就是s->2這條邊的流量,變成4/3,而此時會發現可以對其進行增廣。所以上述結論正確。
10. 結論2:最小割中,源點s屬於集合s,如果存在乙個點i屬於s,則所有c[i, j] > f[i, j]或者存在[j, i]且f[j, i] > 0,那麼j肯定也屬於s(否則不是最小割)。即從源點s出發能找到的含有殘留邊的點組成集合s,其餘的組合成t。其實就是表明最小割中的正向割邊的流量都是等於其容量的,然後以此將圖割開,形成s和t兩個集合。
11. 自己總結+猜測:乙個網路中可能存在不止乙個最小割,如上圖。另外,最大流為什麼等於最小割,有一句話概括地非常好:最小割限制了整個網路的流的上界,所以最大流 = 最小割。
網路流 最小割最大流定理
有乙個與最大流關係密切的問題 最小割。就是把所有的頂點分成兩個集合s和t v s,其中源點s在集合s中,匯點t在集合t中。如果把 起點在s中,終點在t中 的邊都刪除,就無法從s到達t了。我們把這樣的集合劃分 s,t 成為s t割,它的容量定義為c s,t c u,v 其中u s,t t,即起點在s中...
網路流 費用流 最大流最小割定理
囧,今天第一天電腦競賽補課,就把最大流的bfs增廣 先流預推法 最大流最小割定理 最小費用流講完了。汗。而我,就只記住了bfs增廣和最大流最小割定理。最小費用流ms差不多明白了。所以先講講bfs增廣求最大流的演算法吧。簡單的來說,就是從s 源 開始bfs,直到到達t 匯 or不存在增廣路。所謂增廣路...
網路流 費用流 最大流最小割定理
囧,今天第一天電腦競賽補課,就把最大流的bfs增廣 先流預推法 最大流最小割定理 最小費用流講完了。汗。而我,就只記住了bfs增廣和最大流最小割定理。最小費用流ms差不多明白了。所以先講講bfs增廣求最大流的演算法吧。簡單的來說,就是從s 源 開始bfs,直到到達t 匯 or不存在增廣路。所謂增廣路...