Kap1

21
Berthold V¨ ocking, RWTH Aachen, 23. April 2008 Kapitel 1: Flussalgorithmen Hilfreiche Literatur: Ahuja, Magnanti, Orlin: Network Flows: Theory, Algo- rithms, and Applications, Prentice Hall, 1993. Cormen, Leiserson, Rivest: Introduction to Algorithms, First Edition. MIT Press, 1990. Cormen, Leiserson, Rivest, Stein: Introduction to Algo- rithms, Second Edition. MIT Press, 2001. Ottmann, Widmayer: Algorithmen und Datenstrukturen. BI-Wiss.-Verl. 1990. 1 Berthold V¨ ocking, RWTH Aachen, 23. April 2008 Netzwerke und Fl ¨ usse Ein Flussnetzwerk ist ein gerichteter Graph G =(V,E,q,s,c) mit zwei ausgew¨ ahlten Knoten q,s V und einer Kapazit¨ ats- funktion c : E N. Die Quelle q hat Eingangsgrad 0 und die Senke s hat Ausgangsgrad 0. 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 f : E R + 0 mit den Eigenschaften a) Flusserhaltung: u V \{q,s} : v :(v,u)E f (v,u) f in (u) = v :(u,v)E f (u,v) f out (u) . b) Kapazit¨ atsbeschr¨ ankung: e E : f (e) c(e). Der Wert des Flusses f ist definiert als w(f )= f out (q ). Wegen der Flusserhaltung gilt somit auch w(f )= f in (s). 2

Transcript of Kap1

Page 1: Kap1

Berthold Vocking, RWTH Aachen, 23. April 2008

Kapitel 1: Flussalgorithmen

Hilfreiche Literatur:

• Ahuja, Magnanti, Orlin: Network Flows: Theory, Algo-

rithms, and Applications, Prentice Hall, 1993.

• Cormen, Leiserson, Rivest: Introduction to Algorithms,

First Edition. MIT Press, 1990.

• Cormen, Leiserson, Rivest, Stein: Introduction to Algo-

rithms, Second Edition. MIT Press, 2001.

• Ottmann, Widmayer: Algorithmen und Datenstrukturen.

BI-Wiss.-Verl. 1990.

1

Berthold Vocking, RWTH Aachen, 23. April 2008

Netzwerke und Flusse

EinFlussnetzwerk ist ein gerichteter GraphG = (V,E, q, s, c)

mit zwei ausgewahlten Knotenq, s ∈ V und einer Kapazitats-

funktion c : E → N. Die Quelleq hat Eingangsgrad 0 und die

Senkes hat Ausgangsgrad 0.

Wir definierenn = |V |, m = |E| und nehmen an, jeder

Knoten ist vonq erreichbar. Es giltn− 1 ≤ m ≤ n(n− 1).

Ein Fluss in einem NetzwerkG ist eine realwertige Funktion

f : E → R+0 mit den Eigenschaften

a) Flusserhaltung:∀u ∈ V \ {q, s} :

v : (v,u)∈E

f(v, u)

︸ ︷︷ ︸

fin(u)

=∑

v : (u,v)∈E

f(u, v)

︸ ︷︷ ︸

fout(u)

.

b) Kapazitatsbeschrankung:∀e ∈ E : f(e) ≤ c(e).

DerWert des Flussesf ist definiert alsw(f) = fout(q). Wegen

der Flusserhaltung gilt somit auchw(f) = fin(s).

2

Page 2: Kap1

Berthold Vocking, RWTH Aachen, 23. April 2008

Problem 1 (Maximaler Fluss) Gegeben sei ein Flussnetz-

werkG. Berechne einen maximalen Fluss aufG, d.h. einen

Fluss mit großtmoglichem Wert.

Beachte, wir haben angenommen, dass die Kantenkapazitaten

ganzzahlig sind. Das ist keine besondere Einschrankung, denn

bei rationalen Kapazitaten konnen wir immer alle Zahlen mit

dem Hauptnenner multiplizieren und somit ein Flussproblem

mit rationalen Kapazitaten in ein Problem mit ganzzahligen

Kapazitaten transformieren.

Die Algorithmen zur Berechnung von maximalen Flussen,

die wir im Folgenden vorstellen werden, haben zahlreiche

praktische Anwendungen, die auf den ersten Blick nicht im-

mer unbedingt unmittelbar an Flussprobleme erinnern. In den

Ubungen prasentieren wir dazu einige, teilweiseuberraschen-

de Beispiele, wie z.B. das Meisterschaftsproblem.

3

Berthold Vocking, RWTH Aachen, 23. April 2008

Die Ford-Fulkerson-Methode

Der folgende algorithmische Rahmen zur Berechnung ei-

nes maximalen Flussesf auf einem FlussnetzwerkG =

(V,E, q, s, c) geht zuruck auf Ford und Fulkerson, 1957.

Ford-Fulkerson-Methode:1 ∀e ∈ E : f(e) = 0;

2 Solange es einen fv-WegW gibt

3 erhohe den Flussf entlang vonW maximal;

4 Ausgabe vonf .

”fv-Weg“ steht fur

”flussvergroßernder Weg“. Dabei handelt

es sich um Wege im sogenannten”Restnetzwerk“.

4

Page 3: Kap1

Berthold Vocking, RWTH Aachen, 23. April 2008

DasRestnetzwerkGf zu einem NetzwerkG = (V,E, q, s, c)

und einem Flussf ist wie folgt definiert.

• O.B.d.A. nehmen wir an, dass das NetzwerkG keineentgegengesetzten Kanten hat, d.h.

(u, v) ∈ E ⇒ (v, u) 6∈ E .

• Fur alle Paare(u, v) ∈ V 2 setze

restf (u, v) =

c(u, v) − f(u, v) (u, v) ∈ E

f(v, u) (v, u) ∈ E

0 sonst

• Gf hat die KnotenmengeV und die Kantenmenge

Ef = {(u, v) ∈ V 2 | restf (u, v) > 0} .

Ein fv-Weg ist ein einfacher Weg vonq nachs im Rest-netzwerkGf . (einfacher Weg = Weg auf dem jede Kantehochstens einmal vorkommt)

5

