Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität
|
|
- Theodor Geisler
- vor 6 Jahren
- Abrufe
Transkript
1 Datenstrukturen und Algorithmen Christian Sohler FG Algorithmen & Komplexität 1
2 Klausur Wichtige Hinweise: , Beginn 9 Uhr Bitte spätestens 8:4 Uhr vor Ort sein Sporthalle + Audimax Informationen zur Aufteilung werden auf der Homepage der Vorlesung bekannt gegeben Zeit bis ca. 12:0 Uhr 2
3 Klausur Lernziele: Verständnis grundlegender Algorithmen Laufzeitanalyse Korrektheitsbeweise Algorithmische Entwurfsmethoden verstehen und anwenden: - Divide & Conquer - gierige Algorithmen - dynamische Programmierung Entwurf von Datenstrukturen
4 Klausur Vorbereitung: Algorithmen aus der Vorlesung verstehen und anwenden können Korrektheitsbeweise verstehen (hier können die beiden Lehrbücher besonders helfen, weil sie unterschiedlich an die Probleme herangehen) Algorithmische Techniken anwenden (Probeklausure, alte Klausuren, Übungsaufgaben, Aufgaben in Lehrbüchern, ) 4
5 Wiederholung
6 Algorithmenentwurf Anforderungen: Korrektheit Effizienz (Laufzeit, Speicherplatz) Entwurf: 1. Beschreibung des Algorithmus/der Datenstruktur 2. Korrektheitsbeweis. Analyse von Laufzeit und Speicherplatz 6
7 Laufzeit Maschinenmodell: Eine Pseudocode-Instruktion braucht einen Zeitschritt Wird eine Instruktion r-mal aufgerufen, werden r Zeitschritte benötigt Formales Modell: Random Access Machines (RAM Modell) Idee: Ignoriere rechnerabhängige Konstanten Sei T(n) Laufzeit für Eingabegröße n Betrachte Wachstum von T(n) für n Asymptotische Analyse 7
8 Das Teile & Herrsche-Prinzip Teile & Herrsche (Divide & Conquer): Teile Eingabe in mehrere Teile auf Löse das Problem rekursiv auf den Teilen Füge die Teillösungen zu einer Gesamtlösung zusammen 8
9 Das Teile & Herrsche-Prinzip Teile & Herrsche (Divide & Conquer): Teile Eingabe in mehrere Teile auf Löse das Problem rekursiv auf den Teilen Füge die Teillösungen zu einer Gesamtlösung zusammen Beispiel (Sortieren):
10 Das Teile & Herrsche-Prinzip Teile & Herrsche (Divide & Conquer): Teile Eingabe in mehrere Teile auf Löse das Problem rekursiv auf den Teilen Füge die Teillösungen zu einer Gesamtlösung zusammen Beispiel (Sortieren): Schritt 1: Aufteilen der Eingabe
11 Das Teile & Herrsche-Prinzip Teile & Herrsche (Divide & Conquer): Teile Eingabe in mehrere Teile auf Löse das Problem rekursiv auf den Teilen Füge die Teillösungen zu einer Gesamtlösung zusammen Beispiel (Sortieren): Schritt 2: Rekursiv das Problem lösen
12 Das Teile & Herrsche-Prinzip Teile & Herrsche (Divide & Conquer): Teile Eingabe in mehrere Teile auf Löse das Problem rekursiv auf den Teilen Füge die Teillösungen zu einer Gesamtlösung zusammen Beispiel (Sortieren): Schritt : Zusammenfügen
13 Das Teile & Herrsche-Prinzip Teile & Herrsche (Divide & Conquer): Teile Eingabe in mehrere Teile auf Löse das Problem rekursiv auf den Teilen Füge die Teillösungen zu einer Gesamtlösung zusammen Beispiel (Sortieren): 4 Schritt : Zusammenfügen
14 Das Teile & Herrsche-Prinzip Teile & Herrsche (Divide & Conquer): Teile Eingabe in mehrere Teile auf Löse das Problem rekursiv auf den Teilen Füge die Teillösungen zu einer Gesamtlösung zusammen Beispiel (Sortieren): 4 Schritt : Zusammenfügen
15 Das Teile & Herrsche-Prinzip Teile & Herrsche (Divide & Conquer): Teile Eingabe in mehrere Teile auf Löse das Problem rekursiv auf den Teilen Füge die Teillösungen zu einer Gesamtlösung zusammen Beispiel (Sortieren): 4 6 Schritt : Zusammenfügen
16 Das Teile & Herrsche-Prinzip Teile & Herrsche (Divide & Conquer): Teile Eingabe in mehrere Teile auf Löse das Problem rekursiv auf den Teilen Füge die Teillösungen zu einer Gesamtlösung zusammen Beispiel (Sortieren): 4 6 Schritt : Zusammenfügen
17 Das Teile & Herrsche-Prinzip Teile & Herrsche (Divide & Conquer): Teile Eingabe in mehrere Teile auf Löse das Problem rekursiv auf den Teilen Füge die Teillösungen zu einer Gesamtlösung zusammen Beispiel (Sortieren): Schritt : Zusammenfügen
18 Das Teile & Herrsche-Prinzip Teile & Herrsche (Divide & Conquer): Teile Eingabe in mehrere Teile auf Löse das Problem rekursiv auf den Teilen Füge die Teillösungen zu einer Gesamtlösung zusammen Beispiel (Sortieren): Schritt : Zusammenfügen
19 Das Teile & Herrsche-Prinzip Teile & Herrsche (Divide & Conquer): Teile Eingabe in mehrere Teile auf Löse das Problem rekursiv auf den Teilen Füge die Teillösungen zu einer Gesamtlösung zusammen Beispiel (Sortieren): Schritt : Zusammenfügen
20 Das Teile & Herrsche-Prinzip Teile & Herrsche (Divide & Conquer): Teile Eingabe in mehrere Teile auf Löse das Problem rekursiv auf den Teilen Füge die Teillösungen zu einer Gesamtlösung zusammen Beispiel (Sortieren): Schritt : Zusammenfügen
21 Das Teile & Herrsche-Prinzip Teile & Herrsche (Divide & Conquer): Teile Eingabe in mehrere Teile auf Löse das Problem rekursiv auf den Teilen Füge die Teillösungen zu einer Gesamtlösung zusammen Beispiel (Sortieren): Schritt : Zusammenfügen
22 Das Teile & Herrsche-Prinzip Teile & Herrsche (Divide & Conquer): Teile Eingabe in mehrere Teile auf Löse das Problem rekursiv auf den Teilen Füge die Teillösungen zu einer Gesamtlösung zusammen Beispiel (Sortieren): Schritt : Zusammenfügen
23 Das Teile & Herrsche-Prinzip Teile & Herrsche (Divide & Conquer): Teile Eingabe in mehrere Teile auf Löse das Problem rekursiv auf den Teilen Füge die Teillösungen zu einer Gesamtlösung zusammen Beispiel (Sortieren): Schritt : Zusammenfügen
24 Das Teile & Herrsche-Prinzip Teile & Herrsche (Divide & Conquer): Teile Eingabe in mehrere Teile auf Löse das Problem rekursiv auf den Teilen Füge die Teillösungen zu einer Gesamtlösung zusammen Beispiel (Sortieren): Schritt : Zusammenfügen
25 Das Teile & Herrsche-Prinzip Teile & Herrsche (Divide & Conquer): Teile Eingabe in mehrere Teile auf Löse das Problem rekursiv auf den Teilen Füge die Teillösungen zu einer Gesamtlösung zusammen Beispiel (Sortieren): Schritt : Zusammenfügen
26 Das Teile & Herrsche-Prinzip Teile & Herrsche (Divide & Conquer): Teile Eingabe in mehrere Teile auf Löse das Problem rekursiv auf den Teilen Füge die Teillösungen zu einer Gesamtlösung zusammen Beispiel (Sortieren): Schritt : Zusammenfügen
27 Das Teile & Herrsche-Prinzip Teile & Herrsche (Divide & Conquer): Teile Eingabe in mehrere Teile auf Löse das Problem rekursiv auf den Teilen Füge die Teillösungen zu einer Gesamtlösung zusammen Wichtig: Benötigen Rekursionsabbruch! Sortieren: Folgen der Länge 1 sind sortiert 27
28 Das Teile & Herrsche-Prinzip Teile & Herrsche Algorithmen: MergeSort Binäre Suche Integer Multiplikation Matrix Multiplikation Nächste Paare Unterschiede: Anzahl der Unterprobleme Größe der Unterprobleme Zeit für Zusammenfügen der Unterprobleme 28
29 Stand der Dinge Laufzeiten der Form: T(n) = a T(n/b) + f(n) Anzahl Unterprobleme Aufwand für Aufteilen und Zusammenfügen Größe der Unterprobleme (bestimmt Höhe des Rekursionsbaums) 29
30 Master Theorem Analyse: Setze a f(n/b) = c f(n) Fall 1: c<1 n f(n) n/b n/b n/b a f(n/b) h h a Θ(1) Höhe des Baums: h = log n b Θ(f(n)) 0
31 Master Theorem Analyse: Setze a f(n/b) = c f(n) Fall 1: c=1 n f(n) n/b n/b n/b a f(n/b) h h a Θ(1) Höhe des Baums: h = log n b Θ(f(n) log n) 1
32 Master Theorem Analyse: Setze a f(n/b) = c f(n) Fall 1: c>1 n f(n) n/b n/b n/b a f(n/b) h h a Θ(1) Höhe des Baums: h = log n b Θ(a log bn ) 2
33 Master Theorem Analyse: Setze a f(n/b) = c f(n) Formale Analyse mit Iterationsoder Substitutionsmethode n f(n) n/b n/b n/b a f(n/b) h h a Θ(1) Höhe des Baums: h = log n b Θ(a log bn )
34 Gierige Algorithmen Prinzip: Konstruiere Lösung Schritt für Schritt In jedem Schritt: Optimiere ein einfaches, lokales Kriterium Beobachtung: Man kann viele unterschiedliche gierige Algorithmen für ein Problem entwickeln Nicht jeder dieser Algorithmen löst das Problem korrekt 4
35 Gierige Algorithmen Interval Scheduling: Ressource (Hörsaal, Parallelrechner, Elektronenmikroskop,..) Anfragen: Kann ich die Ressource für den Zeitraum (t 1,t 2) nutzen? Ziel: Möglichst viele Anfragen erfüllen
36 Gierige Algorithmen Worauf muss man achten? Resource muss möglichst früh wieder frei werden! Neue Strategie: Nimm die Anfrage, die am frühesten fertig ist. 6
37 Gierige Algorithmen Worauf muss man achten? Resource muss möglichst früh wieder frei werden! Neue Strategie: Nimm die Anfrage, die am frühesten fertig ist. 7
38 Gierige Algorithmen Worauf muss man achten? Resource muss möglichst früh wieder frei werden! Neue Strategie: Nimm die Anfrage, die am frühesten fertig ist. 8
39 Gierige Algorithmen Worauf muss man achten? Resource muss möglichst früh wieder frei werden! Neue Strategie: Nimm die Anfrage, die am frühesten fertig ist. 9
40 Gierige Algorithmen Worauf muss man achten? Resource muss möglichst früh wieder frei werden! Neue Strategie: Nimm die Anfrage, die am frühesten fertig ist. 40
41 Gierige Algorithmen Worauf muss man achten? Resource muss möglichst früh wieder frei werden! Neue Strategie: Nimm die Anfrage, die am frühesten fertig ist. 41
42 Gierige Algorithmen Worauf muss man achten? Resource muss möglichst früh wieder frei werden! Neue Strategie: Nimm die Anfrage, die am frühesten fertig ist. 42
43 Gierige Algorithmen Worauf muss man achten? Resource muss möglichst früh wieder frei werden! Neue Strategie: Nimm die Anfrage, die am frühesten fertig ist. 4
44 Gierige Algorithmen Gierige Algorithmen: Interval Scheduling Probleme Huffman Codes Dijkstras kürzeste Wege Algorithmus Minimale Spannbäume (Kruskal und Prim) 44
45 Dynamische Programmierung Rekursiver Ansatz: Lösen eines Problems durch Lösen mehrerer kleinerer Teilprobleme, aus denen sich die Lösung für das Ausgangsproblem zusammensetzt Phänomen: Mehrfachberechnungen von Lösungen Methode: Lösungen zu Teilproblemen werden iterativ beginnend mit den Lösungen der kleinsten Teilprobleme berechnet (bottom-up). Speichern einmal berechneter Lösungen in einer Tabelle 4
46 Dynamische Programmierung Subset Sum (Entscheidungsvariante): Eingabe: Menge X mit n pos. Integers und ein Zielwert W Ausgabe: true, wenn es Menge S X mit Σ x = W gibt x S false, sonst 46
47 Dynamische Programmierung IterativeSubsetSum(X,W) 1. n length[a] 2. A[0] true. for i 1 to W do 4. A[i] false. for j 1 to n do 6. for i W downto 0 do 7. if A[i]=true then A[i+X[j]] true 8. return A[W] 47
48 Dynamische Programmierung Algorithmen: Längste gemeinsame Teilfolge Subset Sum Rucksackproblem Bellman-Ford (SSSP) Floyd-Warshall (APSP) Wichtigster Schritt: Rekursion aufstellen 48
49 Datenstrukturen Problem: Gegeben sind n Objekte O 1,.., O nmit zugehörigen Schlüsseln s(o ) Operationen: i Suche(x); Ausgabe O mit Schlüssel s(o) =x; nil, falls kein Objekt mit Schlüssel x in Datenbank Einfügen(O); Einfügen von Objekt O in Datenbank Löschen(O); Löschen von Objekt O mit aus der Datenbank 49
50 Datenstrukturen AVL-Bäume Ein Baum heißt AVL-Baum, wenn für jeden Knoten gilt: Die Höhe seines linken und rechten Teilbaums unterscheidet sich höchstens um 1. 0
51 Datenstrukturen Rotationen: y x x Rechtsrotation(T,y) y C Linksrotation(T,x) A A B B C 1
52 Datenstrukturen Datenstrukturen: Felder, Listen, Schlangen, Suchbäume AVL-Bäume Hash Tabellen Halden Union-Find Algorithmen mit Datenstrukturen: Heapsort Graphenalgorithmen 2
53 Graphalgorithmen Definition Ein Graph G ist ein Paar (V,E). V heißt Knotenmenge und E V V Kantenmenge des Graphen. Darstellung von Graphen Adjazenzlisten (dünne Graphen, E << V ²) Adjazenzmatrix (dichte Graphen, E nah an V ²) Arten von Graphen Ungerichtet, gerichtet Ungewichtet, gewichtet
54 Graphalgorithmen Kruskal(G) 1. A 2. Sortiere Kanten nach Gewicht. for each (u,v) E geordnet nach aufsteigendem Gewicht do 4. if u und v sind nicht in der selben Zusammenhangskomponente in Graph H=(V,A) then. A A {(u,v)} 6. return A
55 Graphalgorithmen Kruskal(G) 1. A 2. Sortiere Kanten nach Gewicht. for each (u,v) E geordnet nach aufsteigendem Gewicht do 4. if u und v sind nicht in der selben Zusammenhangskomponente in Graph H=(V,A) then. A A {(u,v)} 6. return A
56 Graphalgorithmen Kruskal(G) 1. A 2. Sortiere Kanten nach Gewicht. for each (u,v) E geordnet nach aufsteigendem Gewicht do 4. if u und v sind nicht in der selben Zusammenhangskomponente in Graph H=(V,A) then. A A {(u,v)} 6. return A
57 Graphalgorithmen Kruskal(G) 1. A 2. Sortiere Kanten nach Gewicht. for each (u,v) E geordnet nach aufsteigendem Gewicht do 4. if u und v sind nicht in der selben Zusammenhangskomponente in Graph H=(V,A) then. A A {(u,v)} 6. return A
58 Graphalgorithmen Kruskal(G) 1. A 2. Sortiere Kanten nach Gewicht. for each (u,v) E geordnet nach aufsteigendem Gewicht do 4. if u und v sind nicht in der selben Zusammenhangskomponente in Graph H=(V,A) then. A A {(u,v)} 6. return A
59 Graphalgorithmen Kruskal(G) 1. A 2. Sortiere Kanten nach Gewicht. for each (u,v) E geordnet nach aufsteigendem Gewicht do 4. if u und v sind nicht in der selben Zusammenhangskomponente in Graph H=(V,A) then. A A {(u,v)} 6. return A
60 Graphalgorithmen Kruskal(G) 1. A 2. Sortiere Kanten nach Gewicht. for each (u,v) E geordnet nach aufsteigendem Gewicht do 4. if u und v sind nicht in der selben Zusammenhangskomponente in Graph H=(V,A) then. A A {(u,v)} 6. return A
61 Graphalgorithmen Kruskal(G) 1. A 2. Sortiere Kanten nach Gewicht. for each (u,v) E geordnet nach aufsteigendem Gewicht do 4. if u und v sind nicht in der selben Zusammenhangskomponente in Graph H=(V,A) then. A A {(u,v)} 6. return A
62 Graphalgorithmen Kruskal(G) 1. A 2. Sortiere Kanten nach Gewicht. for each (u,v) E geordnet nach aufsteigendem Gewicht do 4. if u und v sind nicht in der selben Zusammenhangskomponente in Graph H=(V,A) then. A A {(u,v)} 6. return A
63 Graphalgorithmen Kruskal(G) 1. A 2. Sortiere Kanten nach Gewicht. for each (u,v) E geordnet nach aufsteigendem Gewicht do 4. if u und v sind nicht in der selben Zusammenhangskomponente in Graph H=(V,A) then. A A {(u,v)} 6. return A
64 Graphalgorithmen Kruskal(G) 1. A 2. Sortiere Kanten nach Gewicht. for each (u,v) E geordnet nach aufsteigendem Gewicht do 4. if u und v sind nicht in der selben Zusammenhangskomponente in Graph H=(V,A) then. A A {(u,v)} 6. return A
65 Graphalgorithmen Kruskal(G) 1. A 2. Sortiere Kanten nach Gewicht. for each (u,v) E geordnet nach aufsteigendem Gewicht do 4. if u und v sind nicht in der selben Zusammenhangskomponente in Graph H=(V,A) then. A A {(u,v)} 6. return A
66 Graphalgorithmen Kruskal(G) 1. A 2. Sortiere Kanten nach Gewicht. for each (u,v) E geordnet nach aufsteigendem Gewicht do 4. if u und v sind nicht in der selben Zusammenhangskomponente in Graph H=(V,A) then. A A {(u,v)} 6. return A
67 Graphalgorithmen Kruskal(G) 1. A 2. Sortiere Kanten nach Gewicht. for each (u,v) E geordnet nach aufsteigendem Gewicht do 4. if u und v sind nicht in der selben Zusammenhangskomponente in Graph H=(V,A) then. A A {(u,v)} 6. return A
68 Graphalgorithmen Kruskal(G) 1. A 2. Sortiere Kanten nach Gewicht. for each (u,v) E geordnet nach aufsteigendem Gewicht do 4. if u und v sind nicht in der selben Zusammenhangskomponente in Graph H=(V,A) then. A A {(u,v)} 6. return A
69 Graphalgorithmen Kruskal(G) 1. A 2. Sortiere Kanten nach Gewicht. for each (u,v) E geordnet nach aufsteigendem Gewicht do 4. if u und v sind nicht in der selben Zusammenhangskomponente in Graph H=(V,A) then. A A {(u,v)} 6. return A
70 Graphalgorithmen Kruskal(G) 1. A 2. Sortiere Kanten nach Gewicht. for each (u,v) E geordnet nach aufsteigendem Gewicht do 4. if u und v sind nicht in der selben Zusammenhangskomponente in Graph H=(V,A) then. A A {(u,v)} 6. return A
71 Graphalgorithmen Kruskal(G) 1. A 2. Sortiere Kanten nach Gewicht. for each (u,v) E geordnet nach aufsteigendem Gewicht do 4. if u und v sind nicht in der selben Zusammenhangskomponente in Graph H=(V,A) then. A A {(u,v)} 6. return A
72 Graphalgorithmen Kruskal(G) 1. A 2. Sortiere Kanten nach Gewicht. for each (u,v) E geordnet nach aufsteigendem Gewicht do 4. if u und v sind nicht in der selben Zusammenhangskomponente in Graph H=(V,A) then. A A {(u,v)} 6. return A
73 Graphalgorithmen Kruskal(G) 1. A 2. Sortiere Kanten nach Gewicht. for each (u,v) E geordnet nach aufsteigendem Gewicht do 4. if u und v sind nicht in der selben Zusammenhangskomponente in Graph H=(V,A) then. A A {(u,v)} 6. return A
74 Graphalgorithmen Kruskal(G) 1. A 2. Sortiere Kanten nach Gewicht. for each (u,v) E geordnet nach aufsteigendem Gewicht do 4. if u und v sind nicht in der selben Zusammenhangskomponente in Graph H=(V,A) then. A A {(u,v)} 6. return A
75 Graphalgorithmen Kruskal(G) 1. A 2. Sortiere Kanten nach Gewicht. for each (u,v) E geordnet nach aufsteigendem Gewicht do 4. if u und v sind nicht in der selben Zusammenhangskomponente in Graph H=(V,A) then. A A {(u,v)} 6. return A
76 Graphalgorithmen Kruskal(G) 1. A 2. Sortiere Kanten nach Gewicht. for each (u,v) E geordnet nach aufsteigendem Gewicht do 4. if u und v sind nicht in der selben Zusammenhangskomponente in Graph H=(V,A) then. A A {(u,v)} 6. return A
77 Graphalgorithmen Kruskal(G) 1. A 2. Sortiere Kanten nach Gewicht. for each (u,v) E geordnet nach aufsteigendem Gewicht do 4. if u und v sind nicht in der selben Zusammenhangskomponente in Graph H=(V,A) then. A A {(u,v)} 6. return A
78 Graphalgorithmen Kruskal(G) 1. A 2. Sortiere Kanten nach Gewicht. for each (u,v) E geordnet nach aufsteigendem Gewicht do 4. if u und v sind nicht in der selben Zusammenhangskomponente in Graph H=(V,A) then. A A {(u,v)} 6. return A
79 Graphalgorithmen Kruskal(G) 1. A 2. Sortiere Kanten nach Gewicht. for each (u,v) E geordnet nach aufsteigendem Gewicht do 4. if u und v sind nicht in der selben Zusammenhangskomponente in Graph H=(V,A) then. A A {(u,v)} 6. return A
80 Graphalgorithmen Kruskal(G) 1. A 2. Sortiere Kanten nach Gewicht. for each (u,v) E geordnet nach aufsteigendem Gewicht do 4. if u und v sind nicht in der selben Zusammenhangskomponente in Graph H=(V,A) then. A A {(u,v)} 6. return A
81 Graphalgorithmen Kruskal(G) 1. A 2. Sortiere Kanten nach Gewicht. for each (u,v) E geordnet nach aufsteigendem Gewicht do 4. if u und v sind nicht in der selben Zusammenhangskomponente in Graph H=(V,A) then. A A {(u,v)} 6. return A
82 Graphalgorithmen Kruskal(G) 1. A 2. Sortiere Kanten nach Gewicht. for each (u,v) E geordnet nach aufsteigendem Gewicht do 4. if u und v sind nicht in der selben Zusammenhangskomponente in Graph H=(V,A) then. A A {(u,v)} 6. return A
83 Graphalgorithmen Kruskal(G) 1. A 2. Sortiere Kanten nach Gewicht. for each (u,v) E geordnet nach aufsteigendem Gewicht do 4. if u und v sind nicht in der selben Zusammenhangskomponente in Graph H=(V,A) then. A A {(u,v)} 6. return A
84 Graphalgorithmen Kruskal(G) 1. A 2. Sortiere Kanten nach Gewicht. for each (u,v) E geordnet nach aufsteigendem Gewicht do 4. if u und v sind nicht in der selben Zusammenhangskomponente in Graph H=(V,A) then. A A {(u,v)} 6. return A
85 Graphalgorithmen Kruskal(G) 1. A 2. Sortiere Kanten nach Gewicht. for each (u,v) E geordnet nach aufsteigendem Gewicht do 4. if u und v sind nicht in der selben Zusammenhangskomponente in Graph H=(V,A) then. A A {(u,v)} 6. return A
86 Graphalgorithmen Kruskal(G) 1. A 2. Sortiere Kanten nach Gewicht. for each (u,v) E geordnet nach aufsteigendem Gewicht do 4. if u und v sind nicht in der selben Zusammenhangskomponente in Graph H=(V,A) then. A A {(u,v)} 6. return A
87 Graphalgorithmen Algorithmen: Breitensuche Tiefensuche Dijkstras kürzeste Wege Bellman-Ford kürzeste Wege Floyd-Warshall (all pairs kürzeste Wege) Minimale Spannbäume (Kruskal) Minimale Spannbäume (Prim) Transitive Hülle 87
88 Viel Erfolg bei der Klausur und schöne Semeserferien! 88
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
MehrDynamisches Programmieren - Problemstruktur
Dynamisches Programmieren - Problemstruktur Optimale Substruktur: Optimale Lösung enthält optimale Lösungen von Teilproblemen. Bsp.: Kürzester Weg im Graphen, LCS (s. etwa Folie 42 der letzten Vorlesung)
MehrAlgorithmen und Datenstrukturen
Universität Innsbruck Institut für Informatik Zweite Prüfung 16. Oktober 2008 Algorithmen und Datenstrukturen Name: Matrikelnr: Die Prüfung besteht aus 8 Aufgaben. Die verfügbaren Punkte für jede Aufgabe
MehrWie 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Übung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 217 Marc Bux, Humboldt-Universität zu Berlin Agenda 1. Graphen und Bäume 2. Binäre Suchbäume 3. AVL-Bäume 4. Algorithmen und Datenstrukturen 2 Agenda
Mehr16. All Pairs Shortest Path (ASPS)
. All Pairs Shortest Path (ASPS) All Pairs Shortest Path (APSP): Eingabe: Gewichteter Graph G=(V,E) Ausgabe: Für jedes Paar von Knoten u,v V die Distanz von u nach v sowie einen kürzesten Weg a b c d e
MehrMethoden für den Entwurf von Algorithmen
Methoden für den Entwurf von Algorithmen Greedy Algorithmen: - Löse ein einfaches Optimierungsproblem durch eine Folge vernünftiger Entscheidungen. - Eine getroffene Entscheidung wird nie zurückgenommen.
MehrDivide & Conquer. Problem in Teilprobleme aufteilen Teilprobleme rekursiv lösen Lösung aus Teillösungen zusammensetzen
Teile & Herrsche: Divide & Conquer Problem in Teilprobleme aufteilen Teilprobleme rekursiv lösen Lösung aus Teillösungen zusammensetzen Probleme: Wie setzt man zusammen? [erfordert algorithmisches Geschick
MehrAlgorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / Vorlesung 9, Donnerstag 18.
Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 9, Donnerstag 18. Dezember 2014 (Teile und Herrsche, Mastertheorem) Junior-Prof. Dr.
MehrGraphalgorithmen 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
MehrGrundlagen der Algorithmen und Datenstrukturen Kapitel 12
Grundlagen der Algorithmen und Datenstrukturen Kapitel 12 Christian Scheideler + Helmut Seidl SS 2009 28.06.09 Kapitel 12 1 Generische Optimierungsverfahren Techniken: Systematische Suche lass nichts aus
MehrBerechnung 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
MehrDatenstrukturen und Algorithmen
Datenstrukturen und Algorithmen Jedes Programm verwendet Datenstrukturen und Algorithmen um seine Aufgabe zu erfüllen Diese müssen offenbar zunächst sorgfältig dem speziellen Problem entsprechend ausgewählt
MehrVorlesung 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)
MehrAlgorithmen und Datenstrukturen 13
19. Juli 2012 1 Besprechung Blatt 12 Fragen 2 Bäume AVL-Bäume 3 Graphen Allgemein Matrixdarstellung 4 Graphalgorithmen Dijkstra Prim Kruskal Fragen Fragen zu Blatt 12? AVL-Bäume AVL-Bäume ein AVL-Baum
MehrStud.-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
Mehr2. November Gradfolgen Zusammenhang Kürzeste Wege. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 37
2. November 2011 Gradfolgen Zusammenhang Kürzeste Wege H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 37 Satz von Erdős und Gallai Eine Partition einer natürlichen Zahl ist genau dann die Gradfolge
MehrGrundlagen: 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
MehrAufgaben 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Übung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 217 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda: Graphen, Suchbäume, AVL Bäume Heute: Graphen und Bäume Binäre Suchbäume AVL-Bäume Nächste
Mehr2. Grundlagen. Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten.
2. Grundlagen Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten. Laufzeitverhalten beschreiben durch O-Notation. 1 Beispiel Minimum-Suche Eingabe bei Minimum
MehrKapitel 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(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,
MehrAlgorithmen I. Tutorium Sitzung. Dennis Felsing
Algorithmen I Tutorium 1-12. Sitzung Dennis Felsing dennis.felsing@student.kit.edu www.stud.uni-karlsruhe.de/~ubcqr/algo 2011-07-04 Überblick 1 Dynamische Programmierung Idee Längste gemeinsame Teilfolge
MehrKarlsruher Institut für Technologie Institut für Theoretische Informatik. Klausur Algorithmen I
Vorname: Matrikelnummer: Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. Jörn Müller-Quade 4. September 2017 Klausur Algorithmen I Aufgabe 1. Kleinaufgaben 15 Punkte Aufgabe
MehrKlausur Theoretische Informatik I WS 2004/2005
Technische Universität Chemnitz Chemnitz, den 22.02.2005 Fakultät für Informatik Prof. Dr. Andreas Goerdt Klausur Theoretische Informatik I WS 2004/2005 Studiengang Mechatronik Aufgabe 1 (2+2+2 Punkte)
MehrKürzeste Wege in Graphen
Kürzeste Wege in Graphen Algorithmische Paradigmen In diesem Abschnitt wollen wir nicht nur neue Algorithmen vorstellen, sondern auch den Blick auf Gemeinsamkeiten und prinzipielle Unterschiede zwischen
MehrProgramm heute. Algorithmen und Datenstrukturen (für ET/IT) Übersicht: Graphen. Definition: Ungerichteter Graph. Definition: Ungerichteter Graph
Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 07 Dr. Stefanie Demirci Computer Aided Medical Procedures Technische Universität München 7 Fortgeschrittene Datenstrukturen Graphen
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen 13. Übung minimale Spannbäume, topologische Sortierung, AVL-Bäume Clemens Lang Übungen zu AuD 4. Februar 2010 Clemens Lang (Übungen zu AuD) Algorithmen und Datenstrukturen
MehrNAME, VORNAME: Studiennummer: Matrikel:
TU Ilmenau, Fakultat IA Institut für Theoretische Informatik FG Komplexitätstheorie und Effiziente Algorithmen Prof. Dr. (USA) M. Dietzfelbinger Klausur Algorithmen und Datenstrukturen SS08, Ing.-Inf.
MehrInformatik II, SS 2016
Informatik II - SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 2 (22.4.2016) Sortieren II Algorithmen und Komplexität SelectionSort: Programm Schreiben wir doch das gleich mal als Java/C++ - Programm
MehrAlgorithmen und Datenstrukturen (für ET/IT)
Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 05 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute Einführung Grundlagen von Algorithmen Grundlagen
Mehr1. Einführung. Was ist ein Algorithmus (eine Datenstruktur)? Welche Probleme kann man damit lösen? Warum betrachten wir (effiziente) Algorithmen?
1. Einführung Was ist ein Algorithmus (eine Datenstruktur)? Welche Probleme kann man damit lösen? Warum betrachten wir (effiziente) Algorithmen? Wie beschreiben wir Algorithmen? Nach welchen Kriterien
MehrAlgorithmen & Datenstrukturen 2 Praktikum 3
Algorithmen & Datenstrukturen 2 Praktikum 3 Thema: Graphalgorithmen Sommersemester 2016 Prof. Dr. Christoph Karg Hochschule Aalen Dieses Praktikum widmet sich dem Thema Graphalgorithmen. Ziel ist die Implementierung
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Wintersemester 2012/13 25. Vorlesung Dynamisches Programmieren Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Klausurvorbereitung Tipp: Schreiben Sie sich alle Fragen
MehrBabeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf
Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005 Paradigmen im Algorithmenentwurf Problemlösen Problem definieren Algorithmus entwerfen
MehrDatenstrukturen und SS Robert Elsässer
Datenstrukturen und Algorithmen Robert Elsässer Organisatorisches Vorlesung: Mo 11:15-12:45 Audimax Fr 11:15-12:45 Raum G Zentralübung: Do 13:00 13:45 Raum G Beginn: nächste Woche Übungen: Beginn: nächste
MehrDatenstrukturen & Algorithmen
Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Binäre Suchbäume Einführung und Begriffe Binäre Suchbäume 2 Binäre Suchbäume Datenstruktur für dynamische Mengen
MehrInformatik 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 =
MehrAlgorithmen und Datenstrukturen Tutorium Übungsaufgaben
Algorithmen und Datenstrukturen Tutorium Übungsaufgaben AlgoDat - Übungsaufgaben 1 1 Landau-Notation Aufgabe Lösung 2 Rekurrenzen Aufgabe 3 Algorithmenentwurf und -analyse Aufgabe AlgoDat - Übungsaufgaben
MehrKlausur Algorithmentheorie
Prof. Dr. G. Schnitger Frankfurt, den 13.02.2009 Klausur Algorithmentheorie WS 2008/2009 Name: Vorname: Studiengang: BITTE GENAU LESEN Die Klausur besteht aus 4 Aufgaben, in denen maximal 100 Punkte erreicht
MehrAlgorithmen & 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
MehrInformatik II: Algorithmen & Datenstrukturen. Blättern Sie nicht um bevor Sie dazu aufgefordert werden!
Albert-Ludwigs-Universität Institut für Informatik Prof. Dr. F. Kuhn Informatik II: Algorithmen & Datenstrukturen Montag, 29. August, 2014, 14:00 17:00 Name:...........................................................
MehrFerienkurs 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
MehrVorlesung 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:
MehrAlgorithmen und Datenstrukturen Tafelübung 14. Jens Wetzl 8. Februar 2012
Algorithmen und Datenstrukturen Tafelübung 14 Jens Wetzl 8. Februar 2012 Folien Keine Garantie für Vollständigkeit und/oder Richtigkeit Keine offizielle Informationsquelle LS2-Webseite Abrufbar unter:
MehrDer Rekursionsbaum hat
Prof. aa Dr. E. Ábrahám Datenstrukturen und Algorithmen SS Lösung - Klausur.09.0 F. Corzilius, S. Schupp, T. Ströder Aufgabe (Laufzeitanalyse): a) Beweisen oder widerlegen Sie: log(n) O( n) ( + + + = 9
MehrSortieren II / HeapSort Heaps
Organisatorisches VL-07: Sortieren II: HeapSort (Datenstrukturen und Algorithmen, SS 2017) Vorlesung: Gerhard Woeginger (Zimmer 4024 im E1) Email: dsal-i1@algo.rwth-aachen.de Webseite: http://algo.rwth-aachen.de/lehre/ss17/dsa.php
MehrTutoraufgabe 1 (Starke Zusammenhangskomponenten):
für Informatik Prof. aa Dr. Ir. Joost-Pieter Katoen Allgemeine Hinweise: Datenstrukturen und Algorithmen SS1 Übungsblatt (Abgabe 4.0.01) Christian Dehnert, Friedrich Gretz, Benjamin Kaminski, Thomas Ströder
MehrDefinition Ein gerichteter Graph G = (V, E) ist ein Graph von geordneten Paaren (u, v) mit u V und v V.
Kapitel 4 Graphenalgorithmen 4.1 Definitionen Definition 4.1.1. Der Graph G = (V, E) ist über die beiden Mengen V und E definiert, wobei V die Menge der Knoten und E die Menge der Kanten in dem Graph ist.
MehrInhaltsverzeichnis. I Grundlegende Konzepte 1. xiii
D3kjd3Di38lk323nnm xiii I Grundlegende Konzepte 1 1 Vorbemerkungen und Überblick... 3 1.1 Informatik, Algorithmen und Datenstrukturen....... 3 1.2 Historischer Überblick: Algorithmen................. 5
MehrAlgorithmen und Datenstrukturen
Gunter Saake Kai-Uwe Sattler Algorithmen und Datenstrukturen Eine Einführung mit Java 4., überarbeitete Auflage dpunkt.verlag XI Inhaltsverzeichnis I Grundlegende Konzepte 1 1 Vorbemerkungen und Überblick
Mehr4.2 Minimale Spannbäume: Der Algorithmus von Jarník/Prim Definition 4.2.1
Allgemeines. Minimale Spannbäume: Der Algorithmus von Jarník/Prim Definition.. (a) Ein Graph G =(V, E) heißt kreisfrei, wenn er keinen Kreis besitzt. Beispiel: Ein kreisfreier Graph: FG KTuEA, TU Ilmenau
MehrKarlsruher Institut für Technologie Institut für Theoretische Informatik. Klausur Algorithmen I
Name: Vorname: Matrikelnummer: Klausur-ID: svorschlag Karlsruher Institut für Technologie Institut für Theoretische Informatik Jun.-Prof. D. Hofheinz, Jun.-Prof. H. Meyerhenke 8.09.05 Klausur Algorithmen
MehrAlgorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8
ETH Zürich Institut für Theoretische Informatik Prof. Dr. Angelika Steger Florian Meier, Ralph Keusch HS 2017 Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8 Lösungsvorschlag zu Aufgabe 1
Mehr19. Dynamic Programming I
495 19. Dynamic Programming I Fibonacci, Längste aufsteigende Teilfolge, längste gemeinsame Teilfolge, Editierdistanz, Matrixkettenmultiplikation, Matrixmultiplikation nach Strassen [Ottman/Widmayer, Kap.
MehrAlgorithmen & Komplexität
Algorithmen & Komplexität Angelika Steger Institut für Theoretische Informatik steger@inf.ethz.ch Breitensuche, Tiefensuche Wir besprechen nun zwei grundlegende Verfahren, alle Knoten eines Graphen zu
MehrCounting - Sort [ [ ] [ [ ] 1. SS 2008 Datenstrukturen und Algorithmen Sortieren in linearer Zeit
Counting-Sort Counting - Sort ( A,B,k ). for i to k. do C[ i]. for j to length[ A]. do C[ A[ j ] C[ A[ j ] +. > C[ i] enthält Anzahl der Elemente in 6. for i to k. do C[ i] C[ i] + C[ i ]. > C[ i] enthält
MehrRelationen und DAGs, starker Zusammenhang
Relationen und DAGs, starker Zusammenhang Anmerkung: Sei D = (V, E). Dann ist A V V eine Relation auf V. Sei andererseits R S S eine Relation auf S. Dann definiert D = (S, R) einen DAG. D.h. DAGs sind
MehrGraphenalgorithmen I
Graphenalgorithmen I Vortrag im Seminar Hallo Welt! für Fortgeschrittene 7. Juni 211 Graphenalgorithmen I 1/33 Motivation Problem Wie komme ich am schnellsten ins Kanapee? Problem Wie kommt ein Datenpaket
MehrQuicksort ist ein Divide-and-Conquer-Verfahren.
. Quicksort Wie bei vielen anderen Sortierverfahren (Bubblesort, Mergesort, usw.) ist auch bei Quicksort die Aufgabe, die Elemente eines Array a[..n] zu sortieren. Quicksort ist ein Divide-and-Conquer-Verfahren.
Mehr8. A & D - Heapsort. Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können.
8. A & D - 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.
MehrSortieren & Co. KIT Institut für Theoretische Informatik
Sortieren & Co KIT Institut für Theoretische Informatik 1 Formaler Gegeben: Elementfolge s = e 1,...,e n Gesucht: s = e 1,...,e n mit s ist Permutation von s e e 1 n für eine Totalordnung ` ' KIT Institut
MehrDatenstrukturen und Algorithmen
Datenstrukturen und Algorithmen VO 708.031 robert.legenstein@igi.tugraz.at 1 Kapitel 2 Algorithmische robert.legenstein@igi.tugraz.at 2 2. Algorithmische 1) Iterative Algorithmen 2) Rekursive Algorithmen
Mehr9 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
Mehr2. Effizienz von Algorithmen
Effizienz von Algorithmen 2. Effizienz von Algorithmen Effizienz von Algorithmen, Random Access Machine Modell, Funktionenwachstum, Asymptotik [Cormen et al, Kap. 2.2,3,4.2-4.4 Ottman/Widmayer, Kap. 1.1]
MehrKürzeste Pfade. Organisatorisches. VL-17: Kürzeste Pfade. (Datenstrukturen und Algorithmen, SS 2017) Walter Unger
Organisatorisches VL-17: Kürzeste Pfade (Datenstrukturen und Algorithmen, SS 2017) Walter Unger Vorlesung: Gerhard Woeginger (Zimmer 4024 im E1) Sprechstunde: Mittwoch 11:15 12:00 Übungen: Tim Hartmann,
MehrAlgorithmen und Datenstrukturen (für ET/IT)
Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 07 Dr. Stefanie Demirci Computer Aided Medical Procedures Technische Universität München Programm heute Einführung Grundlagen von Algorithmen
MehrTop-down Bottom-up Divide & Conquer Dynamisches Programmieren Caching (Memoization) Branch-and-Bound Greedy
2.2 Entwurfsparadigmen Top-down Bottom-up Divide & Conquer Dynamisches Programmieren Caching (Memoization) Branch-and-Bound Greedy 1 Top-Down Zerlege das gegebene Problem in Teilschritte Zerlege Teilschritte
MehrDer Dreyfus-Wagner Algorithmus für das Steiner Baum Problem
Der Dreyfus-Wagner Algorithmus für das Steiner Baum Problem Andreas Moser Dietmar Ebner Christian Schauer Markus Bauer 9. Dezember 2003 1 Einführung Der in der Vorlesung gezeigte Algorithmus für das Steiner
MehrDatenstrukturen und Algorithmen D-INFK
Eidgenössische Technische Hochschule Zürich Ecole polytechnique fédérale de Zurich Politecnico federale di Zurigo Federal Institute of Technology at Zurich Institut für Theoretische Informatik Peter Widmayer
MehrKlausur Algorithmen und Datenstrukturen
Technische Universität Braunschweig Wintersemester 2013/2014 Institut für Betriebssysteme und Rechnerverbund Abteilung Algorithmik Prof. Dr. Sándor P. Fekete Stephan Friedrichs Klausur Algorithmen und
MehrKonvexe Hülle. Abbildung: [Wikipedia]: Nicht-konvexe Menge (links), konvexe Menge (rechts) KIT Institut für Theoretische Informatik 510
Konvexe Hülle Definition konvexe Menge: Für je zwei beliebige Punkte, die zur Menge gehören, liegt auch stets deren Verbindungsstrecke ganz in der Menge. Abbildung: [Wikipedia]: Nicht-konvexe Menge (links),
MehrKap. 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,
MehrVorlesung Datenstrukturen
Vorlesung Datenstrukturen Graphen (2) Spannbäume Kürzeste Wege Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 455 Wiederholung Traversierung eines Graphen via Tiefendurchlaufs
MehrDatenstrukturen & Algorithmen
Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Sortieralgorithmen Einleitung Heapsort Quicksort 2 Motivation Sortieren ist Voraussetzung für viele Anwendungen Nach
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Graphen 9/1 Begriffsdefinitionen Ein Graph besteht aus Knoten und Kanten. Ein Knoten(Ecke) ist ein benanntes Objekt. Eine Kante verbindet zwei Knoten. Kanten haben ein Gewicht
MehrAlgorithmen und Datenstrukturen
1 Algorithmen und Datenstrukturen Wintersemester 2016/17 13. Vorlesung Binäre Suchbäume Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I 2 Dynamische Menge verwaltet Elemente einer sich ändernden Menge
MehrGraphen: Datenstrukturen und Algorithmen
Graphen: Datenstrukturen und Algorithmen Ein Graph G = (V, E) wird durch die Knotenmenge V und die Kantenmenge E repräsentiert. G ist ungerichtet, wenn wir keinen Start- und Zielpunkt der Kanten auszeichnen.
MehrADS: Algorithmen und Datenstrukturen 2
ADS: Algorithmen und Datenstrukturen 2 Teil 5 Prof. Peter F. Stadler & Dr. Christian Höner zu Siederdissen Bioinformatik/IZBI Institut für Informatik & Interdisziplinäres Zentrum für Bioinformatik Universität
MehrHeapsort / 1 A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8]
Heapsort / 1 Heap: Ein Array heißt Heap, falls A [i] A [2i] und A[i] A [2i + 1] (für 2i n bzw. 2i + 1 n) gilt. Beispiel: A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] Heapsort / 2 Darstellung eines Heaps als
Mehr8.4 Digraphen mit negativen Kantengewichten Grundsätzliches Betrachte Startknoten s und einen Kreis C mit Gesamtlänge < 0.
8.4 Digraphen mit negativen Kantengewichten 8.4.1 Grundsätzliches Betrachte Startknoten s und einen Kreis C mit Gesamtlänge < 0. k 4 5 1 s 1 3 2 C k 0 k 3 1 1 1 k 1 k 2 v Sollte ein Pfad von s nach C und
MehrStud.-Nummer: Datenstrukturen & Algorithmen Seite 1
Stud.-Nummer: Datenstrukturen & Algorithmen Seite 1 Aufgabe 1. / 15 P Hinweise: 1) In dieser Aufgabe sollen Sie nur die Ergebnisse angeben. Diese können Sie direkt bei den Aufgaben notieren. 2) Sofern
MehrLernmodul 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
MehrDatenstrukturen und Algorithmen
Prof. Dr. Erika Ábrahám Datenstrukturen und Algorithmen 1/1 Datenstrukturen und Algorithmen Vorlesung 14: Prof. Dr. Erika Ábrahám Theorie Hybrider Systeme Informatik 2 http://ths.rwth-aachen.de/teaching/ss-14/
MehrS=[n] Menge von Veranstaltungen J S kompatibel mit maximaler Größe J
Greedy-Strategie Definition Paradigma Greedy Der Greedy-Ansatz verwendet die Strategie 1 Top-down Auswahl: Bestimme in jedem Schritt eine lokal optimale Lösung, so dass man eine global optimale Lösung
MehrAlgorithmen 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.
MehrAlgorithmen und Datenstrukturen
1 Algorithmen und Datenstrukturen Wintersemester 01/13 6. Vorlesung Prioritäten setzen Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Guten Morgen! Tipps für unseren ersten Test am 0. November: Lesen
MehrDatenstrukturen und Algorithmen
Datenstrukturen und Algorithmen VO 708.031 27.10.2011 stefan.klampfl@tugraz.at 1 Wiederholung Wir vergleichen Algorithmen anhand des ordnungsmäßigen Wachstums von T(n), S(n), Asymptotische Schranken: O-Notation:
MehrAlgorithmen und Komplexität
Algorithmen und Komplexität Dynamische Programmierung Markus Ullrich Norbert Baum Fachbereich Informatik - IIb07 Hochschule Zittau/Görlitz 28. Mai 2009 1 / 29 Wie sieht es mit langen Ketten aus? A 1 A
MehrKlausur Algorithmen und Datenstrukturen
Technische Universität Braunschweig Sommersemester 2013 IBR - Abteilung Algorithmik Prof. Dr. Sándor Fekete Dr. Christiane Schmidt Stephan Friedrichs Klausur Algorithmen und Datenstrukturen 22.08.2013
MehrOtto-von-Guericke-Universität Magdeburg Fakultät für Informatik Institut für Simulation und Graphik Prof. Dr. Holger Theisel
Otto-von-Guericke-Universität Magdeburg Fakultät für Informatik Institut für Simulation und Graphik Prof. Dr. Holger Theisel Magdeburg, 26.07.2011 Klausur Algorithmen und Datenstrukturen Matrikelnummer:
MehrWS 2009/10. Diskrete Strukturen
WS 2009/10 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0910
MehrAlgorithmen - Eine Einführung
Algorithmen - Eine Einführung von Prof. Dr.Thomas H. Cormen, Prof. Dr. Charles E. Leiserson, Prof. Dr. Ronald Rivest, Prof. Dr. Clifford Stein Aus dem Englischen von Prof. Dr. rer. nat. habil. Paul Molitor,
MehrAlgorithmen und Datenstrukturen 1-5. Seminar -
Algorithmen und Datenstrukturen 1-5. Seminar - Dominic Rose Bioinformatics Group, University of Leipzig Wintersemester 2009/10 Outline 5.+6. Übungsserie: 5 Aufgaben, insgesamt 40 Punkte A17 Baum-Traversierung
MehrWiederholung. Beschreibung von Algorithmen durch Pseudocode. Laufzeitverhalten beschreiben durch O-Notation.
Wiederholung Beschreibung von Algorithmen durch Pseudocode. Korrektheit von Algorithmen durch Invarianten. Laufzeitverhalten beschreiben durch O-Notation. Wollen uns auf asymptotische Laufzeit konzentrieren.
Mehr3. 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),
MehrTechnische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen
Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen 186.172 Algorithmen und Datenstrukturen 1 VL 4.0 Übungsblatt 4 für die Übung
MehrKurs 1663 Datenstrukturen" Musterlösungen zur Klausur vom Seite 1. Musterlösungen zur Hauptklausur Kurs 1663 Datenstrukturen 15.
Kurs 1663 Datenstrukturen" Musterlösungen zur Klausur vom 15.08.98 Seite 1 Musterlösungen zur Hauptklausur Kurs 1663 Datenstrukturen 15. August 1998 Kurs 1663 Datenstrukturen" Musterlösungen zur Klausur
MehrInformatik II. Vorlesung am D-BAUG der ETH Zürich. Felix Friedrich & Hermann Lehner FS 2018
1 Informatik II Vorlesung am D-BAUG der ETH Zürich Felix Friedrich & Hermann Lehner FS 2018 23 1. Einführung Algorithmen und Datenstrukturen, erstes Beispiel 24 Ziele der Vorlesung Verständnis des Entwurfs
Mehr