Graphentheorie. Kürzeste Wege. Kürzeste Wege. Kürzeste Wege. Rainer Schrader. 25. Oktober 2007

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

Graphentheorie. Eulersche Graphen. Eulersche Graphen. Eulersche Graphen. Rainer Schrader. 14. November Gliederung.

6 Flüsse und Matchings

6. Flüsse und Zuordnungen

8.4 Digraphen mit negativen Kantengewichten Grundsätzliches Betrachte Startknoten s und einen Kreis C mit Gesamtlänge < 0.

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

Organisatorisches. Programmierpraktikum Das Canadian Traveller Problem. Organisatorisches. Organisatorisches

6. Flüsse und Zuordnungen

Theoretische Informatik. Exkurs: Komplexität von Optimierungsproblemen. Optimierungsprobleme. Optimierungsprobleme. Exkurs Optimierungsprobleme

1.Aufgabe: Minimal aufspannender Baum

Fortgeschrittene Netzwerk- und Graph-Algorithmen

1 Kürzeste Pfade in Graphen

Wiederholung zu Flüssen

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

durch Einfügen von Knoten konstruiert werden kann.

Mustererkennung: Graphentheorie

Berechnung von Abständen

5. Bäume und Minimalgerüste

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

Dualitätssätze der linearen Optimierung

Maximale s t-flüsse in Planaren Graphen

Kürzeste Wege. Ein Startknoten, nichtnegative Gewichte

Approximationsalgorithmen für NP-harte Optimierungsprobleme

2. November Gradfolgen Zusammenhang Kürzeste Wege. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 37

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

Überblick. Kap. 1.4: Minimum Weight Perfect Matching. 1.3 Blüten-Schrumpf Algorithmus für Maximum Matching

Perlen der Informatik I Wintersemester 2012 Aufgabenblatt 7

4. Kreis- und Wegeprobleme Abstände in Graphen

Das Problem des Handlungsreisenden

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2

Kapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung

Effiziente Algorithmen und Datenstrukturen: Kürzeste Wege

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Algorithmen II Vorlesung am

WS 2008/09. Diskrete Strukturen

Theoretische Informatik. nichtdeterministische Turingmaschinen NDTM. Turingmaschinen. Rainer Schrader. 29. April 2009

Bäume und Wälder. Definition 1

Dynamische Programmierung. Problemlösungsstrategie der Informatik

Algorithmische Methoden für schwere Optimierungsprobleme

Kapitel 4: Netzplantechnik Gliederung der Vorlesung

Algorithmen und Datenstrukturen 2-1. Seminar -

Kapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung

f h c 7 a 1 b 1 g 2 2 d

Diskrete Strukturen. Hausaufgabe 1 (5 Punkte) Hausaufgabe 2 (5 Punkte) Wintersemester 2007/08 Lösungsblatt Januar 2008

Das Steinerbaumproblem

Kürzeste Wege in Graphen. Orte mit Straßenverbindungen. Coma I Rolf Möhring

4 Greedy-Algorithmen (gierige Algorithmen)

Satz 324 Sei M wie oben. Dann gibt es für ein geeignetes k Konstanten c i > 0 und Permutationsmatrizen P i, i = 1,...

Bipartite Graphen. Beispiele

VORLESUNG 14 Lineare Optimierung, Dualität (Viele Folien nach Ulf Lorenz, jetzt TU Darmstadt)

Probleme aus NP und die polynomielle Reduktion

Algorithmische Graphentheorie

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

Wintersemester 2004/ Februar 2005

Nachbarschaft, Grad, regulär, Inzidenz

Wie wird ein Graph dargestellt?

Die Klasse NP und die polynomielle Reduktion

ij. , d (k 1) + d (k 1)

Minimal spannender Baum

Algorithmen & Komplexität

10. Übungsblatt zu Algorithmen I im SS 2010

Matching. Organisatorisches. VL-18: Matching. (Datenstrukturen und Algorithmen, SS 2017) Gerhard Woeginger. Tanzabend

Algorithmische Graphentheorie

Theoretische Informatik 1

Kapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Kürzeste Wege in einem gewichteten Graphen. Anwendungen

9. Übungsblatt zu Algorithmen I im SoSe 2016

Approximationsalgorithmen

2. Optimierungsprobleme 6

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

ADS: Algorithmen und Datenstrukturen 2

