Netzwerk Simplex Algorithmus. Min Cost Flow Probleme. Jan Burkl Juli 2003

Ähnliche Dokumente
Netzwerk Simplex Algorithmus für Minimum Cost Flow Probleme

Maximale s t-flüsse in Planaren Graphen

\ E) eines Graphen G = (V, E) besitzt die gleiche Knotenmenge V und hat als Kantenmenge alle Kanten des vollständigen Graphen ohne die Kantenmenge E.

WS 2009/10. Diskrete Strukturen

Seminar über aktuelle Forschungsthemen in der Algorithmik, Dozent Prof. Dr. Alt;

Theoretische Informatik 1

6 Flüsse und Matchings

Kombinatorische Optimierung

3. Minimale Spannbäume. Definition 99 T heißt minimaler Spannbaum (MSB, MST) von G, falls T Spannbaum von G ist und gilt:

Algorithmen und Datenstrukturen

3.6 Branch-and-Bound-Verfahren

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Algorithmische Graphentheorie

6. Flüsse und Zuordnungen

Algorithmen I - Tutorium 28 Nr. 11

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

Datenstrukturen. Mariano Zelke. Sommersemester 2012

Approximationsalgorithmen für NP-harte Optimierungsprobleme

Operations Research. Flüsse in Netzwerken. Flüsse in Netzwerken. Unimodularität. Rainer Schrader. 2. Juli Gliederung.

Klausur zum Modul Einführung in die Diskrete Mathematik

Approximationsalgorithmen für NP-harte Optimierungsprobleme

Definition Gerichteter Pfad. gerichteter Pfad, wenn. Ein gerichteter Pfad heißt einfach, falls alle u i paarweise verschieden sind.

Mergeable Heaps. C. Komusiewicz 7.1 Fibonacci-Heaps: Überblick 117

Dies ist gerade der konstruktive Schritt beim Aufbau von Binomialbäumen.

Das Steinerbaumproblem

VU Algorithmen auf Graphen Übungsblatt 2 - Aufgabe 2 Transformation einer MaxFlow- in eine MinCost Circulation Instanz

Wiederholung zu Flüssen

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Übersicht: Graphen. Definition: Ungerichteter Graph. Definition: Ungerichteter Graph

Datenstrukturen und Algorithmen SS07

Vorlesung Datenstrukturen

Suchen und Sortieren Sortieren. Heaps

5. Bäume und Minimalgerüste

Grundlagen: Algorithmen und Datenstrukturen

15. Elementare Graphalgorithmen

Einführung in die Informatik 2

1. Transport- und Zuordnungsprobleme Optimierungsalgorithmus für Transportprobleme. Duales Problem. a i u i + i=1. j=1

Optimierung. Optimierung. Vorlesung 8 Lineare Programmierung III: Simplex Algorithmus Fabian Kuhn

Algo&Komp. - Wichtige Begriffe Mattia Bergomi Woche 6 7

Probleme aus NP und die polynomielle Reduktion

Effiziente Algorithmen (SS2014)

6. Flüsse und Zuordnungen

Fortgeschrittene Netzwerk- und Graph-Algorithmen

{0,1} rekursive Aufteilung des Datenraums in die Quadranten NW, NE, SW und SE feste Auflösung des Datenraums in 2 p 2 p Gitterzellen

14. Rot-Schwarz-Bäume

2. Optimierungsprobleme 6

Zugeordneter bipartiter Graph

Copyright, Page 1 of 8 AVL-Baum

Graphalgorithmen 2. Dominik Paulus Dominik Paulus Graphalgorithmen / 47

Euler und Hamiltonkreise

Randomisierte Algorithmen 2. Erste Beispiele

Lernmodul 7 Algorithmus von Dijkstra

Die Klasse NP und die polynomielle Reduktion

Algorithmik WS 07/ Vorlesung, Andreas Jakoby Universität zu Lübeck

Systems of Distinct Representatives

Single Source Sortest Path Negative Kreise All-Pair Shortest Path Problem Minimum Mean Cycle Zusammenfassung. Shortest Paths

