Upload
anke-stueve
View
106
Download
0
Embed Size (px)
Citation preview
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
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
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
5
Stratifizierte Suchbäume
....
…..
… …
… …
Die Höhe eines Z-stratifizierten Baumes mit N Blättern ist O(log N)
6
Beispiel
7
Beispiel
8
Einfügen
Füge neuen Schlüssel ganz unten ein und deponiere einen „push-up-request“
… …
… … ....
…..
…..
x p
9
Iterierte Folge von Einfügungen
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
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
12
Beseitigung mehrerer Push-up-Requests
Unterhalb unterster Straßen-Grenze:Von oben nach unten!
Sonst beliebig-nebenläufig!
13
Entfernen
Deponiere für jede Entfernung einen Lösch-Vermerk.Beseitige Lösch-Vermerke.
… …
… … ....
…..
… …
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
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
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!
17
Beseitigung von Pull-down-requests (2)
p
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.)
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
19
Nebenläufige Updates und Rebalanzierungen
…
Updates betreffen verschiedene Blätter
Einfügen eines Schlüssels x In einem Blatt mit Löschmarke
X
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!
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.
22
Schlussbemerkung (2)
>=4 >=4
Rotation
q
p
r
r
q
p
p 1 2 3
halt!
p12
3