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

Größe: px
Ab Seite anzeigen:

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

Transkript

1 Gliederung 1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. äume / Graphen. Hashing 6. Algorithmische Geometrie 4/6, Folie Prof. Steffen Lange - HDa/FbI - Datenstrukturen

2 estimmen aufspannender äume u Motivation (Teil 1) gegeben: seien n Städte (/* hier A,,...,E */) und damit ein ungerichteter Graph G (/* in dem zwischen je zwei Städten eine Kante vorkommt */) C A D E gesucht: Teilgraph G von G, in dem es eine Verbindung von jeder Stadt zu jeder anderen Stadt gibt (/* Telefon- bzw. Stromleitungsnetz */) 4/6, Folie Prof. Steffen Lange - HDa/FbI - Datenstrukturen

3 estimmen aufspannender äume u Motivation (Teil 1, cont.)... mögliche Lösungen C A C A D E D E 4/6, Folie Prof. Steffen Lange - HDa/FbI - Datenstrukturen

4 estimmen aufspannender äume u Grundbegriffe es sei G = (V,E) ein ungerichteter Graph G ist zusammenhängend, falls es zu je zwei Knoten x,y V einen Weg w = (v 1,v 2,...,v n-1,v n ) von x nach y in G gibt (/* d.h. v 1 = v und v n = v und { v i,v i+1 } E für alle i mit 1 i n - 1 */) G hat einen Kreis, falls es einen Knoten x V und einen Weg w = (v 1,v 2,...,v n-1,v n ) mit n > 3 von x nach x gibt (/* d.h. v 1 = v n =x */), in dem jeder Knoten außer x nur einmal vorkommt es sei der Graph G = (V,E ) ein Teilgraph von G (/* d.h. es gilt E V V, V V, und E E */) G = (V,E ) ist ein aufspannender aum von G, falls gilt: V = V G ist kreisfrei G ist zusammenhängend. 4/6, Folie Prof. Steffen Lange - HDa/FbI - Datenstrukturen

5 estimmen aufspannender äume u Illustration C A C A D E D E C A D E 4/6, Folie 2014 Prof. Steffen Lange - HDa/FbI - Datenstrukturen

6 estimmen aufspannender äume u eine einfache eobachtung es sei G = (V,E) ein ungerichteter Graph mit n Knoten und G = (V,E ) ein aufspannender aum in G Dann hat G genau n - 1 viele Kanten.... falls G weniger Kanten hat, kann G nicht zusammenhängend sein... falls G mehr Kanten hat, kann G nicht kreisfrei sein 4/6, Folie Prof. Steffen Lange - HDa/FbI - Datenstrukturen

7 estimmen aufspannender äume u Aufgabenstellung Eingabe: Ausgabe: ein ungerichteter zusammenhängender Graph G = (V,E) ein aufspannender aum G = (V,E ) in G... später betrachten wir dieselbe Aufgabenstellung für kantenbewertete ungerichtete zusammenhängende Graphen und sind daran interessiert, einen aufspannenden aum mit minimalem Gewicht zu bestimmen 4/6, Folie Prof. Steffen Lange - HDa/FbI - Datenstrukturen

8 estimmen aufspannender äume u Motivation (Teil 2) gegeben: seien n Städte (/* hier A,,...,E */) und damit ein ungerichteter Graph G (/*... und die Kanten haben die Entfernungen zwischen den Städten als Gewichte */) 3 C A 3 D E gesucht: Teilgraph G von G, in dem es eine Verbindung von jeder Stadt zu jeder anderen Stadt gibt und die Gesamtlänge der Verbindungen minimal sein soll 4/6, Folie Prof. Steffen Lange - HDa/FbI - Datenstrukturen

9 estimmen aufspannender äume u Motivation (Teil 2, cont.)... eine Lösung (/* Gesamtlänge der Verbindungen = 20 */)... beste Lösung (/* Gesamtlänge der Verbindungen = 16 */) 3 3 C 3 A C 3 A D E D E 4/6, Folie Prof. Steffen Lange - HDa/FbI - Datenstrukturen

10 estimmen aufspannender äume u Datenstruktur eine Menge M von Kanten (/* dient zur Verwaltung der in G potentiell aufzunehmenden Kanten */) 4/6, Folie Prof. Steffen Lange - HDa/FbI - Datenstrukturen

11 estimmen aufspannender äume u erste algorithmische Idee (1) setze M = E und V = und E = (2) solange E < V - 1 a) wähle eine Kante e = { x,y } aus M und streiche e aus M b) setze V* = V { x,y } und E* = E { e } c) teste, ob der Graph G* = (V*,E*) kreisfrei ist falls ja, so setze V = E* und E = E* falls nein, so ändere V und E nicht... die Laufzeit hängt offenbar davon ab, wie effizient man in c) testen kann, ob G* = (V*,E*) kreisfrei ist... Verfeinerung: diesen Test möglichst einfach realisieren 4/6, Folie Prof. Steffen Lange - HDa/FbI - Datenstrukturen

12 estimmen aufspannender äume u Hintergrund für eine Verfeinerung der algorithmischen Idee es sei G = (V,E) ein ungerichteter Graph es seien die Graphen G 1 = (V 1,E 1 ) und G 2 = (V 2,E 2 ) kreisfreie zusammenhängende Teilgraphen von G mit V 1 V 2 = es sei e = { x,y } E mit x V 1 und y V 2 Dann ist G* = (V*,E*) mit V* = V 1 V 2 und E* = E 1 E 2 { e } ein kreisfreier zusammenhängender Teilgraph von G. G... es ist offenbar essentiell V 1 und V 2 zu kennen und die Menge E 1 E 2 4/6, Folie Prof. Steffen Lange - HDa/FbI - Datenstrukturen

13 estimmen aufspannender äume u Illustration G 1 = (V 1,E 1 ) G 2 = (V 2,E 2 ) C A C A D E D E C A G* = (V*,E*), wobei e = {,E } ist D E 4/6, Folie Prof. Steffen Lange - HDa/FbI - Datenstrukturen

