Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Persistente und vergessliche Datenstrukturen) Prof. Th. Ottmann.

Slides:



Advertisements
Ähnliche Präsentationen
Developing your Business to Success We are looking for business partners. Enterprise Content Management with OS|ECM Version 6.
Advertisements

Prof. Dr. S. Albers Prof.Dr.Th Ottmann
Geometrische Datenstrukturen Haozhe Chen Aaron Richardson.
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil3.
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Kapitel 6: Klassifizierung von Sortiertechniken
R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister)
Kapitel 3: Listen Lineare Liste: endliche Folge von Elementen eines Grundtyps (n>=0), leere Liste falls n=0 Listenelemente besitzen.
Modelle und Methoden der Linearen und Nichtlinearen Optimierung (Ausgewählte Methoden und Fallstudien) U N I V E R S I T Ä T H A M B U R G November 2011.
Modelle und Methoden der Linearen und Nichtlinearen Optimierung (Ausgewählte Methoden und Fallstudien) U N I V E R S I T Ä T H A M B U R G November 2011.
1 JIM-Studie 2010 Jugend, Information, (Multi-)Media Landesanstalt für Kommunikation Baden-Württemberg (LFK) Landeszentrale für Medien und Kommunikation.
Sortierverfahren Richard Göbel.
Sortierverfahren Richard Göbel.
Algorithmentheorie 04 –Hashing
WS Algorithmentheorie 13 - Kürzeste (billigste) Wege Prof. Dr. Th. Ottmann.
WS Algorithmentheorie 02 - Polynomprodukt und Fast Fourier Transformation Prof. Dr. Th. Ottmann.
WS Algorithmentheorie 05 - Treaps Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 – Sortieren vorsortierter Daten) Prof. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 – Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. Th. Ottmann.
Prof. Dr. S. Albers Prof. Dr. Th. Ottmann
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 24 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Analyse natürlicher Bäume) Prof. Th. Ottmann.
Sortieren vorsortierter Daten
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 – Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Relaxiertes Balanzieren) Prof. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 4 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (17 – Bäume: Grundlagen und natürliche Suchbäume) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (18 - Bäume: Durchlaufreihenfolgen, Analyse nat. Bäume) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (11-1 –Selbstanordnende lineare Listen) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27-Selbstanordnende lineare Listen) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (07 - Skiplisten) Prof. Th. Ottmann.
Union-Find-Strukturen
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (03 – Verschiedene Algorithmen für dasselbe Problem) Prof. Dr. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 16 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
Algorithmen und Datenstrukturen
WS03/041 Binomial Queues Prof. Dr. S. Albers Prof.Dr.Th Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (05 – Elementare Datenstrukturen) Prof. Th. Ottmann.
Rechneraufbau & Rechnerstrukturen, Folie 2.1 © W. Oberschelp, G. Vossen W. Oberschelp G. Vossen Kapitel 2.
Grundkurs Theoretische Informatik, Folie 2.1 © 2006 G. Vossen,K.-U. Witt Grundkurs Theoretische Informatik Kapitel 2 Gottfried Vossen Kurt-Ulrich Witt.
Vorlesung: 1 Betriebliche Informationssysteme 2003 Prof. Dr. G. Hellberg Studiengang Informatik FHDW Vorlesung: Betriebliche Informationssysteme Teil2.
AC Analyse.
Rechneraufbau & Rechnerstrukturen, Folie 12.1 © W. Oberschelp, G. Vossen W. Oberschelp G. Vossen Kapitel 12.
Distanzbasierte Sprachkommunikation für Peer-to-Peer-Spiele
2 Distanzbasierte Sprachkommunikation für Peer-to-Peer-Spiele.
20:00.
Die Geschichte von Rudi
7.1 Externes Suchen Bisherige Algorithmen: geeignet, wenn alle Daten im Hauptspeicher. Große Datenmengen: oft auf externen Speichermedien, z.B. Festplatte.
Zusatzfolien zu B-Bäumen
Effiziente Algorithmen
1 Ein kurzer Sprung in die tiefe Vergangenheit der Erde.
Diskrete Mathematik II
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
PROCAM Score Alter (Jahre)
Ertragsteuern, 5. Auflage Christiana Djanani, Gernot Brähler, Christian Lösel, Andreas Krenzin © UVK Verlagsgesellschaft mbH, Konstanz und München 2012.
Vorlesung Mai 2000 Konstruktion des Voronoi-Diagramms II
Symmetrische Blockchiffren DES – der Data Encryption Standard
Zahlentheorie und Zahlenspiele Hartmut Menzer, Ingo Althöfer ISBN: © 2014 Oldenbourg Wissenschaftsverlag GmbH Abbildungsübersicht / List.
MINDREADER Ein magisch - interaktives Erlebnis mit ENZO PAOLO
1 (C)2006, Hermann Knoll, HTW Chur, FHO Quadratische Reste Definitionen: Quadratischer Rest Quadratwurzel Anwendungen.
Imperfekt Wie sagt man das mit Imperfekt
Titelmasterformat durch Klicken bearbeiten Textmasterformate durch Klicken bearbeiten Zweite Ebene Dritte Ebene Vierte Ebene Fünfte Ebene 1 Rising energy.
1 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt Modalverben.
Numbers Greetings and Good-byes All about Me Verbs and Pronouns
Datum:17. Dezember 2014 Thema:IFRS Update zum Jahresende – die Neuerungen im Überblick Referent:Eberhard Grötzner, EMA ® Anlass:12. Arbeitskreis Internationale.
1 Medienpädagogischer Forschungsverbund Südwest KIM-Studie 2014 Landesanstalt für Kommunikation Baden-Württemberg (LFK) Landeszentrale für Medien und Kommunikation.
Monatsbericht Ausgleichsenergiemarkt Gas – Oktober
Binärbäume.
 Präsentation transkript:

Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 –Persistente und vergessliche Datenstrukturen) Prof. Th. Ottmann