Berthold Vocking, RWTH Aachen, 23. April 2008

Max-Flow = Min-Cut

Die Korrektheit der Ford-Fulkerson-Methode beruht auf dem

”Max-Flow=Min-Cut“-Theorem.

Ein Cut oderSchnitt(Q,S) in einem FlussnetzwerkG isteine Partionierung der KnotenmengeV = Q ∪S mit q ∈ Q,s ∈ S.

• Die Kapazitat des Schnitts(Q,S) ist definiert durch

c(Q,S) =∑

(u,v)∈Eu∈Q,v∈S

c(u, v) .

• Der Flussuber den Schnitt(Q,S) ist definiert durch

f(Q,S) =∑

(u,v)∈Eu∈Q,v∈S

f(u, v) −∑

(v,u)∈Ev∈S,u∈Q

f(v, u) .

Lemma 2 [Max-Flow≤Min-Cut]Fur jeden Flussf und jeden Schnitt(Q,S) gilt w(f) =

f(Q,S) ≤ c(Q,S). ⊓⊔

Dieses Lemma folgt direkt aus der Flusserhaltung. Formalzeigt manw(f) = f(Q,S) per Induktionuber die Große derMengeQ (vgl. Ubungen).

6

Page 4: Kap1

Berthold Vocking, RWTH Aachen, 23. April 2008

Satz 3 (Max-Flow=Min-Cut)Die folgenden Aussagen sindaquivalent.

a) f ist ein maximaler Fluss.

b) Das RestnetzwerkGf enthalt keinen fv-Weg.

c) Es gibt einen Schnitt(Q,S) mit w(f) = c(Q,S).

Beweis von Satz 3:

aus a) folgt b):

• Zum Zwecke des Widerspruchs, seif ein maximaler

Fluss undW ein fv-Weg inGf .

• Dann kannf entlang vonW vergroßert werden. Dies ist

ein Widerspruch zur Maximalitat vonf .

aus c) folgt a):

Aus Lemma 2 folgt

w(f) = c(Q,S) ≥ Min-Cut ≥ Max-Flow ,

und somit giltw(f) = Max-Flow.

7

Berthold Vocking, RWTH Aachen, 23. April 2008

aus b) folgt c):

• Aussage b) sagt, dassGf keinen fv-Weg hat

• DefiniereQ = {v ∈ V | ∃ Weg vonq nachv in Gf}

undS = V \Q.

• DaGf keinen fv-Weg hat, folgts ∈ S. Also ist (Q,S)

ein wohldefinierter Schnitt mitq ∈ Q unds ∈ S.

• Fur jede Kante(u, v) ∈ E mit u ∈ Q undv ∈ S giltf(u, v) = c(u, v), weil sonstrestf (u, v) > 0 und somitv ∈ Q ware.

• Fur jede Kante(v, u) ∈ E mit v ∈ S undu ∈ Q giltf(v, u) = 0, weil sonstrestf (u, v) > 0 und somitwiederumv ∈ Q ware.

• Wir erinnern uns an die Definitionen vonc(Q,S) undf(Q,S) und erhalten Aussage c), weil

c(Q,S) =∑

(u,v)∈Eu∈Q,v ∈S

c(u, v)

=∑

(u,v)∈Eu∈Q,v∈S

f(u, v) −∑

(v,u)∈Ev∈S,u∈Q

f(v, u)

= f(Q,S)Lemma 2

= w(f) .

⊓⊔ Satz 3

8

Page 5: Kap1

Berthold Vocking, RWTH Aachen, 23. April 2008

Die Ford-Fulkerson-Methode terminiert, sobald kein fv-Weg

mehr vorhanden ist. Aus derAquivalenz der Aussagen in

Satz 3a) und b) folgt somit, dass der berechnete Flussf

maximal ist.

Satz 4 (Korrektheit) Die Ford-Fulkerson-Methode berech-

net einen maximalen Fluss.

Wir haben angenommen, dass die Kantenkapazitaten naturli-

che Zahlen sind. Unter dieser Annahme ist auch der durch

die Ford-Fulkerson-Methode berechnete Fluss ganzzahlig,

d.h. auf jeder Kante wird der Wert des Flusses durch eine

naturliche Zahl beschrieben.

Korollar 5 (Ganzzahligkeit) Fur jeden maximalen Fluss

gibt es einen ganzzahligen Fluss mit gleichem Wert, und die

Ford-Fulkerson-Methode berechnet einen derartigen ganzzah-

ligen maximalen Fluss.

Diese bemerkenswerte Eigenschaft ist nutzlich fur vielerlei

Anwendungen (vgl.Ubungen).

9

Berthold Vocking, RWTH Aachen, 23. April 2008

Laufzeit der Ford-Fulkerson-Methode

fv-Wege konnen beispielsweise durch Tiefen- oder Breiten-suche im Restnetzwerk gefunden werden. Damit dauert eineIteration der Ford-Fulkerson-Methode nur ZeitO(m). SeiC =

e∈E c(e). Da der Fluss in jeder Iteration um mindes-tens eine Einheit erhoht wird undC eine obere Schranke furden Wert des maximalen Flusses ist, konnen wir die Laufzeitder Ford-Fulkerson-Methode durchO(mC) abschatzen underhalten damit einepseudopolynomielleLaufzeitschranke.

Im Allgemeinen hat die Ford-Fulkerson-Methode keine po-lynomielle Laufzeit. Im Folgenden werden wir jedoch sehen,dass die Berechnung der fv-Wege mittels einer Breitensucheeine polynomielle Laufzeit garantiert. Eine Breitensuchefin-det kurzeste fv-Wege, d.h. solche Wege zwischenq unds imRestnetzwerk, die eine minimale Anzahl Kanten enthalten.

Satz 6 (Edmonds und Karp, 1969)Die Laufzeit der Ford-Fulkerson-Methode mit Breitensuche istO(m2n) = O(n5).

Zum Beweis dieses Satzes mussen wir zeigen, dass derAlgorithmus nachO(mn) Iterationen terminiert.

10

Page 6: Kap1

Berthold Vocking, RWTH Aachen, 23. April 2008

Lemma 7 Von Iteration zu Iteration verringert sich die Di-

