Beispiel-Prüfungsfragen Effiziente Algorithmen M. Dietzfelbinger, Stand 29. Juli 2013.

Größe: px
Ab Seite anzeigen:

Download "Beispiel-Prüfungsfragen Effiziente Algorithmen M. Dietzfelbinger, Stand 29. Juli 2013."

Transkript

1 Beispiel-Prüfungsfragen für Effiziente Algorithmen M. Dietzfelbinger, Stand 29. Juli Vorbemerkung: Die Liste der Beispielfragen soll bei der Vorbereitung helfen. Sie definiert nicht den Prüfungsstoff um. (Der Prüfungsstoff ist, was in der Vorlesung besprochen wurde. Mit weniger Gewicht auch Erweiterungen oder Ergänzungen, die in der Übung behandelt wurden.) Allgemein: Der größte Teil der Vorlesung handelt von Berechnungsproblemen und Algorithmen, die diese lösen. Wenn man (in der Prüfung) über eine solche Situation spricht, sind stets folgende Aspekte wesentlich. Problembeschreibung: Input. Frage bzw. Aufgabenstellung. Ausgabe. Manchmal ist schon die Beschreibung des Problems nicht ganz einfach. Beispiel: Beim MST-Problem ist die Eingabe ein ungerichteter zusammenhängender Graph G = (V, E) mit Kantengewichten c(e) R, e E. Ein Spannbaum ist eine Kantenmenge T E derart, dass (V, T ) zusammenhängend und kreisfrei ist. Gesucht ist ein Spannbaum T, der die Gesamtkosten c(t ) = e T c(e) minimiert, ein sogenannter minimaler Spannbaum. Algorithmus 1: Name: Zur Beschreibung des Algorithmus gehört unbedingt der Name (z. B. Algorithmus von Kruskal ). Diese Namen sind nicht Zierrat, sondern gehören zur Fachsprache, damit man sich gegebenenfalls rasch mit anderen verständigen kann, welche Methode benutzt wird. Algorithmus 2: Methode: Man muss beschreiben können, wie der Algorithmus abläuft. Dazu ist Pseudocode meistens zu umständlich. Also: kompaktere Beschreibungen zurechtlegen. Beispiel: Man sortiert die Kanten aufsteigend nach Gewicht. Ergebnis: e 1,..., e m. Man beginnt mit R = und geht in Runden voran. In Runde i wird e i betrachtet. Wenn e i mit R keinen Kreis schließt, wird e i zu R hinzugefügt, sonst nicht. Algorithmus 3: Ausgabe In welcher Form wird das Ergebnis ausgegeben und was bedeutet die Ausgabe? Beispiel: Die schließlich entstandene Menge R wird ausgegeben. Wir behaupten, dass sie einen minimalen Spannbaum darstellt. 1

2 Rechenzeitanalyse: Zunächst muss man unbedingt die Rechenzeit benennen können. Beispiel: Der Algorithmus von Kruskal hat bei simpler Implementierung der Union-Find-Datenstruktur eine Laufzeit von O(m log n), wobei m = E und n = V ist. Dann sollte man die Überlegungen zur Rechenzeitanalyse kennen. Beispiel: Das Sortieren der Kanten kostet (z. B. mit MergeSort) Zeit O(m log m) = O(m log n). Wenn wir die Implementierung der Union-Find-Datenstruktur mit Arrays, Rängen und verketteten Listen benutzen, benötigt jede der 2m Find- Operationen Zeit O(1), zusammen O(m). Die n 1 union-operationen zusammen benötigen Zeit O(n log n). Zusammen erhalten wir eine Laufzeitschranke von O(m log m)+o(m)+o(n log n) = O(m log n). (Man beachte, dass m n 1 ist, weil G zusammenhängend ist.) Korrektheit: Bei manchen Algorithmen ist die Korrektheit aus den Vorüberlegungen beim Entwurf schon offensichtlich. Beim Algorithmus von Kruskal ist dies nicht so. Der Korrektheitsbeweis ist nicht einfach. Bitte nicht täuschen lassen: Manchmal sieht man Korrektheitsbeweise, die kompakter und einfacher aussehen als die Beweise in der Vorlesung. Das Risiko, dass sie falsch sind, liegt aber ganz beim Prüfling. Für den Algorithmus von Kruskal etwa kursieren zum Beispiel unter Ilmenauer Studierenden einige falsche oder unvollständige Beweise. Die sichere Methode: So argumentieren wie in der Vorlesung. Das heißt: Schnitteigenschaft formulieren und dann in einem Induktionsbeweis anwenden. Man kann die Prüfung bestehen, wenn man nur die Problembeschreibungen, Algorithmen und Datenstrukturen (Namen, Vorgehensweisen) mit ihren Laufzeiten kennt diese Grundanforderung sollte man bei der Vorbereitung aber unbedingt für alle Kapitel der Vorlesung sicherstellen. Bei der Algorithmenbeschreibung ist eine allgemeine Beschreibung der Vorgehensweise besser als die Fähigkeit, den Algorithmus an einem Beispiel auszuführen. Aber auch dies sollte man üben. Ganz wichtig ist, dass man die asymptotischen Laufzeiten der Algorithmen kennt. (Tipp: Wenn es nicht anders geht, herausschreiben und auswendiglernen.) Also: Zunächst flächendeckend lernen, Beweisdetails auslassen, erst wenn man den ganzen Stoff gut überblickt, kann man noch so weit wie möglich in die Tiefe zu kommen versuchen. Für eine gute oder sehr gute Note ist es notwendig, auch Implementierungsdetails und Beweise für Korrektheit bzw. Laufzeitschranken vortragen zu können. Für ein sehr gut wird das Beherrschen des (gesamten) Stoffes der Vorlesung verlangt. Soweit Übungen sich direkt auf den Vorlesungsstoff beziehen ( führen Sie Algorithmus XYZ auf der folgen- 2

3 den Eingabe aus, oder wenn Algorithmen angewendet oder verallgemeinert werden), sind sie ebenfalls gut zur Prüfungsvorbereitung geeignet. Wenn Sie Erklärungen in den Folien nicht verstehen: Sie können auch in einem der in Kapitel 0 Vorbemerkungen angegebenen Bücher nachsehen. Es folgen Beispielfragen. 1 Divide-and-Conquer-Algorithmen 1.1 Beschreiben Sie die prinzipiellen Schritte eines Algorithmus, der nach dem Divide-and-Conquer(D-a-C)-Paradigma gebaut ist. 1.2 Zählen Sie Berechnungsprobleme auf, die wir in der Vorlesung mit diesem Prinzip bearbeitet haben. 1.3 Wieviele Bitoperationen werden bei der Schulmethode für die Multiplikation n-ziffriger ganzer Zahlen benötigt? Wieviele beim Karatsuba-Algorithmus? 1.4 Wieso möchte man überhaupt Zahlen mit Tausenden von Bits multiplizieren? 1.5 Wie werden beim Karatsuba-Algorithmus die a Teilprobleme gebildet? ( Trick in der Vorlesung.) Was ist a? 1.6 Beschreiben Sie den Algorithmus von Karatsuba, für n-bit-zahlen. Was ist die Rolle der Zahl n 0? Wie wird sie gewählt? 1.7 Schreiben Sie die Rekurrenz für die Anzahl der Bitoperationen beim Algorithmus von Karatsuba auf. Was ist die Lösung? Wie erhält man diese Lösung durch direkte Rechnung, wie mit dem Master-Theorem? Wieso ist die Laufzeit besser als die Schulmethode? 1.8 Was ist die Anzahl der benötigten Operationen, wenn man zwei n n-matrizen mit der Standardmethode multipliziert? Welche Laufzeit erreicht der Algorithmus von Strassen? 1.9 Wie erhält man einen D-a-C-Ansatz für das Problem Multiplikation zweier n n-matrizen mit 8 Teilproblemen? Wieso ist dieser nicht ausreichend? 3

