Folien aus der Vorlesung Optimierung I SS2013

Ähnliche Dokumente
8 Diskrete Optimierung

EDM, Algorithmen und Graphenspeicherung

Algorithmen & Komplexität

Grundlagen: Algorithmen und Datenstrukturen

Kap. 6.6: Kürzeste Wege

Algorithmen I. Prof. Jörn Müller-Quade Institut für Theoretische Informatik Web:

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

Kap. 6.6: Kürzeste Wege

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

Graphalgorithmen 2. Dominik Paulus Dominik Paulus Graphalgorithmen / 47

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

3.6 Branch-and-Bound-Verfahren

Wie wird ein Graph dargestellt?

Datenstrukturen und Algorithmen (SS 2013)

Teil 2: Graphenalgorithmen

Erinnerung VL

Datenstrukturen und Algorithmen SS07

Algorithmen und Datenstrukturen Kapitel 9. und

Informatik II, SS 2016

Kap. 6.5: Minimale Spannbäume ff

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

Informatik II, SS 2014

Algorithmen und Datenstrukturen 2

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

Informatik II, SS 2014

ADS: Algorithmen und Datenstrukturen 2

Graphalgorithmen II. Sebastian Ehrenfels Sebastian Ehrenfels Graphalgorithmen II / 44

Algorithmen und Datenstrukturen

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen

Berechnung minimaler Spannbäume. Beispiel

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

Kapitel 4: Netzplantechnik Gliederung der Vorlesung

4. Welchen Zusammenhang gibt es zwischen den Eckengraden und der Anzahl der Kanten eines ungerichteten Graphen?

Bemerkung: Es gibt Algorithmen für minimale Spannbäume der Komplexität O(m + n log n) und, für dünnbesetzte Graphen, der Komplexität O(m log n), wobei

1.Aufgabe: Minimal aufspannender Baum

9 Minimum Spanning Trees

3.2 Generischer minimaler Spannbaum-Algorithmus

Grundlagen der Algorithmen und Datenstrukturen Kapitel 8

Teil 2: Graphenalgorithmen

Algorithmen und Datenstrukturen Kapitel 9. und

Kürzeste Wege. Ein Startknoten, nichtnegative Gewichte

Effiziente Algorithmen

Minimal spannende Bäume

12. Der Algorithmus von Dijkstra. Informatik II für Verkehrsingenieure

Algorithmen und Datenstrukturen Tafelübung 14. Jens Wetzl 8. Februar 2012

2. Das single-source-shortest-path-problem

Kürzeste-Wege-Algorithmen und Datenstrukturen

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

Maximale s t-flüsse in Planaren Graphen

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

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

Lernmodul 7 Algorithmus von Dijkstra

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

ADS: Algorithmen und Datenstrukturen 2

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 3: Minimal aufspannende Bäume und Matroide

10. Übung Algorithmen I

Kapitel 4: Minimal spannende Bäume Gliederung der Vorlesung

Aufgaben zur Klausurvorbereitung

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

SS11 Effiziente Algorithmen 5. Kapitel: Dynamische Programmierung

Algorithmen und Datenstrukturen

Optimale Lösungen mit Greedy-Strategie erfordern Optimalität der Greedy-Wahl. Beispiele für optimale Greedy-Lösungen

Algorithmen I - Tutorium 28 Nr. 11

Kapitel 4: Minimale spannende Bäume Gliederung der Vorlesung

Algorithmen und Datenstrukturen (für ET/IT)

Klausurvorbereitung. 1 Zentrale Begriffe. 2 Bipartite Graphen. 2.1 Begriffe. Vorlesung Graphen und Optimierung Sommersemester 2011 Prof. S.

Algorithmische Graphentheorie

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität

Informatik II, SS 2018

Zweizusammenhang und starker Zusammenhang

2. Optimierungsprobleme 6

15. Elementare Graphalgorithmen

Algorithmen und Datenstrukturen 2-1. Seminar -

Kapitel 8 Graphenalgorithmen. Minimaler Spannbaum Union-find-Problem Kürzeste Wege

Algorithmen und Datenstrukturen 2

Kap. 6.5: Minimale Spannbäume

Kürzeste (billigste) Wege

ADS: Algorithmen und Datenstrukturen 2

Erinnerung VL

1 Kürzeste Pfade in Graphen

WS 2009/10. Diskrete Strukturen

5. Bäume und Minimalgerüste

Algorithmen und Datenstrukturen

Diskrete Strukturen WS 2005/06. Ernst W. Mayr. 27. Januar Fakultät für Informatik TU München

24. Minimale Spannbäume

Algorithmen und Datenstrukturen

