20
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 Selbstanordnende lineare Listen

Selbstanordnende lineare Listen

Embed Size (px)

DESCRIPTION

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. - PowerPoint PPT Presentation

Citation preview

Page 1: Selbstanordnende lineare Listen

Informatik II, SS 2008Algorithmen und Datenstrukturen

Vorlesung 16Prof. Dr. Thomas Ottmann

Algorithmen & Datenstrukturen, Institut für InformatikFakultät für Angewandte WissenschaftenAlbert-Ludwigs-Universität Freiburg

Selbstanordnende lineare Listen

Page 2: Selbstanordnende lineare Listen

Informatik II: Algorithmen und Datenstrukturen, SS 2008Prof. Dr. Thomas Ottmann 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)

Page 3: Selbstanordnende lineare Listen

Informatik II: Algorithmen und Datenstrukturen, SS 2008Prof. 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!

Page 4: Selbstanordnende lineare Listen

Informatik II: Algorithmen und Datenstrukturen, SS 2008Prof. 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

Page 5: Selbstanordnende lineare Listen

Informatik II: Algorithmen und Datenstrukturen, SS 2008Prof. 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

Page 6: Selbstanordnende lineare Listen

Informatik II: Algorithmen und Datenstrukturen, SS 2008Prof. 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

Page 7: Selbstanordnende lineare Listen

Informatik II: Algorithmen und Datenstrukturen, SS 2008Prof. 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

Page 8: Selbstanordnende lineare Listen

Informatik II: Algorithmen und Datenstrukturen, SS 2008Prof. 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

Page 9: Selbstanordnende lineare Listen

Informatik II: Algorithmen und Datenstrukturen, SS 2008Prof. 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

Page 10: Selbstanordnende lineare Listen

Informatik II: Algorithmen und Datenstrukturen, SS 2008Prof. 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

Page 11: Selbstanordnende lineare Listen

Informatik II: Algorithmen und Datenstrukturen, SS 2008Prof. Dr. Thomas Ottmann 11

Potentialmethode

Sei : D IR, D Menge der Zustände der DatenstrukturSeii 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 =

Page 12: Selbstanordnende lineare Listen

Informatik II: Algorithmen und Datenstrukturen, SS 2008Prof. 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!

Page 13: Selbstanordnende lineare Listen

Informatik II: Algorithmen und Datenstrukturen, SS 2008Prof. 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 l zu.

Page 14: Selbstanordnende lineare Listen

Informatik II: Algorithmen und Datenstrukturen, SS 2008Prof. 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.

Page 15: Selbstanordnende lineare Listen

Informatik II: Algorithmen und Datenstrukturen, SS 2008Prof. 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>

Page 16: Selbstanordnende lineare Listen

Informatik II: Algorithmen und Datenstrukturen, SS 2008Prof. 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.

Page 17: Selbstanordnende lineare Listen

Informatik II: Algorithmen und Datenstrukturen, SS 2008Prof. 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 l ist:

Page 18: Selbstanordnende lineare Listen

Informatik II: Algorithmen und Datenstrukturen, SS 2008Prof. Dr. Thomas Ottmann 18

Wirkung einer Zugriffsoperation, MF

LA

LMF

Page 19: Selbstanordnende lineare Listen

Informatik II: Algorithmen und Datenstrukturen, SS 2008Prof. Dr. Thomas Ottmann 19

Wirkung einer Zugriffsoperation, A

LA

LMF

Page 20: Selbstanordnende lineare Listen

Informatik II: Algorithmen und Datenstrukturen, SS 2008Prof. Dr. Thomas Ottmann 20

Berechnung der Potentialänderung