+ All Categories
Home > Documents > Splay-Bäume¤ume - Folien.pdf · Splay-Bäume Joseph Schröer Seminar über Algorithmen SoSe 2011,...

Splay-Bäume¤ume - Folien.pdf · Splay-Bäume Joseph Schröer Seminar über Algorithmen SoSe 2011,...

Date post: 03-Aug-2020
Category:
Upload: others
View: 6 times
Download: 0 times
Share this document with a friend
22
Splay-Bäume Joseph Schröer Seminar über Algorithmen SoSe 2011, Prof. Dr. Helmut Alt
Transcript
Page 1: Splay-Bäume¤ume - Folien.pdf · Splay-Bäume Joseph Schröer Seminar über Algorithmen SoSe 2011, Prof. Dr. Helmut Alt. Einordnung Splay-Baum (engl. Splay Tree) ... Self-Adjusting

Splay-Bäume

Joseph Schröer

Seminar über AlgorithmenSoSe 2011, Prof. Dr. Helmut Alt

Page 2: Splay-Bäume¤ume - Folien.pdf · Splay-Bäume Joseph Schröer Seminar über Algorithmen SoSe 2011, Prof. Dr. Helmut Alt. Einordnung Splay-Baum (engl. Splay Tree) ... Self-Adjusting

Einordnung

Splay-Baum (engl. Splay Tree)

I Selbstanpassender binärer SuchbaumI Engl. (to) splay – spreizen, wegstrecken, weiten

I dt. auch Spreizbaum

I Erfinder: Daniel D. Sleator und Robert E. Tarjan (1985)

Robert E. Tarjan(Turing-Award 1986)

Daniel D. Sleator

,

Splay-Bäume, Seminar über Algorithmen 2

Page 3: Splay-Bäume¤ume - Folien.pdf · Splay-Bäume Joseph Schröer Seminar über Algorithmen SoSe 2011, Prof. Dr. Helmut Alt. Einordnung Splay-Baum (engl. Splay Tree) ... Self-Adjusting

Taxonomie der Suchbäume

I Balancierte SuchbäumeI Optimale SuchbäumeI (Finger-Suchbäume, Biased Search Trees, . . . )

I Selbstanpassende SuchbäumeI Gegenstand des heutigen Referats

,

Splay-Bäume, Seminar über Algorithmen 3

Page 4: Splay-Bäume¤ume - Folien.pdf · Splay-Bäume Joseph Schröer Seminar über Algorithmen SoSe 2011, Prof. Dr. Helmut Alt. Einordnung Splay-Baum (engl. Splay Tree) ... Self-Adjusting

Höhenbalancierte Suchbäume

AVL-Baum, Rot-Schwarz-Baum, . . .

I Explizit garantierte Balanciertheit durch RebalancierungsoperationenI Links-, Rechts-, Doppelrotationen

I Suchen, Einfügen, Löschen effizientI Erwartet und Worst-Case: O(log n)

+ Ideal für gleichverteile Suchanfragen

+ Günstiges Verhalten auch im Worst Case

− Für nicht-gleichverteilte Anfragen nicht optimal

− Zusätzlicher Speicherbedarf für Balance-Informationen

,

Splay-Bäume, Seminar über Algorithmen 4

Page 5: Splay-Bäume¤ume - Folien.pdf · Splay-Bäume Joseph Schröer Seminar über Algorithmen SoSe 2011, Prof. Dr. Helmut Alt. Einordnung Splay-Baum (engl. Splay Tree) ... Self-Adjusting

Optimale Suchbäume

Statischer Suchbaum, angepasst an die Verteilung der Anfragen

I „Schiefer“ Baum; häufig angefragte Elemente nahe der Wurzel

+ Minimale durchschnittliche Zugriffszeit

− Zugriffsverteilung muss fest und bekannt sein

− Nur vorteilhaft, wenn weit von Gleichverteilung entfernt

− Kein Einfügen/Löschen möglich

− Einzelne Suche schlimmstenfalls in linearer Zeit

,

Splay-Bäume, Seminar über Algorithmen 5

Page 6: Splay-Bäume¤ume - Folien.pdf · Splay-Bäume Joseph Schröer Seminar über Algorithmen SoSe 2011, Prof. Dr. Helmut Alt. Einordnung Splay-Baum (engl. Splay Tree) ... Self-Adjusting