4 1.10 Wie, im Prinzip (nicht die Formeln auswendiglernen), erhält man einen D-a-C- Ansatz für das Problem Multiplikation zweier n n-matrizen mit 7 Teilproblemen? 1.11 Schreiben Sie die Rekurrenzungleichung für die Anzahl der Ringoperationen beim Algorithmus von Strassen auf. Was ist die Lösung? Wieso ist das besser als die naive Methode? 1.12 Mergesort ist als bekannt vorausgesetzt. Wieviele Vergleiche benötigt man für das Mischen oder Zusammenfügen von zwei Folgen der Länge n/2 und n/2? Welche Rekurrenzgleichung ergibt sich für die Anzahl der Vergleiche von Mergesort, angewendet auf n Schlüssel? Welche Möglichkeiten gibt es, die Mergesort-Rekurrenz zu lösen? (Direkt bzw. mit dem Master-Theorem.) Schreiben Sie die Induktionsbehauptung für die direkte Lösung auf. Skizzieren Sie den Induktionsbeweis Welche Art von Rekurrenz können wir mit dem Master-Theorem bearbeiten? (Hinschreiben!) Aus welcher Art von D-a-C-Algorithmus ergibt sich diese Rekurrenz? (Rolle der Parameter a, b, f(n).) Formulieren Sie das Master-Theorem! 1.15 Zum Beweis des Master-Theorems: Wie wird der Rekursionsbaum gebildet? Welcher Zusammenhang besteht zwischen den Einträgen im Rekursionsbaum und der Lösung der Rekurrenzungleichung? (Lemma ) 1.16 Welche drei Fälle gibt es? Wie lautet die Lösung der Rekurrenzungleichung in jedem der drei Fälle? Wie lässt sich die Lösung erklären/berechnen? (Verhalten einer bestimmten geometrischen Reihe.) Geben Sie für zwei der Fälle Beispielalgorithmen an Zum Master-Theorem: Eine konkrete Rekurrenzungleichung wird vorgelegt. Stellen Sie fest, welcher Fall zutrifft, und geben Sie die Lösung an Der QuickSort-Algorithmus wird als bekannt vorausgesetzt Erklären Sie den Ansatz der neuen Analyse! (Folien ) Leiten Sie die Formel für E(C) (erwartete Anzahl von Vergleichen) her. Führen Sie die für die Analyse nötige Rechnung durch. 1 Siehe auch Folien 9 19 in 4

5 1.20 Was ist das Ergebnis der Analyse (auf zufällig angeordnetem Input)? Was ist randomisiertes Quicksort, was folgt hierfür aus der Analyse? 1.21 Was ist das Selektionsproblem? Was ist das Problem, den Median zu berechnen? Welche (beiden) Algorithmen für dieses Problem haben wir betrachtet? 1.22 Beschreiben Sie den Algorithmus Quickselect. Geben Sie eine obere Schranke für seine Laufzeit (sowie die Anzahl der Vergleiche) an. Ist dies eine deterministische Schranke? 1.23 Wie setzt die Analyse von Quickselect an? (Definition der Zufallsvariablen C k und X ij, Bestimmung der Erwartungswerte.) Führen Sie die Analyse durch Beschreiben Sie den deterministischen Linearzeitalgorithmus für das Selektionsproblem. (BFPRT-Algorithmus, Median der Mediane.) 1.25 Stellen Sie die Rekurrenzungleichung für die Analyse des BFPRT-Algorithmus auf (mit Begründung für jeden der Terme). Lösen Sie die Rekurrenz Was ist das Polynomproduktproblem? Welche Laufzeit hat der naive Algorithmus? Welche Laufzeit lässt sich mit Hilfe der FFT erreichen? 1.27 Geben Sie die Grundstruktur des Polynomproduktalgorithmus mit FFT an. Was ist der zentrale Trick? 1.28 Welcher Zusammenhang besteht zwischen Koeffizientenvektor und Wertevektor eines Polynoms? 1.29 Was ist eine primitive n-te Einheitswurzel? Welche Argumente ( Stützstellen ) benutzt man bei der FFT? Was ist die diskrete Fourier-Transformierte eines Koeffizientenvektors (a 0,..., a n 1 )? 1.30 Wie wird das D-a-C-Paradigma bei der FFT eingesetzt? (Aus Koeffizienten eines Polynoms gewinne Koeffizienten zweier halb so großer Polynome. Wie?) 1.31 Wie sieht der endgültige FFT-Algorithmus aus? 1.32 Wie löst man das umgekehrte Problem, aus dem Wertevektor den Koeffizientenvektor zu berechnen? (Trick: Die Matrix M(ω) hat eine Inverse, die man ganz leicht hinschreiben kann. Wie sieht sie aus?) 1.33 Wie sieht der endgültige Algorithmus zur Polynommultiplikation aus, der die FFT und ihre Umkehrung benutzt? 5

