Graphalgorithmen 2. Dominik Paulus Dominik Paulus Graphalgorithmen / 47

Größe: px
Ab Seite anzeigen:

Download "Graphalgorithmen 2. Dominik Paulus Dominik Paulus Graphalgorithmen / 47"

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 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

Mehr

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

Effiziente 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

Mehr

Graphen: Datenstrukturen und Algorithmen

Graphen: 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.

Mehr

3.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 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

Mehr

Kü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 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

Mehr

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.

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. 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

Mehr

C++, LEDA und STL Visualisierung minimal/maximal aufspannender Bäume

C++, 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

Mehr

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

Definition 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.

Mehr

Felix Brandt, Jan Johannsen. Vorlesung im Wintersemester 2008/09

Felix 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,

Mehr

4 Greedy-Algorithmen (gierige Algorithmen)

4 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

Mehr

Proseminar Online Algorithmen, Prof. Dr. Rolf Klein

Proseminar 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

Mehr

11. Übungsblatt zu Algorithmen I im SS 2010

11. Ü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

Mehr

Babeș-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 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

Mehr

Datenstrukturen. Mariano Zelke. Sommersemester 2012

Datenstrukturen. 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

Mehr

Effiziente Algorithmen und Datenstrukturen: Kürzeste Wege

Effiziente 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

Mehr

Technische 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 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

Mehr

DATENSTRUKTUREN UND ALGORITHMEN

DATENSTRUKTUREN 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

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & 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

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen 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

Mehr

3. Musterlösung. Problem 1: Boruvka MST

3. 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

Mehr

Ferienkurs 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 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

Mehr

Das Briefträgerproblem

Das Briefträgerproblem Das Briefträgerproblem Paul Tabatabai 30. Dezember 2011 Inhaltsverzeichnis 1 Problemstellung und Modellierung 2 1.1 Problem................................ 2 1.2 Modellierung.............................

Mehr

Anmerkungen zur Übergangsprüfung

Anmerkungen 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

Mehr

Kombinatorische Optimierung

Kombinatorische 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

Mehr

ADS: Algorithmen und Datenstrukturen 2

ADS: 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

Mehr

Graphen. 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) 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

Mehr

ADS: Algorithmen und Datenstrukturen 2

ADS: 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

Mehr

Algorithmen und Datenstrukturen

Algorithmen 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.

Mehr

Dynamische Programmierung. Problemlösungsstrategie der Informatik

Dynamische 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).

κ(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

Mehr

Diskrete Mathematik. Sebastian Iwanowski FH Wedel. Kap. 6: Graphentheorie

Diskrete 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

Mehr

16. All Pairs Shortest Path (ASPS)

16. 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

Mehr

Graph Paar (V,E) V: nichtleere Menge von Knoten (vertex) E: Menge von Kanten (edges): Relation (Verbindung) zwischen den Knoten

Graph 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

Mehr

Vorlesung 4 BETWEENNESS CENTRALITY

Vorlesung 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/

Mehr

23. November Betweenness Centrality Closeness Centrality. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 108

23. 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

Mehr

Suchen und Sortieren Sortieren. Heaps

Suchen 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

Ü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

Mehr

Algorithmen und Datenstrukturen Suchbaum

Algorithmen 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

Mehr

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

Single 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

Mehr

Aufgabe 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. 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.

Mehr

8 Diskrete Optimierung

8 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

Mehr

Algorithmen und Datenstrukturen Kapitel 10

Algorithmen 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

Mehr

Algorithmen II Vorlesung am

Algorithmen 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

Mehr

Datenstrukturen. Mariano Zelke. Sommersemester 2012

Datenstrukturen. 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

Mehr

Grundlagen der Informatik

Grundlagen 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

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen 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

Mehr

TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK

TECHNISCHE 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,

Mehr

Graphen. Leonhard Euler ( )

Graphen. 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),

Mehr

Kapitel 4: Minimal spannende Bäume Gliederung der Vorlesung