14 estimmen aufspannender äume u Grundbegriff es sei O eine Menge von Objekten es sei K = { M 1,M 2,...,M k } (/* mit 1 k n */) eine Menge von nicht-leeren Teilmengen von O K ist eine Klasseneinteilung der Menge O, falls gilt: für alle alle i,j mit 1 i,j k gilt: M i M j = (/* die Mengen von K sind paarweise disjunkt */) O = M 1 M 2... M k (/* jedes Objekt aus O kommt in einer Menge von K vor */) 4/6, Folie Prof. Steffen Lange - HDa/FbI - Datenstrukturen

15 estimmen aufspannender äume u verfeinerte algorithmische Idee (1) setze M = E, E = und bilde die Klasseneinteilung K = { { x } x V } (2) solange E < V - 1 a) wähle eine Kante e = { x,y } aus M und streiche e aus M b) bestimme V 1,V 2 K mit x V 1 und y V 2 c) teste, ob V 1 V 2 gilt falls ja, so setze E = E { e }, streiche V 1 und V 2 aus der Klasseneinteilung K und füge die Menge V = V 1 V 2 zur Klasseneinteilung K hinzu (/* für alle V* K ist der durch V* induzierte Teilgraph G* = (V*,E(V*)) kreisfrei und zusammenhängend; V(E*) = { { x,y } E x,y V* } */) falls nein, so ändere E nicht... zur Verwaltung der Klasseneinteilung K verwendet man eine spezielle Datenstruktur (/* Union-Find-Struktur genannt */) 4/6, Folie Prof. Steffen Lange - HDa/FbI - Datenstrukturen

16 estimmen minimal aufspannender äume u Illustration M = { { A, },{ A,C },{,C },{ A,D },... } E = K = { { A },{ },{ C },{ D },{ E } } C A M = { { A,C },{,C },{ A,D },... } E = { { A, } } K = { { A, },{ C },{ D },{ E } } D E M = { {,C },{ A,D },... } E = { { A, },{ A,C } } K = { { A,,C },{ D },{ E } } M = { { A,D },... } E = { { A, },{ A,C } } K = { { A,,C },{ D },{ E } } 4/6, Folie Prof. Steffen Lange - HDa/FbI - Datenstrukturen

17 Union-Find-Strukturen u Grundidee es sei O = { o 1,...,o n } die Grundmenge der betrachteten Objekte (/* in unserem Fall sind das die Knoten von G */) wir interessieren uns für die Verwaltung von Klasseneinteilungen K von O (/* d.h. K = { M 1,...,M k } mit M 1... M k = O und die Mengen M 1,...,M k sind paarweise disjunkt */) die Anzahl der verwalteten Mengen ändert sich über die Zeit zentrale Operation: Vereinigung disjunkter Mengen... Zugriff auf die Mengen??? 4/6, Folie Prof. Steffen Lange - HDa/FbI - Datenstrukturen

18 Union-Find-Strukturen u Namensgebung von Mengen o 1,...,o n dienen als Namen für die Einermengen { o 1 },...,{ o n } allgemein dient ein ausgezeichnetes Element o M als Name für eine Teilmenge M O u relevante Operation union(o i,o k ) Menge der verwalteten Mengen ändern, indem die Mengen mit den Namen o i bzw. o k vereinigt werden find(o) den Namen der Menge bestimmen, die aktuell das Objekt o enthält 4/6, Folie Prof. Steffen Lange - HDa/FbI - Datenstrukturen

19 Union-Find-Strukturen u Realisierung von Union-Find-Strukturen (/* konzeptionell */) repräsentiere Mengen als äume beliebiger Ordnung jeder Knoten hat ein Objekt als Label jeder Knoten hat einen Zeiger auf seinen Vater die Wurzel hat einen Zeiger auf sich selbst das Label der Wurzel dient als Name für diese Menge 4/6, Folie Prof. Steffen Lange - HDa/FbI - Datenstrukturen

20 Union-Find-Strukturen u Illustration einelementige Mengen 2 { 2 } mehrelementige Mengen 1 { 1,3,,7 } 3 7 4/6, Folie Prof. Steffen Lange - HDa/FbI - Datenstrukturen

21 Union-Find-Strukturen u Realisierung von Union-Find-Strukturen (/* konzeptionell */) Find-Operation... gib das Label der Wurzel des aums zurück, in dem das Objekt o gespeichert ist 4... find(6) = find(2) = find(4) = { 2,4,6 } Union-Operation... mache die Wurzel das aums für die Menge o 2 zum Sohn der Wurzel des aums für die Menge o { 2,4,6 } { 1,3 } = { 1,2,3,4,6 } 4/6, Folie Prof. Steffen Lange - HDa/FbI - Datenstrukturen

22 Union-Find-Strukturen u Implementierung von Union-Find-Strukturen (/* Version 1 */)... verwenden ein eindimensionales Array zur Repräsentation aller äume Väter Objekte zugehörige Mengen: { 1,3,4 } { 2 } {,6 } { 7 } 4/6, Folie Prof. Steffen Lange - HDa/FbI - Datenstrukturen

23 Union-Find-Strukturen u Implementierung von Union-Find-Strukturen (/* Version 1 */) Initialisierung for ( int o = 1; o <= n; ++o ) v[o] = o;... in Zeit O(n) Union-Operation void union ( int o1, int o2 ) { v[o2] = o1; }... in Zeit O(1) Find-Operation int find ( int o ) { while ( v[o]!= o ) { o = v[o]; } return(o); }... in Zeit O(n) 4/6, Folie Prof. Steffen Lange - HDa/FbI - Datenstrukturen

24 Union-Find-Strukturen u Implementierung von Union-Find-Strukturen (/* Version 2 */)... verwenden zwei eindimensionale Arrays zur Repräsentation aller äume Väter Mächtigkeit der Mengen Objekte zugehörige Mengen: { 1,3,4 } { 2 } {,6 } { 7 } 4/6, Folie Prof. Steffen Lange - HDa/FbI - Datenstrukturen