6 2 Graphdurchläufe 2.1 Stellen Sie sicher, dass Sie die grundlegenden Konzepte für Graphen und Digraphen und ihre Darstellung in Programmen kennen. 2.2 Welche Probleme für gerichtete Graphen können mit Breitensuche (BFS) gelöst werden? Welche Datenstruktur spielt bei BFS die zentrale Rolle? Beschreiben Sie den BFS-Algorithmus. Was ist die Rechenzeit von BFS? 2.3 Welches Problem kann man mit BFS von einer Knotenmenge aus lösen? 2.4 Erläutern Sie BFS in ungerichteten Graphen. Wie läuft es ab, welche Probleme kann man damit lösen? 2.5 Welche Probleme bei gerichteten Graphen können mit DFS gelöst werden? (Alle Knoten und Kanten sehen, Erreichbarkeit zwischen Knoten, Kreisfreiheitstest, topologische Sortierung bei kreisfreien Graphen, Erweiterung: starke Zusammenhangskomponenten.) 2.6 Welche Probleme bei ungerichteten Graphen können mit DFS gelöst werden? (Zusammenhangskomponenten, Kreisfreiheitstest, Spannbaum für jede Komponente, Ausrichtung von Kanten von Wäldern auf eine Wurzel pro Baum; und weitere, nicht in der Vorlesung behandelt.) 2.7 Führen Sie den DFS-Algorithmus an einem gegebenen Beispieldigraphen aus. (Vollversion, mit dfs-nummern und fin-nummern, mit Kantenklassifikation.) 2.8 Wie sind T -, B-, F - und C-Kanten definiert? Wie erkennt der Algorithmus, ob eine Kante (v, w) eine T -, B-, F - oder eine C-Kante ist? (Dies hat etwas mit dem Status von w zu tun und mit den dfs-nummern von v und w.) Was ist der rote Weg? 2.9 Was ist die Laufzeit von DFS? 2.10 Was ist die transitive Hülle eines Digraphen G? Wie berechnet man sie? 2.11 Formulieren Sie den Satz vom weißen Weg. (Tief ins Detail: Wie beweist man ihn?) 6

7 2.12 Wenn man DFS auf G ausführt, entstehen Bäume (die Tiefensuchbäume ). Wann wird Knoten v eine Wurzel eines solchen Baums? Welche Bedeutung haben die dfs-nummern und die fin-nummern im Bezug auf diesen Wald? Wie kann man aus den Nummern von v und w ablesen, ob v Vorfahr/Nachfahr von w ist? 2.13 Wie kann man aus dem Ergebnis von DFS(G) ablesen, ob der Digraph G azyklisch ist? (Es gibt keine B-Kante.) Beweisen Sie, dass dieses Kriterium korrekt ist. (Unterscheiden Sie sorgfältig die beiden Beweisrichtungen.) 2.14 Was ist eine topologische Sortierung der Knoten eines azyklischen Digraphen? Wie kann man aus dem Ergebnis von DFS(G) eine solche topologische Sortierung erhalten? Was hat eine topologische Sortierung mit dem Ermitteln eines kritischen Pfads in einem Schaltnetz oder einem Netzwerk von Tasks mit Abhängigkeiten zu tun? 2.15 Was sind die starken Zusammenhangskomponenten eines Digraphen G? (Klassen einer bestimmten Äquivalenzrelation.) Geben Sie den Algorithmus (von Kosaraju) für die Ermittlung der starken Zusammenhangskomponenten eines Digraphen G an. Laufzeit? 2.16 Beweisen Sie die Korrektheit des Algorithmus von Kosaraju zur Berechnung der starken Zusammenhangskomponenten Welche Kantentypen gibt es bei UDFS (Tiefensuche in ungerichteten Graphen)? Wie kann man mit UDFS testen, ob der ungerichtete Graph G einen Kreis enthält? 2.18 Was sind die Knotenmengen der Bäume, die bei UDFS(G) für einen ungerichteten Graphen G entstehen? 3 Greedy-Algorithmen: Prinzipien 3.1 Was sind die charakteristischen Eigenschaften eines Algorithmus, der nach dem Greedy-Prinzip gebaut ist? (Folien 1 und 26.) 3.2 Welche Berechnungsprobleme haben wir mit dem Greedy-Ansatz gelöst (Kapitel 3 und 4)? 7

8 3.3 Beschreiben Sie das Hörsaalbelegungsproblem und den Greedy-Algorithmus für dieses Problem. Was ist die Rechenzeit? 3.4 Beweisen Sie, dass der Hörsaalbelegungs-Algorithmus eine optimale Lösung ausgibt. 3.5 Beschreiben Sie das fraktionale Rucksackproblem und den Greedy-Algorithmus für dieses Problem. Was ist die Rechenzeit? 3.6 Beweisen Sie, dass der Greedy-Algorithmus für das fraktionale Rucksackproblem eine optimale Lösung ausgibt. (Hier gibt es eine anschauliche Begründung und einen rechnerischen Beweis.) 3.7 Was ist ein binärer Präfixcode (oder präfixfreier Code)? Was ist ein Codierungsbaum für einen solchen Code? Sei ein endliches Alphabet Σ mit Wahrscheinlichkeiten/Häufigkeiten p(σ), σ Σ, gegeben; was sind die Kosten B(T, p) eines Codierungsbaums T für Σ? 3.8 Wann heißt ein Codierungsbaum redundanzminimal? Welches Problem wird durch den Algorithmus von Huffman gelöst? 3.9 Führen Sie den Huffman-Algorithmus auf einer gegebenen Beispiel-Eingabe durch. Konstruieren Sie den Kodierungsbaum Beschreiben Sie, wie der Huffman-Algorithmus allgemein funktioniert. Welche Datenstruktur wird benötigt, um den Algorithmus effizient zu implementieren? Was ist die resultierende Laufzeit? 3.11 Beweisen Sie, dass der Huffman-Algorithmus (in der rekursiven Formulierung) das korrekte Ergebnis liefert. Insbesondere: Formulieren und beweisen Sie Lemma und Wie ist die Entropie definiert? Wie lautet die Ungleichung von Kraft/McMillan? Wie hängen die Kosten eines redundanzminimalen Baumes mit der Entropie der Verteilung p(σ), σ Σ bzw. (p 1,..., p n ) zusammen? (Satz ) Können Sie den Beweis hierfür skizzieren? 3.13 Welche Operationen müssen von Priority-Queues ausgeführt werden? In unserer Implementierung mit binären Heaps: Was sind die Rechenzeiten für diese Operationen? 8

