![Page 1: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Persistente und vergessliche Datenstrukturen) Prof. Th. Ottmann](https://reader035.vdokument.com/reader035/viewer/2022062404/55204d6549795902118bad38/html5/thumbnails/1.jpg)
1
Vorlesung Informatik 2
Algorithmen und Datenstrukturen
(23 –Persistente und vergessliche Datenstrukturen)
Prof. Th. Ottmann
![Page 2: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Persistente und vergessliche Datenstrukturen) Prof. Th. Ottmann](https://reader035.vdokument.com/reader035/viewer/2022062404/55204d6549795902118bad38/html5/thumbnails/2.jpg)
2
Übersicht
• Motivation: Vergessliche und persistente Strukturen
• Beispiele: Arrays, Suchbäume, Z-stratifizierte Suchbäume, Relaxierung
• Methoden zur Persistenzsicherung: Struktur-Kopier-, Pfad-Kopier-, DSST-Methode
• Anwendung: Punktlokalisation
• Vergessliche Strukturen: Randomisierte und eindeutige Strukturen, insbesondere
Sprung-Listen
• Praktisches Beispiel zeitabhängiger Datenströme: Aufzeichnung und Wiedergabe
von Whiteboard Daten, insbesondere Handschrift
![Page 3: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Persistente und vergessliche Datenstrukturen) Prof. Th. Ottmann](https://reader035.vdokument.com/reader035/viewer/2022062404/55204d6549795902118bad38/html5/thumbnails/3.jpg)
3
Motivation
Eine Struktur zur Speicherung einer Menge von Schlüsseln heißt vergesslich, wenn
aus der Gestalt der Struktur nicht auf die Erzeugungshistorie geschlossen werden
kann.
Eine Struktur heißt persistent, wenn neben der aktuellen auch frühere Versionen
existieren.
Partiell persistent: Modifikationen nur bei aktueller, Zugriff (Suche) auch bei früheren
Versionen möglich.
Voll persistent: Zugriff und Modifikation für alle Versionen
Konfluent persistent: Mehrere frühere Versionen können zu neuer aktueller Version
verknüpft werden.
![Page 4: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Persistente und vergessliche Datenstrukturen) Prof. Th. Ottmann](https://reader035.vdokument.com/reader035/viewer/2022062404/55204d6549795902118bad38/html5/thumbnails/4.jpg)
4
Beispiel: Arrays
Array:
2 4 8 15 17 43 47 ……
Eindeutige Struktur, daher vergesslich!
Suchen: In Zeit O( log n) möglich, binäres Suchen
Update (Einfügen, Entfernen): (n)
Aber Vorsicht:Speicherbelegung könnte dennoch von Erzeugungshistorie abhängen!
![Page 5: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Persistente und vergessliche Datenstrukturen) Prof. Th. Ottmann](https://reader035.vdokument.com/reader035/viewer/2022062404/55204d6549795902118bad38/html5/thumbnails/5.jpg)
5
Beispiel: Natürliche Suchbäume
Nur teilweise vergesslich!
• Einfügereihenfolge teilweise rekonstruierbar.
• Entfernte Schlüssel nicht sichtbar.
Suchen, Einfügen. Entfernen von Schlüsseln: (n) Zeit
1, 3, 5, 7 5, 1, 3, 7
13
57 3
1
5
7
![Page 6: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Persistente und vergessliche Datenstrukturen) Prof. Th. Ottmann](https://reader035.vdokument.com/reader035/viewer/2022062404/55204d6549795902118bad38/html5/thumbnails/6.jpg)
6
Beispiel: Balancierte Suchbäume
Problem:(Zu) viele Updates auf einmal (Z.B. bei der Aufzeichnung von Handschrift)Nicht genügend Zeit zur sequentiellen BearbeitungLösung:Relaxiert balancierte Suchbäume: Update und Rebalancierungs-Operationen werden nebenläufig ausgeführt!
10
6 15
2 9 11 23
5 7 20 30
6 7 9
10 11 15
5
2
20 23
![Page 7: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Persistente und vergessliche Datenstrukturen) Prof. Th. Ottmann](https://reader035.vdokument.com/reader035/viewer/2022062404/55204d6549795902118bad38/html5/thumbnails/7.jpg)
7
Stratifizierte Suchbäume
....
…..
… …
… …
![Page 8: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Persistente und vergessliche Datenstrukturen) Prof. Th. Ottmann](https://reader035.vdokument.com/reader035/viewer/2022062404/55204d6549795902118bad38/html5/thumbnails/8.jpg)
8
Beispiel
![Page 9: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Persistente und vergessliche Datenstrukturen) Prof. Th. Ottmann](https://reader035.vdokument.com/reader035/viewer/2022062404/55204d6549795902118bad38/html5/thumbnails/9.jpg)
9
Beispiel
![Page 10: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Persistente und vergessliche Datenstrukturen) Prof. Th. Ottmann](https://reader035.vdokument.com/reader035/viewer/2022062404/55204d6549795902118bad38/html5/thumbnails/10.jpg)
10
Einfügen
Füge neuen Schlüssel ganz unten ein und deponiere einen „push-up-request“
… …
… … ....
…..
…..
x p
![Page 11: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Persistente und vergessliche Datenstrukturen) Prof. Th. Ottmann](https://reader035.vdokument.com/reader035/viewer/2022062404/55204d6549795902118bad38/html5/thumbnails/11.jpg)
11
Iterierte Folge von Einfügungen
![Page 12: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Persistente und vergessliche Datenstrukturen) Prof. Th. Ottmann](https://reader035.vdokument.com/reader035/viewer/2022062404/55204d6549795902118bad38/html5/thumbnails/12.jpg)
12
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ächster Schicht]
1 2 31 2
3
1 2
3 4 1 2 3 4
1
2 3
4 2 31 4
![Page 13: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Persistente und vergessliche Datenstrukturen) Prof. Th. Ottmann](https://reader035.vdokument.com/reader035/viewer/2022062404/55204d6549795902118bad38/html5/thumbnails/13.jpg)
13
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 14: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Persistente und vergessliche Datenstrukturen) Prof. Th. Ottmann](https://reader035.vdokument.com/reader035/viewer/2022062404/55204d6549795902118bad38/html5/thumbnails/14.jpg)
14
Entfernen
Deponiere für jede Entfernung einen Lösch-Vermerk.Beseitige Lösch-Vermerke.
… …
… … ....
…..
… …
![Page 15: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Persistente und vergessliche Datenstrukturen) Prof. Th. Ottmann](https://reader035.vdokument.com/reader035/viewer/2022062404/55204d6549795902118bad38/html5/thumbnails/15.jpg)
15
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 16: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Persistente und vergessliche Datenstrukturen) Prof. Th. Ottmann](https://reader035.vdokument.com/reader035/viewer/2022062404/55204d6549795902118bad38/html5/thumbnails/16.jpg)
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 –Persistente und vergessliche Datenstrukturen) Prof. Th. Ottmann](https://reader035.vdokument.com/reader035/viewer/2022062404/55204d6549795902118bad38/html5/thumbnails/17.jpg)
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
![Page 18: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Persistente und vergessliche Datenstrukturen) Prof. Th. Ottmann](https://reader035.vdokument.com/reader035/viewer/2022062404/55204d6549795902118bad38/html5/thumbnails/18.jpg)
18
Z-stratifizierte Bäume: Beobachtungen
Einfüge-, Entferne- und Rebalancierungs-Operationen (Beseitigung von , ) lassen
sich beliebig verzahnen.
Die amortisierten Umstrukturierungskosten pro Einfügung und Entfernung sind
konstant.
Erzeugungshistorie ist aus aktueller Version teilweise erkennbar (Einfügereihenfolge
und entfernte Schlüssel sind teilweise sichtbar)
Aber:
• Update Operationen beziehen sich stets nur auf aktuelle Version
• Z-stratifizierte Bäume sind nicht persistent
![Page 19: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Persistente und vergessliche Datenstrukturen) Prof. Th. Ottmann](https://reader035.vdokument.com/reader035/viewer/2022062404/55204d6549795902118bad38/html5/thumbnails/19.jpg)
19
Übersicht
• Motivation: Vergessliche und persistente Strukturen
• Beispiele: Arrays, Suchbäume, Z-stratifizierte Suchbäume
• Methoden zur Persistenzsicherung: Struktur-Kopier-, Pfad-Kopier-, DSST-Methode
• Anwendung: Punktlokalisitation
• Vergessliche Strukturen: Randomisierte und eindeutige Strukturen, insbesondere
Sprung-Listen
• Praktisches Beispiel zeitabhängiger Datenströme: Aufzeichnung und Wiedergabe
von Whiteboard Daten, insbesondere Handschrift
![Page 20: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Persistente und vergessliche Datenstrukturen) Prof. Th. Ottmann](https://reader035.vdokument.com/reader035/viewer/2022062404/55204d6549795902118bad38/html5/thumbnails/20.jpg)
20
Einfache Strategien zur Persistenz-Erhaltung
• Kopiere gesamte Struktur vor jeder Update-Operation, liefert volle Persistenz zum
Preis von (n) Zeit pro Update und Platz (m n) für m Updates auf Strukturen der
Größe n. (Struktur-Kopier-Methode)
• Tue nichts sondern speichere ein log-File der Updates! Um auf Version i
zuzugreifen, führe zunächst die i ersten Updates auf der Anfangsstruktur aus, um
Version i zu erzeugen. (i) Zeit per Zugriff, O(m) Platz für m Operationen.
• Hybrid-Ansatz: Speichere die gesamte Folge der Updates und zusätzlich jede k-te
Version für ein geeignetes k. Folge: Zeit oder Platzbedarf nimmt mindestens um
Faktor sqr(m) zu!
Gibt es bessere Methoden? …. Für Suchbäume ….
![Page 21: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Persistente und vergessliche Datenstrukturen) Prof. Th. Ottmann](https://reader035.vdokument.com/reader035/viewer/2022062404/55204d6549795902118bad38/html5/thumbnails/21.jpg)
21
Persistente Suchbäume (1)
Pfadkopiermethode
5
1 7
3
0
Version 0:
![Page 22: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Persistente und vergessliche Datenstrukturen) Prof. Th. Ottmann](https://reader035.vdokument.com/reader035/viewer/2022062404/55204d6549795902118bad38/html5/thumbnails/22.jpg)
22
Persistente Suchbäume (1)
Pfad-Kopier-Methode
5 5
1 1 7
3 3
2
0 1
Version 1:Einfüge (2)
![Page 23: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Persistente und vergessliche Datenstrukturen) Prof. Th. Ottmann](https://reader035.vdokument.com/reader035/viewer/2022062404/55204d6549795902118bad38/html5/thumbnails/23.jpg)
23
Persistente Suchbäume (1)
Pfad-Kopier-Methode
5 5 5
1 1 1 7
3 3 3
2 4
0 1 2
Version 1:Einfüge (2)Version 2:Einfüge (4)
![Page 24: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Persistente und vergessliche Datenstrukturen) Prof. Th. Ottmann](https://reader035.vdokument.com/reader035/viewer/2022062404/55204d6549795902118bad38/html5/thumbnails/24.jpg)
24
Persistente Suchbäume (1)
Pfad-Kopier-Methode
Umstrukturierungs-Kosten O(log n) pro Update Operation
5 5 5
1 1 1 7
3 3 3
2 4
0 1 2
Version 1:Einfüge (2)Version 2:Einfüge (4)
![Page 25: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Persistente und vergessliche Datenstrukturen) Prof. Th. Ottmann](https://reader035.vdokument.com/reader035/viewer/2022062404/55204d6549795902118bad38/html5/thumbnails/25.jpg)
25
Persistente Suchbäume (2)
DSST-Methode: Erweitere jeden Knoten um Modifikationsfeld mit Zeitstempel
? alle Versionenvor Zeit t
alle Versionenab Zeit t
Modifikationsfelder•sind anfangs leer•werden v.u.n.o. gefüllt
k
t: rplp rp
![Page 26: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Persistente und vergessliche Datenstrukturen) Prof. Th. Ottmann](https://reader035.vdokument.com/reader035/viewer/2022062404/55204d6549795902118bad38/html5/thumbnails/26.jpg)
26
DSST Methode
5
1
3
7
Version 0
![Page 27: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Persistente und vergessliche Datenstrukturen) Prof. Th. Ottmann](https://reader035.vdokument.com/reader035/viewer/2022062404/55204d6549795902118bad38/html5/thumbnails/27.jpg)
27
DSST Methode
5
1
3
2
7
1 lp
Version 0:
![Page 28: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Persistente und vergessliche Datenstrukturen) Prof. Th. Ottmann](https://reader035.vdokument.com/reader035/viewer/2022062404/55204d6549795902118bad38/html5/thumbnails/28.jpg)
28
DSST Methode
5
1
3
2
3
4
7
1 lp
Version 1:Einfüge (2)Version 2:Einfüge (4)
![Page 29: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Persistente und vergessliche Datenstrukturen) Prof. Th. Ottmann](https://reader035.vdokument.com/reader035/viewer/2022062404/55204d6549795902118bad38/html5/thumbnails/29.jpg)
29
DSST Methode
Die amortisierten Kosten (Zeit und Platz) pro Update Operation sind O(1)
5
1
3
2
3
4
72 rp
1 lp
Version 1:Einfüge (2)Version 2:Einfüge (4)
![Page 30: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Persistente und vergessliche Datenstrukturen) Prof. Th. Ottmann](https://reader035.vdokument.com/reader035/viewer/2022062404/55204d6549795902118bad38/html5/thumbnails/30.jpg)
30
Übersicht
• Motivation: Vergessliche und persistente Strukturen
• Beispiele: Arrays, Suchbäume, Z-stratifizierte Suchbäume, Relaxierung
• Methoden zur Persistenzsicherung: Struktur-Kopier-, Pfad-Kopier-, DSST-Methode
• Anwendung: Punktlokalisation
• Vergessliche Strukturen: Randomisierte und eindeutige Strukturen, insbesondere
Sprung-Listen
• Praktisches Beispiel zeitabhängiger Datenströme: Aufzeichnung und Wiedergabe
von Whiteboard Daten, insbesondere Handschrift
![Page 31: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Persistente und vergessliche Datenstrukturen) Prof. Th. Ottmann](https://reader035.vdokument.com/reader035/viewer/2022062404/55204d6549795902118bad38/html5/thumbnails/31.jpg)
31
Anwendung: Planare Punktlokalisation
Suppose that the Euclidian plane is subdivided into polygons by n line segments that intersect only at their endpoints.
Given such polygonal subdivision and an on-line sequence of query points in the plane, the planar point location problem, is to determine for each query point the polygon containing it.
Measure an algorithm by three parameters:
1) The preprocessing time.
2) The space required for the data structure.
3) The time per query.
![Page 32: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Persistente und vergessliche Datenstrukturen) Prof. Th. Ottmann](https://reader035.vdokument.com/reader035/viewer/2022062404/55204d6549795902118bad38/html5/thumbnails/32.jpg)
32
Planar point location -- example
![Page 33: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Persistente und vergessliche Datenstrukturen) Prof. Th. Ottmann](https://reader035.vdokument.com/reader035/viewer/2022062404/55204d6549795902118bad38/html5/thumbnails/33.jpg)
33
Planar point location -- example
![Page 34: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Persistente und vergessliche Datenstrukturen) Prof. Th. Ottmann](https://reader035.vdokument.com/reader035/viewer/2022062404/55204d6549795902118bad38/html5/thumbnails/34.jpg)
34
Solving planar point location (Cont.)
Partition the plane into vertical slabs by drawing a vertical line through each endpoint.
Within each slab the lines are totally ordered.
Allocate a search tree per slab containing the lines at the leaves with each line associate the polygon above it.
Allocate another search tree on the x-coordinates of the vertical lines
![Page 35: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Persistente und vergessliche Datenstrukturen) Prof. Th. Ottmann](https://reader035.vdokument.com/reader035/viewer/2022062404/55204d6549795902118bad38/html5/thumbnails/35.jpg)
35
Solving planar point location (Cont.)
To answer query
first find the appropriate slab
Then search the slab to find the polygon
![Page 36: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Persistente und vergessliche Datenstrukturen) Prof. Th. Ottmann](https://reader035.vdokument.com/reader035/viewer/2022062404/55204d6549795902118bad38/html5/thumbnails/36.jpg)
36
Planar point location -- example
![Page 37: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Persistente und vergessliche Datenstrukturen) Prof. Th. Ottmann](https://reader035.vdokument.com/reader035/viewer/2022062404/55204d6549795902118bad38/html5/thumbnails/37.jpg)
37
Planar point location -- analysis
Query time is O(log n)
How about the space ?
(n2)
And so could be the preprocessing time
![Page 38: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Persistente und vergessliche Datenstrukturen) Prof. Th. Ottmann](https://reader035.vdokument.com/reader035/viewer/2022062404/55204d6549795902118bad38/html5/thumbnails/38.jpg)
38
Planar point location -- bad example
Total # lines O(n), and number of lines in each slab is O(n).
![Page 39: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Persistente und vergessliche Datenstrukturen) Prof. Th. Ottmann](https://reader035.vdokument.com/reader035/viewer/2022062404/55204d6549795902118bad38/html5/thumbnails/39.jpg)
39
Planar point location & persistence
So how do we improve the space bound ?
Key observation: The lists of the lines in adjacent slabs are very similar.
Create the search tree for the first slab.
Then obtain the next one by deleting the lines that end at the corresponding vertex and adding the lines that start at that vertex
How many insertions/deletions are there alltogether ?
2n
![Page 40: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Persistente und vergessliche Datenstrukturen) Prof. Th. Ottmann](https://reader035.vdokument.com/reader035/viewer/2022062404/55204d6549795902118bad38/html5/thumbnails/40.jpg)
40
Planar point location & persistence (cont)
Updates should be persistent since we need all search trees at the end.
Partial persistence is enough
Well, we already have the path copying method, lets use it.What do we get ?
O(nlogn) space and O(nlog n) preprocessing time.
We shall improve the space bound to O(n).
![Page 41: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Persistente und vergessliche Datenstrukturen) Prof. Th. Ottmann](https://reader035.vdokument.com/reader035/viewer/2022062404/55204d6549795902118bad38/html5/thumbnails/41.jpg)
41
Übersicht
• Motivation: Vergessliche und persistente Strukturen
• Beispiele: Arrays, Suchbäume, Z-stratifizierte Suchbäume
• Methoden zur Persistenzsicherung: Struktur-Kopier-, Pfad-Kopier-, DSST-Methode
• Anwendung: Punktlokalisation
• Vergessliche Strukturen: Randomisierte und eindeutige Strukturen, insbesondere
Sprung-Listen
• Praktisches Beispiel zeitabhängiger Datenströme: Aufzeichnung und Wiedergabe
von Whiteboard Daten, insbesondere Handschrift
![Page 42: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Persistente und vergessliche Datenstrukturen) Prof. Th. Ottmann](https://reader035.vdokument.com/reader035/viewer/2022062404/55204d6549795902118bad38/html5/thumbnails/42.jpg)
42
Strategien für vergessliche Strukturen
Mache die Struktur eindeutig:
• Mengeneindeutigkeit: Für jede Menge von n Schlüsseln gibt es genau eine
Struktur, die sie speichert.
• Die Speicherung ist ordnungseindeutig, d.h. die Knoten der Struktur sind
angeordnet und die Schlüssel sind der Größe nach in den Knoten mit
aufsteigenden Nummern gespeichert.
Randomisiere die Struktur:
• Sichere, dass der Erwartungswert für das Auftreten einer Struktur, die eine Menge
M von Schlüsseln speichert, unabhängig davon ist, wie M entstanden ist.
Beobachtung: Die Zuweisung von Speicheradressen zu Zeigern muss randomisiert
erfolgen!
![Page 43: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Persistente und vergessliche Datenstrukturen) Prof. Th. Ottmann](https://reader035.vdokument.com/reader035/viewer/2022062404/55204d6549795902118bad38/html5/thumbnails/43.jpg)
43
Beispiel für eine randomisierte Struktur
Z-stratifizierter Suchbaum
Wähle auf jeder Schicht eineZufällige Verteilung der Bäume aus Z
Einfügen ?Entfernen ?
… …
… … ....
…..
…..
![Page 44: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Persistente und vergessliche Datenstrukturen) Prof. Th. Ottmann](https://reader035.vdokument.com/reader035/viewer/2022062404/55204d6549795902118bad38/html5/thumbnails/44.jpg)
44
Mengen- und ordnungseindeutige Strukturen
Untere Schranken?
Annahmen: Wörterbuch der Größe n wird repräsentiert durch Graph mit n Knoten
Knotengrad endlich (fest),
feste Ordnung der Knoten,
i-ter Knoten speichert i-ten Schlüssel.
Operationen zur Veränderung von Graphen:
Schaffen | Entfernen von Knoten
Pointer change
Austausch von Schlüsseln
Satz: Für jede mengen- und ordnungs-eindeutige Repräsentation von Wörterbüchern gilt, daß wenigstens eine der drei Operationen Suchen, Einfügen und Entfernen Zeit (n1/3) kostet.
![Page 45: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Persistente und vergessliche Datenstrukturen) Prof. Th. Ottmann](https://reader035.vdokument.com/reader035/viewer/2022062404/55204d6549795902118bad38/html5/thumbnails/45.jpg)
45
Sprung-Listen
(Halbdynamische) 2-Ebenen Sprung-Listen
2-Ebenen-Sprung-Liste der Größe n
niini 22 )1(
Suchen: O(i) = O( ) ZeitEinfügen: Entfernen: O( )
Zeit
n
n
22 4113
tail
0 i 2i n
(n-1)/i · i
2 3 5 7 8 10 11 12 14 17 19
![Page 46: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Persistente und vergessliche Datenstrukturen) Prof. Th. Ottmann](https://reader035.vdokument.com/reader035/viewer/2022062404/55204d6549795902118bad38/html5/thumbnails/46.jpg)
46
3-Ebenen Sprung-Listen
33 )1( ini
33 43,30 nnin 3
level 2
Suche(x): bestimme x durch Nachlaufen der level-2-Zeiger unter i2 Schlüsseln, die x enthalten können,level-1-Zeiger unter i Schlüsseln, die x enthalten können,level-0-Zeiger unter i Schlüsseln
Suchzeit: O(i) = O(n1/3)
0 i 2i i2 i2+i 2·i2
![Page 47: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Persistente und vergessliche Datenstrukturen) Prof. Th. Ottmann](https://reader035.vdokument.com/reader035/viewer/2022062404/55204d6549795902118bad38/html5/thumbnails/47.jpg)
47
3-Ebenen Sprung-Listen
33 )1( ini
33 43,30 nnin 3
level 2
Update erfordertÄnderung von 2 Zeigern auf level 0Änderung von i Zeigern auf level 1Änderung aller i Zeiger auf level 2
Update Zeit: O(i) = O(n1/3)
0 i 2i i2 i2+i 2·i2
![Page 48: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Persistente und vergessliche Datenstrukturen) Prof. Th. Ottmann](https://reader035.vdokument.com/reader035/viewer/2022062404/55204d6549795902118bad38/html5/thumbnails/48.jpg)
48
c-Ebenen Sprung-Liste
Sei
Lower levels:
level 0: alle Zeiger mit Länge 1:
...
level j: alle Zeiger mit Länge ij-1:
...
level c/2 : ...
Upper levels:
level j: verbinde in einer Liste die Knoten
1, 1·ij-1+1, 2· ij-1+1, 3· ij-1+1, ...
level c:
cc ini )1(
![Page 49: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Persistente und vergessliche Datenstrukturen) Prof. Th. Ottmann](https://reader035.vdokument.com/reader035/viewer/2022062404/55204d6549795902118bad38/html5/thumbnails/49.jpg)
49
Satz:
Für jedes sind c-Ebenen Sprung-Listen eine größen- und ordnungseindeutige
Repräsentation von Wörterbüchern mit folgenden Eigenschaften:
Platzbedarf O(c·n)
Suchzeit O(c·n1/c)
Updatezeit , falls n gerade
, falls n ungerade
)( nO
)( 2/)1( ccnO
3c
c-Ebenen Sprung-Liste
![Page 50: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Persistente und vergessliche Datenstrukturen) Prof. Th. Ottmann](https://reader035.vdokument.com/reader035/viewer/2022062404/55204d6549795902118bad38/html5/thumbnails/50.jpg)
50
Übersicht
• Motivation: Vergessliche und persistente Strukturen
• Beispiele: Arrays, Suchbäume, Z-stratifizierte Suchbäume
• Methoden zur Persistenzsicherung: Struktur-Kopier-, Pfad-Kopier-, DSST-Methode
• Vergessliche Strukturen: Randomisierte und eindeutige Strukturen, insbesondere
Sprung-Listen
• Praktisches Beispiel zeitabhängiger Datenströme: Aufzeichnung und Wiedergabe
von Whiteboard Daten, insbesondere Handschrift
![Page 51: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Persistente und vergessliche Datenstrukturen) Prof. Th. Ottmann](https://reader035.vdokument.com/reader035/viewer/2022062404/55204d6549795902118bad38/html5/thumbnails/51.jpg)
51
Author Audience
Data sources
Lightweight
content creation
Recorded learning module Document
Input media• Whiteboard• TouchScreen• Tablet PC
Zeitabhängige Daten beim Presentation Recording
![Page 52: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Persistente und vergessliche Datenstrukturen) Prof. Th. Ottmann](https://reader035.vdokument.com/reader035/viewer/2022062404/55204d6549795902118bad38/html5/thumbnails/52.jpg)
52
Aufzeichnungs Technologie
• Low End: Digitale Tafelbilder und Audio/Video-
Aufzeichnung einer Tafel- und Kreide Vorlesung.
(Real audio/video + hi-res. digital images)
• High End: Direkte Aufzeichnung einer
Computerpräsentation (mit Whiteboard und Daten
Projektor für die Zuhörer, Stifteingabe, Tablet PC,
Wacom Tablet ...)
Software: RealPresenter, Camtasia, ..., AOF)
![Page 53: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Persistente und vergessliche Datenstrukturen) Prof. Th. Ottmann](https://reader035.vdokument.com/reader035/viewer/2022062404/55204d6549795902118bad38/html5/thumbnails/53.jpg)
53
Dozent im Hörsaal
![Page 54: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Persistente und vergessliche Datenstrukturen) Prof. Th. Ottmann](https://reader035.vdokument.com/reader035/viewer/2022062404/55204d6549795902118bad38/html5/thumbnails/54.jpg)
54
Integrierte Hardware Lösung
![Page 55: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Persistente und vergessliche Datenstrukturen) Prof. Th. Ottmann](https://reader035.vdokument.com/reader035/viewer/2022062404/55204d6549795902118bad38/html5/thumbnails/55.jpg)
55
Cintiq Tablet (Wacom)
• Stifteingabe, großes Display
• Augenkontakt mit Zuhörern
![Page 56: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Persistente und vergessliche Datenstrukturen) Prof. Th. Ottmann](https://reader035.vdokument.com/reader035/viewer/2022062404/55204d6549795902118bad38/html5/thumbnails/56.jpg)
56
Datenströme
![Page 57: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Persistente und vergessliche Datenstrukturen) Prof. Th. Ottmann](https://reader035.vdokument.com/reader035/viewer/2022062404/55204d6549795902118bad38/html5/thumbnails/57.jpg)
57
Random Acess Fähigkeit
Zugriff auf ink-Object sj zum Zeitpunkt tj erfordert die sofortige Darstellung
von sj sowie aller ink-Objekte seit t0
![Page 58: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Persistente und vergessliche Datenstrukturen) Prof. Th. Ottmann](https://reader035.vdokument.com/reader035/viewer/2022062404/55204d6549795902118bad38/html5/thumbnails/58.jpg)
58
Whiteboard Daten
Whiteboard Datenstrom erfordert
• Schnelles Einfügen, Entfernen graphischer Objekte (Linien, Kreise, pen-traces, …)
in sehr großer Zahl,
• Partiell persistente Speicherung mit,
• Zugriff (Ausgabe und „Rendering“) aller Daten zu gegebenem Zeitpunkt,
• Synchronisierbarkeit (als slave) mit Audiostrom (master).
Problem: Finde eine geeignete Speicherungsform für Whiteboarddatenstrom!
![Page 59: 1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Persistente und vergessliche Datenstrukturen) Prof. Th. Ottmann](https://reader035.vdokument.com/reader035/viewer/2022062404/55204d6549795902118bad38/html5/thumbnails/59.jpg)
59
Postprocessing
Whiteboard-Strom wird nach der Struktur-Kopier-Methode persistent gemacht:
Für jeden Zeitpunkt t wird die Liste aller zu diesem Zeitpunkt sichtbaren Objekte
berechnet und für direkten Zugriff gespeichert
Nachteil: Hohes Datenvolumen
Vorteil: Visible Scrolling
Speicherung und Darstellung von Handschrift: Finde guten Kompromiss zwischen:
Datenvolumen
Zugriffskosten (Zeit) und dynamischer Wiedergabe (visible scrolling)
Natürlichkeit (persönliche Note)
Skalierbarkeit (Vektor- vs. Rasterdarstellung)