stanz vonq zu einem Knotenv ∈ V im Restnetzwerk nicht.

Beweis:Entlang des fv-Weges konnen durch die Erhohung

des Flusses Kanten verschwinden und entstehen. Es gibt zwei

Arten von Veranderungen.

• Fur jede Kante(u, v) auf dem fv-Weg verringert sich

restf (u, v). Kanten mit minimaler Restkapazitat auf dem

fv-Weg, sogenannteFlaschenhalskanten, verschwinden

aus dem Restnetzwerk, denn ihre Restkapazitat wird auf

0 gesetzt.

• Gleichzeitig erhoht sich fur jede Kante(u, v) auf dem

fv-Weg die entgegengesetzte Restkapazitat restf (v, u).

Falls restf (v, u) zuvor den Wert 0 hatte entsteht eine

neueKante im Restnetzwerk.

Zum Zwecke des Beweises, verandern wir das Restnetzwerk

in zwei Schritten und fugen zunachst nacheinander alle neuen

Kanten hinzu und entfernen erst dann die Flaschenhalskanten.

11

Berthold Vocking, RWTH Aachen, 23. April 2008

Hinzufugen von neuen Kanten:Kann das Hinzufugen der neuen Kanten Distanzen von

der Quelle zu anderen Knoten verringern? – Nein!

Begrundung:Eine Kante(v, u) wird nur dann eingefugt,

wenn die Kante in umgekehrter Richtung – also die

Kante(u, v) – auf einem flussvergroßerndem Weg liegt.

Flussvergroßernde Wege sind aber kurzeste Weg im

Restnetzwerk. Wennu also die Distanzℓ von der Quelle

hat, so hatv die Distanzℓ + 1 von der Quelle. Die neue

Kante verbindet also einen Knoten mit Distanzℓ + 1

von der Quelle mit einem Knoten mit Distanzℓ. Um

aber die Distanz von der Quelle zu irgendeinem Knoten

zu verringern, musste man eine gerichtetete Kante von

einem Knoten mit Distanzk, fur irgendeink ≥ 0, zu

einem Knoten mit Distanzk + i, fur irgendeini > 1,

einfugen.

Entfernen von Flaschenhalskanten:Offensichtlich konnen Kantenloschungen keine Distan-

zen verringern.

⊓⊔ Lemma 7

12

Page 7: Kap1

Berthold Vocking, RWTH Aachen, 23. April 2008

Beweis von Satz 6:

• Wenn eine Kante(u, v) zur Flaschenhalskante wird,

verschwindet sie aus dem Restnetzwerk. Seiℓ die Distanz

von q zu u vor der Entfernung von(u, v). Die Distanz

von q zuv ist somitℓ+ 1.

• Die Kante(u, v) kann in einer spateren Iteration wieder

in das Restnetzwerk eingefugt werden und zwar wenn

der Fluss auf Kante(v, u) erhoht wird. Dazu muss(v, u)

auf einem kurzesten Weg liegen. Da die Distanz vonq zu

v sich aber nicht verringert hat, muss die Distanz vonq

zuu dann mindestensℓ+ 2 sein.

• Zwischen jedem Entfernen und Wiedereinfugen einer

Kante(u, v) erhoht sich die Distanz von der Quelleq

zum Knotenu also um den additiven Wert 2. Da die

maximale Distanzn − 1 ist, kann eine Kante also nicht

ofter als12n mal entfernt werden.

• In jeder Iteration wird mindestens eine Kante entfernt.

Es gibt bis zu2m Kanten im Restnetzwerk. Also ist die

Anzahl der Iterationen hochstens12n · 2m = nm.

⊓⊔ Satz 6

13

Berthold Vocking, RWTH Aachen, 23. April 2008

Der Algorithmus von Dinitz, 1970

Idee: In jeder Iteration erhohe den Fluss entlang von mehreren

kurzesten fv-Wegen.

Zu einem gegebenen RestnetzwerkGf = (V,Ef ) ist das

NiveaunetzwerkG′

f = (V,E′

f ) wie folgt definiert. Fur i ∈ N0

sei

Vi = {v ∈ V | die Distanz vonq nachv in Gf ist i} .

G′

f enthalt nur die Kanten von Niveaui zu Niveaui+ 1, d.h,

E′

f = {(u, v) ∈ Ef | ∃i : u ∈ Vi, v ∈ Vi+1} .

Als Kapazitaten fur diese Kanten verwenden wir die Restka-

pazitaten des RestnetzwerkesGf .

G′

f kann ausGf durch Breitensuche in ZeitO(m) berechnet

werden.

14

Page 8: Kap1

Berthold Vocking, RWTH Aachen, 23. April 2008

Statt eines fv-Weges im RestnetzwerkGf berechnet Dinitzs

Algorithmus einen sogenannten”Sperrfluss“ im Niveaunetz-

werkG′

f . Dieser Begriff ist folgendermaßen definiert:

• Seiφ ein Fluss im NiveaunetzwerkG′

f .

• Eine Kantee ∈ E′

f heisstsaturiert, wennφ(e) =

restf (e).

• φ heisstSperrfluss wenn jederq-s-Weg inG′

f mindestens

eine saturierte Kante enthalt.

Intuitiv ist ein Sperrfluss also ein Fluss im Niveaunetzwerk,

der alle Wege verstopft.

(In denUbungen zeigen wir, dass der Sperrfluss nicht notwen-

digerweise ein maximaler Fluss im Niveaunetzwerk ist.)

15

Berthold Vocking, RWTH Aachen, 23. April 2008

Dinitzs Maximaler-Fluss-Algorithmus1 ∀e ∈ E : f(e) = 0;

2 Solange es einenq-s Weg im Restnetzwerk gibt

3 berechne das NiveaunetzwerkG′

f ;

4 berechne einen Sperrflussφ in G′

f ;

5”addiere“φ zuf ;

6 Ausgabe vonf .

• Beim Addieren der Flusse in Schritt 5 ist zu beachten,

dass Flusse auf entgegengesetzten Kanten subtrahiert

werden mussen.

• Die Korrektheit des Algorithmus folgt mittels des”Min-

Cut=Max-Flow“-Theorems analog zur Ford-Fulkerson-

