• Keine Ergebnisse gefunden

6.4 Splay-Trees als Suchb¨aume

N/A
N/A
Protected

Academic year: 2021

Aktie "6.4 Splay-Trees als Suchb¨aume"

Copied!
22
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

6.4 Splay-Trees als Suchb¨aume

In diesem Abschnitt untersuchen wirSplay-Trees, eine Datenstruktur, die den MFR-Ansatz auf B¨aume ¨ubertr¨agt:

Wird auf ein Element durch eine Operation zugegriffen, so wird dieses im Splay-Tree in geeigneter Weise zur Wurzel bef¨ordert, um, sollten weitere Zugriffe auf dieses Element folgen, diese zu beschleunigen.

Wir untersuchen hier Splay-Trees alsSuchb¨aume, d.h. die Schl¨ussel stammen aus einem total geordneten Universum, und innerhalb des Splay-Trees soll die Invariante

“Knoten im lUb ≤k(x) ≤Knoten im rUb“

gelten.

Ansonsten ist ein Splay-Tree eininterner bin¨arer Suchbaum.

(2)

Wir benutzenRotationen, um unter Beibehaltung der Invariante einen Schl¨ussel n¨aher zur Wurzel zu bewegen, und zwar Einfach- und Doppelrotationen.

(3)

Beispiel 55

JJ

A

JJ B

@

@

s @@

s

J CJ b

a

JJ

B

JJ C

@

@ s

@@ s

J AJ

a b

(4)

Beispiel 55

J J

JJ B

J J

JJ C

@@ s a @@

sb

JJ

JJ D H HH c s

JJ

J AJ

HH H d s

J J

JJ E

HH H es

JJ

JJ F

J J

JJ C

J J

JJ D

@@ sb

@@ sa

JJ

JJ B

H HH c s

JJ

J AJ

HH H d s

J J

JJ E

HH H es

JJ

JJ

F

(5)

Beispiel 55

J J

JJ C

J J

JJ D

@@ sb

@@ sa

JJ

JJ B

H HH c s

JJ

J AJ

HH H d s

J J

JJ E

HH H es

JJ

JJ F

JJ

J DJ

@

@ sb

JJ

J CJ HH H as

JJ

J AJ

JJ

J BJ

@

@ s c

H HH ds

JJ

JJ E

H HH es

JJ

J FJ

(6)

Beispiel 55

J J

JJ D

@@ sb

J J

JJ C HH H as

J J

JJ A

J J

JJ B

@@ s c

H HH ds

JJ

J EJ

HH H es

J J

JJ F

J J

JJ C

J J

JJ D

@@ b s @@

JJ

JJ E sd H HH as s c

@@

JJ

JJ A

JJ

JJ B

HH H es

J J

JJ F

(7)

Beispiel 55

JJ

J CJ

JJ

J DJ

@

@ b s @@

J J

JJ E sd H HH as s c

@@

J J

JJ A

J J

JJ B

H HH es

JJ

J FJ

J J

JJ C

J J

JJ D

@@ b s @@

ds

JJ

JJ E

H HH se

JJ

J FJ XX

XX XX

as s

c

H HH

JJ

J

AJ

JJ

J BJ

(8)

6.4.1 Die Splaying-Operation

Ein Knoten, auf den zugegriffen wird (Splay(x, T)), wird durch eine Folge von einfachen und doppelten Rotationen an die Wurzel bewegt.

Wir unterscheiden die folgenden F¨alle:

(9)

1 (zig):x ist Kind der Wurzel vonT: einfache Rotation

JJ

A

JJ B

@

@

s @@

s

J CJ b

a

JJ

B

JJ C

@

@ s

@@ s

J AJ

a b

(10)

2 (zig-zig): x hat Großvater g(x) und Vater p(x);x und p(x) sind jeweils linke (bzw. rechte) Kinder ihres Vaters.

J J

JJ A

J J

JJ B

@@ s x @@

s y=p(x)

JJ

JJ C

@

@ z=g(x)=p(y)s

JJ

