Vortrag Proseminar Datenkompression:
Konstruktion binärer Suchbäume:
Binäre Suchbäume:
–
–
–
–
–
–
Suche in linear geordneter Menge X = x 1,... , x n ∪ y 0,..., y n
Gesucht ist ein Wort W
Interpretation des Suchbereichs:
x i W stimmt mit W i überein
–
y i liegt Alphabetisch zwischen W i und W i 1
–
y n W liegt nach W n
–
y 1 W liegt vor W 1
–
für das Problem wird Baum konstruiert
x sind innere knoten und y Blätter des Baums
ist x i im linken und x j im rechten Unterbaum eines
Baumes mit der Wurzel x k dann gilt x i x k x j
Abbildung 1: Beispiel Suchbaum
-Definition:
–
–
–
Existiert Pfad von x i nach x j über linken Baum so ist i>j
die Kosten des Punktes z , L(z) entspricht der # Knoten von der
Wurzel von B bis zu z
Für Gewichtung p sind die Kosten C B= ∑ p z L z z∈ X
-Definition:
–
–
–
–
Sei X ij= x i 1 ,..., x j ∪ y i ,..., y j eine Einschränkung des
Suchbereichs
W ij = p X ij
C ij sind die Kosten des optimalen Suchbaums B zu X ij und p
W ij sei die Wurzel des oder der Index der Wurzel des Baumes
Konstruktion von optimalen Suchbäumen:
Bellmansche Optimalitätsgleichung:
C i , j =W i , j C i , R
i, j
−1
C R
i, j
, j
= min W i , j C i , k −1C k , j [ i k ≤ j]
wobei C ii=0
Algorithmus von Bellman:
–
–
–
–
Da X i , i 1= x i 1 ∪ y i , y i 1 folgt das Ri , i 1=i1 und C i , i 1=W i , i 1
Berechnung Ri , j und C i , j mit i− jl
Berechnung Ri , i l und C i , i l 0in−l
R i , i l ist einer der werte die C i , k −1C k , i l minieren und
C i , i l =W i , i l C i , R −1C R , i l
– Errechnung von W ij für konstantes i und wachsendes j
– Errechnung aller C i , k −1C k , i l (l add.)
i,il
–
–
–
i,il
2
O n
Ermittlung des Minimums dieser Werte (l-1 Vergl.)
damit erhält man Wurzel (k)
insgesamt O n3
Algorithmus von Knuth
Durch Einschränkung auf Bereich Ri , j −1≤RijRi 1, j benötigt man nur
O n 2 Rechenschritte
noch
Effiziente Konstruktion guter binärer Suchläufe:
Min-Max-Bäume:
–
–
–
–
–
Wurzel wird so gewählt das größerer Teilbaum möglichst
klein ist
wenn x k die Wurzel ist so sind W i , k −1 und W kj die
Wurzeln der Teilbäume
M k =max W i , k −1 , W kj ist das Gewicht des schweren
Teilbaums
x_r ist min-max-Wurzel wenn
M r i , j=minM i 1 i , j ,..., M j i , j
ein Suchbaum heißt min-max-Baum wenn beide
Teilbäume min-max-Wurzeln haben
Algorithmus von Mehlhorn
– Teil des Suchbereichs für den wir Wurzel eines Teilbaums
konstruieren wird durch die Parameter (i,j,w,l) beschrieben mit 3
Bedingungen
i) 0i jn
ii) W =v2−l 1 und v ∈0,1,...,2 l −1−1
iii) wqiq jw2l −1 (l # innerer Pkt. Auf Pfad von
Wurzel des Gesamtbaums bis Wurzel des Tailbaums; v gibt
an wie weit rechts der Teilbaum im Gesamtbaum liegt)
– Zu beginn sind Bedingungen erfüllt da i=0, j=n, l=1 und w=0
– allgemein soll Wurzel x k
die erfüllen: qk −1w2−l qk
– Fall 1: i+1=j dann konstruiert der Algorithmus den Baum: Wurzel x_j
mit Endpunkten: y j −1 und y j
−l
– Fall 2: i1≠ j und qiw2
x_{i+1} wird Wurzel des Suchbaums,
linker Teilbaum besteht aus y i und rechter wird mit
−l
i1, j , w2 , l1 konstruiert
x j ist Wurzel und rechter Teilbaum
– Fall 3:
i1≠ j und qiw2−l
y j und linker wird mit (i,j-1,w,l+1) erstellt
−l
– Fall 4: i+1<>j und qiw2 q j Wurzel x k wird so gewählt,
dass qk −1w2−l qk und ik j
x k =i1 besteht linker Teilbaum aus y i sonst
– wenn
erstellen mit (i,k-1,w,l+1) erstellt
y j sonst
– wenn x k = j besteht rechter Teilbaum aus
−l
erstellen mit k , j , w2 , l1 erstellt
–
Für die Kosten des konstruierten Baumes gilt:
C BH p1¿0in p x i
Verfahren von Fredman:
–
–
Berechnung q(1),...,q(n) (O(n) Add. Und Div.)
Errechnung x k für Fall 4:
−l
– k so bestimmen das qk −1w2 qk
– feststellen ob man k=l wählen kann oder k>l bzw.
k<l
– Vergleich wir q(l-1) und q(l) mit ½
–
1
2
wenn ql−1 ql dann k=l
falls q(l-1)>1/2 (q(l))<1/2 muss k<l (k>l) gewählt
werden
– Test ob K=[1/2(n+1)] wählen kann wenn ja dann
müssen die Teilbäume mit k-1 und n-k gewählt
werden
– sonst ist k in menge (1,...,[1/2(n+1)]) oder
([½(n+1]+1,...,n) zu finden
– weiter für Menge 1:
– prüfen ob k 1 , k 2 , k 4 , k 8 ,... wählen
kann bei erster postiver Antwort wird abgebrochen
h−1
– man erhält daraus menge 2
1,...,2 h
– indem man menge fortlaufend halbiert erhält man k
in h-1 fragen
der Algorithmus von Mehlhorn kann mittels des Verfahrens
von Fredman in O(n) schritten durchgeführt werden
–
–
2.Untere Schranken für die Kosten von Suchbäume:
Satz1:
–
–
–
–
für B gilt:
C(p) sind die Kosten eines optimalen Suchbaums zur a-prioriVerteilung p au dem Suchbereich X
Ergebnisfolgen e y 0 , e x 1 , e y 1 ,..., e x n , e y n dieser Suchbäume
bilden Präfixcodes auf Alphabet (0,1,2)
siehe Noiseless-Coding-Theorem: erwartete Codewortlänge
Da Kosten gleich E(c) sind C plog3−1 H p log 3−1≈0.63
L(X_k) und L(y_m) sind die Kosten für x_k und y_m
i)
∑ 2− L x 1
m
0≤m≤n
ii)
1
∑ 2− L x 2log n1
k
dies ist mit der Ungleichung von Kraft beweisbar
0≤k ≤n
Abschätzen von C(p) – H(p) mit obigen Formeln:
Sei p x := ∑ p x k und p y:= ∑ p y m und B optimaler
Suchbaum.
–
C p−H p= ∑ p x k L x k log p x k ∑ p x m L x m log p x m
= −∑ p x k log
–
− L xm
Für x ∈ℝ ist ln x ≤ x −1 und damit log x ≤ x −1 log e . Damit
abschätzen des 2. Summanden:
−∑ p x m log
–
− L xk
2
2
− ∑ p x m log
P xk
P x m
2− L x
≥−log e ∑ 2− L y − p y m ≥−log e1− p y
P x m
m
m
Nun zum Abschätzen des ersten Summanden:
−∑ p x k log
− L xk
2
=−∑ p x k log
P xk
−log e−∑
2− L x
k
− L xk
1
2
− ∑ p x k log logn1
1
2
P x k logn1
2
− p x k − p x log logn1−1
1
logn1
2
≥ −log e1− p x − p x log logn1−1
≥
–
Damit ergibt sich:
H p−H p≥−log e1− p y1− p x − p x log logn1−1
= −log e− p x log logn1−1
Daraus folgt der nächste Satz.
Satz 2:
Für alle a-priori-Verteilungen p ist
C p≥H p−log e− p x log log n1−1
Diese Schranke ist in diesen Fällen ungefähr H p – p x log H p und damit viel
besser als die Schranke aus Satz 1. Für Verteilungen mit kleiner Entropie liefert
Satz 2 jedoch keine gute untere Schranke.
Für jeden Knoten x k betrachten wir nun den Baum b, der aus x_k und dessen
Nachfolgern besteht. b enthält dabei die Knoten x i 1 ,..., x j , y i ,..., y j .
Daraus folgt pb=W ij . D. h. pb ist Wahrscheinlichkeit, dass der gesuchte
Knoten in b liegt und die Wahrscheinlichkeit das wir den Test t k durchführen.
X k ist die Zufallsvariable die wenn sie 1 ist angibt das der Test ausgeführt wird
bzw. wenn sie 0 ist das er nicht ausgeführt wird.
Daraus folgt: E X k =P X k =1= pb¿
T(B) ist Menge aller Teilbäume von B.
∑
1≤ k ≤ n
Xk
Ist die Anzahl der benötigten Tests.
X k = ∑ E X k = ∑ pb
Damit gilt: C p=C B=E 1≤∑
k ≤n
1≤ k ≤ n
b∈T B
Die Wahrscheinlichkeit des Objektes
z∈ X , wenn z in b liegt, wird mit
pb z=
p z
pb
bezeichnet, Bei einer Suche in die x k Wurzel des Teilbaumes b erreichen so ist die
Wahrscheinlichkeit das x k das gesuchte Objekt ist pb x k .
Weiterhin lassen sich auch die Wahrscheinlickeiten, ob das Objekt im linken l b oder
im rechten r b Teilbaum von b liegt, herleiten:
pl b
pb
pr b
pb
So ist die Ungewissheit über den Ausgang des Tests t k :
H b :=H
P x k pl b P r b
,
,
pb pb
pb
Daraus lässt sich folgendes Lemma ableiten:
H p=
∑
b∈T B
pb H b
Durch sorgfältigeres Abschätzen von H b lässt sich eine e wesentlich bessere unter Schranke für
die Kosten binärer Suchbäume ableite. Dazu beweisen wir zunächst dieses Lemma:
–
Für alle Wahrscheinlichkeitsverteilungen
P= p1, p2, p 3
und alle reellen Zahlen a ist .
−a
H p≤ap1log 22
Aus der Konkavität der Entropiefunktion ergibt sich:
1
,1
F p1 :=H p1 , 1− p1 1− p1 ≥H P 1 , p2 , p3
2
2
Jede Tangente von F liegt oberhalb von F und damit:
F ' p1 =log
1−P 1
P1
−1 damit gilt auch
F ' 2a 11−1 =a .
F 2 a 11−1 =a2 a 11−1log22−a ist, ergibt sich die Tangente
−a
G p1 :=ap1log22 die F im Punkt 2 a 11−1 , F 2 a 11−1 berührt.
Da
Daraus folgt
H p1, p 2, p 3 ≤F p1 ≤G p1 =ap1log22−a | a∈ℝ .
wzbw.
x k nun die Wurzel von
p x k
log22−a ist.
H b≤a
pb
Wenn
b∈T B
ist, so folgt aus dem Lemma, dass
Weiterhin lässt sich ableiten:
H p=
∑
pb≤
b∈T B
∑
1≤ k ≤ n
ap x k
∑
b∈T B
−a
−a
pb log22 =ap x C p log22 | a∈ℝ
Damit ist der Folgende Satz bewiesen:
Satz 3: Für alle a-priori-Verteilungen p gilt
C p≥sup[H p−ap x log−1 22−a | a∈ℝ]
Diese untere Schranke ist noch zu kompliziert. Wenn man die Funktion
−1
−a
f a:=H p−ap x log 22 untersucht lässt sich über das Maximum am Punkt
H p
c:=log
lässt sich folgende untere Schranke beweisen.
2p x
Satz 4: Für alle a-priori-Verteilungen p, für die H p≥ p x ist, gilt
C p≥H p− p x logH p p x log p x −loge1
Weiterhin lässt sich hier errechnen, dass mit wachsender Entropie der a-priori-Verteilung sich der
Quotient der oberen und unteren Schranke 1 annähert.