Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

Kap1

1.178 Aufrufe

Veröffentlicht am

Veröffentlicht in: Technologie, Bildung
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Kap1

  1. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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

×