• Keine Ergebnisse gefunden

Die Ford-Fulkerson-Methode

N/A
N/A
Protected

Academic year: 2022

Aktie "Die Ford-Fulkerson-Methode"

Copied!
21
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

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.

Netzwerke und Fl ¨usse

Ein Flussnetzwerk ist ein gerichteter GraphG = (V, E, q, s, c) mit zwei ausgew¨ahlten Knotenq, s ∈V und einer Kapazit¨ats- funktionc : E → N. Die Quelle q hat Eingangsgrad 0 und die Senke shat Ausgangsgrad 0.

Wir definieren n = |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} :

X

v: (v,u)E

f(v, u)

| {z }

fin(u)

= X

v: (u,v)E

f(u, v)

| {z }

fout(u)

.

b) Kapazit¨atsbeschr¨ankung: ∀e ∈ E : f(e) ≤ c(e).

Der Wert des Flussesf ist definiert alsw(f) = fout(q). Wegen der Flusserhaltung gilt somit auchw(f) = fin(s).

(2)

Problem 1 (Maximaler Fluss) Gegeben sei ein Flussnetz- werk G. Berechne einen maximalen Fluss auf G, d.h. einen Fluss mit gr¨oßtm¨oglichem Wert.

Beachte, wir haben angenommen, dass die Kantenkapazit¨aten ganzzahlig sind. Das ist keine besondere Einschr¨ankung, denn bei rationalen Kapazit¨aten k¨onnen wir immer alle Zahlen mit dem Hauptnenner multiplizieren und somit ein Flussproblem mit rationalen Kapazit¨aten in ein Problem mit ganzzahligen Kapazit¨aten transformieren.

Die Algorithmen zur Berechnung von maximalen Fl¨ussen, 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 pr¨asentieren wir dazu einige, teilweise ¨uberraschen-¨ de Beispiele, wie z.B. das Meisterschaftsproblem.

Die Ford-Fulkerson-Methode

Der folgende algorithmische Rahmen zur Berechnung ei- nes maximalen Flusses f auf einem Flussnetzwerk G = (V, E, q, s, c)geht zur¨uck auf Ford und Fulkerson, 1957.

Ford-Fulkerson-Methode:

1 ∀e ∈E : f(e) = 0;

2 Solange es einen fv-Weg W gibt

3 erh¨ohe den Flussf entlang von W maximal;

4 Ausgabe von f.

”fv-Weg“ steht f¨ur

”flussvergr¨oßernder Weg“. Dabei handelt es sich um Wege im sogenannten

”Restnetzwerk“.

(3)

Das Restnetzwerk Gf zu einem Netzwerk G = (V, E, q, s, c) und einem Flussf ist wie folgt definiert.

• O.B.d.A. nehmen wir an, dass das Netzwerk G keine entgegengesetzten Kanten hat, d.h.

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

• F¨ur alle Paare (u, v)∈ V2 setze

restf(u, v) =





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

0 sonst

• Gf hat die Knotenmenge V und die Kantenmenge Ef = {(u, v)∈ V2 | restf(u, v) > 0} .

Ein fv-Weg ist ein einfacher Weg von q nach s im Rest- netzwerk Gf. (einfacher Weg = Weg auf dem jede Kante h¨ochstens einmal vorkommt)

Max-Flow = Min-Cut

Die Korrektheit der Ford-Fulkerson-Methode beruht auf dem

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

Ein Cut oder Schnitt (Q, S) in einem Flussnetzwerk G ist eine Partionierung der Knotenmenge V = Q∪˙ S mit q ∈ Q, s ∈ S.

• Die Kapazit¨at des Schnitts(Q, S)ist definiert durch c(Q, S) = X

(u,v)∈E uQ,vS

c(u, v) .

• Der Fluss ¨uber den Schnitt(Q, S)ist definiert durch f(Q, S) = X

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

f(u, v)− X

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

f(v, u) .

Lemma 2 [Max-Flow≤Min-Cut]

F¨ur jeden Fluss f und jeden Schnitt (Q, S) gilt w(f) =

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

Dieses Lemma folgt direkt aus der Flusserhaltung. Formal zeigt man w(f) = f(Q, S)per Induktion ¨uber die Gr¨oße der MengeQ (vgl. ¨Ubungen).

(4)

Satz 3 (Max-Flow=Min-Cut)

Die folgenden Aussagen sind ¨aquivalent.

a) f ist ein maximaler Fluss.

b) Das Restnetzwerk Gf enth¨alt 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, sei f ein maximaler Fluss undW ein fv-Weg inGf.

• Dann kannf entlang von W vergr¨oßert werden. Dies ist ein Widerspruch zur Maximalit¨at von f.

aus c) folgt a):

Aus Lemma 2 folgt

w(f) = c(Q, S) ≥ Min-Cut ≥ Max-Flow , und somit giltw(f) = Max-Flow.

aus b) folgt c):

• Aussage b) sagt, dass Gf keinen fv-Weg hat

• Definiere Q = {v ∈ V | ∃Weg von q nach v inGf} undS = V \Q.

