WS 2006-07 Algorithmentheorie 08 – Dynamische Programmierung (3) Konstruktion optimaler Suchbäume 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
Randomisierte Algorithmen Präfix Suche und Konsistentes Hashing
Eine dynamische Menge, die diese Operationen unterstützt,
Vorlesung Programmieren II
GIN 2 – Vorlesung zu Hashing, 31. Mai 2005 Prof. Dr. W. Conen FH Gelsenkirchen SS 2005.
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
WS 03/041 Algorithmentheorie 01 - Einleitung Prof. Dr. S. Albers Prof. Dr. Th. Ottmann.
WS Prof. Dr. Th. Ottmann Algorithmentheorie 09 - Suche in Texten KMP, BM.
G.Heyer Algorithmen und Datenstrukturen II 1 Algorithmen und Datenstrukturen II Wintersemester 2000 / 2001 Prof. Dr. Gerhard Heyer Institut für Informatik.
Problemlösekompetenz nachhaltig entwickeln - aber wie?
Algorithmentheorie 04 –Hashing
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.
1WS 06/07 Organisatorisches 1.Vorlesung am Montag, : 9-11 Uhr in Gebäude 106, Raum Podcasts: Probleme mit der Videoqualität sind behoben.
WS Algorithmentheorie 05 - Treaps Prof. Dr. Th. Ottmann.
Dynamische Programmierung (2) Matrixkettenprodukt
Algorithmentheorie 02 – Polynomprodukt und Fast Fourier Transformation
Prinzipien des Algorithmenentwurfs Backtracking Prof. Dr. Th. Ottmann
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.
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.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (11-3 –Selbstanordnende lineare Listen) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (11-1 –Selbstanordnende lineare Listen) Prof. Th. Ottmann.
Algorithmentheorie 03 – Randomisierung (Closest Pair)
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27-Selbstanordnende lineare Listen) Prof. Th. Ottmann.
Algorithmen und Datenstrukturen
WS 06/07 Algorithmentheorie 01 - Einleitung Prof. Dr. Th. Ottmann Tobias Lauer.
Algorithmentheorie 12 – Spannende Bäume minimalen Gewichts
Algorithmentheorie 7 – Bin Packing
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
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Didaktik der Analysis, Linearen Algebra und Analytischen Geometrie
Einfügen am Ende der Liste Vorher: Nachher:. Einfügen am Ende der Liste //Klasse Knoten public Knoten hintenEinfuegen(Datenelement dneu) { nachfolger.
Die Methode public Knoten einfuegenVor (Datenelement dNeu, Datenelement dVergleich) public Knoten einfuegenVor(Datenelement dNeu, Datenelement dVergleich){
Gaußscher Algorithmus
Einführung in die Programmierung
Chromatische Zahl.
Einführung in die Programmierung
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 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Die Methode public Datenelement getEnde (Datenelement d) Ziel: //Klasse Knoten public Datenelement getEnde(Datenelement d){ return nachfolger.getEnde(inhalt);
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Grundlegende Sortieralgorithmen
Das Traveling Salesman Problem (TSP)
WS03/041 Dynamische Programmierung (3) Konstruktion optimaler Suchbäume Prof. Dr. S. Albers Prof. Dr. Th. Ottmann.
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.
 Präsentation transkript:

WS Algorithmentheorie 08 – Dynamische Programmierung (3) Konstruktion optimaler Suchbäume Prof. Dr. Th. Ottmann

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

3WS 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.

4WS 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: (1 + 3) (4 + 10)

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

6WS Konstruktion optimaler Suchbäume k1k1 k2k2 k2k2 k1k P(T 1 ) = 21 P(T 2 ) = 27

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

8WS Konstruktion optimaler Suchbäume P(T) = P(T l ) + G(T l ) + P(T r ) + G(T r ) + a Wurzel = P(T l ) + P(T r ) + G(T) mit G(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

9WS 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).

10WS 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:

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

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

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

14WS 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; }

15WS 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.

16WS 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.