25 Union-Find-Strukturen u Implementierung von Union-Find-Strukturen (/* Version 2 */) Initialisierung for ( int o = 1; o <= n; ++o ) { v[o] = o; m[o] = 1; }... in Zeit O(n) Union-Operation Find-Operation void union ( int o1, int o2 ) { if ( m[o1] > m[o2] ) { v[o2] = o1; m[o1] = m[o1] + m[o2]; } else { v[o1] = o2; m[o2] = m[o2] + m[o1]; } }... wie gehabt... in Zeit O(1)... aber, in Zeit O(log(n)) 4/6, Folie Prof. Steffen Lange - HDa/FbI - Datenstrukturen

26 Union-Find-Strukturen u egründung Laufzeit der Find-Operation (/* Version 2 */) für einelementige Mengen gilt: tiefe() log(n) es seien M 1, M 2 Mengen mit n 1 bzw. n 2 Elementen, wobei n 1 n 2 gilt (/* nach IV gilt für die zugehörigen äume 1 und 2 : tiefe( 1 ) log(n 1 ) und tiefe( 2 ) log(n 2 ) */) Fall 1: tiefe() = tiefe( 1 ) à log(n) = log(n 1 + n 2 ) log(n 1 ) tiefe( 1 ) /6, Folie Prof. Steffen Lange - HDa/FbI - Datenstrukturen

27 Union-Find-Strukturen u egründung Laufzeit der Find-Operation (/* Version 2 */) für einelementige Mengen gilt: tiefe() log(n) es seien M 1, M 2 Mengen mit n 1 bzw. n 2 Elementen, wobei n 1 n 2 gilt (/* nach IV gilt für die zugehörigen äume 1 und 2 : tiefe( 1 ) log(n 1 ) und tiefe( 2 ) log(n 2 ) */) Fall 2: tiefe() = tiefe( 2 ) + 1 à log(n) = log(n 1 + n 2 ) log(2n 2 ) log(2) + log(n 2 ) 1 + tiefe( 2 ) /6, Folie Prof. Steffen Lange - HDa/FbI - Datenstrukturen

28 estimmen minimal aufspannender äume u Datenstruktur eine Menge M von Kanten (/* dient zur Verwaltung der potentiell aufzunehmenden Kanten */) eine Union-Find-Struktur (/* Version 2 */) zur Verwaltung der Knotenmengen, der sukzessive erzeugten kreisfreien zusammenhängenden Teilgraphen 4/6, Folie Prof. Steffen Lange - HDa/FbI - Datenstrukturen

29 estimmen minimal aufspannender äume u verfeinerte algorithmische Idee (/* mit Union-Find-Struktur */) (1) setze M = E, setze E = und initialisiere eine Union-Find-Struktur für die Knotenmenge V (2) solange E < V - 1 a) wähle eine Kante e = { x,y } aus M und streiche e aus M b) bestimme a = find(x) und b = find(y) c) teste, ob a b gilt falls ja, so setze E = E { e } und führe die Operation union(a,b) aus falls nein, so ändere E nicht... geht in Zeit O(n) + m*o(1) + m*o(log(n)) (/* falls Variante 2 zur Implementierung von Union-Find-Strukturen verwendet wird */), wobei n die Anzahl der Knoten von G und m die Anzahl der Kanten von G ist 4/6, Folie Prof. Steffen Lange - HDa/FbI - Datenstrukturen

30 estimmen minimal aufspannender äume u Illustration A C D E A C D E C A M = { { A, },{ A,C },{,C },{ A,D },... } E = D E A C D E A A C D E M = { { A,C },{,C },{ A,D },... } E = { { A, } } 4/6, Folie Prof. Steffen Lange - HDa/FbI - Datenstrukturen

31 estimmen minimal aufspannender äume u Illustration A C D E A A C D E C A M = { { A,C },{,C },{ A,D },... } E = { { A, } } D E A C D E A A A D E M = { {,C },{ A,D },... } E = { { A, },{ A,C } } 4/6, Folie Prof. Steffen Lange - HDa/FbI - Datenstrukturen

32 estimmen minimal aufspannender äume u Illustration A C D E A A A D E C A M = { {,C },{ A,D },... } E = { { A, },{ A,C } } D E A C D E A A A D E M = { { A,D },... } E = { { A, },{ A,C } } 4/6, Folie Prof. Steffen Lange - HDa/FbI - Datenstrukturen

33 estimmen minimal aufspannender äume u Grundbegriffe es sei G = (V,E) ein ungerichteter Graph es sei g(.) eine Funktion, die jeder Kante in V eine reelle Zahl zuordnet... das Paar (G,g(.)) heißt ungerichteter kantengewichteter Graph das Gewicht g(g) von G ist die Summe der Gewichte der Kanten von G 4/6, Folie Prof. Steffen Lange - HDa/FbI - Datenstrukturen

34 estimmen minimal aufspannender äume u Aufgabenstellung Eingabe: Ausgabe: ein ungerichteter zusammenhängender Graph G = (V,E) und eine zugehörige Gewichtsfunktion g(.) ein aufspannender aum G = (V,E ) in G, der ein minimales Gewicht hat 4/6, Folie Prof. Steffen Lange - HDa/FbI - Datenstrukturen

35 estimmen minimal aufspannender äume u Datenstruktur eine Menge M von Kanten (/* dient zur Verwaltung der in G potentiell aufzunehmenden Kanten */) eine Union-Find-Struktur (/* Version 2 */) zur Verwaltung der Knotenmengen, der sukzessive erzeugten kreisfreien zusammenhängenden Teilgraphen 4/6, Folie Prof. Steffen Lange - HDa/FbI - Datenstrukturen