• Da Gf keinen fv-Weg hat, folgt s ∈ S. Also ist (Q, S) ein wohldefinierter Schnitt mit q ∈ Q unds ∈S.

• F¨ur jede Kante (u, v) ∈ E mit u ∈ Q und v ∈ S gilt f(u, v) = c(u, v), weil sonst restf(u, v) > 0 und somit v ∈Q w¨are.

• F¨ur jede Kante (v, u) ∈ E mit v ∈ S und u ∈ Q gilt f(v, u) = 0, weil sonst restf(u, v) > 0 und somit wiederum v ∈Q w¨are.

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

c(Q, S) = X

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

c(u, v)

= X

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

f(u, v)− X

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

f(v, u)

= f(Q, S) Lemma 2= w(f) .

⊔Satz 3

(5)

Die Ford-Fulkerson-Methode terminiert, sobald kein fv-Weg mehr vorhanden ist. Aus der ¨Aquivalenz der Aussagen in Satz 3a) und b) folgt somit, dass der berechnete Fluss f maximal ist.

Satz 4 (Korrektheit) Die Ford-Fulkerson-Methode berech- net einen maximalen Fluss.

Wir haben angenommen, dass die Kantenkapazit¨aten nat¨urli- 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 nat¨urliche Zahl beschrieben.

Korollar 5 (Ganzzahligkeit) F¨ur 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 n¨utzlich f¨ur vielerlei Anwendungen (vgl. ¨Ubungen).

Laufzeit der Ford-Fulkerson-Methode

fv-Wege k¨onnen beispielsweise durch Tiefen- oder Breiten- suche im Restnetzwerk gefunden werden. Damit dauert eine Iteration der Ford-Fulkerson-Methode nur Zeit O(m). Sei C = P

eEc(e). Da der Fluss in jeder Iteration um mindes- tens eine Einheit erh¨oht wird und C eine obere Schranke f¨ur den Wert des maximalen Flusses ist, k¨onnen wir die Laufzeit der Ford-Fulkerson-Methode durch O(mC) absch¨atzen und erhalten damit einepseudopolynomielle Laufzeitschranke.

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 Breitensuche eine polynomielle Laufzeit garantiert. Eine Breitensuche fin- det k¨urzeste fv-Wege, d.h. solche Wege zwischen q und s im Restnetzwerk, 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 m¨ussen wir zeigen, dass der Algorithmus nach O(mn)Iterationen terminiert.

(6)

Lemma 7 Von Iteration zu Iteration verringert sich die Di- stanz von q zu einem Knoten v ∈ V im Restnetzwerk nicht.

Beweis: Entlang des fv-Weges k¨onnen durch die Erh¨ohung des Flusses Kanten verschwinden und entstehen. Es gibt zwei Arten von Ver¨anderungen.

• F¨ur jede Kante (u, v) auf dem fv-Weg verringert sich restf(u, v). Kanten mit minimaler Restkapazit¨at auf dem fv-Weg, sogenannte Flaschenhalskanten, verschwinden aus dem Restnetzwerk, denn ihre Restkapazit¨at wird auf 0 gesetzt.

• Gleichzeitig erh¨oht sich f¨ur jede Kante (u, v) auf dem fv-Weg die entgegengesetzte Restkapazit¨at restf(v, u).

Falls restf(v, u) zuvor den Wert 0 hatte entsteht eine neue Kante im Restnetzwerk.

Zum Zwecke des Beweises, ver¨andern wir das Restnetzwerk in zwei Schritten und f¨ugen zun¨achst nacheinander alle neuen Kanten hinzu und entfernen erst dann die Flaschenhalskanten.

Hinzuf ¨ugen von neuen Kanten:

Kann das Hinzuf¨ugen der neuen Kanten Distanzen von der Quelle zu anderen Knoten verringern? – Nein!

Begr¨undung: Eine Kante (v, u) wird nur dann eingef¨ugt, wenn die Kante in umgekehrter Richtung – also die Kante (u, v)– auf einem flussvergr¨oßerndem Weg liegt.

Flussvergr¨oßernde Wege sind aber k¨urzeste Weg im Restnetzwerk. Wenn ualso die Distanz ℓ von der Quelle hat, so hat v 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, m¨usste man eine gerichtetete Kante von einem Knoten mit Distanz k, f¨ur irgendein k ≥ 0, zu einem Knoten mit Distanz k + i, f¨ur irgendein i > 1, einf¨ugen.

Entfernen von Flaschenhalskanten:

Offensichtlich k¨onnen Kantenl¨oschungen keine Distan- zen verringern.

⊔Lemma 7

(7)

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 sp¨ateren Iteration wieder in das Restnetzwerk eingef¨ugt werden und zwar wenn der Fluss auf Kante (v, u)erh¨oht wird. Dazu muss (v, u) auf einem k¨urzesten Weg liegen. Da die Distanz vonq zu v sich aber nicht verringert hat, muss die Distanz von q zuudann mindestensℓ+ 2sein.