Methode.

16

Page 9: Kap1

Berthold Vocking, RWTH Aachen, 23. April 2008

Lemma 8 Dinitzs Algorithmus terminiert nach spatestens

n− 1 Sperrflussberechnungen.

Beweis:Behauptung:Die Lange des kurzesten Weges im

Restnetzwerk wachst von Iteration zu Iteration um mindestens

eine Kante.

• Sei ℓ die Entfernung zwischenq und s zu Beginn der

Iteration.

• Alle ursprunglichen Wege der Langeℓ werden durch den

Sperrfluss zerstort. Aber es konnen neue Wege durch

neue erzeugte Kanten entstehen.

• Neue Kanten laufen jedoch entgegengesetzt zum Sperr-

fluss, also fuhren sie von Niveaui zu Niveaui − 1 fur

irgendeini ≥ 1. Wegeuber solche Kanten haben Lange

mindestensℓ+ 2.

Somit gilt die Behauptung und der Satz folgt, weil die Lange

einesq-s-Weges mindestens 1 und hochstensn− 1 ist. ⊓⊔

17

Berthold Vocking, RWTH Aachen, 23. April 2008

Wir mussen uns nun nur nochuberlegen, wie man eine Sperr-

flussberechnung effizient durchfuhren kann. Dazu greifen wir

auf ein Verfahren zuruck, das ein wenig effizienter ist als das

ursprunglich von Dinitz vorgeschlagene Verfahren zur Sperr-

flussberechnung. Wir verwenden zur Sperrflussberechung

die sogenannte”Forward-Backward-Propagation“, die von

Malhotra, Kumar und Maheshwari im Jahr 1978 vorgestellt

wurde. Dieses Verfahren berechnet einen Sperrfluss in Zeit

O(n2), so dass sich insgesamt eine Laufzeit vonO(n3) ergibt.

Gegeben sei ein NiveaunetzwerkG′

f mit Restkapazitaten

restf (e). Wir beschreiben nun einen Algorithmus zur Be-

rechnung eines Sperrflussesφ auf G′

f . Fur einen Knoten

v ∈ V bezeichne

• A(v) = {(v, u) ∈ E′

f} die vonv ausgehenden Kanten,

• E(v) = {(u, v) ∈ E′

f} die inv eingehenden Kanten.

Wir starten mitφ = 0 und erhohen den Flussφ nach und

nach durch sogenannte”Forward-Backward-Propagationen“

bis wir einen Sperrfluss im Niveaunetzwerk berechnet haben.

18

Page 10: Kap1

Berthold Vocking, RWTH Aachen, 23. April 2008

Eine Propagationsphase besteht aus einer”Forward-“ und

einer”Backward-Propagation“.

• Seiφ der berechnete Fluss zu Beginn einer solchen Pro-

pagationsphase.

• DasPotentialeinerKantee ist definiert als

pot(e) = restf (e) − φ(e) ,

entspricht also der noch ungenutzten Restkapazitat der

Kantee im Niveaunetzwerk.

• DasPotentialeinesKnotensv ist definiert als

pot(v) = min

e∈E(v)

pot(e),∑

e∈A(v)

pot(e)

.

19

Berthold Vocking, RWTH Aachen, 23. April 2008

Forward-Propagation:

• Sei v∗ der Knoten mit kleinstem, positivem Potential.

Seii das Niveau vonv∗. Wir erzeugenpot(v∗) Einheiten

zusatzlichen Flusses am Knotenv∗.

• Dadurch erhalten wir einenUberschuss vonpot(v∗)

Flusseinheiten am Knotenv∗. DiesenUberschuss schie-

ben wir vorwarts entlang der Kanten inA(v∗).

• Jetzt erhalten wir einenUberschuss auf einigen der

Knoten auf Niveaui+ 1. DiesenUberschuss verschieben

wir wiederum zu Knoten auf Niveaui + 2, usw. bis wir

die Senke erreichen.

• Da v∗ der Knoten mit kleinstem Potential war, ist die

Entsorgung desUberschussflusses sichergestellt, weil

jeder Knoten genugend Potential hat, um denUberschuss

weiterzuleiten.

Backward Propagation: analog – ausgehend vom selben

Knotenv∗ wird derUberschuss zur Quelle propagiert.

20

Page 11: Kap1

Berthold Vocking, RWTH Aachen, 23. April 2008

Forward-Propagation im Detail:

Wir benutzen eine FIFO-QueueQ zur Verwaltung der Knoten

mit positivemUberschuss. Die MengeA(v) der vonv ausge-

henden Kanten im Niveaunetzwerk wird als Liste verwaltet.

next(A(v)) bezeichnet jeweils die nachste bisher noch nicht

betrachtete Kante. Ziel ist die Berechnung eines Flussesψ mit

Wertpot(v∗) vom Knotenv∗ zur Senkes.

Algorithmus Forward-Propagation(v∗):01 setzeU(v∗) = pot(v∗); /* initialer Uberschuss */

02 fur allev 6= v∗ setzeU(v) = 0;

03 fugev∗ in Q ein;

04 while Q 6= ∅ do05 nimm Element ausQ und nenne esv;

06 while U(v) > 0 do07 seie = (v, u) = next(A(v));

08 setzeψ(e) = min{pot(e), U(v)};

09 setzeU(v) = U(v) − ψ(e);

10 setzeU(u) = U(u) + ψ(e);

11 fallsu 6= s undu 6∈ Q fugeu in Q ein;

12 Ausgabe vonψ.

Der Flussψ wird dann zum Flussφ addiert.

21

Berthold Vocking, RWTH Aachen, 23. April 2008

Die Propagationsphasen werden solange wiederholt bis ein

Sperrfluss berechnet ist. Die Kanten- und Knotenpotentiale

werden dabei nach jeder Propagationsphase angepasst. Kno-

ten und Kanten mit Potential 0 werden alssaturiert bezeichnet

und werden in den kommenden Propagationsphasen nicht

mehr betrachtet, also aus dem Niveaunetzwerk entfernt. Die

Sperrflussberechnung terminiert, sobald alle Knoten entfernt

sind.

