Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "WS 2006-07 Algorithmentheorie 08 – Dynamische Programmierung (3) Konstruktion optimaler Suchbäume Prof. Dr. Th. Ottmann."—  Präsentation transkript:

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

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

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

4 4WS 2006-07 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, ) 4 1 0 3 0 3 0 3 10 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 3 + 2 (4 + 10) 3 1 40 3 310 00

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

6 6WS 2006-07 Konstruktion optimaler Suchbäume k1k1 k2k2 k2k2 k1k1 4 2 2 41 35 5 13 P(T 1 ) = 21 P(T 2 ) = 27

7 7WS 2006-07 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.

8 8WS 2006-07 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

9 9WS 2006-07 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+1 +... + a j + b j, P(i, j) die gewichtete Pfadlänge von T(i, j).

10 10WS 2006-07 Konstruktion optimaler Suchbäume klkl T(i, j) = T(i, l - 1)T(l, j)................................................ ( k i, k i + 1 ) k i + 1..... k l – 1 (k l –1, k l ) ( k l, k l + 1 ) k l + 1..... 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:

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

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

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

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

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

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


Herunterladen ppt "WS 2006-07 Algorithmentheorie 08 – Dynamische Programmierung (3) Konstruktion optimaler Suchbäume Prof. Dr. Th. Ottmann."

Ähnliche Präsentationen


Google-Anzeigen