• Keine Ergebnisse gefunden

f =2 g = F ( n -teFibonacci-Zahl) g =log2=1 ,g =0 (f¨ur log=log ) g = g + g f¨ur n ≥ 2 Danngilt g :=log f . Setze f = f · f f¨ur n ≥ 2 . f =2 f =1 Beispiel9 7.4TransformationdesDefinitions-bzw.Wertebereichs

N/A
N/A
Protected

Academic year: 2021

Aktie "f =2 g = F ( n -teFibonacci-Zahl) g =log2=1 ,g =0 (f¨ur log=log ) g = g + g f¨ur n ≥ 2 Danngilt g :=log f . Setze f = f · f f¨ur n ≥ 2 . f =2 f =1 Beispiel9 7.4TransformationdesDefinitions-bzw.Wertebereichs"

Copied!
23
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

7.4 Transformation des Definitions- bzw. Wertebereichs Beispiel 9

f 0 = 1 f 1 = 2

f n = f n 1 · f n 2 f¨ ur n ≥ 2 . Setze

g n := log f n . Dann gilt

g n = g n 1 + g n 2 f¨ ur n ≥ 2

g 1 = log 2 = 1, g 0 = 0 (f¨ ur log = log 2 ) g n = F n (n-te Fibonacci-Zahl)

f n = 2 F

n

EADS 7.4 Transformation des Definitions- bzw. Wertebereichs 44/600

©Ernst W. Mayr

(2)

Beispiel 10

f 1 = 1 f n = 3f

n

2

+ n; f¨ ur n = 2 k ; Setze

g k := f 2

k

.

EADS 45/600

©Ernst W. Mayr

(3)

Beispiel 10 Dann gilt:

g 0 = 1

g k = 3g k 1 + 2 k , k ≥ 1

Damit ergibt sich:

g k = 3 k+1 − 2 k+1 , also f n = 3 · 3 k − 2 · 2 k

= 3(2 log 3 ) k − 2 · 2 k

= 3(2 k ) log 3 − 2 · 2 k

= 3n log 3 − 2n .

EADS 7.4 Transformation des Definitions- bzw. Wertebereichs 45/600

©Ernst W. Mayr

(4)

Kapitel II H¨ ohere Datenstrukturen

1. Grundlegende Operationen

Es sei U das Universum von Schl¨ usseln mit einer (totalen) Ordnung ≤ . S ⊆ U sei eine Teilmenge der Schl¨ ussel. Gegeben seien eine Menge von Datens¨ atzen x 1 , · · · , x n , wobei jeder Datensatz x durch einen Schl¨ ussel k(x) ∈ S gekennzeichnet ist.

Jeder Datensatz x besteht aus seinem Schl¨ ussel k(x) und seinem eigentlichen Wert v(x).

EADS 1 Grundlegende Operationen 46/600

©Ernst W. Mayr

(5)

IsElement(k, S ): ist k ∈ S, wenn ja, return v(k) Insert(k, S): S := S ∪ { k }

Delete(k; S): S := S \ { k } FindMin(S): return min S FindMax(S): return max S DeleteMin(S): S := S \ min S

ExtractMin(S): return min S, S := S \ min S DecreaseKey(k, ∆, S): ersetze k durch k − ∆ Union(S 1 , S 2 ): S 1 := S 1 ∪ S 2

Find(k): falls k ∈ S, so finde x mit k = k(x) Merge(S 1 , S 2 ): S 1 := S 1 ∪ S 2 , falls S 1 ∩ S 2 = ∅ Split(S 1 , k, S 2 ): S 2 := { k 0 ∈ S 1 | k 0 ≥ k }

S 1 = { k 0 ∈ S 1 | k 0 < k } Concatenate(S 1 , S 2 ): S 1 := S 1 ∪ S 2 ;

Vorauss.: FindMax(S 1 ) ≤ FindMin(S 2 )

EADS 1 Grundlegende Operationen 47/600

©Ernst W. Mayr

(6)