Beobachtung 9 Nach spatestensn − 1 Propagationsphasen

ist ein Sperrfluss berechnet, weil in jeder Phase mindestens

ein Knoten saturiert wird.

22

Page 12: Kap1

Berthold Vocking, RWTH Aachen, 23. April 2008

Lemma 10 Eine Forward-Propagation kann in ZeitO(n+ ℓ)

durchgefuhrt werden, wobeiℓ die Anzahl der neu saturierten

Kanten ist. (Backward-Propagation analog.)

Beweis:Die Verwendung der FIFO-QueueQ garantiert die

folgenden Eigenschaften.

1) Die Niveaus werden strikt nacheinander abgearbeitet.

2) Dadurch wird jeder Knoten hochstens einmal aus der

QueueQ entnommen.

3) Fur jeden entnommenen Knoten werden alle bis auf

maximal eine derbetrachteten Kanten saturiert.

Pro Knotenv gibt es somit maximal eine Kante inA(v), die

betrachtet aber nicht saturiert wird.

Die Laufzeitkostenwerden auf die Kanten umgelegt:

• Fur jede betrachtete Kante entstehen KostenO(1).

• Die Anzahl betrachteter, saturierter Kanten istℓ.

• Die Anzahl betrachteter, nicht saturierter Kanten ist

hochstensn.

Damit sind die GesamtkostenO(n+ ℓ). ⊓⊔

23

Berthold Vocking, RWTH Aachen, 23. April 2008

Satz 11 Durch Forward-Backward-Propagation kann man

einen Sperrfluss in ZeitO(m + n2) = O(n2) berechnen.

Dadurch erhalt man einen Algorithmus zur Berechnung eines

maximalen Flusses mit LaufzeitO(n3).

Beweis von Satz 11

• Beobachtung 9 liefert, dass nur hochstensn− 1 Propaga-

tionsphasen zur Sperrflussberechnung notig sind. Seiℓidie Anzahl der in deri-ten Propagationsphase geloschten

Kanten,1 ≤ i ≤ n− 1.

• Dann ergibt sich aus Lemma 10 die folgende Laufzeit-

abschatzung fur die Sperrflussberechnung:

n−1∑

i=1

O(n+ ℓi) = O

(

n2 +n−1∑

i=1

ℓi

)

= O(n2 +m) .

• Dan− 1 Sperrflussberechnungen einen maximalen Fluss

liefern, folgt der Satz.

⊓⊔

24

Page 13: Kap1

Berthold Vocking, RWTH Aachen, 23. April 2008

Das Min-Cost-Flow-Problem

Beim Min-Cost-Flow-Problem ist jeder Kantee ∈ E im

Flussnetzwerk neben der Kapazitatsfunktionc : E → N

zusatzlich eineKostenfunktionℓ : E → Z zugeordnet. Das

Netzwerk darf keine Kreise mit negativer Gewichtssumme

enthalten.

Seif ein Fluss inG. Die Kostenvon f sind definiert als

ℓ(f) =∑

e∈E

ℓ(e) f(e) .

Gegeben sei ein FlussnetzwerkG = (V,E, q, s, c, ℓ) und eine

ZahlW ∈ N, wobeiW nicht großer als der maximale Fluss

inG ist. Wir suchen einenkostenminimalerFlussf∗ mit Wert

W , d.h. es soll geltenw(f∗) = W und

ℓ(f∗) = min{ℓ(f) | f ist Fluss inG mit w(f) = W} .

25

Berthold Vocking, RWTH Aachen, 23. April 2008

Wir greifen unserer Analyse vorweg und merken an, dass –

wie schon beim Max-Flow-Problem – fur jede Instanz des

Min-Cost-Flow-Problems eine ganzzahlige optimale Losung

existiert und unsere Algorithmen ohne weiteres Zutun eine

solche Losung berechnen werden.

Fur W = 1 entspricht das Min-Cost-Flow-Problem wegen

der Ganzzahligkeit dem Kurzeste-Wege-Problem.

Im Falleℓ(e) = 0, fur allee ∈ E, ist ein beliebiger Fluss mit

WertW gesucht. Dieses Problem kann ohne nennenswerten

Zeitverlust auf das Max-Flow-Problem reduziert werden.

(Wie?)

26

Page 14: Kap1

Berthold Vocking, RWTH Aachen, 23. April 2008

Der Cycle-Canceling-Algorithmus

Wir beschreiben einen Algorithmus fur das Min-Cost-Flow-

Problem.

Gf = (V,Ef ) bezeichne wie schon zuvor das Restnetzwerk

bezuglich eines Flussesf . Die Kosten fur eine Kante(u, v) ∈

Ef \E seien durchℓ((u, v)) = −ℓ((v, u)) definiert.

EineZirkulation f ′ in Gf ist eine Funktionf ′ : Ef → R+0 ,

die die Flusserhaltung auf jedem Knoten ausV einhalt und

die Restkapazitaten nichtubersteigt.

Somit entspricht eine Zirkulation einem Fluss, der im Gegen-

satz zu einem”herkommlichen Fluss“ auch auf Quelle und

Senke die Flusserhaltung einhalt.

Analog zur Definition bei herkommlichen Flussen, sei der

WertderZirkulation ubereinenSchnitt(Q,S) definiert als

f ′(Q,S) =∑

(u,v)∈Eu∈Q,v∈S

f ′(u, v) −∑

(v,u)∈Ev∈S,u∈Q

f ′(v, u) .

Der Wert der Zirkulation ist ebenfalls analog definiert als

w(f ′) = f(q, V \ {q}). Aufgrund der Flusserhaltung an der

Quelle giltw(f ′) = 0. Per Induktion folgt: Fur jeden Schnitt

(Q,S) gilt f ′(Q,S) = w(f ′) = 0.

27

Berthold Vocking, RWTH Aachen, 23. April 2008

Eine Zirkulation, die nur entlang eines einfachen Kreises im

Restnetzwerk fließt, wird alsKreisfluss bezeichnet. Fur einen

KreisK in Gf , seif ′(K) der großtmogliche Kreisfluss auf

K, der die Restkapazitaten nichtuberschreitet. Wir sagen ein

KreisK hatnegativeKosten, wenn gilt∑