36 estimmen minimal aufspannender äume u algorithmische Idee (1) setze M = E, setze E = und initialisiere eine Union-Find-Struktur für die Knotenmenge V (2) solange E < V - 1 a) wähle eine Kante e = { x,y } mit minimalem Gewicht aus M und streiche e aus M b) bestimme a = find(x) und b = find(y) c) teste, ob a b gilt falls ja, so setze E = E { e } und führe die Operation union(a,b) aus falls nein, so ändere E nicht... geht in Zeit O(n) + m*o(m)+ m*o(log(n)) (/* falls Variante 2 zur Implementierung von Union-Find-Strukturen verwendet wird */), wobei n die Anzahl der Knoten von G und m die Anzahl der Kanten von G ist 4/6, Folie Prof. Steffen Lange - HDa/FbI - Datenstrukturen

37 estimmung minimal aufspannender äume u Anmerkung falls man die Menge M, der aufzunehmenden Kanten, mit Hilfe einer Prioritätswarteschlange realisiert (/* Heap, wobei statt ein zur Sicherstellung der Heap-Eigenschaft verwendet wird */), kann 2a) jeweils in Zeit O(log(m)) realisiert werden, wobei m die Anzahl der Kanten von G ist (/* die Initialisierung der Prioritätswarteschlange kostet einmalig Zeit O(m) */)... geht offenbar in Zeit O(n) + O(m) + m*o(log(m)) + m*o(log(n)), wobei n die Anzahl der Knoten von G und m die Anzahl der Kanten von G ist 4/6, Folie Prof. Steffen Lange - HDa/FbI - Datenstrukturen

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 5. Hashing 6. Algorithmische Geometrie 4/5, olie 1 2014 Prof. Steffen Lange - HDa/bI

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

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. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie 4/3, Folie 1 2010 Prof. Steffen Lange - HDa/FbI

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

Kapitel 8: Bipartite Graphen Gliederung der Vorlesung

Kapitel 8: Bipartite Graphen Gliederung der Vorlesung Gliederung der Vorlesung 1. Grundbegriffe. Elementare Graphalgorithmen und Anwendungen 3. Kürzeste Wege 4. Minimale spannende Bäume 5. Färbungen und Cliquen 6. Traveling Salesman Problem 7. Flüsse in Netzwerken

Mehr

Teil 2: Graphenalgorithmen

Teil 2: Graphenalgorithmen Teil : Graphenalgorithmen Anwendungen Definitionen Datenstrukturen für Graphen Elementare Algorithmen Topologisches Sortieren Kürzeste Wege Minimal aufspannende Bäume Problemstellung Algorithmus von Prim

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. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie 4/2, Folie 1 2014 Prof. Steffen Lange - HDa/FbI

Mehr

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

Kapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung Gliederung der Vorlesung. Grundbegriffe. Elementare Graphalgorithmen und Anwendungen 3. Kürzeste Wege 4. Minimale spannende Bäume 5. Färbungen und Cliquen 6. Traveling Salesman Problem 7. Flüsse in Netzwerken

Mehr

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

Kapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung Gliederung der Vorlesung. Fallstudie Bipartite Graphen. Grundbegriffe. Elementare Graphalgorithmen und Anwendungen. Minimal spannende Bäume. Kürzeste Pfade. Traveling Salesman Problem. Flüsse in Netzwerken

Mehr

9 Minimum Spanning Trees

9 Minimum Spanning Trees Im Folgenden wollen wir uns genauer mit dem Minimum Spanning Tree -Problem auseinandersetzen. 9.1 MST-Problem Gegeben ein ungerichteter Graph G = (V,E) und eine Gewichtsfunktion w w : E R Man berechne

Mehr

Kapitel 9: Lineare Programmierung Gliederung

Kapitel 9: Lineare Programmierung Gliederung Gliederung 1. Grundlagen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. Ausgewählte Datenstrukturen 5. Dynamisches Programmieren 6. Graphalgorithmen 7. String-Matching 8. Kombinatorische Algorithmen

Mehr

Aufgaben zur Klausurvorbereitung

Aufgaben zur Klausurvorbereitung Vorlesung Graphen und Optimierung Sommersemester 2013/14 Prof. S. Lange Aufgaben zur Klausurvorbereitung Hier finden Sie eine Reihe von Übungsaufgaben, die wir an den beiden Vorlesungsterminen am 29.01.2014

Mehr

Algorithmen & Komplexität

Algorithmen & Komplexität Algorithmen & Komplexität Angelika Steger Institut für Theoretische Informatik steger@inf.ethz.ch Kürzeste Pfade Problem Gegeben Netzwerk: Graph G = (V, E), Gewichtsfunktion w: E N Zwei Knoten: s, t Kantenzug/Weg

Mehr

Kapitel 1: Fallstudie Bipartite Graphen Gliederung der Vorlesung

Kapitel 1: Fallstudie Bipartite Graphen Gliederung der Vorlesung Kapitel : Fallstudie Bipartite Graphen Gliederung der Vorlesung. Fallstudie Bipartite Graphen. Grundbegriffe. Elementare Graphalgorithmen und. Minimal spannende Bäume. Kürzeste Wege 6. Traveling Salesman

Mehr

ADS: Algorithmen und Datenstrukturen 2