Richtig oder falsch? Richtig oder falsch? Richtig oder falsch? Mit dynamischer Programmierung ist das Knapsack- Problem in Polynomialzeit lösbar.

Algorithmen und Datenstrukturen 13

25. Minimale Spannbäume

Institut für Mathematik Geometrie und Lineare Algebra J. Schönenberger-Deuel. Aufgabe 1. Wir geben nur zwei von sehr vielen möglichen Strategien.

Algorithmen & Komplexität

Funktioniert der Greedy-Algorithmus auch für Briefmarken aus Manchukuo?

Laufzeitanalyse (1) demogr.

Transkript:

Folien aus der Vorlesung Optimierung I SS2013 Dr. Jens Maßberg Institut für Optimierung und Operations Research, Universität Ulm July 10, 2013

Datenstrukturen für Graphen und Digraphen Graph Scanning Algorithmus BFS-Bäume Minimum Spanning Trees Kruskal s Algorithm Prim s Algorithm Dijkstra s Algorithmus Moore-Bellman-Ford Algorithmus Floyd-Warshall Algorithmus

Inzidenzmatrix b d a f c e ab ac bd be cd ce df ef a 1 1 b 1 1 1 c 1 1 1 d 1 1 1 e 1 1 1 f 1 1 Speicheraufwand: O(nm).

Adjazenzmatrix b d a f c e a b c d e f a 1 1 b 1 1 1 c 1 1 1 d 1 1 1 e 1 1 1 f 1 1 Speicheraufwand: O(n 2 ).

Kantenliste b d a f c e (a, b), (a, c), (b, d), (b, e)(c, d), (c, e), (d, f ), (e, f ) Speicheraufwand: O(m log(n)).

Adjazenzliste b d a f c e a b c d e f b,c a,d,e a,d,e b,c,f b,c,f d,e Speicheraufwand: O(m log n + n log m).

Inzidenzmatrix von Digraphen b d a f c e ab ac bd be cd ce df ef a 1 1 b -1 1 1 c -1 1 1 d -1-1 1 e -1-1 1 f -1-1

Adjazenzmatrix von Digraphen b d a f c e a b c d e f a 1 1 b 1 1 c 1 1 d 1 e 1 f Speicheraufwand: O(n 2 ).

Graph Scanning Algorithmus Input: Ein Graph G/ Digraph D und ein Knoten r von G/D. Output: Die Menge R der Knoten, die in G/D von r aus auf Wegen/gerichteten Wegen erreichbar sind und eine Menge T E(G)/A(D), für die (R, T ) Baum/Arboreszenz mit Wurzel r ist. begin R {r}; Q {r}; T ; l(r) 0; while Q do 1 Wähle v Q; 2 if w V \ R mit e = vw E(G) / e = (v, w) A(D) then Wähle solch ein w; R R {w}; Q Q {w}; T T {e}; l(w) l(v) + 1; end else Q Q \ {v}; end end return (R, T );

Graph Scanning Algorithmus

Graph Scanning Algorithmus r

Graph Scanning Algorithmus r 1

Graph Scanning Algorithmus 2 r 1

Graph Scanning Algorithmus 3 2 r 1

Graph Scanning Algorithmus 3 2 r 1 3

Graph Scanning Algorithmus 4 3 2 r 1 3

BFS-Bäume 2 2 3 1 2 3 r 1 2

Minimum Spanning Trees a b c d 1 e 6 f 11 g

Minimum Spanning Trees a b c d 1 e 6 f 11 g

Kruskal s Algorithm Input: Ein zusammenhängender Graph G und eine Kostenfunktion c : E R. Output: Ein Minimum Spanning Tree T f"ur (G, c). begin Sortiere die Kanten von G so, dass c(e 1 ) c(e 2 )... c(e m ) gilt; end T (V (G), ); for i = 1 to m do if T + e i ist ein Wald then T (V (G), E(T ) {e i }); end end return T ;

Kruskals s algorithm a b c d 1 e 6 f 11 g

Kruskals s algorithm a b c d 1 e 6 f 11 g

Kruskals s algorithm a b c d 1 e 6 f 11 g

Kruskals s algorithm a b c d 1 e 6 f 11 g

Kruskals s algorithm a b c d 1 e 6 f 11 g

Kruskals s algorithm a b c d 1 e 6 f 11 g

Kruskals s algorithm a b c d 1 e 6 f 11 g

Kruskals s algorithm a b c d 1 e 6 f 11 g

Kruskals s algorithm a b c d 1 e 6 f 11 g

Kruskals s algorithm a b c d 1 e 6 f 11 g