e∈K ℓ(e) < 0.

Cycle-Canceling-Algorithmus:1 Berechne einen beliebigen Flussf mit WertW ;

2 SolangeGf einen KreisK mit neg. Kosten enthalt

3 setzef := f + f ′(K);

4 Ausgabe vonf .

Daf ′(K) eine Zirkulation ist, erhoht sich durch die Addition

vonf ′(K) der Wert des Flusses nicht, denn

w(f + f ′(K)) = w(f) + w(f ′(K)) = w(f) = W .

Andererseits verringern sich aber die Kosten, denn es gilt

ℓ(f + f ′(K)) = ℓ(f) + ℓ(f ′(K)) < ℓ(f) ,

daℓ(f ′(K)) = f ′(a) ·∑

e∈K ℓ(e) < 0, wobeia eine beliebige

Kante ausK bezeichnet.

28

Page 15: Kap1

Berthold Vocking, RWTH Aachen, 23. April 2008

Lemma 12 Wennf nicht kostenminimal ist, dann gibt es

einen KreisK mit negativen Kosten inGf .

Beweis:

Ubungsaufgabe:Zeige, dass jede Zirkulationf ′, dieM viele

Kanten benutzt, in hochstensM viele Kreisflusse zerlegt

werden kann, d.h.f ′ besteht aus der Addition von hochstens

M Kreisflussen.

Sei f ein Fluss, der nicht kostenminimal ist, und seif∗

ein kostenminimimaler Fluss, d.h.ℓ(f∗) < ℓ(f). Der Fluss

f∗−f erfullt die Flusserhaltung auf allen Knoten, ist also eine

Zirkulation auf den maximal2m Kanten des Restnetzwerkes

Gf und kann somit inM ≤ 2m viele Kreisflussef1, . . . , fM

zerlegt werden. Es giltf∗ − f = f1 + · · · + fM und somit

ℓ(f∗) − ℓ(f) = ℓ(f1) + · · · + ℓ(fM ). Aus ℓ(f∗) − ℓ(f) < 0

folgt nun

ℓ(f1) + · · · + ℓ(fM ) < 0 .

Wenn nun keiner der diesenM Kreisflussen zugrunde liegen-

den Kreise negative Kosten hatte, so ware aberℓ(f1) + · · · +

ℓ(fM ) ≥ 0. Also gibt es mindestens einen Kreis inGf mit

negativen Kosten. ⊓⊔

29

Berthold Vocking, RWTH Aachen, 23. April 2008

Aus dem Lemma und den vorhergehendenUberlegungen

folgt

Satz 13 Ein Flussf ist kostenminimal genau dann, wennGf

keinen Kreis mit negativen Kosten enthalt.

Damit ist die Korrektheit des Cycle-Canceling-Algorithmus

nachgewiesen. Die Laufzeit des Cycle-Canceling-Algorithmus

lasst sich im Allgemeinen wieder nur pseudopolynomiell in

C, der Summe der Kapazitaten, beschranken.

Wie schon bei der Ford-Fulkerson-Methode kann man aber

eine polynomielle Laufzeitschranke erhalten, wenn man die

aufzuaddierenden Flusse – in diesem Fall die Kreise mit

negativen Kosten – geschickt wahlt.

30

Page 16: Kap1

Berthold Vocking, RWTH Aachen, 23. April 2008

Der Min-Mean-Cycle-Canceling-Algorithmus

Der Min-Mean-Cycle-Canceling-Algorithmus wahlt in jeder

Iteration einen KreisK ausGf , der die durchschnittlichen

Kantenkosten (mean cost)

ℓ(K) =ℓ(K)

|K|=

e∈K ℓ(e)

|K|

minimiert.

K wird alsMin-Mean-Cycle bezeichnet. Seiµ(f) = −ℓ(K).

Beachte, wennK ein Kreis mit negativen Kosten ist, so ist

ℓ(K) negativ und somitµ(f) positiv.

Fur die Laufzeitanalyse zerlegen wir die Folge der Iterationen

des Algorithmus inPhasen. Seif der Fluss zu Beginn einer

Phase. Die Phase endet nach der ersten Iteration in der ein

Flussg mit µ(g) ≤ (1 − 1n )µ(f) oderµ(g) ≤ 0 berechnet

wird. Im letzteren Fall enthaltGg keinen Kreis mit negativen

Kosten und die Berechnung terminiert. Ansonsten folgt die

nachste Phase.

31

Berthold Vocking, RWTH Aachen, 23. April 2008

Anzahl der Phasen:

SeiT die Anzahl der Phasen. Seiµ0 der Wert vonµ zu Beginnder ersten Phase und, fur 1 ≤ t ≤ T , seiµt der Wert vonµ zuEnde dert-ten Phase.

Fur 1 ≤ t ≤ T − 1 folgt aus der Definition der Phasen

µt ≤

(

1 −1

n

)

µt−1 ≤µt−1

e1/n. (1)

Die letzte Abschatzung erfolgt dabei aus der allgemeingulti-gen Ungleichung1 − x ≤ e−x mit x = 1

n .

Zu Beginn des Algorithmus istµ durch den maximalenAbsolutbetrag aller Kantenkosten, das wir mitL bezeichnen,nach oben beschrankt. Es gilt somitµ0 ≤ L. (2)

Der Algorithmus terminiert, wenn zum Ende einer Phase dieBedingungµ ≤ 0 erfullt ist. Am Ende von PhaseT − 1 giltsomit nochµ > 0. Aufgrund der Ganzzahligkeit der Kostenkannµ nicht im Interval(0, 1

n ) liegen. (Warum?) Am Endevon PhaseT − 1 gilt somitµ ≥ 1

n , d.h.µT−1 ≥ 1n . (3)

Aus den Ungleichungen(1), (2) und(3) folgt

T − 1 ≤ loge1/n(nL) =ln(nL)

ln(e1/n)= n ln(nL) ,

und somit terminiert der Algorithmus nachT ≤ n ln(nL) + 1

Phasen.

32

Page 17: Kap1

Berthold Vocking, RWTH Aachen, 23. April 2008

Anzahl der Iterationen je Phase:

Sei f der initiale Fluss zu Beginn einer Phase. Wir zeigen,

