Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 24 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.

Ähnliche Präsentationen


Präsentation zum Thema: "Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 24 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät."—  Präsentation transkript:

1 Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 24 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät für Angewandte Wissenschaften Albert-Ludwigs-Universität Freiburg Persistenz

2 Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann2 Motivation Eine Datenstruktur heißt ephemer, wenn zu jedem Zeitpunkt nur eine jeweils aktuelle Struktur existiert und jede Änderung der Struktur die alte Version zerstört. Eine Struktur zur Speicherung einer Menge von Schlüsseln heißt vergesslich, wenn aus der aktuellen 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.

3 Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann3 Beispiel einer vergesslichen Struktur: Arrays Array: …… 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!

4 Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann4 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, 75, 1, 3,

5 Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann5 Strategien, um Strukturen vergesslich zu machen 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!

6 Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann6 Mengen- und ordnungseindeutige Strukturen Untere Schranken? Annahmen: Wörterbuch der Größe n wird repräsentiert durch Graphen 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 (n 1/3 ) kostet.

7 Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann7 Sprung-Listen (Halbdynamische) 2-Ebenen Sprung-Listen 2-Ebenen-Sprung-Liste der Größe n Suchen:O(i) = O( n) Zeit Einfügen und Entfernen: ebenfalls in Zeit O( n) tail 0i2in (n-1)/i·i

8 Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann8 c-Ebenen Sprung-Listen Satz: Für jedes c 3 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·n 1/c ) Updatezeit, falls n gerade, falls n ungerade

9 Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann9 Strategien, um Strukturen (partiell) persistent zu machen 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 ….

10 Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann10 Persistente Suchbäume Methoden, um Suchbäume partiell persistet zu machen: Fat-Node-Methode Path-Copying-Methode Node-Copying-Methode (DSST)

11 Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann11 Fat-Node-Methode Speichere alle an einem Knoten vorgenommenen Änderungen in dem Knoten selbst. Knoten speichern also die gesamte Versions-Historie und können daher beliebig fat werden. Versionsstempel in Knoten dienen dazu, die jeweils richtige Version auszuwählen. Betrachte Update Operation i: Ephemere StrutkturPersistente Struktur Schaffen eines neuen KnotensSchaffe neuen Knoten mit Versionsstempel i und allen Originalwerten Ändern eines WertesSpeichere neuen Wert mit Versionstempel

12 Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann12 Update Operation – Beispiel (Versionen 1 bis 9) Einfüge: 5, 20, 8, 15, 6, 2, 1, 28, (Versionen 10 bis 12) Entferne: 20, 5, 1

13 Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann13 Access Operation – Fat Node Method Zugriff auf eine Version i m in der persistenten Structur: Bestimme die Wurzel von Version i. Durchlaufe die Knoten der Struktur, indem nur Versions Werte mit maximalem Versions Stempel i genutzt werden. Beispiel: Gegeben folgtende persistente Structure, Zugriff auf Version v v 1 -v 10 v6v6 v7v7 v2v2 v3v3 v4v4 v5v5 v8v8 v9v9 v 10 v 11 v 12 v 11 -v 12

14 Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann14 Analysis – Fat Node Method Annahme: Die Versions Stempel in einem Fat Node sind angeordnet und werden in einem balancierten Baum gespeichert Maximale Zahl von Pointern in einem Fat-Node: m Update Operation Platzbedarf per Update: Zeitbedarf per Update: Zugriffs Operation Zeitbedarf per Zugriff: (multiplikativer slow-down)

15 Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann15 Path-Copying Methode – Partielle Persistenz Erzeugt eine Menge von Suchbäumen, je einen per Update, die sämtlich verschiedene Wurzeln, aber gemeinsame Teilbäume haben. Man kopiert nur die Knoten, die in der aktuellen Version verändert werden, und alle Knoten, die auf solche Knoten verweisen. Folgerung für Bäume: Kopieren eines Knotens in der aktuellen Version erfordert auch das Kopieren des gesamten Pfades von der Wurzel zu diesem Knoten. (Daher der Name der Methode!)

16 Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann16 Update Operation – Path-Copying Betrachte Update Operation i. Bestimme den Knoten in der aktuellen Version, der von der Update Operation betroffen ist Kopiere diesen Knoten und den Pfad von der Wurzel zu diesem Knoten.

17 Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann17 Path-Copying (1) Pfad-Kopier-Methode Version 0:

18 Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann18 Path-Copying (2) Pfad-Kopier-Methode Version 1: Einfüge (2)

19 Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann19 Path-Copying (3) Pfad-Kopier-Methode Version 1: Einfüge (2) Version 2: Einfüge (4)

20 Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann20 Path-Copying (4) Pfad-Kopier-Methode Umstrukturierungs-Kosten O(log n) pro Update Operation Version 1: Einfüge (2) Version 2: Einfüge (4)

21 Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann21 Update Operation – Beispiel (Einfügen) (Versionen 1 bis 9) Einfügen: 5, 20, 8, 15, 6, 2, 1, 28, … v 7

22 Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann22 Update Operation – Example (Insert) (Versionen 1 bis 9) Einfügen: 5, 20, 8, 15, 6, 2, 1, 28, … v v8v8

23 Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann23 Update Operation – Beispiel (Einfügen) (Versionen 1 bis 9) Einfügen: 5, 20, 8, 15, 6, 2, 1, 28, … v v8v8 5 v9v9 8 15

24 Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann24 Update Operation –Beispiel (Entfernen) (Versionen 10 bis 12) Entferne: 1, 20, … v