Ü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

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.

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): W(n) Aber Vorsicht: Speicherbelegung könnte dennoch von Erzeugungshistorie abhängen!

Beispiel: Natürliche Suchbäume Nur teilweise vergesslich! Einfügereihenfolge teilweise rekonstruierbar. Entfernte Schlüssel nicht sichtbar. Suchen, Einfügen. Entfernen von Schlüsseln: W(n) Zeit 1 3 5 7 3 1 5 7 1, 3, 5, 7 5, 1, 3, 7

Beispiel: Balancierte Suchbäume 10 6 15 2 9 11 23 2 5 7 10 11 15 20 30 5 6 7 9 20 23 Problem: (Zu) viele Updates auf einmal (Z.B. bei der Aufzeichnung von Handschrift) Nicht genügend Zeit zur sequentiellen Bearbeitung Lösung: Relaxiert balancierte Suchbäume: Update und Rebalancierungs-Operationen werden nebenläufig ausgeführt!

Stratifizierte Suchbäume ….. … … . … …

Beispiel

Beispiel

Einfügen ….. x p … … . . . . … ….. … Füge neuen Schlüssel ganz unten ein und deponiere einen „push-up-request“

Iterierte Folge von Einfügungen

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] 2 3 1 4 3 1 4 1 2 3 1 2 2 3 1 2 3 4 1 2 3 4

Beseitigung eines Push-up-requests (2) Fall2 [Nächste Schicht voll] 1 4 5 1 4 5 2 3 2 3 Schaffe ggfs. neue Schicht an der Spitze

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

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

Beseitigung von Pull-down-requests (1) Fall1 [genügend Knoten auf nächster Schicht] Endliche Strukturänderung und Halt! p 1 2 3 p 1 2 3 1 2 p 3 4 p 1 2 3 4 p 1 2 3 4 1 2 p 3 4

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

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

Ü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

Einfache Strategien zur Persistenz-Erhaltung Kopiere gesamte Struktur vor jeder Update-Operation, liefert volle Persistenz zum Preis von W(n) Zeit pro Update und Platz W(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 ….

Persistente Suchbäume (1) Pfadkopiermethode Version 0: 5 7 1 3

Persistente Suchbäume (1) Pfad-Kopier-Methode 1 Version 1: Einfüge (2) 5 5 1 7 1 3 3 2

Persistente Suchbäume (1) Pfad-Kopier-Methode 1 2 Version 1: Einfüge (2) Version 2: Einfüge (4) 5 5 5 1 1 7 1 3 3 3 2 4

Persistente Suchbäume (1) Pfad-Kopier-Methode 1 2 Version 1: Einfüge (2) Version 2: Einfüge (4) 5 5 5 1 1 7 1 3 3 3 2 4 Umstrukturierungs-Kosten O(log n) pro Update Operation

Persistente Suchbäume (2) DSST-Methode: Erweitere jeden Knoten um Modifikationsfeld mit Zeitstempel k t: rp lp rp Modifikationsfelder sind anfangs leer werden v.u.n.o. gefüllt ? alle Versionen ab Zeit t alle Versionen vor Zeit t

DSST Methode 5 1 7 3 Version 0

DSST Methode 5 1 7 3 Version 0: 1 lp 2

DSST Methode 5 1 7 3 3 Version 1: Einfüge (2) Version 2: Einfüge (4) 2 1 lp 2 4

DSST Methode 5 1 7 3 3 Version 1: Einfüge (2) Version 2: Einfüge (4) 2 2 rp 3 3 Version 1: Einfüge (2) Version 2: Einfüge (4) 1 lp 2 4 Die amortisierten Kosten (Zeit und Platz) pro Update Operation sind O(1)

Ü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

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.

Planar point location -- example

Planar point location -- example

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

Solving planar point location (Cont.) To answer query first find the appropriate slab Then search the slab to find the polygon

Planar point location -- example

Planar point location -- analysis Query time is O(log n) How about the space ? (n2) And so could be the preprocessing time

Planar point location -- bad example Total # lines O(n), and number of lines in each slab is O(n).

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

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).

Ü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

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!

Beispiel für eine randomisierte Struktur Z-stratifizierter Suchbaum ….. … … . Wähle auf jeder Schicht eine Zufällige Verteilung der Bäume aus Z . . . … ….. … Einfügen ? Entfernen ?

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 W(n1/3) kostet.

Sprung-Listen (Halbdynamische) 2-Ebenen Sprung-Listen 2-Ebenen-Sprung-Liste der Größe n tail i 2i n (n - 1)/i · i Suchen: O(i) = O( ) Zeit Einfügen: Entfernen: 2 3 5 7 8 10 11 12 14 17 19 O( ) Zeit

3-Ebenen Sprung-Listen level 2 i 2i i 2 i 2 +i 2 · i 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)

3-Ebenen Sprung-Listen level 2 i 2i i 2 i 2 +i 2 · i 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)

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:

c-Ebenen Sprung-Liste 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

Ü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

Zeitabhängige Daten beim Presentation Recording Input media Whiteboard TouchScreen Tablet PC Data sources Author Audience Lightweight content creation Recorded learning module Document

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)

Dozent im Hörsaal

Integrierte Hardware Lösung

Cintiq Tablet (Wacom) Stifteingabe, großes Display Augenkontakt mit Zuhörern

Datenströme

Random Acess Fähigkeit Zugriff auf ink-Object sj zum Zeitpunkt tj erfordert die sofortige Darstellung von sj sowie aller ink-Objekte seit t0

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!

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)