2.3 Algorithmus von Ford und Fulkerson und Algorithmus von

Werbung
2.3 Algorithmus von Ford und Fulkerson
und Algorithmus von Edmonds und Karp
28. November 2016
Algorithmus Ford-Fulkerson(D
1
2
3
4
5
6
7
8
9
10
= (V , E ), s, t, (cij ), (`ij ))
gegeben: zulässiger Ausgangsuss f ;
markiere alle Knoten j zu denen es einen
usserhöhenden Weg von s nach j gibt;
if t ist markiert then
wähle usserhöhenden s, t Weg W ;
bestimme δ bezüglich W ;
setze f = f + δx W ;
gehe zu 2;
fi
gebe f aus.
Bemerkung:
Für beliebige nicht ganzzahlige Kapazitäten hält der Algorithmus
im allgemeinen nicht an.
Lemma 2.3.1:
Die Laufzeit der Algorithmus bei ganzzahliger Eingabe ist
O(vmax |E |), wobei vmax der maximale Flusswert ist.
Beweis:
Beispiel 2.3.2:
Edmonds-Karp Algorithmus:
Wähle im Algorithmus von Ford-Fulkerson einen usserhöhenden
Weg mit einer minimalen Anzahl von Kanten.
Satz 2.3.3:
Der Edmonds-Karp Algorithmus benötigt maximal 2|E | d|V |/4e
usserhhöhende Wege; ermittelt also einen maximalen Fluss in
O(|E |2 |V |) Zeit.
Beweis:
hier für den Fall `ij = 0.
Denition 2.3.4: (Residualgraph)
Aus dem Digraph D entsteht D ↔ durch Hinzufügen aller Kanten in
umgekehrter Richtung (parallele Kanten sind möglich).
Die ursprüngliche Kante e ∈ E (D) heiÿt Vorwärtskante (VK) und
die hinzugefügte e − heiÿt Rückwärtskante (RK).
Die Residualkapazität bezüglich Kapazitäten u und Fluss f ist eine
Kantenbewertung uf auf E (D ↔ ) mit uf (e) = ue − fe und
uf (e − ) = fe .
Der Residualgraph Df von D ↔ ist gegeben durch V (Df ) = V (D)
und E (Df ) = {e ∈ E (D ↔ )|uf (e) > 0}.
Beweisidee zur Laufzeit:
Eine Engpasskante in einem usserhöhenden Weg ist eine Kante e
mit kleinster Residualkapazität; d.h. δ = uf (e).
eine Kante e ∈ E (D ↔ ) kann höchstens d|V |/4e mal als
Engpasskante auftreten.
Beh. A:
Aus Beh. A folgt: wir haben maximal
|E (D ↔ )|d|V |/4e = 2|E | d|V |/4e usserhöhende Wege.
Die Suche nach einem usserhöhenden Weg geht mit BFS in
O(|E |) Zeit (vorausgesetzt D ist zh). Daraus folgt dann die
Laufzeitschranke O(|V ||E |2 ).
Der Beweis der
Lemma:
Beh. A
ist nicht trivial und basiert auf folgendem
Lemma 2.3.5:
Gegeben sei eine Folge f1 , f2 , . . . von Flüssen in D , Gfk sei der zu fk
gehörige Residualgraph, Wk sei der kürzeste s − t Weg (bezüglich
Kantenzahl) in Gfk und fk+1 entstehe aus fk durch Augmentierung
entlang Weg Wk . Dann gilt:
(a) die Länge der Wege steigt schwach monoton; d.h.
|E (Wk )| ≤ |E (Wk+1 )| und
(b) |E (Wk )| + 2 ≤ |E (Wr )| für alle k < r , falls Wk ∪ Wr ein Paar
entgegengesetzter Kanten e, e − enthält.
Beweis:
Beweis der Beh. A:
Betrachte eine Kante e und die Folge Wi1 , Wi2 , . . . der Wege im
Algorithmus, die e als Engpasskante enthalten. Studiere nun zwei
aufeinanderfolgende Wege Wij und Wij+1 .
0
Dann folgt, dass die umgekehrte Kante e zu e in Gij +1 enthalten
ist, e aber nicht.
Da e ∈ Wij+1 , existiert ein usserhöhender Weg Wk mit
0
ij < k < ij+1 , der e enthält, so dass e in Gfij+1 wieder auftritt.
Fortsetzung zum Beweis:
Aus Lemma 2.3.5 (b) folgt:
|E (Wij )| + 4 ≤ |E (Wk )| + 2 ≤ |E (Wij+1 )| da Wij und Wij+1 die
0
Kante e und Wk die entgegengesetzte Kante e enthalten.
Da die Wege elementar sind (d.h. ohne Knotenwiederholungen),
gilt |E (Wij )| + 4 ≤ |E (Wij+1 )| ≤ |V | − 1.
Daraus folgt, dass die Folge höchstens d|V |/4e viele Pfade hat, die
die Kante e als Engpasskante enthält.
Herunterladen