J DJ p pp p

J J

JJ B

J J

JJ A

@@ sx

@@ sp(x)=y

JJ

JJ C

@

@ sg(x)=z

JJ

J DJ

pp pp

J J

JJ C

J J

JJ D

@@ sz

@@ sy

JJ

JJ B

@

@ xs

JJ

J AJ

&

bzw.

x=linkes Kind x=rechtes Kind

Doppelrotation

(11)

3 (zig-zag): x hat Großvater g(x) und Vater p(x),x ist linkes (rechtes) Kind von p(x), p(x) ist rechtes (linkes) Kind von g(x).

JJ B CJJ

@

@ xs

@@

J AJ y=p(x)s

HH H

JJ D z=g(x)s

JJ A BJJ

@

@ s

y HHH xs

JJ C DJJ

@

@ sz

(12)

Beispiel 56

F¨uhre die Splaying-Operation jeweils mit dem eingekreisten Element durch:

@s

@ s

@@ s

@@ s@s

@

s s s s

e 1)zigzig

2)zigzag 3)zigzag 4)zigzig

s s s

s s s s s

e 1)zigzig 2)zigzig 3)zigzig 4)zig

@s

@ s@s

@ s@s

@ s@s

@ s

e

1)zigzag 2)zigzag 3)zigzag 4)zig

(13)

6.4.2 Amortisierte Kostenanalyse der Splay-Operation Jeder Knoten habe ein Gewichtw(x)>0. Das Gewicht tw(x)des Unterbaums mit Wurzelxist die Summe der Gewichte aller Knoten im Unterbaum. Setze

Rangr(x) = log(tw(x)) Potenzial eines Baumes T =X

x∈T

r(x)

Lemma 57

SeiT ein Splay-Tree mit Wurzelu,x ein Knoten inT. Die amortisierten Kosten f¨ur Splay(x, T) sind

≤1 + 3(r(u)−r(x)) =O

logtw(u) tw(x)

.

(14)

Beweis:

Induktion ¨uber die Folge von (Doppel)Rotationen:

Berechner und r0,twund tw0, die Rang- bzw. Gewichtsfunktion vor und nach einem Rotationsschritt. Wir zeigen, dass die amortisierten Kosten im

Fall 1 (zig)≤1 + 3(r0(x)−r(x)) und in den

F¨allen 2 und 3 (zig-zig bzw. zig-zag) ≤3(r0(x)−r(x)) sind.

y sei der Vater vonx,z der Großvater (falls er existiert).

(15)

Beweis (Forts.):

1 Fall:

JJ A BJJ

@

@ s x

J CJ

HH H y s

J AJ

JJ B CJJ

@

@ sy

HH H x s

Amortisierte Kosten:

≤1 +r0(x) +r0(y)−r(x)−r(y)

≤1 +r0(x)−r(x), dar0(y)≤r(y)

≤1 + 3(r0(x)−r(x)), dar0(x)≥r(x)

(16)

Beweis (Forts.):

2 Fall:

JJ A BJJ

@

@ s x @@

s y

J CJ

@@ zs

JJ D p pp p

JJ C DJJ

@

@ sz

@@ sy

J BJ

@@ sx

JJ A

pp pp

Amortisierte Kosten:

≤2 +r0(x) +r0(y) +r0(z)−r(x)−r(y)−r(z)

= 2 +r0(y) +r0(z)−r(x)−r(y), da r0(x) =r(z)

≤2 +r0(x) +r0(z)−2r(x), da r0(x)≥r0(y) und r(y)≥r(x)

(17)

Beweis (Forts.):

Es gilt, dass

2 +r0(x) +r0(z)−2r(x)≤3(r0(x)−r(x)), d.h.

2r0(x)−r(x)−r0(z)≥2.

Betrachte dazu die Funktion

f(x, y) = logx+ logy in dem Bereich

x, y >0, x+y≤1.

(18)

Beweis (Forts.):

Behauptung:f(x, y)nimmt sein eindeutiges Ma- ximum im Punkt 12,12

an. -

