FIFO-Push-Relabel-Algorithmus

Transcription

FIFO-Push-Relabel-Algorithmus
Kombinatorische Optimierung
Juniorprof. Dr. Henning Meyerhenke
Institut für Theoretische Informatik – Paralleles Rechnen
1
KIT –Henning
Universität desMeyerhenke:
Landes Baden-Württemberg und
nationales
Forschungszentrum in
der Helmholtz-Gemeinschaft
Kombinatorische
Optimierung
Institut für Theoretische Informatik
www.kit.edu
Paralleles
Rechnen
Vorlesung 7
Programm:
Übungsblatt 3
FIFO Push-Relabel-Algorithmus
Varianten des Maximaler-Fluss-Problems
2
Henning Meyerhenke:
Kombinatorische Optimierung
Institut für Theoretische Informatik
Paralleles Rechnen
Inhalt
Flüsse in Netzwerken
Der FIFO-P USH -R ELABEL-Algorithmus
3
Henning Meyerhenke:
Kombinatorische Optimierung
Institut für Theoretische Informatik
Paralleles Rechnen
FIFO-Push-Relabel-Algorithmus
Motivation
Der generische P USH -R ELABEL-Algorithmus wählt einen Knoten u mit
positivem Überschuss aus und führt
ein saturierendes P USH(u , v ) oder
ein nichtsaturierendes P USH(u , v ) oder
ein R ELABEL(u)
durch.
Wenn der Algorithmus ein saturierendes P USH durchführt,
hat u mglw. noch positiven Überschuss.
Nächste Iteration betrachtet mglw. anderen Knoten...
4
Henning Meyerhenke:
Kombinatorische Optimierung
Institut für Theoretische Informatik
Paralleles Rechnen
FIFO-Push-Relabel-Algorithmus
Idee
Änderung:
Wähle denselben Knoten u immer wieder, bis er
inaktiv wird oder
R ELABEL ( U ) durchgeführt wird.
5
Henning Meyerhenke:
Kombinatorische Optimierung
Institut für Theoretische Informatik
Paralleles Rechnen
FIFO-Push-Relabel-Algorithmus
Idee
Änderung:
Wähle denselben Knoten u immer wieder, bis er
inaktiv wird oder
R ELABEL ( U ) durchgeführt wird.
Eine Folge von
saturierenden P USH-Operationen,
gefolgt von entweder
einem P USH oder
einem R ELABEL,
für denselben Knoten nennt man Knotenuntersuchung.
5
Henning Meyerhenke:
Kombinatorische Optimierung
Institut für Theoretische Informatik
Paralleles Rechnen
FIFO-Push-Relabel-Algorithmus
Durchführung
Aktive Knoten werden in FIFO-Reihenfolge untersucht
Warteschlange mit aktiven Knoten
Neue aktive Knoten werden in die Schlange eingefügt
6
Henning Meyerhenke:
Kombinatorische Optimierung
Institut für Theoretische Informatik
Paralleles Rechnen
FIFO-Push-Relabel-Algorithmus
Durchführung
Aktive Knoten werden in FIFO-Reihenfolge untersucht
Warteschlange mit aktiven Knoten
Neue aktive Knoten werden in die Schlange eingefügt
Nach der Untersuchung von u ist u nicht mehr aktiv oder es wurde
R ELABEL(u) durchgeführt
Falls R ELABEL(u), dann u in Schlange einfügen
Terminierung des Alg., wenn Schlange aktiver Knoten leer
6
Henning Meyerhenke:
Kombinatorische Optimierung
Institut für Theoretische Informatik
Paralleles Rechnen
FIFO-Push-Relabel-Algorithmus
Durchführung
Aktive Knoten werden in FIFO-Reihenfolge untersucht
Warteschlange mit aktiven Knoten
Neue aktive Knoten werden in die Schlange eingefügt
Nach der Untersuchung von u ist u nicht mehr aktiv oder es wurde
R ELABEL(u) durchgeführt
Falls R ELABEL(u), dann u in Schlange einfügen
Terminierung des Alg., wenn Schlange aktiver Knoten leer
Initiale Höhen:
(
ψ (u ) =
6
Henning Meyerhenke:
Kombinatorische Optimierung
dG ( u , t )
|V |
falls u 6= s
sonst
Institut für Theoretische Informatik
Paralleles Rechnen
FIFO-Push-Relabel-Algorithmus
Laufzeit
Initiales ψ durch Rückwärts-BFS von t aus berechnen
Initial sind alle Kanten von s aus saturiert
Theorem
Der FIFO-P USH -R ELABEL-Algorithmus
arbeitet bei Eingabe eines Flussnetzwerks (G, u , s, t ) korrekt und
hat eine Laufzeit von O(|V |3 ).
Beweis.
Korrektheit folgt aus Korrektheit des generischen Algorithmus
Laufzeit: Siehe Tafel
7
Henning Meyerhenke:
Kombinatorische Optimierung
Institut für Theoretische Informatik
Paralleles Rechnen
Variationen des
Push-Relabel-Algorithmus
Goldberg, 1985:
FIFO: O (|V |3 ).
Goldberg, Tarjan, 1986:
Improved FIFO: O (|V | · |E | · log(|V |2 ∆|E |)).
Goldberg, Tarjan, 1986; p
Cheriyan, Maheshwari 1989:
Highest Label: O (|V |2 · |E |).
Ahuja, Orlin, 1989:
Excess Scaling: O (|V | · |E | log(|V |2 · |fmax |)).
Ahuja, Orlin, Tarjan, 1989:
p
Improved Excess Scaling: O (|V | · |E | · log(|V | log |fmax |/|E | + 2)).
Randomisierte Algorithmen
8
Henning Meyerhenke:
Kombinatorische Optimierung
Institut für Theoretische Informatik
Paralleles Rechnen
Variationen des
Push-Relabel-Algorithmus
Goldberg, 1985:
FIFO: O (|V |3 ).
Goldberg, Tarjan, 1986:
Improved FIFO: O (|V | · |E | · log(|V |2 ∆|E |)).
Goldberg, Tarjan, 1986; p
Cheriyan, Maheshwari 1989:
Highest Label: O (|V |2 · |E |).
Ahuja, Orlin, 1989:
Excess Scaling: O (|V | · |E | log(|V |2 · |fmax |)).
Ahuja, Orlin, Tarjan, 1989:
p
Improved Excess Scaling: O (|V | · |E | · log(|V | log |fmax |/|E | + 2)).
Randomisierte Algorithmen
Fluss-Algorithmen haben eine lange Historie, schnellere existieren!
8
Henning Meyerhenke:
Kombinatorische Optimierung
Institut für Theoretische Informatik
Paralleles Rechnen
Varianten des
Maximaler-Fluss-Problems
Knotenkapazitäten
Ungerichtete Graphen
9
Henning Meyerhenke:
Kombinatorische Optimierung
Institut für Theoretische Informatik
Paralleles Rechnen
Varianten des
Maximaler-Fluss-Problems
Knotenkapazitäten
Ungerichtete Graphen
Minimaler Schnitt mit minimaler Zahl von Kanten
Aufgabenbeschreibung:
Eingabe: Flussnetzwerk (G, u , s, t )
Ausgabe: Minimaler Schnitt von (G, u , s, t ) mit minimaler Zahl von Kanten
9
Henning Meyerhenke:
Kombinatorische Optimierung
Institut für Theoretische Informatik
Paralleles Rechnen
Varianten des
Maximaler-Fluss-Problems
Knotenkapazitäten
Ungerichtete Graphen
Minimaler Schnitt mit minimaler Zahl von Kanten
Aufgabenbeschreibung:
Eingabe: Flussnetzwerk (G, u , s, t )
Ausgabe: Minimaler Schnitt von (G, u , s, t ) mit minimaler Zahl von Kanten
Frage: Wie modellieren Sie diese Aufgabe?
9
Henning Meyerhenke:
Kombinatorische Optimierung
Institut für Theoretische Informatik
Paralleles Rechnen