• Zwischen jedem Entfernen und Wiedereinf¨ugen einer Kante (u, v) erh¨oht sich die Distanz von der Quelle q zum Knoten u also um den additiven Wert 2. Da die maximale Distanz n− 1 ist, kann eine Kante also nicht

¨ofter als 12n mal entfernt werden.

• In jeder Iteration wird mindestens eine Kante entfernt.

Es gibt bis zu 2m Kanten im Restnetzwerk. Also ist die Anzahl der Iterationen h¨ochstens 12n·2m = nm.

⊔Satz 6

Der Algorithmus von Dinitz, 1970

Idee: In jeder Iteration erh¨ohe den Fluss entlang von mehreren k¨urzesten fv-Wegen.

Zu einem gegebenen Restnetzwerk Gf = (V, Ef) ist das NiveaunetzwerkGf = (V, Ef)wie folgt definiert. F¨uri∈ N0 sei

Vi = {v ∈ V |die Distanz von q nach vin Gf isti} . Gf enth¨alt nur die Kanten von Niveauizu Niveau i+ 1, d.h,

Ef = {(u, v) ∈ Ef | ∃i : u ∈Vi, v ∈Vi+1} . Als Kapazit¨aten f¨ur diese Kanten verwenden wir die Restka- pazit¨aten des Restnetzwerkes Gf.

Gf kann aus Gf durch Breitensuche in Zeit O(m)berechnet werden.

(8)

Statt eines fv-Weges im Restnetzwerk Gf berechnet Dinitzs Algorithmus einen sogenannten

”Sperrfluss“ im Niveaunetz- werkGf. Dieser Begriff ist folgendermaßen definiert:

• Seiφ ein Fluss im NiveaunetzwerkGf.

• Eine Kante e ∈ Ef heisst saturiert, wenn φ(e) = restf(e).

• φheisst Sperrfluss wenn jederq-s-Weg inGf mindestens eine saturierte Kante enth¨alt.

Intuitiv ist ein Sperrfluss also ein Fluss im Niveaunetzwerk, der alle Wege verstopft.

(In den ¨Ubungen zeigen wir, dass der Sperrfluss nicht notwen- digerweise ein maximaler Fluss im Niveaunetzwerk ist.)

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

2 Solange es einen q-sWeg im Restnetzwerk gibt 3 berechne das Niveaunetzwerk Gf;

4 berechne einen Sperrfluss φinGf; 5 ”addiere“ φ zuf;

6 Ausgabe von f.

• Beim Addieren der Fl¨usse in Schritt 5 ist zu beachten, dass Fl¨usse auf entgegengesetzten Kanten subtrahiert werden m¨ussen.

• Die Korrektheit des Algorithmus folgt mittels des

”Min- Cut=Max-Flow“-Theorems analog zur Ford-Fulkerson- Methode.

(9)

Lemma 8 Dinitzs Algorithmus terminiert nach sp¨atestens n−1 Sperrflussberechnungen.

Beweis: Behauptung: Die L¨ange des k¨urzesten Weges im Restnetzwerk w¨achst von Iteration zu Iteration um mindestens eine Kante.

• Sei ℓ die Entfernung zwischen q und s zu Beginn der Iteration.

• Alle urspr¨unglichen Wege der L¨angeℓ werden durch den Sperrfluss zerst¨ort. Aber es k¨onnen neue Wege durch neue erzeugte Kanten entstehen.

• Neue Kanten laufen jedoch entgegengesetzt zum Sperr- fluss, also f¨uhren sie von Niveau i zu Niveau i− 1 f¨ur irgendein i ≥ 1. Wege ¨uber solche Kanten haben L¨ange mindestens ℓ+ 2.

Somit gilt die Behauptung und der Satz folgt, weil die L¨ange eines q-s-Weges mindestens 1 und h¨ochstens n−1ist. ⊓⊔

Wir m¨ussen uns nun nur noch ¨uberlegen, wie man eine Sperr- flussberechnung effizient durchf¨uhren kann. Dazu greifen wir auf ein Verfahren zur¨uck, das ein wenig effizienter ist als das urspr¨unglich 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 Niveaunetzwerk Gf mit Restkapazit¨aten restf(e). Wir beschreiben nun einen Algorithmus zur Be- rechnung eines Sperrflusses φ auf Gf. F¨ur einen Knoten v ∈ V bezeichne

• A(v) = {(v, u) ∈ Ef} die vonv ausgehenden Kanten,

• E(v) = {(u, v) ∈ Ef} die inv eingehenden Kanten.

Wir starten mit φ = 0 und erh¨ohen den Fluss φ nach und nach durch sogenannte

”Forward-Backward-Propagationen“

bis wir einen Sperrfluss im Niveaunetzwerk berechnet haben.

(10)

Eine Propagationsphase besteht aus einer

”Forward-“ und einer

”Backward-Propagation“.

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

• Das Potential einer Kante eist definiert als pot(e) = restf(e)−φ(e) ,

entspricht also der noch ungenutzten Restkapazit¨at der Kantee im Niveaunetzwerk.