25 Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann25 Update Operation –Beispiel (Entfernen) (Versionen 10 bis 12) Entferne: 1, 20, … v v 10

26 Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann26 Update Operation –Beispiel (Entfernen) (Versionen 10 bis 12) Entferne: 1, 20, … v v 10 5 v

27 Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann27 Update Operation –Beispiel (Entfernen) (Versionen 10 bis 12) Entferne: 1, 20, … v v 10 5 v v 12

28 Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann28 Zugriffs Operation – Path-Copying Annahme: Die Wurzeln der verschiedenen Versionen sind angeordnet und werden in einer eigenen Zugriffsstruktur verwaltet, die den Zugriff auf jede der m Versionen erlaubt. Zugriff auf Version v i : Bestimme die Wurzel der Version v i und gehe von dort aus weiter. Bemerkung: Die Path-Copying-Methode kann auch ausgedehnt werden auf Balanzierungsoperationen (Rotationen, Doppelrotationen). Folgerung: Jede Operation (Einfügen, Entfernen inklusive Rebalanzieren) erfordert das Kopieren eines Pfades von der Wurzel zu einem Blatt, also von O(log n) Knoten für einen (bal.) Baum mit n Knoten.

29 Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann29 Node-Copying Methode – Partielle Persistenz Verbesserung der Fat-Node-Methode: Jeder Knoten kann nur noch eine universell begrenzte Zahl von Versionsstempeln und versionierten Daten (Pointern) in eineM Modifikationsfeld enthalten. (Willkürliche Festlegung: Nur 1 Zeiger mit Zeitstempel) Ist das Modifikationsfeld voll, wir der Knoten kopiert (mit leerem Modifikationsfeld) Der Kopierprozess erfolgt von unten, nicht von oben wie bei der Path-Copying-Methode. k lprp v t : ptr Original left pointer to left child with version before v t Original right pointer to right child with version before v t Version stamp modification box

30 Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann30 Node-Copying (1) Erweitere jeden Knoten um Modifikationsfeld mit Zeitstempel ? alle Versionen vor Zeit t alle Versionen ab Zeit t Modifikationsfelder: sind anfangs leer werden v.u.n.o. gefüllt k t: rp lp rp

31 Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann31 Node-Copying (2) Version 0

32 Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann32 Node-Copying (3) lp Version 0:

33 Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann33 Node-Copying (4) lp Version 1: Einfüge (2) Version 2: Einfüge (4)

34 Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann34 Node-Copying (5) Die amortisierten Kosten (Zeit und Platz) pro Update Operation sind O(1) rp 1 lp Version 1: Einfüge (2) Version 2: Einfüge (4)

35 Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann35 Update Operation – Beispiel (Einfügen) v0v (Versionen 1 to 6) Einfügen: 15, 6, 2, 1, 28, 12

36 Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann36 v0v v 2 : lp 8 v 1 : rp (Versionen 1 bis 6) Einfügen: 15, 6, 2, 1, 28, Update Operation – Beispiel (Einfügen)

37 Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann37 v 0 -v 4 5 v 3 : lp 20 v 2 : lp 8 v 1 : rp (Versionen 1 bis 6) Einfügen: 15, 6, 2, 1, 28, v 6 : lp 862 v 4 : lp v 5 -v 6 12 Update Operation – Beispiel (Einfügen)

38 Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann38 Update Operation –Beispiel (Entfernen) v 0 -v 4 5 v 3 : lp 20 v 2 : lp 8 v 1 : rp (Versionen 7 und 8) Entfernen: 1, v 6 : lp 862 v 4 : lp v 5 -v 6 12

39 Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann39 Analyse – Node-Copying Method Man kann zeigen, dass die amortisierten Kopier Kosten pro Update Operation konstant sind! Man erhält also eine Struktur, die im Durchschnitt (über eine Folge von Update Operationen) nur um eine konstante Größe pro Update wächst!

40 Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann40 Anwendung: Planar Point Location

41 Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann41 Dobkin-Lipton Konstruktion Teile die Ebene in vertikale Streifen, die vertikal geordnet sind.

42 Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann42 Dobkin-Lipton Konstruktion Bestimme die Region, in die ein Punkt fällt, mit Hilfe von zwei binären Such-Operationen: Anfrage Zeit: O(log n). Platz Bedarf O(n 2 ).

43 Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann43 Worst-Case Beispiel Θ(n) Segmente in jedem Streifen, und Θ(n) Streifen.

44 Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann44 Coles Beobachtung A B Mengen von Liniensegmenten in zwei benachbarten Streifen sind ähnlich! Speichere die Streifen in einer persistenten Struktur.

45 Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann45 Verringerung des Platzbedarfs Baue einen (balanzierten) Suchbaum für den ersten Streifen; das ist Version 0. Platzbedarf dieser Struktur: O(n) Erzeuge die jeweils nächste Version durch Löschen aller Segmente, die dort enden und Einfügen aller Segmente, die dort beginnen! Insgesamt höchstens O(n) Einfüge- und Entferne-Operationen! Also: Platzbedarf der gesamten, persistenten Struktur ist höchstens O(n), falls Node-Copying-Methode benutzt wird. Das Point Location Problem kann gelöst werden mit Hilfe einer Struktur, die in Zeit O(n log n) aufgebaut werden kann, die Platzbedarf O(n) hat und eine Point-Location Anfrage in Zeit O(log n) zu beantworten erlaubt.


Herunterladen ppt "Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 24 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät."

Ähnliche Präsentationen


Google-Anzeigen