9 3.14 Was ist ein binärer Heap, wie wird er dargestellt? (Stoff aus AuD, muss man hier aber wissen.) 3.15 In binären Heaps: Wie läuft ein insert ab? Wie läuft ein decreasekey ab, wie ein extractmin? Weshalb ist die Laufzeit logarithmisch? Wie kann man beweisen, dass beim bubbledown und beim bubbleup die Heapeigenschaft wieder hergestellt wird? 3.16 Skizzieren Sie das Problem (und eine mögliche Lösung), einem Heap bei der Operation decreasekey mitzuteilen, auf welchen Eintrag sich die Operation bezieht. Beschreiben Sie den Datentyp Addressable Priority Queue. 4 Greedy-Algorithmen für Graphprobleme 4.1 Welches Problem wird vom Algorithmus von Dijkstra gelöst? (Das Single- Source-Shortest-Paths (SSSP) -Problem. Was bedeutet das?) Was sind die Voraussetzungen, die man an den Graphen und die Kantenlängen stellen muss? 4.2 Führen Sie den Algorithmus von Dijkstra auf einer gegebenen Beispiel-Eingabe durch. Konstruieren Sie den Baum der kürzesten Wege. 4.3 Beschreiben Sie das Vorgehen im Algorithmus von Dijkstra allgemein. Welche Information wird für jeden Knoten notiert? (dist[v] und p[v].) 4.4 Beweisen Sie die Korrektheit des Algorithmus von Dijkstra. Formulieren Sie dazu eine geeignete Schleifeninvariante. (Das Bild auf Folie 20 von Kapitel 4 ist zentral.) 4.5 Was ist die zentrale Datenstruktur bei einer effizienten Implementierung des Algorithmus von Dijkstra? (Priority Queue.) Welche Objekte werden in der Priority Queue aufbewahrt? Was sind dabei die Schlüssel/Prioritäten? Welche Operationen auf diesen Objekten werden ausgeführt, und zu welchem Zweck im Rahmen des Algorithmus? 4.6 Wieviele decreasekey-operationen, wieviele extractmin-operationen gibt es maximal? Was folgt für die Laufzeit des Algorithmus von Dijkstra? Was ändert sich an der Laufzeit, wenn man die (schickeren) Fibonacci-Heaps benutzt? 9

10 4.7 Was sind die zentralen Eigenschaften von (freien) Bäumen auf n Knoten? (Gemeint ist das Fundamental-Lemma.) 4.8 Was ist ein Spannbaum T in einem zusammenhängenden Graphen G = (V, E)? Wenn die Kanten von G Gewichte/Kosten c(e) haben, was sind die Kosten von T? Was ist das MST-Problem (das Problem, einen minimalen Spannbaum zu finden)? 4.9 Welche beiden Algorithmen für das MST-Problem haben wir betrachtet? 4.10 Beschreiben Sie das Vorgehen des Algorithmus von Jarník/Prim allgemein. Führen Sie den Algorithmus an einem vorgegebenen Beispiel durch Was ist zur Implementierung zu bemerken, wenn man sie mit der Implementierung des Algorithmus von Dijkstra vergleicht? Können Sie den (winzigen) Unterschied benennen? Welche Laufzeit ergibt sich, analog zum Algorithmus von Dijkstra? 4.12 Was ist ein Schnitt in einem zusammenhängenden Graphen? 4.13 Wann heißt eine Kantenmenge R T erweiterbar? 4.14 Formulieren Sie die Schnitteigenschaft. Beweisen Sie die Schnitteigenschaft Beweisen Sie durch Induktion über die Runden des Algorithmus, und mit Hilfe der Schnitteigenschaft, dass der Algorithmus von Jarník/Prim einen minimalen Spannbaum erzeugt Beschreiben Sie das Vorgehen des Algorithmus von Kruskal allgemein. Führen Sie den Algorithmus an einem vorgegebenen Beispiel durch Beweisen Sie durch Induktion über die Runden des Algorithmus, und mit Hilfe der Schnitteigenschaft, dass der Algorithmus von Kruskal einen minimalen Spannbaum erzeugt Was ist die Aufgabe einer Union-Find-Datenstruktur? Was wird verwaltet (eine Partition einer endlichen Menge in Klassen, mit einem Repräsentanten für jede Klasse)? Welche Operationen gibt es? (Initialisierung: jedes Element ist in einer Klasse für sich; find: zu einem Element finde den Repräsentanten seiner Klasse; union: gegeben zwei Repräsentanten, vereinige die Klassen, bestimme neuen Repräsentanten.) 10

11 4.19 Wie wird eine Union-Find-Datenstruktur im Algorithmus von Kruskal benutzt? Welche auf den ersten Blick schwierige Aufgabe wird dadurch leicht? (Test, ob eine Kante e mit R einen Kreis bildet.) 4.20 Beschreiben Sie die Implementierung der Union-Find Datenstruktur mit einem Array für die Repräsentanten und Listen für die Klassen. Wie wird im Algorithmus die Information im size-array benutzt? 4.21 Geben Sie die Rechenzeiten für eine find-operation in dieser Implementierung an. Geben Sie die Rechenzeit für alle union-operationen zusammen in dieser Implementierung an. Beweisen Sie die letztere Schranke ( amortisierte Analyse ). Welche Rechenzeit für den Kruskal-Algorithmus ergibt sich? 4.22 Wie sind die Klassen in der Baum-Implementierung der Union-Find-Datenstruktur dargestellt? (Können Sie z. B. aus fünf gegebenen Klassen mit Repräsentanten eine solche Baum-Darstellung machen?) 4.23 Wie ist find implementiert? Was sind die Kosten? Wie ist union zu implementieren? 4.24 Was ist in der einfachen Implementierung der Rang eines Knotens? Wie wird der Rang bei der union-operation benutzt und aktualisiert? 4.25 Geben Sie die drei Grundeigenschaften der Größe Rang an! (Fakt 1, Fakt 2, Fakt 3.) Wieso folgt daraus, dass die Kosten für eine find-operation logarithmisch sind? 4.26 Welche Laufzeit für den Kruskal-Algorithmus ergibt sich bei der einfachen Baum-Implementierung der Union-Find-Datenstruktur? 4.27 Was bedeutet Pfadkompression? 4.28 Was bedeutet log n? 4.29 Welche Aussagen zur Rechenzeit für m find-operationen auf n Objekten kann man machen, was ergibt sich daraus für den Teil des Kruskal-Algorithmus nach dem Sortieren? 4.30 Geben Sie die Hauptgedanken der Analyse von Union-Find mit Pfadkompression an. 11

12 5 Dynamische Programmierung 5.1 Benennen Sie die grundlegenden Schritte, die beim Algorithmenentwurf nach dem Paradigma Dynamische Programmierung angewendet werden müssen. (Teilprobleme, Basisfälle, Optimalitätsgleichungen aufstellen unter Verwendung des Prinzips von den optimalen Substrukturen.) 5.2 Was ist das All-Pairs-Shortest-Paths (APSP) -Problem? Welcher Algorithmus löst dieses Problem? 5.3 Man setzt beim APSP-Problem voraus, dass der Graph keine Kreise mit negativer Gesamtlänge hat. Weshalb? 5.4 Wieso kann man o.b.d.a. annehmen, dass auf kürzesten Wegen kein Knoten doppelt vorkommt? Weshalb ist das APSP-Problem wohldefiniert? 5.5 Beschreiben Sie die Grundidee des Algorithmus von Floyd und Warshall. (Dazu gehört: Teilprobleme S(i, j, k) definieren und Bellman-Gleichungen aufschreiben und begründen können.) 5.6 Welches Programm erhält man aus dieser Grundidee? Was ist die Rechenzeit, was der Speicherplatz? 5.7 Welche Verfeinerung erlaubt es, den Platz zu reduzieren? 5.8 Welche Datenstruktur benötigt man, um in der Lage zu sein, zu jedem Knotenpaar (i, j) einen kürzesten Weg von i nach j auszugeben? 5.9 Der Algorithmus von Dijkstra löst das SSSP-Problem, aber nur bei nichtnegativen Kantenkosten. Was tut man, wenn auch negative Kantenkosten vorkommen? 5.10 Beschreiben Sie den Algorithmus von Bellman-Ford. (Er benutzt die relax- Operation.) Was ist seine Laufzeit? 5.11 Beweisen Sie, dass der Algorithmus von Bellman-Ford die korrekte Ausgabe liefert, wenn es keine von s erreichbaren negativen Kreise gibt Beweisen Sie, dass der Algorithmus von Bellman-Ford im abschließ0enden Test korrekt entscheidet, ob es von s aus erreichbare negative Kreise gibt. 12

13 5.13 Was ist das 0-1-Rucksackproblem? Wie unterscheidet es sich vom fraktionalen Rucksackproblem? Vom Rucksackproblem mit Wiederholungen? 5.14 Formulieren Sie das (ganzzahlige) Rucksackproblem mit Wiederholungen. Formulieren Sie die hier zu betrachtenden Teilprobleme und die Bellman-Gleichungen. Wie sieht der resultierende DP-Algorithmus aus? Was ist die Laufzeit? 5.15 Formulieren Sie die Teilprobleme im DP-Algorithmus für das 0-1-Rucksackproblem. Stellen Sie die Bellman-Gleichungen auf. Welche Rolle spielt hierbei das Prinzip der optimalen Substruktur? Welche Laufzeit hat der resultierende Algorithmus? Wie kann man beim Speicherplatz einen Faktor n einsparen? 5.16 Wieso heißt dieser Algorithmus pseudopolynomiell? 5.17 Wie ist die Editierdistanz d(x, y) zwischen zwei Wörtern x = x 1... x n und y = y 1... y m definiert? 5.18 Gegeben x und y, was sind die im DP-Ansatz betrachteten Teilprobleme? Erläutern Sie anhand dieses Beispiels, was die Grundkomponenten eines Algorithmus sind, der nach dem Paradigma Dynamische Programmierung gebaut ist Stellen Sie die Bellmanschen Optimalitätsgleichungen für diese Teilprobleme auf Geben Sie den der resultierenden Algorithmus für die Editierdistanz an. Was ist seine Rechenzeit? 5.21 Wie kann man eine optimale Transformationsfolge ermitteln, die in d(x, y) Schritten von x nach y führt? 5.22 Welche Aufgabe stellt sich beim Problem Traveling Salesperson? 5.23 Welche Teilprobleme benutzt man bei der Lösung? 5.24 Formulieren Sie die Bellman-Gleichungen für dieses Problem Was ist die Laufzeit des Algorithmus für das Problem Traveling Salesperson? 5.26 Welche Aufgabe stellt sich beim Problem Optimale (Klammerung für) Matrixmultiplikation? 13

14 5.27 Welche Teilprobleme benutzt man bei der Lösung? 5.28 Formulieren Sie die Bellman-Gleichungen für dieses Problem Was ist die Laufzeit des Algorithmus für das Problem Optimale Matrixmultiplikation, wenn n Matrizen multipliziert werden sollen? 6 Weiterführende Themen 6.1 Beschreiben Sie den Greedy-Algorithmus für das 0-1-Rucksackproblem. Geben Sie ein Beispiel an, bei dem die Güte der Lösung beliebig schlecht ist. 6.2 Beschreiben Sie den modifizierten Greedy-Ansatz Greedy +. Beweisen Sie, dass die Güte der Lösung, die der Algorithmus liefert, um nicht mehr als den Faktor 2 über dem Optimum liegen kann. 6.3 Beschreiben Sie den Greedy-Algorithmus für das Set-Cover-Problem und seine Analyse (Folien zu Kap. 3, Abschnitt 3.4). Viel Spaß bei der Vorbereitung und viel Erfolg bei der Prüfung! 14

Beispiel-Prüfungsfragen für Effiziente Algorithmen M. Dietzfelbinger, 15. Juli 2011, leicht korrigiert 27. Juli 2011

Beispiel-Prüfungsfragen für Effiziente Algorithmen M. Dietzfelbinger, 15. Juli 2011, leicht korrigiert 27. Juli 2011 Beispiel-Prüfungsfragen für Effiziente Algorithmen M. Dietzfelbinger, 15. Juli 2011, leicht korrigiert 27. Juli 2011 Vorbemerkung: Die Liste der Beispielfragen soll bei der Vorbereitung helfen. Sie definiert

Mehr

Vorlesung Datenstrukturen

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

Mehr

4.2 Minimale Spannbäume: Der Algorithmus von Jarník/Prim Definition 4.2.1

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

Mehr

Informatik II: Algorithmen & Datenstrukturen. Blättern Sie nicht um bevor Sie dazu aufgefordert werden!

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

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

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

Aufgaben zur Klausurvorbereitung

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

Mehr

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

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

1.3 Erinnerung: Mergesort

1.3 Erinnerung: Mergesort Mergesort 1.3 Erinnerung: Mergesort Um n Zahlen/Objekte a 1,..., a n zu sortieren, geht der Mergesort-Algorithmus so vor: Falls n n 0 : Sortiere mit einem naiven Algorithmus (z. B. Insertion Sort). Sonst:

Mehr

Datenstrukturen und Algorithmen

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

Mehr

NAME, VORNAME: Studiennummer: Matrikel:

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.

Mehr

8.4 Digraphen mit negativen Kantengewichten Grundsätzliches Betrachte Startknoten s und einen Kreis C mit Gesamtlänge < 0.

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

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

SS11 Effiziente Algorithmen 5. Kapitel: Dynamische Programmierung

SS11 Effiziente Algorithmen 5. Kapitel: Dynamische Programmierung SS11 Effiziente Algorithmen 5. Kapitel: Dynamische Programmierung Martin Dietzfelbinger Juni/Juli 2011 FG KTuEA, TU Ilmenau Effiziente Algorithmen SS11 Kapitel 5 Kapitel 5: Dynamische Programmierung Typische

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

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

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