2. Entsprechende Listen P i von Vorgängern von i 3. for i := 1 to n do. (ii) S i = Knoten 2 + 1}

Laufzeit. Finden eines Matchings maximaler Kardinalität dauert nur O( E min{ V 1, V 2 }) mit der Ford Fulkerson Methode.

Vorlesung Datenstrukturen

Informatik II, SS 2014

Übung 5 Algorithmen II

Beispiellösung zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 5

Graphentheorie. Maximale Flüsse. Maximale Flüsse. Maximale Flüsse. Rainer Schrader. 31. Oktober Gliederung. sei G = (V, A) ein gerichteter Graph

Breitensuche BFS (Breadth First Search)

Algorithmische Bioinformatik 1

Definition 15 Rot-Schwarz-Bäume sind externe Binärbäume (jeder Knoten hat 0 oder 2 Kinder) mit roten und schwarzen Kanten, so dass gilt:


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

Datenstrukturen Teil 2. Bäume. Definition. Definition. Definition. Bäume sind verallgemeinerte Listen. Sie sind weiter spezielle Graphen

3. Binäre Suchbäume. 3.1 Natürliche binäre Suchbäume. EADS 3.1 Natürliche binäre Suchbäume 78/598 ľernst W. Mayr

8. A & D - Heapsort. Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können.

Programmiertechnik II

Mehrwegbäume Motivation

Prüfung Informatik D-MATH/D-PHYS :00 17:00

Relationen und DAGs, starker Zusammenhang

Die Ungarische Methode für das Assignment Problem von H. W. Kuhn (1955)

Flüsse, Schnitte, bipartite Graphen

Maximale s t-flüsse in Planaren Graphen

Datenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 14

Suchen und Sortieren Sortieren. Heaps

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

1 DFS-Bäume in ungerichteten Graphen

1 DFS-Bäume in ungerichteten Graphen

Algorithmik WS 07/ Vorlesung, Andreas Jakoby Universität zu Lübeck. 10 Matching-Probleme

4.2 Fibonacci-Heaps Aufbau Potenzialfunktion. Knoten v hat folgende Felder:

Name:... Vorname:... Matr.-Nr.:... Studiengang:...

4.2 Minimale Spannbäume: Der Algorithmus von Jarník/Prim Definition 4.2.1

Algorithmentheorie Maximale Flüsse

11. GRAPHEN 3 FLÜSSE UND SPANNBÄUME

11.1 Grundlagen - Denitionen

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

KAPITEL 4 FLÜSSE IN NETZWERKEN

Informatik II, SS 2014

Kapitel 1: Flussalgorithmen

Algorithmen und Datenstrukturen (für ET/IT)

Vorlesung Datenstrukturen

Übung Algorithmen und Datenstrukturen

Graphalgorithmen Netzwerkalgorithmen. Laufzeit

Informatik II, SS 2016

Aufgabe 1: Berechnen Sie für den in Abbildung 1 gegebenen Graphen den. Abbildung 1: Graph für Flussproblem in Übungsaufgabe 1

1.1 Abstrakte Datentypen 1.2 Lineare Strukturen 1.3 Bäume 1.4 Prioritätsschlangen 1.5 Graphen

Transkript:

1 Netzwerk Simplex Algorithmus für Min Cost Flow Probleme Jan Burkl Juli 2003

2 Inhalt Spanning Tree Solution Beschreibung der Spanning Tree Structure Knotenpotentiale berechnen Initialer Spannbaum Simplex-Algorithmus Entering Arc

3 Leaving Arc Spannbaum Update Beispiel Strongly Feasible Spanning Tree

4 Spanning Tree Solution Definition 1. Sei x eine zulässige Lösung für ein Netzwerk N, dann heißt eine Kante frei, wenn 0 < x ij < u ij, beschränkt, wenn x ij = 0 oder x ij = u ij,

5 Spanning Tree Solution Definition 2. Eine zulässige Lösung heißt Spanning Tree Solution, wenn jede Kante (i, j) N \ T (nicht-baum Kante) eine beschränkte Kante ist.

