2.5.1 Binäre Suchbäume 2.5.2 Optimale Suchbäume 2.5.3

Werbung
2.5 Bäume
2.5.1
2.5.2
2.5.3
2.5.4
2.5.5
1
Binäre Suchbäume
Optimale Suchbäume
Balancierte Bäume
Skip-Listen
Union-Find-Strukturen
Datenstrukturen und Algorithmen
Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Optimale Suchbäume
•  In manchen Anwendungen ist die
Zugriffswahrscheinlichkeit auf die
Elemente a priori bekannt.
•  Versuche die Elemente, auf die am
häufigsten zugegriffen wird, in der
Nähe der Wurzel zu speichern.
•  Beispiel: Worthäufigkeiten,
Übersetzungstabelle
2
Datenstrukturen und Algorithmen
Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Optimale Suchbäume
1
5
2
3
4
3
3
1
6
4
2
8
7
Datenstrukturen und Algorithmen
Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
9
Optimale Suchbäume
5
3
6
1
4
8
2
(-∞,1)
(1,2)
7
(2,3)
(3,4)
(4,5)
(5,6)
(6,7)
9
(7,8)
Explizite Blätter für negative Suchanfragen
4
Datenstrukturen und Algorithmen
Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
(8,9) (9,∞)
Optimale Suchbäume
•  Seien N1...Nn die inneren Knoten des
Suchbaums
•  Dann gibt es genau n+1 Blätter I0...In
•  Es sei pi die Wahrscheinlichkeit, dass auf
Knoten Ni zugegriffen wird
•  Es sei qi die Wahrscheinlichkeit, dass auf
Knoten Ii zugegriffen wird, d.h. nach
einem Schlüssel X mit
Ni.X < X < Ni+1.X gesucht wird
5
Datenstrukturen und Algorithmen
Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Optimale Suchbäume
5
3
6
1
4
8
2
(-∞,1)
6
(1,2)
7
(2,3)
(3,4)
(4,5)
(5,6)
(6,7)
9
(7,8)
Datenstrukturen und Algorithmen
Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
(8,9) (9,∞)
Aufwand
7
Datenstrukturen und Algorithmen
Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Aufwand
•  Betrachte einen Teilbaum mit Wurzel Nk des
optimalen Suchbaums
•  Dieser Baum enthält eine Teilmenge Ni...Nj
der Knoten und Ii-1...Ij der Blatt-Intervalle
•  Dieser Teilbaum ist ebenfalls ein optimaler
Suchbaum (cut & paste)
8
Datenstrukturen und Algorithmen
Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Aufwand
•  Die Wahrscheinlichkeit, dass auf den
Teilbaum mit Wurzel Nk zugegriffen
wird ist
•  Seien C(i,j) die Kosten, die durch den
Teilbaum Ni...Nj verursacht werden
9
Datenstrukturen und Algorithmen
Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Aufwand
•  Der Teilbaum mit Wurzel Nk besitzt
zwei weitere Teilbäume mit den
Knoten
–  Ni...Nk-1 und Ii-1...Ik-1
–  Nk+1...Nj und Ik...Ij
die jeder für sich wieder optimal sind
•  Jeder Pfad im Teilbaum Ni...Nk-1 wird
durch Nk um einen Schritt verlängert
10
Datenstrukturen und Algorithmen
Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Rekursive Optimierung
11
Datenstrukturen und Algorithmen
Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Aufwand
•  Für den Teilbaum Ni...Nj soll der
optimale Wurzelknoten bestimmt
werden...
•  Dynamische Programmierung!
12
Datenstrukturen und Algorithmen
Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Aufwand
•  Speichere Zwischenergebnisse in
Tabellen
–  C[i,j] : Kosten des optimalen Suchbaums
für die Knoten Ni...Nj und Ii-1...Ij
–  W[i,j] : Zugriffswahrscheinlichkeit für den
entsprechenden Teilbaum
–  R[i,j] : Wurzelknoten des optimalen
Suchbaums
13
Datenstrukturen und Algorithmen
Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Aufwand
OptTree(P[1..n], Q[0..n])
for i ← 1 to n+1 do
C[i, i−1] ← Q[i−1]
W[i, i−1] ← Q[i−1]
for l ← 1 to n do
for i ← 1 to n−l+1 do
j ← i+l−1
W[i, j] ← W[i,j−1] + P[j] + Q[j]
C[i, j] ← min{ C[i,k−1] + C[k+1,j] } + W[i,j]
R[i, j] ← argmin{ C[i,k−1] + C[k+1,j] }
14
Datenstrukturen und Algorithmen
Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Aufwand
•  Der optimale Suchbaum muss nicht
immer minimale Höhe besitzen.
•  Das häufigst gefragte Element muss
nicht der Wurzelknoten sein.
•  Berechnungsaufwand mit DP: O(n3)
•  Lohnt nur für viele Anfragen
•  Wahrscheinlichkeiten können aus der
Zugriffsstatistik extrapoliert werden.
15
Datenstrukturen und Algorithmen
Prof. Dr. Leif Kobbelt, Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Herunterladen