• Das Potential eines Knotens vist definiert als

pot(v) = min

 X

eE(v)

pot(e), X

eA(v)

pot(e)

 .

Forward-Propagation:

• Sei v der Knoten mit kleinstem, positivem Potential.

Sei idas Niveau vonv. Wir erzeugen pot(v)Einheiten zus¨atzlichen Flusses am Knoten v.

• Dadurch erhalten wir einen ¨Uberschuss von pot(v) Flusseinheiten am Knoten v. Diesen ¨Uberschuss schie- ben wir vorw¨arts entlang der Kanten inA(v).

• Jetzt erhalten wir einen ¨Uberschuss auf einigen der Knoten auf Niveau i+ 1. Diesen ¨Uberschuss verschieben wir wiederum zu Knoten auf Niveau i+ 2, usw. bis wir die Senke erreichen.

• Da v der Knoten mit kleinstem Potential war, ist die Entsorgung des ¨Uberschussflusses sichergestellt, weil jeder Knoten gen¨ugend Potential hat, um den ¨Uberschuss weiterzuleiten.

Backward Propagation: analog – ausgehend vom selben Knoten v wird der ¨Uberschuss zur Quelle propagiert.

(11)

Forward-Propagation im Detail:

Wir benutzen eine FIFO-Queue Qzur 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¨achste bisher noch nicht betrachtete Kante. Ziel ist die Berechnung eines Flussesψ mit Wert pot(v)vom Knoten v zur Senkes.

Algorithmus Forward-Propagation(v):

01 setzeU(v) = pot(v); /* initialer ¨Uberschuss */

02 f¨ur allev 6= v setze U(v) = 0;

03 f¨ugev in Qein;

04 whileQ 6= ∅do

05 nimm Element ausQ und nenne es v;

06 whileU(v) > 0do

07 sei e = (v, u) =next(A(v));

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

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

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

11 falls u 6= s undu 6∈Q f¨uge uinQ ein;

12 Ausgabe von ψ.

Der Flussψ wird dann zum Flussφ addiert.

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 als saturiert 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 sp¨atestens n− 1Propagationsphasen ist ein Sperrfluss berechnet, weil in jeder Phase mindestens ein Knoten saturiert wird.

(12)

Lemma 10 Eine Forward-Propagation kann in Zeit O(n+ℓ) durchgef¨uhrt werden, wobei ℓ die Anzahl der neu saturierten Kanten ist. (Backward-Propagation analog.)

Beweis: Die Verwendung der FIFO-Queue Q garantiert die folgenden Eigenschaften.

1) Die Niveaus werden strikt nacheinander abgearbeitet.

2) Dadurch wird jeder Knoten h¨ochstens einmal aus der QueueQ entnommen.

3) F¨ur jeden entnommenen Knoten werden alle bis auf maximal eine der betrachteten Kanten saturiert.

Pro Knoten v gibt es somit maximal eine Kante in A(v), die betrachtet aber nicht saturiert wird.

DieLaufzeitkosten werden auf die Kanten umgelegt:

• F¨ur jede betrachtete Kante entstehen KostenO(1).

• Die Anzahl betrachteter, saturierter Kanten istℓ.

• Die Anzahl betrachteter, nicht saturierter Kanten ist h¨ochstens n.

Damit sind die Gesamtkosten O(n+ℓ). ⊓⊔

Satz 11 Durch Forward-Backward-Propagation kann man einen Sperrfluss in Zeit O(m + n2) = O(n2) berechnen.

Dadurch erh¨alt man einen Algorithmus zur Berechnung eines maximalen Flusses mit Laufzeit O(n3).

Beweis von Satz 11

• Beobachtung 9 liefert, dass nur h¨ochstens n−1 Propaga- tionsphasen zur Sperrflussberechnung n¨otig sind. Sei ℓi

die Anzahl der in der i-ten Propagationsphase gel¨oschten Kanten,1 ≤ i≤ n−1.

• Dann ergibt sich aus Lemma 10 die folgende Laufzeit- absch¨atzung f¨ur die Sperrflussberechnung:

n1

X

i=1

O(n+ℓi) = O n2+

n1

X

i=1

i

!

= O(n2+m) .

• Da n−1 Sperrflussberechnungen einen maximalen Fluss liefern, folgt der Satz.

(13)

Das Min-Cost-Flow-Problem

Beim Min-Cost-Flow-Problem ist jeder Kante e ∈ E im Flussnetzwerk neben der Kapazit¨atsfunktion c : E → N zus¨atzlich eine Kostenfunktion ℓ : E → Z zugeordnet. Das Netzwerk darf keine Kreise mit negativer Gewichtssumme enthalten.

Sei f ein Fluss in G. Die Kosten von f sind definiert als ℓ(f) = X

eE

ℓ(e)f(e).

Gegeben sei ein Flussnetzwerk G = (V, E, q, s, c, ℓ)und eine Zahl W ∈ N, wobei W nicht gr¨oßer als der maximale Fluss inG ist. Wir suchen einen kostenminimaler Flussf mit Wert W, d.h. es soll gelten w(f) = W und

