Graphalgorithmen 2. Dominik Paulus Dominik Paulus Graphalgorithmen / 47
|
|
- Tristan Breiner
- vor 6 Jahren
- Abrufe
Transkript
1 Graphalgorithmen Dominik Paulus.0.01 Dominik Paulus Graphalgorithmen / 7
2 1 Spannbäume Kruskal Prim Edmonds/Chu-Liu Datenstrukturen Fibonacci-Heap Union/Find Kürzeste Pfade Dijkstra Bellman-Ford Floyd-Warshall Spezielle Pfade Eulerpfad Eulerzyklus Hamilton-Kreis Dominik Paulus Graphalgorithmen.0.01 / 7
3 1 Spannbäume Kruskal Prim Edmonds/Chu-Liu Datenstrukturen Kürzeste Pfade Spezielle Pfade Dominik Paulus Graphalgorithmen.0.01 / 7
4 Definition Definition Sei G = (V, E) ein (zusammenhängender) ungerichteter Graph. Ein Teilgraph von G, der azyklisch und zusammenhängend ist und alle Knoten aus G enthält, heißt Spannbaum. Minimaler Spannbaum Ein Spannbaum, dessen Summe der Kantengewichte minimal ist, heißt minimaler Spannbaum. Dominik Paulus Graphalgorithmen.0.01 / 7
5 Beispiel (Ein beliebiger) Spannbaum: A A B C D B C D Dominik Paulus Graphalgorithmen.0.01 / 7
6 Beispiel (Ein beliebiger) Spannbaum: A 1 B A 1 1 C D B C D (Minimaler) Spannbaum: A 1 1 B C D Dominik Paulus Graphalgorithmen.0.01 / 7
7 Algorithmus von Kruskal Algorithmusidee Minimale Teilspannbäume über kürzeste gemeinsame Kante verbinden Dominik Paulus Graphalgorithmen / 7
8 Algorithmus von Kruskal Algorithmusidee Minimale Teilspannbäume über kürzeste gemeinsame Kante verbinden Umsetzung Betrachte jeden Knoten als eigene Zusammenhangskomponente. Iteriere über alle Kanten des Ursprungsgraphen, in nach Gewicht aufsteigender Reihenfolge: Wenn die Kante zwei verschiedene Zusammenhangskomponenten verbindet: Füge die Kante zum Spannbaum hinzu Ansonsten: Ignoriere Kante Dominik Paulus Graphalgorithmen / 7
9 Beispiel G D A E B F C H Sortierung der Kanten: (A, B), (B, C), (F, H), (G, D), (A, D), (G, A), (B, E), (D, E), (C, H), (E, F )(A, E), (C, E), (C, F ) Dominik Paulus Graphalgorithmen / 7
10 Beispiel G D A E B F C H Sortierung der Kanten: (A, B), (B, C), (F, H), (G, D), (A, D), (G, A), (B, E), (D, E), (C, H), (E, F )(A, E), (C, E), (C, F ) Dominik Paulus Graphalgorithmen / 7
11 Beispiel G D A E B F C H Sortierung der Kanten: (A, B), (B, C), (F, H), (G, D), (A, D), (G, A), (B, E), (D, E), (C, H), (E, F )(A, E), (C, E), (C, F ) Dominik Paulus Graphalgorithmen / 7
12 Beispiel G D A E B F C H Sortierung der Kanten: (A, B), (B, C), (F, H), (G, D), (A, D), (G, A), (B, E), (D, E), (C, H), (E, F )(A, E), (C, E), (C, F ) Dominik Paulus Graphalgorithmen / 7
13 Beispiel G D A E B F C H Sortierung der Kanten: (A, B), (B, C), (F, H), (G, D), (A, D), (G, A), (B, E), (D, E), (C, H), (E, F )(A, E), (C, E), (C, F ) Dominik Paulus Graphalgorithmen / 7
14 Beispiel G D A E B F C H Sortierung der Kanten: (A, B), (B, C), (F, H), (G, D), (A, D), (G, A), (B, E), (D, E), (C, H), (E, F )(A, E), (C, E), (C, F ) Dominik Paulus Graphalgorithmen / 7
15 Beispiel G D A E B F C H Sortierung der Kanten: (A, B), (B, C), (F, H), (G, D), (A, D), (G, A), (B, E), (D, E), (C, H), (E, F )(A, E), (C, E), (C, F ) Dominik Paulus Graphalgorithmen / 7
16 Beispiel G D A E B F C H Sortierung der Kanten: (A, B), (B, C), (F, H), (G, D), (A, D), (G, A), (B, E), (D, E), (C, H), (E, F )(A, E), (C, E), (C, F ) Dominik Paulus Graphalgorithmen / 7
17 Beispiel G D A E B F C H Sortierung der Kanten: (A, B), (B, C), (F, H), (G, D), (A, D), (G, A), (B, E), (D, E), (C, H), (E, F )(A, E), (C, E), (C, F ) Dominik Paulus Graphalgorithmen / 7
18 Beispiel G D A E B F C H Sortierung der Kanten: (A, B), (B, C), (F, H), (G, D), (A, D), (G, A), (B, E), (D, E), (C, H), (E, F), (A, E), (C, E), (C, F ) Dominik Paulus Graphalgorithmen / 7
19 Beispiel G D A E B F C H Sortierung der Kanten: (A, B), (B, C), (F, H), (G, D), (A, D), (G, A), (B, E), (D, E), (C, H), (E, F )(A, E), (C, E), (C, F ) Dominik Paulus Graphalgorithmen / 7
20 Beispiel G D A E B F C H Sortierung der Kanten: (A, B), (B, C), (F, H), (G, D), (A, D), (G, A), (B, E), (D, E), (C, H), (E, F )(A, E), (C, E), (C, F ) Dominik Paulus Graphalgorithmen / 7
21 Beispiel G D A E B F C H Sortierung der Kanten: (A, B), (B, C), (F, H), (G, D), (A, D), (G, A), (B, E), (D, E), (C, H), (E, F )(A, E), (C, E), (C, F) Dominik Paulus Graphalgorithmen / 7
22 Beispiel G D A E B F C H Sortierung der Kanten: (A, B), (B, C), (F, H), (G, D), (A, D), (G, A), (B, E), (D, E), (C, H), (E, F )(A, E), (C, E), (C, F ) Dominik Paulus Graphalgorithmen / 7
23 Beispiel G A B C H D E F Dominik Paulus Graphalgorithmen / 7
24 Pseudocode 1: A = : for all v G.V do : Make-Set(v) : end for : Sortiere alle Kanten aufsteigend nach Gewicht 6: for all (u, v) G.E do 7: if Find-Set(u) Find-Set(v) then 8: A = A {(u, v)} 9: Union(u, v) 10: end if 11: end for Laufzeit: O(E log E) Dominik Paulus Graphalgorithmen / 7
25 Algorithmus von Prim Algorithmusidee Erweitere bestehenden Spannbaum über kürzeste Kante Umsetzung Beginne mit beliebigem Knoten als Ausgabegraph A Solange nicht alle Knoten aus G in A enthalten sind: Wähle die kürzeste Kante, die einen bislang nicht in A enthaltenen Knoten mit A verbindet Nach Kantengewicht gewichtete Breitensuche Dominik Paulus Graphalgorithmen / 7
26 Beispiel G A D B E C F H Dominik Paulus Graphalgorithmen / 7
27 Beispiel G A D B E C F H Dominik Paulus Graphalgorithmen / 7
28 Beispiel G A B C D E F H Dominik Paulus Graphalgorithmen / 7
29 Beispiel G A B C D E F H Dominik Paulus Graphalgorithmen / 7
30 Beispiel G A B C D E F H Dominik Paulus Graphalgorithmen / 7
31 Beispiel G A B C D E F H Dominik Paulus Graphalgorithmen / 7
32 Beispiel G A B C D E F H Dominik Paulus Graphalgorithmen / 7
33 Beispiel G A B C D E F H Dominik Paulus Graphalgorithmen / 7
34 Beispiel G A B C D E F H Dominik Paulus Graphalgorithmen / 7
35 Beispiel G A B C D E F H Dominik Paulus Graphalgorithmen / 7
36 Beispiel G A B C D E F H Dominik Paulus Graphalgorithmen / 7
37 Beispiel A B C G H D E F Dominik Paulus Graphalgorithmen / 7
38 Pseudocode 1: Q = Make-Heap() : Insert(Q, root, 0) : while Q do : u =Extract-Min(Q) : for all v G.Adj[u] do 6: if w(u, v) < v.cost then 7: v.π = u 8: v.cost = w(u, v) (Insert oder Decrease-Key) 9: end if 10: end for 11: end while Dominik Paulus Graphalgorithmen / 7
39 Minimale Arboreszenz Spannbaum für gerichtete Graphen: Problem Für einen gegebenen Knoten v G: Finde einen Spannbaum mit v als Wurzel, der alle Knoten aus G enthält und dessen Summe der Kantengewichte minimal ist Prim, Kruskal versagen im gerichteten Fall. Beispiel für einen Spannbaum im gerichteten Graphen: A C B D 1 Dominik Paulus Graphalgorithmen / 7 A C B D 1
40 Edmonds Algorithmus 1 Für alle Knoten außer der Wurzel: Wähle die günstigste eingehende Kante Dominik Paulus Graphalgorithmen / 7
41 Beispiel A B E 7 7 C D 6 F Dominik Paulus Graphalgorithmen / 7
42 Edmonds Algorithmus 1 Für alle Knoten außer der Wurzel: Wähle die günstigste eingehende Kante Wiederhole, so lange der Graph einen Zyklus enthält: 1 Betrachte jeden Zyklus als virtuellen Knoten. Berechne modifizierte Kantengewichte (1) für alle Kanten, die den Zyklus von außen betreten. Füge dem Ausgabegraphen die günstigste neu berechnete Kante (i, j) hinzu. Verwerfe die Kante, die bislang j betreten hat. Dominik Paulus Graphalgorithmen / 7
43 Edmonds Algorithmus 1 Für alle Knoten außer der Wurzel: Wähle die günstigste eingehende Kante Wiederhole, so lange der Graph einen Zyklus enthält: 1 Betrachte jeden Zyklus als virtuellen Knoten. Berechne modifizierte Kantengewichte (1) für alle Kanten, die den Zyklus von außen betreten. Füge dem Ausgabegraphen die günstigste neu berechnete Kante (i, j) hinzu. Verwerfe die Kante, die bislang j betreten hat. c(i, k) = c(i, j) c(x(j), j) (1) i: Knoten außerhalb des Zyklus j: Knoten innerhalb des Zyklus x(j): Bisheriger Vorgänger von j im Zyklus k: Pseudoknoten Dominik Paulus Graphalgorithmen / 7
44 1 Spannbäume Datenstrukturen Fibonacci-Heap Union/Find Kürzeste Pfade Spezielle Pfade Dominik Paulus Graphalgorithmen / 7
45 Fibonacci-Heaps 1: Q = Make-Heap() : Insert(Q, root, 0) : while Q do : u =Extract-Min(Q) : for all v G.Adj[u] do 6: if w(u, v) < v.cost then 7: v.prev = u 8: v.cost = w(u, v) (Insert oder Decrease-Key) 9: end if 10: end for 11: end while Dominik Paulus Graphalgorithmen / 7
46 Fibonacci-Heaps Fibonacci Binär Insert O(1) O(log n) Decrease-Key O(1) O(log n) Extract-Min O(log n) O(log n) (Mit n = Anzahl der Elemente im Heap) Dominik Paulus Graphalgorithmen / 7
47 Fibonacci-Heaps Fibonacci Binär Insert O(1) O(log n) Decrease-Key O(1) O(log n) Extract-Min O(log n) O(log n) Laufzeit Prim O(E + V log V ) E log V (Mit n = Anzahl der Elemente im Heap) Dominik Paulus Graphalgorithmen / 7
48 Union/Find Wir brauchen Eine Datenstruktur zur Verwaltung von disjunkten Mengen (Zusammenhangskomponenten in ungerichteten Graphen) Operationen: Make-Set(x): Lege eine neue Menge mit x als einzigem Element an Find-Set(x): Gib mir einen Repräsentanten der Menge, in der x ist. Union(X, Y ): Vereinige die beiden Mengen X und Y. Dominik Paulus Graphalgorithmen / 7
49 Union/Find Idee Darstellung der Mengen als Wald Dominik Paulus Graphalgorithmen / 7
50 Union/Find Idee Darstellung der Mengen als Wald Dominik Paulus Graphalgorithmen / 7
51 Union/Find Idee Darstellung der Mengen als Wald x p(x) Dominik Paulus Graphalgorithmen / 7
52 Union/Find Operationen Find-Set Traversiere Baum bis zur Wurzel, gib die Wurzel als Repräsentant zurück. Union Hänge die Wurzel des einen Baumes unter die des anderen. Dominik Paulus Graphalgorithmen / 7
53 Union/Find - Beispiel Find-Set(8) = Find-Set(7) = Find-Set() = Dominik Paulus Graphalgorithmen.0.01 / 7
54 Union/Find - Beispiel Dominik Paulus Graphalgorithmen.0.01 / 7
55 Union/Find - Beispiel Dominik Paulus Graphalgorithmen.0.01 / 7
56 Union/Find - Beispiel Union(8, 9) Union(Find-Set(8),Find-Set(9)) Union(, 10) Dominik Paulus Graphalgorithmen.0.01 / 7
57 Union/Find - Verbesserungen (1) Pfadkompression Bei Ausführung von Find-Set: Hänge alle besuchten Knoten unter die Wurzel Beispiel: Find-Set(8): Dominik Paulus Graphalgorithmen.0.01 / 7
58 Union/Find - Verbesserungen (1) Pfadkompression Bei Ausführung von Find-Set: Hänge alle besuchten Knoten unter die Wurzel Beispiel: Find-Set(8): Dominik Paulus Graphalgorithmen.0.01 / 7
59 Union/Find Pfadkompression Implementierung Sehr schön rekursiv i n t Find_Set ( i n t x ) { i f ( p a r e n t [ x ] == x ) return x ; return ( p a r e n t [ x ] = Find_Set ( p a r e n t [ x ] ) ) ; } Dominik Paulus Graphalgorithmen.0.01 / 7
60 Union/Find - Verbesserungen () Union-By-Size Größe beim Vereinigen berücksichtigen Beispiel: Union(, 10): Dominik Paulus Graphalgorithmen.0.01 / 7
61 Union/Find - Verbesserungen () Union-By-Size Größe beim Vereinigen berücksichtigen Beispiel: Union(, 10): Dominik Paulus Graphalgorithmen.0.01 / 7
62 Union/Find - Verbesserungen () Union-By-Size Größe beim Vereinigen berücksichtigen Beispiel: Union(, 10): Dominik Paulus Graphalgorithmen.0.01 / 7
63 Union/Find Union-By-Rank Implementierung Negativen Rang des Teilbaumes als Vater abspeichern x p(x) Dominik Paulus Graphalgorithmen / 7
64 Union/Find Zusammenfassung Laufzeit Make-Set O(1) Find-Set O(1) Union O(1) Dominik Paulus Graphalgorithmen / 7
65 Union/Find Zusammenfassung Laufzeit Make-Set O(1) Find-Set O(1) Union O(1) (Zumindest fast...) Dominik Paulus Graphalgorithmen / 7
66 1 Spannbäume Datenstrukturen Kürzeste Pfade Dijkstra Bellman-Ford Floyd-Warshall Spezielle Pfade Dominik Paulus Graphalgorithmen / 7
67 Kürzeste Pfade Problem Wie komme ich auf dem schnellsten Weg von hier zum Kanapee? Dominik Paulus Graphalgorithmen / 7
68 Def.: Pfad Def. Pfad Ein Pfad der Länge n ist ein n-tupel von Knoten (V 1,..., V n ), so dass gilt: i, 1 i < n : (V i, V i+1 ) G.E Dominik Paulus Graphalgorithmen / 7
69 Def.: Pfad Def. Pfad Ein Pfad der Länge n ist ein n-tupel von Knoten (V 1,..., V n ), so dass gilt: i, 1 i < n : (V i, V i+1 ) G.E Ein Pfad ist minimal, wenn die Summe seiner Kantengewichte minimal ist. Dominik Paulus Graphalgorithmen / 7
70 Dijkstra Idee Einen Baum kürzester Pfade wachsen lassen. Implementierung Füge Start mit Gewicht 0 in Warteschlange ein. So lange die Warteschlange nicht leer ist: Wähle Knoten mit geringstem Wert aus Warteschlange Füge alle angrenzenden Knoten mit neuer Distanz in Prioritätswarteschlange ein wieder: Gewichtete Breitensuche, dieses mal andere Kostenfunktion. Dominik Paulus Graphalgorithmen / 7
71 Beispiel G A D B E C F H Prioritätswarteschlange: (leer) Berechnete Wegstrecken: (leer) Dominik Paulus Graphalgorithmen.0.01 / 7
72 Beispiel G A D B E C F H Prioritätswarteschlange: (A, 0) Berechnete Wegstrecken: (leer) Dominik Paulus Graphalgorithmen.0.01 / 7
73 Beispiel G A D B E C F H Prioritätswarteschlange: (B, ), (D, ), (G, ), (E, ) Berechnete Wegstrecken: (A, 0) Dominik Paulus Graphalgorithmen.0.01 / 7
74 Beispiel G A D B E C F H Prioritätswarteschlange: (D, ), (G, ), (C, ), (E, ) Berechnete Wegstrecken: (A, 0), (B, ) Dominik Paulus Graphalgorithmen.0.01 / 7
75 Beispiel G A D B E C F H Prioritätswarteschlange: (G, ), (C, ), (E, ) Berechnete Wegstrecken: (A, 0), (B, ), (D, ) Dominik Paulus Graphalgorithmen.0.01 / 7
76 Beispiel G A D B E C F H Prioritätswarteschlange: (C, ), (E, ) Berechnete Wegstrecken: (A, 0), (B, ), (D, ), (G, ) Dominik Paulus Graphalgorithmen.0.01 / 7
77 Beispiel G A D B E C F H Prioritätswarteschlange: (E, ), (H, 8), (F, 9) Berechnete Wegstrecken: (A, 0), (B, ), (D, ), (G, ), (C, ) Dominik Paulus Graphalgorithmen.0.01 / 7
78 Beispiel G A B C D E F H Prioritätswarteschlange: (H, 8), (F, 9) Berechnete Wegstrecken: (A, 0), (B, ), (D, ), (G, ), (C, ), (E, ) Dominik Paulus Graphalgorithmen.0.01 / 7
79 Beispiel G A B C D E F H Prioritätswarteschlange: (F, 9) Berechnete Wegstrecken: (A, 0), (B, ), (D, ), (G, ), (C, ), (E, ), (H, 8) Dominik Paulus Graphalgorithmen.0.01 / 7
80 Beispiel G A B C D E F H Prioritätswarteschlange: leer Berechnete Wegstrecken: (A, 0), (B, ), (D, ), (G, ), (C, ), (E, ), (H, 8), (F, 9) Dominik Paulus Graphalgorithmen.0.01 / 7
81 Pseudocode 1: Q = Make-Heap() : Insert(Q, root, 0) : while Q do : u =Extract-Min(Q) : for all v G.Adj[u] do 6: if w(u, v) + u.cost < v.cost then 7: v.π = u 8: v.cost = w(u, v) + u.cost 9: end if 10: end for 11: end while Laufzeit: O(E + V log V ) (mit Fibonacci-Heap) Dominik Paulus Graphalgorithmen.0.01 / 7
82 Dijkstra Grenzen Problem Falsche Ergebnisse bei negativen Kantengewichten A B C D Dominik Paulus Graphalgorithmen.0.01 / 7
83 Bellman-Ford Idee Relaxiere die Kanten nicht greedy, sondern in definierter Reihenfolge. Umsetzung Setze Distanz des Startknotens auf 0, aller anderen Knoten auf Wiederhole V 1 mal Für alle Kanten (u, v): Aktualisiere Kosten und Vorgänger von v Dominik Paulus Graphalgorithmen.0.01 / 7
84 Beispiel 0 A B C D Dominik Paulus Graphalgorithmen / 7
85 Beispiel 0 A B C D 0 A B C D Dominik Paulus Graphalgorithmen / 7
86 Beispiel 0 A B C D 0 A B C D 0 A B C D Dominik Paulus Graphalgorithmen / 7
87 Beispiel 0 A B C D 0 A B C D 0 A B C D 0 1 A B C D Dominik Paulus Graphalgorithmen / 7
88 Pseudocode 1: for all v G.V do : v.key =, π(v) = NIL : end for : for i = 1... G.V 1 do : for all (u, v) G.E do 6: if v.key < u.key + w(u, v) then 7: π(v) = u 8: v.key = u.key + w(u, v) 9: end if 10: end for 11: end for Laufzeit: O(EV ) Dominik Paulus Graphalgorithmen / 7
89 Floyd/Warshall Algorithmusidee Ein bestehender kürzester Pfad von Knoten i zu j könnte durch Hinzunahme eines neuen Knotens k verkürzt werden. Dominik Paulus Graphalgorithmen / 7
90 Floyd/Warshall Algorithmusidee Ein bestehender kürzester Pfad von Knoten i zu j könnte durch Hinzunahme eines neuen Knotens k verkürzt werden. Rekursionsformel d (k) ij = { wij falls k = 0 min(d (k 1) ij, d (k 1) ik + d (k 1) jk ) falls k 1 Dann ist d n ij das Gewicht des kürzesten Wegs zwischen Knoten i und j. Dominik Paulus Graphalgorithmen / 7
91 Beispiel D 0 = Dominik Paulus Graphalgorithmen / 7
92 Beispiel D 1 = Dominik Paulus Graphalgorithmen / 7
93 Beispiel D = Dominik Paulus Graphalgorithmen / 7
94 Beispiel D = Dominik Paulus Graphalgorithmen / 7
95 Beispiel D = Dominik Paulus Graphalgorithmen / 7
96 Beispiel D = Dominik Paulus Graphalgorithmen / 7
97 Beispiel D = Dominik Paulus Graphalgorithmen / 7
98 Pseudocode 1: D (0) = W, n = W.rows : for k = 1... n do : Sei D (k) = (d (k) ij ) eine neue n n-matrix : for i = 1... n do : for j = 1... n do 6: d (k) ij = min(d (k 1) ij, d (k 1) ik + d (k 1) kj ) 7: end for 8: end for 9: end for 10: Return D (n) Dominik Paulus Graphalgorithmen / 7
99 Zusammenfassung Dijkstra Bellman-F. Floyd-W. Ziel Single-Source Single-Source All-Pairs Komplexität O(E + V log V ) O(EV ) O(V ) Datenstruktur Fibonacci-Heap - - Darstellung Liste Liste Matrix Negative Kanten Nein Ja Ja Negative Zyklen 1 Nein Ja Ja 1 bzw. Erkennung selbiger Dominik Paulus Graphalgorithmen / 7
100 1 Spannbäume Datenstrukturen Kürzeste Pfade Spezielle Pfade Eulerpfad Eulerzyklus Hamilton-Kreis Dominik Paulus Graphalgorithmen.0.01 / 7
101 Euler-Pfade Problem Gibt es einen Pfad, der sämtliche Kanten exakt einmal durchläuft? Ja, wenn G zusammenhängend ist und... Dominik Paulus Graphalgorithmen.0.01 / 7
102 Euler-Pfade Problem Gibt es einen Pfad, der sämtliche Kanten exakt einmal durchläuft? Ja, wenn G zusammenhängend ist und... Ungerichtete Graphen..., wenn alle oder alle bis auf zwei Knoten geraden Grad haben. A B C E D Dominik Paulus Graphalgorithmen.0.01 / 7
103 Euler-Pfade Problem Gibt es einen Pfad, der sämtliche Kanten exakt einmal durchläuft? Ja, wenn G zusammenhängend ist und... Gerichtete Graphen..., wenn sich für exakt zwei oder gar keinen Knoten Eingangs- und Ausgangsgrad um 1 unterscheiden. C A E D B Dominik Paulus Graphalgorithmen.0.01 / 7
104 Euler-Zyklen Problem Gibt es einen Zyklus, der sämtliche Kanten einmal durchläuft? Ja, wenn G zusammenhängend ist und... Ungerichtete Graphen..., wenn alle Knoten geraden Grad haben. Dominik Paulus Graphalgorithmen.0.01 / 7
105 Euler-Zyklen Problem Gibt es einen Zyklus, der sämtliche Kanten einmal durchläuft? Ja, wenn G zusammenhängend ist und... Gerichtete Graphen..., wenn für alle Knoten Eingangs- und Ausgangsgrad gleich sind. Dominik Paulus Graphalgorithmen.0.01 / 7
106 Hamilton-Kreis Problem Gibt es einen Zyklus, bei dem jeder Knoten exakt einmal enthalten ist? Lösung Im Allgemeinen nicht einfach lösbar NP-vollständig! Verwandtes Problem Travellins-Salesman-Problem Minimaler Hamilton-Kreis. Template im Wiki unter DP. Dominik Paulus Graphalgorithmen.0.01 / 7
107 Hamilton-Kreis Problem Gibt es einen Zyklus, bei dem jeder Knoten exakt einmal enthalten ist? Lösung Im Allgemeinen nicht einfach lösbar NP-vollständig! Verwandtes Problem Travellins-Salesman-Problem Minimaler Hamilton-Kreis. Template im Wiki unter DP. (Löst TSP in O(x e x )). Dominik Paulus Graphalgorithmen.0.01 / 7
108 Zusammenfassung Spannbäume Prim, Kruskal Kürzeste Pfade Dijkstra, Bellman-Ford (Negative Kanten), Floyd-Warshall (All-Pairs, Negative Kanten) Datenstrukturen Union/Find Kruskal, Fibonacci-Heap Prim, Dijkstra Pfade Euler-Pfad, -Zyklus (easy), Hamilton-Kreis (NP-vollständig) Dominik Paulus Graphalgorithmen / 7
109 Quellen Folien vorheriger HalloWelt-Jahrgänge (v. a. 008, 010) Introduction to Algorithms, Thomas Cormen et. al.,. Auflage, MIT Press Dominik Paulus Graphalgorithmen / 7
Graphalgorithmen 2. Oleksiy Rybakov. 3. Juni Betreuer: Tobias Werth, Daniel Brinkers
Graphalgorithmen 2 Oleksiy Rybakov 3. Juni 2015 Betreuer: Tobias Werth, Daniel Brinkers 1 / 40 Inhaltsverzeichnis 1 Minimale Spannbäume und Datenstrukturen 2 Kürzeste Wege 3 Spezielle Graphen 2 / 40 Minimale
MehrEffiziente Algorithmen und Datenstrukturen I. Kapitel 9: Minimale Spannbäume
Effiziente Algorithmen und Datenstrukturen I Kapitel 9: Minimale Spannbäume Christian Scheideler WS 008 19.0.009 Kapitel 9 1 Minimaler Spannbaum Zentrale Frage: Welche Kanten muss ich nehmen, um mit minimalen
MehrGraphen: Datenstrukturen und Algorithmen
Graphen: Datenstrukturen und Algorithmen Ein Graph G = (V, E) wird durch die Knotenmenge V und die Kantenmenge E repräsentiert. G ist ungerichtet, wenn wir keinen Start- und Zielpunkt der Kanten auszeichnen.
Mehr3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel
3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel EADS 3.1 Konstruktion von minimalen Spannbäumen 16/36
MehrKürzeste Wege in Graphen. Maurice Duvigneau Otto-von-Guericke Universität Fakultät für Informatik
Kürzeste Wege in Graphen Maurice Duvigneau Otto-von-Guericke Universität Fakultät für Informatik Gliederung Einleitung Definitionen Algorithmus von Dijkstra Bellmann-Ford Algorithmus Floyd-Warshall Algorithmus
MehrEin Graph ist ein Paar (V,E), wobei V eine Menge von Knoten und E eine Menge von Kanten (v,w) mit v,w in V ist.
Graphen Definition: Ein Graph ist ein Paar (V,E), wobei V eine Menge von Knoten und E eine Menge von Kanten (v,w) mit v,w in V ist. Begriffe: Gerichteter Graph: Alle Kanten haben eine Richtung vom Anfangsknoten
MehrC++, LEDA und STL Visualisierung minimal/maximal aufspannender Bäume
Fachbereich IV, Informatik Softwarepraktikum C++, LEDA und STL Visualisierung minimal/maximal aufspannender Bäume Wintersemester 2004/2005 Dokumentation Algorithmen zur Lösung von MST - Problemen Nicolas
MehrDefinition Ein gerichteter Graph G = (V, E) ist ein Graph von geordneten Paaren (u, v) mit u V und v V.
Kapitel 4 Graphenalgorithmen 4.1 Definitionen Definition 4.1.1. Der Graph G = (V, E) ist über die beiden Mengen V und E definiert, wobei V die Menge der Knoten und E die Menge der Kanten in dem Graph ist.
MehrFelix Brandt, Jan Johannsen. Vorlesung im Wintersemester 2008/09
Felix Brandt, Jan Johannsen Vorlesung im Wintersemester 2008/09 Übersicht Übersicht Definition Ein Matching in G = (V, E) ist eine Menge M E mit e 1 e 2 = für e 1, e 2 M, e 1 e 2 Ein Matching M ist perfekt,
Mehr4 Greedy-Algorithmen (gierige Algorithmen)
Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen werden oft für die exakte oder approximative Lösung von Optimierungsproblemen verwendet. Typischerweise konstruiert ein Greedy-Algorithmus eine
MehrProseminar Online Algorithmen, Prof. Dr. Rolf Klein
Proseminar Online Algorithmen, Prof. Dr. Rolf Klein Vortrag von Michael Daumen am 13.12.2000 Thema : Minimum Spanning Tree und 2-Approximation der TSP-Tour Inhalt des Vortrags : 1. genaue Vorstellung des
Mehr11. Übungsblatt zu Algorithmen I im SS 2010
Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. Dr. Peter Sanders G.V. Batz, C. Schulz, J. Speck 11. Übungsblatt zu Algorithmen I im SS 2010 http://algo2.iti.kit.edu/algorithmeni.php
MehrBabeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf
Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005 Paradigmen im Algorithmenentwurf Problemlösen Problem definieren Algorithmus entwerfen
MehrDatenstrukturen. Mariano Zelke. Sommersemester 2012
Datenstrukturen Mariano Zelke Sommersemester 2012 Prioritätswarteschlangen Mariano Zelke Datenstrukturen 2/28 Der abstrakte Datentyp Prioritätswarteschlange : Füge Elemente (mit Prioritäten) ein und entferne
MehrEffiziente Algorithmen und Datenstrukturen: Kürzeste Wege
Effiziente Algorithmen und Datenstrukturen: Kürzeste Wege Kürzeste Wege Zentrale Frage: Wie komme ich am schnellsten von A nach B? B A Kürzeste Wege Zentrale Frage: Wie komme ich am schnellsten von A nach
MehrTechnische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen
Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen 186.172 Algorithmen und Datenstrukturen 1 VL 4.0 Übungsblatt 4 für die Übung
MehrDATENSTRUKTUREN UND ALGORITHMEN
DATENSTRUKTUREN UND ALGORITHMEN 2 Ist die Datenstruktur so wichtig??? Wahl der Datenstruktur wichtiger Schritt beim Entwurf und der Implementierung von Algorithmen Dünn besetzte Graphen und Matrizen bilden
MehrDatenstrukturen & Algorithmen
Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Binäre Suchbäume Einführung und Begriffe Binäre Suchbäume 2 Binäre Suchbäume Datenstruktur für dynamische Mengen
MehrAlgorithmen und Datenstrukturen 2
Algorithmen und Datenstrukturen 2 Sommersemester 2006 5. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Wdhlg.: Dijkstra-Algorithmus I Bestimmung der
Mehr3. Musterlösung. Problem 1: Boruvka MST
Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 06/07 ITI Wagner. Musterlösung Problem : Boruvka MST pt (a) Beweis durch Widerspruch. Sei T MST von G, e die lokal minimale Kante eines
MehrFerienkurs zur algorithmischen diskreten Mathematik Kapitel 3: Minimal aufspannende Bäume und Matroide
Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 3: Minimal aufspannende Bäume und Matroide Dipl-Math. Wolfgang Kinzner 3.4.2012 Kapitel 3: Minimal aufspannende Bäume und Matroide Minimal aufspannende
MehrDas Briefträgerproblem
Das Briefträgerproblem Paul Tabatabai 30. Dezember 2011 Inhaltsverzeichnis 1 Problemstellung und Modellierung 2 1.1 Problem................................ 2 1.2 Modellierung.............................
MehrAnmerkungen zur Übergangsprüfung
DM11 Slide 1 Anmerkungen zur Übergangsprüfung Aufgabeneingrenzung Aufgaben des folgenden Typs werden wegen ihres Schwierigkeitsgrads oder wegen eines ungeeigneten fachlichen Schwerpunkts in der Übergangsprüfung
MehrKombinatorische Optimierung
Juniorprof. Dr. Henning Meyerhenke 1 Henning Meyerhenke: KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Vorlesung 4 Programm des
MehrADS: Algorithmen und Datenstrukturen 2
ADS: Algorithmen und Datenstrukturen 2 Teil 5 Prof. Peter F. Stadler & Dr. Christian Höner zu Siederdissen Bioinformatik/IZBI Institut für Informatik & Interdisziplinäres Zentrum für Bioinformatik Universität
MehrGraphen. Formale Methoden der Informatik WiSe 2010/2011 teil 2, folie 1 (von 60)
Graphen Formale Methoden der Informatik WiSe 2010/2011 teil 2, folie 1 (von 60) Teil II: Graphen 1. Einführung 2. Wege und Kreise in Graphen, Bäume 3. Planare Graphen / Traveling Salesman Problem 4. Transportnetzwerke
MehrADS: Algorithmen und Datenstrukturen 2
ADS: Algorithmen und Datenstrukturen Der Tragödie IV. Theyl Peter F. Stadler & Konstantin Klemm Bioinformatics Group, Dept. of Computer Science & Interdisciplinary Center for Bioinformatics, University
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Datenstrukturen: Anordnung von Daten, z.b. als Liste (d.h. in bestimmter Reihenfolge) Beispiel: alphabetisch sortiertes Wörterbuch... Ei - Eibe - Eidotter... als Baum (d.h.
MehrDynamische Programmierung. Problemlösungsstrategie der Informatik
als Problemlösungsstrategie der Informatik und ihre Anwedung in der Diskreten Mathematik und Graphentheorie Fabian Cordt Enisa Metovic Wissenschaftliche Arbeiten und Präsentationen, WS 2010/2011 Gliederung
Mehrκ(k) k K S Algorithmus zur Bestimmung eines spannenden Baumes mit minimalen Kosten (Kruskal, 1965).
5. Graphenprobleme Im folgenden bezeichnen G = (E, K) einen endlichen Graphen mit der Eckenmenge E und der Kantenmenge K. G kann ungerichtet, gerichtet, schlicht oder nicht schlicht sein. 5.1 Spannende
MehrDiskrete Mathematik. Sebastian Iwanowski FH Wedel. Kap. 6: Graphentheorie
Referenzen zum Nacharbeiten: Diskrete Mathematik Sebastian Iwanowski FH Wedel Kap. 6: Graphentheorie Lang 6 Beutelspacher 8.1-8.5 Meinel 11 zur Vertiefung: Aigner 6, 7 (7.4: Algorithmus von Dijkstra) Matousek
Mehr16. All Pairs Shortest Path (ASPS)
. All Pairs Shortest Path (ASPS) All Pairs Shortest Path (APSP): Eingabe: Gewichteter Graph G=(V,E) Ausgabe: Für jedes Paar von Knoten u,v V die Distanz von u nach v sowie einen kürzesten Weg a b c d e
MehrGraph Paar (V,E) V: nichtleere Menge von Knoten (vertex) E: Menge von Kanten (edges): Relation (Verbindung) zwischen den Knoten
Graphentheorie Graph Paar (V,E) V: nichtleere Menge von Knoten (vertex) E: Menge von Kanten (edges): Relation (Verbindung) zwischen den Knoten gerichteter Graph (DiGraph (directed graph) E: Teilmenge E
MehrVorlesung 4 BETWEENNESS CENTRALITY
Vorlesung 4 BETWEENNESS CENTRALITY 101 Aufgabe! Szenario: Sie arbeiten bei einem sozialen Online-Netzwerk. Aus der Netzwerk-Struktur Ihrer Benutzer sollen Sie wichtige Eigenschaften extrahieren. [http://www.fahrschule-vatterodt.de/
Mehr23. November Betweenness Centrality Closeness Centrality. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 108
23. November 2011 Betweenness Centrality Closeness Centrality H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 108 Betweenness Centrality Grundlegende Idee: Ein Knoten ist wichtig, wenn er auf
MehrSuchen und Sortieren Sortieren. Heaps
Suchen und Heaps (Folie 245, Seite 63 im Skript) 3 7 21 10 17 31 49 28 14 35 24 42 38 Definition Ein Heap ist ein Binärbaum, der die Heapeigenschaft hat (Kinder sind größer als der Vater), bis auf die
MehrÜberblick. TSP Vergleich der Lösungen. Das Travelling Salesman Problem. Nearest-Neighbor Heuristik für TSP
Kap..1 Heuristiken Kap.. Approximative Algorithmen und Gütegarantien Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 3. VO DAP SS 008 14. Juli 009 Überblick
MehrAlgorithmen und Datenstrukturen Suchbaum
Algorithmen und Datenstrukturen Suchbaum Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Motivation Datenstruktur zur Repräsentation dynamischer Mengen
MehrSingle Source Sortest Path Negative Kreise All-Pair Shortest Path Problem Minimum Mean Cycle Zusammenfassung. Shortest Paths
Shortest Paths Label Correcting Algorithms Florian Reitz Universität Trier Fachbereich IV Fach Informatik Seminar Netzwerkalgorithmen WS 2005/2006 Einleitung: Problemübersicht Eben: Schnelle Algorithmen
MehrAufgabe 4.2 Sei G = (V, E, l) ein ungerichteter, gewichteter und zusammenhängender Graph.
Aufgabe 4.2 Sei G = (V, E, l) ein ungerichteter, gewichteter und zusammenhängender Graph. a) Es seien W 1 = (V, E 1 ), W 2 = (V, E 2 ) Untergraphen von G, die beide Wälder sind. Weiter gelte E 1 > E 2.
Mehr8 Diskrete Optimierung
8 Diskrete Optimierung Definition 8.1. Ein Graph G ist ein Paar (V (G), E(G)) besteh aus einer lichen Menge V (G) von Knoten (oder Ecken) und einer Menge E(G) ( ) V (G) 2 von Kanten. Die Ordnung n(g) von
MehrAlgorithmen und Datenstrukturen Kapitel 10
Algorithmen und Datenstrukturen Kapitel 10 Flüsse Frank Heitmann heitmann@informatik.uni-hamburg.de 6. Januar 2016 Frank Heitmann heitmann@informatik.uni-hamburg.de 1/8 Flüsse Graphen Grundlagen Definition
MehrAlgorithmen II Vorlesung am
Algorithmen II Vorlesung am 0..0 Minimale Schnitte in Graphen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales Forschungszentrum
MehrDatenstrukturen. Mariano Zelke. Sommersemester 2012
Datenstrukturen Mariano Zelke Sommersemester 2012 Mathematische Grundlagen: Das Handwerkszeug Mariano Zelke Datenstrukturen 2/26 Formeln: n - i = n (n+1) 2 und - i=1 k i=0 a i = ak+1 1 a 1, falls a 1 Rechnen
MehrGrundlagen der Informatik
1 Vorlesung Grundlagen der Informatik Dr. Frank Sausen Skript und Folien: Prof. Dr. Wolfgang Ertel 6. Oktober 2008 Hochschule Ravensburg Weingarten Technik Wirtschaft Sozialwesen c W. Ertel 2 Inhaltsverzeichnis
MehrAlgorithmen und Datenstrukturen 2
Algorithmen und Datenstrukturen 2 Sommersemester 2006 3. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Algorithmen für Graphen Fragestellungen: Suche
MehrTECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2009 Grundlagen: Algorithmen und Datenstrukturen Übungsblatt 11 Prof. Dr. Helmut Seidl, S. Pott,
MehrGraphen. Leonhard Euler ( )
Graphen Leonhard Euler (1707-1783) 2 Graph Ein Graph besteht aus Knoten (nodes, vertices) die durch Kanten (edges) miteinander verbunden sind. 3 Nachbarschaftsbeziehungen Zwei Knoten heissen adjazent (adjacent),
MehrKapitel 4: Minimal spannende Bäume Gliederung der Vorlesung
Kapitel : Minimal spannende Bäume Gliederung der Vorlesung. Fallstudie Bipartite Graphen 2. Grundbegriffe. Elementare Graphalgorithmen und Anwendungen. Minimal spannende Bäume. Kürzeste Wege. Traveling
MehrKapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete
Kapitel 4: Dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2012/13 Prof. Dr. Sándor Fekete 4.4 Binäre Suche Aufgabenstellung: Rate eine Zahl zwischen 100 und 114! Algorithmus 4.1 INPUT: OUTPUT:
Mehr2. Übungsblatt zu Algorithmen II im WS 2016/2017
Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. Dr. Peter Sanders Dr. Christian Schulz, Dr. Simon Gog Michael Axtmann. Übungsblatt zu Algorithmen II im WS 016/017 Aufgabe
MehrKapitel 4: Minimale spannende Bäume Gliederung der Vorlesung
Kapitel : Minimale spannende Bäume Gliederung der Vorlesung. Grundbegriffe 2. Elementare Graphalgorithmen und Anwendungen. Kürzeste Wege. Minimale spannende Bäume. Färbungen und Cliquen. Traveling Salesman
MehrAlgorithmen und Datenstrukturen 2
Algorithmen und Datenstrukturen 2 Sommersemester 2007 4. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Traversierung Durchlaufen eines Graphen, bei
MehrMinimal spannender Baum
Minimal spannender Baum 16 1 2 21 5 11 19 6 6 3 14 33 10 5 4 18 Die Kreise zeigen die vorgesehenen Standorte neu zu errichtender Filialen einer Bank. Entlang der bestehenden Straßen sollen Telefonleitungen
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Wintersemester 2012/13 22. Vorlesung Tiefensuche und Topologische Sortierung Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Vorlesungsumfrage Nutzen Sie die Vorlesungsbefragung
MehrInstitut für Mathematik Geometrie und Lineare Algebra J. Schönenberger-Deuel. Aufgabe 1. Wir geben nur zwei von sehr vielen möglichen Strategien.
Lösungen Übung 13 Aufgabe 1. Wir geben nur zwei von sehr vielen möglichen Strategien. a) Strategie 1 (nächster Nachbar): Jedes Mal reist der Reisende vom Punkt, wo er gerade ist, zur nächstgelegenen Stadt,
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Werner Struckmann Wintersemester 2005/06 8. Graphen 8.1 Mathematische Grundlagen 8.2 Darstellung von Graphen 8.3 Ausgewählte Algorithmen für ungewichtete Graphen 8.4 Ausgewählte
MehrVorlesung 3 MINIMALE SPANNBÄUME
Vorlesung 3 MINIMALE SPANNBÄUME 72 Aufgabe! Szenario: Sie arbeiten für eine Firma, die ein Neubaugebiet ans Netz (Wasser, Strom oder Kabel oder...) anschließt! Ziel: Alle Haushalte ans Netz bringen, dabei
MehrUniversität des Saarlandes
Universität des Saarlandes FR 6.2 Informatik Prof. Dr. Kurt Mehlhorn WiSe 2015/2016 Übungen zu Ideen der Informatik http://www.mpi-inf.mpg.de/departments/algorithms-complexity/teaching/winter15/ideen/
MehrFlüsse, Schnitte, bipartite Graphen. Martin Oettinger
Flüsse, Schnitte, bipartite Graphen Martin Oettinger Übersicht Einführung Algorithmen für maximalen Fluss Preflow-Push Ford-Fulkerson Spezialfall: Maximaler Fluss bei minimalen Kosten Reduktionen Bipartites
MehrFully dynamic algorithms for the single source shortest path problem.
Fully dynamic algorithms for the single source shortest path problem. Michael Baur Wintersemester 2001/2002 Zusammenfassung Im folgenden Paper werde ich Algorithmen für das dynamische Kürzeste-Wege-Problem
MehrWS 2009/10. Diskrete Strukturen
WS 2009/10 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0910
Mehr5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c)
5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c) mit V = {1,...,n} und E {(v, w) 1 apple v, w apple n, v 6= w}. c : E!
MehrMinimum Spanning Tree
1.5 1.5 1.0 0.75.0 0.75 Gegeben ein Graph G = (V, E). Die Knotenmenge V repräsentiere eine Menge von Spezies. Jede Kante e = (v,u) ist beschriftet mit der evolutionäre Distanz w(v,u) (Kantengewicht) des
Mehr13. Binäre Suchbäume
1. Binäre Suchbäume Binäre Suchbäume realiesieren Wörterbücher. Sie unterstützen die Operationen 1. Einfügen (Insert) 2. Entfernen (Delete). Suchen (Search) 4. Maximum/Minimum-Suche 5. Vorgänger (Predecessor),
MehrDatenstruktur, die viele Operationen dynamischer Mengen unterstützt
Algorithmen und Datenstrukturen 265 10 Binäre Suchbäume Suchbäume Datenstruktur, die viele Operationen dynamischer Mengen unterstützt Kann als Wörterbuch, aber auch zu mehr eingesetzt werden (Prioritätsschlange)
Mehr11.1 Grundlagen - Denitionen
11 Binärbäume 11.1 Grundlagen - Denitionen Denition: Ein Baum ist eine Menge, die durch eine sog. Nachfolgerrelation strukturiert ist. In einem Baum gilt: (I) (II) 1 Knoten w ohne VATER(w), das ist die
MehrMinimal spannende Bäume
http://www.uni-magdeburg.de/harbich/ Minimal spannende Fakultät für Informatik Otto-von-Guericke-Universität 2 Inhalt Definition Wege Untergraphen Kantengewichtete Graphen Minimal spannende Algorithmen
MehrErinnerung VL
Erinnerung VL 30.05.2016 Radix-Sort, Abschluss Sortieren Prioritätslisten: Warteschlange mit Prioritäten deletemin: kleinstes Element rausnehmen insert: Element einfügen Binäre Heaps als Implementierung
MehrKapitel : Andere dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete
Kapitel 4.8-4.11: Andere dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2012/13 Prof. Dr. Sándor Fekete 4.6 AVL-Bäume 4.8 Rot-Schwarz-Bäume Idee: Verwende Farben, um den Baum vertikal zu
MehrGeometrische Algorithmen
Geometrische Algorithmen Thomas Röfer Motivation Scan-line-Prinzip Konvexe Hülle Distanzprobleme Voronoi-Diagramm Rückblick Manipulation von Mengen Vorrangwarteschlange Heap HeapSort swap(a, 0, 4) 1 5
Mehr1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie
Gliederung 1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. äume / Graphen. Hashing 6. Algorithmische Geometrie 4/6, Folie 1 2014 Prof. Steffen Lange - HDa/FbI
MehrMassive Parallelität : Neuronale Netze
Massive Parallelität : Neuronale Netze PI2 Sommer-Semester 2005 Hans-Dieter Burkhard Massive Parallelität : Neuronale Netze Knoten: Neuronen Neuronen können erregt ( aktiviert ) sein Kanten: Übertragung
MehrCustomization (Zuschneiden)
Customization (Zuschneiden) Anpassen der (Graph)Datenstruktur an die Anwendung. I Ziel: schnell, kompakt. I benutze Entwurfsprinzip: make the common case fast I Listen vermeiden Mögliches Problem: Software-Engineering-Alptraum
MehrAlgorithmische Methoden zur Netzwerkanalyse
Algorithmische Methoden zur Netzwerkanalyse Juniorprof. Dr. Henning Meyerhenke Institut für Theoretische Informatik 1 KIT Henning Universität desmeyerhenke, Landes Baden-Württemberg Institutund für Theoretische
Mehrf h c 7 a 1 b 1 g 2 2 d
) Man bestimme mit Hilfe des Dijkstra-Algorithmus einen kürzesten Weg von a nach h: c 7 a b f 5 h 3 4 5 i e 6 g 2 2 d Beim Dijkstra-Algorithmus wird in jedem Schritt von den noch unmarkierten Knoten jener
MehrS=[n] Menge von Veranstaltungen J S kompatibel mit maximaler Größe J
Greedy-Strategie Definition Paradigma Greedy Der Greedy-Ansatz verwendet die Strategie 1 Top-down Auswahl: Bestimme in jedem Schritt eine lokal optimale Lösung, so dass man eine global optimale Lösung
MehrFlüsse, Schnitte, bipartite Graphen
Flüsse, Schnitte, bipartite Graphen Vlad Popa 08.06.2010 Inhaltsverzeihnis 1. Flussnetzwerke und Flüsse 1.1 Ford- Fulkerson 1.2 Edmond Karp 1.3 Dinic 2. Schnitte 3. Maximaler Fluss bei minimalen Kosten
MehrWiederholung zu Flüssen
Universität Konstanz Methoden der Netzwerkanalyse Fachbereich Informatik & Informationswissenschaft SS 2008 Prof. Dr. Ulrik Brandes / Melanie Badent Wiederholung zu Flüssen Wir untersuchen Flüsse in Netzwerken:
MehrAlgorithmen und Datenstrukturen in der Bioinformatik Viertes Übungsblatt WS 05/06 Musterlösung
Konstantin Clemens Johanna Ploog Freie Universität Berlin Institut für Mathematik II Arbeitsgruppe für Mathematik in den Lebenswissenschaften Algorithmen und Datenstrukturen in der Bioinformatik Viertes
Mehr1 topologisches Sortieren
Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung
MehrGrundlagen Datenstrukturen Transitive Hülle Traversierung Kürzeste Wege Spannender Baum Max. Fluss Zuordnungen. 6. Graphen
. Graphen viele praktische (Optimierungs-)Probleme sind als graphentheoretische Probleme formulierbar z.b. in Produktionsplanung, Personaleinsatzplanung,.... Grundlagen gerichteter, ungerichteter und gewichteter
MehrBreiten- und Tiefensuche in Graphen
Breiten- und Tiefensuche in Graphen Inhalt Theorie. Graphen. Die Breitensuche in der Theorie am Beispiel eines ungerichteten Graphen. Die Tiefensuche in der Theorie am Beispiel eines gerichteten Graphen
MehrDurchschnitt von Matroiden
Durchschnitt von Matroiden Satz von Edmonds Dany Sattler 18. Januar 2007/ Seminar zur ganzzahligen Optimierung / Wallenfels Definition: Unabhängigkeitssystem Definition: Ein Mengensystem (S, J ) nennt
MehrAlgorithmen II Vorlesung am 15.11.2012
Algorithmen II Vorlesung am 15.11.2012 Kreisbasen, Matroide & Algorithmen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales
MehrAlgorithmik Funke/Bahrdt/Krumpe/Mendel/Seybold SS Übungsblatt 4
Algorithmik Funke/Bahrdt/Krumpe/Mendel/Seybold SS 2015 http://www.fmi.informatik.uni-stuttgart.de/alg Institut für Formale Methoden der Informatik Universität Stuttgart Übungsblatt 4 Punkte: 50 Problem
MehrDatenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 14
Eidgenössische Technische Hochschule Zürich Ecole polytechnique fédérale de Zurich Politecnico federale di Zurigo Federal Institute of Technology at Zurich Institut für Theoretische Informatik 2. April
MehrEffiziente Algorithmen I
H 10. Präsenzaufgabenblatt, Wintersemester 2015/16 Übungstunde am 18.01.2015 Aufgabe Q Ein Reiseveranstalter besitzt ein Flugzeug, das maximal p Personen aufnehmen kann. Der Veranstalter bietet einen Flug
MehrEinführung in minimale Spannbäume und deren Berechnung
Einführung in minimale Spannbäume und deren Berechnung Johannes Diemke Nils Sommer Universität Oldenburg, FK II - Department für Informatik Vortrag im Rahmen des Proseminars 00 Zusammenfassung: In der
MehrReferat zum Thema Huffman-Codes
Referat zum Thema Huffman-Codes Darko Ostricki Yüksel Kahraman 05.02.2004 1 Huffman-Codes Huffman-Codes ( David A. Huffman, 1951) sind Präfix-Codes und das beste - optimale - Verfahren für die Codierung
MehrInformatik 11 Kapitel 2 - Rekursive Datenstrukturen
Fachschaft Informatik Informatik 11 Kapitel 2 - Rekursive Datenstrukturen Michael Steinhuber König-Karlmann-Gymnasium Altötting 15. Januar 2016 Folie 1/77 Inhaltsverzeichnis I 1 Datenstruktur Schlange
MehrMaximale s t-flüsse in Planaren Graphen
Maximale s t-flüsse in Planaren Graphen Vorlesung Algorithmen für planare Graphen June 1, 2015 Ignaz Rutter INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg
MehrLiteratur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS)
Dominating Set 59 Literatur Dominating Set Grundlagen 60 Dominating Set (DS) M. V. Marathe, H. Breu, H.B. Hunt III, S. S. Ravi, and D. J. Rosenkrantz: Simple Heuristics for Unit Disk Graphs. Networks 25,
MehrKapitel 5: Minimale spannende Bäume Gliederung der Vorlesung
Gliederung der Vorlesung 1. Grundbegriffe 2. Elementare Graphalgorithmen und Anwendungen 3. Kürzeste Wege. Minimale spannende Bäume. Färbungen und Cliquen. Traveling Salesman Problem. Flüsse in Netzwerken
Mehr9. Übung Algorithmen I
INSTITUT FÜR THEORETISCHE INFORMATIK 1 KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft Institut für Theoretische www.kit.edu Informatik Musterlösung
MehrBinary Decision Diagrams (Einführung)
Binary Decision Diagrams (Einführung) Binary Decision Diagrams (BDDs) sind bestimmte Graphen, die als Datenstruktur für die kompakte Darstellung von booleschen Funktionen benutzt werden. BDDs wurden von
MehrGrundbegriffe der Informatik
Grundbegriffe der Informatik Einheit 11: Graphen Thomas Worsch Karlsruher Institut für Technologie, Fakultät für Informatik Wintersemester 2010/2011 1/59 Graphische Darstellung von Zusammenhängen schon
MehrToleranzbasierte Algorithmen für das Travelling Salesman Problem. Gerold Jäger
Toleranzbasierte Algorithmen für das Travelling Salesman Problem Gerold Jäger (Zusammenarbeit mit Jop Sibeyn, Boris Goldengorin) Institut für Informatik Martin-Luther-Universität Halle-Wittenberg gerold.jaeger@informatik.uni-halle.de
MehrMafI I: Logik & Diskrete Mathematik (F. Hoffmann)
Lösungen zum 14. und letzten Aufgabenblatt zur Vorlesung MafI I: Logik & Diskrete Mathematik (F. Hoffmann) 1. Ungerichtete Graphen (a) Beschreiben Sie einen Algorithmus, der algorithmisch feststellt, ob
MehrRouting Algorithmen. Begriffe, Definitionen
Begriffe, Definitionen Routing (aus der Informatik) Wegewahl oder Verkehrslenkung bezeichnet in der Telekommunikation das Festlegen von Wegen für Nachrichtenströme bei der Nachrichtenübermittlung über
Mehr