1. Übung Algorithmentechnik
|
|
|
- Minna Glöckner
- vor 9 Jahren
- Abrufe
Transkript
1 1. Übung Algorithmentechnik Institut für Theoretische Informatik / 42
2 Aufgabe 1 Aufgabe (Amortisierte Analyse) Modellieren Sie eine Queue mit zwei Stacks so, dass die amortisierten Kosten von Dequeue und Enqeue jeweils in O(1) sind. Geben Sie die Operationen Dequeue und Enqueue in Pseudocode an und begründen Sie die amortisierten Kosten. 2/ 42
3 Aufgabe 1 globale Datenstruktur: zwei Stacks E und D, die initial leer sind E wird für Enqueue benutzt D wird für Dequeue benutzt betrachten Folge von n Enqueue- und Dequeue-Operationen für Analyse 3/ 42
4 1 Algorithmus 1 : Enqueue(x) Push(E,x) Aufwand 1 = O(1) Aufgabe 1 O(1) Algorithmus 2 : Dequeue() wenn D = dann solange E tue Push(D,Pop(E)) pop(d) Aufwand 1 bzw. 2 E + 1 = O( E ) O(1) 4/ 42
5 Korrektheit betrachte Folge von Insert und Dequeue x 1 x 2 x k D 1 x k+1 x r D k zu Beginn seien D, E leer vor D 1 liegen x 1 x 2 x k in umgekehrter Reihenfolge des Einfügens auf E nach D 1 ist E leer und auf D liegen x k x 1 in Reihenfolge des Einfügens D 1,..., D k entfernen jeweils x 1,..., x k in der Reihenfolge des Einfügens d.h. D i entfernt x i vor D k+1 liegen x k+1 x s auf E und D ist leer nach D k+1 liegen x s x k+1 auf D und D k+1,..., D s entfernen jeweils x k+1,..., x s... 5/ 42
6 Ganzheitsmethode wenn Dequeue Aufwand von E verursacht, dann müssen vorher E Enqueue-Operationen stattgefunden haben Gesamtaufwand für Dequeue-Operationen ist höchstens so groß wie Gesamtaufwand für Enqueue-Operationen, d.h. O(n) Gesamtaufwand T (n) = O(n) Aufwand pro Operation T (n)/n = O(1) 6/ 42
7 Buchungsmethode definieren Kosten wie folgt tatsächliche Kosten amortisierte Kosten Enqueue 1 3 Dequeue 1, E 1 Idee: beim Einfügen bezahlt jedes Element das Einfügen in E sofort und hinterlegt Kredit von 2 für Hinzufügen zu D (1 Pop, 1 Push) amortisierte Kosten in O(1) 7/ 42
8 Potentialmethode sei D i Datenstruktur nach i-ter Operation, Datenstruktur sei zu Beginn leer definiere Potential Φ : D i Φ(D i ) := 2 E Φ(D O ) = 0, Φ(D i ) Φ(D 0 ) im Folgenden ĉ i : amortisierte Kosten, c i reale Kosten der i-ten Operation dann gilt ĉ i := c i + Φ(D i ) Φ(D i 1 ) 8/ 42
9 Potentialmethode i-te Operation ist Enqueue mit E := k: ĉ i = c i + Φ(D i ) Φ(D i 1 ) = 1 + 2(k + 1) 2k = 3 i-te Operation ist Dequeue mit D > 0, E := k: ĉ i = c i + Φ(D i ) Φ(D i 1 ) = 1 + 2k 2k = 1 i-te Operation ist Dequeue mit D = 0, E := k: ĉ i = c i + Φ(D i ) Φ(D i 1 ) = 2k k = 1 9/ 42
10 Aufgabe 2 Aufgabe (Untere Schranken) Gegeben sei eine Folge (a i ) n i=1 von n Elementen. Zeigen Sie, dass man mindestens Ω(log n) Vergleiche benötigt, um den Index i max des maximalen Elementes a imax bestimmen. zu 10/ 42
11 Problemstellung sei Π ein Problem Untere Schranken finde eine Funktion l : N N (untere Schranke für Π) mit folgender Eigenschaft: jeder Algorithmus A, der Π löst, hat eine worst-case Komplexität T A (n) Ω(l(n)), d.h. kein Algorithmus mit Komplexität T A (n) o(l(n)) Problem: Aussage über alle Algorithmen schwierig Festlegung eines Algorithmen-Modells durch sog. Entscheidungsbäume Komplexitätsmaß ist Anzahl der Entscheidungen 11/ 42
12 Entscheidungsbäume als Algorithmen-Modell Algorithmus als Baum mit konstantem Maximalgrad nicht-uniformes Modell, d.h. unterschiedliche Bäume für Instanzen unterschiedlicher Größe Knoten ist Orakel, das zu jeder Instanz einen Kindknoten ausgibt Blätter sind mit Ausgabe des Algorithmus annotiert Berechnung: Weg von der Wurzel zu einem Blatt (gemäß Orakelspruch ) Komplexität einer Berechnung: Länge des Weges Komplexität des Algorithmus: Höhe des Baumes 12/ 42
13 Entscheidungsbäume als Algorithmen-Modell 13/ 42
14 Entscheidungsbäume als Algorithmen-Modell sei h Höhe des Baumes und n die Anzahl der Blätter und k Maximalgrad dann gilt n k h, d.h. h log k n Annahme: Algorithmus A habe n verschiedene Ausgaben Baum hat mind. n Blätter Höhe des Baumes ist mind. log k n Informationstheoretische Begründung: benutze Weg, um Ausgabe zu kodieren: Bei Höhe h und Maximalgrad k kann es höchstens n = k h verschiedene Ausgaben (Blätter) geben log k n ist (triviale) untere Schranke 14/ 42
15 Erster Ansatz Algorithmus für das Maximum-Problem hat n verschiedene Ausgaben log 2 n ist untere Schranke, falls nur Vergleiche zugelassen sind diese Schranke ist scharf! verwende binären Suchbaum als Algorithmus imax < n/2 imax < n/4 imax < 3n/4 imax < n/8 imax < 3n/8 imax < 5n/8 imax < 7n/8 15/ 42
16 Anderer Ansatz Problem mit erstem Ansatz: ein Algorithmus, der Index des maximalen Elements nicht kennt, kann Orakelfrage nicht beantworten Modell ist zu mächtig Einschränkung: Jede Anfrage muss von der Form x i < x j sein sei T Entscheidungsbaum in diesem Modell für das Maximum-Problem mit n Elementen wir konstruieren Eingabe, bei der der Algorithmus möglichst viele Vergleiche anstellen muss (Adversary-Argument) 16/ 42
17 Adversary Argument zunächst nehmen wir an, dass x i = i für alle i falls Algorithmus Anfrage x i < x j stellt, markieren wir x i Markierung bedeutet: Algorithmus weiß, dass x i nicht das maximale Element ist x n wird nicht markiert (da es das größte Element ist) Annahme: x k (k n) werde ebenfalls nicht markiert (d.h. Algorithmus macht weniger als n 1 Vergleiche) Algorithmus kann nicht unterscheiden, ob x k oder x n Maximum ist bei Ausgabe x n wählen wir x k := n + 1 sonst belassen wir die Folge (konsistent mit Anfragen) mindestens n 1 Vergleiche nötig 17/ 42
18 Aufgabe 3 Aufgabe (Laufzeit rekursiver Funktionen) Bestimmen Sie den größten ganzzahligen Wert a mit der Eigenschaft, dass ein Algorithmus mit der durch T B (n) = a T B (n/4) + n 2 bestimmten Laufzeit im Θ-Kalkül asymptotisch schneller ist, als ein Algorithmus mit der durch bestimmten Laufzeit. T A (n) = 7 T A (n/2) + n 2 18/ 42
19 Theorem (Master-Theorem) Master-Theorem Seien a 1 und b > 1 Konstanten, f (n) eine Funktion in n und T (n) über nichtnegative ganze Zahlen definiert durch dann gelten T (n) = a T (n/b) + f (n), a (i) T (n) Θ(f (n)) falls f (n) Ω(n log b a+ε ) und af ( n b ) cf (n) für eine Konstante c < 1 und n n 0, (ii) T (n) Θ(n log b a log n) falls f (n) Θ(n log b a ), (iii) T (n) Θ(n log b a ) falls f (n) O(n log b a ε ). a Dabei stehen n/b für n/b oder n/b. 19/ 42
20 Aufgabe 4 Aufgabe (Das Tiefen-Bestimmungs-Problem) Entwerfen Sie eine Datenstruktur, die eine Menge F von disjunkten Bäumen verwaltet und folgende Operationen unterstützt. Make-Tree(v): erzeuge neuen Baum mit Wurzel v Attach(r, v): hänge Baum mit Wurzel r an Knoten v an Find-Depth(v): bestimme Tiefe von v 20/ 42
21 Makeset 1 Algorithmus 3 : Makeset(x) (#2) Eingabe : Element x Vor[x] 1 Die Laufzeit ist in O(1). 21/ 42
22 Weighted Union Algorithmus 4 : Union(i, j) (#3) z Vor[i] + Vor[j] wenn Vor[i] < Vor[j] dann Vor[i] j und Vor[j] z sonst Vor[j] i und Vor[i] z Die Laufzeit ist in O(1). 22/ 42
23 Find mit Pfadkompression Algorithmus 5 : Find(x) (#3) Eingabe : Element x Ausgabe : Menge, in der x enthalten ist j x solange Vor[j] > 0 tue j Vor[j] i x solange Vor[i] > 0 tue temp i i Vor[i] Vor[temp] j Gib j aus Die Laufzeit ist in O(log n). Repräsentanten-Suche Pfadkompression 23/ 42
24 Modifikation von Union-Find Modifikation zur Verwaltung der Tiefe (Struktur der Bäume muss nicht durch Union-Find verwaltet werden) Annotation der Knoten mit Wert d(v), der folgende Eigenschaft hat sei v k := Find(v 0 ) sei v 0, v 1, v 2,..., v k die Folge von Knoten, die Find(v 0 ) von v 0 zur Wurzel v k durchläuft dann soll gelten: Tiefe von v 0 ergibt sich als k i=0 d(v i) d(v i ) ist also Differenz zwischen Tiefe von v i und v i+1 (direkter Vorgänger) 24/ 42
25 Korrektheit es gilt d(v i ) := Find-Depth(v i ) Find-Depth(v i+1 ) (i < k) d(v k ) := Find-Depth(v k ) Summe ist Teleskop-Summe, d.h. k d(v i ) = Find-Depth(v 0 ) i=0 stelle sicher, dass obige Gleichungen immer erfüllt sind 25/ 42
26 Makeset 1 2 Algorithmus 6 : Make-Tree(x) Eingabe : Knoten x Ausgabe : Neuer Baum mit Wurzel x d[x] 0 Vor[x] 1 Korrektheit ist klar. 26/ 42
27 Algorithmus 7 : Find(x) Eingabe : Knoten x Ausgabe : Das Paar (Depth, r) (Tiefe und Wurzel von x) r x Repräsentanten-Suche Depth d[x] solange Vor[r] > 0 tue r Vor[r] Depth Depth + d[r] i x PDepth 0 solange Vor[i] > 0 tue t d[i] d[i] Depth PDepth d[r] PDepth PDepth + t temp i i Vor[i] Vor[temp] r Pfadkompression 27/ 42
28 Korrektheit sei v 0,..., v k Folge, die Find durchläuft, d.h. x = v 0 Zeile 9/10 d[v i ] Depth PDepth d[r] Depth=Find-Depth(x) und hat Wert k s=0 d alt[s] PDepth hat Wert i 1 s=0 d alt[s] im i-ten Schritt d neu [v i ] = k d alt [s] d alt [r] s=i = Find-Depth(v i ) d alt [r] = Find-Depth(v i ) Find-Depth(r) 28/ 42
29 Algorithmus 8 : Attach(r, x) (modifiziertes Union) Eingabe : Wurzel r eines Baumes und ein Knoten x Ausgabe : Der Knoten r wird an x angehängt (d x, q x ) Find(x) (d r, q r ) Find(r) z Vor[q x ] + Vor[q r ] wenn Vor[q r ] < Vor[q x ] dann q x wird Wurzel Vor[q r ] q x und Vor[q x ] z d(q r ) d(q r ) + d x + 1 d(q x ) sonst q r wird Wurzel Vor[q x ] q r und Vor[q r ] z d(q r ) d(q r ) + d x + 1 d(q x ) d(q x ) d(q r ) 29/ 42
30 Korrektheit q x q x wird Wurzel q r x r d(q r ) d(q r ) + d x + 1 d(q x ) 30/ 42
31 Korrektheit q x q x wird Wurzel q r wird Wurzel q r q r q x x r r x d(q r ) d(q r ) + d x + 1 d(q x ) d(q r ) d(q r ) + d x + 1 d(q x ) d(q x ) d(q r ) 30/ 42
32 1 2 Algorithmus 9 : Find-Depth(x) Eingabe : Knoten x Ausgabe : Die Tiefe Depth(x) von x (d, r) Find(i) Depth(x) d 31/ 42
33 Aufgabe 5 Aufgabe (Berechnung starker Zusammenhangskomponenten) Gegeben sei ein gerichteter Graph D = (V, E). für u, v V gelte u v, wenn es einen gerichteten Weg von u nach v und einen gerichteten Weg von v nach u gibt Zeigen Sie, dass eine Äquivalenzrelation ist. Die Äquivalenzklassen zu heißen starke Zusammenhangskomponenten. Schreiben Sie einen Algorithmus in Pseudocode, der die starken Zusammenhangskomponenten findet. 32/ 42
34 Äquivalenzrelation Reflexivität: u u, da Weg der Länge 0 existiert Symmetrie: u v v u, nach Definition Transitivität: u v, v w u w: da Weg von u über v nach w und umgekehrt existiert Bemerkung: u w gdw. u und v liegen auf einem gerichteten Kreis 33/ 42
35 Tiefensuche Algorithmus 10 : DFS(G=(V,E)) für v V tue π(w) Nil Color[v] White für v V tue wenn Color[v] = White dann DFS-Visit(v) 34/ 42
36 Algorithmus 11 : DFS-Visit(v, S) Color[v] Gray für (v, w) E tue wenn Color[w] = White dann π(w) v Mod-DFS-Visit(w, S) neuer Knoten 6 Color[v] Black 35/ 42
37 Ineffizienter Algorithmus Algorithmus 12 : Starke-Zusammenhangskomponenten-1 für v V tue Makeset(v) für {v, w} 2 V tue wenn Find(v) Find(w) dann Dfs-Visit(v) Dfs-Visit(w) wenn w Dfs-Visit(v) und v Dfs-Visit(w) dann Union(Find(v), Find(w)) Aufwand O(n 3 )! 36/ 42
38 modifizierte Tiefensuche Vorgehensweise verwalte Mengen von äquivalenten Knoten mit Union-Find falls Tiefensuche Kreis findet, können alle Knoten auf dem Kreis kontrahiert werden verwenden Stack S für Repräsentanten von Mengen äquivalenter Knoten mit der Eigenschaft, dass einer der Knoten auf dem aktuell offenen Pfad der Tiefensuche liegt 37/ 42
39 modifizierte Tiefensuche Algorithmus 13 : Starke-Zusammenhangskomponenten Daten : Stack S für v V tue Makeset(v) π(w) Nil Color[Find(v)] White für v V tue wenn Color[Find(v)] = White dann Mod-DFS-Visit(v) 38/ 42
40 Algorithmus 14 : Mod-DFS-Visit(v, S) Color[Find(v)] Gray wenn Find(v) Find(Peek(S)) dann Push(S, v) für (v, w) E tue wenn Color[Find(w)] = White dann π(w) v Mod-DFS-Visit(w, S) sonst wenn Color[Find(w)] = Gray dann Kontrahiere-Kreis(w, S) neuer Knoten Kreis gefunden wenn Find(π(v)) Find(Peek(S)) dann Color[Find(v)] Black Pop(S) Stack aufräumen 39/ 42
41 Algorithmus 15 : Kontrahiere-Kreis(w, S) x Pop(S) solange Find(w) Find(x) tue Union(Find(w), Find(x)) x Pop(S) Color[Find(w)] Grey Push(S, w) 40/ 42
42 Beispiel {1} Stack 41/ 42
43 Beispiel {4} {1} Stack 41/ 42
44 Beispiel {2} {4} {1} Stack 41/ 42
45 Beispiel {3} {2} {4} {1} Stack 41/ 42
46 Beispiel {3} {2} {4} {1} {1, 2, 4} Stack 41/ 42
47 Beispiel {3} {2} {4} {1} {1, 2, 4} Stack 41/ 42
48 Beispiel {3} {2} {4} {5} {1} {1, 2, 4} Stack 41/ 42
49 Beispiel {3} {2} {4} {5} {1} {1, 2, 4} 4, 5} Stack 41/ 42
50 Beispiel {3} {2} {4} {5} {6} {1} {1, 2, 4} 4, 5} Stack 41/ 42
51 Beispiel {3} {2} {4} {5} {6} {1} {1, 2, 4} 4, 5} 5, 6} Stack 41/ 42
52 Beispiel {3} {2} {4} {5} {6} {1} {1, 2, 4} 4, 5} 5, 6} Stack 41/ 42
53 Korrektheit Algorithmus durchläuft Graph mit Tiefensuche sei v 1,..., v k der aktuelle Tiefensuche-Pfad Stackinhalt: w 1,..., w k mit Find(v i ) = Find(w i ) d.h. Stack enthält zu jedem Zeitpunkt für jeden Knoten v auf dem aktuell offenen Pfad den Repräsentanten einer Menge, die v enthält sei C gerichteter Kreis in G die Knoten auf C werden zu einer Menge zusammengefasst Menge wird erst schwarz gefärbt, wenn alle Knoten in der Menge abgesucht wurden 42/ 42
Lösungsvorschlag 1. Vorlesung Algorithmentechnik im WS 09/10
Institut für Theoretische Informatik Lehrstuhl Prof. Dr. D. Wagner Lösungsvorschlag Vorlesung Algorithmentechnik im WS 09/0 Problem : Dynamisches Array (Amortisierte Analyse) [vgl. Kapitel 0.3 im Skript]
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
2. Musterlösung. Problem 1: Das Postamtplatzierungsproblem ** = min w i ( x p x i ) + w i ( y p y i ) i=1. w i + w m w i. 0 wegen (3) w m+1 m,m+1
Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 05/06 ITI Wagner 2. Musterlösung Problem 1: Das Postamtplatzierungsproblem ** Sei OE x 1 x 2 x n. Gesucht ist ein Punkt p = (x, y) mit
Algorithmen 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
Algorithmen & Komplexität
Algorithmen & Komplexität Angelika Steger Institut für Theoretische Informatik [email protected] Breitensuche, Tiefensuche Wir besprechen nun zwei grundlegende Verfahren, alle Knoten eines Graphen zu
Relationen 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
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Wintersemester 202/3 24. Vorlesung Amortisierte Analyse Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Hash-Tabellen Frage: Ziel: Problem: Lösung: Wie groß macht man
(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,
ContainerDatenstrukturen. Große Übung 4
ContainerDatenstrukturen Große Übung 4 Aufgabenstellung Verwalte Kollektion S von n Objekten Grundaufgaben: Iterieren/Auflistung Suche nach Objekt x mit Wert/Schlüssel k Füge ein Objekt x hinzu Entferne
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
10. Übungsblatt zu Algorithmen I im SS 2010
Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. Dr. Peter Sanders G.V. Batz, C. Schulz, J. Speck 0. Übungsblatt zu Algorithmen I im SS 00 http//algo.iti.kit.edu/algorithmeni.php
Algorithmen 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
NAME, 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.
Informatik 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:...........................................................
Klausur 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)
Datenstrukturen & Algorithmen
Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Binäre Suchbäume Einführung und Begriffe Binäre Suchbäume 2 Binäre Suchbäume Datenstruktur für dynamische Mengen
a) Fügen Sie die Zahlen 39, 38, 37 und 36 in folgenden (2, 3)-Baum ein:
1 Aufgabe 8.1 (P) (2, 3)-Baum a) Fügen Sie die Zahlen 39, 38, 37 und 36 in folgenden (2, 3)-Baum ein: Zeichnen Sie, was in jedem Schritt passiert. b) Löschen Sie die Zahlen 65, 70 und 100 aus folgendem
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
Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)).
8. Untere Schranken für Sortieren Alle bislang betrachteten Sortieralgorithmen hatten (worst-case) Laufzeit Ω(nlog(n)). Werden nun gemeinsame Eigenschaften dieser Algorithmen untersuchen. Fassen gemeinsame
Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 1: Grundlagen der algorithmischen Graphentheorie
Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 1: Grundlagen der algorithmischen Graphentheorie Dipl-Math. Wolfgang Kinzner 2.4.2012 Kapitel 1: Grundlagen der algorithmischen Graphgentheorie
Klausur 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
Algorithm Engineering. Amortisierung. Stefan Edelkamp
Algorithm Engineering Amortisierung Stefan Edelkamp Analyse von Algorithmen Best Case Worst Case Average Case Amortisierte Worst Case Was sind die durchschnittlichen Kosten einer schlechtest möglichen
Datenstrukturen & Algorithmen Lösungen zu Blatt 5 FS 14
Eidgenössische Technische Hochschule Zürich Ecole polytechnique fédérale de Zurich Politecnico federale di Zurigo Federal Institute of Technology at Zurich Institut für Theoretische Informatik 26. März
Datenstrukturen & Algorithmen Lösungen zu Blatt 4 FS 15
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 18. März
Amortisierte Analyse
Amortisierte Analyse Amortisierung Betrachte eine Folge a 1, a 2,..., a n von n Operation auf Datenstruktur D T i = Ausführungszeit von a i T = T 1 + T 2 +... + T n, Gesamtlaufzeit Oft kann die Laufzeit
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 /
Übungen zur Vorlesung Datenstrukturen und Algorithmen SS 2006 Blatt 13
Übungen zur Vorlesung Datenstrukturen und Algorithmen SS 2006 Blatt 13 Sven Grothklags University of Paderborn 10. Juli 2006 Sven Grothklags (University of Paderborn) DuA Übungsblatt 13 10. Juli 2006 1
Algorithmen 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
Das Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle
122 4. Suchen Lineare Suche, Binäre Suche, Interpolationssuche, Untere Schranken [Ottman/Widmayer, Kap. 3.2, Cormen et al, Kap. 2: Problems 2.1-3,2.2-3,2.3-5] 123 Das Suchproblem Gegeben Menge von Datensätzen.
Ü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
Algorithmen I. Tutorium 1-3. Sitzung. Dennis Felsing
Algorithmen I Tutorium 1-3. Sitzung Dennis Felsing [email protected] www.stud.uni-karlsruhe.de/~ubcqr/algo 2011-05-02 Überblick 1 Sortieren und Suchen 2 Mastertheorem 3 Datenstrukturen 4 Kreativaufgabe
Algorithmen & Datenstrukturen Lösungen zu Blatt 9 HS 16
Eidgenössische Technische Hochschule Zürich Ecole polytechnique fédérale de Zurich Politecnico federale di Zurigo Federal Institute of Technology at Zurich Departement Informatik 24. November 2016 Markus
2. Klausur zur Vorlesung Algorithmentechnik Wintersemester 2005/ April 2006
2. Klausur zur Vorlesung Algorithmentechnik Wintersemester 2005/2006 18. April 2006 Lösung! Aufgabe 1 2 3 4 5 6 7 8 9 10 a 3 4 1 1 5 1 4 2 3 b 5 1 3 3 3 3 c 1 2 3 8 4 3 6 5 7 7 5 3 12 60 a b c Name: Matrikelnr.:
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
Voronoi-Diagramme. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK
Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 29.05.2011 Das Postamt-Problem b(p, q) = {x R 2 : xp = xq } p q h(p, q) h(q, p) = {x :
Klausur 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
Datenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 14
Eidgenössische Technische Hochschule Zürich Ecole polytechnique fédérale de Zurich Politecnico federale di Zurigo Federal Institute of Technology at Zurich Institut für Theoretische Informatik 2. April
Praktikum 3 Algorithmik SS Aufgabe 10: Aufgabe 9 ( Skyline-Problem ) weitere Aufgaben folgen. Name:... Matr-Nr:...
Praktikum 3 Algorithmik SS 2007 14052007 Aufgabe 9: Aufgabe 10: Das Skyline-Problem Union-Find-Strukturen weitere Aufgaben folgen Name: Matr-Nr: Datum: Unterschrift des Dozenten (wenn bestanden): Aufgabe
Theoretische Informatik. Exkurs: Komplexität von Optimierungsproblemen. Optimierungsprobleme. Optimierungsprobleme. Exkurs Optimierungsprobleme
Theoretische Informatik Exkurs Rainer Schrader Exkurs: Komplexität von n Institut für Informatik 13. Mai 2009 1 / 34 2 / 34 Gliederung Entscheidungs- und Approximationen und Gütegarantien zwei Greedy-Strategien
Das Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle
119 4. Suchen Lineare Suche, Binäre Suche, Interpolationssuche, Exponentielle Suche, Untere Schranken [Ottman/Widmayer, Kap. 3.2, Cormen et al, Kap. 2: Problems 2.1-3,2.2-3,2.3-5] 120 Das Suchproblem Gegeben
Beispiellösung zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 5
Robert Elsässer Paderborn, den 15. Mai 2008 u.v.a. Beispiellösung zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 5 AUFGABE 1 (6 Punkte): Nehmen wir an, Anfang bezeichne in einer normalen
2 Wachstumsverhalten von Funktionen
Algorithmen und Datenstrukturen 40 2 Wachstumsverhalten von Funktionen Beim Vergleich der Worst-Case-Laufzeiten von Algorithmen in Abhängigkeit von der Größe n der Eingabedaten ist oft nur deren Verhalten
Das Suchproblem 4. Suchen Das Auswahlproblem Suche in Array
Das Suchproblem Gegeben. Suchen Lineare Suche, Binäre Suche, Interpolationssuche, Untere Schranken [Ottman/Widmayer, Kap. 3.2, Cormen et al, Kap. 2: Problems 2.-3,2.2-3,2.3-] Menge von Datensätzen. Beispiele
Vorlesung Informatik 2 Algorithmen und Datenstrukturen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (16 Dynamische Tabellen) Prof. Dr. Susanne Albers Dynamische Tabellen Problem: Verwaltung einer Tabelle unter den Operationen Einfügen und Entfernen,
3. Musterlösung. Problem 1: Boruvka MST
Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 06/07 ITI Wagner. Musterlösung Problem : Boruvka MST pt (a) Beweis durch Widerspruch. Sei T MST von G, e die lokal minimale Kante eines
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
Ü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
Vorlesung Datenstrukturen
Vorlesung Datenstrukturen Minimale Spannbäume Maike Buchin 18.7., 20.7.2017 Einführung Motivation: Verbinde Inseln mit Fähren oder Städte mit Schienen und verbrauche dabei möglichst wenig Länge. Problem:
Wiederholung. Datenstrukturen und. Bäume. Wiederholung. Suchen in linearen Feldern VO
Wiederholung Datenstrukturen und Algorithmen VO 708.031 Suchen in linearen Feldern Ohne Vorsortierung: Sequentielle Suche Speicherung nach Zugriffswahrscheinlichkeit Selbstanordnende Felder Mit Vorsortierung:
Datenstrukturen & Algorithmen Lösungen zu Blatt 6 FS 12
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 8. März
Algorithmen 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
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
Algorithmen 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
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,
Abgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g:
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen SS 2009 Grundlagen: Algorithmen und Datenstrukturen Übungsblatt 2 Prof. Dr. Helmut Seidl, S. Pott,
Sortieren II / HeapSort Heaps
Organisatorisches VL-07: Sortieren II: HeapSort (Datenstrukturen und Algorithmen, SS 2017) Vorlesung: Gerhard Woeginger (Zimmer 4024 im E1) Email: [email protected] Webseite: http://algo.rwth-aachen.de/lehre/ss17/dsa.php
Datenstrukturen 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
8. 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.
12 (2-4)-Bäume Implementierbare Funktionen. (2-4)-Bäume sind durch folgende Eigenschaften deniert: 1. Alle Äste sind gleich lang
12 (2-4)-Bäume (2-4)-Bäume sind durch folgende Eigenschaften deniert: 1. Alle Äste sind gleich lang 2. Die Ordnung (maximale Anzahl der Söhne eines Knotens) ist gleich 4 3. Innere Knoten haben 2 Söhne
Programm 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
Wiederholung. Bäume sind zyklenfrei. Rekursive Definition: Baum = Wurzelknoten + disjunkte Menge von Kindbäumen.
Wiederholung Baum: Gerichteter Graph, der die folgenden drei Bedingungen erfüllt: Es gibt einen Knoten, der nicht Endknoten einer Kante ist. (Dieser Knoten heißt Wurzel des Baums.) Jeder andere Knoten
Algorithmische Graphentheorie
Algorithmische Graphentheorie Vorlesung 4: Suchstrategien Babeş-Bolyai Universität, Department für Informatik, Cluj-Napoca [email protected] 14. April 2017 HALBORDNUNG TOPOLOGISCHE ORDNUNG TOPOLOGISCHES
Datenstrukturen 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
Breitensuche BFS (Breadth First Search)
Breitensuche BFS (Breadth First Search) Algorithmus BREITENSUCHE EINGABE: G = (V, E) als Adjazenzliste, Startknoten s V 1 Für alle v V 1 If (v = s) then d[v] 0 else d[v] ; 2 pred[v] nil; 2 Q new Queue;
Vorlesung Informatik 2 Algorithmen und Datenstrukturen. (25 Sortieren vorsortierter Daten)
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (25 Sortieren vorsortierter Daten) 1 Untere Schranke für allgemeine Sortierverfahren Satz Zum Sortieren einer Folge von n Schlüsseln mit einem allgemeinen
Voronoi-Diagramme INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK. Dr. Martin Nöllenburg Vorlesung Algorithmische Geometrie
Vorlesung Algorithmische Geometrie INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 03.06.2014 1 Das Postamt-Problem b(p, q) = {x 2 R 2 : xp = xq } p q h(p, q) h(q, p) = {x
Manipulation von Mengen
Manipulation von Mengen Thomas Röfer Vorrangwarteschlange Linksbaum Heap HeapSort Union-Find-Strukturen Allgemeiner Rahmen für Mengenmanipulationen Rückblick Hashing Streuspeicherverfahren Hashfunktion
Entwurf und Analyse von Algorithmen WS 1999/2000
Entwurf und Analyse von Algorithmen WS 1999/2000 Prof. Dorothea Wagner Ausarbeitung: Dagmar Handke Matthias Weisgerber Anja Kristina Koch Version vom 29. November 2005 2 Inhaltsverzeichnis 1 Divide-and-Conquer-Verfahren
Algorithmen und Datenstrukturen Heapsort
Algorithmen und Datenstrukturen 2 5 Heapsort In diesem Kapitel wird Heapsort, ein weiterer Sortieralgorithmus, vorgestellt. Dieser besitzt wie MERGE-SORT eine Laufzeit von O(n log n), sortiert jedoch das
Lernmodul 7 Algorithmus von Dijkstra
Folie 1 von 30 Lernmodul 7 Algorithmus von Dijkstra Quelle: http://www.map24.de Folie 2 von 30 Algorithmus von Dijkstra Übersicht Kürzester Weg von A nach B in einem Graphen Problemstellung: Suche einer
Informatik II Prüfungsvorbereitungskurs
Informatik II Prüfungsvorbereitungskurs Tag 4, 9.6.2017 Giuseppe Accaputo [email protected] 1 Aufbau des PVK Tag 1: Java Teil 1 Tag 2: Java Teil 2 Tag 3: Algorithmen & Komplexität Tag 4: Dynamische Datenstrukturen,
Datenstrukturen & 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
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
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:...................................................
Humboldt-Universität zu Berlin Berlin, den Institut für Informatik
Humboldt-Universität zu Berlin Berlin, den 15.06.2015 Institut für Informatik Prof. Dr. Ulf Leser Übungen zur Vorlesung M. Bux, B. Grußien, J. Sürmeli, S. Wandelt Algorithmen und Datenstrukturen Übungsblatt
Algorithmen und Datenstrukturen
1 Algorithmen und Datenstrukturen Wintersemester 2017/18 20. Vorlesung Tiefensuche und topologische Sortierung Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Themen für den 3. Kurztest (Do, 25.01.18)
16. All Pairs Shortest Path (ASPS)
. All Pairs Shortest Path (ASPS) All Pairs Shortest Path (APSP): Eingabe: Gewichteter Graph G=(V,E) Ausgabe: Für jedes Paar von Knoten u,v V die Distanz von u nach v sowie einen kürzesten Weg a b c d e
3. Übungsblatt zu Algorithmen I im SoSe 2017
Karlsruher Institut für Technologie Prof. Dr. Jörn Müller-Quade Institut für Theoretische Informatik Björn Kaidel, Sebastian Schlag, Sascha Witt 3. Übungsblatt zu Algorithmen I im SoSe 2017 http://crypto.iti.kit.edu/index.php?id=799
lim log 2n n = > 0 Da es einen Limes gibt, gibt es auch einen Limes inferior, der gleich diesem Limes ist.
Prof. aa Dr. Ir. Joost-Pieter Katoen Christian Dehnert, Jonathan Heinen, Thomas Ströder, Sabrina von Styp Aufgabe 1 (O-Notation): Beweisen oder widerlegen Sie die folgenden Aussagen: (3 + 3 + 4 = 10 Punkte)