ADS: Algorithmen und Datenstrukturen 2 ADS: Algorithmen und Datenstrukturen 2 Teil 4 Prof. Dr. Gerhard Heyer Institut für Informatik Abteilung Automatische Sprachverarbeitung Universität Leipzig 02. Mai 2017 [Letzte Aktualisierung: 10/07/2018,

Mehr

Kapitel 4: Netzplantechnik Gliederung der Vorlesung

Kapitel 4: Netzplantechnik Gliederung der Vorlesung Gliederung der Vorlesung 1. Grundbegriffe 2. Elementare Graphalgorithmen und Anwendungen 3. Kürzeste Wege 4. Netzplantechnik 5. Minimal spannende Bäume 6. Traveling Salesman Problem 7. Flüsse in Netzwerken

Mehr

Kapitel 2: Analyse der Laufzeit von Algorithmen Gliederung

Kapitel 2: Analyse der Laufzeit von Algorithmen Gliederung Gliederung 1. Motivation / Einordnung / Grundlagen 2. Analyse der Laufzeit von Algorithmen 3. Untere Schranken für algorithmische Probleme 4. Sortier- und Selektionsverfahren 5. Paradigmen des Algorithmenentwurfs

Mehr

Kapitel 3: Sortierverfahren Gliederung

Kapitel 3: Sortierverfahren Gliederung Gliederung 1. Grundlagen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. Ausgewählte Datenstrukturen 5. Dynamisches Programmieren 6. Graphalgorithmen 7. String-Matching 8. Kombinatorische Algorithmen

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Minimale Spannbäume Maike Buchin 18.7., 20.7.2017 Einführung Motivation: Verbinde Inseln mit Fähren oder Städte mit Schienen und verbrauche dabei möglichst wenig Länge. Problem:

Mehr

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

Kapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung Gliederung der Vorlesung. Fallstudie Bipartite Graphen. Grundbegriffe 3. Elementare Graphalgorithmen und Anwendungen 4. Minimal spannende Bäume 5. Kürzeste Pfade 6. Traveling Salesman Problem 7. Flüsse

Mehr

Kapitel 1: Motivation / Grundlagen Gliederung

Kapitel 1: Motivation / Grundlagen Gliederung Gliederung 1. Motivation / Grundlagen 2. Sortier- und Selektionsverfahren 3. Paradigmen des Algorithmenentwurfs 4. Ausgewählte Datenstrukturen 5. Algorithmische Geometrie 6. Umgang mit algorithmisch schwierigen

Mehr

Kapitel 2: Sortier- und Selektionsverfahren Gliederung

Kapitel 2: Sortier- und Selektionsverfahren Gliederung Gliederung 1. Laufzeit von Algorithmen 2. Sortier- und Selektionsverfahren 3. Paradigmen des Algorithmenentwurfs 4. Ausgewählte Datenstrukturen 5. Algorithmische Geometrie 6. Randomisierte Algorithmen

Mehr

Algorithmen & Komplexität

Algorithmen & Komplexität Algorithmen & Komplexität Angelika Steger Institut für Theoretische Informatik steger@inf.ethz.ch Kapitel 4: Datenstrukturen Kapitel 4.2: Union-Find-Strukturen Union-Find-Strukturen Gegeben: Datensätze

Mehr

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

Kapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung Gliederung der Vorlesung 1. Grundbegriffe. Elementare Graphalgorithmen und Anwendungen 3. Kürzeste Wege 4. Minimale spannende Bäume 5. Färbungen und Cliquen 6. Traveling Salesman Problem 7. Flüsse in Netzwerken

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. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie 2/2, Folie 1 2014 Prof. Steffen Lange - HDa/FbI

Mehr

Kapitel 6: Graphalgorithmen Gliederung

Kapitel 6: Graphalgorithmen Gliederung Gliederung 1. Grundlagen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. Ausgewählte Datenstrukturen 5. Dynamisches Programmieren 6. Graphalgorithmen 7. String-Matching 8. Kombinatorische Algorithmen

Mehr

Kap. 6.5: Minimale Spannbäume

Kap. 6.5: Minimale Spannbäume Kap. 6.5: Minimale Spannbäume Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 19./20. VO DAP2 SS 2009 30.6./2.7.2009 1 Anmeldung zur Klausur 31.07.2009 um 10:15

Mehr

Kapitel 3: Untere Schranken für algorithmische Probleme Gliederung

Kapitel 3: Untere Schranken für algorithmische Probleme Gliederung Gliederung 1. Grundlagen 2. Analyse der Laufzeit von Algorithmen 3. Untere Schranken für algorithmische Probleme 4. Sortier- und Selektionsverfahren 5. Paradigmen des Algorithmenentwurfs 6. Ausgewählte

Mehr

Kapitel 3: Kürzeste Pfade Gliederung der Vorlesung

Kapitel 3: Kürzeste Pfade Gliederung der Vorlesung Gliederung der Vorlesung 1. Grundbegriffe 2. Elementare Graphalgorithmen und Anwendungen 3. Kürzeste Wege 4. Minimale spannende Bäume 5. Färbungen und Cliquen 6. Traveling Salesman Problem 7. Flüsse in

Mehr

11. GRAPHEN 3 FLÜSSE UND SPANNBÄUME

11. GRAPHEN 3 FLÜSSE UND SPANNBÄUME Algorithmen und Datenstrukturen 11. GRAPHEN 3 FLÜSSE UND SPANNBÄUME Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 1 Algorithmen und Datenstrukturen 11.1. BERECHNUNG MAXIMALER FLÜSSE

Mehr

1. Asymptotische Notationen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. String Matching 5. Ausgewählte Datenstrukturen

1. Asymptotische Notationen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. String Matching 5. Ausgewählte Datenstrukturen Gliederung 1. Asymptotische Notationen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. String Matching 5. Ausgewählte Datenstrukturen 1/1, Folie 1 2009 Prof. Steffen Lange - HDa/FbI - Effiziente

Mehr

10 Kürzeste Pfade SSSP-Problem

10 Kürzeste Pfade SSSP-Problem In diesem Kapitel setzen wir uns mit der Berechnung von kürzesten Pfaden in einem Graphen auseinander. Definition 10.1 (Pfadgewichte). i) Das Gewicht eines Pfades p = (v 0, v 1,..., v k ) ist die Summe

Mehr

Graphdurchmusterung, Breiten- und Tiefensuche

Graphdurchmusterung, Breiten- und Tiefensuche Prof. Thomas Richter 18. Mai 2017 Institut für Analysis und Numerik Otto-von-Guericke-Universität Magdeburg thomas.richter@ovgu.de Material zur Vorlesung Algorithmische Mathematik II am 18.05.2017 Graphdurchmusterung,

