19. Dynamic Programming I
|
|
- Cornelius Vogt
- vor 6 Jahren
- Abrufe
Transkript
1 Fibonacci Zahlen 9. Dynamic Programming I Fibonacci, Längste aufsteigende Teilfolge, längste gemeinsame Teilfolge, Editierdistanz, Matrixettenmultipliation, Matrixmultipliation nach Strassen [Ottman/Widmayer, Kap..2.3, 7., 7.4, Cormen et al, Kap. 5] (schon wieder) F n := { wenn n < 2 F n + F n 2 wenn n 3. Analyse: warum ist der reursive Algorithmus so langsam Algorithmus FibonacciRecursive(n) Analyse Input : n 0 Output : n-te Fibonacci Zahl if n 2 then f else f FibonacciRecursive(n ) + FibonacciRecursive(n 2) return f T (n): Anzahl der ausgeführten Operationen. n =, 2: T (n) = Θ() n 3: T (n) = T (n 2) + T (n ) + c. T (n) = T (n 2) + T (n ) + c 2T (n 2) + c 2 n/2 c = ( 2) n c Algorithmus ist exponentiell (!) in n
2 Grund, visualisiert Memoization F 47 Memoization (sic) Abspeichern von Zwischenergebnissen. F 46 F 45 F 44 F 44 F 43 F 43 F 42 F 45 F 44 F 43 F 43 F 42 F 42 F 4 Bevor ein Teilproblem gelöst wird, wird Existenz eines entsprechenden Zwischenergebnis geprüft. Existiert ein gespeichertes Zwischenergebnis bereits, so wird dieses verwendet. Andernfalls wird der Algorithmus ausgeführt und das Ergebnis wird entsprechend gespeichert. Knoten mit denselben Werten werden oft ausgewertet Memoization bei Fibonacci Algorithmus FibonacciMemoization(n) F 47 Input : n 0 Output : n-te Fibonacci Zahl F 45 F 44 F 43 F 46 F 44 F 45 if n 2 then f else if memo[n] then f memo[n] else f FibonacciMemoization(n ) + FibonacciMemoization(n 2) memo[n] f return f Rechtecige Knoten wurden bereits ausgewertet
3 Analyse Genauer hingesehen... Berechnungsaufwand: T (n) = T (n ) + c =... = O(n). Algorithmus benötigt Θ(n) Speicher berechnet der Algorithmus der Reihe nach die Werte F, F 2, F 3,... verleidet im Top-Down Ansatz der Reursion. Kann den Algorithmus auch gleich Bottom-Up hinschreiben. Man spricht dann auch von dynamischer Programmierung. 24 Allerdings benötigt der naive Algorithmus auch Θ(n) Speicher für die Reursionsverwaltung Algorithmus FibonacciDynamicProgram(n) Dynamic Programming: Vorgehen Input : n 0 Output : n-te Fibonacci Zahl F [] F [2] for i 3,..., n do F [i] F [i ] + F [i 2] return F [n] Verwalte DP-Tabelle mit Information zu den Teilproblemen. Dimension der Tabelle? Bedeutung der Einträge? 2 Berechnung der Randfälle. Welche Einträge hängen nicht von anderen ab? 3 Berechnungsreihenfolge bestimen. In welcher Reihenfolge önnen Einträge berechnet werden, so dass benötigte Einträge jeweils vorhanden sind? 4 Auslesen der Lösung. Wie ann sich Lösung aus der Tabelle onstruieren lassen? Laufzeit (typisch) = Anzahl Einträge der Tabelle mal Aufwand pro Eintrag
4 Dynamic Programming: Vorgehen am Beispiel Längste aufsteigende Teilfolge (LAT) Dimension der Tabelle? Bedeutung der Einträge? Tabelle der Grösse n. n-ter Eintrag enthält n-te Fibonacci Zahl Welche Einträge hängen nicht von anderen ab? Werte F und F 2 sind unabhängig einfach berechenbar. In welcher Reihenfolge önnen Einträge berechnet werden, so dass benötigte Einträge jeweils vorhanden sind? F i mit aufsteigenden i. Wie ann sich Lösung aus der Tabelle onstruieren lassen? F n ist die n-te Fibonacci-Zahl Verbinde so viele passende Anschlüsse wie möglich, ohne dass sich die Anschlüsse reuzen Formalisieren Erster Entwurf Betrachte Folge A = (a,..., a n ). Suche eine längste aufsteigende Teilfolge von A. Beispiele aufsteigender Teilfolgen: (3, 4, 5), (2, 4, 5, 7), (3, 4, 5, 7), (3, 7). A Verallgemeinerung: Lasse Zahlen ausserhalb von,..., n zu, auch mit Mehrfacheinträgen. Lasse nur strit aufsteigende Teilfolgen zu. Beispiel: (2,3,3,3,5,) mit aufsteigender Teilfolge (2,3,5). Annahme: LAT L für beannt. Wollen nun LAT L + für + berechnen. Wenn a + zu L passt, dann L + = L a + Gegenbeispiel: A 5 = (, 2, 5, 3, 4). Sei A 3 = (, 2, 5) mit L 3 = A. Bestimme L 4 aus L 3? So ommen wir nicht weiter: önnen nicht von L auf L + schliessen
5 Zweiter Entwurf Dritter Entwurf Annahme: eine LAT L j für alle j beannt. Wollen nun LAT L + für + berechnen. Betrachte alle passenden L + = L j a + (j ) und wähle eine längste solche Folge. Gegenbeispiel: A 5 = (, 2, 5, 3, 4). Sei A 4 = (, 2, 5, 3) mit L = (), L 2 = (, 2), L 3 = (, 2, 5), L 4 = (, 2, 5). Bestimme L 5 aus L,..., L 4? So ommen wir nicht weiter: önnen nicht von jeweils nur einer beliebigen Lösung L j auf L + schliessen. Wir müssten alle möglichen LAT betrachten. Zu viel! Annahme: die LAT L j, welche mit leinstem Element endet sei für alle Längen j beannt. Betrachte nun alle passenden L j a + (j ) und atualisiere die Tabelle der längsten aufsteigenden Folgen, welche mit leinstem Element enden. Beispiel: A = (, 000, 00, 2, 3, 4,..., 999) A LAT () () (, 000) (), (, 000) (, 000, 00) (), (, 000), (, 000, 00) (, 000, 00, 2) (), (, 2), (, 000, 00) (, 000, 00, 2, 3) (), (, 2), (, 2, 3) 5 52 DP Table Dynamic Programming Algorithmus LAT Idee: speichere jeweils nur das letzte Element der aufsteigenden Folge am Slot j. Beispielfolge: Problem: Tabelle enthält zum Schluss nicht die Folge, nur den letzten Wert. Lösung: Zweite Tabelle mit den Vorgängern. Index Wert Vorgänger Dimension der Tabelle? Bedeutung der Einträge? Zwei Tabellen T [0,..., n] und V [,..., n]. Zu Beginn T [0], T [i] i > Berechnung eines Eintrags Einträge in T aufsteigend sortiert. Für jeden Neueintrag a + binäre Suche nach l, so dass T [l] < a < T [l + ]. Setze T [l + ] a +. Setze V [] = T [l]
6 Dynamic Programming Algorithmus LAT Analyse 3 4 Berechnungsreihenfolge Beim Traversieren der Liste werden die Einträge T [] und V [] mit aufsteigendem berechnet. Wie ann sich Lösung aus der Tabelle onstruieren lassen? Suche das grösste l mit T [l] <. l ist der letzte Index der LAT. Suche von l ausgehend den Index i < l, so dass V [l] = A[i], i ist der Vorgänger von l. Repetiere mit l i bis T [l] = Berechnung Tabelle: Initialisierung: Θ(n) Operationen Berechnung -ter Eintrag: Binäre Suche auf Positionen {,..., } plus onstante Anzahl Zuweisungen. n (log + O()) = O(n) + = n log() = Θ(n log n). = Reonstrution: Traversiere A von rechts nach lins: O(n). Somit Gesamtlaufzeit Θ(n log n) Längste Gemeiname Teilfolge Teilfolgen einer Zeichenette: Problem: Teilfolgen(KUH): (), (K), (U), (H), (KU), (KH), (UH), (KUH) Eingabe: Zwei Zeichenetten A = (a,..., a m ), B = (b,..., b n ) der Längen m > 0 und n > 0. Gesucht: Eine längste gemeinsame Teilfolge (LGT) von A und B. Sinnvolle Anwendung: Ähnlicheit von DNA-Sequenzen in der Biologie. Längste Gemeiname Teilfolge Beispiele: LGT(IGEL,KATZE)=E, LGT(TIGER,ZIEGE)=IGE Ideen zur Lösung? T I G E R Z I E G E 57 58
7 Reursives Vorgehen Reursion Annahme: Lösungen L(i, j) beannt für A[,..., i] und B[,..., j] für alle i m und j n, jedoch nicht für i = m und j = n. L(m, n) max {L(m, n ) + δ mn, L(m, n ), L(m, n)} T I G E R Z I E G E Betrachten Zeichen a m, b n. Drei Möglicheiten: A wird um ein Leerzeichen erweitert. L(m, n) = L(m, n ) 2 B wird um ein Leerzeichen erweitert. L(m, n) = L(m, n) 3 L(m, n) = L(m, n ) + δ mn mit δ mn = wenn a m = b n und δ mn = 0 sonst für m, n > 0 und Randfälle L(, 0) = 0, L(0, ) = 0. Z I E G E T I 0 0 G E R Dynamic Programming Algorithmus LGT Dynamic Programming Algorithmus LGT Dimension der Tabelle? Bedeutung der Einträge? Tabelle L[0,..., m][0,..., n]. L[i, j]: Länge einer LGT der Zeichenetten (a,..., a i ) und (b,..., b j ) 3 Berechnungsreihenfolge Abhängigeiten berücsichtigen: z.b. Zeilen aufsteigend und innerhalb von Zeilen Spalten aufsteigend. 2 Berechnung eines Eintrags L[0, i] 0 0 i m, L[j, 0] 0 0 j n. Berechnung von L[i, j] sonst mit L[i, j] = max(l[i, j ] + δ ij, L[i, j ], L[i, j]). 4 Wie ann sich Lösung aus der Tabelle onstruieren lassen? Beginne bei j = m, i = n. Falls a i = b j gilt, gib a i aus, sonst falls L[i, j] = L[i, j ] fahre mit j j fort, sonst falls L[i, j] = L[i, j] fahre mit i i fort. Terminiere für i = 0 oder j =
8 Analyse LGT Anzahl Tabelleneinträge: (m + ) (n + ). Berechnung jeweils mit onstanter Anzahl Zuweisungen und Vergleichen. Anzahl Schritte O(mn) Bestimmen der Lösung: jeweils Verringerung von i oder j. Maximal O(n + m) Schritte. Laufzeit insgesamt: O(mn). Editierdistanz Editierdistanz von zwei Zeichenetten A = (a,..., a m ), B = (b,..., b m ). Editieroperationen: Einfügen eines Zeichens Löschen eines Zeichens Änderung eines Zeichens Frage: Wie viele Editieroperationen sind mindestens nötig, um eine gegebene Zeichenette A in eine Zeichenette B zu überführen. TIGER ZIGER ZIEGER ZIEGE 523 Editierdistanz= Levenshtein Distanz 524 Vorgehen? Zweidimensionale Tabelle E[0,..., m][0,..., n] mit Editierdistanzen E[i, j] zwischen Worten A i = (a,..., a i ) und B j = (b,..., b j ). Betrachte die jeweils letzten Zeichen von A i und B j. Drei mögliche Fälle: Lösche letztes Zeichen von A i : 25 E[i, j] +. 2 Füge Zeichen zu A i hinzu: 26 E[i, j ] +. 3 Ersetze A i durch B j : E[i, j ] + δ ij. E[i, j] min { E[i, j]+, E[i, j ]+, E[i, j ]+ δ ij } DP Tabelle E[i, j] min { E[i, j] +, E[i, j ] +, E[i, j ] + δ ij } Z I E G E T I G E R oder füge Zeichen zu B j hinzu 26 oder lösche letztes Zeichen von B j 525 Algorithmus: Übung! 526
9 Matrix-Kettenmultipliation Macht das einen Unterschied? Aufgabe: Berechnung des Produtes A A 2... A n von Matrizen A,..., A n. = = Matrizenmultipliation ist assoziativ, d.h. Klammerung ann beliebig gewählt. A A 2 A 3 A A 2 A 3 2 Operationen! A A 2 A 3 Ziel: möglichst effiziente Berechnung des Produtes. Annahme: Multipliation einer (r s)-matrix mit einer (s u)-matrix hat Kosten r s u. = Operationen! = A A 2 A 3 A A 2 A 3 A A 2 A Reursion Berechnung der DP-Tabelle Annahme, dass die bestmögliche Berechnung von (A A 2 A i ) und (A i+ A i+2 A n ) für jedes i bereits beannt ist. Bestimme bestes i, fertig. n n-tabelle M. Eintrag M[p, q] enthält Kosten der besten Klammerung von (A p A p+ A q ). M[p, q] min (M[p, i] + M[i +, q] + Kosten letzte Multipliation) p i<p Randfälle: M[p, p] 0 für alle p n. Berechnung von M[p, q] hängt ab von M[i, j] mit p i j q, (i, j) (p, q). Insbesondere hängt M[p, q] höchstens ab von Einträgen M[i, j] mit i j < q p. Folgerung: Fülle die Tabelle von der Diagonale ausgehend
10 Analyse Exurs: Matrixmultipliation Betrachten Multipliation zweier n n-matrizen. DP-Tabelle hat n 2 Einträge. Berechung eines Eintrages bedingt Betrachten von bis zu n anderen Einträgen. Gesamtlaufzeit O(n 3 ). Seien dann A = (a ij ) i,j n, B = (b ij ) i,j n, C = (c ij ) i,j n, C = A B Auslesen der Reihenfolge aus M: Übung! c ij = n a i b j. = 53 Naiver Algorithmus benötigt Θ(n 3 ) elementare Multipliationen. 532 Divide and Conquer Divide and Conquer B a c b d Annahme n = 2. Anzahl elementare Multipliationen: M(n) = 8M(n/2), M() =. a c b d A C = AB e f ea + fc eb + fd Ergibt M(n) = 8 log 2 n = n log 2 8 = n 3. Kein Gewinn e g f h ea + fc ga + hc eb + fd gb + hd g h ga + hc gb + hd
11 Strassens Matrixmultipliation Nichttriviale Beobachtung von Strassen (969): Es genügt die Berechnung der sieben Produte A = (e + h) (a + d), B = (g + h) a, C = e (b d), D = h (c a), E = (e + f) d, F = (g e) (a + b), G = (f h) (c + d). Denn: ea + fc = A + D E + G, eb + fd = C + E, ga + hc = B + D, gb + hd = A B + C + F. Damit ergibt sich M (n) = 7M(n/2), M () =. Also M (n) = 7 log 2 n = n log 2 7 n e g f h a c ea + fc ga + hc b d eb + fd gb + hd Schnellster beannter Algorithmus: O(n 2.37 ) 535
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
MehrDatenstrukturen & 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
MehrProgrammierung 2. Dynamische Programmierung. Sebastian Hack. Klaas Boesche. Sommersemester 2012. hack@cs.uni-saarland.de. boesche@cs.uni-saarland.
1 Programmierung 2 Dynamische Programmierung Sebastian Hack hack@cs.uni-saarland.de Klaas Boesche boesche@cs.uni-saarland.de Sommersemester 2012 2 Übersicht Stammt aus den Zeiten als mit Programmierung
Mehr16. All Pairs Shortest Path (ASPS)
. All Pairs Shortest Path (ASPS) All Pairs Shortest Path (APSP): Eingabe: Gewichteter Graph G=(V,E) Ausgabe: Für jedes Paar von Knoten u,v V die Distanz von u nach v sowie einen kürzesten Weg a b c d e
MehrDynamische 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
MehrAlgorithmen und Datenstrukturen 1 Kapitel 3
Algorithmen und Datenstrukturen 1 Kapitel 3 Technische Fakultät robert@techfak.uni-bielefeld.de Vorlesung, U. Bielefeld, Winter 2005/2006 3.6 Dynamische Programmierung Die rekursive Problemzerlegung kann
MehrEntscheidungsbä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
MehrS=[n] Menge von Veranstaltungen J S kompatibel mit maximaler Größe J
Greedy-Strategie Definition Paradigma Greedy Der Greedy-Ansatz verwendet die Strategie 1 Top-down Auswahl: Bestimme in jedem Schritt eine lokal optimale Lösung, so dass man eine global optimale Lösung
MehrDynamische Programmierung
Dynamische Programmierung Julian Brost 11. Juni 2013 Julian Brost Dynamische Programmierung 11. Juni 2013 1 / 39 Gliederung 1 Was ist dynamische Programmierung? Top-Down-DP Bottom-Up-DP 2 Matrix-Kettenmultiplikation
MehrAlgorithmische 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 Paarweises
Mehr5.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
MehrDatenstrukturen & Algorithmen
Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Binäre Suchbäume Einführung und Begriffe Binäre Suchbäume 2 Binäre Suchbäume Datenstruktur für dynamische Mengen
MehrDynamisches Programmieren - Problemstruktur
Dynamisches Programmieren - Problemstruktur Optimale Substruktur: Optimale Lösung enthält optimale Lösungen von Teilproblemen. Bsp.: Kürzester Weg im Graphen, LCS (s. etwa Folie 42 der letzten Vorlesung)
MehrRandomisierte 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
MehrAlgorithmik Übung 3 Prof. Dr. Heiner Klocke. Sortierfolge nach Werten: 7 8 9 10 Bube Dame König As nach Farben: Karo ( ) Herz ( ) Piek ( ) Kreuz ( )
Algorithmi Übung 3 Prof. Dr. Heiner Kloce Winter 11/12 16.10.2011 Divide&Conquer- Algorithmen lassen sich gut als reursive Algorithmen darstellen. Das Prinzip eines reursiven Algorithmus beruht darauf,
MehrDynamische Programmierung
Dynamische Programmierung Manuel Grandeit Hallo Welt -Seminar 28.06.2011 Manuel Grandeit 1 / 40 Inhaltsübersicht Einführung Münzwechsel Was ist ein Zustand? Konstruktion einer DP-Lösung Top-Down-DP Bottom-Up-DP
MehrAlgorithmentheorie Randomisierung. Robert Elsässer
Algorithmentheorie 03 - Randomisierung Robert Elsässer Randomisierung Klassen von randomisierten Algorithmen Randomisierter Quicksort Randomisierter Primzahltest Kryptographie 2 1. Klassen von randomisierten
MehrUberblick 1. Kurzeste Wege 2. Sichtbarkeitsgraphen 3. Berechnung des Sichtbarkeitsgraphen 4. Kurzeste Wege fur polygonale Roboter 1
Vorlesung Geometrische Algorithmen Sichtbarkeitsgraphen und kurzeste Wege Sven Schuierer Uberblick 1. Kurzeste Wege 2. Sichtbarkeitsgraphen 3. Berechnung des Sichtbarkeitsgraphen 4. Kurzeste Wege fur polygonale
MehrAbschnitt: Algorithmendesign und Laufzeitanalyse
Abschnitt: Algorithmendesign und Laufzeitanalyse Definition Divide-and-Conquer Paradigma Divide-and-Conquer Algorithmen verwenden die Strategien 1 Divide: Teile das Problem rekursiv in Subproblem gleicher
MehrDatenstrukturen und Algorithmen
Datenstrukturen und Algorithmen VO 708.031 27.10.2011 stefan.klampfl@tugraz.at 1 Wiederholung Wir vergleichen Algorithmen anhand des ordnungsmäßigen Wachstums von T(n), S(n), Asymptotische Schranken: O-Notation:
MehrKostenmaße. F3 03/04 p.188/395
Kostenmaße Bei der TM nur ein Kostenmaß: Ein Schritt (Konfigurationsübergang) kostet eine Zeiteinheit; eine Bandzelle kostet eine Platzeinheit. Bei der RAM zwei Kostenmaße: uniformes Kostenmaß: (wie oben);
Mehr13. Binäre Suchbäume
1. Binäre Suchbäume Binäre Suchbäume realiesieren Wörterbücher. Sie unterstützen die Operationen 1. Einfügen (Insert) 2. Entfernen (Delete). Suchen (Search) 4. Maximum/Minimum-Suche 5. Vorgänger (Predecessor),
MehrDatenstrukturen 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
MehrEffiziente Algorithmen und Datenstrukturen I. Kapitel 10: Lineare Algebra
Effiziente Algorithmen und Datenstrukturen I Kapitel 10: Lineare Algebra Christian Scheideler WS 2008 19.02.2009 Kapitel 10 1 Überblick Notation Arithmetik auf großen Zahlen (Addition und Multiplikation)
MehrBabeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf
Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005 Paradigmen im Algorithmenentwurf Problemlösen Problem definieren Algorithmus entwerfen
MehrSuchen und Sortieren Sortieren. Heaps
Suchen und Heaps (Folie 245, Seite 63 im Skript) 3 7 21 10 17 31 49 28 14 35 24 42 38 Definition Ein Heap ist ein Binärbaum, der die Heapeigenschaft hat (Kinder sind größer als der Vater), bis auf die
MehrWas bisher geschah. 1. Zerlegung in monotone Polygone 2. Triangulierung der monotonen Teilpolygone
Was bisher geschah Motivation, Beispiele geometrische Objekte im R 2 : Punkt, Gerade, Halbebene, Strecke, Polygon, ebene Zerlegung in Regionen (planare Graphen) maschinelle Repräsentation geometrischer
MehrBinäre lineare Optimierung mit K*BMDs p.1/42
Binäre lineare Optimierung mit K*BMDs Ralf Wimmer wimmer@informatik.uni-freiburg.de Institut für Informatik Albert-Ludwigs-Universität Freiburg Binäre lineare Optimierung mit K*BMDs p.1/42 Grundlagen Binäre
MehrKapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete
Kapitel 4: Dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2012/13 Prof. Dr. Sándor Fekete 4.4 Binäre Suche Aufgabenstellung: Rate eine Zahl zwischen 100 und 114! Algorithmus 4.1 INPUT: OUTPUT:
MehrTeile und Herrsche Teil 2
Teile und Herrsche Teil 2 binär Suchen und schnell Multiplizieren Markus Fleck Manuel Mauky Hochschule Zittau/Görlitz 19. April 2009 Suchen in langen Listen (0, 1, 2, 7, 8, 9, 9, 13, 13, 14, 14, 14, 16,
MehrVorlesung 5: DATENSTRUKTUREN UND ALGORITHMEN
Vorlesung 5: DATENSTRUKTUREN UND ALGORITHMEN 125 Motivation! Wahl der Datenstruktur wichtiger Schritt beim Entwurf und der Implementierung von Algorithmen! Dünn besetzte Graphen und Matrizen bilden keine
MehrAlignment-Verfahren zum Vergleich biologischer Sequenzen
zum Vergleich biologischer Sequenzen Hans-Joachim Böckenhauer Dennis Komm Volkshochschule Zürich. April Ein biologisches Problem Fragestellung Finde eine Methode zum Vergleich von DNA-Molekülen oder Proteinen
MehrKapitel 9 Algorithm. Geometrie. Kürzeste Abstände Konvexe Hülle
Kapitel 9 Algorithm. Geometrie Kürzeste Abstände Konvexe Hülle Überblick Teilgebiet der Informatik, in dem es um die Entwicklung effizienter Algorithmen und die Bestimmung der algorithmischen Komplexität
MehrVorlesung Algorithmische Geometrie. Streckenschnitte. Martin Nöllenburg 19.04.2011
Vorlesung Algorithmische Geometrie LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 19.04.2011 Überlagern von Kartenebenen Beispiel: Gegeben zwei
MehrAlgorithmen II Vorlesung am
Algorithmen II Vorlesung am 0..0 Minimale Schnitte in Graphen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales Forschungszentrum
MehrUniversität des Saarlandes
Universität des Saarlandes FR 6.2 Informatik Prof. Dr. Kurt Mehlhorn WiSe 2015/2016 Übungen zu Ideen der Informatik http://www.mpi-inf.mpg.de/departments/algorithms-complexity/teaching/winter15/ideen/
MehrAbgabe: (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,
MehrDatenstrukturen & 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
MehrKombinatorische Optimierung
Juniorprof. Dr. Henning Meyerhenke 1 Henning Meyerhenke: KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Vorlesung 4 Programm des
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Prof. Dr. Ralf Möller Universität zu Lübeck Institut für Informationssysteme Stefan Werner (Übungen) sowie viele Tutoren Teilnehmerkreis und Voraussetzungen Studiengänge
Mehr23. November Betweenness Centrality Closeness Centrality. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 108
23. November 2011 Betweenness Centrality Closeness Centrality H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 108 Betweenness Centrality Grundlegende Idee: Ein Knoten ist wichtig, wenn er auf
MehrDATENSTRUKTUREN UND ALGORITHMEN
DATENSTRUKTUREN UND ALGORITHMEN 2 Ist die Datenstruktur so wichtig??? Wahl der Datenstruktur wichtiger Schritt beim Entwurf und der Implementierung von Algorithmen Dünn besetzte Graphen und Matrizen bilden
MehrGeometrische Algorithmen
Geometrische Algorithmen Bin Hu Algorithmen und Datenstrukturen 2 Arbeitsbereich für Algorithmen und Datenstrukturen Institut für Computergraphik und Algorithmen Technische Universität Wien Einführung
MehrAchtung: Groß O definiert keine totale Ordnungsrelation auf der Menge aller Funktionen! Beweis: Es gibt positive Funktionen f und g so, dass
Achtung: Groß O definiert keine totale Ordnungsrelation auf der Menge aller Funktionen! Beweis: Es gibt positive Funktionen f und g so, dass f O g und auch g O f. Wähle zum Beispiel und G. Zachmann Informatik
MehrVorlesung 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/
Mehr12 (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
MehrResolutionsalgorithmus
112 Resolutionskalkül Mit dem Begriff Kalkül bezeichnet man eine Menge von syntaktischen Umformungsregeln, mit denen man semantische Eigenschaften der Eingabeformel herleiten kann. Für den Resolutionskalkül:
Mehr11 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
MehrCopyright, Page 1 of 5 Die Determinante
wwwmathematik-netzde Copyright, Page 1 of 5 Die Determinante Determinanten sind ein äußerst wichtiges Instrument zur Untersuchung von Matrizen und linearen Abbildungen Außerhalb der linearen Algebra ist
MehrDatenstrukturen und Algorithmen
Datenstrukturen und Algorithmen VO 708.031 Bäume robert.legenstein@igi.tugraz.at 1 Inhalt der Vorlesung 1. Motivation, Einführung, Grundlagen 2. Algorithmische Grundprinzipien 3. Sortierverfahren 4. Halden
MehrKonzepte und Methoden der Programmierung Lösungen P. Fierz / FS 2012
Kapitel 1 Rekursion Alle Programme finden Sie im mitgelieferten zip-file. Aufgabe 1.1 [Fakultät] Für diese Übung brauchen Sie die Klassen Factorial Skelett und MyTimer. n! ist rekursiv folgendermassen
MehrCustomization (Zuschneiden)
Customization (Zuschneiden) Anpassen der (Graph)Datenstruktur an die Anwendung. I Ziel: schnell, kompakt. I benutze Entwurfsprinzip: make the common case fast I Listen vermeiden Mögliches Problem: Software-Engineering-Alptraum
MehrPolygontriangulierung
Vorlesung Algorithmische Geometrie Polygone triangulieren INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 03.05.2012 Das Kunstgalerie-Problem Aufgabe: Installiere ein Kamerasystem
MehrAlgorithmen II Vorlesung am 15.11.2012
Algorithmen II Vorlesung am 15.11.2012 Kreisbasen, Matroide & Algorithmen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales
MehrGrundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny
Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.
MehrFortgeschrittene 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
MehrTeil 2 - Softwaretechnik. Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 2. Übersicht. Softwaretechnik
Grundlagen der Programmierung 1 Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 2 Softwaretechnik Prof. Dr. O. Drobnik Professur Architektur und Betrieb verteilter Systeme Institut für
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Wintersemester 2013/14 1. Vorlesung Kapitel 1: Sortieren Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Das Problem Eingabe Gegeben: eine Folge A = a 1, a 2,..., a
Mehr( ) Lineare Gleichungssysteme
102 III. LINEARE ALGEBRA Aufgabe 13.37 Berechne die Eigenwerte der folgenden Matrizen: ( ) 1 1 0 1 1 2 0 3 0 0, 2 1 1 1 2 1. 1 1 0 3 Aufgabe 13.38 Überprüfe, ob die folgenden symmetrischen Matrizen positiv
MehrÜbersicht. Datenstrukturen und Algorithmen. Übersicht. Divide-and-Conquer. Vorlesung 9: Quicksort (K7)
Datenstrukturen und Algorithmen Vorlesung 9: (K7) Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://www-i2.rwth-aachen.de/i2/dsal0/ Algorithmus 8. Mai 200 Joost-Pieter
Mehr3 Elementare Umformung von linearen Gleichungssystemen und Matrizen
3 Elementare Umformung von linearen Gleichungssystemen und Matrizen Beispiel 1: Betrachte das Gleichungssystem x 1 + x 2 + x 3 = 2 2x 1 + 4x 2 + 3x 3 = 1 3x 1 x 2 + 4x 3 = 7 Wir formen das GLS so lange
Mehr5 Zwei spieltheoretische Aspekte
5 Zwei spieltheoretische Aspekte In diesem Kapitel wollen wir uns mit dem algorithmischen Problem beschäftigen, sogenannte Und-Oder-Bäume (kurz UOB) auszuwerten. Sie sind ein Spezialfall von Spielbäumen,
Mehr10 Dynamische Programmierung
137 Dynamische Programmierung Das Prinzip der Dynamischen Programmierung wird häufig bei Fragestellungen auf Worten angewendet..1 Längste gemeinsame Teilfolge Wir betrachten Worte der rt w = a 1 a 2 a
MehrGeometrische Algorithmen
Geometrische Algorithmen Thomas Röfer Motivation Scan-line-Prinzip Konvexe Hülle Distanzprobleme Voronoi-Diagramm Rückblick Manipulation von Mengen Vorrangwarteschlange Heap HeapSort swap(a, 0, 4) 1 5
MehrAm Dienstag, den 16. Dezember, ist Eulenfest. 1/48
Am Dienstag, den 16. Dezember, ist Eulenfest. 1/48 Grundbegriffe der Informatik Einheit 12: Erste Algorithmen in Graphen Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009
MehrInformatik II, SS 2014
Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 10 (3.6.2014) Binäre Suchbäume I Algorithmen und Komplexität Zusätzliche Dictionary Operationen Dictionary: Zusätzliche mögliche Operationen:
MehrKapitel 6 Elementare Sortieralgorithmen
Kapitel 6 Elementare Sortieralgorithmen Ziel: Kennenlernen elementarer Sortierverfahren und deren Effizienz Zur Erinnerung: Das Sortier-Problem Gegeben: Folge A von n Elementen a 1, a 2,..., a n ; Eine
MehrSortierte Folgen 250
Sortierte Folgen 250 Sortierte Folgen: he 1,...,e n i mit e 1 apple applee n kennzeichnende Funktion: M.locate(k):= addressof min{e 2 M : e k} Navigations Datenstruktur 2 3 5 7 11 13 17 19 00 Annahme:
MehrEinführung in die Informatik 2
Einführung in die Informatik 2 Suchen in Datenmengen Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 Sven.Kosub@uni-konstanz.de Sprechstunde: Freitag, 12:30-14:00 Uhr, o.n.v.
MehrAlgorithmen und Datenstrukturen
1 Algorithmen und Datenstrukturen Wintersemester 2014/15 3. Vorlesung Laufzeitanalyse Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I 2 Recap: Diskutieren Sie mit Ihrer NachbarIn! 1. 2. 3. Was sind
Mehr11.1 Grundlagen - Denitionen
11 Binärbäume 11.1 Grundlagen - Denitionen Denition: Ein Baum ist eine Menge, die durch eine sog. Nachfolgerrelation strukturiert ist. In einem Baum gilt: (I) (II) 1 Knoten w ohne VATER(w), das ist die
Mehrdamit hätten wir nach Ende der Schleife: "a[0 n-1] enthält nur Elemente aus a[0 n-1], aber in sortierter Reihenfolge".
Korrektheit Invariante: a[0 k-1] enthält nur Elemente aus a[0 k-1], aber in sortierter Reihenfolge Terminierung: Die Schleife endet mit k=n def insertionsort(a): for k in range( 1, len(a) ): while i >
MehrLineares Programmieren
Vorlesung Algorithmische Geometrie LEHRSTUHL FÜR ALGORITHMIK I INSTITUT FÜR THEORETISCHE INFORMATIK FAKULTÄT FÜR INFORMATIK Martin Nöllenburg 03.05.2011 Nachtrag Art Gallery Problem Lässt sich der Triangulierungs-Algorithmus
MehrBinary Decision Diagrams (Einführung)
Binary Decision Diagrams (Einführung) Binary Decision Diagrams (BDDs) sind bestimmte Graphen, die als Datenstruktur für die kompakte Darstellung von booleschen Funktionen benutzt werden. BDDs wurden von
Mehr37 Gauß-Algorithmus und lineare Gleichungssysteme
37 Gauß-Algorithmus und lineare Gleichungssysteme 37 Motivation Lineare Gleichungssysteme treten in einer Vielzahl von Anwendungen auf und müssen gelöst werden In Abschnitt 355 haben wir gesehen, dass
MehrJAVA - Suchen - Sortieren
Übungen Informatik I JAVA - Suchen - Sortieren http://www.fbi-lkt.fh-karlsruhe.de/lab/info01/tutorial Übungen Informatik 1 Folie 1 Inhalt Suchen/Sortieren binary search mergesort bubblesort Übungen Informatik
MehrSortieren durch Einfügen. Prof. Dr. W. Kowalk Sortieren durch Einfügen 1
Sortieren durch Einfügen Prof. Dr. W. Kowalk Sortieren durch Einfügen 1 Schon wieder aufräumen Schon wieder Aufräumen, dabei habe ich doch erst neulich man findet alles schneller wieder Bücher auf Regal
MehrEntwurf von Algorithmen - Kontrollstrukturen
Entwurf von Algorithmen - Kontrollstrukturen Eine wichtige Phase in der Entwicklung von Computerprogrammen ist der Entwurf von Algorithmen. Dieser Arbeitsschritt vor dem Schreiben des Programmes in einer
MehrWS 2009/10. Diskrete Strukturen
WS 2009/10 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0910
MehrSS11 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
MehrRandomisierte Algorithmen
Randomisierte Algorithmen Randomisierte Algorithmen 5. Zwei spieltheoretische Aspekte Thomas Worsch Fakultät für Informatik Karlsruher Institut für Technologie Wintersemester 2015/2016 1 / 36 Überblick
Mehr5.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!
MehrEffizienz von Algorithmen
Effizienz von Algorithmen Eine Einführung Michael Klauser LMU 30. Oktober 2012 Michael Klauser (LMU) Effizienz von Algorithmen 30. Oktober 2012 1 / 39 Ein einführendes Beispiel Wie würdet ihr einen Stapel
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Prof. Dr. Ralf Möller Universität zu Lübeck Institut für Informationssysteme Tanya Braun (Übungen) sowie viele Tutoren Teilnehmerkreis und Voraussetzungen Studiengänge Bachelor
MehrOptimierung. Algorithmik III Algorithmen und Modelle für kontinuierliche Datenstrukturen. Vorgehen: Dynamische Programmierung
Optimierung Algorithmik III Algorithmen und Modelle für kontinuierliche Datenstrukturen Optimierung I Dynamisches Programmieren Günther Greiner Lehrstuhl für Graphische Datenverarbeitung Sommersemester
MehrKomplexität von Algorithmen
Komplexität von Algorithmen Prof. Dr. Christian Böhm WS 07/08 in Zusammenarbeit mit Gefei Zhang http://www.dbs.informatik.uni-muenchen.de/lehre/nfinfosw Ressourcenbedarf - Größenordnungen Prozesse verbrauchen
MehrProgrammiertechnik II
Analyse von Algorithmen Algorithmenentwurf Algorithmen sind oft Teil einer größeren Anwendung operieren auf Daten der Anwendung, sollen aber unabhängig von konkreten Typen sein Darstellung der Algorithmen
MehrHEUTE. Datenstrukturen im Computer. Datenstrukturen. Rekursion. Feedback Evaluation. abstrakte Datenstrukturen
9.2.5 HUT 9.2.5 3 atenstrukturen im omputer atenstrukturen ie beiden fundamentalen atenstrukturen in der Praxis sind rray und Liste Rekursion Feedback valuation rray Zugriff: schnell Umordnung: langsam
MehrTechnische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen
Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen 186.172 Algorithmen und Datenstrukturen 1 VL 4.0 Übungsblatt 1 für die Übung
MehrVorlesung Datenstrukturen
Vorlesung Datenstrukturen Binärbaum Suchbaum Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 356 Datenstruktur Binärbaum Strukturrepräsentation des mathematischen Konzepts Binärbaum
MehrAlgorithmen mit konstantem Platzbedarf: Die Klasse REG
Algorithmen mit konstantem Platzbedarf: Die Klasse REG Sommerakademie Rot an der Rot AG 1 Wieviel Platz brauchen Algorithmen wirklich? Daniel Alm Institut für Numerische Simulation Universität Bonn August
MehrLU-Zerlegung. Zusätze zum Gelben Rechenbuch. Peter Furlan. Verlag Martina Furlan. Inhaltsverzeichnis. 1 Definitionen.
Zusätze zum Gelben Rechenbuch LU-Zerlegung Peter Furlan Verlag Martina Furlan Inhaltsverzeichnis Definitionen 2 (Allgemeine) LU-Zerlegung 2 3 Vereinfachte LU-Zerlegung 3 4 Lösung eines linearen Gleichungssystems
MehrAlgorithmische Bioinformatik
Algorithmische Bioinformatik Effiziente Berechnung des Editabstands Dynamische Programmierung Ulf Leser Wissensmanagement in der Bioinformatik Inhalt dieser Vorlesung Rekursive Definition des Editabstands
Mehr4. Kreis- und Wegeprobleme Abstände in Graphen
4. Kreis- und Wegeprobleme Abstände in Graphen Abstände in Graphen Definition 4.4. Es sei G = (V,E) ein Graph. Der Abstand d(v,w) zweier Knoten v,w V ist die minimale Länge eines Weges von v nach w. Falls
MehrLL(k)-Analyse. (y) folgt α = β. (x) = start k. (=l> ist ein Linksableitungsschritt)
LL(k)-Analyse Eine KFG G = (N,T,P,S) heisst LL(k)-Grammatik, wenn für alle w,x,y T*, α,β,σ (N U T)* und A N mit 1. S =l>* waσ =l> wασ =l>* wx, 2. S =l>* waσ = > wβσ =l>* wy, 3. start k (x) = start k (y)
Mehr1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit
Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 06/07 ITI Wagner Musterlösung Problem : Average-case-Laufzeit vs Worst-case-Laufzeit pt (a) Folgender Algorithmus löst das Problem der
MehrLineare Algebra für D-ITET, D-MATL, RW. Beispiellösung für Serie 10. Aufgabe ETH Zürich D-MATH. Herbstsemester Dr. V. Gradinaru D.
Dr. V. Gradinaru D. Devaud Herbstsemester 5 Lineare Algebra für D-ITET, D-MATL, RW ETH Zürich D-MATH Beispiellösung für Serie Aufgabe..a Bezüglich des euklidischen Skalarprodukts in R ist die Orthogonalprojektion
MehrSequenzen-Alignierung in der Bioinformatik
Sequenzen-Alignierung in der Bioinformatik VO Algorithm Engineering Professor Dr. Petra Mutzel Lehrstuhl für Algorithm Engineering, LS 2. VO 2.0.2006 Literatur für diese VO Volker Heun: Skriptum zur Vorlesung
MehrGI Vektoren
Vektoren Problem: Beispiel: viele Variablen vom gleichen Typ abspeichern Text ( = viele char-variablen), Ergebnisse einer Meßreihe ( = viele int-variablen) hierfür: Vektoren ( = Arrays = Feld ) = Ansammlung
MehrAlgorithmen und Datenstrukturen Suchbaum
Algorithmen und Datenstrukturen Suchbaum Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Motivation Datenstruktur zur Repräsentation dynamischer Mengen
Mehr