24_Relaxiertes_Balancieren

Werbung
Vorlesung Informatik 2
Algorithmen und Datenstrukturen
(24 – Relaxiertes Balancieren)
Prof. Dr. Susanne Albers
Balancierte (Blatt-)suchbäume
10
15
6
2
11
9
2
7
5
5
6
7
10
9
11
23
15
20
20
30
23
Dictionary: Menge von Schlüsseln,
Operations: Suchen, Einfügen, Entfernen
Balancierte (Blatt-)suchbäume sind eine mögliche Implementation von dictionaries.
AVL-trees, symmetric Binary B-Trees, Red-Black-trees, Half-balanced Trees, Weightbalanced Trees, B-Bäume, Bruder-Bäume, …
2
Rotation
10
6
15
2
11
9
2
7
5
5
6
Rotation
7
x
q
10
15
20
20
9
30
23
q x
p
y
y
3
1
11
23
2
p
1
2
3
3
Striktes und relaxiertes Balancieren
Striktes Rebalancieren:
Auf jedes Update folgt unmittelbar eine Folge von Rebalancierungs-Operationen.
Relaxiertes Balancieren:
Entkopplung der Rebalancierungs- von den Update-Operationen, sodass beide
nebenläufig ausführbar werden.
Ziel 1:
Konstante Umstrukturierungskosten
Ziel 2:
Erhöhen der Parallelität von Such- und Update-Operationen
Kessels 1983
Larsen 1994, 1997, …
Larsen, Fagerberg 1995
Ot/Soisalon-Soininen/Larsen: Acta Informatica 2001
4
Stratifizierte Suchbäume
…..
… …
..
..
…
…
Die Höhe eines Z-stratifizierten Baumes mit N Blättern ist O(log N)
5
Beispiel
6
Beispiel
7
Einfügen
…..
…
…
…
…..
..
..
x p
…
Füge neuen Schlüssel ganz unten ein und deponiere einen „push-up-request“
8
Iterierte Folge von Einfügungen
9
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 (Fall 2)
Fall1 [Genug Platz auf nächsthöherer Schicht]
3
1
1
2
1
3
4
1
23
4
2 3
2
3
1
2
4
1
23
4
10
Beseitigung eines Push-up-requests (2)
•
Fall 2 [Nächste Schicht voll]
1
4
2
5
3
1
4
2
5
3
Schaffe ggfs. neue Schicht an der Spitze
11
Beseitigung mehrerer Push-up-Requests
Unterhalb unterster Straßengrenze:
Von oben nach unten!
Sonst beliebig nebenläufig!
12
Entfernen
…..
…
…
…
…
..
..
…
…
Deponiere für jede Entfernung einen Löschvermerk.
Beseitige Löschvermerke.
13
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
14
Beseitigung eines Pull-down-requests
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]
Umstrukturieren und Halt!
p
Wenigstens 3 Links
…
15
Beseitigung von Pull-down-requests (1)
Fall1 [genügend Knoten auf nächster Schicht]
Strukturänderung konstanten Aufwands
und Halt!
p 1 2 3
p1 23 4
p 1 23 4
p12 3
1 2
1 2
p3 4
p 3 4
16
Beseitigung von Pull-down-requests (2)
Fall2 [nicht genügend Knoten auf nächster Schicht]
q
q
p
p
Verschiebe Pull-down-request auf nächst höhere Schicht,
ohne strukturelle Änderungen
(Beseitige und oberste Schicht, wenn q Wurzel ist.)
17
Folgen von Entferne-Operationen
• 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.
18
Nebenläufige Updates und Rebalancierungen
Updates betreffen verschiedene Blätter
…
X
Einfügen eines Schlüssels x
In einem Blatt mit Löschmarke
19
Nebenläufige Updates und Rebalancierungen
Zu entfernendes
Blatt
Behandle Einfügungen, Entfernungen, , nebenläufig in beliebiger Reihenfolge
Nach dem Prinzip „Topmost first“ und vermeide Überlappungen von Transformationen!
20
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.
21
Schlussbemerkung (2)
q
r
r
p
q
Rotation
p
>=4
>=4
halt!
p
3
12
p 1 2
3
22
Zugehörige Unterlagen
Herunterladen