dass der Algorithmus nachm Iterationen terminiert oder

nach spatestensm − 1 Iterationen wird ein Flussg mit

µ(g) ≤ (1 − 1n)µ(f) berechnet. Eine Phase dauert somit

hochstensm Iterationen. Wir treffen zunachst die folgende

vereinfachende Annahme.

Annahme 14 Fur alle Kantene ∈ Gf gelteℓ(e) ≥ −µ(f).

Wir unterscheiden Iterationen vomTyp 1 in denen der Min-

Mean-Cycle jeweils nur Kanten mit negativen Kosten enthalt

und Iterationen vomTyp 2 in denen der Min-Mean-Cycle

mindestens eine Kante mit positiven Kosten enthalt.

In jeder Typ-1-Iteration wird mindestens eine Kante mit ne-

gativen Kosten saturiert und aus dem Restnetzwerk entfernt.

Ferner verlaufen alle moglicherweise neu entstehenden Kan-

ten entgegengesetzt zu den Kanten mit negativen Kosten und

haben somit selbst positive Kosten. Spatestens nachm konse-

kutiven Typ-1-Iterationen terminiert der Algorithmus somit,

weil das Restnetzwerk dann nur noch Kreise mit positiven

Kosten enthalt.

33

Berthold Vocking, RWTH Aachen, 23. April 2008

Wenn die Phase langer alsm Iterationen dauert, folgt nach

spatestensm− 1 Typ-1-Iterationen eine Typ-2-Iteration.

Sei g der Fluss zu Beginn der ersten Typ-2-Iteration. Da

die Typ-1-Iterationen keine Kanten mit negativen Kosten

hinzugefugt haben, gilt weiterhin unsere Annahme, d.h.

ℓ(e) ≥ −µ(f) bzw.−ℓ(e) ≤ µ(f) fur alle Kantene ∈ Gg.

SeiK der Min-Mean-Cycle ing undH ⊆ K die Menge der

Kanten mit negativen Kosten ausK. Es gilt

µ(g) =∑

e∈K

−ℓ(e)

|K|≤∑

e∈H

−ℓ(e)

|K|≤ |H| ·

µ(f)

|K|,

weibei die letzte Abschatzung aus Annahme 14 folgt. Aus

|H| ≤ |K| − 1 folgt nun |H|/|K| ≤ 1 − 1/|K| ≤ 1 − 1/n

und somitµ(g) ≤ (1 − 1n )µ(f).

Die Phase endet also sobald der Flussg berechnet ist und

damit noch vor der ersten Typ-2-Iteration!

Wenn Annahme 14 zu Beginn einer Phase halt, so gibt es also

keine Typ-2-Iterationen in der Phase und die Phase endet nach

spatestensm vielen Typ-1-Iterationen.

34

Page 18: Kap1

Berthold Vocking, RWTH Aachen, 23. April 2008

Annahme 14 sieht sehr restriktiv aus, insbesondere vor demHintergrund der vorhergehenden Analyse. Wir zeigen abernun, dass wir diese Annahme erreichen konnen, indem wirdie Kostenfunktionℓ auf geeignete Art und Weise verandern,ohne dabei den Ablauf des Algorithmus zu beeinflussen.

Seip : V → Z eine beliebige Funktion, die jedem Knoteneinen Wert zuweist, ein sogenanntesPotential. Wir setzenℓ′(e) = ℓ(e) − p(v) + p(u) fur jede Kantee = (u, v).Beachte, fur e = (v, u) gilt

ℓ′(e) = ℓ(e) − p(u) + p(v)

= −ℓ(e) − p(u) + p(v) = −ℓ′(e) .

Wir beobachten, dass die Potentiale die Kostensumme aufKreisen nicht beeinflussen, da jeder Potentialwert einmal mitpositivem und einmal mit negativem Vorzeichen aufsummiertwird, d.h. fur jeden KreisK gilt ℓ(K) = ℓ′(K).

Die Potentiale haben somit keine Auswirkungen auf den Ab-lauf des Algorithmus. Um Annahme 14 in der vorhergendenAnalyse zu erreichen, konnen wir also beliebige Potentialeverwenden, um die Kostenfunktion zu Beginn einer Phasegeeignet zu manipulieren.

Das folgende Lemma besagt, dass es tatsachlich Potentialegibt, die es erlauben, Annahme 14 zu erreichen.

35

Berthold Vocking, RWTH Aachen, 23. April 2008

Lemma 15 Im RestnetzwerkGf = (V,Ef ) gelte ℓ(K) ≥

−µ fur jeden KreisK. Dann gibt es eine Funktionp : V → Z

mit der Eigenschaftℓ′(e) = ℓ(e)−p(v)+p(u) ≥ −µ fur jedeKantee ∈ Ef .

Beweis:

Fur jede Kantee ∈ Ef definiere ein Kantengewichtw(e) =

ℓ(e) + µ. Fur jeden Knotenv ∈ V definiere nunp(v) als dieLange (= Gewicht) eines kurzesten Kantenzuges (d.h. Pfades

mit beliebigen Wiederholungen von Knoten und Kanten) inGf , der von einem beliebigen Knoten zum Knotenv in Gf

fuhrt. Dieser Wert ist wohldefiniert, weil keine Kreise mitnegativem Gewicht inGf existieren, denn ausℓ(K) ≥ −µ

folgt w(K) ≥ 0 fur jeden KreisK.

Die Definition der Potentiale garantiert uns die folgendeEigenschaft: Fur jede Kantee = (u, v) gilt p(v) ≤ p(u) +

w(u, v), denn der kurzeste Weg, der inv endet, kann nicht

langer als der kurzeste Weg sein, der zuu fuhrt unduber dieKante(u, v) fortgesetzt wird. Es folgt

ℓ′(e) = ℓ(e) − p(v) + p(u)

= w(e) − p(v) + p(u) − µ ≥ −µ .

⊓⊔

36

Page 19: Kap1

Berthold Vocking, RWTH Aachen, 23. April 2008

Laufzeit pro Iteration:

Wir zeigen nun wie man einen Min-Mean-Cycle im Restnetz-

