22
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Relaxiertes Balanzieren) Prof. Th. Ottmann

1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Relaxiertes Balanzieren) Prof. Th. Ottmann

Embed Size (px)

Citation preview

Page 1: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Relaxiertes Balanzieren) Prof. Th. Ottmann

1

Vorlesung Informatik 2

Algorithmen und Datenstrukturen

(23 –Relaxiertes Balanzieren)

Prof. Th. Ottmann

Page 2: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Relaxiertes Balanzieren) Prof. Th. Ottmann

2

Balanzierte (Blatt-)suchbäume

Dictionary: Menge von Schlüsseln,

Operations: Suchen, Einfügen, Entfernen

Balanzierte (lBlatt-)suchbäume sind eine mögliche Implementation von dictionaries.

AVL-trees, symmetric Binary B-Trees, Red-Black-trees, Half-balanced Trees, Weight-balanced Trees, B-Bäume, Bruder-Bäume, …

10

6 15

2 9 11 23

5 7 20 30

6 7 9

10 11 15

5

2

20 23

Page 3: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Relaxiertes Balanzieren) Prof. Th. Ottmann

3

Rotationp

qp

q

10

6 15

2 9 11 23

5 7 20 30

6 7 9

10 11 15

5

2

20 23

x

y

3

21

x

y

1

32

Rotation

Page 4: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Relaxiertes Balanzieren) Prof. Th. Ottmann

4

Striktes und relaxiertes Balanzieren

Striktes Rebalanzieren:Auf jedes Update folgt unmittelbar eine Folge von Rebalazierungs Operationen.

Ziel 1: Konstante Umstrukturierungskosten

Ziel 2: Erhöhen der Parallelität von Such- und Update-Operationen

Relaxiertes Balanzieren:Entkopplung der Rebalanzierungs- von den Update-Operationen, sodass

Beide nebenläufig ausführbar werden.

Kessels 1983

Larsen 1994, 1997, …

Larsen, Fagerberg 1995

Ot/Soisalon-Soininen/Larsen: Acta Informatica 2001

Page 5: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Relaxiertes Balanzieren) Prof. Th. Ottmann

5

Stratifizierte Suchbäume

....

…..

… …

… …

Die Höhe eines Z-stratifizierten Baumes mit N Blättern ist O(log N)

Page 6: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Relaxiertes Balanzieren) Prof. Th. Ottmann

6

Beispiel

Page 7: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Relaxiertes Balanzieren) Prof. Th. Ottmann

7

Beispiel

Page 8: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Relaxiertes Balanzieren) Prof. Th. Ottmann

8

Einfügen

Füge neuen Schlüssel ganz unten ein und deponiere einen „push-up-request“

… …

… … ....

…..

…..

x p

Page 9: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Relaxiertes Balanzieren) Prof. Th. Ottmann

9

Iterierte Folge von Einfügungen

Page 10: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Relaxiertes Balanzieren) Prof. Th. Ottmann

10

Beseitigung eines Push-up-requests (1)

• Push-up-request führt entweder zu einer lokalen strukturellen Änderung mit

konstantem Aufwand (Fall 1)

• oder zu einer Verschiebung des Push-up-requests auf das nächst höhere Niveau

ohne Strukturänderung (Fall2)

Fall1 [Genug Platz auf nächst-höherer Schicht]

1 2 31 2

3

1 2

3 4 1 2 3 4

1

2 3

4 2 31 4

Page 11: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Relaxiertes Balanzieren) Prof. Th. Ottmann

11

Beseitigung eines Push-up-requests (2)

• Fall2 [Nächste Schicht voll]

Schaffe ggfs. neue Schicht an der Spitze

1

2 3

4 5 1

2 3

4 5

Page 12: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Relaxiertes Balanzieren) Prof. Th. Ottmann

12

Beseitigung mehrerer Push-up-Requests

Unterhalb unterster Straßen-Grenze:Von oben nach unten!

Sonst beliebig-nebenläufig!

Page 13: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Relaxiertes Balanzieren) Prof. Th. Ottmann

13

Entfernen

Deponiere für jede Entfernung einen Lösch-Vermerk.Beseitige Lösch-Vermerke.

… …

… … ....

…..

… …

Page 14: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Relaxiertes Balanzieren) Prof. Th. Ottmann

14

Beseitigung eines Löschvermerks

Fall 1 [genügend Knoten auf unterster Schicht]

Fall 2 [unterste Schicht zu dünn]

Deponiere „pull-down-request“ p q q

Page 15: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Relaxiertes Balanzieren) Prof. Th. Ottmann

15

Behandlung eines Pull-down Requests führt

• entweder zu einer Strukturänderung (mit konstanten Kosten)und Halt,

• oder (ausschließlich) zu einer rekursiven Verschiebung auf nächste

Schicht ohne Strukturänderung

Fall 1[Es gibt “genügend” Knoten auf nächsthöherer Schicht]

Wenigstens 3 Links

Umstrukturieren und Halt!

…p

Beseitigung eines Pull-down-requests

Page 16: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Relaxiertes Balanzieren) Prof. Th. Ottmann

16

Beseitigung von Pull-down-requests (1)

1p 2 3 1p 2 3

1p 2 3 4 p 1 2 3 41 p2 3 4

1 2 3 4p

Fall1 [genügend Knoten auf nächster Schicht]

Endliche Strukturänderung undHalt!

Page 17: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Relaxiertes Balanzieren) Prof. Th. Ottmann

17

Beseitigung von Pull-down-requests (2)

p

qq

p

Fall2 [nicht genügend Knoten auf nächster Schicht]

Verschiebe Pull-down-request auf nächst höhere Schicht,ohne strukturelle Änderungen

(Beseitige und oberste Schicht, wenn q Wurzel ist.)

Page 18: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Relaxiertes Balanzieren) Prof. Th. Ottmann

18

• Deponiere eine Entferne-Marke für jede Delete-Operation

• Beseitige die Entferne-Marken in beliebiger Reihenfolge, aber so, dass sie sich nicht gegenseitig stören.

Folgen von Entferne-Operationen

Page 19: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Relaxiertes Balanzieren) Prof. Th. Ottmann

19

Nebenläufige Updates und Rebalanzierungen

Updates betreffen verschiedene Blätter

Einfügen eines Schlüssels x In einem Blatt mit Löschmarke

X

Page 20: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Relaxiertes Balanzieren) Prof. Th. Ottmann

20

Zu entfernendes Blatt

Nebenläufige Updates und Rebalanzierungen

Behandle Einfügungen, Entfernungen, , nebenläufig in beliebiger ReihenfolgeNach dem Prinzip „Topmost first“ und vermeide Überlappungen von Transformationen!

Page 21: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Relaxiertes Balanzieren) Prof. Th. Ottmann

21

Schlussbemerkung (1)

• Viele mögliche Strategien für die nebenläufige Behandlung von

• Reduktion und Zusammenfassung von verschiedenen Fällen bei der Beseitigung

von

• Erhöhung der Effizienz durch Zusammenfassung verschiedenen

Umstrukturierungen möglich.

Page 22: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Relaxiertes Balanzieren) Prof. Th. Ottmann

22

Schlussbemerkung (2)

>=4 >=4

Rotation

q

p

r

r

q

p

p 1 2 3

halt!

p12

3