ℓ(f) = min{ℓ(f)|f ist Fluss in Gmit w(f) = W}.

Wir greifen unserer Analyse vorweg und merken an, dass – wie schon beim Max-Flow-Problem – f¨ur jede Instanz des Min-Cost-Flow-Problems eine ganzzahlige optimale L¨osung existiert und unsere Algorithmen ohne weiteres Zutun eine solche L¨osung berechnen werden.

F¨ur W = 1 entspricht das Min-Cost-Flow-Problem wegen der Ganzzahligkeit dem K¨urzeste-Wege-Problem.

Im Falleℓ(e) = 0, f¨ur alle e ∈ E, ist ein beliebiger Fluss mit Wert W gesucht. Dieses Problem kann ohne nennenswerten Zeitverlust auf das Max-Flow-Problem reduziert werden.

(Wie?)

(14)

Der Cycle-Canceling-Algorithmus

Wir beschreiben einen Algorithmus f¨ur das Min-Cost-Flow- Problem.

Gf = (V, Ef) bezeichne wie schon zuvor das Restnetzwerk bez¨uglich eines Flussesf. Die Kosten f¨ur eine Kante (u, v)∈ Ef \E seien durch ℓ((u, v)) = −ℓ((v, u)) definiert.

Eine Zirkulation f in Gf ist eine Funktion f : Ef → R+

0, die die Flusserhaltung auf jedem Knoten aus V einh¨alt und die Restkapazit¨aten nicht ¨ubersteigt.

Somit entspricht eine Zirkulation einem Fluss, der im Gegen- satz zu einem

”herk¨ommlichen Fluss“ auch auf Quelle und Senke die Flusserhaltung einh¨alt.

Analog zur Definition bei herk¨ommlichen Fl¨ussen, sei der Wert der Zirkulation ¨uber einen Schnitt (Q, S)definiert als

f(Q, S) = X

(u,v)∈E uQ,vS

f(u, v)− X

(v,u)∈E vS,uQ

f(v, u) .

Der Wert der Zirkulation ist ebenfalls analog definiert als w(f) = f(q, V \ {q}). Aufgrund der Flusserhaltung an der Quelle gilt w(f) = 0. Per Induktion folgt: F¨ur jeden Schnitt (Q, S)gilt f(Q, S) =w(f) = 0.

Eine Zirkulation, die nur entlang eines einfachen Kreises im Restnetzwerk fließt, wird als Kreisfluss bezeichnet. F¨ur einen Kreis K in Gf, sei f(K) der gr¨oßtm¨ogliche Kreisfluss auf K, der die Restkapazit¨aten nicht ¨uberschreitet. Wir sagen ein Kreis K hat negative Kosten, wenn gilt P

eK ℓ(e) < 0.

Cycle-Canceling-Algorithmus:

1 Berechne einen beliebigen Fluss f mit WertW; 2 SolangeGf einen Kreis K mit neg. Kosten enth¨alt 3 setzef := f +f(K);

4 Ausgabe von f.

Da f(K)eine Zirkulation ist, erh¨oht sich durch die Addition von f(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)·P

eKℓ(e) < 0, wobeiaeine beliebige Kante ausK bezeichnet.

(15)

Lemma 12 Wenn f nicht kostenminimal ist, dann gibt es einen Kreis K mit negativen Kosten inGf.

Beweis:

Ubungsaufgabe:¨ Zeige, dass jede Zirkulation f, die M viele Kanten benutzt, in h¨ochstens M viele Kreisfl¨usse zerlegt werden kann, d.h. f besteht aus der Addition von h¨ochstens M Kreisfl¨ussen.

Sei f ein Fluss, der nicht kostenminimal ist, und sei f ein kostenminimimaler Fluss, d.h. ℓ(f) < ℓ(f). Der Fluss f−f erf¨ullt die Flusserhaltung auf allen Knoten, ist also eine Zirkulation auf den maximal 2m Kanten des Restnetzwerkes Gf und kann somit in M ≤ 2m viele Kreisfl¨ussef1, . . . , fM zerlegt werden. Es gilt f − f = f1 +· · · +fM und somit ℓ(f)−ℓ(f) = ℓ(f1) +· · ·+ℓ(fM). Aus ℓ(f)−ℓ(f) < 0 folgt nun

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

Wenn nun keiner der diesen M Kreisfl¨ussen zugrunde liegen- den Kreise negative Kosten h¨atte, so w¨are aber ℓ(f1) +· · ·+ ℓ(fM) ≥ 0. Also gibt es mindestens einen Kreis in Gf mit

negativen Kosten. ⊓⊔

Aus dem Lemma und den vorhergehenden ¨Uberlegungen folgt

Satz 13 Ein Flussf ist kostenminimal genau dann, wennGf

keinen Kreis mit negativen Kosten enth¨alt.

