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

Save this PDF as:
 WORD  PNG  TXT  JPG

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

void bellford ( List adjlst [n], int n, int i, int j){ int d[n] = + inf ; d[i] = 0;

void bellford ( List adjlst [n], int n, int i, int j){ int d[n] = + inf ; d[i] = 0; für Informatik Prof. aa Dr. Ir. Joost-Pieter Katoen Datenstrukturen und Algorithmen SS5 hristian Dehnert, Friedrich Gretz, enjamin Kaminski, Thomas Ströder Tutoraufgabe (ellman-ford Algorithmus): a) Passen

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

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

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

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

7 Minimaler Spannbaum und Datenstrukturen

7 Minimaler Spannbaum und Datenstrukturen 79 7 Minimaler Spannbaum und Datenstrukturen Hier betrachten wir als Ausgangspunkt stets zusammenhängende, ungerichtete Graphen. G So sind Spannbäume (aufspannende Bäume) on G. Beachte immer Kanten bei

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

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

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

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

= n (n 1) 2 dies beruht auf der Auswahl einer zweielementigen Teilmenge aus V = n. Als Folge ergibt sich, dass ein einfacher Graph maximal ( n E = 2

= n (n 1) 2 dies beruht auf der Auswahl einer zweielementigen Teilmenge aus V = n. Als Folge ergibt sich, dass ein einfacher Graph maximal ( n E = 2 1 Graphen Definition: Ein Graph G = (V,E) setzt sich aus einer Knotenmenge V und einer (Multi)Menge E V V, die als Kantenmenge bezeichnet wird, zusammen. Falls E symmetrisch ist, d.h.( u,v V)[(u,v) E (v,u)

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

WS 2013/14. Diskrete Strukturen

WS 2013/14. Diskrete Strukturen WS 2013/14 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/ws1314

Mehr

Grundlagen der Programmierung 2. Bäume

Grundlagen der Programmierung 2. Bäume Grundlagen der Programmierung 2 Bäume Prof. Dr. Manfred Schmidt-Schauÿ Künstliche Intelligenz und Softwaretechnologie 24. Mai 2006 Graphen Graph: Menge von Knoten undzugehörige (gerichtete oder ungerichtete)

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

Graphen und Bäume. A.1 Graphen

Graphen und Bäume. A.1 Graphen Algorithmen und Datenstrukturen 96 A Graphen und Bäume A.1 Graphen Ein gerichteter Graph (auch Digraph) G ist ein Paar (V, E), wobei V eine endliche Menge und E eine Relation auf V ist, d.h. E V V. V heißt

Mehr

Kap. 6.6: Kürzeste Wege

Kap. 6.6: Kürzeste Wege Kap. 6.6: Kürzeste Wege Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 1./. VO DAP SS 009./9. Juli 009 1 Nachtest für Ausnahmefälle Di 1. Juli 009, 16:00 Uhr,

Mehr

(a, b)-bäume / 1. Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss.

(a, b)-bäume / 1. Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss. (a, b)-bäume / 1. Szenario: Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss. Konsequenz: Kommunikation zwischen Hauptspeicher und Festplatte - geschieht nicht Byte für Byte,

Mehr

Algorithmen I - Tutorium 28 Nr. 11

Algorithmen I - Tutorium 28 Nr. 11 Algorithmen I - Tutorium 28 Nr. 11 13.07.2017: Spaß mit Schnitten, Kreisen und minimalen Spannbäumen Marc Leinweber marc.leinweber@student.kit.edu INSTITUT FÜR THEORETISCHE INFORMATIK (ITI), PROF. DR.

Mehr

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Heaps. Vorlesung 8: Heapsort (K6) Joost-Pieter Katoen. 7. Mai 2015

Übersicht. Datenstrukturen und Algorithmen. Übersicht. Heaps. Vorlesung 8: Heapsort (K6) Joost-Pieter Katoen. 7. Mai 2015 Datenstrukturen und Algorithmen Vorlesung 8: (K6) 1 Joost-Pieter Katoen Lehrstuhl für Informatik Software Modeling and Verification Group http://moves.rwth-aachen.de/teaching/ss-15/dsal/ 7. Mai 015 3 Joost-Pieter

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 Vorleung. Falltudie Bipartite Graphen. Grundbegriffe 3. Elementare Graphalgorithmen und Anwendungen 4. Minimal pannende Bäume 5. Kürzete Pfade 6. Traveling Saleman Problem 7. Flüe in Netzwerken

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Graphen (1) Darstellung Traversierung Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 441 Generalisierung von Bäumen Verallgemeinerung (von Listen zu Graphen)

Mehr

Einführung in die Informatik 2

Einführung in die Informatik 2 Einführung in die Informatik 2 Bäume & Graphen Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 Sven.Kosub@uni-konstanz.de Sprechstunde: Freitag, 12:30-14:00 Uhr, o.n.v. Sommersemester

Mehr

Graphalgorithmen 2. Dominik Paulus Dominik Paulus Graphalgorithmen / 47

Graphalgorithmen 2. Dominik Paulus Dominik Paulus Graphalgorithmen / 47 Graphalgorithmen Dominik Paulus.0.01 Dominik Paulus Graphalgorithmen.0.01 1 / 7 1 Spannbäume Kruskal Prim Edmonds/Chu-Liu Datenstrukturen Fibonacci-Heap Union/Find Kürzeste Pfade Dijkstra Bellman-Ford

Mehr

Cliquen und unabhängige Mengen

Cliquen und unabhängige Mengen Cliquen und unabhängige Mengen Sei G = (V, E) ein ungerichteter Graph, d.h. E ( V. Für Teilmengen U V bezeichnet man mit G U den induzierten Teilgraph G U = (U, E U ), wobei E U := E ( U ist. Eine Clique

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

Abstrakter Datentyp (ADT): Besteht aus einer Menge von Objekten, sowie Operationen, die auf diesen Objekten wirken.

Abstrakter Datentyp (ADT): Besteht aus einer Menge von Objekten, sowie Operationen, die auf diesen Objekten wirken. Abstrakte Datentypen und Datenstrukturen/ Einfache Beispiele Abstrakter Datentyp (ADT): Besteht aus einer Menge von Objekten, sowie Operationen, die auf diesen Objekten wirken. Datenstruktur (DS): Realisierung

Mehr

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1

Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1 Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1 Aufgabe 1. / 16 P Instruktionen: 1) In dieser Aufgabe sollen Sie nur die Ergebnisse angeben. Diese können Sie direkt bei den Aufgaben notieren. 2) Sofern

Mehr

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

Satz 324 Sei M wie oben. Dann gibt es für ein geeignetes k Konstanten c i > 0 und Permutationsmatrizen P i, i = 1,... Satz 324 Sei M wie oben. Dann gibt es für ein geeignetes k Konstanten c i > 0 und Permutationsmatrizen P i, i = 1,..., k, so dass gilt M = k c i P i i=1 k c i = r. i=1 Diskrete Strukturen 7.1 Matchings

Mehr

3. Musterlösung. Problem 1: Heapsort

3. Musterlösung. Problem 1: Heapsort Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 05/06 ITI Wagner 3. Musterlösung Problem : Heapsort ** 2 3 4 5 Algorithmus : Heapsort (A) Eingabe : Array A der Länge n Ausgabe : Aufsteigend

Mehr

Datenstrukturen und Algorithmen 2. Klausur SS 2001

Datenstrukturen und Algorithmen 2. Klausur SS 2001 UNIVERSITÄT PADERBORN FACHBEREICH 7 (MATHEMATIK INFORMATIK) Datenstrukturen und Algorithmen 2. Klausur SS 200 Lösungsansätze Dienstag, 8. September 200 Name, Vorname:...................................................

Mehr

2. Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung

2. Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 2 Woche Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 2 Woche: Eindeutige Entschlüsselbarleit, Sätze von Kraft und McMillan, Huffmancodierung 24/ 44 Zwei Beispiele a 0

Mehr

Zentralübung zur Vorlesung Diskrete Strukturen (Prof. Esparza)

Zentralübung zur Vorlesung Diskrete Strukturen (Prof. Esparza) WS 2013/14 Zentralübung zur Vorlesung Diskrete Strukturen (Prof. Esparza) Dr. Werner Meixner Fakultät für Informatik TU München http://www14.in.tum.de/lehre/2013ws/ds/uebung/ 22. Januar 2014 ZÜ DS ZÜ XIII

Mehr

Einführung in die Informatik 2

Einführung in die Informatik 2 Einführung in die Informatik 2 Bäume & Graphen Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz http://www.inf.uni-konstanz.de/algo/lehre/ss08/info2 Sommersemester 2008 Sven Kosub

Mehr

15. Elementare Graphalgorithmen

15. Elementare Graphalgorithmen Graphen sind eine der wichtigste Modellierungskonzepte der Informatik Graphalgorithmen bilden die Grundlage vieler Algorithmen in der Praxis Zunächst kurze Wiederholung von Graphen. Dann Darstellungen

Mehr

Flüsse in Netzwerken. Seminar über Algorithmen SoSe 2005. Mike Rohland & Julia Schenk

Flüsse in Netzwerken. Seminar über Algorithmen SoSe 2005. Mike Rohland & Julia Schenk Flüsse in Netzwerken Seminar über Algorithmen SoSe 2005 Mike Rohland & Julia Schenk Inhalt Einführung Definition Maximale Flüsse Schnitte Restgraphen Zunehmende Wege Max-Fluss Min-Schnitt Theorem Ford-Fulkerson

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

Kapitel 2: Zahlentheoretische Algorithmen Gliederung

Kapitel 2: Zahlentheoretische Algorithmen 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 Prioritätswarteschlangen Maike Buchin 18. und 23.5.2017 Prioritätswarteschlange Häufiges Szenario: dynamische Menge von Objekten mit Prioritäten, z.b. Aufgaben, Prozesse, in der

Mehr

Was bisher geschah ADT Menge mit Operationen: Suche nach einem Element Einfügen eines Elementes Löschen eines Elementes Realisierung durch

Was bisher geschah ADT Menge mit Operationen: Suche nach einem Element Einfügen eines Elementes Löschen eines Elementes Realisierung durch Was bisher geschah ADT Menge mit Operationen: Suche nach einem Element Einfügen eines Elementes Löschen eines Elementes Realisierung durch verschiedene Datenstrukturen: lineare Datenstrukturen: Array,

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

Übungsblatt 2 - Lösung

Übungsblatt 2 - Lösung Institut für Theoretische Informatik Lehrstuhl Prof. Dr. D. Wagner Übungsblatt 2 - Lösung Vorlesung Algorithmentechnik im WS 08/09 Ausgabe 04. November 2008 Abgabe 8. November, 5:0 Uhr (im Kasten vor Zimmer

Mehr

Informatik B Sommersemester Musterlösung zur Klausur vom

Informatik B Sommersemester Musterlösung zur Klausur vom Informatik B Sommersemester 007 Musterlösung zur Klausur vom 0.07.007 Aufgabe : Graphen und Graphalgorithmen + + + () Punkte Für eine beliebige positive, ganze Zahl n definieren wir einen Graphen G n =

Mehr

Bäume. 2006 Jiri Spale, Algorithmen und Datenstrukturen - Bäume 1

Bäume. 2006 Jiri Spale, Algorithmen und Datenstrukturen - Bäume 1 Bäume 2006 Jiri Spale, Algorithmen und Datenstrukturen - Bäume 1 Inhalt Grundbegriffe: Baum, Binärbaum Binäre Suchbäume (Definition) Typische Aufgaben Suchaufwand Löschen allgemein, Methode Schlüsseltransfer

Mehr

Kapitel 2: Formale Sprachen Gliederung. 0. Grundbegriffe 1. Endliche Automaten 2. Formale Sprachen 3. Berechnungstheorie 4. Komplexitätstheorie

Kapitel 2: Formale Sprachen Gliederung. 0. Grundbegriffe 1. Endliche Automaten 2. Formale Sprachen 3. Berechnungstheorie 4. Komplexitätstheorie Gliederung 0. Grundbegriffe 1. Endliche Automaten 2. Formale Sprachen 3. Berechnungstheorie 4. Komplexitätstheorie 2.1. 2.2. Reguläre Sprachen 2.3. Kontextfreie Sprachen 2/1, Folie 1 2015 Prof. Steffen

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

Lösungen zu Kapitel 5

Lösungen zu Kapitel 5 Lösungen zu Kapitel 5 Lösung zu Aufgabe : (a) Es gibt derartige Graphen: (b) Offensichtlich besitzen 0 der Graphen einen solchen Teilgraphen. Lösung zu Aufgabe : Es sei G = (V, E) zusammenhängend und V

Mehr

Übungsblatt 1. f(n) = f(n) = O(g(n)) g(n) = O(f(n)) Zeigen oder widerlegen Sie: 3 n = Θ(2 n ) Aufgabe 1.2 Gegeben sei die folgende Funktion:

Übungsblatt 1. f(n) = f(n) = O(g(n)) g(n) = O(f(n)) Zeigen oder widerlegen Sie: 3 n = Θ(2 n ) Aufgabe 1.2 Gegeben sei die folgende Funktion: Übungsblatt 1 Aufgabe 1.1 Beweisen oder widerlegen Sie, dass für die im Folgenden definierte Funktion f(n) die Beziehung f(n) = Θ(n 4 ) gilt. Beachten Sie, dass zu einem vollständigen Beweis gegebenenfalls

Mehr