Your SlideShare is downloading. ×
Kap1
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Kap1

567
views

Published on

Published in: Technology, Education

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
567
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Berthold V¨ cking, RWTH Aachen, 23. April 2008 o Berthold V¨ cking, RWTH Aachen, 23. April 2008 o Netzwerke und Flusse ¨ Ein Flussnetzwerk ist ein gerichteter Graph G = (V, E, q, s, c) mit zwei ausgew¨ hlten Knoten q, s ∈ V und einer Kapazit¨ ts- a a funktion c : E → N. Die Quelle q hat Eingangsgrad 0 und die Senke s hat Ausgangsgrad 0. Kapitel 1: Flussalgorithmen Wir definieren n = |V |, m = |E| und nehmen an, jeder Knoten ist von q erreichbar. Es gilt n − 1 ≤ m ≤ n(n − 1). Ein Fluss in einem Netzwerk G ist eine realwertige Funktion Hilfreiche Literatur: f : E → R+ mit den Eigenschaften 0 • Ahuja, Magnanti, Orlin: Network Flows: Theory, Algo- a) Flusserhaltung: ∀u ∈ V {q, s} : rithms, and Applications, Prentice Hall, 1993. f (v, u) = f (u, v) . • Cormen, Leiserson, Rivest: Introduction to Algorithms, v : (v,u)∈E v : (u,v)∈E First Edition. MIT Press, 1990. fin (u) fout (u) • Cormen, Leiserson, Rivest, Stein: Introduction to Algo- b) Kapazit¨ tsbeschr¨ nkung: ∀e ∈ E : f (e) ≤ c(e). a a rithms, Second Edition. MIT Press, 2001. • Ottmann, Widmayer: Algorithmen und Datenstrukturen. BI-Wiss.-Verl. 1990. Der Wert des Flusses f ist definiert als w(f ) = fout (q). Wegen der Flusserhaltung gilt somit auch w(f ) = fin (s). 1 2
  • 2. Berthold V¨ cking, RWTH Aachen, 23. April 2008 o Berthold V¨ cking, RWTH Aachen, 23. April 2008 o Problem 1 (Maximaler Fluss) Gegeben sei ein Flussnetz- werk G. Berechne einen maximalen Fluss auf G, d.h. einen Die Ford-Fulkerson-Methode Fluss mit gr¨ ßtm¨ glichem Wert. o o Der folgende algorithmische Rahmen zur Berechnung ei- nes maximalen Flusses f auf einem Flussnetzwerk G = (V, E, q, s, c) geht zur¨ ck auf Ford und Fulkerson, 1957. u Beachte, wir haben angenommen, dass die Kantenkapazit¨ tena ganzzahlig sind. Das ist keine besondere Einschr¨ nkung, denn a bei rationalen Kapazit¨ ten k¨ nnen wir immer alle Zahlen mit a o Ford-Fulkerson-Methode: dem Hauptnenner multiplizieren und somit ein Flussproblem 1 ∀e ∈ E : f (e) = 0; mit rationalen Kapazit¨ ten in ein Problem mit ganzzahligen a 2 Solange es einen fv-Weg W gibt Kapazit¨ ten transformieren. a 3 erh¨ he den Fluss f entlang von W maximal; o 4 Ausgabe von f . Die Algorithmen zur Berechnung von maximalen Fl¨ ssen, u die wir im Folgenden vorstellen werden, haben zahlreiche fv-Weg“ steht f¨ r flussvergr¨ ßernder Weg“. Dabei handelt u o praktische Anwendungen, die auf den ersten Blick nicht im- ” ” es sich um Wege im sogenannten Restnetzwerk“. mer unbedingt unmittelbar an Flussprobleme erinnern. In den ” ¨ ¨ Ubungen pr¨ sentieren wir dazu einige, teilweise uberraschen- a de Beispiele, wie z.B. das Meisterschaftsproblem. 3 4
  • 3. Berthold V¨ cking, RWTH Aachen, 23. April 2008 o Berthold V¨ cking, RWTH Aachen, 23. April 2008 o Das Restnetzwerk Gf zu einem Netzwerk G = (V, E, q, s, c) Max-Flow = Min-Cut und einem Fluss f ist wie folgt definiert. Die Korrektheit der Ford-Fulkerson-Methode beruht auf dem • O.B.d.A. nehmen wir an, dass das Netzwerk G keine Max-Flow=Min-Cut“-Theorem. ” entgegengesetzten Kanten hat, d.h. Ein Cut oder Schnitt (Q, S) in einem Flussnetzwerk G ist (u, v) ∈ E ⇒ (v, u) ∈ E . ˙ eine Partionierung der Knotenmenge V = Q ∪ S mit q ∈ Q, s ∈ S. • Die Kapazit¨ t des Schnitts (Q, S) ist definiert durch a • F¨ r alle Paare (u, v) ∈ V 2 setze u  c(Q, S) = c(u, v) .  c(u, v) − f (u, v) (u, v) ∈ E   (u,v)∈E u∈Q,v∈S restf (u, v) = f (v, u) (v, u) ∈ E    • Der Fluss uber den Schnitt (Q, S) ist definiert durch ¨ 0 sonst f (Q, S) = f (u, v) − f (v, u) . (u,v)∈E (v,u)∈E u∈Q,v∈S v∈S,u∈Q • Gf hat die Knotenmenge V und die Kantenmenge Ef = {(u, v) ∈ V 2 | restf (u, v) > 0} . Lemma 2 [Max-Flow≤Min-Cut] F¨ r jeden Fluss f und jeden Schnitt (Q, S) gilt w(f ) = u f (Q, S) ≤ c(Q, S). ⊓ ⊔ Ein fv-Weg ist ein einfacher Weg von q nach s im Rest- Dieses Lemma folgt direkt aus der Flusserhaltung. Formal netzwerk Gf . (einfacher Weg = Weg auf dem jede Kante zeigt man w(f ) = f (Q, S) per Induktion uber die Gr¨ ße der ¨ o h¨ chstens einmal vorkommt) o ¨ Menge Q (vgl. Ubungen). 5 6
  • 4. Berthold V¨ cking, RWTH Aachen, 23. April 2008 o Berthold V¨ cking, RWTH Aachen, 23. April 2008 o Satz 3 (Max-Flow=Min-Cut) aus b) folgt c): ¨ Die folgenden Aussagen sind aquivalent. • Aussage b) sagt, dass Gf keinen fv-Weg hat a) f ist ein maximaler Fluss. • Definiere Q = {v ∈ V | ∃ Weg von q nach v in Gf } und S = V Q. b) Das Restnetzwerk Gf enth¨ lt keinen fv-Weg. a • Da Gf keinen fv-Weg hat, folgt s ∈ S. Also ist (Q, S) c) Es gibt einen Schnitt (Q, S) mit w(f ) = c(Q, S). ein wohldefinierter Schnitt mit q ∈ Q und s ∈ S. • F¨ r jede Kante (u, v) ∈ E mit u ∈ Q und v ∈ S gilt u f (u, v) = c(u, v), weil sonst restf (u, v) > 0 und somit Beweis von Satz 3: v ∈ Q w¨ re. a aus a) folgt b): • F¨ r jede Kante (v, u) ∈ E mit v ∈ S und u ∈ Q gilt u f (v, u) = 0, weil sonst restf (u, v) > 0 und somit • Zum Zwecke des Widerspruchs, sei f ein maximaler wiederum v ∈ Q w¨ re. a Fluss und W ein fv-Weg in Gf . • Wir erinnern uns an die Definitionen von c(Q, S) und • Dann kann f entlang von W vergr¨ ßert werden. Dies ist o f (Q, S) und erhalten Aussage c), weil ein Widerspruch zur Maximalit¨ t von f . a c(Q, S) = c(u, v) (u,v)∈E u∈Q,v ∈S aus c) folgt a): = f (u, v) − f (v, u) Aus Lemma 2 folgt (u,v)∈E (v,u)∈E u∈Q,v∈S v∈S,u∈Q w(f ) = c(Q, S) ≥ Min-Cut ≥ Max-Flow , = f (Q, S) Lemma 2 = w(f ) . und somit gilt w(f ) = Max-Flow. ⊓ Satz 3 ⊔ 7 8
  • 5. Berthold V¨ cking, RWTH Aachen, 23. April 2008 o Berthold V¨ cking, RWTH Aachen, 23. April 2008 o Die Ford-Fulkerson-Methode terminiert, sobald kein fv-Weg Laufzeit der Ford-Fulkerson-Methode ¨ mehr vorhanden ist. Aus der Aquivalenz der Aussagen in Satz 3a) und b) folgt somit, dass der berechnete Fluss f fv-Wege k¨ nnen beispielsweise durch Tiefen- oder Breiten- o maximal ist. suche im Restnetzwerk gefunden werden. Damit dauert eine Iteration der Ford-Fulkerson-Methode nur Zeit O(m). Sei C = e∈E c(e). Da der Fluss in jeder Iteration um mindes- Satz 4 (Korrektheit) Die Ford-Fulkerson-Methode berech- tens eine Einheit erh¨ ht wird und C eine obere Schranke f¨ r o u net einen maximalen Fluss. den Wert des maximalen Flusses ist, k¨ nnen wir die Laufzeit o der Ford-Fulkerson-Methode durch O(mC) absch¨ tzen und a Wir haben angenommen, dass die Kantenkapazit¨ ten nat¨ rli- a u erhalten damit eine pseudopolynomielle Laufzeitschranke. che Zahlen sind. Unter dieser Annahme ist auch der durch Im Allgemeinen hat die Ford-Fulkerson-Methode keine po- die Ford-Fulkerson-Methode berechnete Fluss ganzzahlig, lynomielle Laufzeit. Im Folgenden werden wir jedoch sehen, d.h. auf jeder Kante wird der Wert des Flusses durch eine dass die Berechnung der fv-Wege mittels einer Breitensuche nat¨ rliche Zahl beschrieben. u eine polynomielle Laufzeit garantiert. Eine Breitensuche fin- det k¨ rzeste fv-Wege, d.h. solche Wege zwischen q und s im u Korollar 5 (Ganzzahligkeit) F¨ r jeden maximalen Fluss u Restnetzwerk, die eine minimale Anzahl Kanten enthalten. gibt es einen ganzzahligen Fluss mit gleichem Wert, und die Ford-Fulkerson-Methode berechnet einen derartigen ganzzah- Satz 6 (Edmonds und Karp, 1969) Die Laufzeit der Ford- ligen maximalen Fluss. Fulkerson-Methode mit Breitensuche ist O(m2 n) = O(n5 ). Diese bemerkenswerte Eigenschaft ist n¨ tzlich f¨ r vielerlei u u Zum Beweis dieses Satzes m¨ ssen wir zeigen, dass der u ¨ Anwendungen (vgl. Ubungen). Algorithmus nach O(mn) Iterationen terminiert. 9 10
  • 6. Berthold V¨ cking, RWTH Aachen, 23. April 2008 o Berthold V¨ cking, RWTH Aachen, 23. April 2008 o Lemma 7 Von Iteration zu Iteration verringert sich die Di- Hinzufugen von neuen Kanten: ¨ stanz von q zu einem Knoten v ∈ V im Restnetzwerk nicht. Kann das Hinzuf¨ gen der neuen Kanten Distanzen von u der Quelle zu anderen Knoten verringern? – Nein! Begr¨ ndung: Eine Kante (v, u) wird nur dann eingef¨ gt, u u Beweis: Entlang des fv-Weges k¨ nnen durch die Erh¨ hung o o wenn die Kante in umgekehrter Richtung – also die des Flusses Kanten verschwinden und entstehen. Es gibt zwei Kante (u, v) – auf einem flussvergr¨ ßerndem Weg liegt. o Arten von Ver¨ nderungen. a Flussvergr¨ ßernde Wege sind aber k¨ rzeste Weg im o u Restnetzwerk. Wenn u also die Distanz ℓ von der Quelle • F¨ r jede Kante (u, v) auf dem fv-Weg verringert sich u hat, so hat v die Distanz ℓ + 1 von der Quelle. Die neue restf (u, v). Kanten mit minimaler Restkapazit¨ t auf dem a Kante verbindet also einen Knoten mit Distanz ℓ + 1 fv-Weg, sogenannte Flaschenhalskanten, verschwinden von der Quelle mit einem Knoten mit Distanz ℓ. Um aus dem Restnetzwerk, denn ihre Restkapazit¨ t wird auf a aber die Distanz von der Quelle zu irgendeinem Knoten 0 gesetzt. zu verringern, m¨ sste man eine gerichtetete Kante von u • Gleichzeitig erh¨ ht sich f¨ r jede Kante (u, v) auf dem o u einem Knoten mit Distanz k, f¨ r irgendein k ≥ 0, zu u fv-Weg die entgegengesetzte Restkapazit¨ t restf (v, u). a einem Knoten mit Distanz k + i, f¨ r irgendein i > 1, u Falls restf (v, u) zuvor den Wert 0 hatte entsteht eine einf¨ gen. u neue Kante im Restnetzwerk. Entfernen von Flaschenhalskanten: Offensichtlich k¨ nnen Kantenl¨ schungen keine Distan- o o Zum Zwecke des Beweises, ver¨ ndern wir das Restnetzwerk a zen verringern. in zwei Schritten und f¨ gen zun¨ chst nacheinander alle neuen u a Kanten hinzu und entfernen erst dann die Flaschenhalskanten. ⊓ Lemma 7 ⊔ 11 12
  • 7. Berthold V¨ cking, RWTH Aachen, 23. April 2008 o Berthold V¨ cking, RWTH Aachen, 23. April 2008 o Beweis von Satz 6: Der Algorithmus von Dinitz, 1970 • Wenn eine Kante (u, v) zur Flaschenhalskante wird, verschwindet sie aus dem Restnetzwerk. Sei ℓ die Distanz Idee: In jeder Iteration erh¨ he den Fluss entlang von mehreren o von q zu u vor der Entfernung von (u, v). Die Distanz k¨ rzesten fv-Wegen. u von q zu v ist somit ℓ + 1. • Die Kante (u, v) kann in einer sp¨ teren Iteration wieder a in das Restnetzwerk eingef¨ gt werden und zwar wenn u Zu einem gegebenen Restnetzwerk Gf = (V, Ef ) ist das der Fluss auf Kante (v, u) erh¨ ht wird. Dazu muss (v, u) o Niveaunetzwerk G′ = (V, Ef ) wie folgt definiert. F¨ r i ∈ N0 f ′ u auf einem k¨ rzesten Weg liegen. Da die Distanz von q zu u sei v sich aber nicht verringert hat, muss die Distanz von q Vi = {v ∈ V | die Distanz von q nach v in Gf ist i} . zu u dann mindestens ℓ + 2 sein. G′ enth¨ lt nur die Kanten von Niveau i zu Niveau i + 1, d.h, f a • Zwischen jedem Entfernen und Wiedereinf¨ gen einer u ′ Kante (u, v) erh¨ ht sich die Distanz von der Quelle q o Ef = {(u, v) ∈ Ef | ∃i : u ∈ Vi , v ∈ Vi+1 } . zum Knoten u also um den additiven Wert 2. Da die Als Kapazit¨ ten f¨ r diese Kanten verwenden wir die Restka- a u maximale Distanz n − 1 ist, kann eine Kante also nicht pazit¨ ten des Restnetzwerkes Gf . a ofter als 1 n mal entfernt werden. ¨ 2 • In jeder Iteration wird mindestens eine Kante entfernt. Es gibt bis zu 2m Kanten im Restnetzwerk. Also ist die 1 G′ kann aus Gf durch Breitensuche in Zeit O(m) berechnet f Anzahl der Iterationen h¨ chstens 2 n · 2m = nm. o werden. ⊓ Satz 6 ⊔ 13 14
  • 8. Berthold V¨ cking, RWTH Aachen, 23. April 2008 o Berthold V¨ cking, RWTH Aachen, 23. April 2008 o Dinitzs Maximaler-Fluss-Algorithmus Statt eines fv-Weges im Restnetzwerk Gf berechnet Dinitzs 1 ∀e ∈ E : f (e) = 0; Algorithmus einen sogenannten Sperrfluss“ im Niveaunetz- 2 Solange es einen q-s Weg im Restnetzwerk gibt ” werk G′ . Dieser Begriff ist folgendermaßen definiert: f 3 berechne das Niveaunetzwerk G′ ; f • Sei φ ein Fluss im Niveaunetzwerk G′ . 4 berechne einen Sperrfluss φ in G′ ; f f 5 addiere“ φ zu f ; • Eine Kante e ∈ Ef heisst saturiert, wenn φ(e) = ′ ” 6 Ausgabe von f . restf (e). • φ heisst Sperrfluss wenn jeder q-s-Weg in G′ mindestens f eine saturierte Kante enth¨ lt. a Intuitiv ist ein Sperrfluss also ein Fluss im Niveaunetzwerk, der alle Wege verstopft. • Beim Addieren der Fl¨ sse in Schritt 5 ist zu beachten, u dass Fl¨ sse auf entgegengesetzten Kanten subtrahiert u werden m¨ ssen. u ¨ (In den Ubungen zeigen wir, dass der Sperrfluss nicht notwen- • Die Korrektheit des Algorithmus folgt mittels des Min- ” digerweise ein maximaler Fluss im Niveaunetzwerk ist.) Cut=Max-Flow“-Theorems analog zur Ford-Fulkerson- Methode. 15 16
  • 9. Berthold V¨ cking, RWTH Aachen, 23. April 2008 o Berthold V¨ cking, RWTH Aachen, 23. April 2008 o ¨ Wir m¨ ssen uns nun nur noch uberlegen, wie man eine Sperr- u Lemma 8 Dinitzs Algorithmus terminiert nach sp¨ testens a flussberechnung effizient durchf¨ hren kann. Dazu greifen wir u n − 1 Sperrflussberechnungen. auf ein Verfahren zur¨ ck, das ein wenig effizienter ist als das u urspr¨ nglich von Dinitz vorgeschlagene Verfahren zur Sperr- u Beweis: Behauptung: Die L¨ nge des k¨ rzesten Weges im a u flussberechnung. Wir verwenden zur Sperrflussberechung Restnetzwerk w¨ chst von Iteration zu Iteration um mindestens a die sogenannte Forward-Backward-Propagation“, die von ” eine Kante. Malhotra, Kumar und Maheshwari im Jahr 1978 vorgestellt • Sei ℓ die Entfernung zwischen q und s zu Beginn der wurde. Dieses Verfahren berechnet einen Sperrfluss in Zeit Iteration. O(n2 ), so dass sich insgesamt eine Laufzeit von O(n3 ) ergibt. • Alle urspr¨ nglichen Wege der L¨ nge ℓ werden durch den u a Gegeben sei ein Niveaunetzwerk G′ mit Restkapazit¨ ten f a Sperrfluss zerst¨ rt. Aber es k¨ nnen neue Wege durch o o restf (e). Wir beschreiben nun einen Algorithmus zur Be- neue erzeugte Kanten entstehen. rechnung eines Sperrflusses φ auf G′ . F¨ r einen Knoten f u • Neue Kanten laufen jedoch entgegengesetzt zum Sperr- v ∈ V bezeichne fluss, also f¨ hren sie von Niveau i zu Niveau i − 1 f¨ r u u • A(v) = {(v, u) ∈ Ef } die von v ausgehenden Kanten, ′ irgendein i ≥ 1. Wege uber solche Kanten haben L¨ nge ¨ a mindestens ℓ + 2. • E(v) = {(u, v) ∈ Ef } die in v eingehenden Kanten. ′ Somit gilt die Behauptung und der Satz folgt, weil die L¨ nge a Wir starten mit φ = 0 und erh¨ hen den Fluss φ nach und o eines q-s-Weges mindestens 1 und h¨ chstens n − 1 ist. o ⊓ ⊔ nach durch sogenannte Forward-Backward-Propagationen“ ” bis wir einen Sperrfluss im Niveaunetzwerk berechnet haben. 17 18
  • 10. Berthold V¨ cking, RWTH Aachen, 23. April 2008 o Berthold V¨ cking, RWTH Aachen, 23. April 2008 o Forward-Propagation: Eine Propagationsphase besteht aus einer Forward-“ und • Sei v ∗ der Knoten mit kleinstem, positivem Potential. ” einer Backward-Propagation“. Sei i das Niveau von v ∗ . Wir erzeugen pot(v ∗ ) Einheiten ” zus¨ tzlichen Flusses am Knoten v ∗ . a • Sei φ der berechnete Fluss zu Beginn einer solchen Pro- ¨ • Dadurch erhalten wir einen Uberschuss von pot(v ∗ ) pagationsphase. ¨ Flusseinheiten am Knoten v ∗ . Diesen Uberschuss schie- ben wir vorw¨ rts entlang der Kanten in A(v ∗ ). a • Das Potential einer Kante e ist definiert als ¨ • Jetzt erhalten wir einen Uberschuss auf einigen der ¨ Knoten auf Niveau i + 1. Diesen Uberschuss verschieben pot(e) = restf (e) − φ(e) , wir wiederum zu Knoten auf Niveau i + 2, usw. bis wir entspricht also der noch ungenutzten Restkapazit¨ t der a die Senke erreichen. Kante e im Niveaunetzwerk. • Da v ∗ der Knoten mit kleinstem Potential war, ist die ¨ Entsorgung des Uberschussflusses sichergestellt, weil • Das Potential eines Knotens v ist definiert als ¨ jeder Knoten gen¨ gend Potential hat, um den Uberschuss u   weiterzuleiten.   pot(v) = min pot(e), pot(e) .   e∈E(v) e∈A(v) Backward Propagation: analog – ausgehend vom selben ¨ Knoten v ∗ wird der Uberschuss zur Quelle propagiert. 19 20
  • 11. Berthold V¨ cking, RWTH Aachen, 23. April 2008 o Berthold V¨ cking, RWTH Aachen, 23. April 2008 o Forward-Propagation im Detail: Wir benutzen eine FIFO-Queue Q zur Verwaltung der Knoten ¨ mit positivem Uberschuss. Die Menge A(v) der von v ausge- henden Kanten im Niveaunetzwerk wird als Liste verwaltet. next(A(v)) bezeichnet jeweils die n¨ chste bisher noch nicht a Die Propagationsphasen werden solange wiederholt bis ein betrachtete Kante. Ziel ist die Berechnung eines Flusses ψ mit Sperrfluss berechnet ist. Die Kanten- und Knotenpotentiale Wert pot(v ∗ ) vom Knoten v ∗ zur Senke s. werden dabei nach jeder Propagationsphase angepasst. Kno- ten und Kanten mit Potential 0 werden als saturiert bezeichnet Algorithmus Forward-Propagation(v ∗ ): und werden in den kommenden Propagationsphasen nicht ¨ 01 setze U (v ∗ ) = pot(v ∗ ); /* initialer Uberschuss */ mehr betrachtet, also aus dem Niveaunetzwerk entfernt. Die 02 f¨ r alle v = v ∗ setze U (v) = 0; u Sperrflussberechnung terminiert, sobald alle Knoten entfernt 03 f¨ ge v ∗ in Q ein; u sind. 04 while Q = ∅ do 05 nimm Element aus Q und nenne es v; 06 while U (v) > 0 do 07 sei e = (v, u) = next(A(v)); Beobachtung 9 Nach sp¨ testens n − 1 Propagationsphasen a 08 setze ψ(e) = min{pot(e), U (v)}; ist ein Sperrfluss berechnet, weil in jeder Phase mindestens 09 setze U (v) = U (v) − ψ(e); ein Knoten saturiert wird. 10 setze U (u) = U (u) + ψ(e); 11 falls u = s und u ∈ Q f¨ ge u in Q ein; u 12 Ausgabe von ψ. Der Fluss ψ wird dann zum Fluss φ addiert. 21 22
  • 12. Berthold V¨ cking, RWTH Aachen, 23. April 2008 o Berthold V¨ cking, RWTH Aachen, 23. April 2008 o Lemma 10 Eine Forward-Propagation kann in Zeit O(n + ℓ) durchgef¨ hrt werden, wobei ℓ die Anzahl der neu saturierten u Kanten ist. (Backward-Propagation analog.) Satz 11 Durch Forward-Backward-Propagation kann man einen Sperrfluss in Zeit O(m + n2 ) = O(n2 ) berechnen. Beweis: Die Verwendung der FIFO-Queue Q garantiert die Dadurch erh¨ lt man einen Algorithmus zur Berechnung eines a folgenden Eigenschaften. maximalen Flusses mit Laufzeit O(n3 ). 1) Die Niveaus werden strikt nacheinander abgearbeitet. Beweis von Satz 11 2) Dadurch wird jeder Knoten h¨ chstens einmal aus der o • Beobachtung 9 liefert, dass nur h¨ chstens n − 1 Propaga- o Queue Q entnommen. tionsphasen zur Sperrflussberechnung n¨ tig sind. Sei ℓi o 3) F¨ r jeden entnommenen Knoten werden alle bis auf u die Anzahl der in der i-ten Propagationsphase gel¨ schten o maximal eine der betrachteten Kanten saturiert. Kanten, 1 ≤ i ≤ n − 1. Pro Knoten v gibt es somit maximal eine Kante in A(v), die • Dann ergibt sich aus Lemma 10 die folgende Laufzeit- betrachtet aber nicht saturiert wird. absch¨ tzung f¨ r die Sperrflussberechnung: a u n−1 n−1 2 Die Laufzeitkosten werden auf die Kanten umgelegt: O(n + ℓi ) = O n + ℓi = O(n2 + m) . i=1 i=1 • F¨ r jede betrachtete Kante entstehen Kosten O(1). u • Da n − 1 Sperrflussberechnungen einen maximalen Fluss • Die Anzahl betrachteter, saturierter Kanten ist ℓ. liefern, folgt der Satz. • Die Anzahl betrachteter, nicht saturierter Kanten ist ⊓ ⊔ h¨ chstens n. o Damit sind die Gesamtkosten O(n + ℓ). ⊓ ⊔ 23 24
  • 13. Berthold V¨ cking, RWTH Aachen, 23. April 2008 o Berthold V¨ cking, RWTH Aachen, 23. April 2008 o Das Min-Cost-Flow-Problem Beim Min-Cost-Flow-Problem ist jeder Kante e ∈ E im Flussnetzwerk neben der Kapazit¨ tsfunktion c : E → N a Wir greifen unserer Analyse vorweg und merken an, dass – zus¨ tzlich eine Kostenfunktion ℓ : E → Z zugeordnet. Das a wie schon beim Max-Flow-Problem – f¨ r jede Instanz des u Netzwerk darf keine Kreise mit negativer Gewichtssumme Min-Cost-Flow-Problems eine ganzzahlige optimale L¨ sung o enthalten. existiert und unsere Algorithmen ohne weiteres Zutun eine solche L¨ sung berechnen werden. o Sei f ein Fluss in G. Die Kosten von f sind definiert als F¨ r W = 1 entspricht das Min-Cost-Flow-Problem wegen u ℓ(f ) = ℓ(e) f (e) . e∈E der Ganzzahligkeit dem K¨ rzeste-Wege-Problem. u Im Falle ℓ(e) = 0, f¨ r alle e ∈ E, ist ein beliebiger Fluss mit u Gegeben sei ein Flussnetzwerk G = (V, E, q, s, c, ℓ) und eine Wert W gesucht. Dieses Problem kann ohne nennenswerten Zahl W ∈ N, wobei W nicht gr¨ ßer als der maximale Fluss o Zeitverlust auf das Max-Flow-Problem reduziert werden. in G ist. Wir suchen einen kostenminimaler Fluss f ∗ mit Wert (Wie?) W , d.h. es soll gelten w(f ∗ ) = W und ℓ(f ∗ ) = min{ℓ(f ) | f ist Fluss in G mit w(f ) = W } . 25 26
  • 14. Berthold V¨ cking, RWTH Aachen, 23. April 2008 o Berthold V¨ cking, RWTH Aachen, 23. April 2008 o Der Cycle-Canceling-Algorithmus Eine Zirkulation, die nur entlang eines einfachen Kreises im Wir beschreiben einen Algorithmus f¨ r das Min-Cost-Flow- u Restnetzwerk fließt, wird als Kreisfluss bezeichnet. F¨ r einen u Problem. Kreis K in Gf , sei f ′ (K) der gr¨ ßtm¨ gliche Kreisfluss auf o o K, der die Restkapazit¨ ten nicht uberschreitet. Wir sagen ein a ¨ Gf = (V, Ef ) bezeichne wie schon zuvor das Restnetzwerk Kreis K hat negative Kosten, wenn gilt e∈K ℓ(e) < 0. bez¨ glich eines Flusses f . Die Kosten f¨ r eine Kante (u, v) ∈ u u Ef E seien durch ℓ((u, v)) = −ℓ((v, u)) definiert. Cycle-Canceling-Algorithmus: Eine Zirkulation f ′ in Gf ist eine Funktion f ′ : Ef → R+ , 0 1 Berechne einen beliebigen Fluss f mit Wert W ; die die Flusserhaltung auf jedem Knoten aus V einh¨ lt und a 2 Solange Gf einen Kreis K mit neg. Kosten enth¨ lt a ¨ die Restkapazit¨ ten nicht ubersteigt. a 3 setze f := f + f ′ (K); Somit entspricht eine Zirkulation einem Fluss, der im Gegen- 4 Ausgabe von f . satz zu einem herk¨ mmlichen Fluss“ auch auf Quelle und o ” Senke die Flusserhaltung einh¨ lt. a Da f ′ (K) eine Zirkulation ist, erh¨ ht sich durch die Addition o Analog zur Definition bei herk¨ mmlichen Fl¨ ssen, sei der o u von f ′ (K) der Wert des Flusses nicht, denn Wert der Zirkulation uber einen Schnitt (Q, S) definiert als ¨ w(f + f ′ (K)) = w(f ) + w(f ′ (K)) = w(f ) = W . f ′ (Q, S) = f ′ (u, v) − f ′ (v, u) . (u,v)∈E (v,u)∈E Andererseits verringern sich aber die Kosten, denn es gilt u∈Q,v∈S v∈S,u∈Q Der Wert der Zirkulation ist ebenfalls analog definiert als ℓ(f + f ′ (K)) = ℓ(f ) + ℓ(f ′ (K)) < ℓ(f ) , w(f ′ ) = f (q, V {q}). Aufgrund der Flusserhaltung an der da ℓ(f ′ (K)) = f ′ (a)· e∈K ℓ(e) < 0, wobei a eine beliebige Quelle gilt w(f ′ ) = 0. Per Induktion folgt: F¨ r jeden Schnitt u Kante aus K bezeichnet. (Q, S) gilt f ′ (Q, S) = w(f ′ ) = 0. 27 28
  • 15. Berthold V¨ cking, RWTH Aachen, 23. April 2008 o Berthold V¨ cking, RWTH Aachen, 23. April 2008 o Lemma 12 Wenn f nicht kostenminimal ist, dann gibt es einen Kreis K mit negativen Kosten in Gf . Beweis: ¨ ¨ Aus dem Lemma und den vorhergehenden Uberlegungen Ubungsaufgabe: Zeige, dass jede Zirkulation f ′ , die M viele Kanten benutzt, in h¨ chstens M viele Kreisfl¨ sse zerlegt o u folgt werden kann, d.h. f ′ besteht aus der Addition von h¨ chstens o Satz 13 Ein Fluss f ist kostenminimal genau dann, wenn Gf M Kreisfl¨ ssen. u keinen Kreis mit negativen Kosten enth¨ lt. a Sei f ein Fluss, der nicht kostenminimal ist, und sei f ∗ ein kostenminimimaler Fluss, d.h. ℓ(f ∗ ) < ℓ(f ). Der Fluss Damit ist die Korrektheit des Cycle-Canceling-Algorithmus f ∗ −f erf¨ llt die Flusserhaltung auf allen Knoten, ist also eine u nachgewiesen. Die Laufzeit des Cycle-Canceling-Algorithmus Zirkulation auf den maximal 2m Kanten des Restnetzwerkes l¨ sst sich im Allgemeinen wieder nur pseudopolynomiell in a Gf und kann somit in M ≤ 2m viele Kreisfl¨ sse f1 , . . . , fM u C, der Summe der Kapazit¨ ten, beschr¨ nken. a a zerlegt werden. Es gilt f ∗ − f = f1 + · · · + fM und somit Wie schon bei der Ford-Fulkerson-Methode kann man aber ℓ(f ∗ ) − ℓ(f ) = ℓ(f1 ) + · · · + ℓ(fM ). Aus ℓ(f ∗ ) − ℓ(f ) < 0 eine polynomielle Laufzeitschranke erhalten, wenn man die folgt nun aufzuaddierenden Fl¨ sse – in diesem Fall die Kreise mit u ℓ(f1 ) + · · · + ℓ(fM ) < 0 . negativen Kosten – geschickt w¨ hlt. a Wenn nun keiner der diesen M Kreisfl¨ ssen zugrunde liegen- u den Kreise negative Kosten h¨ tte, so w¨ re aber ℓ(f1 ) + · · · + a a ℓ(fM ) ≥ 0. Also gibt es mindestens einen Kreis in Gf mit negativen Kosten. ⊓ ⊔ 29 30
  • 16. Berthold V¨ cking, RWTH Aachen, 23. April 2008 o Berthold V¨ cking, RWTH Aachen, 23. April 2008 o Anzahl der Phasen: Sei T die Anzahl der Phasen. Sei µ0 der Wert von µ zu Beginn Der Min-Mean-Cycle-Canceling-Algorithmus der ersten Phase und, f¨ r 1 ≤ t ≤ T , sei µt der Wert von µ zu u Ende der t-ten Phase. Der Min-Mean-Cycle-Canceling-Algorithmus w¨ hlt in jeder a F¨ r 1 ≤ t ≤ T − 1 folgt aus der Definition der Phasen u Iteration einen Kreis K aus Gf , der die durchschnittlichen 1 µt−1 Kantenkosten (mean cost) µt ≤ 1− µt−1 ≤ . (1) n e1/n ¯ ℓ(K) e∈K ℓ(e) ℓ(K) = = Die letzte Absch¨ tzung erfolgt dabei aus der allgemeing¨ lti- a u |K| |K| gen Ungleichung 1 − x ≤ e−x mit x = n . 1 minimiert. Zu Beginn des Algorithmus ist µ durch den maximalen ¯ K wird als Min-Mean-Cycle bezeichnet. Sei µ(f ) = −ℓ(K). Absolutbetrag aller Kantenkosten, das wir mit L bezeichnen, Beachte, wenn K ein Kreis mit negativen Kosten ist, so ist nach oben beschr¨ nkt. Es gilt somit µ0 ≤ L. (2) a ¯ ℓ(K) negativ und somit µ(f ) positiv. Der Algorithmus terminiert, wenn zum Ende einer Phase die F¨ r die Laufzeitanalyse zerlegen wir die Folge der Iterationen u Bedingung µ ≤ 0 erf¨ llt ist. Am Ende von Phase T − 1 gilt u des Algorithmus in Phasen. Sei f der Fluss zu Beginn einer somit noch µ > 0. Aufgrund der Ganzzahligkeit der Kosten 1 Phase. Die Phase endet nach der ersten Iteration in der ein kann µ nicht im Interval (0, n ) liegen. (Warum?) Am Ende 1 1 1 Fluss g mit µ(g) ≤ (1 − n )µ(f ) oder µ(g) ≤ 0 berechnet von Phase T − 1 gilt somit µ ≥ n , d.h. µT −1 ≥ n . (3) wird. Im letzteren Fall enth¨ lt Gg keinen Kreis mit negativen a Aus den Ungleichungen (1), (2) und (3) folgt Kosten und die Berechnung terminiert. Ansonsten folgt die ln(nL) T − 1 ≤ loge1/n (nL) = = n ln(nL) , n¨ chste Phase. a ln(e1/n ) und somit terminiert der Algorithmus nach T ≤ n ln(nL) + 1 Phasen. 31 32
  • 17. Berthold V¨ cking, RWTH Aachen, 23. April 2008 o Berthold V¨ cking, RWTH Aachen, 23. April 2008 o Anzahl der Iterationen je Phase: Sei f der initiale Fluss zu Beginn einer Phase. Wir zeigen, Wenn die Phase l¨ nger als m Iterationen dauert, folgt nach a dass der Algorithmus nach m Iterationen terminiert oder sp¨ testens m − 1 Typ-1-Iterationen eine Typ-2-Iteration. a nach sp¨ testens m − 1 Iterationen wird ein Fluss g mit a Sei g der Fluss zu Beginn der ersten Typ-2-Iteration. Da 1 µ(g) ≤ (1 − n )µ(f ) berechnet. Eine Phase dauert somit die Typ-1-Iterationen keine Kanten mit negativen Kosten h¨ chstens m Iterationen. Wir treffen zun¨ chst die folgende o a hinzugef¨ gt haben, gilt weiterhin unsere Annahme, d.h. u vereinfachende Annahme. ℓ(e) ≥ −µ(f ) bzw. −ℓ(e) ≤ µ(f ) f¨ r alle Kanten e ∈ Gg . u Sei K der Min-Mean-Cycle in g und H ⊆ K die Menge der Annahme 14 F¨ r alle Kanten e ∈ Gf gelte ℓ(e) ≥ −µ(f ). u Kanten mit negativen Kosten aus K. Es gilt Wir unterscheiden Iterationen vom Typ 1 in denen der Min- −ℓ(e) −ℓ(e) µ(f ) µ(g) = ≤ ≤ |H| · , Mean-Cycle jeweils nur Kanten mit negativen Kosten enth¨ lt a |K| |K| |K| e∈K e∈H und Iterationen vom Typ 2 in denen der Min-Mean-Cycle weibei die letzte Absch¨ tzung aus Annahme 14 folgt. Aus a mindestens eine Kante mit positiven Kosten enth¨ lt. a |H| ≤ |K| − 1 folgt nun |H|/|K| ≤ 1 − 1/|K| ≤ 1 − 1/n In jeder Typ-1-Iteration wird mindestens eine Kante mit ne- 1 und somit µ(g) ≤ (1 − n )µ(f ). gativen Kosten saturiert und aus dem Restnetzwerk entfernt. Die Phase endet also sobald der Fluss g berechnet ist und Ferner verlaufen alle m¨ glicherweise neu entstehenden Kan- o damit noch vor der ersten Typ-2-Iteration! ten entgegengesetzt zu den Kanten mit negativen Kosten und haben somit selbst positive Kosten. Sp¨ testens nach m konse- a Wenn Annahme 14 zu Beginn einer Phase h¨ lt, so gibt es also a kutiven Typ-1-Iterationen terminiert der Algorithmus somit, keine Typ-2-Iterationen in der Phase und die Phase endet nach weil das Restnetzwerk dann nur noch Kreise mit positiven sp¨ testens m vielen Typ-1-Iterationen. a Kosten enth¨ lt. a 33 34
  • 18. Berthold V¨ cking, RWTH Aachen, 23. April 2008 o Berthold V¨ cking, RWTH Aachen, 23. April 2008 o Annahme 14 sieht sehr restriktiv aus, insbesondere vor dem Lemma 15 Im Restnetzwerk Gf = (V, Ef ) gelte ℓ(K) ≥¯ Hintergrund der vorhergehenden Analyse. Wir zeigen aber −µ f¨ r jeden Kreis K. Dann gibt es eine Funktion p : V → Z u nun, dass wir diese Annahme erreichen k¨ nnen, indem wir o mit der Eigenschaft ℓ′ (e) = ℓ(e) − p(v) + p(u) ≥ −µ f¨ r jede u die Kostenfunktion ℓ auf geeignete Art und Weise ver¨ ndern, a Kante e ∈ Ef . ohne dabei den Ablauf des Algorithmus zu beeinflussen. Sei p : V → Z eine beliebige Funktion, die jedem Knoten Beweis: einen Wert zuweist, ein sogenanntes Potential. Wir setzen F¨ r jede Kante e ∈ Ef definiere ein Kantengewicht w(e) = u ℓ′ (e) = ℓ(e) − p(v) + p(u) f¨ r jede Kante e = (u, v). u ℓ(e) + µ. F¨ r jeden Knoten v ∈ V definiere nun p(v) als die u Beachte, f¨ r e = (v, u) gilt u ¯ L¨ nge (= Gewicht) eines k¨ rzesten Kantenzuges (d.h. Pfades a u mit beliebigen Wiederholungen von Knoten und Kanten) in ℓ′ (¯) = ℓ(¯) − p(u) + p(v) e e Gf , der von einem beliebigen Knoten zum Knoten v in Gf = −ℓ(e) − p(u) + p(v) = −ℓ′ (e) . f¨ hrt. Dieser Wert ist wohldefiniert, weil keine Kreise mit u Wir beobachten, dass die Potentiale die Kostensumme auf ¯ negativem Gewicht in Gf existieren, denn aus ℓ(K) ≥ −µ Kreisen nicht beeinflussen, da jeder Potentialwert einmal mit folgt w(K) ≥ 0 f¨ r jeden Kreis K. u positivem und einmal mit negativem Vorzeichen aufsummiert Die Definition der Potentiale garantiert uns die folgende wird, d.h. f¨ r jeden Kreis K gilt ℓ(K) = ℓ′ (K). u Eigenschaft: F¨ r jede Kante e = (u, v) gilt p(v) ≤ p(u) + u Die Potentiale haben somit keine Auswirkungen auf den Ab- w(u, v), denn der k¨ rzeste Weg, der in v endet, kann nicht u lauf des Algorithmus. Um Annahme 14 in der vorhergenden l¨ nger als der k¨ rzeste Weg sein, der zu u f¨ hrt und uber die a u u ¨ Analyse zu erreichen, k¨ nnen wir also beliebige Potentiale o Kante (u, v) fortgesetzt wird. Es folgt verwenden, um die Kostenfunktion zu Beginn einer Phase ℓ′ (e) = ℓ(e) − p(v) + p(u) geeignet zu manipulieren. = w(e) − p(v) + p(u) − µ ≥ −µ . Das folgende Lemma besagt, dass es tats¨ chlich Potentiale a gibt, die es erlauben, Annahme 14 zu erreichen. ⊓ ⊔ 35 36
  • 19. Berthold V¨ cking, RWTH Aachen, 23. April 2008 o Berthold V¨ cking, RWTH Aachen, 23. April 2008 o Beweis von Lemma 16 Sei K ein Min-Mean-Cycle. Wenn wir alle Kantenkosten Laufzeit pro Iteration: um den gleichen additiven Betrag ∆ erh¨ hen, so ist K un- o ver¨ ndert ein Min-Mean-Cycle aber sein Wert w¨ rde sich um a u Wir zeigen nun wie man einen Min-Mean-Cycle im Restnetz- ∆ erh¨ hen. Beachte, dass auch α sich genau um ∆ erh¨ hen o o werk in Zeit O(nm) berechnen kann (Karp, 1978). w¨ rde. (Warum?) Deshalb k¨ nnen wir die Kantenkosten um u o F¨ r k = 0, 1, . . . , n und v ∈ V sei dk (v) die L¨ nge (=Kosten) u a einen beliebigen additiven Betrag ∆ verschieben und so- eines k¨ rzesten Kantenzuges mit genau k Kanten, der bei v u ¯ mit o.B.d.A. annehmen, dass ℓ(K) = 0 gilt. Unter dieser endet. Es gilt d0 (v) = 0 und Annahme m¨ ssen wir zeigen, es gilt auch α = 0. u dk+1 (v) = min (dk (u) + ℓ(e)) . Betrachte dazu einen beliebigen Knoten v. Sei P ein Kanten- e=(u,v)∈E zug aus n Kanten, der bei v endet und die L¨ nge dn (v) hat. a Alle dk (v)-Werte k¨ nnen somit durch dynamische Program- o Weil das Netzwerk nur n Knoten enth¨ lt, muss P einen Kreis a mieren in Zeit O(nm) berechnet werden. enthalten. Sei C dieser Kreis und P ′ der Kantenzug, den wir enthalten, wenn wir C aus P entfernen. Sei j die Anzahl ¯ Lemma 16 Der Wert ℓ(K) des Min-Mean-Cycles in G ist Kanten in P ′ und n − j die Anzahl Kanten in C. Es gilt nun n−1 dn (v) − dj (v) α = min max dn (v) = ℓ(P ) = ℓ(C) + ℓ(P ′ ) ≥ ℓ(P ′ ) ≥ dj (v) , v∈V j=0 n−j da ℓ(C) ≥ 0. Somit existiert f¨ r jeden Knoten v ein j ∈ u {1, . . . , n − 1} mit der Eigenschaft dn (v) ≥ dj (v). Hieraus folgt α ≥ 0. 37 38
  • 20. Berthold V¨ cking, RWTH Aachen, 23. April 2008 o Berthold V¨ cking, RWTH Aachen, 23. April 2008 o Tafelbild: Wir m¨ ssen nun also nur noch zeigen, dass auch α ≤ 0 gilt. u Dazu werden wir zeigen, dass es einen Knoten w mit der Eigenschaft dn (w) ≤ dj (w) f¨ r alle j ∈ {0, . . . , n − 1} gibt. u Zu diesem Zweck betrachte die folgende Situation: • Sei v ein Knoten des Min-Mean-Cycle K. • Sei P ein k¨ rzester unter allen Kantenz¨ gen beliebiger u u L¨ nge, die am Knoten v enden. O.B.d.A. enth¨ lt P keinen a a Kreis, da es keine Kreise negativer L¨ nge gibt. Sei p < n a die Anzahl Kanten in P . Aus der Definition der Kantenz¨ ge folgt u • Sei w derjenige Knoten, den wir erreichen, wenn wir K von v ausgehend entlang von n−p Kanten folgen. Diesen dn (w) ≤ ℓ(P ) + ℓ(Q) = dp (v) + ℓ(Q) , Kantenzug bezeichnen wir mit Q. und • Sei R der Weg von w zu v entlang von K, und sei r die dp (v) ≤ dj+r (v) ≤ dj (w) + ℓ(R) . Anzahl Kanten dieses Weges. Es folgt • Sei nun j ∈ {0, . . . , n − 1} beliebig gew¨ hlt und S a dn (w) ≤ dj (w) + ℓ(R) + ℓ(Q) . ein Kantenzug minimaler L¨ nge aus j Kanten, der am a Nun hat aber der Kantenzug Q ◦ R die L¨ nge 0, da er K a Knoten w endet. (m¨ glicherweise mehrfach) uml¨ uft und ℓ(K) = 0 gilt. o a Somit gilt, wie gefordert, dn (w) ≤ dj (w). ⊓ ⊔ 39 40
  • 21. Berthold V¨ cking, RWTH Aachen, 23. April 2008 o Berthold V¨ cking, RWTH Aachen, 23. April 2008 o Gesamtlaufzeit: Der Algorithmus ben¨ tigt h¨ chstens n log(nL) + 1 Phasen, o o Der Algorihmus zur Bestimmung des Min-Mean-Cycles die jeweils h¨ chstens m Iterationen ben¨ tigen, die jeweils o o arbeitet nun folgendermaßen: Laufzeit O(mn) haben. L bezeichnet dabei das Maximum der Absolutwerte der Kantenkosten. Es folgt • Berechne die dk (v)-Werte und bestimme α, also den Wert des Min-Mean-Cycles. Satz 17 Der Mean-Cycle-Canceling-Algorithmus hat eine • Erh¨ he alle Kantenkosten um den additiven Term α, so o Laufzeit von O(m2 n2 log(nL)). dass der Wert des Min-Mean-Cycles nun gleich 0 ist. Diese Absch¨ tzung der Laufzeit ist zwar polynomiell in der a • Transformiere die Kantenkosten wie in Lemma 15 be- Eingabel¨ nge beschr¨ nkt, aber man spricht von einer schwach a a schrieben. Die ben¨ tigten Potentiale lassen sich aus den o polynomiellen Schranke, da die Gr¨ ße der Eingabezahlen, o dk (v)-Werten bestimmen. Nun sind alle Kantenkosten wenngleich nur logarithmisch, in die Absch¨ tzung eingeht. a nicht-negativ und alle Kanten auf dem Min-Mean-Cycle Tats¨ chlich l¨ sst sich auch eine stark polynomielle Laufzeit- a a haben somit den Wert 0. schranke herleiten. • Streiche alle Kanten mit Kosten gr¨ ßer als 0 aus dem o Graphen und suche den Min-Mean-Cycle mittels Tiefen- Satz 18 Der Mean-Cycle-Canceling-Algorithmus hat eine suche unter den verbleibenden Kanten. Laufzeit von O(m3 n2 log n). Auf die Pr¨ sentation des Beweises dieses Satzes verzichten a wir an dieser Stelle. 41 42