1 / 20

Selbstanordnende lineare Listen

Selbstanordnende lineare Listen. Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 16 Prof. Dr. Thomas Ottmann. Algorithmen & Datenstrukturen, Institut für Informatik Fakultät für Angewandte Wissenschaften Albert-Ludwigs-Universität Freiburg. Problemstellung.

Download Presentation

Selbstanordnende lineare Listen

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Problemstellung • Gegeben sei eine Menge von Objekten (Schlüsseln), auf die mit • zeitlich veränderlichen • unbekannten • Häufigkeiten zugegriffen wird. • Problem: Finde eine Speicherungsform, die die Zugriffskosten minimiert! • Lösungsidee: Speichere Schlüssel in eine sich selbst anordnenden linearen Liste! (Sequentiell gespeichert) Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann

  3. Strategien für Selbstanordnung • MF (Move to front): Mache aktuelles Element zum ersten Listenelement • T (Transpose): Vertausche aktuelles Element mit seinem Vorgänger • FC (Frequency count): Führe eine Zugriffsstatistik mit und sortiere nach jedem Zugriff neu! Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann

  4. Beispiel für Anwendung von MF (1) • Gegeben Liste L = < 1, 2, 3, 4, 5, 6, 7> • Zugriffskosten für Element an Position i seien i. • Zugriffsfolge s: 1, 2, ..., 7, 1, 2, ..., 7, ... ..., 1, 2, ..., 7 • Kosten der Zugriffsfolge s: 10 mal Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann

  5. Beispiel für Anwendung von MF (2) • Gegeben Liste L = < 1, 2, 3, 4, 5, 6, 7> • Zugriffskosten für Element an Position i seien i. • Zugriffsfolge s‘: 1, ..., 1, 2, ..., 2, ... ..., 7, ..., 7 • Kosten der Zugriffsfolge s‘: 10 mal 10 mal 10 mal Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann

  6. Beispiel für Anwendung von MF (3) • Gegeben Liste L = < 1, 2, 3, 4, 5, 6, 7> • Zugriffskosten für Element an Position i seien i. • 10 maliger Zugriff auf jedes der Elemente 1, ..., 7 (in beliebiger Reihenfolge) • Kosten bei statischer Anordnung: • Ergebnis: MF kann besser sein, als ein (jede) statische Anordnung, besonders, wenn die Zugriffe gehäuft auftreten Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann

  7. Beobachtungen • MF-Regel ist „radikal“, aber (vielleicht) nicht schlecht! • T-Regel ist „vorsichtiger“, aber: • Für L = <1, 2, ..., N-1, N> liefert die Zugriffsfolge N, N-1, N, N-1, ... • die durchschnittlichen Zugriffskosten N. • FC-Regel benötigt zusätzlichen, prinzipiell nicht beschränkten Speicherplatz • Experimentelle Resultate zeigen: • T schlechter als FC, • MF und FC ungefähr gleich gut • MF hat Vorteile • Analyse: Mit Hilfe der amortisierten worst-case-Analyse Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann

  8. Analyse der MF-Regel • MF (Move to front): Mache aktuelles Element zum ersten Listenelement. • Ziel: Vergleich von MF mit beliebiger Strategie A zur Selbstanordnung. • Für eine Folge s = s1, s2, ..., sm von m Zugriffsoperationen und für eine Strategie A zur Selbstanordnung bezeichne: • CA(s) = Gesamtkosten (gesamte Zugriffskosten) zur Durchführung aller m Operationen von s gemäß Strategie A • XA(s) = # kostenpflichtiger Vertauschungen (nach hinten) • FA(s) = # kostenfreier Vertauschungen (nach vorn) • Satz: Für jede Strategie A zur Selbstanordnung und jede Folge s vom m Zugriffs-Operationen gilt: • CMF(s) ≤ 2 CA(s) + XA(s) – FA(s) - m Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann

  9. Analyse der Zugriffsregeln • Kostenmodell: Zugriff auf Element an Position i verursacht Kosten i • (1) Für MF, T, FC gilt: Für jede beliebige Zugriffsfolge s ist • XMF(s) = XT(s) = FC(s) = 0 • (2) Für eine einzelne Zugriffsoperation o, die das Element an Position i betrifft, ist FA(o) ≤ CA(o) -1, und daher für eine Folge s von m Zugriffsoperationen FA(s) ≤ CA(s) -m Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann

  10. Amortisierte Worst-Case-Analyse • Unter den amortisierten worst-case Kosten einer Folge o1, ..., on von Operationen, die auf einer gegebenen Struktur ausgeführt werden, versteht man die durchschnittlichen Kosten pro Operation für eine schlechtest mögliche Wahl der Folge o1, ..., on . • Genauer als simple, oft zu pessimistische worst-case-Analyse • Mögliche Vorgehensweisen bei der amortisierten worst-case-Analyse: • Gesamtkosten der Operationsfolge berechnen und Durchschnitt bilden (Aggregat Methode) • Bankkonto Paradigma: Bezahle für die „billigen“ Operationen (freiwillig) etwas mehr und bezahle die teueren von den Ersparnissen • Potentialmethode Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann

  11. Potentialmethode • Sei F: D  IR, D Menge der Zustände der Datenstruktur • Sei Fi das „Potential“ der Datenstruktur nach der i-ten Zugriffs Operation. • ti = wirkliche Kosten der i-ten Operation • Definiere die amortisierten Kosten ai der i-ten Zugriffs Operation durch: • ai = Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann

  12. Vergleich einer Strategie A mit MF • Seien eine Zugriffsstrategie A und eine Zugriffsfolge gegeben. • Wende die Zugriffsfolge gemäß A und MF parallel an, beginnend mit der Liste L, und betrachte jeweils das Paar von Listen, das sich nach jeder Operation ergibt: • L L • LA LMF • LA LMF • Ordne jedem Paar (LA, LMF) ein Potential zu! Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann

  13. Analyse mit Potentialfunktion • Betrachte die Wirkungen der Strategien MF und A bei Ausführung von s1, s2, ... • für eine Ausgangsfolge L, • und ordne jedem nach Ausführung der ersten l Operationen erreichten Zustand ein Potential Fl zu. Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann

  14. Balance bal(L1, L2) • Definiere die Balance bal(L1, L2) zweier Listen L1 und L2, die dieselben Elemente in ggfs. unterschiedlicher Reihenfolge enthalten, als die Anzahl der Inversionen von Elementen in L1 bzgl. L2. Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann

  15. Beispiel für die Berechnung der Balance • L1 = <3, 2, 1, 4, 6, 7, 5> L2 = <2, 1, 3, 6, 4, 7, 5> Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann

  16. Normierung der Balance-Berechnung • Zur Berechnung der Balance bal(L1, L2) für zwei Listen L1 und L2 von n Zahlen kann man o.E. annehmen, dass L1 die Liste <1, 2, 3. ..., n> ist. Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann

  17. Definition der Potentialfunktion • Das einem Paar von Listen, die nach der l-ten Operation mit Strategie MF und A entstehen, zugeordnete Potential Fl ist: Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann

  18. Wirkung einer Zugriffsoperation, MF LA LMF Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann

  19. Wirkung einer Zugriffsoperation, A LA LMF Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann

  20. Berechnung der Potentialänderung Informatik II: Algorithmen und Datenstrukturen, SS 2008 Prof. Dr. Thomas Ottmann

More Related