Kombinatorische Optimierung



Ähnliche Dokumente
Kombinatorische Optimierung

Algorithmentheorie Maximale Flüsse

Algorithmen II Vorlesung am

Das Briefträgerproblem

8 Diskrete Optimierung

Algorithmische Mathematik

Algorithmische Methoden für schwere Optimierungsprobleme

1 topologisches Sortieren

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse Lösung 10 Punkte

Anmerkungen zur Übergangsprüfung

Guten Morgen und Willkommen zur Saalübung!

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel

Die Komplexitätsklassen P und NP

Lange Nacht der Wissenschaft. Ein Klassiker. Die Mathematik der Kürzesten Wege

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Einführung in die Algebra

Grundlagen der Theoretischen Informatik, SoSe 2008

Professionelle Seminare im Bereich MS-Office

Abschlussprüfung Realschule Bayern II / III: 2009 Haupttermin B 1.0 B 1.1

Information Systems Engineering Seminar

Konzepte der Informatik

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

PROSEMINAR ONLINE ALGORITHMEN

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

Algorithmen und Datenstrukturen. Große Übung vom Nils Schweer

Algorithmen & Datenstrukturen 1. Klausur

Komplexe Netzwerke Robustheit

Lineare Funktionen. 1 Proportionale Funktionen Definition Eigenschaften Steigungsdreieck 3

Informationsblatt Induktionsbeweis

Musterlösungen zur Linearen Algebra II Blatt 5

Rente = laufende Zahlungen, die in regelmäßigen Zeitabschnitten (periodisch) wiederkehren Rentenperiode = Zeitabstand zwischen zwei Rentenzahlungen

Übung Theoretische Grundlagen

Hauptprüfung Abiturprüfung 2015 (ohne CAS) Baden-Württemberg

1 Mathematische Grundlagen

Abituraufgabe zur Stochastik, Hessen 2009, Grundkurs (TR)

Definition und Begriffe

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Korrelation (II) Korrelation und Kausalität

WS 2009/10. Diskrete Strukturen

Effiziente Algorithmen und Datenstrukturen I. Kapitel 9: Minimale Spannbäume

OECD Programme for International Student Assessment PISA Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

Tutorium zur Mikroökonomie II WS 02/03 Universität Mannheim Tri Vi Dang. Aufgabenblatt 3 (KW 44) ( )

Statuten in leichter Sprache

Media Teil III. Begriffe, Definitionen, Übungen

Erstellen von x-y-diagrammen in OpenOffice.calc

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

Teil III: Routing - Inhalt I. Literatur. Geometric Routing. Voraussetzungen. Unit Disk Graph (UDG) Geometric Routing 29

Grundlagen der Künstlichen Intelligenz

Verkehrsstauspiel: Wieviel Prozent der Autos fahren über blau/grün? Jörg Rambau

WS 2013/14. Diskrete Strukturen

7 Rechnen mit Polynomen

Wir machen neue Politik für Baden-Württemberg

Behörde für Bildung und Sport Abitur 2008 Lehrermaterialien zum Leistungskurs Mathematik

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume?

Hilfedatei der Oden$-Börse Stand Juni 2014

Übungsaufgaben Tilgungsrechnung

Graphenalgorithmen und lineare Algebra Hand in Hand Vorlesung für den Bereich Diplom/Master Informatik

Zwischenablage (Bilder, Texte,...)

Algorithmen und Datenstrukturen 2

22. Algorithmus der Woche Partnerschaftsvermittlung Drum prüfe, wer sich ewig bindet

Südbaden-Cup. Ausstieg Champions

Kosten-Leistungsrechnung Rechenweg Optimales Produktionsprogramm

1. Wie viel Zinsen bekommt man, wenn man 7000,00 1 Jahr lang mit 6 % anlegt?

Maximaler Fluß und minimaler Schnitt. Von Sebastian Thurm

Grundlagen der höheren Mathematik Einige Hinweise zum Lösen von Gleichungen

Seminar Analyse von Petrinetz-Modellen

Physik 4, Übung 11, Prof. Förster

WinWerk. Prozess 6a Rabatt gemäss Vorjahresverbrauch. KMU Ratgeber AG. Inhaltsverzeichnis. Im Ifang Effretikon

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

