Datenstrukturen & Algorithmen
|
|
|
- Elsa Armbruster
- vor 9 Jahren
- Abrufe
Transkript
1 Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010
2 Übersicht Dynamische Programmierung Einführung Ablaufkoordination von Montagebändern Längste gemeinsame Teilsequenz Optimale binäre Suchbäume Eigenschaften der dynammischen Programmierung 2
3 Dynamische Programmierung Entwurfsstrategie, wie divide-and-conquer (teile-und-beherrsche) Programmierung bedeutet Tabellieren (historischer Hintergrund) Teile-und-beherrsche: Teilprobleme sind unabhängig Dynamische Programmierung: Teilprobleme bestehen ihrerseits aus gemeinsamen Teilproblemen 3
4 Dynamische Programmierung Lösung von Optimierungsproblemen Finde eine Lösung mit optimalen Eigenschaften Kleinster oder grösster Wert (Minimierung oder Maximierung) 4
5 Dynamische Programmierung Vier Schritte, um Algorithmus zu entwickeln 1. Beschreibe Struktur einer optimalen Lösung 2. Definiere Wert der optimalen Lösung rekursiv 3. Berechne Wert der optimalen Lösung bottom-up up 4. Konstruiere optimale Lösung basierend auf den vorherigen Berechnungen 5
6 Dynamische Programmierung Begriffe Optimale Teilstruktur Überlappende Teilprobleme Memoisierung 6
7 Übersicht Dynamische Programmierung Einführung Ablaufkoordination von Montagebändern Längste gemeinsame Teilsequenz Optimale binäre Suchbäume Eigenschaften der dynammischen Programmierung 7
8 Ablaufkoord. von Montagebändern Autofabrik mit zwei Montagebändern Bänder haben dieselben Stationen, aber unterschiedliche Bearbeitungszeiten Autos können von einem zum anderen Band verschoben werden Problem: bestimme optimalen Ablauf durch die Bänder Bestimme, welche Stationen von welchem Band verwendet werden sollen 8
9 Optimaler Ablauf Alle Möglichkeiten ausprobieren? Jeder Ablauf gegeben durch Menge der Stationen von Band 1 (oder Band 2) Bänder haben n Stationen 2 n Teilmengen Exponentielle Anzahl Kandidaten Unpraktisch wenn n gross 9
10 1. Struktur der optimalen Lösung Betrachte schnellsten Weg zur Station S 1,j j=1: einfach Zeit zu S 1,1 j>=2: zwei Möglichkeiten zu S 1,j Via S 1,j-1 j 1, dann direkt zu S 1,j j Via S 2,j-1, dann Transfer zu zu S 1,j 10
11 1. Struktur der optimalen Lösung Annahme: Schnellster Weg zu S 1,j ist durch S 1,j-1 Beobachtung Müssen schnellsten Weg zu S 1,j-1 genommen haben Falls es einen schnelleren Weg zu S 1,j-1 gäbe, hätten wir diesen verwendet um einen noch schnelleren Weg zu S 1,j zu erhalten 11
12 1. Struktur der optimalen Lösung Annahme: Schnellster Weg zu S 1,j ist durch S 1,j-1 Beobachtung Müssen schnellsten Weg zu S 1,j-1 genommen haben Falls es einen schnelleren Weg zu S 1,j-1 gäbe, hätten wir diesen verwendet um einen noch schnelleren Weg zu S 1,j zu erhalten Selbes Argument für Weg zu S 1,j über S 2,j-1 12
13 1. Struktur der optimalen Lösung Optimale Teilstruktur: Optimale Lösung für ein Problem (Weg zu S 1,j ) enthält optimale Lösung zu Teilproblemen (Weg zu S 1,j-1 oder S 1,j-2 ) Benütze optimale Teilstruktur um optimale Lösung zu einem Problem aus optimalen Lösungen von Unterproblemen zu finden Um schnellsten Pfad zu S 1,j j zu finden, bestimme schnellsten Pfad zu S 1,j-1 und S 2,j-1 13
14 2. Rekursive Lösung Sei f i [j] kürzeste Zeit um S i,j zu durchlaufen Ziel: finde kürzeste Zeit f * durch alle Stationen 14
15 Analyse der rekursiven Lösung Anzahl Zugriffe auf f i [j] ist 2 n-j Gesamtzahl der Zugriffe auf alle f i [j] ist 2 n+1-2 Siehe Übung Exponentielle Laufzeit! 15
16 3. Bottom-up Algorithmus Speichere Zusatzinformation, um später Lösung rekonstruieren zu können Sei l i [j] = Band 1 oder 2, dessen Station j-1 auf dem Weg durch S i,j verwendet wird S li[j],j-1j 1 ist vor S ij i,j Beispiel 16
17 3.Bottom-up Algorithmus 17
18 4. Rekonstruktion der Lösung Verwende Zusatzinformation l i [j], um Lösung zu rekonstruieren 18
19 Übersicht Dynamische Programmierung Einführung Ablaufkoordination von Montagebändern Längste gemeinsame Teilsequenz Optimale binäre Suchbäume Eigenschaften der dynammischen Programmierung 19
20 Längste gemeinsame Teilsequenz Gegeben zwei Sequenzen X=<x 1,...,x m > und Y=<y 1,...,y n >. Finde eine Sequenz von maximaler Länge, die in X und Y vorkommt Elemente der Sequenz müssen nicht konsekutiv, jedoch in korrekter Reihenfolge in X und Y vorkommen Longest common subsequence (LCS) Beispiele 20
21 Naive Lösung Für jede Teilsequenz von X, prüfe ob sie in Y vorkommt Aufwand Θ(n2( m ) 2 m Teilsequenzen in X Jeder Bitvektor der Länge m definiert eine Teilsequenz Überprüfen jeder Teilsequenz braucht Θ(n) Gesamte Sequenz Y muss durchlaufen werden Exponentiell! 21
22 Optimale Teilstruktur Notation X i bezeichnet Präfix <x 1,...,x i > Y i bezeichnet Präfix <y 1,...,y i > i y 1 y i Theorem Sei Z=<z 1,...,z k > LCS von X m und Y n 1. Falls x m=yy n, dann z k=x m=yy n und Z k-1 1 ist LCS von X m-1 und Y n-1 2. Falls x m y y n, dann bedeutet z k x x m, dass Z LCS von X m-1 und Y n 3. Falls x m y n, dann bedeutet z k y n, dass Z LCS von X m und Y n-1 22
23 Beweis Theorem 23
24 Optimale Teilstruktur Ein LCS von zwei Reihen hat ein Präfix, welches ein LCS von Präfixen der Reihen ist Jeder Präfix eines LCS von zwei Reihen ist ein LCS von Präfixen der Reihen => Das Problem erfüllt das Kriterium der optimalen Substruktur 24
25 Rekursive Formulierung Idee Berechne zuerst nur Länge der LCS Rekonstruiere nachher die LCS selbst Sei c[i,j] Länge LCS von X und Y Gesucht c[m,n] 25
26 Rekursive Formulierung Worst-case: x[i]=y[i] Evaluiere zwei Teilprobleme, je nur ein Parameter dekrementiert 26
27 Rekursionsbaum 27
28 Überlappende Unterprobleme Rekursive Lösung enthält eine kleine Anzahl verschiedener Unterprobleme, die wiederholt gelöst werden Anzahl verschiedener Unterprobleme für das LCS Problem mit Reihen der Länge m und n ist nur mn Dynamisches Programmieren stützt sich auf optimale Substruktur und überlappende Unterprobleme 28
29 Memoisierung Speichere Lösung von Teilproblemen in einer Tabelle Bei wiederholten Aufrufen des Teilproblems, lese Lösung aus Tabelle 29
30 Memoisierung Speichere Lösung von Teilproblemen in einer Tabelle c[ij] c[i,j] Bei wiederholten Aufrufen des Teilproblems, lese Lösung aus Tabelle Wie vorher! Aufwand Θ(mn) (Zeit und Platz) 30
31 Beispiel s a p a n k i n g a m p u t a t i o n 31
32 Rekonstruktion der LCS Jeder Eintrag c[i,j] hängt nur von drei anderen Einträgen c[i-1,j-1], 1 1] c[i-1,j], 1 und c[i,j-1] ab Gegeben c[ij] c[i,j], können in konstanter Zeit bestimmen, welcher vorhergehende Eintrag zur Berechnung verwendet wurde 32
33 Übersicht Dynamische Programmierung Einführung Ablaufkoordination von Montagebändern Längste gemeinsame Teilsequenz Optimale binäre Suchbäume Eigenschaften der dynammischen Programmierung 33
34 Optimale binäre Suchbäume Gegeben Sequenz K=<k 1,k 2,..,k n > von Schlüsseln, sortiert nach k 1 <k 2 <... Wahrscheinlichkeit p i für Suche nach k i Problem: konstruiere binären Suchbaum mit minimalem erwartetem Aufwand für Suche Anwendung: Wörterbuch für automatische Übersetzungen Worthäufigkeiten bekannt 34
35 Erwartete Suchkosten Tatsächliche Kosten = #untersuchter Knoten Für k i, Kosten = depth(k i)+1 Erwartete Kosten 35
36 Beispiel 36
37 Beobachtungen Optimaler BST hat nicht unbedingt kleinste Höhe hat nicht unbedingt Schlüssel mit grösster Suchwahrscheinlichkeit an der Wurzel Naive Konstruktion Teste alle Möglichkeiten Aufwand exponentiell 37
38 Optimale Teilstruktur Gegeben ein optimaler BST T mit Teilbaum T Behauptung: Falls T ein optimaler BST ist, muss T auch optimal sein Beweis durch Widerspruch Falls T nicht optimal wäre, könnten wir ihn durch einen optimalen Teilbaum T ersetzen Dies würde die Gesamtkosten von T reduzieren, und somit wäre T nicht optimal 38
39 Teilprobleme Problem : gegeben Schlüssel k i,..,k j Sei k r Wurzel von k i,..,k j Teilprobleme Linker Teilbaum k i,..,k r-1 < k r Rechter Teilbaum k r+1,..,k j >k r Mögliche Lösung Für jedes Problem k i,..,k j, untersuche alle möglichen Wurzeln Bestimme jeweils optimale BST für linke und rechte Teilbäume 39
40 Rekursive Lösung Sei e[i,j] = erwartete Suchkosten für k i,..,k j Falls j=i-1, dann e[i,j]=0 Sei k r Wurzel für optimalen BST von k i,..,k j wobei Beachte Somit Rekursionsgleichung 40
41 Dynamische Programmierung Berechne Tabellen e[i,j] erwartete Kosten w[i,j] [ Wahrscheinlichkeit für Suche root[i,j] Wurzel Bottom-up Strategie, drei Schleifen Über alle Teilbäume mit l=i-j Schlüsseln, beginnend bei l=1 Über alle Teilbäume [i,j] der Grösse l Über alle möglichen Wurzeln jedes Teilbaums» Evaluiere Kosten, berechne Tabelleneinträge 41
42 Dynamische Programmierung 42
43 Beispiel 43
44 Rekonstruktion der Lösung Mittels einfachem rekursivem Algorithmus aus der root Tabelle Übung 44
45 Übersicht Dynamische Programmierung Einführung Ablaufkoordination von Montagebändern Längste gemeinsame Teilsequenz Optimale binäre Suchbäume Eigenschaften der dynammischen Programmierung 45
46 Dynamische Programmierung Optimale Teilstruktur Überlappende Teilprobleme Memoisierung Rekonstruktion der optimalen Lösung 46
47 Optimale Substruktur Optimale Lösung eines Problems beinhaltet optimale Lösungen von Teilproblemen Rezept um zu zeigen, dass Problem Eigenschaft der optimalen Substruktur besitzt 1. Zeige, dass Problem gelöst werden kann, indem Teilprobleme ausgewählt werden können (Annahme, dass Teilprobleme bekannt sind, welche Teil der optimalen Lösung sind) 2. Zeige, dass Lösung der Teilprobleme optimal sein muss, um Optimale Lösung des Problems zu erhalten 47
48 Optimale Substruktur Wieviele Teilprobleme werden in einer optimalen Lösung benutzt? Wieviele Kandidaten für Teilprobleme gibt es? Fliessbänder 1 Teilproblem (um eins kürzeres Band) 2 Kandidaten (Teilproblem das auf Band 1 oder 2 endet) LCS 1 Teilproblem (LCS für Reihen, wo mindestens eine um eins kürzer ist) 1 oder 2 Kandidaten (welche Reihe wird um eins gekürzt) 48
49 Optimale Substruktur Dynamisches Programmieren verwendet optimale Teilstruktur bottom up Zuerst: finde Lösungen zu Teilproblemen Dann: wähle welche Teilprobleme zur optimalen Lösung des Problems gehören e Greedy Algorithmen arbeiten top down Nächstes Mal Nicht alle Optimierungsprobleme haben Eigenschaft der optimalen Substruktur! 49
50 Überlappende Teilprobleme Treten auf, wenn rekursiver Algorithmus dasselbe Problem mehrmals löst Effiziente Teile-und-beherrsche Algorithmen generieren ein neues Teilproblem in jedem Aufruf (Merge Sort, Quicksort) 50
51 Memoisierung Varianteder Reihenfolge, in welcher die Tabelle mit Lösung von Teilproblemen gefüllt wird Bevorzugter Ansatz im dynamischen Programmieren: bottom-up Berechnung der Teilprobleme ohne Rekursion Memoisierung Verwende Rekursiven Algorithmus Speichere Lösung von Teilproblemen in Tabelle Verfolge Rekursion nur dann weiter, wenn Lösung des Teilproblems in Tabelle noch nicht gespeichert LCS Problem Buch hat bottom up Algorithmus ohne Memoisierung 51
52 Nächstes Mal Greedy Algorithmen 52
Ü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
Algorithmen und Datenstrukturen 2
Algorithmen und Datenstrukturen Lerneinheit : Dynamisches Programmieren Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Sommersemester.. Einleitung Diese Lerneinheit widmet sich einer
Dynamische Programmierung
Dynamische Programmierung Claudia Gerhold 9.5.6 Claudia Gerhold Dynamische Programmierung 9.5.6 / 4 Agenda Einführung Dynamische Programmierung Top-Down Ansatz mit Memoization Bottom-Up Ansatz 3 Anwendungsbeispiele
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
19. 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.
3.3 Optimale binäre Suchbäume
3.3 Optimale binäre Suchbäume Problem 3.3.1. Sei S eine Menge von Schlüsseln aus einem endlichen, linear geordneten Universum U, S = {a 1,,...,a n } U und S = n N. Wir wollen S in einem binären Suchbaum
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
ÜBUNGSKLAUSUR Studienhalbjahr: 2. Semester. Datum: 20. Juli 2016 Bearbeitungszeit: 90 Minuten. Modul: T2INF Dozent: Stephan Schulz
Matrikelnummer: Fakultät Studiengang: Jahrgang / Kurs : Technik Angewandte Informatik 01 B/C/K ÜBUNGSKLAUSUR Studienhalbjahr:. Semester Datum: 0. Juli 01 Bearbeitungszeit: 90 Minuten Modul: TINF100.1 Dozent:
Algorithmen 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
21. Greedy Algorithmen. Aktivitätenauswahl, Fractional Knapsack Problem, Huffman Coding Cormen et al, Kap. 16.1, 16.3
581 21. Greedy Algorithmen Aktivitätenauswahl, Fractional Knapsack Problem, Huffman Coding Cormen et al, Kap. 16.1, 16.3 Aktivitäten Auswahl 582 Koordination von Aktivitäten, die gemeinsame Resource exklusiv
20. Dynamic Programming II
536 20. Dynamic Programming II Subset Sum Problem, Rucksackproblem, Greedy Algorithmus, Lösungen mit dynamischer Programmierung, FPTAS, Optimaler Suchbaum [Ottman/Widmayer, Kap. 7.2, 7.3, 5.7, Cormen et
Ein Dieb raubt einen Laden aus; um möglichst flexibel zu sein, hat er für die Beute nur einen Rucksack dabei
7/7/ Das Rucksack-Problem Englisch: Knapsack Problem Das Problem: "Die Qual der Wahl" Ein Dieb raubt einen Laden aus; um möglichst flexibel zu sein, hat er für die Beute nur einen Rucksack dabei Im Ladens
20. Dynamic Programming II
Aufgabe 20. Dynamic Programming II Subset Sum Problem, Rucksackproblem, Greedy Algorithmus, Lösungen mit dynamischer Programmierung, FPTAS, Optimaler Suchbaum [Ottman/Widmayer, Kap. 7.2, 7.3, 5.7, Cormen
Wiederholung. Divide & Conquer Strategie
Wiederholung Divide & Conquer Strategie Binäre Suche O(log n) Rekursives Suchen im linken oder rechten Teilintervall Insertion-Sort O(n 2 ) Rekursives Sortieren von a[1..n-1], a[n] Einfügen von a[n] in
Einführung in die Objektorientierte Programmierung Vorlesung 17: Dynamische Programmierung. Sebastian Küpper
Einführung in die Objektorientierte Programmierung Vorlesung 17: Dynamische Programmierung Sebastian Küpper Redundanz Rekursiver Lösungen Rekursion kann elegante Bescheibungen zur Problemlösung ergeben
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
2. Klausur Datenstrukturen und Algorithmen SS 2014
Prof. aa Dr. E. Ábrahám F. Corzilius, S. Schupp, T. Ströder 2. Klausur Datenstrukturen und Algorithmen SS 2014 Vorname: Nachname: Studiengang (bitte genau einen markieren): Informatik Bachelor Informatik
Algorithmen und Datenstrukturen 2
Algorithmen und Datenstrukturen 2 Lerneinheit 3: Greedy Algorithmen Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Sommersemester 2016 10.5.2016 Einleitung Einleitung Diese Lerneinheit
Algorithmen und Datenstrukturen 1 Kapitel 3
Algorithmen und Datenstrukturen 1 Kapitel 3 Technische Fakultät [email protected] Vorlesung, U. Bielefeld, Winter 2005/2006 3.6 Dynamische Programmierung Die rekursive Problemzerlegung kann
19. Dynamic Programming I
502 19. Dynamic Programming I Fibonacci, Längste aufsteigende Teilfolge, längste gemeinsame Teilfolge, Editierdistanz, Matrixkettenmultiplikation, Matrixmultiplikation nach Strassen [Ottman/Widmayer, Kap.
Klausur Algorithmentheorie
Prof. Dr. G. Schnitger Frankfurt, den 06.04.2009 Klausur Algorithmentheorie WS 2008/2009 Name: Vorname: Geburtsdatum: Studiengang: BITTE GENAU LESEN Die Klausur besteht aus 4 Aufgaben, in denen maximal
19. Dynamic Programming I
Fibonacci Zahlen 9. Dynamic Programming I Fibonacci, Längste aufsteigende Teilfolge, längste gemeinsame Teilfolge, Editierdistanz, Matrixettenmultipliation, Matrixmultipliation nach Strassen [Ottman/Widmayer,
Datenstrukturen und Algorithmen (SS 2013)
Datenstrukturen und Algorithmen (SS 2013) Präsenzübung Musterlösung Dienstag, 28.05.2013 Aufgabe 1 (Allgemeine Fragen [20 Punkte]) 1. Tragen Sie in der folgenden Tabelle die Best-, Average- und Worst-Case-
Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?
Entscheidungsbäume Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Definition Entscheidungsbaum Sei T ein Binärbaum und A = {a 1,..., a n } eine zu sortierenden Menge. T ist ein Entscheidungsbaum
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Wintersemester 2012/13 26. Vorlesung Greedy- und Approximationsalgorithmen Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Operations Research Optimierung für Wirtschaftsabläufe:
Datenstrukturen & Algorithmen
Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Untere Schranken für Sortieren Sortieren mit linearem Aufwand Mediane und Ranggrössen 2 Wie schnell können wir sortieren?
11 Dynamisches Programmieren
Algorithmen und Datenstrukturen 279 11 Dynamisches Programmieren Gegenstand dieses und des nächsten Kapitels sind noch einmal Algorithmen. Zunächst beschreiben wir das sog. dynamische Programmieren. kein
Natürliche Bäume. (Algorithmen und Datenstrukturen I) Prof. Dr. Oliver Braun. Letzte Änderung: :16. Natürliche Bäume 1/16
Natürliche Bäume (Algorithmen und Datenstrukturen I) Prof. Dr. Oliver Braun Letzte Änderung: 18.03.2018 18:16 Natürliche Bäume 1/16 Bäume Begriffe (1/2) Bäume sind verallgemeinerte Listenstrukturen ein
Datenstrukturen und Algorithmen (SS 2013) Prof. Dr. Leif Kobbelt Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Präsenzübung Datenstrukturen und Algorithmen (SS 2013) Prof. Dr. Leif Kobbelt Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer Dienstag, 28. Mai 2013 Nachname: Vorname: Matrikelnummer: Studiengang:
Das Problem des Handlungsreisenden
Seite 1 Das Problem des Handlungsreisenden Abbildung 1: Alle möglichen Rundreisen für 4 Städte Das TSP-Problem tritt in der Praxis in vielen Anwendungen als Teilproblem auf. Hierzu gehören z.b. Optimierungsprobleme
Klausur Algorithmentheorie
Prof. Dr. G. Schnitger Frankfurt, den 24.02.2011 M. Poloczek Klausur Algorithmentheorie WS 2010/2011 Name: Vorname: Geburtsdatum: Studiengang: BITTE GENAU LESEN Die Klausur besteht aus 4 Aufgaben, in denen
Klausur Algorithmen und Datenstrukturen
Technische Universität Braunschweig Wintersemester 2014/2015 Institut für Betriebssysteme und Rechnerverbund Abteilung Algorithmik Prof. Dr. Sándor P. Fekete Dr. Christian Scheffer Klausur 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.
Datenstrukturen und Algorithmen (SS 2013)
Datenstrukturen und Algorithmen (SS 2013) Übungsblatt 10 Abgabe: Montag, 08.07.2013, 14:00 Uhr Die Übungen sollen in Gruppen von zwei bis drei Personen bearbeitet werden. Schreiben Sie die Namen jedes
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
Dynamische Programmierung
Dynamische Programmierung Ludwig Höcker 13.06.2012 Ludwig Höcker Dynamische Programmierung 13.06.2012 1 / 61 Gliederung Dynamic Programming Bsp.: FAU-Kabel Naiv Top-Down Bottom-Up Longest Increasing Subsequence
Algorithmen I. Tutorium Sitzung. Dennis Felsing
Algorithmen I Tutorium 1-12. Sitzung Dennis Felsing [email protected] www.stud.uni-karlsruhe.de/~ubcqr/algo 2011-07-04 Überblick 1 Dynamische Programmierung Idee Längste gemeinsame Teilfolge
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)
Randomisierte Algorithmen 2. Erste Beispiele
Randomisierte Algorithmen Randomisierte Algorithmen 2. Erste Beispiele Thomas Worsch Fakultät für Informatik Karlsruher Institut für Technologie Wintersemester 2016/2017 1 / 35 Randomisierter Identitätstest
Stud.-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
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
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.
Algorithmen für schwierige Probleme
Algorithmen für schwierige Probleme Britta Dorn Wintersemester 2011/12 24. November 2011 Farbkodierung Beispiel Longest Path Longest Path gegeben: G = (V, E) und k N. Frage: Gibt es einen einfachen Pfad
Datenstrukturen & Algorithmen
Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Graphenalgorithmen Maximaler Fluss Einleitung Flussnetzwerke Ford-Fulkerson Fulkerson Methode Maximales bipartites Matching
Algorithmen und Datenstrukturen in der Bioinformatik Erstes Ü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 Erstes
Dynamische Programmierung II
Vorlesungstermin 10: Dynamische Programmierung II Markus Püschel David Steurer talks2.dsteurer.org/dp2.pdf Algorithmen und Datenstrukturen, Herbstsemester 2018, ETH Zürich Plan für heute Dynamische Programmierung
Effiziente Algorithmen 2
Effiziente Algorithmen 2 Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2009 Übersicht Algorithmen
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
Auswählen nach Rang (Selektion)
Auswählen nach Rang (Selektion) Geg.: Folge X von n Schlüsseln, eine Zahl k mit k n Ges.: ein k-kleinster Schlüssel von X, also den Schlüssel x k für X sortiert als x x 2 L x n trivial lösbar in Zeit O(kn)
Algorithmen I - Tutorium 28 Nr. 12
Algorithmen I - Tutorium 28 Nr. 12 20.07.2017: Spaß mit Dynamischer und Linearer Programmierung Marc Leinweber [email protected] INSTITUT FÜR THEORETISCHE INFORMATIK (ITI), PROF. DR. JÖRN
6. Algorithmen auf Zeichenketten
6. Algorithmen auf Zeichenketten Motivation Wir lernen nun Algorithmen zur Lösung verschiedener elementarer Probleme auf Zeichenketten zu lösen Zeichenketten spielen eine wichtige Rolle in diversen Gebieten
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
Hallo Welt für Fortgeschrittene
Hallo Welt für Fortgeschrittene Dynamische Programmierung Thomas Karmann 4. Juni 2010 1 / 36 Übersicht Einführung Definition Anwendung Funktionsweise Grundlagen Memoisation Top-Down Bottom-Up Grenzen Anwendungsbeispiele
Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Suchen. Lineare Suche. Such-Algorithmen. Sommersemester Dr.
Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 0 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Fortgeschrittene Datenstrukturen Such-Algorithmen
Dynamische Programmierung. Problemlösungsstrategie der Informatik
als Problemlösungsstrategie der Informatik und ihre Anwedung in der Diskreten Mathematik und Graphentheorie Fabian Cordt Enisa Metovic Wissenschaftliche Arbeiten und Präsentationen, WS 2010/2011 Gliederung
Rekursionsbäume Aufstellen eines Baumes dessen Knoten die Laufzeit auf jeder Rekursionsstufe darstellen und Aufsummieren
Algorithmen und Datenstrukturen 74 3 Rekursionen Vor allem bei rekursiven Algorithmen besitzt die Laufzeitfunktion eine naheliegende rekursive Formulierung, d.h. die Laufzeitfunktion ist konstant für den
Top-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
(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,
Globalübungsaufgabe1 (Rucksackproblem):
Prof. aa Dr. Ir. G. Woeginger T. Hartmann, D. Korzeniewski, B. Tauer Allgemeine Hinweise: Die Hausaufgaben sollen in Gruppen von je 2 Studierenden aus der gleichen Kleingruppenübung (Tutorium) bearbeitet
Datenstrukturen und Algorithmen
Joost-Pieter Katoen Datenstrukturen und Algorithmen 1/32 Datenstrukturen und Algorithmen Vorlesung 7: Sortieren (K2) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group
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
Algorithmische Bioinformatik 1
Algorithmische Bioinformatik 1 Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2009 Übersicht 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
Übersicht. Rot-schwarz Bäume. Rot-schwarz Bäume. Beispiel. Eigenschaften. Datenstrukturen & Algorithmen. Rot-schwarz Bäume Eigenschaften Einfügen
Datenstrukturen & Algorithmen Übersicht Rot-schwarz Bäume Eigenschaften Einfügen Matthias Zwicker Universität Bern Frühling 2009 2 Rot-schwarz Bäume Binäre Suchbäume sind nur effizient wenn Höhe des Baumes
6 Quicksort. die mittlere Laufzeit Θ(n log n) beträgt und. die in der asymptotischen Notation verborgenen Konstanten sehr klein sind.
Algorithmen und Datenstrukturen 132 6 Quicksort In diesem Abschnitt wird Quicksort, ein weiterer Sortieralgorithmus, vorgestellt. Trotz einer eher langsamen Worst-Case Laufzeit von Θ(n 2 ) ist Quicksort
Algorithmen auf Sequenzen
Algorithmen auf Sequenzen Fehlertolerante Mustersuche: Distanz- und Ähnlichkeitsmaße Sven Rahmann Genominformatik Universitätsklinikum Essen Universität Duisburg-Essen Universitätsallianz Ruhr Einführung
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
Klausur Algorithmentheorie
Prof. Dr. G. Schnitger Frankfurt, den 07.04.2011 M. Poloczek Klausur Algorithmentheorie WS 2010/2011 Name: Vorname: Geburtsdatum: Studiengang: BITTE GENAU LESEN Die Klausur besteht aus 4 Aufgaben, in denen
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
Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität
Datenstrukturen und Algorithmen Christian Sohler FG Algorithmen & Komplexität 1 Klausur Wichtige Hinweise: 2.7.07, Beginn 9 Uhr Bitte spätestens 8:4 Uhr vor Ort sein Sporthalle + Audimax Informationen
Dynamische Programmierung
Dynamische Programmierung Simon Philippi - 53577 HTW Aalen Jasmin Ratajczyk - 57135 HTW Aalen 25. Januar 2017 Khaled Ahmed - 53558 HTW Aalen 1 Inhaltsverzeichnis 1 Einleitung 3 2 Definition 5 2.1 Top-Down...............................
Algorithmen und Datenstrukturen 1
Algorithmen und Datenstrukturen 1 8. Vorlesung Martin Middendorf und Peter F. Stadler Universität Leipzig Institut für Informatik [email protected] [email protected] Gefädelte
Suchen in Texten. Naives Suchen Verfahren von Knuth-Morris-Pratt Verfahren von Boyer-Moore Ähnlichkeitssuchen Editierdistanz
Suchen in Texten Naives Suchen Verfahren von Knuth-Morris-Pratt Verfahren von Boyer-Moore Ähnlichkeitssuchen Editierdistanz Textsuche Gegeben ist ein Zeichensatz (Alphabet) Σ. Für einen Text T Σ n und
2. 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]
Übung zu Algorithmen und Datenstrukturen (für ET/IT)
Übung zu Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2017 Rüdiger Göbl, Mai Bui Computer Aided Medical Procedures Technische Universität München Fibonacci Zahlen Fibonacci Folge Die Fibonacci
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
Übung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 017 Marc Bux, Humboldt-Universität zu Berlin Agenda 1. Vorrechnen von Aufgabenblatt 1. Wohlgeformte Klammerausdrücke 3. Teile und Herrsche Agenda 1.
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 2010
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
