Balancierte Suchbäume / 1 Bisher

Werbung
Balancierte Suchbäume / 1
Universität Paderborn
Theoretische Informatik
Prof. Dr. rer. nat. Burkhard Monien
Bisher:
Suchbäume sind effizient, solange sie
„einigermaßen balanciert“ sind.
Ziel:
Suchbäume ständig „einigermaßen balanciert“
halten, indem bei Insert/Delete rebalanciert wird.
• Was heißt „einigermaßen balanciert“?
• Wie können wir rebalancieren?
Balancierte Suchbäume / 2
Universität Paderborn
Theoretische Informatik
Prof. Dr. rer. nat. Burkhard Monien
AVL-Bäume (Adelson-Velskii,Landis, 1962)
Definition Ein Suchbaum heißt AVL-Baum, wenn für jeden
Knoten gilt, dass sich die Tiefen seines rechten und linken
Teilbaums um maximal 1 unterscheiden.
b (v):= Tiefe (linker Teilbaum von v) Tiefe (rechter Teilbaum von v)
heißt Balancegrad von v.
Universität Paderborn
Balancierte Suchbäume / 2.1
Theoretische Informatik
Prof. Dr. rer. nat. Burkhard Monien
Beispiel:
-1
1
-1
-1
1
0
0
AVL-Baum
-2
0
0
0
0
+1
0
kein AVL-Baum
Balancierte Suchbäume / 3
T: AVL Baum mit n Knoten:
→ Tiefe (T) ≥ log (n+1)
Tiefe (T) ≤ ?
Universität Paderborn
Theoretische Informatik
Prof. Dr. rer. nat. Burkhard Monien
Balancierte Suchbäume / 4
Universität Paderborn
Theoretische Informatik
Prof. Dr. rer. nat. Burkhard Monien
Tiefe (T) ≤ ?
Wir konstruieren AVL Bäume Ti der Tiefe i, die unter
allen AVL-Bäumen mit Tiefe i die minimale Zahl ni von
Knoten haben.
T1 :
T2 :
Universität Paderborn
Balancierte Suchbäume / 4.1
i ≥ 3:
Theoretische Informatik
Prof. Dr. rer. nat. Burkhard Monien
Ti
Ti-1
Ti-2
→ n1 = 1, n2 = 2, ni = ni-1 + ni-2 + 1
Universität Paderborn
Balancierte Suchbäume / 5
Theoretische Informatik
Prof. Dr. rer. nat. Burkhard Monien
n1 = 1, n2 = 2, ni = ni-1 + ni-2 + 1
Fast die Rekursion der Fibonacci-Zahlen:
F0 = 0, F1 = 1, i ≥ 2 : Fi = Fi-1 + Fi-2
Behauptung: ni = Fi+2 - 1 √
Bekannt: Fi =
1
i
i



 1− 5  
1
5
+
 −
 
5  


2   2  





i





1
+
1
5
>


5   2  − 1





→ i < 1.4402 log (ni +2)
Balancierte Suchbäume / 6
Universität Paderborn
Theoretische Informatik
Prof. Dr. rer. nat. Burkhard Monien
Satz: T sei AVL-Baum mit n Knoten. Dann gilt:
log (n+1) ≤ Tiefe (T) < 1.4404 log (n + 2)
Also: Search(x) in AVL-Bäume benötigt
Zeit O(log (n))
Balancierte Suchbäume / 7
Insert (x):
Universität Paderborn
Theoretische Informatik
Prof. Dr. rer. nat. Burkhard Monien
(Nach erfolgloser Suche von r,
Suchpfad: Wurzel = vr , vr-1, ..., v1 = v)
(i) Füge x in v ein.
(Dabei kann die AVL-Eigenschaft nur auf
Knoten des Suchpfades verletzt worden sein.)
(ii) Rebalanciere Knoten v1, v2, ...,
in dieser Reihenfolge.
Universität Paderborn
Balancierte Suchbäume / 8
Theoretische Informatik
Prof. Dr. rer. nat. Burkhard Monien
Ziel: Nach Rebalancieren von v1, v2, ...,vi-1 soll folgende
Invariante gelten:
• Alle Knoten ausser
eventuell vi, ...,vl haben
korrekten Balancegrad
T
Vi+1
• vi+1, ..., vr haben noch
den „alten“ Balancegrad
Bemerkung: Falls Tiefe von T‘
durch Rebalancieren von vi+1 nicht
verändert wird, ist Rebalancierung
von T beendet.
Vi
Vi-1
T‘
V2
V1
hier wurde
x eingefügt
Balancierte Suchbäume / 9
Universität Paderborn
Theoretische Informatik
Prof. Dr. rer. nat. Burkhard Monien
Invariante gelte für i-1, o.B.d.A. wurde x unter linkem
Teilbaum eingefügt.
Fall 1: b (vi) = -1
Fall 2: b (vi) = 0
Fall 3: b (vi) = 1
T1
x
T2
Balancierte Suchbäume / 10
Universität Paderborn
Theoretische Informatik
Prof. Dr. rer. nat. Burkhard Monien
Rebalancierung für vi kostet Zeit 0(1)
→ Rebalancierung kostet Zeit O(log(n))
→ Insert(x) kostet Zeit O(log(n))
• Rebalancierung nach Delete(x) kosten ebenfalls Zeit
O(log(n)) (ähnlich, etwas mehr Fälle)
Satz: In AVL-Bäumen können Search, Insert, Delete in
Zeit O(log(n)) durchgeführt werden.
Balancierte Suchbäume / 11
Universität Paderborn
Theoretische Informatik
Prof. Dr. rer. nat. Burkhard Monien
Weitere Balancierungskriterien
BB (α)-Bäume:
|T| bezeichne die Zahl der Blätter von T, für Teilbaum T‘ mit
Unterbäumen Tl , Tr sei µ (T‘):= | Tl | / |T‘| (=1 - |Tr| / |T‘|)
Def:
T heißt BB (α)-Baum, für α ∈ (1/4, 1- 1/ 2), falls für jeden
Teilbaum T‘ gilt: α ≤ µ (T‘) ≤ 1 - α.
Satz: (i) BB (α)-Bäume existieren für α ≤ 1/3.
BB(α) habenTiefe O (log (n)).
Bei α = 1- 1/ 2 ≈ 0.2928 ... gilt: Tiefe ≤ 2 log (n).
(ii) Zeit O (log (n)) pro Operation.
(Rebalancieren ähnlich wie bei AVL-Bäumen.)
Balancierte Suchbäume / 12
Universität Paderborn
Theoretische Informatik
Prof. Dr. rer. nat. Burkhard Monien
Rot-Schwarz-Bäume
Suchbaum heißt rot-schwarz Baum, falls jeder Knoten so
rot oder schwarz gefärbt ist, dass gilt:
• Rote Knoten haben nur schwarze Kinder.
• Für jeden Knoten v gilt: Alle Wege von v zu einem Blatt
haben die gleiche Zahl schwarzer Kinder.
Satz: (i) Tiefe ≤ 2 log (n)
(Rebalancieren ähnlich wie bei AVL-Bäumen)
(ii) Zeit pro Operation: O (log (n))
Vorteil:
höchstens 2 Rotationen für Insert
höchstens 3 Rotationen für Delete
Herunterladen