Vorlesung 2 KÜRZESTE WEGE

Vorlesung 2 KÜRZESTE WEGE Vorlesung 2 KÜRZESTE WEGE 34 Kürzeste Wege im Graphen Motivation! Heute:! Kürzeste Wege von einem Knoten (SSSP)! Kürzeste Wege zwischen allen Knotenpaaren (APSP)! Viele Anwendungen:! Navigationssysteme!

Mehr

Effiziente Algorithmen

Effiziente Algorithmen Effiziente Algorithmen Vorüberlegungen und Divide-and-Conquer-Algorithmen Vorlesender: Martin Aumüller (nach Folien von Prof. Martin Dietzfelbinger) April 2012 FG KTuEA, TU Ilmenau Effiziente Algorithmen

Mehr

Vorlesung 3: Graphenalgorithmen. Markus Püschel David Steurer Peter Widmayer. PDF download goo.gl/ym3spq

Vorlesung 3: Graphenalgorithmen. Markus Püschel David Steurer Peter Widmayer. PDF download goo.gl/ym3spq Vorlesung 3: Graphenalgorithmen Markus Püschel David Steurer Peter Widmayer PDF download goo.gl/ym3spq Algorithmen und Datenstrukturen, Herbstsemester 2017, ETH Zürich Gerichtete Graphen und Abhängigkeiten

Mehr

Lernmodul 7 Algorithmus von Dijkstra

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

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Graphdurchläufe Maike Buchin 22. und 27.6.2017 Graphexploration Motivation: Für viele Zwecke will man den gesamten Graphen durchlaufen, zb. um festzustellen ob er (stark) zusammenhängt.

Mehr

Keller, Schlangen und Listen. Elementare Datenstrukturen Keller, Schlangen und Listen 1 / 14

Keller, Schlangen und Listen. Elementare Datenstrukturen Keller, Schlangen und Listen 1 / 14 Keller, Schlangen und Listen Elementare Datenstrukturen Keller, Schlangen und Listen 1 / 14 Listen Listen unterstützen die Operationen Lookup, Insert, Remove. + Listen passen sich der Größe der zu speichernden

Mehr

2. November Gradfolgen Zusammenhang Kürzeste Wege. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 37

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

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

SS16 Algorithmen und Datenstrukturen 8. Kapitel Divide-and-Conquer-Algorithmen

SS16 Algorithmen und Datenstrukturen 8. Kapitel Divide-and-Conquer-Algorithmen SS16 Algorithmen und Datenstrukturen 8. Kapitel Divide-and-Conquer-Algorithmen Martin Dietzfelbinger Juni 2016 FG KTuEA, TU Ilmenau Algorithmen und Datenstrukturen SS16 Kapitel 8 Ziele (des zweiten Teils)

Mehr

1 Kürzeste Pfade in Graphen

1 Kürzeste Pfade in Graphen Praktikum Algorithmen-Entwurf (Teil 3) 03.11.2011 1 1 Kürzeste Pfade in Graphen Es sei ein gerichteter Graph G = (V, E) mit V = n Knoten, E = m Kanten und Kantengewichten c : E R gegeben. Ein Pfad in G

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

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

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

Mehr

Klausur Algorithmen und Datenstrukturen SS 2016

Klausur Algorithmen und Datenstrukturen SS 2016 Rev. 5:1, 1.07.016 TU Ilmenau, Institut für Theoretische Informatik Univ.-Prof. Dr. Martin Dietzfelbinger Klausur Algorithmen und Datenstrukturen SS 016 18. Juli 016 Arbeitszeit: 150 Minuten Hinweise (1)

Mehr

Konvexe Hülle. Abbildung: [Wikipedia]: Nicht-konvexe Menge (links), konvexe Menge (rechts) KIT Institut für Theoretische Informatik 510

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

Mehr

5.4 Das Rucksackproblem

5.4 Das Rucksackproblem Problemstellung: 5.4 Das Rucksackproblem Eingabe: Ganzzahlige Volumina a 1,..., a n > 0, Nutzenwerte c 1,..., c n > 0, ganzzahlige Volumenschranke b. Aufgabe: Packe die Objekte in einen Rucksack von Volumen

Mehr

Ein Graph ist ein Paar (V,E), wobei V eine Menge von Knoten und E eine Menge von Kanten (v,w) mit v,w in V ist.

Ein Graph ist ein Paar (V,E), wobei V eine Menge von Knoten und E eine Menge von Kanten (v,w) mit v,w in V ist. Graphen Definition: Ein Graph ist ein Paar (V,E), wobei V eine Menge von Knoten und E eine Menge von Kanten (v,w) mit v,w in V ist. Begriffe: Gerichteter Graph: Alle Kanten haben eine Richtung vom Anfangsknoten

Mehr

1.Aufgabe: Minimal aufspannender Baum

1.Aufgabe: Minimal aufspannender Baum 1.Aufgabe: Minimal aufspannender Baum 11+4+8 Punkte v 1 v 2 1 3 4 9 v 3 v 4 v 5 v 7 7 4 3 5 8 1 4 v 7 v 8 v 9 3 2 7 v 10 Abbildung 1: Der Graph G mit Kantengewichten (a) Bestimme mit Hilfe des Algorithmus

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

2. Klausur zur Vorlesung Algorithmentechnik Wintersemester 2006/ April 2007

2. Klausur zur Vorlesung Algorithmentechnik Wintersemester 2006/ April 2007 2. Klausur zur Vorlesung Algorithmentechnik Wintersemester 2006/2007 12. April 2007 Hier Aufkleber mit Name und Matrikelnr. anbringen Vorname: Nachname: Matrikelnummer: Beachten Sie: Bringen Sie den Aufkleber

Mehr

Algo&Komp. - Wichtige Begriffe Mattia Bergomi Woche 6 7

Algo&Komp. - Wichtige Begriffe Mattia Bergomi Woche 6 7 1 Kürzeste Pfade Woche 6 7 Hier arbeiten wir mit gewichteten Graphen, d.h. Graphen, deren Kanten mit einer Zahl gewichtet werden. Wir bezeichnen die Gewichtsfunktion mit l : E R. Wir wollen einen kürzesten

Mehr

Datenstrukturen und Algorithmen D-INFK

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

Mehr

Name:... Vorname:... Matr.-Nr.:... Studiengang:...

Name:... Vorname:... Matr.-Nr.:... Studiengang:... Technische Universität Braunschweig Sommersemester 2013 IBR - Abteilung Algorithmik Prof. Dr. Sándor P. Fekete Dr. Christiane Schmidt Stephan Friedrichs Klausur Netzwerkalgorithmen 16.07.2013 Name:.....................................