werk in ZeitO(nm) berechnen kann (Karp, 1978).

Fur k = 0, 1, . . . , n undv ∈ V seidk(v) die Lange (=Kosten)

eines kurzesten Kantenzuges mit genauk Kanten, der beiv

endet. Es giltd0(v) = 0 und

dk+1(v) = mine=(u,v)∈E

(dk(u) + ℓ(e)) .

Alle dk(v)-Werte konnen somit durch dynamische Program-

mieren in ZeitO(nm) berechnet werden.

Lemma 16 Der Wertℓ(K) des Min-Mean-Cycles inG ist

α = minv∈V

n−1maxj=0

(dn(v) − dj(v)

n− j

)

37

Berthold Vocking, RWTH Aachen, 23. April 2008

Beweis von Lemma 16

SeiK ein Min-Mean-Cycle. Wenn wir alle Kantenkosten

um den gleichen additiven Betrag∆ erhohen, so istK un-

verandert ein Min-Mean-Cycle aber sein Wert wurde sich um

∆ erhohen. Beachte, dass auchα sich genau um∆ erhohen

wurde. (Warum?) Deshalb konnen wir die Kantenkosten um

einen beliebigen additiven Betrag∆ verschieben und so-

mit o.B.d.A. annehmen, dassℓ(K) = 0 gilt. Unter dieser

Annahme mussen wir zeigen, es gilt auchα = 0.

Betrachte dazu einen beliebigen Knotenv. SeiP ein Kanten-

zug ausn Kanten, der beiv endet und die Langedn(v) hat.

Weil das Netzwerk nurn Knoten enthalt, mussP einen Kreis

enthalten. SeiC dieser Kreis undP ′ der Kantenzug, den wir

enthalten, wenn wirC ausP entfernen. Seij die Anzahl

Kanten inP ′ undn− j die Anzahl Kanten inC. Es gilt nun

dn(v) = ℓ(P ) = ℓ(C) + ℓ(P ′) ≥ ℓ(P ′) ≥ dj(v) ,

da ℓ(C) ≥ 0. Somit existiert fur jeden Knotenv ein j ∈

{1, . . . , n − 1} mit der Eigenschaftdn(v) ≥ dj(v). Hieraus

folgt α ≥ 0.

38

Page 20: Kap1

Berthold Vocking, RWTH Aachen, 23. April 2008

Wir mussen nun also nur noch zeigen, dass auchα ≤ 0 gilt.

Dazu werden wir zeigen, dass es einen Knotenw mit der

Eigenschaftdn(w) ≤ dj(w) fur allej ∈ {0, . . . , n− 1} gibt.

Zu diesem Zweck betrachte die folgende Situation:

• Seiv ein Knoten des Min-Mean-CycleK.

• SeiP ein kurzester unter allen Kantenzugen beliebiger

Lange, die am Knotenv enden. O.B.d.A. enthaltP keinen

Kreis, da es keine Kreise negativer Lange gibt. Seip < n

die Anzahl Kanten inP .

• Seiw derjenige Knoten, den wir erreichen, wenn wirK

vonv ausgehend entlang vonn−p Kanten folgen. Diesen

Kantenzug bezeichnen wir mitQ.

• SeiR der Weg vonw zu v entlang vonK, und seir die

Anzahl Kanten dieses Weges.

• Sei nunj ∈ {0, . . . , n − 1} beliebig gewahlt undS

ein Kantenzug minimaler Lange ausj Kanten, der am

Knotenw endet.

39

Berthold Vocking, RWTH Aachen, 23. April 2008

Tafelbild:

Aus der Definition der Kantenzuge folgt

dn(w) ≤ ℓ(P ) + ℓ(Q) = dp(v) + ℓ(Q) ,

und

dp(v) ≤ dj+r(v) ≤ dj(w) + ℓ(R) .

Es folgt

dn(w) ≤ dj(w) + ℓ(R) + ℓ(Q) .

Nun hat aber der KantenzugQ ◦ R die Lange 0, da erK

(moglicherweise mehrfach) umlauft undℓ(K) = 0 gilt.

Somit gilt, wie gefordert,dn(w) ≤ dj(w). ⊓⊔

40

Page 21: Kap1

Berthold Vocking, RWTH Aachen, 23. April 2008

Der Algorihmus zur Bestimmung des Min-Mean-Cycles

arbeitet nun folgendermaßen:

• Berechne diedk(v)-Werte und bestimmeα, also den

Wert des Min-Mean-Cycles.

• Erhohe alle Kantenkosten um den additiven Termα, so

dass der Wert des Min-Mean-Cycles nun gleich 0 ist.

• Transformiere die Kantenkosten wie in Lemma 15 be-

schrieben. Die benotigten Potentiale lassen sich aus den

dk(v)-Werten bestimmen. Nun sind alle Kantenkosten

nicht-negativ und alle Kanten auf dem Min-Mean-Cycle

haben somit den Wert 0.

• Streiche alle Kanten mit Kosten großer als 0 aus dem

Graphen und suche den Min-Mean-Cycle mittels Tiefen-

suche unter den verbleibenden Kanten.

41

Berthold Vocking, RWTH Aachen, 23. April 2008

Gesamtlaufzeit:

Der Algorithmus benotigt hochstensn log(nL) + 1 Phasen,

die jeweils hochstensm Iterationen benotigen, die jeweils

LaufzeitO(mn) haben.L bezeichnet dabei das Maximum der

Absolutwerte der Kantenkosten. Es folgt

Satz 17 Der Mean-Cycle-Canceling-Algorithmus hat eine

Laufzeit vonO(m2n2 log(nL)).

Diese Abschatzung der Laufzeit ist zwar polynomiell in der

Eingabelange beschrankt, aber man spricht von einerschwach

polynomiellen Schranke, da die Große der Eingabezahlen,

wenngleich nur logarithmisch, in die Abschatzung eingeht.

Tatsachlich lasst sich auch einestarkpolynomielle Laufzeit-

schranke herleiten.

Satz 18 Der Mean-Cycle-Canceling-Algorithmus hat eine

Laufzeit vonO(m3n2 log n).

Auf die Prasentation des Beweises dieses Satzes verzichten

wir an dieser Stelle.

42