WS03/041 Dynamische Programmierung (3) Konstruktion optimaler Suchbäume Prof. Dr. S. Albers Prof. Dr. Th. Ottmann.

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmentheorie 08 – Dynamische Programmierung (1)
Advertisements

Algorithmentheorie 08 – Dynamische Programmierung (4) Editierdistanz Approximative Zeichenkettensuche Sequence Alignment Prof. Dr. Th. Ottmann WS
Eine dynamische Menge, die diese Operationen unterstützt,
Vorlesung Programmieren II
Prof. Dr. S. Albers Prof.Dr.Th Ottmann
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (26-Graphenalgorithmen: Wiederholung und Übung) Prof. Th. Ottmann.
WS 03/041 Algorithmentheorie 01 - Einleitung Prof. Dr. S. Albers Prof. Dr. Th. Ottmann.
Greedy-Algorithmus Greedy-Algorithmen sind mit dem dynamischen Programmieren verwandt, jedoch einfacher. Die Grundsituation ist dieselbe: Es geht um ein.
Konstruktion von Suffix Bäumen
Suche in Texten: Suffix-Bäume
Algorithmentheorie 6 – Greedy-Verfahren
WS Algorithmentheorie 13 - Kürzeste (billigste) Wege Prof. Dr. Th. Ottmann.
Prof.Dr.S. Albers Prof. Dr. Th. Ottmann
WS Algorithmentheorie 02 - Polynomprodukt und Fast Fourier Transformation Prof. Dr. Th. Ottmann.
WS Algorithmentheorie 05 - Treaps Prof. Dr. Th. Ottmann.
Dynamische Programmierung (2) Matrixkettenprodukt
Algorithmentheorie 02 – Polynomprodukt und Fast Fourier Transformation
Prof. Dr. S. Albers Prof. Dr. Th. Ottmann
Konstruktion von Suffix Bäumen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (04 – Entwurfsverfahren) Prof. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 – Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. Th. Ottmann.
WS Algorithmentheorie 01 – Divide and Conquer (Segmentschnitt) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Analyse natürlicher Bäume) Prof. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 – Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (05 – Reguläre Ausdrücke) Prof. Dr. Th. Ottmann.
WS Prof. Dr. Th. Ottmann Algorithmentheorie 09 - Suche in Texten Suffix –Tree –Konstruktion Ukkonen Algorithmus.
Vorlesung Informatik 3 Einführung in die Theoretische Informatik (06 – Reduktion endlicher Automaten) Prof. Dr. Th. Ottmann.
WS Algorithmentheorie 08 – Dynamische Programmierung (2) Matrixkettenprodukt Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
WS Algorithmentheorie 08 – Dynamische Programmierung (3) Konstruktion optimaler Suchbäume Prof. Dr. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 4 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (17 – Bäume: Grundlagen und natürliche Suchbäume) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (18 - Bäume: Durchlaufreihenfolgen, Analyse nat. Bäume) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (11-1 –Selbstanordnende lineare Listen) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27-Selbstanordnende lineare Listen) Prof. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 – Kürzeste Wege) T. Lauer.
Algorithmen und Datenstrukturen
WS 06/07 Algorithmentheorie 01 - Einleitung Prof. Dr. Th. Ottmann Tobias Lauer.
Algorithmentheorie 12 – Spannende Bäume minimalen Gewichts
Union-Find-Strukturen
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 – Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. Th. Ottmann.
Algorithmen und Datenstrukturen
WS Prof. Dr. Th. Ottmann Algorithmentheorie 09 - Suche in Texten Suffix - Bäume.
Geometrisches Divide and Conquer
7.1 Externes Suchen Bisherige Algorithmen: geeignet, wenn alle Daten im Hauptspeicher. Große Datenmengen: oft auf externen Speichermedien, z.B. Festplatte.
Chromatische Zahl.
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Dynamische Programmierung mit Anwendung auf Sequence Alignment Problem
Mehrkriterielle Optimierung mit Metaheuristiken
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Einführung in die Programmierung Wintersemester 2013/14 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung
Das Traveling Salesman Problem (TSP)
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Datenstrukturen für den Algorithmus von.
Binärer Baum, Binärer Suchbaum I
G.Heyer Algorithmen und Datenstrukturen 2 1 Dynamische Programmierung Das Prinzip „Teile und Herrsche“ diente als Grundlage für die Entwicklung vieler.
Binärbäume.
Fallunterscheidung und Iteration Programmierung I Prof. Dr. Michael Löwe.
Programmiersprachen II Vorbesprechung Klausur Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Programmiersprachen II Fortsetzung Datenstrukturen Balancierte Bäume 3 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Programmiersprachen II Fortsetzung Datenstrukturen Balancierte Bäume 1 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Punkt-in-Landkarte II
Wiederholung TexPoint fonts used in EMF.
Wiederholung TexPoint fonts used in EMF.
Allgemeine Iteration und Rekursion
 Präsentation transkript:

WS03/041 Dynamische Programmierung (3) Konstruktion optimaler Suchbäume Prof. Dr. S. Albers Prof. Dr. Th. Ottmann