Mehr

16. All Pairs Shortest Path (ASPS)

16. All Pairs Shortest Path (ASPS) . All Pairs Shortest Path (ASPS) All Pairs Shortest Path (APSP): Eingabe: Gewichteter Graph G=(V,E) Ausgabe: Für jedes Paar von Knoten u,v V die Distanz von u nach v sowie einen kürzesten Weg a b c d e

Mehr

Grundlagen der Algorithmen und Datenstrukturen Kapitel 12

Grundlagen 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

Mehr

Algebraische und arithmetische Algorithmen

Algebraische und arithmetische Algorithmen Kapitel 1 Algebraische und arithmetische Algorithmen 1.1 Das algebraische Berechnungsmodell Struktur: Körper (oder Ring) mit den Operationen +,,, (/) Eingabe: endliche Folge von Zahlen Ausgabe: endliche

Mehr

Quicksort ist ein Divide-and-Conquer-Verfahren.

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

Mehr

Vorlesung 2 KÜRZESTE WEGE

Vorlesung 2 KÜRZESTE WEGE Vorlesung 2 KÜRZESTE WEGE 45 Kürzeste Wege im Graphen Motivation! Heute:! Kürzeste Wege von einem Knoten (SSSP)! Distanzen zwischen allen Knotenpaaren (APD)! Viele Anwendungen:! Navis! Netzwerkrouting!...

Mehr

Algebraische und arithmetische Algorithmen

Algebraische und arithmetische Algorithmen Kapitel 1 Algebraische und arithmetische Algorithmen 1.1 Das algebraische Berechnungsmodell Struktur: Körper (oder Ring) mit den Operationen +,,, (/) Eingabe: endliche Folge von Zahlen Ausgabe: endliche

Mehr

Algorithmen & Datenstrukturen 2 Praktikum 3

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

Mehr

Methoden für den Entwurf von Algorithmen

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

Mehr

Kürzeste Wege in Graphen

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

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen Wintersemester 2016/17 19. Vorlesung Kürzeste Wege & Dijkstras Algorithmus Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I 2 Ergebnisse des 1. Kurztests 14 12 10

Mehr

5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c)

5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c) 5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c) mit V = {1,...,n} und E {(v, w) 1 apple v, w apple n, v 6= w}. c : E!

Mehr

Vorlesung 4 BETWEENNESS CENTRALITY

Vorlesung 4 BETWEENNESS CENTRALITY Vorlesung 4 BETWEENNESS CENTRALITY 101 Aufgabe! Szenario: Sie arbeiten bei einem sozialen Online-Netzwerk. Aus der Netzwerk-Struktur Ihrer Benutzer sollen Sie wichtige Eigenschaften extrahieren. [http://www.fahrschule-vatterodt.de/

Mehr

Algorithmen und Datenstrukturen Tafelübung 14. Jens Wetzl 8. Februar 2012

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

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

Klausur Algorithmentheorie

Klausur 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

Mehr

Algorithmen und Datenstrukturen 2-1. Seminar -

Algorithmen und Datenstrukturen 2-1. Seminar - Algorithmen und Datenstrukturen 2-1. Seminar - Dominic Rose Bioinformatics Group, University of Leipzig Sommersemster 2010 Outline 1. Übungsserie: 3 Aufgaben, insgesamt 30 28 Punkte A1 Spannbäume (10 8

Mehr

Tutoraufgabe 1 (Starke Zusammenhangskomponenten):

Tutoraufgabe 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

Mehr

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

Algorithmen und Datenstrukturen in der Bioinformatik Viertes Übungsblatt WS 05/06 Musterlösung Konstantin Clemens Johanna Ploog Freie Universität Berlin Institut für Mathematik II Arbeitsgruppe für Mathematik in den Lebenswissenschaften Algorithmen und Datenstrukturen in der Bioinformatik Viertes

Mehr

Kapitel 2. Weitere Beispiele Effizienter Algorithmen

Kapitel 2. Weitere Beispiele Effizienter Algorithmen Kapitel 2 Weitere Beispiele Effizienter Algorithmen Sequentielle Suche Gegeben: Array a[1..n] Suche in a nach Element x Ohne weitere Zusatzinformationen: Sequentielle Suche a[1] a[2] a[3] Laufzeit: n Schritte

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

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

Algorithmen I. Prof. Jörn Müller-Quade Institut für Theoretische Informatik Web: https://crypto.iti.kit.edu/index.php?

Algorithmen I. Prof. Jörn Müller-Quade Institut für Theoretische Informatik Web: https://crypto.iti.kit.edu/index.php? Algorithmen I Prof. Jörn Müller-Quade 19.6.1 Institut für Theoretische Informatik Web: https://crypto.iti.kit.edu/index.php?id=99 (Folien von Peter Sanders) KIT Institut für Theoretische Informatik 1 Organisatorisches

Mehr

markiert, 0: unmarkiert.)

markiert, 0: unmarkiert.) 4.2 Fibonacci-Heaps Fibonacci-Heaps (F-Heaps) implementieren adressierbare Priority Queues (siehe Anfang von Kap. 4). Wie bei Binomialheaps besteht der Heap aus heapgeordneten Bäumen, jedoch mit gelockerten

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

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

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

2. Übungsblatt zu Algorithmen II im WS 2016/2017 Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. Dr. Peter Sanders Dr. Christian Schulz, Dr. Simon Gog Michael Axtmann. Übungsblatt zu Algorithmen II im WS 016/017 Aufgabe

Mehr

Aufgabe 4.2 Sei G = (V, E, l) ein ungerichteter, gewichteter und zusammenhängender Graph.

Aufgabe 4.2 Sei G = (V, E, l) ein ungerichteter, gewichteter und zusammenhängender Graph. Aufgabe 4.2 Sei G = (V, E, l) ein ungerichteter, gewichteter und zusammenhängender Graph. a) Es seien W 1 = (V, E 1 ), W 2 = (V, E 2 ) Untergraphen von G, die beide Wälder sind. Weiter gelte E 1 > E 2.

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen Wintersemester 2016/17 19. Vorlesung Kürzeste Wege & Dijkstras Algorithmus Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Wozu kürzeste Wege? 2 3-8 Modellierung

Mehr

Übersicht. Aktivitäten-Auswahl-Problem. Greedy Algorithmen. Aktivitäten-Auswahl-Problem. Aktivitäten-Auswahl-Problem. Datenstrukturen & Algorithmen