Mehr

ADS: Algorithmen und Datenstrukturen 2

ADS: Algorithmen und Datenstrukturen 2 ADS: Algorithmen und Datenstrukturen 2 Teil 4 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

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

Theoretische Informatik

Theoretische Informatik Theoretische Informatik Sommersemester 2016 Steffen Lange 0/1, Folie 1 2016 Prof. Steffen Lange - HDa/FbI - Theoretische Informatik Literatur S. Lange, M. Margraf, Theoretische Informatik, Lehrmaterial

Mehr

Rückblick: Starke Zusammenhangskomponenten

Rückblick: Starke Zusammenhangskomponenten Rückblick: Starke Zusammenhangskomponenten Der Algorithmus von Kosaraju bestimmt die starken Zusammenhangskomponenten eines gerichteten Graphen wie folgt: Schritt 1: Bestimme den transponierten Graphen

Mehr

3.2 Generischer minimaler Spannbaum-Algorithmus

3.2 Generischer minimaler Spannbaum-Algorithmus 3.2 Generischer minimaler Spannbaum-Algorithmus Initialisiere Wald F von Bäumen, jeder Baum ist ein singulärer Knoten (jedes v V bildet einen Baum) while Wald F mehr als einen Baum enthält do wähle einen

Mehr

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

3. Minimale Spannbäume. Definition 99 T heißt minimaler Spannbaum (MSB, MST) von G, falls T Spannbaum von G ist und gilt: 3. Minimale Spannbäume Sei G = (V, E) ein einfacher ungerichteter Graph, der o.b.d.a. zusammenhängend ist. Sei weiter w : E R eine Gewichtsfunktion auf den Kanten von G. Wir setzen E E: w(e ) = e E w(e),

Mehr

5. Bäume und Minimalgerüste

5. Bäume und Minimalgerüste 5. Bäume und Minimalgerüste Charakterisierung von Minimalgerüsten 5. Bäume und Minimalgerüste Definition 5.1. Es ein G = (V, E) ein zusammenhängender Graph. H = (V,E ) heißt Gerüst von G gdw. wenn H ein

Mehr

Kapitel 4: Komplexitätstheorie Gliederung

Kapitel 4: Komplexitätstheorie Gliederung Gliederung 0. Motivation und Einordnung 1. Endliche Automaten 2. Formale Sprachen 3. Berechnungstheorie 4. Komplexitätstheorie 4.1. Motivation und Grundbegriffe 4.2. Die Komplexitätsklassen P und NP 4.3.

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Prof. Martin Lercher Institut für Informatik Heinrich-Heine-Universität Düsseldorf Teil 9 Graphen Version vom 13. Dezember 2016 1 / 1 Vorlesung Fortsetzung 13. Dezember

Mehr

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 17 (8.7.2014) Minimale Spannbäume II Union Find, Prioritätswarteschlangen Algorithmen und Komplexität Minimaler Spannbaum Gegeben: Zus. hängender,

Mehr

Kapitel 5: Paradigmen des Algorithmenentwurfs. Gliederung

Kapitel 5: Paradigmen des Algorithmenentwurfs. Gliederung Gliederung 1. Grundlagen 2. Analyse der Laufzeit von Algorithmen 3. Untere Schranken für algorithmische Probleme 4. Sortier- und Selektionsverfahren 5. Paradigmen des Algorithmenentwurfs 6. Ausgewählte

Mehr

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

p = (v 0, v 1,..., v k ) 1 Routenlaner Hamburg 300 km 200 km Berlin 450 km Köln 200 km 400 km Frankfurt 50 km 200 km 150 km Mannheim Saarbrücken 100 km 250 km Stuttgart 200 km Dresden 300 km Nürnberg 200 km München Berechne den

Mehr

Grundlagen: Algorithmen und Datenstrukturen

Grundlagen: Algorithmen und Datenstrukturen Grundlagen: Algorithmen und Datenstrukturen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 00

Mehr

Kapitel 5: Dynamisches Programmieren Gliederung

Kapitel 5: Dynamisches Programmieren Gliederung Gliederung 1. Grundlagen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. Ausgewählte Datenstrukturen 5. Dynamisches Programmieren 6. Graphalgorithmen 7. String-Matching 8. Kombinatorische Algorithmen

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

Wie wird ein Graph dargestellt?

Wie wird ein Graph dargestellt? Wie wird ein Graph dargestellt? Für einen Graphen G = (V, E), ob gerichtet oder ungerichtet, verwende eine Adjazenzliste A G : A G [i] zeigt auf eine Liste aller Nachbarn von Knoten i, wenn G ungerichtet

Mehr

4.1 Bäume, Datenstrukturen und Algorithmen. Zunächst führen wir Graphen ein. Die einfachste Vorstellung ist, dass ein Graph gegeben ist als

4.1 Bäume, Datenstrukturen und Algorithmen. Zunächst führen wir Graphen ein. Die einfachste Vorstellung ist, dass ein Graph gegeben ist als Kapitel 4 Bäume 4.1 Bäume, Datenstrukturen und Algorithmen Zunächst führen wir Graphen ein. Die einfachste Vorstellung ist, dass ein Graph gegeben ist als eine Menge von Knoten und eine Menge von zugehörigen

Mehr

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

Kapitel 8 Graphenalgorithmen. Minimaler Spannbaum Union-find-Problem Kürzeste Wege Kapitel 8 Graphenalgorithmen Minimaler Spannbaum Union-find-Problem Kürzeste Wege Rückblick Graphen Modelle für Objekte und Beziehungen untereinander Personen - Bekanntschaften Ereignisse - Abhängigkeiten

Mehr

Manipulation von Mengen

Manipulation von Mengen Manipulation von Mengen Thomas Röfer Vorrangwarteschlange Linksbaum Heap HeapSort Union-Find-Strukturen Allgemeiner Rahmen für Mengenmanipulationen Rückblick Hashing Streuspeicherverfahren Hashfunktion