HIER GEHT ES UM IHR GUTES GELD ZINSRECHNUNG IM UNTERNEHMEN

1 Einleitung. Lernziele. automatische Antworten bei Abwesenheit senden. Einstellungen für automatische Antworten Lerndauer. 4 Minuten.

Primzahlen und RSA-Verschlüsselung

Aber zuerst: Was versteht man unter Stromverbrauch im Standby-Modus (Leerlaufverlust)?

Gliederung. Definition Wichtige Aussagen und Sätze Algorithmen zum Finden von Starken Zusammenhangskomponenten

CTI SYSTEMS S.A. CTI SYSTEMS S.A. 12, op der Sang. Fax: +352/ L Lentzweiler. G.D.

Die Größe von Flächen vergleichen

Suche in Spielbäumen Spielbäume Minimax Algorithmus Alpha-Beta Suche. Suche in Spielbäumen. KI SS2011: Suche in Spielbäumen 1/20

WS 2008/09. Diskrete Strukturen

Mikroökonomik 9. Vorlesungswoche

AutoCAD Dienstprogramm zur Lizenzübertragung

Anleitung über den Umgang mit Schildern

Beispiel(unten ist der Spielfeldrand):

Transaktionsempfehlungen im ebase Online nutzen

Formale Systeme, WS 2012/2013 Lösungen zu Übungsblatt 4

Mathematischer Vorbereitungskurs für Ökonomen

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Bundesverband Flachglas Großhandel Isolierglasherstellung Veredlung e.v. U g -Werte-Tabellen nach DIN EN 673. Flachglasbranche.

QTrade GmbH Landshuter Allee München Seite 1

Software Engineering. Sommersemester 2012, Dr. Andreas Metzger

Künstliche Intelligenz Maschinelles Lernen

Bestimmung einer ersten

Kurzanleitung fu r Clubbeauftragte zur Pflege der Mitgliederdaten im Mitgliederbereich

Aufgabensammlung Bruchrechnen

Zahlenwinkel: Forscherkarte 1. alleine. Zahlenwinkel: Forschertipp 1

6.2 Scan-Konvertierung (Scan Conversion)

Daten sammeln, darstellen, auswerten

Angebot. UVV-Prüfungen und Wartungen von mobilen Abfallpressen

Dokumentation zur Versendung der Statistik Daten

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1

Transkript:

Juniorprof. Dr. Henning Meyerhenke 1 Henning Meyerhenke: KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu

Vorlesungen 5 und 6 Programm des Tages: Flüsse in Netzwerken Grundlegende Maximaler-Fluss-Algorithmen Maximale Flüsse und minimale Schnitte Generischer Push-Relabel-Algorithmus 2 Henning Meyerhenke:

Inhalt Flüsse in Netzwerken Elementare Ergebnisse Der PUSH-RELABEL-Algorithmus 3 Henning Meyerhenke:

Szenario 3 Sie verwalten (und gestalten) das Stromnetz einer großen Firma. Die Firma produziert den Strom selbst an einer (Strom)Quelle. Der Strom wird an einem Ort auf dem Firmengelände konsumiert (Senke). Der Strom muss aus technischen Gründen über eine Zahl von Zwischenstationen geroutet werden. Jede Stromleitung zwischen Quelle und Konsument hat eine gewisse Kapazität. Fragen: Bei gegebenem Netz: Wieviel Strom kann von der Quelle bis zur Senke fließen? Wie modellieren Sie diese Fragestellung? 4 Henning Meyerhenke:

Flussnetzwerk Definition (Flussnetzwerk) Ein Flussnetzwerk ist ein Quadrupel (G, u, s, t) mit einem Digraphen G = (V, E), Kantenkapazitäten u : E R +, einer Quelle s V und einer Senke t V. 5 Henning Meyerhenke:

Fluss Definition (Fluss, Überschuss) Gegeben sei ein Flussnetzwerk (G, u, s, t). Ein Fluss ist eine Funktion f : E(G) R + mit f (e) u(e) für alle e E(G). Der Überschuss (engl.: excess) eines Flusses f in v V (G) ist ex f (v) := e N (v) f (e) e N + (v) f (e) N + : Nachbarn an ausgehenden Kanten N : Nachbarn an reinkommenden Kanten 6 Henning Meyerhenke:

s-t-fluss Definition (s-t-fluss, Wert) Gegeben sei ein Flussnetzwerk (G, u, s, t). Ein s-t-fluss ist ein Fluss f mit ex f (s) 0 und ex f (v) = 0 für alle v V (G)\{s, t} (Flusserhaltung). Der Wert eines s-t-flusses ist value(f ) := f := ex f (s) 7 Henning Meyerhenke:

Modellierung der Problemstellung Problem (Maximaler-Fluss-Problem) Gegeben sei ein Flussnetzwerk (G, u, s, t). Bestimme einen s-t-fluss mit maximalem Wert. Idee für Algorithmus? 8 Henning Meyerhenke:

Gegenläufige Kanten Definition (Gegenläufige Kante) Sei G ein Digraph und e = (v, w) E(G). Dann sei e eine neue Kante von w nach v, die gegenläufige Kante von e. Ebenso ist e die gegenläufige Kante von e. Definition Sei G := (V (G), E(G) { e : e E(G)}). Achtung: Sind e = (v, w) und e = (w, v) G, dann sind e und e zwei verschiedene Kanten in G. 9 Henning Meyerhenke:

Residualnetzwerk Definition (Residualkapazitäten) Gegeben sei ein Digraph G mit Kapazitäten u : E(G) R + und ein Fluss f. Residualkapzitäten u f : E( G ) R + mit u f (e) := u(e) f (e) und u f ( e ) := f (e) Definition (Residualnetzwerk) Das Residualnetzwerk G f ist der Graph (V (G), {e E( G ) : u f (e) > 0}). 10 Henning Meyerhenke:

Finden augmentierender Pfade Definition (Augmentierender Pfad) Gegeben sei ein Netzwerk (G, u, s, t) und ein s-t-fluss f. Dann heißt ein s-t-pfad in G f f -augmentierender Pfad. Algorithmus-Idee: Finde sukzessive f -augmentierende Pfade! 11 Henning Meyerhenke:

Finden augmentierender Pfade Definition (Augmentierender Pfad) Gegeben sei ein Netzwerk (G, u, s, t) und ein s-t-fluss f. Dann heißt ein s-t-pfad in G f f -augmentierender Pfad. Algorithmus-Idee: Finde sukzessive f -augmentierende Pfade! Algorithm 2 Ford-Fulkerson-Algorithmus 1: function FORD-FULKERSON((G, u, s, t) mit u : E(G) Z + ) 2: Setze f (e) := 0 für alle e E(G) 3: Bestimme einen f -augmentierenden Pfad P 4: while P > 0 do 5: Berechne γ := min e E(P) u f (e) 6: Augmentiere f entlang P um γ 7: Bestimme einen f -augmentierenden Pfad P 8: end while 11 Henning Meyerhenke:

Verbesserung des FF-Algorithmus Edmonds-Karp-Algorithmus Problem: Laufzeit kann exponentiell zur Eingabelänge sein! Siehe Tafel. 12 Henning Meyerhenke:

Verbesserung des FF-Algorithmus Edmonds-Karp-Algorithmus Problem: Laufzeit kann exponentiell zur Eingabelänge sein! Siehe Tafel. Daher Verbesserung: Algorithm 4 Edmonds-Karp-Algorithmus 1: function EDMONDS-KARP((G, u, s, t) mit u : E(G) Z + ) 2: Setze f (e) := 0 für alle e E(G) 3: Bestimme einen kürzesten f -augmentierenden Pfad P 4: while P > 0 do 5: Berechne γ := min e E(P) u f (e) 6: Augmentiere f entlang P um γ 7: Bestimme einen kürzesten f -augmentierenden Pfad P 8: end while Anmerkung: Kürzester Pfad bedeutet mit den wenigsten Kanten! 12 Henning Meyerhenke:

Edmonds-Karp-Algorithmus Laufzeit (1) Definition (Flaschenhals-Kante) Eine Kante, auf denen das Minimum γ angenommen wird, nennt man Flaschenhals-Kante. 13 Henning Meyerhenke:

Edmonds-Karp-Algorithmus Laufzeit (1) Definition (Flaschenhals-Kante) Eine Kante, auf denen das Minimum γ angenommen wird, nennt man Flaschenhals-Kante. Theorem (Edmonds und Karp, 1972) Unabhängig von den Kantenkapzitäten terminiert der EDMONDS-KARP-ALGORITHMUS nach höchstens mn 2 Augmentierungen. Beweis. In jedem augmentierenden Pfad ist mind. eine Flaschenhals-Kante von G. Eine Flaschenhals-Kante ist in n 4 augmentierenden Pfaden enthalten (ob). Es kann höchstens E( G ) n 4 augmentierende Pfade geben. Für die Details siehe Korte und Vygen, S. 195-196. 13 Henning Meyerhenke:

Edmonds-Karp-Algorithmus Laufzeit (2) Corollary Der EDMONDS-KARP-ALGORITHMUS löst das MAXIMALER-FLUSS-PROBLEM in der Laufzeit O(m 2 n). Beweis. Nach Theorem 11 gibt es höchstens mn 2 Augmentierungen. Jede Augmentierung benutzt BFS und benötigt somit eine Laufzeit von O(m). 14 Henning Meyerhenke:

Schnitte im Flussnetzwerk Definition (Schnitt) Ein Schnitt ist eine Aufteilung der Knoten in zwei disjunkte Teilmengen S und T. Dabei gilt s S und t T. Die Kapazität eines Schnittes (S, T ) ist die Summe aller Kantenkapazitäten von S nach T, also u(s, T ) := u(v, w). v S,w T,(v,w) E Lemma Sei (G, u, s, t) ein Flussnetzwerk und sei f ein Fluss in G. Sei außerdem (S, T ) ein Schnitt in G. Dann gilt: f (S, T ) = f, insbesondere f = f (s, V s) = f (V t, t). 15 Henning Meyerhenke:

Max-Flow-Min-Cut-Theorem Theorem Die folgenden drei Aussagen sind äquivalent: f ist der maximale Fluss in G. Das Residualnetzwerk enthält keinen augmentierenden Pfad. Für mindestens einen Schnitt ist der Wert des Flusses gleich der Kapazität des Schnittes. Beweis. Siehe Tafel. 16 Henning Meyerhenke:

Hilfsergebnisse Proposition Das Maximaler-Fluss-Problem hat stets eine optimale Lösung. 17 Henning Meyerhenke:

Hilfsergebnisse Proposition Das Maximaler-Fluss-Problem hat stets eine optimale Lösung. Proposition Sind die Kapazitäten eines Netzwerkes ganzzahlig, so gibt es einen ganzzahligen maximalen Fluss. Beweis. Folgt direkt aus Max-Flow-Min-Cut. 17 Henning Meyerhenke:

Inhalt Flüsse in Netzwerken Elementare Ergebnisse Der PUSH-RELABEL-Algorithmus 18 Henning Meyerhenke:

Vorschau Wir werden den PUSH-RELABEL-Algorithmus von Goldberg und Tarjan (1988) beschreiben. Andere Namen existieren... Wir werden eine Laufzeit von O(n 2 m) beweisen. Ausgeklügelte Implementierungen mit dynamischen Bäumen sind noch schneller (siehe Korte und Vygen, S. 201). 19 Henning Meyerhenke:

Ansatz Wissen: Ein s-t-fluss f hat genau dann maximalen Wert, wenn ex f (v) = 0 für alle v V (G) {s, t} und es keinen f -augmentierenden Pfad gibt. Bisher: Algorithmen erfüllten stets erste Bedingung. 20 Henning Meyerhenke:

Ansatz Wissen: Ein s-t-fluss f hat genau dann maximalen Wert, wenn ex f (v) = 0 für alle v V (G) {s, t} und es keinen f -augmentierenden Pfad gibt. Bisher: Algorithmen erfüllten stets erste Bedingung. Nun: Mit f starten, das zweite Bedingung erfüllt. Zweite Bedingung als Invariante für weitere Flüsse. Terminierung nur, wenn erste Bedingung auch erfüllt. Während des Algorithmus ist f kein s-t-fluss, sondern ein s-t-präfluss. 20 Henning Meyerhenke:

Intuitive Algorithmus-Idee Ein Flussnetzwerk transportiert Flüssigkeiten; Kanten stellen Röhren dar, Knoten deren Verbindungen. Jeder Knoten hat ein unbegrenztes Reservoir als Zwischenspeicher. Jeder Knoten, sein Reservoir und seine Verbindungen sind auf einer Plattform, deren Höhe während Laufzeit zunimmt Knotenhöhen bestimmen, wie Fluss durch das Netzwerk bewegt wird: abwärts. 21 Henning Meyerhenke:

Intuitive Algorithmus-Idee Ein Flussnetzwerk transportiert Flüssigkeiten; Kanten stellen Röhren dar, Knoten deren Verbindungen. Jeder Knoten hat ein unbegrenztes Reservoir als Zwischenspeicher. Jeder Knoten, sein Reservoir und seine Verbindungen sind auf einer Plattform, deren Höhe während Laufzeit zunimmt Knotenhöhen bestimmen, wie Fluss durch das Netzwerk bewegt wird: abwärts. Initial sendet s so viel Fluss wie möglich (= u(s, V s)). Erreicht Fluss einen Zwischenknoten, wird er zunächst im Reservoir zwischengespeichert. Von dort wird er später abwärts geschickt. Wenn alle unsaturierten Rohre, die einen Knoten v verlassen, zu Knoten w führen, die höher als v liegen, wird v angehoben. Hat der maximale Fluss die Senke erreicht, wird der Überschuss zur Quelle zurückgeschickt (Zwischenknoten über Quelle heben). 21 Henning Meyerhenke:

Präfluss Definition (Präfluss, aktiver Knoten) Sei (G, u, s, t) ein Netzwerk. Ein s-t-präfluss ist eine Funktion f : E(G) R + mit f (e) u(e) für alle e E(G) und (Kapazitätsbedingung) f (u, v) = f (v, u) für alle u, v V (Antisymmetrie) ex f (v) 0 für alle v V (G) {s}. (relaxierte Flusserhaltung) 22 Henning Meyerhenke:

Präfluss Definition (Präfluss, aktiver Knoten) Sei (G, u, s, t) ein Netzwerk. Ein s-t-präfluss ist eine Funktion f : E(G) R + mit f (e) u(e) für alle e E(G) und (Kapazitätsbedingung) f (u, v) = f (v, u) für alle u, v V (Antisymmetrie) ex f (v) 0 für alle v V (G) {s}. (relaxierte Flusserhaltung) Ein Knoten v V (G) {s, t} heißt aktiv, falls ex f (v) > 0. Beispiel: Siehe Tafel. 22 Henning Meyerhenke:

Distanzmarkierung Andere Intuition: Funktion der Plattformhöhen Definition (Distanzmarkierung, erlaubte Kante) Sei (G, u, s, t) ein Netzwerk und f ein s-t-präfluss. Eine Distanzmarkierung ist eine Funktion ψ : V (G) Z + mit ψ(t) = 0, ψ(s) = n := V (G) und ψ(v) ψ(w) + 1 für alle (v, w) E(G f ). Eine Kante e = (v, w) E(G) heißt erlaubte Kante, falls e E(G f ) und ψ(v) = ψ(w) + 1. 23 Henning Meyerhenke:

Distanzmarkierung Andere Intuition: Funktion der Plattformhöhen Definition (Distanzmarkierung, erlaubte Kante) Sei (G, u, s, t) ein Netzwerk und f ein s-t-präfluss. Eine Distanzmarkierung ist eine Funktion ψ : V (G) Z + mit ψ(t) = 0, ψ(s) = n := V (G) und ψ(v) ψ(w) + 1 für alle (v, w) E(G f ). Eine Kante e = (v, w) E(G) heißt erlaubte Kante, falls e E(G f ) und ψ(v) = ψ(w) + 1. Falls ψ eine Distanzmarkierung ist, so ist ψ(v) mit v = s eine untere Schranke für die Distanz zu t in G f. 23 Henning Meyerhenke:

Der PUSH-RELABEL-Algorithmus Algorithmus-Idee Initialer s-t-präfluss : Alle Kanten von s aus nutzen ihre Kapazität voll aus, alle anderen haben Fluss 0. Initiale DM: ψ(s) = n und ψ(v) = 0 für alle v V (G) {s}. 24 Henning Meyerhenke:

Der PUSH-RELABEL-Algorithmus Algorithmus-Idee Initialer s-t-präfluss : Alle Kanten von s aus nutzen ihre Kapazität voll aus, alle anderen haben Fluss 0. Initiale DM: ψ(s) = n und ψ(v) = 0 für alle v V (G) {s}. Danach Aktualisierungs-Operationen PUSH (Aktualisierung von f ) und RELABEL (Aktualisierung von ψ) in beliebiger Reihenfolge durchführen. 24 Henning Meyerhenke:

Der PUSH-RELABEL-Algorithmus Die Komponenten 1: procedure PUSH(e) 2: Setze γ := min{ex f (v), u f (e)}, wobei e in v beginnt. 3: Augmentiere f entlang e um γ. 1: procedure RELABEL(v) 2: Setze ψ(v) := min{ψ(w) + 1 : (v, w) δ + G f (v)}. 25 Henning Meyerhenke:

Der PUSH-RELABEL-Algorithmus 1: function PUSH-RELABEL(G, { u, s, t) u(e) für jedes e δ + (s) 2: Setze f (e) = 0 für jedes e E(G) δ + (s) { n v = s 3: Setze ψ(v) = 0 für alle v V (G) {s} 4: while es gibt einen aktiven Knoten do 5: Sei v ein aktiver Knoten 6: if kein e δ + G ist erlaubte Kante then f 7: RELABEL(v) 8: else 9: PUSH(erlaubte Kante e δ + G ) f 10: end if 11: end while=0 Beispiel: Siehe Tafel. 26 Henning Meyerhenke:

Der PUSH-RELABEL-Algorithmus Korrektheit (1) Proposition Während des gesamten Ablaufs von PUSH-RELABEL ist f stets ein s-t-präfluss und ψ eine Distanzmarkierung bzgl. f. Für jedes v V (G) gilt: ψ(v) wird durch jedes RELABEL(v ) streng erhöht. Beweis. Übung. 27 Henning Meyerhenke:

Der PUSH-RELABEL-Algorithmus Korrektheit (2) Lemma Sei f ein s-t-präfluss und ψ eine DM bzgl. f. Dann gelten: 1. Die Quelle s ist von jedem aktiven Knoten v aus in G f erreichbar. 2. Falls es zwei Knoten v, w V (G) mit der Eigenschaft gibt, so gilt: dass w von v aus in G f erreichbar ist, ψ(v) ψ(w) + n 1. 3. Die Senke t ist von s aus in G f nicht erreichbar. Beweis. Siehe Tafel. 28 Henning Meyerhenke:

Der PUSH-RELABEL-Algorithmus Korrektheit (3) Theorem Bei Terminierung des Algorithmus ist f ein s-t-fluss mit maximalem Wert. Beweis. Siehe Tafel. 29 Henning Meyerhenke:

Der PUSH-RELABEL-Algorithmus Laufzeit (1) Lemma 1. Für jedes v V (G) gilt: ψ(v) wird niemals verringert und ψ(v) 2n 1 gilt zu jedem Zeitpunkt des Algorithmus. 2. Für keinen Knoten v wird mehr als (2n 1) mal RELABEL(v) aufgerufen. Die Gesamterhöhung von v V (G) ψ(v) nach Ende des Algorithmus ist 2n 2 n. Beweis. Übung. 30 Henning Meyerhenke:

Der PUSH-RELABEL-Algorithmus Laufzeit (2) Definition (Saturierender Push) Ein PUSH ist saturierend genau dann, wenn danach u f (e) = 0 gilt. Lemma Die Anzahl der saturierenden Pushes ist höchstens 2mn. Beweis. Siehe Tafel. 31 Henning Meyerhenke:

Der PUSH-RELABEL-Algorithmus Laufzeit (3) Lemma Falls wir als v in Zeile 5 von PUSH-RELABEL immer einen aktiven Knoten mit ψ(v) maximal wählen, dann ist die Anzahl der nichtsaturierenden Pushes höchstens 8n 2 m. Beweis. Siehe Korte und Vygen, S. 204-205. Theorem Der PUSH-RELABEL-Algorithmus löst das MAXIMALER-FLUSS-PROBLEM korrekt und kann mit Laufzeit O(n 2 m) implementiert werden. Beweis. Siehe Tafel. 32 Henning Meyerhenke: