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