Kapitel 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

Mehr

Kapitel 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 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:

Mehr

2. Übungsblatt zu Algorithmen II im WS 2016/2017

2. Ü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

Mehr

Kapitel 4: Minimale spannende Bäume Gliederung der Vorlesung

Kapitel 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

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen 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

Mehr

Minimal spannender Baum

Minimal 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

Mehr

Algorithmen und Datenstrukturen

Algorithmen 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

Mehr

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

Institut 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,

Mehr

Algorithmen und Datenstrukturen

Algorithmen 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

Mehr

Vorlesung 3 MINIMALE SPANNBÄUME

Vorlesung 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

Mehr

Universität des Saarlandes

Universitä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/

Mehr

Flüsse, Schnitte, bipartite Graphen. Martin Oettinger

Flü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

Mehr

Fully dynamic algorithms for the single source shortest path problem.

Fully 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

Mehr

WS 2009/10. Diskrete Strukturen

WS 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

Mehr

5.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) 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!

Mehr

Minimum Spanning Tree

Minimum 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

Mehr

13. Binäre Suchbäume

13. 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),

Mehr

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt

Datenstruktur, 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)

Mehr

11.1 Grundlagen - Denitionen

11.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

Mehr

Minimal spannende Bäume

Minimal 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

Mehr

Erinnerung VL

Erinnerung 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

Mehr

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

Kapitel : 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

Mehr

Geometrische Algorithmen

Geometrische 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

Mehr

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie

1. 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

Mehr

Massive Parallelität : Neuronale Netze

Massive 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

Mehr

Customization (Zuschneiden)

Customization (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

Mehr

Algorithmische Methoden zur Netzwerkanalyse

Algorithmische 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

Mehr

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

f 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

Mehr

S=[n] Menge von Veranstaltungen J S kompatibel mit maximaler Größe J

S=[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

Mehr

Flüsse, Schnitte, bipartite Graphen

Flü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

Mehr

Wiederholung zu Flüssen

Wiederholung 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:

Mehr

Algorithmen und Datenstrukturen in der Bioinformatik Viertes Übungsblatt WS 05/06 Musterlösung

Algorithmen 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

Mehr

1 topologisches Sortieren

1 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

Mehr

Grundlagen Datenstrukturen Transitive Hülle Traversierung Kürzeste Wege Spannender Baum Max. Fluss Zuordnungen. 6. Graphen

Grundlagen 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

Mehr

Breiten- und Tiefensuche in Graphen

Breiten- 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

Mehr

Durchschnitt von Matroiden

Durchschnitt 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

Mehr

Algorithmen II Vorlesung am 15.11.2012

Algorithmen 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

Mehr

Algorithmik Funke/Bahrdt/Krumpe/Mendel/Seybold SS Übungsblatt 4

Algorithmik 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

Mehr

Datenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 14

Datenstrukturen & 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

Mehr

Effiziente Algorithmen I

Effiziente 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

Mehr

Einführung in minimale Spannbäume und deren Berechnung

Einfü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

Mehr

Referat zum Thema Huffman-Codes

Referat 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

Mehr

Informatik 11 Kapitel 2 - Rekursive Datenstrukturen

Informatik 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

Mehr

Maximale s t-flüsse in Planaren Graphen

Maximale 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

Mehr

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS)

Literatur. 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,

Mehr

Kapitel 5: Minimale spannende Bäume Gliederung der Vorlesung

Kapitel 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

Mehr

9. Übung Algorithmen I

9. Ü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

Mehr

Binary Decision Diagrams (Einführung)

Binary 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

Mehr

Grundbegriffe der Informatik

Grundbegriffe 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

Mehr

Toleranzbasierte Algorithmen für das Travelling Salesman Problem. Gerold Jäger

Toleranzbasierte 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

Mehr

MafI I: Logik & Diskrete Mathematik (F. Hoffmann)

MafI 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

Mehr

Routing Algorithmen. Begriffe, Definitionen

Routing 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