Übersicht. Aktivitäten-Auswahl-Problem. Greedy Algorithmen. Aktivitäten-Auswahl-Problem. Aktivitäten-Auswahl-Problem. Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Übersicht Greedy Algorithmen Einführung Aktivitäten-Auswahl-Problem Huffman Codierung Matthias Zwicker Universität Bern Frühling 2009 2 Greedy Algorithmen Entwurfsstrategie

Mehr

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2013 / 2014 Vorlesung 13, Donnerstag, 30.

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2013 / 2014 Vorlesung 13, Donnerstag, 30. Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 0 / 04 Vorlesung, Donnerstag, 0. Januar 0 (Kürzeste Wege, Dijkstras Algorithmus) Junior-Prof. Dr. Olaf Ronneberger

Mehr

Algorithmen - Eine Einführung

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

Mehr

1 Divide-and-Conquer-Algorithmen

1 Divide-and-Conquer-Algorithmen 1 Divide-and-Conquer-Algorithmen 1.1 Multiplikation ganzer Zahlen Wir multiplizieren zwei ganze Zahlen x und y, die in Binärdarstellung gegeben sind. Der Einfachheit halber nehmen wir an, die beiden Zahlen

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

Die Komplexitätsklassen P und NP

Die Komplexitätsklassen P und NP Die Komplexitätsklassen P und NP Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen November 2011 Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und

Mehr

Algorithmen & Komplexität

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

Mehr

Definition Ein Heap (priority queue) ist eine abstrakte Datenstruktur mit folgenden Kennzeichen:

Definition Ein Heap (priority queue) ist eine abstrakte Datenstruktur mit folgenden Kennzeichen: HeapSort Allgemeines Sortieralgorithmen gehören zu den am häufigsten angewendeten Algorithmen in der Datenverarbeitung. Man hatte daher bereits früh ein großes Interesse an der Entwicklung möglichst effizienter

Mehr

Klausur Algorithmen und Datenstrukturen

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

Mehr

1 Kürzeste Pfade. mit Wurzel s heißt Kürzester-Pfade-Baum für G. 1 Notfalls fügen wir Hilfskanten mit unendlichen Kantenkosten ein.

1 Kürzeste Pfade. mit Wurzel s heißt Kürzester-Pfade-Baum für G. 1 Notfalls fügen wir Hilfskanten mit unendlichen Kantenkosten ein. 1 Kürzeste Pfade Das Problem, einen kürzesten Pfad zwischen zwei Knoten eines Digraphen zu finden, hat vielfältige Anwendungen, zum Beispiel in Informations- und Verkehrsnetzwerken. In den folgenden Abschnitten

Mehr

5. Übungsblatt zu Algorithmen I im SoSe 2016

5. Übungsblatt zu Algorithmen I im SoSe 2016 Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. Dr. Dennis Hofheinz Lukas Barth, Lisa Kohl 5. Übungsblatt zu Algorithmen I im SoSe 2016 https://crypto.iti.kit.edu/index.php?id=algo-sose16

Mehr

Erinnerung VL

Erinnerung VL Erinnerung VL.6.16 Graphtraversierung (DFS, topologische Sortierung und mehr) Kürzeste Wege: Problemstellung, Algorithmen Analoger Algorithmus Dijkstras Algorithmus: Idee, Korrektheit Heute: mehr zu Dijkstra,

Mehr

Kürzeste Pfade. Organisatorisches. VL-17: Kürzeste Pfade. (Datenstrukturen und Algorithmen, SS 2017) Walter Unger

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

Mehr

Von Aachen nach Halle...

Von Aachen nach Halle... Von Aachen nach Halle... Koeln? Aachen Halle 14. 6. 15. 6. 16. 6. Saarbruecken? Effiziente Algorithmen fr Graphtraversierungen Ulrich Meyer p. 3 Von Aachen nach Halle... Koeln? Aachen Halle 14. 6. 15.

Mehr

Algorithmen und Datenstrukturen Kapitel 10

Algorithmen und Datenstrukturen Kapitel 10 Algorithmen und Datenstrukturen Kapitel 10 Flüsse Frank Heitmann heitmann@informatik.uni-hamburg.de 6. Januar 2016 Frank Heitmann heitmann@informatik.uni-hamburg.de 1/8 Flüsse Graphen Grundlagen Definition

Mehr

Grundlagen Algorithmen und Datenstrukturen TUM Sommersemester 2011 (2) Dozent: Hanjo Täubig

Grundlagen Algorithmen und Datenstrukturen TUM Sommersemester 2011 (2) Dozent: Hanjo Täubig Grundlagen Algorithmen und Datenstrukturen TUM Sommersemester 2011 (2) Dozent: Hanjo Täubig Janosch Maier 3. August 2011 Inhaltsverzeichnis 1 Sortieren 3 1.1 Externes Sortieren..........................

Mehr

Übung Algorithmen und Datenstrukturen

Ü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

Mehr

INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS

INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS Julian Arz, Timo Bingmann, Sebastian Schlag INSTITUT FÜR THEORETISCHE INFORMATIK, PROF. SANDERS 1 KIT Julian Universität Arz, des Timo LandesBingmann, Baden-Württemberg Sebastian und Schlag nationales

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

Algorithmen und Komplexität Lösungsvorschlag zu Übungsblatt 8

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

Mehr

Algorithmen und Datenstrukturen

Algorithmen 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

Mehr

Übungsklausur Algorithmen I

Übungsklausur Algorithmen I Jun.-Prof. Hofheinz, Jun.-Prof. Meyerhenke (ITI, KIT) 08.06.2015 Übungsklausur Algorithmen I Aufgabe 1. (Algorithm Engineering) Nennen Sie zwei Konzepte, die Algorithm Engineering im Gegensatz zu theoretischer

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

Algorithmen und Datenstrukturen

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

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Dynamische Programmierung Einführung Ablaufkoordination von Montagebändern Längste gemeinsame Teilsequenz Optimale

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. Hausübung Algorithmen und Datenstrukturen

2. Hausübung Algorithmen und Datenstrukturen Prof. Dr. Gerd Stumme, Folke Eisterlehner, Dominik Benz Fachgebiet Wissensverarbeitung 7.4.009. Hausübung Algorithmen und Datenstrukturen Sommersemester 009 Abgabetermin: Montag, 04.05.009, 10:00 Uhr 1

Mehr

Das Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle

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.

Mehr

Klausur Theoretische Informatik I WS 2004/2005

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)

Mehr

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

S=[n] Menge von Veranstaltungen J S kompatibel mit maximaler Größe J Greedy-Strategie Definition Paradigma Greedy Der Greedy-Ansatz verwendet die Strategie 1 Top-down Auswahl: Bestimme in jedem Schritt eine lokal optimale Lösung, so dass man eine global optimale Lösung

Mehr