Mehr

Datenstrukturen. Sommersemester Kapitel 1: Motivation / Grundlagen. Steffen Lange

Datenstrukturen. Sommersemester Kapitel 1: Motivation / Grundlagen. Steffen Lange Datenstrukturen Sommersemester 2010 Steffen Lange 1/1, Folie 1 2010 Prof. Steffen Lange - HDa/FbI - Datenstrukturen Organisatorisches Vorlesung wöchentlich; zwei Blöcke Folien im Netz (/* bitte zur Vorlesung

Mehr

Lernmodul 7 Algorithmus von Dijkstra

Lernmodul 7 Algorithmus von Dijkstra Folie 1 von 30 Lernmodul 7 Algorithmus von Dijkstra Quelle: http://www.map24.de Folie 2 von 30 Algorithmus von Dijkstra Übersicht Kürzester Weg von A nach B in einem Graphen Problemstellung: Suche einer

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

1. Klausur zur Vorlesung Algorithmentechnik Wintersemester 2008/2009

1. Klausur zur Vorlesung Algorithmentechnik Wintersemester 2008/2009 . Klausur zur Vorlesung Algorithmentechnik Wintersemester 008/009 Hier Aufkleber mit Name und Matrikelnummer anbringen Vorname: Nachname: Matrikelnummer: Beachten Sie: Bringen Sie den Aufkleber mit Ihrem

Mehr

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

Optimale Lösungen mit Greedy-Strategie erfordern Optimalität der Greedy-Wahl. Beispiele für optimale Greedy-Lösungen Wiederholung Optimale Lösungen mit Greedy-Strategie erfordern Optimalität der Greedy-Wahl unabhängig von Subproblemen Optimalität der Subprobleme Beispiele für optimale Greedy-Lösungen Scheduling Problem

Mehr

EINI LW/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 16/17

EINI LW/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 16/17 EINI LW/WiMa Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 16/17 Dr. Lars Hildebrand Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@tu-dortmund.de

Mehr

EINI LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12

EINI LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12 EINI LW Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 11/12 Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@udo.edu http://ls1-www.cs.uni-dortmund.de

Mehr

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

Graphentheorie. Zusammenhang. Zusammenhang. Zusammenhang. Rainer Schrader. 13. November 2007 Graphentheorie Rainer Schrader Zentrum für Angewandte Informatik Köln 13. November 2007 1 / 84 2 / 84 Gliederung stest und Schnittkanten älder und Bäume minimal aufspannende Bäume Der Satz von Menger 2-zusammenhängende

Mehr

Dr. Lars Hildebrand Fakultät für Informatik Technische Universität Dortmund

Dr. Lars Hildebrand Fakultät für Informatik Technische Universität Dortmund EINI LW/WiMa Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 12/13 Dr. Lars Hildebrand Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@tu-dortmund.de

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

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen Wintersemester 018/19 1. Vorlesung Minimale Spannbäume Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Motivation ) Kantengewichte w : E R >0 ) w(e ) := e E w(e)

Mehr

EINI LogWing/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 17/18

EINI LogWing/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 17/18 EINI LogWing/WiMa Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 17/18 Dr. Lars Hildebrand Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@tu-dortmund.de

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

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

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Kürzeste Wege Maike Buchin 4. und 6.7.2017 Einführung Motivation: Bestimmung von kürzesten Wegen ist in vielen Anwendungen, z.b. Routenplanung, ein wichtiges Problem. Allgemeine

Mehr

Informatik II, SS 2016

Informatik II, SS 2016 Informatik II - SS 208 (Algorithmen & Datenstrukturen) Vorlesung 4 (..208) Graphenalgorithmen III Algorithmen und Komplexität Bäume Gegeben: Zusammenhängender, ungerichteter Graph G = V, E Baum: Zusammenhängender,

Mehr

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

Definition Gerichteter Pfad. gerichteter Pfad, wenn. Ein gerichteter Pfad heißt einfach, falls alle u i paarweise verschieden sind. 3.5 Gerichteter Pfad Definition 291 Eine Folge (u 0, u 1,..., u n ) mit u i V für i = 0,..., n heißt gerichteter Pfad, wenn ( i {0,..., n 1} ) [ (u i, u i+1 ) A]. Ein gerichteter Pfad heißt einfach, falls

Mehr

Kapitel 2: Analyse der Laufzeit von Algorithmen Gliederung

Kapitel 2: Analyse der Laufzeit von Algorithmen Gliederung Gliederung 1. Motivation / Einordnung / Grundlagen 2. Analyse der Laufzeit von Algorithmen 3. Untere Schranken für algorithmische Probleme 4. Sortier- und Selektionsverfahren 5. Paradigmen des Algorithmenentwurfs

Mehr

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

Algorithmik WS 07/ Vorlesung, Andreas Jakoby Universität zu Lübeck. 10 Matching-Probleme 10 Matching-Probleme 10.1 Definition von Matching-Probleme Definition 21 [2-dimensionales Matching] Sei G = (V, E) ein ungerichteter Graph und E E. E ist ein Matching, wenn für alle Kantenpaare e 1, e

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

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 1: Grundlagen der algorithmischen Graphentheorie

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 1: Grundlagen der algorithmischen Graphentheorie Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 1: Grundlagen der algorithmischen Graphentheorie Dipl-Math. Wolfgang Kinzner 2.4.2012 Kapitel 1: Grundlagen der algorithmischen Graphgentheorie

Mehr

3 Klassifikation wichtiger Optimierungsprobleme

3 Klassifikation wichtiger Optimierungsprobleme 3 Klassifikation wichtiger Optimierungsprobleme 3.1 Das MIN- -TSP Wir kehren nochmal zurück zum Handlungsreisendenproblem für Inputs (w {i,j} ) 1 i

Mehr

Kap. 6.5: Minimale Spannbäume ff

Kap. 6.5: Minimale Spannbäume ff Kap. 6.: Minimale Spannbäume ff Professor Dr. Karsten Klein Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 20. VO 2. TEIL DAP2 SS 2009 2. Juli 2009 SS08 1 Überblick 6.:

Mehr

2 Eulersche Polyederformel und reguläre Polyeder

2 Eulersche Polyederformel und reguläre Polyeder 6 2 Eulersche Polyederformel und reguläre Polyeder 2.1 Eulersche Polyederformel Formal besteht ein Graph aus einer Knotenmenge X und einer Kantenmenge U. Jede Kante u U ist eine zweielementige Teilmenge

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Prof. Martin Lercher Institut für Informatik Heinrich-Heine-Universität Düsseldorf Teil 10 Suche in Graphen Version vom 13. Dezember 2016 1 / 2 Vorlesung 2016 / 2017 2 /

Mehr

Folien aus der Vorlesung Optimierung I SS2013

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

Mehr

ADS: Algorithmen und Datenstrukturen 2

ADS: Algorithmen und Datenstrukturen 2 ADS: Algorithmen und Datenstrukturen 2 Teil 3 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

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Vorlesung Informatik 2 Algorithmen und Datenstrukturen Vorlesung Informatik 2 Algorithmen und Datenstrukturen (18 Bäume: Grundlagen und natürliche Suchbäume) Prof. Dr. Susanne Albers Bäume (1) Bäume sind verallgemeinerte Listen (jedes Knoten-Element kann mehr

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Graphdarstellungen Maike Buchin 0.6.017 Graphen Motivation: Graphen treten häufig als Abstraktion von Objekten (Knoten) und ihren Beziehungen (Kanten) auf. Beispiele: soziale

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

Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können.

Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können. 7. Heapsort Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können. Genauer werden wir immer wieder benötigte Operationen durch Datenstrukturen unterstützen.

Mehr

Bäume und Wälder. Definition 1

Bäume und Wälder. Definition 1 Bäume und Wälder Definition 1 Ein Baum ist ein zusammenhängender, kreisfreier Graph. Ein Wald ist ein Graph, dessen Zusammenhangskomponenten Bäume sind. Ein Knoten v eines Baums mit Grad deg(v) = 1 heißt

Mehr

3.2. Divide-and-Conquer-Methoden

3.2. Divide-and-Conquer-Methoden LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS DATABASE 3.2. Divide-and-Conquer-Methoden Divide-and-Conquer-Methoden Einfache Sortieralgorithmen reduzieren die Größe des noch

Mehr

Bäume und Wälder. Definition 1

Bäume und Wälder. Definition 1 Bäume und Wälder Definition 1 Ein Baum ist ein zusammenhängender, kreisfreier Graph. Ein Wald ist ein Graph, dessen Zusammenhangskomponenten Bäume sind. Ein Knoten v eines Baums mit Grad deg(v) = 1 heißt

Mehr

Graphalgorithmen II. Werner Sembach Werner Sembach Graphalgorithmen II / 22

Graphalgorithmen II. Werner Sembach Werner Sembach Graphalgorithmen II / 22 Graphalgorithmen II Werner Sembach 14.04.2014 Werner Sembach Graphalgorithmen II 14.04.2014 1 / 22 Übersicht Datenstrukturen Union-Find Fibonacci-Heap Werner Sembach Graphalgorithmen II 14.04.2014 2 /

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

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

Datenstrukturen Teil 2. Bäume. Definition. Definition. Definition. Bäume sind verallgemeinerte Listen. Sie sind weiter spezielle Graphen Bäume sind verallgemeinerte Listen Datenstrukturen Teil 2 Bäume Jeder Knoten kann mehrere Nachfolger haben Sie sind weiter spezielle Graphen Graphen bestehen aus Knoten und Kanten Kanten können gerichtet

Mehr

Berechnung minimaler Spannbäume. Beispiel

Berechnung minimaler Spannbäume. Beispiel Minimale Spannbäume Definition Sei G pv, Eq ein ungerichteter Graph und sei w : E Ñ R eine Funktion, die jeder Kante ein Gewicht zuordnet. Ein Teilgraph T pv 1, E 1 q von G heißt Spannbaum von G genau

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

Diskrete Strukturen Kapitel 4: Graphentheorie (Bäume)

Diskrete Strukturen Kapitel 4: Graphentheorie (Bäume) WS 2016/17 Diskrete Strukturen Kapitel 4: Graphentheorie (Bäume) Hans-Joachim Bungartz Lehrstuhl für wissenschaftliches Rechnen Fakultät für Informatik Technische Universität München http://www5.in.tum.de/wiki/index.php/diskrete_strukturen_-_winter_16

Mehr

SS 2013 1.1-1 / 12

SS 2013 1.1-1 / 12 AMPELSTEUERUNG EINER KREUZUNG monika.heiner@informatik.tu-cottbus.de SS 2013 1.1-1 / 12 (A) PROBLEM D C E B A Ziel (1) Sicherheit: keine kollidierenden Wege gleichzeitig, z.b. EB und AD Ziel (2) Maximierung:

Mehr

Das Heiratsproblem. Definition Matching

Das Heiratsproblem. Definition Matching Das Heiratsproblem Szenario: Gegeben: n Frauen und m > n Männer. Bekanntschaftsbeziehungen zwischen allen Männern und Frauen. Fragestellung: Wann gibt es für jede der Frauen einen Heiratspartner? Modellierung

Mehr

ADS 2: Algorithmen und Datenstrukturen

ADS 2: Algorithmen und Datenstrukturen ADS 2: Algorithmen und Datenstrukturen Teil I Prof. Peter F. Stadler & Sebastian Will Bioinformatik/IZBI Institut für Informatik & Interdisziplinäres Zentrum für Bioinformatik Universität Leipzig 9. April

Mehr

Fortgeschrittene Netzwerk- und Graph-Algorithmen

Fortgeschrittene Netzwerk- und Graph-Algorithmen Fortgeschrittene Netzwerk- und Graph-Algorithmen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Wintersemester

Mehr