2WS03/04 Technik der dynamischen Programmierung Rekursiver Ansatz: Lösen eines Problems durch Lösen mehrerer kleinerer Teilprobleme, aus denen sich die Lösung für das Ausgangsproblem zusammensetzt. Phänomen: Mehrfachberechnungen von Lösungen Methode: Speichern einmal berechneter Lösungen in einer Tabelle für spätere Zugriffe.

3WS03/04 Das Optimalitätsprinzip Typische Anwendung für dynamisches Programmieren: Optimierungsprobleme Eine optimale Lösung für das Ausgangsproblem setzt sich aus optimalen Lösungen für kleinere Probleme zusammen.

4WS03/04 Konstruktion optimaler Suchbäume (- ,k 1 ) k 1 (k 1,k 2 ) k 2 (k 2,k 3 ) k 3 (k 3,k 4 ) k 4 (k 4,  ) k2k2 k4k4 k1k1 (- , k 1 ) (k 1, k 2 )k3k3 (k 2, k 3 )(k 3, k 4 ) (k 4,  ) Gewichtete Pfadlänge: 3  1 +2  (1 + 3) + 3   (4 + 10)

5WS03/04 Konstruktion optimaler Suchbäume Gegeben: Schlüsselmenge S S = {k 1,....k n } -  = k 0 < k 1 ...  k n < k n+1 =  a i : (absolute) Häufigkeit, mit der nach k i gesucht wird b j : (absolute) Häufigkeit, mit der nach x  {k j, k j+1 } gesucht wird Gewichtete Pfadlänge P(T) eines Suchbaumes T für S: Gesucht: Ein Suchbaum für S mit minimaler Pfadlänge P

6WS03/04 Konstruktion optimaler Suchbäume k1k1 k2k2 k2 k1k P(T 1 ) = 21 P(T 2 ) = 27

7WS03/04 Konstruktion optimaler Suchbäume kiki k j, k j + 1 bjbj aiai Ein Suchbaum mit minimal möglicher gewichteter Pfadlänge ist ein optimaler Suchbaum

8WS03/04 Konstruktion optimaler Suchbäume P(T) = P(T l ) + W(T l ) + P(T r ) + W(T r ) + a Wurzel = P(T l ) + P(T r ) + W(T) mit W(T) := Gesamtgewicht der Knoten von T k TlTl TrTr akak T Ist T Baum mit minimaler gewichteter Pfadlänge, so auch T l und T r

9WS03/04 Konstruktion optimaler Suchbäume Sei T(i, j) optimaler Suchbaum für (k i, k i+1 ) k i+1... k j (k j, k j+1 ), W(i, j) das Gewicht von T(i, j), also W(i, j) = b i + a i a j + b j, P(i, j) die gewichtete Pfadlänge von T(i, j).

10WS03/04 Konstruktion optimaler Suchbäume klkl T(i, j) = T(i, l - 1)T(l, j) ( k i, k i + 1 ) k i k l – 1 (k l –1, k l ) ( k l, k l + 1 ) k l k j (k j, k j + 1 ) b i a i + 1 a l – 1 b l – 1 a l b l a l + 1 a j b j Zugriffs- häufigkeit:

11WS03/04 Konstruktion optimaler Suchbäume W(i, i) = b i, für 0  i  n W(i, j) = W(i, j – 1) + a j + b j, für 0  i < j  n P(i, i) = 0, für 0  i  n P(i, j) = W(i, j) + min { P(i, l –1 ) + P(l, j) }, für 0  i < j  n i < l  j r(i, j) = diejenige Zahl, für die das Minimum angenommen wird

12WS03/04 Konstruktion optimaler Suchbäume Anfangsfälle Fall 1: h = j – i = 0 T(i, i) = (k i, k i +1 ) W(i, i) = b i P(i, i) = 0, r(i, i) undefiniert

13WS03/04 Konstruktion optimaler Suchbäume Fall 2: h = j – i = 1 T(i, i+1) W(i,i +1) = b i + a i+1 + b i+1 = W(i, i) + a i+1 + W(i+1, i+1) P(i, i+1) = W(i, i + 1) r(i, i +1) = i + 1 k i+1 k i, k i+1 k i+1, k i+2 a i+1 b i b i+1

14WS03/04 Berechnung der optimalen Pfadlänge mit dynamischer Programmierung Fall 3: h = j - i > 1 for h = 2 to n do for i = 0 to (n – h) do { j = i + h; finde das (größte) l, i < l  j, für das P(i, l – 1) + P(l, j) minimal wird; P(i, j) = P(i, l –1) + P(l, j) + W(i, j); r(i, j) = l; }

15WS03/04 Konstruktion optimaler Suchbäume Definiere: Dann ist  Die gesuchte Lösung P(0,n) kann in Zeit O(n 3 ) und Platz O(n 2 ) berechnet werden.

16WS03/04 Konstruktion optimaler Suchbäume Satz Ein optimaler Suchbaum für n Schlüssel und n + 1 Intervalle mit gegebenen Zugriffshäufigkeiten kann in Zeit O(n 3 ) und Platz O(n 2 ) konstruiert werden.