Von Projdakov Benjamin Inhalt Binäre Suchbäume Splay Trees Self adjustment Anwendungsbeispiel Rotationen Zig Zag ZigZigZagZag ZigZagZagZig Operationen SplaySuche Einfügen Löschen ID: 409163
Download Presentation The PPT/PDF document "Splay Trees" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.
Slide1
Splay Trees
Von Projdakov BenjaminSlide2
Inhalt
Binäre Suchbäume
Splay Trees
Self adjustment
Anwendungsbeispiel
Rotationen
Zig / Zag
ZigZig/ZagZag
ZigZag/ZagZig
Operationen
Splay/Suche
Einfügen
Löschen
Amortisierte Analyse
Einführung/Potential- Methode
Hilfssatz
Definitionen
Zugrifslemma
Zig/Zag
ZigZag/ZagZig
ZigZig/ZagZag
Splay
Satz 1: Splay-Baum
Satz 2: Binärer Baum mit SplaySlide3
Binäre Suchbäume
Eigenschaften:Geordnete Menge von SuchschlüsselnLinkes Kind der kleinere Suchschlüssel
Rechtes Kind der größere Suchschlüssel
Baum kann zu einer linearen Liste ausartenSlide4
Splay Tree
Splay-Bäume wurden 1985 von Daniel Sleator und Robert Tarjan unter dem Namen Self-Adjusting Binary Search Trees vorgestelltHat den Vorteil von Selbstjustierung
Benutzt Rotationen für Knotenbewegung
Typische Befehle auf Knoten:
Suche
Füge ein
Lösche Slide5
Self adjustment
Nach jeder Operation steht der bearbeitete Knoten in der Wurzel.Die Tiefe eines Pfads halbiert sich im Schnitt bei Ausführung einer Operation darauf.
Oft benutzte Knoten sind näher an der Wurzel.Slide6
Beispiel Compiler
Compiler:Ein Compiler muss die Variablen und andere Bezeichner eines Programms
verwalten.
Er
kann solche Information in einer Liste oder einer Tabelle behalten
.
Gerne werden Variablen alphabetisch deklariert und ein Baum entartet zu einer linearen Liste.
Wenn einige Bezeichner häufiger verwendet werden, muss man dann mehrmals nach diesen suchen
.
Ein Splay-Baum würde oft benutzte Variablen an der Wurzel halten und ggf. die Liste zu einem Baum formen.Slide7
Rotation: Zig / Zag
Nur wenn 1 Schritt zur Wurzel.Bei simpler Implementierung werden 2 Zeiger „umgebogen“.
Zig
ZagSlide8
Rotation: ZigZig / ZagZag
Wenn mehr als 1 Schritt zur Wurzel.
Bei simpler Implementierung werden
4
Zeiger „umgebogen“.
ZigZig
ZagZagSlide9
Rotation: ZigZag / ZigZag
Wenn mehr als 1 Schritt zur Wurzel.
Bei simpler Implementierung werden 4 Zeiger „umgebogen“.
ZigZag
ZagZigSlide10
Operation: Splay
Binäre Suche nach ElementFalls Knoten nicht im Baum, wird
der Vorgänger betrachtet oder Nachfolger, wenn kleiner als alle.
Bewegung des Elements in die WurzelSlide11
Operationen: Suche
Suche:Einfach eine Splay-Operation mit Rückgabe der neuen Wurzel.Laufzeit von einer Splay-Operation mit Rückgabe der Wurzel.Slide12
Operation: Einfügen
Füge „x“ ein :Suche nach x, falls x gefunden => Splay x
Falls x nicht
gefunden, wird der Vorgänger y zur Wurzel.
Dann füge x als neue Wurzel ein, mit
y linkem Kind von x
rechtes Kind von y wird zum rechtem Kind von x.
Laufzeit von einer Splay Operation und umbiegen von 3 ZeigernSlide13
Operation: Löschen
Lösche
„
x“:
Splay x
Wenn x nicht in der Wurzel, ist man fertig.
Entferne x, man erhält nun 2 Bäume.
Führe Splay
auf dem linken Baum aus.
Somit linker Baum mit Wurzel, an die man rechts den rechten Baum hängen kann.
Laufzeit von 2 Splay-Operationen und umbiegen von einem ZeigerSlide14
Amortisierte Analyse
Analyse der durchschnittlichen Kosten von Operationsfolgen. Es werden nicht die maximalen
Kosten der einzelnen Schritte betrachtet,
sondern
es wird der Worst Case aller Operationen im gesamten Durchlauf des Algorithmus
analysiert.
Dies kann zu einer besseren oberen Schranke führen.Slide15
Potential-Methode
sind die amortisierten Kosten für die Operation
sind die tatsächlichen Kosten für die Operation
ist das Potential eines Zustands (ähnlich zum Kontostand)
Slide16
Amortisierte Analyse: Hilfsatz
Wenn:
Dann:
Denn: geometrisches Mittel
arithmetisches Mittel
b.
=
Slide17
Definition
Variablen:x
: Schlüssel
p : Knoten
b
: Baum
Gewicht von x:
Größe von p:
(Summe der Gewichte aller Schlüssel vom Teilbaum mit Wurzel p)
Rang von p:
(min. Tiefe bei Gewicht 1)
,
p hat Schlüssel x
, p Wurzel von b
Potential von b:
, p ist innerer Knoten von b
(Summe aller Ränge der inneren Knoten)
Slide18
Zugriffslemma
Jede Splay-Operation hat als amortisierte Laufzeit maximal:
Das ist nun zu zeigen.
Rang:
,
p hat Schlüssel x
, p Wurzel von b
Variablen:
x : Schlüssel
p : Knoten
b : BaumSlide19
Zugriffslemma : Zig / Zag
Regeln:
1:
2:
3:
Slide20
Zugriffslemma : Zig / Zag
1:
2:
3:
wegen Aufhebung
der nicht bewegten KnotenSlide21
Zugriffslemma : ZigZag / ZagZig
Regeln:
1:
2:
3:
,da
4:
Slide22
Zugriffslemma : ZigZag / ZagZig
1:
2:
3:
4:
Slide23
Zugriffslemma : ZigZig / ZagZag
Regeln:
1:
2:
,
3:
Slide24
Zugriffslemma : ZigZig / ZagZag
1:
2:
,
3:
Slide25
Zugriffslemma : Splay
Rang von
nach
-ter Operation
Splay ist eine Folge von vorgestellten Operationen.
Rang von
vor Splay ist Rang des gesuchten Schlüssels
vor Splay.
Rang von
nach Splay ist Rang des Baumes.
Slide26
Satz 1 : Splay Baum
Für einen anfangs leeren Baum benötigt das Ausführen von m Wörterbuchoperationen mit höchsten N Einfügeoperationen maximal O(m log N).Wörterbuchoperationen brauchen eine konstante Anzahl von Splay-Operationen + eine konstante Anzahl Einzeloperationen.
Für diesen Beweis setzen wir alle Gewichte auf 1 .Slide27
Beweis
N = Anzahl der Einfügeoperationen
m
= Anzahl von Operationen
Größe :
Zugriffslemma
Def. von
Def. von
Gesamtgewicht
Slide28
Satz 2 : Binärer Baum mit Splay
Für einen binären Suchbaum mit N Knoten, haben m Suchoperationen (über Splay) einen Aufwand von maximal O((N + m) log (N) + m).
Eine Suchoperation besteht aus einer Splay-Operation und Rückgabe des neuen Wurzelknotens.
Für diesen Beweis setzen wir alle Gewichte auf 1.
Wir suchen die tatsächlichen Kosten über:
Slide29
Potentialdifferenz
=
=
Erweitere um Blätter (Rang 0, Gewicht 1), somit alle p‘s in beiden Summen
Benutze Definitionen:
(
im Teilbaum von
)
= Summe aller Gewichte:
(Anzahl von Knoten =
)
Slide30
Abschätzung von Suchfolgen
Def. von amortisierten Kosten.
Treppensumme
Zugriffslemma
, somit Wegfall
Definition Rang und Potentialdifferenz
Slide31