/
Splay Trees Splay Trees

Splay Trees - PowerPoint Presentation

test
test . @test
Follow
396 views
Uploaded On 2016-07-18

Splay Trees - PPT Presentation

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

splay von wurzel der von splay der wurzel baum operation die knoten einer rang und mit zugriffslemma ist zigzag operationen zagzag zig

Share:

Link:

Embed:

Download Presentation from below link

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.


Presentation Transcript

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