Max-flow-min-cut-stelling

De max-flow-min-cut-stelling is een stelling in de optimalisatietheorie over de maximum flow in netwerken. Hij is afgeleid van de Stelling van Menger. De stelling luidt: De maximale hoeveelheid van flow is gelijk aan de minimale capaciteit van een s-t-snede.

Informeel zegt de stelling dat de maximale flow in een netwerk bepaald wordt door de 'bottleneck': het is onmogelijk dat er tussen twee knopen meer data stroomt dan de zwakste verbinding ergens tussen deze twee knopen.

Definitie

Stel dat G ( V , E ) {\displaystyle G(V,E)} een eindige gerichte graaf is met knopenverzameling V {\displaystyle V} en bogenverzameling E {\displaystyle E} . Elke boog ( u , v ) E {\displaystyle (u,v)\in E} heeft een (niet negatieve) capaciteit c ( u , v ) {\displaystyle c(u,v)} . Er zijn twee bijzondere knopen: de bron (source) s {\displaystyle s} en de uitgang (sink) t {\displaystyle t} .

Een s-t-snede is een partitie van de knopenverzameling in 2 verzamelingen S {\displaystyle S} en T {\displaystyle T} zodat s {\displaystyle s} zich in S {\displaystyle S} bevindt en t {\displaystyle t} zich in T {\displaystyle T} bevindt. Er zijn zo 2 | V | 2 {\displaystyle 2^{|V|-2}} dergelijke deelverzamelingen van een graaf.

De capaciteit van een snede ( S , T ) {\displaystyle (S,T)} is gelijk aan de som van de capaciteit van de bogen die vertrekken in S {\displaystyle S} en eindigen in T {\displaystyle T} :

c ( S , T ) = u S , v T | ( u , v ) E c ( u , v ) {\displaystyle c(S,T)=\sum _{u\in S,v\in T|(u,v)\in E}c(u,v)} ,

Een stroming in het netwerk is een afbeelding x : E R + {\displaystyle x\colon E\to \mathbb {R} ^{+}} , aangeduid als x i j {\displaystyle x_{ij}} , die voldoet aan de voorwaarden:

  1. 0 x i j c i j {\displaystyle 0\leq x_{ij}\leq c_{ij}} voor elke ( i , j ) E {\displaystyle (i,j)\in E} (capaciteitsvoorwaarde);
  2. j : ( i , j ) E x i j j : ( j , i ) E x j i = 0 {\displaystyle \sum _{j:\,\,(i,j)\in E}x_{ij}-\sum _{j:\,\,(j,i)\in E}x_{ji}=0} (behoud van stroming) voor elke i A { s , t } {\displaystyle i\in A\setminus \{s,t\}} ; als i = s {\displaystyle i=s} is deze som gelijk aan f {\displaystyle f} (de bron "produceert" stroming) en als i = t {\displaystyle i=t} is deze som gelijk aan f {\displaystyle -f} (de uitgang "verbruikt" stroming) voor een zekere f 0 {\displaystyle f\geq 0} .

Het maximum-flow-probleem is: vind een x {\displaystyle x} waarvoor f {\displaystyle f} maximaal is. De stelling zegt dat de maximale stroming die kan stromen van de source naar de sink gelijk is aan de minimale capaciteit van alle s-t-sneden van het netwerk. De stelling werd door Ford en Fulkerson in 1956 bewezen; zij ontwikkelden het eerste algoritme om de maximum flow in een netwerk te berekenen.[1]

De volgende 3 condities zijn equivalent:

  1. f {\displaystyle f} is een maximale flow in G {\displaystyle G}
  2. Het residuële netwerk G f {\displaystyle G_{f}} bevat geen augmenterende paden.
  3. | f | = c ( S , T ) {\displaystyle |f|=c(S,T)} voor elke snede van ( S , T ) {\displaystyle (S,T)} .

Voorbeeld

Een netwerk met maximale flow, en 3 minimale snedes.

Beschouwen we een netwerk met de knopen V = { s , o , p , q , r , t } {\displaystyle V=\{s,o,p,q,r,t\}} , en een totale flow van de bron s {\displaystyle s} naar de uitgang t {\displaystyle t} van 5, dat het maximale is in dit netwerk.

Er zijn 3 minimale snedes in dit netwerk:

Snede Capaciteit
S = { s , p } , T = { o , q , r , t } {\displaystyle S=\{s,p\},T=\{o,q,r,t\}} c ( s , o ) + c ( p , r ) = 3 + 2 = 5 {\displaystyle c(s,o)+c(p,r)=3+2=5}
S = { s , o , p } , T = { q , r , t } {\displaystyle S=\{s,o,p\},T=\{q,r,t\}} c ( o , q ) + c ( p , r ) = 3 + 2 = 5 {\displaystyle c(o,q)+c(p,r)=3+2=5}
S = { s , o , p , q , r } , T = { t } {\displaystyle S=\{s,o,p,q,r\},T=\{t\}} c ( q , t ) + c ( r , t ) = 2 + 3 = 5 {\displaystyle c(q,t)+c(r,t)=2+3=5}

Bemerk dat S = { s , o , p , r } , T = { q , t } {\displaystyle S=\{s,o,p,r\},T=\{q,t\}} geen minimale snede is, zelfs als beide ( o , q ) {\displaystyle (o,q)} en ( r , t ) {\displaystyle (r,t)} gesatureerd zijn in de gegeven flow. Dit doordat in het residuële netwerk G f {\displaystyle G_{f}} er een boog (r,q) bestaat met capaciteit c f ( r , q ) = c ( r , q ) f ( r , q ) = 0 ( 1 ) = 1 {\displaystyle c_{f}(r,q)=c(r,q)-f(r,q)=0-(-1)=1} .

  • A review of current literature on computing maximum flows
  • Max-Flow Min-Cut Animation
  • Max-Flow Problem: Ford-Fulkerson Algorithm

Referenties

  • P. Elias, A. Feinstein, and C. E. Shannon. Note on maximum flow through a network. IRE Transactions on Information Theory IT-2, 117--119, 1956.
  • Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein. Introduction to Algorithms, Second Edition. MIT Press and McGraw-Hill, 2001. ISBN 0-262-03293-7. Chapter 26: Maximum Flow, pp.643–700.
Bronnen, noten en/of referenties
  1. L.R. Ford en D.R. Fulkerson, "Maximal flow through a network", Can. J. Math. (1956), vol. 8, blz. 399-404. Gearchiveerd op 22 mei 2018.