Damit ist die Korrektheit des Cycle-Canceling-Algorithmus nachgewiesen. Die Laufzeit des Cycle-Canceling-Algorithmus l¨asst sich im Allgemeinen wieder nur pseudopolynomiell in C, der Summe der Kapazit¨aten, beschr¨anken.

Wie schon bei der Ford-Fulkerson-Methode kann man aber eine polynomielle Laufzeitschranke erhalten, wenn man die aufzuaddierenden Fl¨usse – in diesem Fall die Kreise mit negativen Kosten – geschickt w¨ahlt.

(16)

Der Min-Mean-Cycle-Canceling-Algorithmus

Der Min-Mean-Cycle-Canceling-Algorithmus w¨ahlt in jeder Iteration einen Kreis K aus Gf, der die durchschnittlichen Kantenkosten (mean cost)

ℓ(K¯ ) = ℓ(K)

|K| = P

eK ℓ(e)

|K|

minimiert.

K wird als Min-Mean-Cycle bezeichnet. Sei µ(f) = −ℓ(K¯ ).

Beachte, wenn K ein Kreis mit negativen Kosten ist, so ist ℓ(K)¯ negativ und somit µ(f)positiv.

F¨ur die Laufzeitanalyse zerlegen wir die Folge der Iterationen des Algorithmus in Phasen. Sei f der Fluss zu Beginn einer Phase. Die Phase endet nach der ersten Iteration in der ein Fluss g mit µ(g) ≤ (1 − n1)µ(f) oder µ(g) ≤ 0 berechnet wird. Im letzteren Fall enth¨alt Gg keinen Kreis mit negativen Kosten und die Berechnung terminiert. Ansonsten folgt die n¨achste Phase.

Anzahl der Phasen:

SeiT die Anzahl der Phasen. Seiµ0 der Wert vonµzu Beginn der ersten Phase und, f¨ur1 ≤ t ≤ T, sei µt der Wert von µ zu Ende der t-ten Phase.

F¨ur 1 ≤ t ≤ T −1folgt aus der Definition der Phasen µt

1− 1 n

µt1 ≤ µt1

e1/n . (1) Die letzte Absch¨atzung erfolgt dabei aus der allgemeing¨ulti- gen Ungleichung1−x ≤ ex mit x = n1.

Zu Beginn des Algorithmus ist µ durch den maximalen Absolutbetrag aller Kantenkosten, das wir mitL bezeichnen, nach oben beschr¨ankt. Es gilt somit µ0 ≤ L. (2)

Der Algorithmus terminiert, wenn zum Ende einer Phase die Bedingung µ ≤ 0 erf¨ullt ist. Am Ende von Phase T −1 gilt somit noch µ > 0. Aufgrund der Ganzzahligkeit der Kosten kann µ nicht im Interval (0, n1) liegen. (Warum?) Am Ende von PhaseT −1gilt somit µ ≥ n1, d.h.µT1n1. (3) Aus den Ungleichungen (1), (2)und (3)folgt

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

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

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

(17)

Anzahl der Iterationen je Phase:

Sei f der initiale Fluss zu Beginn einer Phase. Wir zeigen, dass der Algorithmus nach m Iterationen terminiert oder nach sp¨atestens m − 1 Iterationen wird ein Fluss g mit µ(g) ≤ (1 − n1)µ(f) berechnet. Eine Phase dauert somit h¨ochstens m Iterationen. Wir treffen zun¨achst die folgende vereinfachende Annahme.

Annahme 14 F¨ur alle Kanten e ∈ Gf gelteℓ(e) ≥ −µ(f).

Wir unterscheiden Iterationen vom Typ 1 in denen der Min- Mean-Cycle jeweils nur Kanten mit negativen Kosten enth¨alt und Iterationen vom Typ 2 in denen der Min-Mean-Cycle mindestens eine Kante mit positiven Kosten enth¨alt.

In jeder Typ-1-Iteration wird mindestens eine Kante mit ne- gativen Kosten saturiert und aus dem Restnetzwerk entfernt.

Ferner verlaufen alle m¨oglicherweise neu entstehenden Kan- ten entgegengesetzt zu den Kanten mit negativen Kosten und haben somit selbst positive Kosten. Sp¨atestens nach m konse- kutiven Typ-1-Iterationen terminiert der Algorithmus somit, weil das Restnetzwerk dann nur noch Kreise mit positiven Kosten enth¨alt.

Wenn die Phase l¨anger als m Iterationen dauert, folgt nach sp¨atestensm−1Typ-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 hinzugef¨ugt haben, gilt weiterhin unsere Annahme, d.h.

ℓ(e)≥ −µ(f)bzw. −ℓ(e) ≤ µ(f)f¨ur alle Kantene ∈Gg. Sei K der Min-Mean-Cycle in g und H ⊆ K die Menge der Kanten mit negativen Kosten ausK. Es gilt

µ(g) = X

eK

−ℓ(e)

|K| ≤ X

eH

−ℓ(e)

|K| ≤ |H| · µ(f)

|K| , weibei die letzte Absch¨atzung aus Annahme 14 folgt. Aus