Selbstanpassende Suchbäume

I Ziel: Amortisierte EffizienzI Keine expliziten Balanciertheitsgarantien

I Höhe (∼ Suchzeit) schlimmstenfalls O(n)I Stattdessen Restrukturierungsheuristiken

I Ziel: häufige Anfragen schneller beantwortenI Single Rotation (Rotiere gesuchten Knoten mit seinem Vater)I Move-to-Root (Rotiere Knoten solange mit Vater, bis er Wurzel ist)I Splaying

+ Amortisiert so effizient wie explizit balancierte Datenstrukturen

+ Wesentlich besser, falls Anfragen nicht gleichverteilt

+ Kein Speicherbedarf für Meta-Informationen

− Häufige Restrukturierung (auch nach Such-Operation)

− Einzelne Operation schlimmstenfalls in linearer Zeit

,

Splay-Bäume, Seminar über Algorithmen 6

Page 7: Splay-Bäume¤ume - Folien.pdf · Splay-Bäume Joseph Schröer Seminar über Algorithmen SoSe 2011, Prof. Dr. Helmut Alt. Einordnung Splay-Baum (engl. Splay Tree) ... Self-Adjusting

Der Splay-Baum

Binärer Suchbaum mit folgenden Operationen:I ACCESS

I INSERT

I DELETE

Hilfsfunktionen:I SPLAY

I JOIN

I SPLIT

,

Splay-Bäume, Seminar über Algorithmen 7

Page 8: Splay-Bäume¤ume - Folien.pdf · Splay-Bäume Joseph Schröer Seminar über Algorithmen SoSe 2011, Prof. Dr. Helmut Alt. Einordnung Splay-Baum (engl. Splay Tree) ... Self-Adjusting

Die SPLAY-Operation

Bessere Restrukturierungsheuristik als Move-to-RootI Knoten x wird zur Wurzel gemachtI Tiefe der Knoten auf dem Suchpfad zu x wird ungefähr halbiert

,

Splay-Bäume, Seminar über Algorithmen 8

Page 9: Splay-Bäume¤ume - Folien.pdf · Splay-Bäume Joseph Schröer Seminar über Algorithmen SoSe 2011, Prof. Dr. Helmut Alt. Einordnung Splay-Baum (engl. Splay Tree) ... Self-Adjusting

Die SPLAY-Operation (2)

SPLAY(x)

while x nicht Wurzelif p(x) ist Wurzel

// „zick“-Rotationrotiere x mit p(x)

elseif x und p(x) sind linke [rechte] Kinder// „zick-zick“-Rotationrotiere p(x) mit p(p(x))rotiere x mit p(x)

elseif x linkes [rechtes] Kind, p(x) rechtes [linkes] Kind// „zick-zack“-Rotationrotiere x mit p(x)rotiere x mit (neuem) p(x)

,

Splay-Bäume, Seminar über Algorithmen 9

Page 10: Splay-Bäume¤ume - Folien.pdf · Splay-Bäume Joseph Schröer Seminar über Algorithmen SoSe 2011, Prof. Dr. Helmut Alt. Einordnung Splay-Baum (engl. Splay Tree) ... Self-Adjusting

Die ACCESS-Operation

Prüfe, ob i in T enthalten ist.

Ja: Gib Zeiger auf den Knoten zurück,

Nein: Gib NULL-Zeiger zurück.

ACCESS(i,T )

x := Wurzel von Twhile x 6= i

if i < xNeu := linkes Kind von x

elseNeu := rechtes Kind von x

if Neu = NULLSPLAY(x ,T )Return NULL

SPLAY(x ,T )Return x

,

Splay-Bäume, Seminar über Algorithmen 10

Page 11: Splay-Bäume¤ume - Folien.pdf · Splay-Bäume Joseph Schröer Seminar über Algorithmen SoSe 2011, Prof. Dr. Helmut Alt. Einordnung Splay-Baum (engl. Splay Tree) ... Self-Adjusting

Die JOIN-Operation

Füge T1 und T2 zu einem Baum zusammen.Voraussetzung: Alle Elemente in T1 sind kleiner als alle Elemente in T2.