6

@

@ 0 1

1 x y

smax

Beweis der Behauptung:Da dielog-Funktion streng monoton wachsend ist, kann sich das Maximum der Funktion

f(x, y) = logx+ logy nur auf dem Geradensegment x+y= 1, x, y >0befinden. Dadurch erhalten wir ein neues

Maximierungsproblem f¨ur die Funktiong(x) = log(x) + log(1−x) auf diesem Geradensegment. Dag(x) an den R¨andern gegen −∞

strebt, muss es sich um ein lokales Maximum handeln.

(19)

Beweis (Forts.):

Die einzige Nullstelle der Ableitung g0(x) = 1

lna 1

x − 1 1−x

,

wennlog = loga, ist x= 1/2(unabh¨angig von a).

Weiter ist

g00(x) =− 1 lna

1

x2 + 1 (1−x)2

.

Dag00(0.5)<0 ist, nimmt g(x) sein globales Maximum inx= 0.5 an. Insgesamt folgt, dass die Funktionf(x, y) = logx+ logy ihr globales Maximum im Bereichx, y >0,x+y≤1 an der Stelle (0.5,0.5)annimmt.

Damit ist die obige Behauptung gezeigt. Wir fahren mit dem Beweis der Absch¨atzung im Lemma fort.

(20)

Beweis (Forts.):

Damit gilt im 2. Fall:

r(x) +r0(z)−2r0(x) = log

tw(x) tw0(x)

+ log

tw0(z) tw0(x)

≤ −2,

da

tw(x) +tw0(z)≤tw0(x).

(21)

Beweis (Forts.):

3 Fall:

JJ B CJJ

@

@ xs

@@

J AJ

s

y HHH JJ D zs

JJ A BJJ

@

@ s

y HHH xs

JJ C DJJ

@

@ sz

Amortisierte Kosten:

≤2 +r0(x) +r0(y) +r0(z)−r(x)−r(y)−r(z)

≤2 +r0(y) +r0(z)−2r(x), da r0(x) =r(z)und r(x)≤r(y)

≤2(r0(x)−r(x)), da 2r0(x)−r0(y)−r0(z)≥2. (Letzteres folgt aus der Behauptung ¨uber f(x, y) wie im 2. Fall.)

(22)

Beweis (Forts.):

Die Gesamtbehauptung des Lemmas folgt dann durch Aufaddieren der amortisierten Kosten f¨ur die einzelnen Schritte

(Teleskop-Summe).

Referenzen

ÄHNLICHE DOKUMENTE

Bei AVL-B¨ aumen sind die Operationen IsElement, Insert, und Delete so implementiert, dass sie die Zeitkomplexit¨ at O(log n) haben, wobei n die Anzahl der Schl¨ ussel

Wird auf ein Element durch eine Operation zugegriffen, so wird dieses im Splay-Tree in geeigneter Weise zur Wurzel bef¨ ordert, um, sollten weitere Zugriffe auf dieses Element

ExtractMin: liefert und l¨ oscht eines der kleinsten Elemente der Vorrangswarteschlange (falls das Element das kleinste ist, m¨ ussen minpos und minvalue noch aktualisiert

ExtractMin: liefert und l¨ oscht eines der kleinsten Elemente der Vorrangswarteschlange (falls das Element das kleinste ist, m¨ ussen minpos und minvalue noch aktualisiert

Wird auf ein Element durch eine Operation zugegriffen, so wird dieses im Splay-Tree in geeigneter Weise zur Wurzel bef¨ ordert, um, sollten weitere Zugriffe auf dieses Element

Splayb ¨aume sind bin ¨are Suchb ¨aume, die sich durch eine Variante der Move-to-root Strategie selbst anordnen.. AD Splay-B ¨aume Sven

Dieses Experiment kann mit anderen Halbzellen durchgeführt werden, um eine Verallgemeinerung dieses Versuchs

Schlüssel im linken Teilbaum v.left von v sind kleiner als v.key Schlüssel im rechten Teilbaum v.right von v sind grösser als