|H| ≤ |K| − 1 folgt nun |H|/|K| ≤ 1−1/|K| ≤ 1 −1/n und somitµ(g) ≤ (1− n1)µ(f).

Die Phase endet also sobald der Fluss g berechnet ist und damit noch vor der ersten Typ-2-Iteration!

Wenn Annahme 14 zu Beginn einer Phase h¨alt, so gibt es also keine Typ-2-Iterationen in der Phase und die Phase endet nach sp¨atestensm vielen Typ-1-Iterationen.

(18)

Annahme 14 sieht sehr restriktiv aus, insbesondere vor dem Hintergrund der vorhergehenden Analyse. Wir zeigen aber nun, dass wir diese Annahme erreichen k¨onnen, indem wir die Kostenfunktion ℓ auf geeignete Art und Weise ver¨andern, ohne dabei den Ablauf des Algorithmus zu beeinflussen.

Sei p : V → Z eine beliebige Funktion, die jedem Knoten einen Wert zuweist, ein sogenanntes Potential. Wir setzen ℓ(e) = ℓ(e) − p(v) + p(u) f¨ur jede Kante e = (u, v).

Beachte, f¨ur e¯= (v, u)gilt

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

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

Wir beobachten, dass die Potentiale die Kostensumme auf Kreisen nicht beeinflussen, da jeder Potentialwert einmal mit positivem und einmal mit negativem Vorzeichen aufsummiert wird, d.h. f¨ur jeden Kreis K gilt ℓ(K) =ℓ(K).

Die Potentiale haben somit keine Auswirkungen auf den Ab- lauf des Algorithmus. Um Annahme 14 in der vorhergenden Analyse zu erreichen, k¨onnen wir also beliebige Potentiale verwenden, um die Kostenfunktion zu Beginn einer Phase geeignet zu manipulieren.

Das folgende Lemma besagt, dass es tats¨achlich Potentiale gibt, die es erlauben, Annahme 14 zu erreichen.

Lemma 15 Im Restnetzwerk Gf = (V, Ef) gelte ℓ(K)¯ ≥

−µf¨ur jeden Kreis K. Dann gibt es eine Funktionp : V → Z mit der Eigenschaftℓ(e) = ℓ(e)−p(v) +p(u)≥ −µf¨ur jede Kante e ∈ Ef.

Beweis:

F¨ur jede Kante e ∈ Ef definiere ein Kantengewicht w(e) = ℓ(e) +µ. F¨ur jeden Knoten v ∈ V definiere nunp(v) als die L¨ange (= Gewicht) eines k¨urzesten Kantenzuges (d.h. Pfades mit beliebigen Wiederholungen von Knoten und Kanten) in Gf, der von einem beliebigen Knoten zum Knoten v in Gf f¨uhrt. Dieser Wert ist wohldefiniert, weil keine Kreise mit negativem Gewicht in Gf existieren, denn aus ℓ(K¯ ) ≥ −µ folgt w(K) ≥ 0 f¨ur jeden Kreis K.

Die Definition der Potentiale garantiert uns die folgende Eigenschaft: F¨ur jede Kante e = (u, v) gilt p(v) ≤ p(u) + w(u, v), denn der k¨urzeste Weg, der in v endet, kann nicht l¨anger als der k¨urzeste Weg sein, der zu uf¨uhrt und ¨uber die Kante (u, v)fortgesetzt wird. Es folgt

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

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

(19)

Laufzeit pro Iteration:

Wir zeigen nun wie man einen Min-Mean-Cycle im Restnetz- werk in Zeit O(nm)berechnen kann (Karp, 1978).

F¨ur k = 0,1, . . . , nundv ∈V sei dk(v)die L¨ange (=Kosten) eines k¨urzesten Kantenzuges mit genau k Kanten, der bei v endet. Es gilt d0(v) = 0und

dk+1(v) = min

e=(u,v)E(dk(u) + ℓ(e)) .

Alle dk(v)-Werte k¨onnen somit durch dynamische Program- mieren in Zeit O(nm)berechnet werden.

Lemma 16 Der Wert ℓ(K)¯ des Min-Mean-Cycles inG ist α = min

vV n1

maxj=0

dn(v)−dj(v) n−j

Beweis von Lemma 16

Sei K ein Min-Mean-Cycle. Wenn wir alle Kantenkosten um den gleichen additiven Betrag ∆ erh¨ohen, so ist K un- ver¨andert ein Min-Mean-Cycle aber sein Wert w¨urde sich um

∆ erh¨ohen. Beachte, dass auch α sich genau um ∆ erh¨ohen w¨urde. (Warum?) Deshalb k¨onnen wir die Kantenkosten um einen beliebigen additiven Betrag ∆ verschieben und so- mit o.B.d.A. annehmen, dass ℓ(K) = 0¯ gilt. Unter dieser Annahme m¨ussen wir zeigen, es gilt auch α = 0.

Betrachte dazu einen beliebigen Knoten v. Sei P ein Kanten- zug aus n Kanten, der bei v endet und die L¨ange dn(v) hat.

