Algorihmiche Graphenheorie Sommeremeer 2014 3. Vorleung Flualgorihmen Prof. Dr. Alexander Wolff 1
Erinnerung Oh my God i an LP! Gegeben ein gericheer Graph G = (V, E) mi, V und Kanenkapaziäen c : E R >0. Geben Sie eine Mehode an, die einen maximalen --Flu f konruier., alo eine Funkion f : E R 0, die den Flu erhäl, d.h. für jeden Knoen / {, } icherell: Neozuflu f () = f (u) f (w) = 0, {u V u E} zuläig i, d.h. für jede Kane e garanier: Konane 0 f (e) c(e), {w V w E} maximal i, d.h. uner allen zuläigen --Flüen f = Neozuflu f () maximier. Variable V 2 + 2 E lineare Bechränkungen! lineare Zielfunkion! 2
Fuure Work Today Kann man maximale Flüe (= Spezialfall eine LP) auch mi maßgechneideren kombinaorichen Algorihmen berechnen? Hoffnung: Da könne chneller gehen und rukurelle Einichen liefern. 3
Nich i prakicher al eine gue Theorie Def. Sei G = (V, E) ein gericheer Graph,, V. Eine Pariionierung (S, T = V \ S) on V i ein --Schni, fall S, T. S T S T Rau(S) = {u E u S, T } {u E u T, S} = Rein(S) Zuflu f (S) = f (Rein(S)) } minu =: Neozuflu f (S) Abflu f (S) = f (Rau(S)) 4
Neozuflüe on Schnien und Knoen Zur Erinnerung: Neozuflu f (S) := f (Rein(S)) f (Rau(S)) S Rau(S) E T S Rein(S) E T Lem. 1 Bewei. Sei G = (V, E) Graph, S V und f : E R. Dann: Neozuflu f (S) = S Neozuflu f (). S Neozufl f () = S (Zuflu f () Abflu f ()) ( S S e=u f (e) +f = e=w f (e)) u f = f (e) f (e) = Neozufl f (S) +f f e Rein(S) e Rau(S) 5
Noch mehr Schnie Lemma 1. Sei G = (V, E) Graph, S V und f : E R. Dann: Neozuflu f (S) = S Neozuflu f (). Lemma 2. G Graph,, V, f --Flu, (S,T ) --Schni. Dann gil f = Neozuflu f (T ) Bewei. f = Def. Neozuflu f () = T Neozuflu f () da Neozuflu f () = 0 für alle, = Neozuflu f (T ) 6
Kapaziä on Schnien Lemma 2. G Graph,, V, f --Flu, (S,T ) --Schni. Dann gil f = Neozuflu f (T ) =: Neoabflu f (S). Def. G Graph mi Kap. c : E R >0, (S,T ) --Schni. Dann i c(s) := c(rau(s)) die Kapaziä on (S,T ). Lemma 3. f zulä. --Flu, (S, T ) --Schni f c(s). Bewei. Speziell: max f f min S c(s) f = Neoabflu f (S) = f (Rau(S)) f (Rein(S)) f (Rau(S)) S 8/ 16 5/ 13 4/ 4 1 2 12/ 12 3/ 9 4/ 14 3 1/ 4 7 10/ 20 3/ 4 T c(rau(s)) = c(s) Korollar. f = c(s) f maximal,! c(s) min.!! 7
Reidualnez Beob. Aber: Def. 8/ 16 12/ 13 4/ 4 Fall e einen --Weg gib, bei dem auf keiner Kane die Kapaziä augechöpf i, können wir f ergrößern. Fall e keinen olchen --Weg gib, o i f nich unbeding maximal. Der Reidualgraph G f = (V, E f ) enhäl für jede Kane e = u on G = (V, E) die Kane(n) +e := u fall f (e) < c(e) e := u fall f (e) > 0 1 2 12/ 12 3/ 9 11/ 14 3 7/ 4 7 16/ 20 4/ 4 G 8 12 8 1 mi c f (+e) := c(e) f (e) mi c f ( e) := f (e) 1 4 2 12 6 3 3 11 3 7 Reidualkapaziäen 4 16 4 4 G f 8
Fluergrößernde Wege Def. Ein --Weg W in G f heiß fluergrößernder Weg für f. Die Reidualkapaziä on W i W := min σe W c f (σe), wobei σ {+, }. Saz. (om fluergrößernden Weg). Ein zuläiger --Flu f in G i maximal e gib keinen fluergrößernden Weg in G f. 8/ 16 4/ 4 12/ 13 1 2 12/ 12 3/ 9 11/ 14 3 7/ 7 4 16/ 20 4/ 4 G 8 12 8 1 1 4 2 12 6 3 3 11 3 7 4 16 4 4 G f 9
Da Max-Flow-Min-Cu-Theorem Saz. [Ford & Fulkeron, 1956] [Elia, Feinein, Shannon 1956] [Kozig 56] Saz. In einem ger. Graphen G mi Kap. c : E R >0 gil: max f = f zuläiger --Flu min c(s) (S,T ) --Schni d.h. der Wer eine maximalen Flue i gleich der Kapaziä eine minimalen --Schnie. Leer Randolph Ford, Jr. (*1927) Delber R. Fulkeron (1924 76) Zur Erinnerung: Korollar. f = c(s) f maximal, c(s) min. (om fluergrößernden Weg). Ein zuläiger --Flu f in G i maximal e gib keinen fluergrößernden Weg in G f.!!! 10
Saz. Bewei. In einem ger. Graphen G mi Kap. c : E R >0 gil: max f = f zuläiger --Flu min c(s) (S,T ) --Schni Sei f ein maximaler Flu. e gib keinen fluergrößernden Weg { in G f i on au nich erreichbar } S = { on erreichbar} i --Schni T = { on nich erreichbar} Sei e = u Rau(S) f (e) = c(e), on wäre on in G f f (Rau(S)) = c(rau(s)) Nun ei e = u Rein(S) f (e) = 0 f (Rein(S)) = 0 erreichbar Alo: c(s) = c(rau(s)) = f (Rau(S) f (Rein(S)) Def. = Neoabflu f (S) = f c(s) minimal 11 Korr.
Der Algorihmu on Ford & Fulkeron FordFulkeron(DirecedGraph G = (V, E; c), Verex, Verex ) foreach u E do f u = 0 while G f enhäl --Weg W do W = min u W c f (u) foreach u W do if u E hen f u = f u + W ele f u = f u W reurn f Korrekhei? Folg au Saz om fluergrößernden Weg. Laufzei? Berechnung on --Wegen } Breienuche O(E) Zei Tiefenuche Anz. Schleifendurchläufe in jedem Durchlauf wird f um 1 ergrößer max. f Durchläufe, wobei f ein max. Flu 1. c : E N: 2. Q >0 : 3. R >0 : O( f E) erweiern... problemaich! 12
Beipiel 0/ 0/ 0/1 u 0/G 0/ G f u 1 1/ 0/ 1/1 u 0/ 1/ 999 1 u 1 1 999 1/ 1/ 0/1 u 1/ 1/... Laufzei Ω( f E) 13
Der Algorihmu on Edmond & Karp EdmondKarp FordFulkeron(DirecedGraph G = (V, E; c), Verex, Verex ) foreach u E do f u = 0 while G f enhäl --Weg do W = kürzeer --Weg in G f W = min u W c f (u) foreach u W do if u E hen f u = f u + W ele f u = f u W reurn f Jack R. Edmond *1934 Richard M. Karp *1935 Boon, MA 14
Beipiel 0/ 0/ 0 0/1 u u 0 u 0 0/G 0/ 0 G f Aband on = 1 u 1 1 1 u Aband = 3 u Aband = 15 FERTIG!
Kürzee Wege machen effiziene Algorihmen Def. Sei δ f (u, ) die Länge (= Anz. Kanen) eine kürzeen u--weg in G f. Lemma. Während EdmondKarp(G,, ) gil für jeden Knoen V, da δ f (, ) mi jeder Fluergrößerung monoon zunimm. Bewei. Annahme: e gib einen Knoen derar, da δ(, ) bei einer Fluergrößerung abnimm. Seien f und f die Flüe or bzw. nach der Vergrößerung. kleiner Schurke Ab jez ei ein Knoen mi minimalem Wer on δ f (, ) und δ f (, ) < δ f (, ). 16
Forezung Bewei Sei W ein kürzeer --Weg in G f. Sei u der leze Knoen or auf W. u E f und δ f (, ) = δ f (, u) + 1. Nach Wahl on gil: δ f (, u) δ f (, u) Beh. Bewei. u E f u i kein Schurke; Aband nimm nich ab. Eig. kürzeer Wege Angenommen u E f. δ f (, ) δ f (, u) + 1 δ f (, u) + 1 = δ f (, ) Widerpruch zur Annahme, da δ f (, ) < δ f (, ). Aber wa kann u E f und u E f erklären?? 17
Forezung II 1. Fall: u E u E f u E f 2. Fall: u E u E f bedeue f (u) = c(u). bedeue f (u) < c(u). Fluergrößerung enlang u E f bedeue f (u) = 0. u E f bedeue f (u) > 0. Fluergrößerung enlang u E f der Flu wird in beiden Fällen enlang u ergrößer Da EdmondKarp enlang kürzeer Wege ergrößer, mu Vorgänger on u auf einem kürzeen -u-weg in G f ein. [u kein Schurke] [u lieg auf W or ] δ f (, ) = δ f (, u) 1 δ f (, u) 1 = δ f (, ) 2 < δ f (, ) Widerpr. zur Ann. δ f (, ) < δ f (, ) 18
Anzahl Fluerhöhungen & Laufzei Saz. EdmondKarp(G,, ) führ O(V E) Fluergrößerungen durch. Korollar. Der Edmond-Karp-Algorihmu läuf in O(V E 2 ) Zei. Bewei. Jede der O(V E) Fluergrößerungen benöig O(E) Zei bei Anwendung on Breienuche. 19
Bewei (Saz) Saz. EdmondKarp(G,, ) führ O(V E) Fluergrößerungen durch. Bewei. Alg. ergrößere enlang kürzeem --Weg W in G f Kane u auf W heiß kriich in G f, wenn c f (u) = W zeigen: jede Kane kann höchen O(V ) mal kriich ein δ f (, ) = δ f (, u) + 1 da u auf kürzeem Weg W in G f nach Fluergr. enlang W erchwinde u au G f u erchein er wieder im Reidualgraph, nachdem Flu enlang u ergrößer wurde u E f 20
Forezung Bewei Saz. EdmondKarp(G,, ) führ O(V E) Fluergrößerungen durch. Bewei. da u auf kürzeem fluergr. Weg in G f δ f (, u) = δ f (, ) + 1 u auf W in G f δ f (, ) + 1 = δ f (, u) + 2 δ f (, u) V 2 olange δ f (, u) < + u kann nur O(V ) mal kriich ein 21
Kurze Gechiche der Berechnung max. Flüe Mehode Laufzei O( ) Auoren Allgemeine gerichee Graphen hore reid. - pah V E 2 Edmond & Karp 56 puh relabel V 2 E Goldberg 87 relabel o fron V 3 Goldberg & Tarjan 88 V E log(v 2 /E + 2) blocking flow min(v 2/3, E 1/2 ) E Goldberg & Rao 98 log(v 2 /E + 2) log C, wobei C = e E c(e) new VE Orlin 13 --planare Graphen hore pah in dual V Hain 81 + Henzinger e al. 97 Planare Graphen lefmo reid. - pah V log V Borradaile & Klein 06 + erex capaciie V log V Kaplan & Nubaum 09 22