JOIN(T1,T2)

ACCESSMAX(T1)T1.wurzel.rechts := T2.wurzelReturn T1

ACCESSMAX ist eine ACCESS-Operation auf das maximale Element (folge immerrechten Zeigern).

,

Splay-Bäume, Seminar über Algorithmen 11

Page 12: Splay-Bäume¤ume - Folien.pdf · Splay-Bäume Joseph Schröer Seminar über Algorithmen SoSe 2011, Prof. Dr. Helmut Alt. Einordnung Splay-Baum (engl. Splay Tree) ... Self-Adjusting

Die SPLIT-Operation

Konstruiere zwei Bäume T1 und T2 sodass T1 alle Elemente ≤ i enthält und T2 alleanderen.

SPLIT(i,T )

ACCESS(i,T )x := Wurzel von Tif x > i

T2.wurzel := x // Trenne das linke Kind von x abT2.wurzel.links := NULLT1.wurzel := x .links

elseT1.wurzel := x // Trenne das rechte Kind von x abT1.wurzel.rechts := NULLT2.wurzel := x .rechts

Return (T1,T2)

,

Splay-Bäume, Seminar über Algorithmen 12

Page 13: Splay-Bäume¤ume - Folien.pdf · Splay-Bäume Joseph Schröer Seminar über Algorithmen SoSe 2011, Prof. Dr. Helmut Alt. Einordnung Splay-Baum (engl. Splay Tree) ... Self-Adjusting

Die INSERT-Operation

Füge i in T ein, vorausgesetzt, es ist noch nicht enthalten.

INSERT(i,T )

(T1,T2) := SPLIT(i,T )Verpacke i in Knoten xx .left := T1

x .right := T2

T := Tx

,

Splay-Bäume, Seminar über Algorithmen 13

Page 14: Splay-Bäume¤ume - Folien.pdf · Splay-Bäume Joseph Schröer Seminar über Algorithmen SoSe 2011, Prof. Dr. Helmut Alt. Einordnung Splay-Baum (engl. Splay Tree) ... Self-Adjusting

Die DELETE-Operation

Lösche i aus T , vorausgesetzt, es ist enthalten.

DELETE(i,T )

ACCESS(i,T )T := JOIN(x .left, x .right)

,

Splay-Bäume, Seminar über Algorithmen 14

Page 15: Splay-Bäume¤ume - Folien.pdf · Splay-Bäume Joseph Schröer Seminar über Algorithmen SoSe 2011, Prof. Dr. Helmut Alt. Einordnung Splay-Baum (engl. Splay Tree) ... Self-Adjusting

Komplexität: Übersicht

Amortisiert Worst CaseSuche O(log n) O(n)

Einfügen O(log n) O(n)Löschen O(log n) O(n)

Platzkomplexität: Θ(n)

,

Splay-Bäume, Seminar über Algorithmen 15

Page 16: Splay-Bäume¤ume - Folien.pdf · Splay-Bäume Joseph Schröer Seminar über Algorithmen SoSe 2011, Prof. Dr. Helmut Alt. Einordnung Splay-Baum (engl. Splay Tree) ... Self-Adjusting

Amortisierte Analyse

I Betrachte Folge von Operationen anstatt individueller Operation

Definition (Amortisierte Laufzeit)

Durchschnittliche Laufzeit pro Operation in worst-case-Folge von Operationen.

→ Stärkere Aussage als erwartete Laufzeit

Amortisierte Laufzeit:a = t + Φ′ − Φ

(t bezeichnet die tatsächliche Laufzeit, Φ das Potential.)

,

Splay-Bäume, Seminar über Algorithmen 16

Page 17: Splay-Bäume¤ume - Folien.pdf · Splay-Bäume Joseph Schröer Seminar über Algorithmen SoSe 2011, Prof. Dr. Helmut Alt. Einordnung Splay-Baum (engl. Splay Tree) ... Self-Adjusting

Zugriffs-Lemma

Bezeichne Tx den in x wurzelnden Teilbaum von T .

w(i) > 0 Gewicht des Elements i (beliebig, aber fest)

s(x) :=∑i∈Tx

w(i) Größe von x

r(x) := log s(x) Rang von x

Φ :=∑x∈T

r(x) Potential des Baums

Lemma (Zugriffs-Lemma)

Die amortisierte Laufzeit einer Splay-Operation für den Knoten x in einem Baum mitder Wurzel t ist maximal 3(r(t)− r(x)) + 1 = O

(log s(t)

s(x)

).

,

Splay-Bäume, Seminar über Algorithmen 17

Page 18: Splay-Bäume¤ume - Folien.pdf · Splay-Bäume Joseph Schröer Seminar über Algorithmen SoSe 2011, Prof. Dr. Helmut Alt. Einordnung Splay-Baum (engl. Splay Tree) ... Self-Adjusting

Balance-Satz

Betrachte Folge von m Zugriffen auf einen Splay-Baum mit n Knoten.

Satz (Balance-Satz)

Die totale Zugriffszeit beträgt

O((m + n) log n + m).

Die amortisierte Laufzeit pro Operation beträgt O(log n)

Für m ≥ n ist der Splay-Baum so effizient wie jeder balancierte Suchbaum.

,

Splay-Bäume, Seminar über Algorithmen 18

Page 19: Splay-Bäume¤ume - Folien.pdf · Splay-Bäume Joseph Schröer Seminar über Algorithmen SoSe 2011, Prof. Dr. Helmut Alt. Einordnung Splay-Baum (engl. Splay Tree) ... Self-Adjusting

Statische Optimalität

Betrachte wiederum Folge von m Zugriffen auf Splay-Baum mit n Knoten.q(i) gebe die Zahl der Zugriffe auf das Element i an.

Satz (Satz über die statische Optimalität)

Wenn auf jedes Element mindestens einmal zugegriffen wird, beträgt dieGesamtzugriffszeit

O

(m +

n∑i=1

q(i) log(

mq(i)

)).

Für m ≥ n ist der Splay-Baum also so effizient wie jeder statische Suchbaum,einschließlich des optimalen Suchbaums.

,

Splay-Bäume, Seminar über Algorithmen 19

Page 20: Splay-Bäume¤ume - Folien.pdf · Splay-Bäume Joseph Schröer Seminar über Algorithmen SoSe 2011, Prof. Dr. Helmut Alt. Einordnung Splay-Baum (engl. Splay Tree) ... Self-Adjusting

Statische Optimalität (2)

Der Satz über die statische Optimalität lässt sich auch anders formulieren undintuitiv beweisen:

Satz (Satz über die statische Optimalität)

Für eine beliebige Folge von Zugriffen auf alle Elemente ist der Splay-Baum bis aufeinen konstanten Faktor ebenso effizient wie jeder statische binäre Suchbaum,einschließlich des optimalen binären Suchbaums.

,

Splay-Bäume, Seminar über Algorithmen 20

Page 21: Splay-Bäume¤ume - Folien.pdf · Splay-Bäume Joseph Schröer Seminar über Algorithmen SoSe 2011, Prof. Dr. Helmut Alt. Einordnung Splay-Baum (engl. Splay Tree) ... Self-Adjusting

Sequentieller Zugriff

Satz (Satz über den sequentiellen Zugriff)

Die Gesamtzeit, um in einem Splay-Baum in auf- oder absteigender Reihenfolgeauf alle Knoten zuzugreifen, beträgt O(n).

,

Splay-Bäume, Seminar über Algorithmen 21

Page 22: Splay-Bäume¤ume - Folien.pdf · Splay-Bäume Joseph Schröer Seminar über Algorithmen SoSe 2011, Prof. Dr. Helmut Alt. Einordnung Splay-Baum (engl. Splay Tree) ... Self-Adjusting

Quellen und Literatur

Peter BrassAdvanced Data Structures, Kapitel 3.9, S. 122–135.Cambridge University Press, 2008

Daniel D. Sleator, Robert E. TarjanSelf-Adjusting Binary Search TreesJournal of the ACM 32 (3): 652–686

Amr ElmasryOn the sequential access theorem and deque conjecture for splay treesTheoretical Computer Science, 314(3):459–466, 2004

David EppsteinStatic optimality for splay treeshttp://11011110.livejournal.com/131530.html, 2008

,

Splay-Bäume, Seminar über Algorithmen 22


Recommended