Prim s Algorithm Input: Ein zusammenhängender Graph G und eine Kostenfunktion c : E(G) R. Output: Ein Minimum Spanning Tree T. begin W"ahle v V (G); end T ({v}, ); while V (T ) V (G) do Wähle eine Kante xy minimaler Kosten c(xy) mit x V (T ) und y V (G) \ V (T ); end T (V (T ) {y}, E(T ) {e}); return T ;

Prim s algorithm a b c d 1 e 6 f 11 g

Prim s algorithm a b c d 1 e 6 f 11 g

Prim s algorithm a b c d 1 e 6 f 11 g

Prim s algorithm a b c d 1 e 6 f 11 g

Prim s algorithm a b c d 1 e 6 f 11 g

Prim s algorithm a b c d 1 e 6 f 11 g

Prim s algorithm a b c d 1 e 6 f 11 g

Dijkstra s algorithm Input: Ein Digraph D, c : A(D) R >0 und r V (D). Output: Kürzeste Wege von r zu allen erreichbaren Knoten: (l(v), p(v)) v V (D)\{r}, wobei l(v) = dist (D,c) (r, v) gilt und p(v) ein Vorgänger von v auf einem bzgl. c kürzesten Weg von r nach v ist. Ist v nicht erreichbar, so ist l(v) = und p(v) nicht definiert. begin l(r) 0; for v V (D) \ {r} do l(v) ; 1 R ; while R V (D) do 2 Wähle v V (D) \ R mit l(v) = min{l(w) w V (D) \ R}; 3 R R {v}; for w V (D) \ R mit (v, w) A(D) do if l(w) > l(v) + c((v, w)) then 4 l(w) l(v) + c((v, w)); p(w) v; end end end return (l(v), p(v)) v V (D)\{r} ; 2013 endinstitut für Optimierung und Operations Research, Universität Ulm, Dr. Jens Maßberg

Dijkstra s algorithm 0 10 3 1 2 6 2

Dijkstra s algorithm 0 10 10 3 1 2 6 2

Dijkstra s algorithm 0 10 10 3 1 2 6 20 2

Dijkstra s algorithm 0 10 10 16 3 1 2 6 20 1 2

Dijkstra s algorithm 0 10 10 16 3 1 2 6 20 1 2

Dijkstra s algorithm 0 10 10 16 3 1 2 6 20 1 23 26 2

Dijkstra s algorithm 0 10 10 16 3 1 2 6 20 1 23 26 2 2

Dijkstra s algorithm 0 10 10 16 3 1 2 6 20 1 23 26 2 2

Moore-Bellman-Ford Algorithmus Input: Ein Digraph D, eine konservative Funktion c : A(D) R und s V (D). Output: Wie beim Dijkstra s Algorithm: (l(v), p(v)) v V (D)\{r} wobei l(v) = dist (D,c) (s, v) gilt und p(v) ein Vorgänger von v auf einem kürzesten Weg von s nach v ist. (Ist v nicht erreichbar, so ist l(v) = und p(v) nicht definiert.) begin l(s) 0; for v V (D) \ {s} do l(v) ; end for i = 1 to n(d) 1 do for (v, w) A(D) do if l(w) > l(v) + c((v, w)) then l(w) l(v) + c((v, w)); p(w) v; end end end return (l(v), p(v)) v V (D)\{s} ; end

Moore-Bellman-Ford Algorithmus 0 10 3 13 1 2 6 2

Moore-Bellman-Ford Algorithmus 0 10 3 10 13 i = 1 1 2 6 2

Moore-Bellman-Ford Algorithmus 0 i = 2 10 3 1 2 6 10 1 13 20 2

Moore-Bellman-Ford Algorithmus 0 i = 3 10 3 1 2 6 10 1 16 13 20 26 2 2

Moore-Bellman-Ford Algorithmus 0 i = 4 10 3 1 2 6 10 1 16 1 13 20 26 2 2 2

Floyd-Warshall Algorithmus Input: Ein Digraph D mit V (D) = [n] und eine konservative Gewichtsfunktion c : A(D) R. Output: Matrizen (l(i, j)) (i,j) [n] 2 und (p(i, j)) (i,j) [n] 2. Hier bei gilt l(i, j) = dist (D,c) (i, j) und für (i, j) [n 2 ] mit l(i, j) < ist (p(i, j), j) die letzte gerichte Kante eines bezüglich c kürzesten gerichteten Weges in D von i nach j.

Floyd-Warshall Algorithmus begin for (i, j) A(D) do l(i, j) c((i, j)); p(i, j) i; for i, j V (D) mit i j und (i, j) A(D) do l(i, j) ; for i V (D) do l(i, i) 0; for j = 1 to n do for i = 1 to n do if i j then for k = 1 to n do if k j then if l(i, k) > l(i, j) + l(j, k) then l(i, k) l(i, j) + l(j, k); p(i, k) p(j, k); end end end end end end end