Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "WS03/041 Dynamische Programmierung (3) Konstruktion optimaler Suchbäume Prof. Dr. S. Albers Prof. Dr. Th. Ottmann."—  Präsentation transkript:

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

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

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

4 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,  ) 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 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

6 6WS03/04 Konstruktion optimaler Suchbäume k1k1 k2k2 k2 k1k1 4 2 2 41 35 5 13 P(T 1 ) = 21 P(T 2 ) = 27

7 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

8 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

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

10 10WS03/04 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 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

12 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

13 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

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

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

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


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

Ähnliche Präsentationen


Google-Anzeigen