Kombinatorische Optimierung

Theoretische Grundlagen der Informatik

Kürzeste Wege Algorithmen und Datenstrukturen

Theoretische Grundlagen der Informatik

3. Musterlösung. Problem 1: Boruvka MST

Klausur Theoretische Informatik I WS 2004/2005

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

5. Musterlösung. Problem 1: Vitale Kanten * ω(f) > ω(f ). (a) Untersuchen Sie, ob es in jedem Netzwerk vitale Kanten gibt.

3 Klassifikation wichtiger Optimierungsprobleme

Diskrete Mathematik 1

9. Übung Algorithmen I

NP-Vollständigkeit. Krautgartner Martin ( ) Markgraf Waldomir ( ) Rattensberger Martin ( ) Rieder Caroline ( )

Ausarbeitung zum Modulabschluss. Graphentheorie. spannende Bäume, bewertete Graphen, optimale Bäume, Verbindungsprobleme

Routing A lgorithmen Algorithmen Begriffe, Definitionen Wegewahl Verkehrslenkung

Eulerweg, Eulerkreis. Das Königsberger Brückenproblem. Definition 3.1. Ein Weg, der jede Kante von G genau einmal

Das Heiratsproblem. Definition Matching

5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c)

4. Kreis- und Wegeprobleme

p = (v 0, v 1,..., v k )

Graphentheorie. Zusammenhang. Zusammenhang. Zusammenhang. Rainer Schrader. 13. November 2007

Lösungsvorschlag Hausübung 8

Algorithmen II Vorlesung am

Definition Ein gerichteter Graph G = (V, E) ist ein Graph von geordneten Paaren (u, v) mit u V und v V.

Minimal spannende Bäume

Algorithmentheorie Maximale Flüsse

Maximale s t-flüsse in Planaren Graphen

Kap. 4.3: Das Dualitätstheorem der linearen Optimierung

Transkript:

Graphentheorie Rainer Schrader Zentrum für Angewandte Informatik Köln 25. Oktober 2007 1 / 20 2 / 20 Wir werden Optimierungsprobleme vom folgenden Typ betrachten: gegeben eine Menge X und eine Funktion f : X R Gliederung Bemerkungen zur Dualität bei nichtnegativen Entfernungen bei allgemeinen Entfernungen min f (x) x X In einigen Fällen existiert ein zweites Optimierungsproblem: gegeben eine Menge Y und eine Funktion g : Y R max g(y) y Y das erste Problem wird auch als das primale, das zweite als das duale Problem bezeichnet 3 / 20 4 / 20

min f (x) x X max g(y) y Y (1) oft ist die folgende Beziehung leicht einzusehen: für beliebige x X und y Y gilt: f (x) g(y) (schwache Dualität) wir werden Algorithmen betrachten, die folgendes berechnen: explizit ein x X (implizit) ein y Y, so dass gilt: Gliederung Bemerkungen zur Dualität bei nichtnegativen Entfernungen bei allgemeinen Entfernungen f (x) = g(y) (stake Dualität) aus der starken Dualität folgt die Optimalität das y liefert somit einen Beweis der Optimalität 5 / 20 6 / 20 gegeben sei ein gerichteter Graph G = (V, A) Entfernungen c(e) = c(u, v ) 0 auf den Kanten zwei ausgezeichnete Knoten s, t V. sei s = v 0, v 1,..., v k = t ein (s, t)-weg W werden in den Grundvorlesungen Informatik behandelt das Lösungsverfahren ist der wir werden im folgenden dieses Verfahren im Rahmen eine prima-dualen Ansatzes vorstellen die Länge von W ist die Summe der Entfernungen auf den durchlaufenen Kanten: Länge(W ) = c(u i, u i+1 ). gesucht ist ein kürzester (s, t)-weg 7 / 20 8 / 20