Datenstrukturklasse mindestens angebo- realisiert in tene Funktionen

W¨ orterbuch IsElement(), Hashtable, (Dictionary) Insert(), Delete() Suchb¨ aume Vorrangwarteschlange FindMin(), Insert(), balancierte, leftist (Priority Queue) Delete(), B¨ aume, Binomial

[IsElement()] Queues Mergeable heaps FindMin(), 2-3-B¨ aume,

Insert(), Delete(), Binomial Queues, Merge() Leftist-B¨ aume Concatenable queues FindMin(), 2-3-B¨ aume

Insert(), Delete(), Concatenate()

EADS 1 Grundlegende Operationen 48/600

©Ernst W. Mayr

(7)

Definition 11

Bei einem externen Suchbaum werden die Schl¨ ussel nur an den Bl¨ attern gespeichert, die inneren Knoten enthalten Verwaltungsinformationen.

Bei internen Suchb¨ aumen liegen die Schl¨ ussel an den internen Knoten, die Bl¨ atter sind leere Knoten. Zeiger auf Bl¨ atter sind daher NIL-Pointer und werden gew¨ ohnlich nicht angegeben.

EADS 1 Grundlegende Operationen 49/600

©Ernst W. Mayr

(8)

2. (Balancierte) Suchb¨ aume

Wir betrachten zun¨ achst zwei Familien h¨ ohenbalancierter externer Suchb¨ aume.

2.1 (a,b)-B¨ aume Definition 12

Ein (a, b)-Baum ist ein externer Suchbaum mit folgenden Eigenschaften:

1

alle Bl¨ atter haben die gleiche Tiefe;

2

die Anzahl der Kinder eines jeden internen Knoten ist ≤ b und

≥ a (f¨ ur die Wurzel: ≥ 2);

3

es gilt b ≥ 2a − 1.

4

(a, b)-B¨ aume mit b = 2a − 1 heißen auch B-B¨ aume.

EADS 2.1 (a,b)-B¨aume 50/600

©Ernst W. Mayr

(9)

Bei jedem internen Knoten v mit d = d(v) Kindern werden d − 1 Schl¨ ussel k 1 , . . . , k d 1 gespeichert, so dass (mit k 0 := −∞ , k d = + ∞ ) gilt:

k i 1 < alle Schl¨ ussel im i-ten Unterbaum von v ≤ k i .

Also z.B.: k i := maximaler Schl¨ ussel im i-ten Unterbaum von v.

Weiter gilt (wie in jedem Suchbaum)

max { Schl¨ ussel im i-ten UB } ≤ min { Schl¨ ussel im i + 1-ten UB } .

EADS 2.1 (a,b)-B¨aume 51/600

©Ernst W. Mayr

(10)

Beispiel 13

1 2 3 4 5 6

1 3 4 5

2

(2, 4)-Baum

EADS 2.1 (a,b)-B¨aume 52/600

©Ernst W. Mayr

(11)

Lemma 14

Sei T ein (a, b)-Baum mit n Bl¨ attern und der H¨ ohe h (H¨ ohe definiert als Anzahl der Kanten auf einem Pfad von der Wurzel zu einem Blatt). Dann gilt:

1

2a h 1 ≤ n ≤ b h ;

2

log b n = log log n b ≤ h ≤ 1 + log a n 2 .

Beweis:

1

n ist maximal f¨ ur vollst¨ andigen Baum mit Verzweigungsgrad b und minimal f¨ ur einen Baum, wo die Wurzel Grad 2 und alle anderen internen Knoten Grad a haben.

2

folgt durch Umformung aus (1).

EADS 2.1 (a,b)-B¨aume 53/600

©Ernst W. Mayr

(12)

Operationen:

1. IsElement(k, S ) v := Wurzel von T ; while v 6 = Blatt do