Weil das Netzwerk nurn Knoten enth¨alt, mussP einen Kreis enthalten. SeiC dieser Kreis undP der Kantenzug, den wir enthalten, wenn wir C aus P entfernen. Sei j 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 f¨ur jeden Knoten v ein j ∈ {1, . . . , n−1} mit der Eigenschaft dn(v) ≥ dj(v). Hieraus folgt α ≥ 0.

(20)

Wir m¨ussen nun also nur noch zeigen, dass auch α ≤ 0 gilt.

Dazu werden wir zeigen, dass es einen Knoten w mit der Eigenschaft dn(w) ≤ dj(w)f¨ur allej ∈ {0, . . . , n−1}gibt.

Zu diesem Zweck betrachte die folgende Situation:

• Seiv ein Knoten des Min-Mean-CycleK.

• Sei P ein k¨urzester unter allen Kantenz¨ugen beliebiger L¨ange, die am Knotenvenden. O.B.d.A. enth¨altP keinen Kreis, da es keine Kreise negativer L¨ange gibt. Seip < n die Anzahl Kanten inP.

• Sei w derjenige Knoten, den wir erreichen, wenn wir K vonvausgehend entlang vonn−pKanten folgen. Diesen Kantenzug bezeichnen wir mitQ.

• Sei R der Weg von w zu v entlang von K, und sei r die Anzahl Kanten dieses Weges.

• Sei nun j ∈ {0, . . . , n − 1} beliebig gew¨ahlt und S ein Kantenzug minimaler L¨ange aus j Kanten, der am Knoten wendet.

Tafelbild:

Aus der Definition der Kantenz¨uge 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 Kantenzug Q ◦ R die L¨ange 0, da er K (m¨oglicherweise mehrfach) uml¨auft undℓ(K) = 0gilt.

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

(21)

Der Algorihmus zur Bestimmung des Min-Mean-Cycles arbeitet nun folgendermaßen:

• Berechne die dk(v)-Werte und bestimme α, also den Wert des Min-Mean-Cycles.

• Erh¨ohe 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 ben¨otigten 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 gr¨oßer als 0 aus dem Graphen und suche den Min-Mean-Cycle mittels Tiefen- suche unter den verbleibenden Kanten.

Gesamtlaufzeit:

Der Algorithmus ben¨otigt h¨ochstens nlog(nL) + 1 Phasen, die jeweils h¨ochstens m Iterationen ben¨otigen, die jeweils LaufzeitO(mn)haben.Lbezeichnet dabei das Maximum der Absolutwerte der Kantenkosten. Es folgt

Satz 17 Der Mean-Cycle-Canceling-Algorithmus hat eine Laufzeit vonO(m2n2log(nL)).

Diese Absch¨atzung der Laufzeit ist zwar polynomiell in der Eingabel¨ange beschr¨ankt, aber man spricht von einer schwach polynomiellen Schranke, da die Gr¨oße der Eingabezahlen, wenngleich nur logarithmisch, in die Absch¨atzung eingeht.

Tats¨achlich l¨asst sich auch eine stark polynomielle Laufzeit- schranke herleiten.

Satz 18 Der Mean-Cycle-Canceling-Algorithmus hat eine Laufzeit vonO(m3n2logn).

Auf die Pr¨asentation des Beweises dieses Satzes verzichten wir an dieser Stelle.

Referenzen

ÄHNLICHE DOKUMENTE

Aus der Vorlesung ist bekannt, dass Ford-Fulkerson bei rationalen Kapazitäten in Laufzeit O(m|f ∗ |) terminiert, wobei |f ∗ | der Wert eines maximalen Flusses f ∗ ist.. Beweisen

Die Menge aller Elemente wird in drei Teilmengen partitioniert: U enth¨ alt die Kandidaten f¨ ur den Median, G enth¨ alt Elemente, die sicher gr¨ oßer als der Median sind, und L

Bei einer Multipliktion wird das wahre Er- gebnis wenig verf¨alscht, wenn man den einen Faktor etwas aufrundet und den anderen zum Ausgleich etwas abrundet.. Dagegen bei der

Dann ist γ genau dann eine untere Schranke von M, wenn −γ obere Schranke von −M ist.. Um die noch fehlenden zwei Nullstellen von p zu bestimmen, f¨ uhren wir

Rundtour, und ihre Kosten sind nicht größer als die Kosten der Tour, die zweimal den minimalen Spannbaum abläuft. Fazit: Wir haben einen Näherungsalgorithmus mit Güte

Vergleichsbasierte Sortierverfahren benötigen im schlechtesten Fall und im Mittel mindestens Ω(n log n) Schlüsselvergleiche..

Zitiere den Fortsetzungssatz von Hahn-Banach aus der Literatur oder aus der Vorlesung Funktionalanalysis und zeige damit folgenden Satz: Sei C ein echter Kegel im reellen Vektorraum

Beweise, daß die Menge aller Begriffe eines endlichen Kontextes (ein Kon- text mit endlicher Merkmal- und Gegenstandsmenge) geordnet bez¨uglich der Begriffsordnung einen