als X wählen wir die Menge aller (s, t)-wege in G f ordnet jedem Weg seine Länge zu eine Abbildung y : V R heißt (Knoten)-Potential ein Knotenpotential ordnet somit jedem Knoten eine reelle Zahl zu sei Y die Menge der Knotenpotentiale, für die für jede Kante e = (v, w ) E gilt: sei g(y) = y t y s y w y v c(v, w ) bzw. y w y v + c(v, w ) Lemma 1 (schwache Dualität für Wege und Knotenpotentiale) Für jeden Weg W und jedes zulässige Knotenpotential y gilt: Länge(W ) y t y s. sei s = v 0, v 1,..., v k = t ein (s, t)-weg W dann folgt: Länge(W ) = c(u i, u i+1 ) y i+1 y i = y k y 0 = y t y s 9 / 20 10 / 20 der Einfachheit halber setzen wir c(v, w ) = +, wenn (v, w ) / E der Algorithmus baut nun ein optimales Potential sukzessive folgendermaßen auf: (4) setze U U {v } (6) y w min{y w, y v + c(v, w )} Lemma 2 Der Dijkstra-Algortithmus erzeugt zulässige Potentiale. wir führen den Beweis in zwei Teilen 11 / 20 12 / 20

(i) wird u direkt vor v markiert, so gilt y u y v : in dem Schritt, in dem u markiert wird, gilt y u y v danach bleibt y v entweder gleich oder wird erniedrigt im zweiten Fall folgt aus dem Fortschreiben y v = y u + c(u, v ) y u damit steigen die y -Werte in der Markierungreihenfolge (ii) für e = (u, v ) E ist zu zeigen: y v y u + c(u, v ) wird u vor v markiert, so gilt diese Eigenschaft nach dem Fortschreiben danach bleibt y u konstant, y v kann nur noch verringert werden wird v vor u markiert, so gilt folgt aus (i): y v y u y u + c(u, v ) 13 / 20 14 / 20 für jeden Knoten v gilt: es existiert ein Knoten u, der y v zum letzten Mal fortschreibt Satz 3 Der Dijkstra-Algorithmus berechnet eine kürzesten Weg. damit gilt y v = y u + c(u, v ) (2) sei W der vorher berechnete Wege mit dieser Eigenschaft lässt sich leicht ein Weg von s nach t durch Zurückrechnen gewinnen: (1) setze v = t (2) bestimme einen Knoten u, der (2) erfüllt (3) falls u = s, stop (4) andernfalls setze v = u und gehe zu (2) per Konstruktion gilt für die jede Kante (u, v ) des Weges y v = y u + c(u, v ) somit: Länge(W ) = y t y s damit folgt die Behauptung aus der starken Dualität. 15 / 20 16 / 20

die Korrektheit des beruht auf der Annahme, dass die Kantenbewertungen nicht negativ sind auch für den Fall, dass wir negative Entfernungen zulassen, lassen sich berechnen, sofern sie überhaupt definiert sind d.h. sofern der Graph keine von s aus erreichbaren negativen Kreise enthält das folgende Bellman-Ford-Verfahren beruht auf dynamischer Programmierung sei dazu dist k (v ) die Länge eines kürzesten Weges von s nach v, der maximal k Kanten benutzt wobei dist k (v ) =, wenn kein solcher Weg existiert dann ist dist n 1 (t) die Länge eines kürzesten (s, t)-weges wir lassen das Verfahren aus Gründen, die weiter unten klar werden bis n laufen wir starten mit dist 0 (s) = 0 und dist 0 (v ) = für alle v V s für k = 1,..., n und v V s setzen wir dist k +1 (v ) = min{dist k (v ), dist k (u) + c(u, v ) : (u, v ) E }. 17 / 20 18 / 20 Dann ergibt sich unmittelbar: Satz 4 Sei D = (V, A) ein gerichteter Graph ohne negative Kreise. Dann berechnet der Algorithmus von Bellman-Ford in O(mn) Schritten. Der Bellman-Ford-Algorithmus kann auch benützt werden, um einen negativen Kreis zu entdecken: Satz 5 Sei D = (V, A) ein gerichteter Graph mit einer allgemeinen Kantenbewertung. Dann kann in O(mn) Schritten ein von s aus erreichbarer negativer Kreis gefunden werden, wenn ein solcher existiert. sei dist n 1 (u) dist n (u) für ein u V dann ist dist n (u) < dist n 1 (u) und es existiert ein (s, u)-pfad P der n Kanten benutzt daher muss P einen Kreis C enthalten wenn wir C aus P entfernen, erhalten wir einen (s, u)-pfad P der weniger als n Kanten benützt dann folgt l(p ) dist n 1 (u) > dist n (u) = l(p) und somit l(c) < 0. ist dist n 1 (u) = dist n (u) für alle u V, so kann kein negativer Kreis existieren, der von s aus erreicht werden kann. 19 / 20 20 / 20