i = min { s; 1 ≤ s ≤ (#Kinder von v) und k ≤ k s } ; v := i-tes Kind von v;

if k = k(v) then return v(k) else return false fi ; Zeitbedarf: θ(h) = θ(log n)

EADS 2.1 (a,b)-B¨aume 54/600

©Ernst W. Mayr

(13)

2. Insert(k, S)

F¨ uhre IsElement(k, S) aus; Blatt w;

if k 6 = k(w) then

co falls k < max S, enth¨ alt w den kleinsten Schl¨ ussel ∈ S, der > k ist oc

f¨ uge k if k < max S then links else rechts fi von w ein;

v := Vater von w;

if v hat nun mehr als b Kinder then Rebalancierung(v)

fi fi

EADS 2.1 (a,b)-B¨aume 55/600

©Ernst W. Mayr

(14)

1 2 3 4 5 6 7 8

4 5 7

3 6

1 2 1

1 3 4 5 7 8

1 4 5 7

3

2 6

2

EADS 2.1 (a,b)-B¨aume 56/600

©Ernst W. Mayr

(15)

Rebalancierung(v):

spalte v in zwei Knoten v 1 und v 2 , v 1 ¨ ubernimmt die linke

” H¨ alfte“ der Kinder von v, v 2 den Rest; da a ≤ b b + 1

2 c ≤ d b + 1

2 e ≤ b und b ≥ 2a − 1 , erf¨ ullen v 1 und v 2 die Gradbedingung;

Vereinfachung: Falls ein unmittelbarer Nachbar v 0 von v Grad

< b hat, ¨ ubernimmt v 0 das ¨ außerste linke/rechte Kind von v.

Falls nun der Vater u von v mehr als b Kinder hat, f¨ uhre Rebalancierung(u) aus;

Falls u die Wurzel des Baums ist, kann dadurch eine neue Wurzel geschaffen werden und die H¨ ohe des (a, b)-Baums wachsen.

Kosten O (log n)

EADS 2.1 (a,b)-B¨aume 57/600

©Ernst W. Mayr

(16)

3. Delete(k, S):

F¨ uhre IsElement(k, S) aus. Blatt w. Sei k(w) = k;

v := Vater von w;

L¨ osche w;

if v hat nunmehr < a Kinder then

f¨ uhre rekursiv aufsteigend Rebalancierung 0 (v) durch fi

EADS 2.1 (a,b)-B¨aume 58/600

©Ernst W. Mayr

(17)

1 2 4 5 6 7

1 2 5 6

4

1 2 4 5 6 7

1 4 6

2 5

1 2 3 4

1 3

5 6 7

5 6 2 4

. oder &

EADS 2.1 (a,b)-B¨aume 59/600

©Ernst W. Mayr

(18)

Rebalancierung 0 (v):

Falls ein unmittelbarer Nachbar v 0 von v Grad > a hat, adoptiert v das n¨ achste Kind von v 0 ;

Ansonsten wird v mit einem unmittelbaren Nachbarn verschmolzen; die Gradbedingung f¨ ur den dadurch entstehenden Knoten ist erf¨ ullt; die Rebalancierung wird rekursiv/iterativ f¨ ur den Vaterknoten fortgesetzt.

Zeitbedarf: O (log n)

EADS 2.1 (a,b)-B¨aume 60/600

©Ernst W. Mayr

(19)

Spezialf¨ alle von (a, b)-B¨ aumen:

(2, 3)-B¨ aume;

(2, 4)-B¨ aume;

(a, 2a − 1)-B¨ aume: B-B¨ aume

EADS 2.1 (a,b)-B¨aume 61/600

©Ernst W. Mayr

(20)

Bemerkungen:

1

zur Wahl von a:

Daten in RAM ⇒ a klein, z.B. a = 2 oder a = 3.

Daten auf Platte ⇒ a groß, z.B. a = 100.

2

Zur Wahl von b:

b ≥ 2a liefert wesentlich bessere amortisierte Komplexit¨ at (ohne Beweis, siehe Mehlhorn).

EADS 2.1 (a,b)-B¨aume 62/600

©Ernst W. Mayr

(21)

Top-Down-Rebalancierung: b ≥ 2a.

Bei der Restrukturierung nach der Top-Down-Strategie folgen wir wie gewohnt dem Pfad von der Wurzel zum gesuchten Blatt. Beim Einf¨ ugen stellen wir jetzt jedoch f¨ ur jeden besuchten Knoten sicher, dass der Knoten weniger als b Kinder hat.

Wenn der gerade betrachtete Knoten ein b-Knoten ist, dann spalten wir ihn sofort auf. Weil der Vater kein b-Knoten ist (das haben wir ja bereits sichergestellt), pflanzt sich der

Aufspaltungsprozess nicht nach oben hin fort. Insbesondere kann das neue Element ohne Probleme eingef¨ ugt werden, wenn die Suche das Blattniveau erreicht hat.

Damit diese Strategie m¨ oglich ist, muss b mindestens 2a sein (und nicht nur 2a − 1), da sonst nach der Spaltung nicht gen¨ ugend Elemente f¨ ur die beiden Teile vorhanden sind.

EADS 2.1 (a,b)-B¨aume 63/600

©Ernst W. Mayr

(22)

Beim L¨ oschen verfahren wir analog. F¨ ur jeden besuchten Knoten, außer der Wurzel des (a, b)-Baumes, stellen wir sicher, dass er mindestens a + 1 Kinder hat. Wenn der gerade betrachtete Knoten nur a Kinder hat, so versuchen wir zuerst, ein Element des rechten oder linken Nachbarknoten zu stehlen.

Haben beide Nachbarknoten nur jeweils a Kinder, so verschmelzen wir unseren Knoten mit einem der beiden Nachbarn. Ist der Vater nicht die Wurzel, so hatte er aber vorher mindestens a + 1 Kinder, und dieser Verschmelzungsprozess kann sich nicht nach oben fortsetzen. Andernfalls erniedrigt sich der Grad der Wurzel um 1, wenn die Wurzel Grad > 2 hat, oder die alte Wurzel wird gel¨ oscht und der soeben verschmolzene Knoten wird zur neuen Wurzel.

EADS 2.1 (a,b)-B¨aume 64/600

©Ernst W. Mayr

(23)

Restrukturierung nach der Top-Down-Strategie sorgt nicht f¨ ur eine bessere Laufzeit, sondern erleichtert die Synchronisation, wenn mehrere Prozesse gleichzeitig auf einen (a, b)-Baum zugreifen wollen.

Bei herk¨ ommlichen (a, b)-B¨ aumen schreiten die Such- und die Restrukturierungsoperationen in entgegengesetzter Richtung fort, was dazu f¨ uhrt, dass sich oft Prozesse gegenseitig behindern (der eine will im Baum absteigen, der andere muss auf dem gleichen Pfad aufw¨ arts restrukturieren).

Bei der Top-Down-Strategie gibt es nur Operationsfolgen, die den Baum hinabsteigen. Mehrere Prozesse k¨ onnen so in einer Art Pipeline gleichzeitig einen Pfad mit kurzem Abstand begehen.

EADS 2.1 (a,b)-B¨aume 65/600

©Ernst W. Mayr

Referenzen

ÄHNLICHE DOKUMENTE

Definieren Sie auf V n ein hermitesches Skalar- produkt (. Beweisen Sie mit Hilfe von 42e), dass die Killing-Form von su(2) nicht entartet

Um an der Klausur teilnehmen zu k¨onnen, brauchen Sie mindestens die H¨alfte der m¨oglichen Punkte in den ¨

betrachte

Grundlagen der Analysis, Topologie und Geometrie Ubungsblatt 9 ¨. Abgabe bis Fr, 17.6.,

[r]

Sind diese drei Funktionen gleich oder verschieden..

Sie können sich dies an einem konkreten

Weitere (stabile oder instabile) Gleichgewichte von iterierten Abbildungen F (k) k¨ onnen auftreten, wenn die urspr¨ ungliche Abbildung F Zyklen hat3. Definition und