6 Beispiel (a) Beispiel-Netzwerk (b) Alle freien Kanten (c) Zwei mögliche Spanning Tree Solution

7 Spanning Tree Solution Eine Spanning Tree Solution teilt die Menge der Kanten des Netzwerks in drei Gruppen auf: T: Alle Kanten im Spanning Tree L: Alle nicht-baum-kanten mit x ij = 0 U: Alle nicht-baum-kanten mit x ij = u ij Tupel (T,L,U) heißt Spanning Tree Structure.

8 Min Cost Flow Optimalitätsbedingungen Satz 1 (Min Cost Flow Optimalitätsbedingungen). (T,L,U) ist optimale Spanning Tree Structure, wenn die Lösung zulässig ist und die reduzierten Kosten c π ij folgende Bedingungen erfüllen: c π ij = 0, c π ij 0, c π ij 0, (i, j) T (i, j) L (i, j) U

9 Beweis. Sei x zugehörige Lösung. Es ist bekannt, dass für ein bestimmtes π die Bedingungen erfüllt sind. Z.z.: x ist optimale Lösung des Min-Cost-Flow Problems. Es gilt: c π ij = c ij π(i) + π(j) min( (i,j) E c ijx ij ) min( (i,j) E cπ ij x ij)

10 min( (i,j) E cπ ij x ij) min c π ijx ij (i,j) T }{{} =0 + (i,j) L cπ ij x ij + c π ij x }{{} ij (i,j) U 0 }{{} 0 min ( (i,j) L cπ ij x ij (i,j) U cπ ij x ij ) (*)

11 Da für eine beliebige Lösung x und x ij x ij x ij x ij (i, j) L (i, j) U gilt, kann (*) mit der Lösung x nur größer oder gleich des Zielfunktionswertes der Lösung x werden.

12 Beschreibung der Spanning Tree Structure i 1 2 3 4 5 6 7 8 9 10 11 pred(i) 0 1 1 2 3 3 4 4 6 8 8 depth(i) 0 1 1 2 2 2 3 3 3 4 4 thread(i) 2 4 6 7 3 9 8 10 1 11 5

13 Knotenpotentiale c π ij = c ij π(i) + π(j) = c ij [π(i) + k] + [π(j) + k] π(1) := 0 Alle Knotenpotentiale sukzessive berechnen mit c π ij = c ij π(i) + π(j) = 0 (i, j) T

procedure compute-potentials; begin π(1) := 0; j := thread(1); while j 1 do begin i := pred(j); if (i, j) N then π(j) := π(i) c ij ; if (j, i) N then π(j) := π(i) + c ij ; j := thread(j); end; end; 14

15 Initialer Spannbaum Geeignete Startlösung berechnen Künstlicher Knoten r b(j) > 0 (j, r), x jr := b(j) b(j) 0 (r, j), x rj := b(j) c rk = c kr = (i,j) N c ij + 1 k N

16

17 Simplex Algorithmus algorithm network simplex begin konstruiere initialen Spannbaum; solange die Optimalitätsbedingungen nicht erfüllt sind tue wähle eine einzufügende Kante, die die Optimalitätsbedingung verletzt; füge diese Kante ein und bestimme die wegfallende Kante; baue den Spannbaum neu auf und passe x und π an; end; end;

18 Entering Arc (i, j) L : c π ij 0 (i, j) U : c π ij 0 Dantzig s Pivot Regel Kante mit höchster Verletzung (max( c π ij )) Idee: große Verringerung des Zielfunktionswertes bei hoher Verletzung Jede Iteration Suche nach maximaler Verletzung

19 First Eligable Arc Rule Erste geeignete Kante wird gewählt Wraparound Fashion Geringe Verletzung Kandidaten-Liste Pivot Regel Zwei-Phasen Prozedur Kandidatenliste Kandidatenliste durchsucht nach maximaler Verletzung

20 Liste leer oder maximale Anzahl von Iterationen neue Liste Spezialfälle: Dantzig s PR, First Eligable Arc PR

21 Leaving Arc Spanning Tree Struktur wieder aufbauen Orientierung des entstandenen Kreises W hängt ab von eingefügter Kante Fluss erhöhen um: δ = min (δ ij (i, j) W ), { uij x δ ij = ij, wenn (i, j) W x ij, wenn (i, j) W (W :=Vorwärtskanten, W :=Rückwärtskanten)

22 Pivot-Operation heißt nichtdegenerative Iteration wenn δ > 0, degenerative Iteration, wenn δ = 0 (i, j) heißt blockierende Kante, wenn δ = δ ij Blockierende Kante wird leaving Arc

23 Kreisentdeckung Betrachte W vor Einfügen von (k, l) procedure identify-cycle; begin i:=k und j:=l; while i j do begin if depth(i) > depth(j) then i:=pred(i); else if depth(j) > depth(i) then j:=pred(j); else i:=pred(i) und j:=pred(j); end; end;

24 Spannbaum updaten (p, q) Leaving Arc, (k, l) eingefügte Kante Teilbaum T 1 und T 2 (ohne (k, l) und (p, q)) r T 1 und entweder k T 1 oder l T 1 T 2 hängt an p oder q Da c π ij = 0 (i, j) T Potentiale in T 1 oder T 2 ändern: Wenn k T 1 : Knotenpotentiale um c π kl verringern Wenn k T 2 : Knotenpotentiale um c π kl erhöhen

25 Knotenpotentiale updaten procedure update-potentials; begin if q T 2 then y := q else y := p; if k T 1 then change := c π kl else change := cπ kl ; π(y) := π(y) + change; z:=thread(y); while depth(z) > depth(y) do begin π(z) := π(z) + change; z:=thread(z); end; end;

26 Beispiel (i,j) N c ij + 1 = 16

c π 13 = 29 27

c π 32 = 28 28

c π 12 = 24 29

(i,j) N c ijx ij = 26 30

31 Strongly Feasible Spanning Tree Simplex-Algorithmus muss nicht terminieren Definition 3. Ein Spannbaum T ist strongly feasible, wenn jede Baumkante ohne Fluss nach oben zeigt und jede Baumkante deren Fluss gleich ihrer Kapazität ist nach unten zeigt. Definition 4. Ein Spannbaum ist strongly feasible, wenn es möglich ist, einen Fluss von einem beliebigem Knoten zur Wurzel zu schicken, ohne Kapazitätsgrenzen zu verletzen.

32 Initialer Spannbaum ist nicht strongly feasible Spannbaum kann im nächsten Schritt nur degenerieren, wenn es mehr als eine blockierende Kante gibt

33 Leaving Arc Rule Aus dem Spannbaum soll die letzte blockierende Kante, die nach Traversierung (entlang der Orientierung der eingefügten Kante) des entstanden Kreises entfernt werden. Dabei wird am Knoten w, der höchste Punkt (apex) des Kreises im hängenden Baum, gestartet. W wird geteilt in W 1 und W 2 W 1 von w bis (p, q)(entfernte Kante) W 2 = W W 1 {(p, q)}

34 Satz 2. Jeder Knoten im Segment W 2 Wurzel schicken. kann einen positiven Fluss zur (p, q) letzte blockierende Kante W 2 kann keine blockierende Kante enthalten Alle Knoten in W 2 können Fluss zur Wurzel schicken

35 Satz 3. Jeder Knoten im Segment W 1 Wurzel schicken. kann einen positiven Fluss zur Fall 1: Vorhergehende Pivotoperation hat Fluss erhöht (entlang W 1 ) Fluss kann in andere Richtung geschickt werden Fall 2: Vorhergehende Pivotoperation keine Flusserhöhung W 1 liegt zwischen w und k, l kann Fluss zu w schicken. Kein Fluss erhöht auf W 1 Jeder Knoten aus W 1 kann Fluss zu w schicken.

Beispiel 36

37 References [1] Ravindra K. Ahuja, James B. Orlin, Thomas L. Magnanti, Network Flows: Theory, Algorithms & Applications, Prentice Hall, 1993.