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.