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