10.11.2013kapitel 21 methoden des algorithmenentwurfs kapitel 2.1: deterministische online...
TRANSCRIPT
![Page 1: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/1.jpg)
11.04.23 Kapitel 2 1
Methoden des Algorithmenentwurfs
Kapitel 2.1: DeterministischeOnline Algorithmen
Christian Scheideler
SS 2009
![Page 2: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/2.jpg)
Übersicht
• Beispiele
• Notation
• Paging
• Scheduling
• Selbstorganisierende Suchstrukturen
11.04.23 Kapitel 2 2
![Page 3: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/3.jpg)
Beipiele
Ski-Problem:• Ein Paar Ski kann für 500 € gekauft oder für
50 € geliehen werden. Wie lange soll geliehen werden, bevor man sich für den Kauf entscheidet, wenn nicht bekannt ist, wie lange man noch Ski fährt?
• Optimale Strategie (falls Zukunft nicht bekannt): So lange Ski leihen, bis die Leihkosten gleich den Kaufkosten sind.
11.04.23 Kapitel 2 3
![Page 4: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/4.jpg)
Beispiele
Geldwechselproblem:
• Ein Geldbetrag (z.B. 10.000 €) soll in eine andere Währung (z.B. $) gewechselt werden. Zu welchem Zeitpunkt soll getauscht werden, wenn nicht bekannt ist, wie sich der Wechselkurs entwickelt?
11.04.23 Kapitel 2 4
![Page 5: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/5.jpg)
Beispiele
Paging/Caching:• Es soll ein zweistufiges Speichersystem verwaltet
werden, das aus einem schnellen Speicher mit kleiner Kapazität und einem langsamen Speicher mit großer Kapazität besteht. Dabei müssen Anfragen auf Speicherseiten bedient werden. Welche Seiten hält man im Cache, um die Anzahl der Cache-Misses zu minimieren?
11.04.23 Kapitel 2 5
Hauptspeicher
Cache
![Page 6: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/6.jpg)
Beispiele
Verteilte Systeme:• Daten sollen in einem Netzwerk dynamisch
so platziert werden, dass möglichst wenige Daten übertragen werden müssen, um die Anfragen zu bedienen.
11.04.23 Kapitel 2 6
![Page 7: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/7.jpg)
Beispiele
Scheduling:• Jobs mit im Voraus bekannter Bearbeitungsdauer
treffen hintereinander ein und sollen von m Maschinen bearbeitet werden. Die Jobs müssen dabei unmittelbar einer bestimmten Maschine zugeordnet werden. Hier gibt es verschiedene Optimierungsziele, z.B. die Minimierung der Gesamtbearbeitungszeit.
11.04.23 Kapitel 2 7
![Page 8: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/8.jpg)
Notation
Online Problem: • Statt einer vollständig gegebenen Eingabe I haben
wir jetzt eine Eingabesequenz =((1),(2),…,(t)) , in der die Eingabeteile (i) erst nach und nach an den Online Algorithmus übergeben werden.
• Nach jedem (i) muss der Online Algorithmus eine Entscheidung treffen, bevor er (i+1)…(t) gesehen hat. Diese Entscheidung kann (im Standard-Online-Modell) nicht wieder zurück-genommen werden (wie beim Schach).
11.04.23 Kapitel 2 8
![Page 9: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/9.jpg)
Notation
1.1 Definition: Sei ein Optimierungs-problem und A ein Online Algorithmus für . Für eine beliebige Eingabesequenz =((1),(2),…,(t)) seien A() die Kosten von A für . A heißt c-kompetitiv, wenn es einen von t unabhängigen Parameter a gibt, so dass für alle Eingabesequenzen gilt: A() cOPT() + a
11.04.23 Kapitel 2 9
![Page 10: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/10.jpg)
Übersicht
• Beispiele
• Notation
• Paging
• Scheduling
• Selbstorganisierende Suchstrukturen
11.04.23 Kapitel 2 10
![Page 11: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/11.jpg)
Paging
Problem: Eine online eintreffende Folge von Seitenanfragen =(x1,…,xn) muss durch ein zweistufiges Speichersystem (Cache und Hauptspeicher) bearbeitet werden. Ist eine Seite nicht im Cache vorhanden (Cache-Miss), muss sie vom Hauptspeicher dorthin geladen werden (und verdrängt bei vollem Cache eine dort vorhandene Seite).
Ziel: minimiere die Anzahl der Cache-Misses
Offline Fall: alle Seitenanfragen im vornherein gegeben.
Offline-Algorithmus: MINEntferne stets diejenige Seite aus dem Cache, deren nächste Anfrage am weitesten in der Zukunft liegt.
11.04.23 Kapitel 2 11
![Page 12: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/12.jpg)
Paging
1.2 Satz: MIN ist ein optimaler Offline-Algorith-mus, d.h. er erzeugt für jede Anfragesequenz die minimale Anzahl an Seitenfehlern.
Beweis:• : beliebige Anfragefolge• A: optimaler Algorithmus auf • Wir bauen A so um, dass er wie MIN arbeitet.• Die Anzahl der Seitenersetzungen wird dabei
nicht erhöht.
11.04.23 Kapitel 2 12
![Page 13: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/13.jpg)
Paging
Beweis (Fortsetzung):• Behauptung: angenommen, A und MIN arbeiten
auf den ersten i-1 Anfragen identisch, aber auf der i-ten Anfrage verschieden. Dann kann A in Algorithmus A´ transformiert werden, so dass gilt:– A´ und MIN arbeiten auf der ersten i Anfragen
identisch– A´() A()
• Ist diese Behauptung gezeigt, dann können wir A schrittweise in MIN umformen, ohne die Kosten zu erhöhen.
11.04.23 Kapitel 2 13
![Page 14: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/14.jpg)
PagingBeweis (Fortsetzung):• Wir beweisen nun die Behauptung• Die i-te Anfrage referenziere Seite x.• A entferne dafür die Seite u aus dem Cache und MIN die Seite v.• Algorithmus A´: arbeitet auf den ersten i-1 Anfragen wie A und
entfernt bei Anfrage i die Seite v. A´simuliert dann A, bis eines der folgenden Ereignisse eintrifft:– a) Ersetzt A die Seite v, dann ersetzt A´ zum gleichen Zeitpunkt die
Seite u. – b) u wird angefragt und A ersetzt z. In diesem Fall ersetzt A´ die Seite z
durch v.v kann nicht vor u angefragt werden, da sonst die MIN-Regel verletzt wird.
• In beiden Fällen sind A und A´ dann wieder in identischen Konfigurationen und A´ arbeitet wie A weiter. Die Anzahl der Seitenersetzungen hat sich dabei nicht erhöht.
11.04.23 Kapitel 2 14
![Page 15: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/15.jpg)
Paging
Leider ist MIN ein offline Algorithmus (d.h. er muss die gesamte Anfragefolge im vornherein kennen). Ein oft verwendeter Online Algorithmus ist der folgende:
Algorithmus LRU (Least-Recently-Used):Entferne stets die Seite, die am längsten nicht mehr benutzt wurde.
Im worst case ist LRU allerdings recht schlecht, wie die folgenden beiden Resultate zeigen.
11.04.23 Kapitel 2 15
![Page 16: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/16.jpg)
Paging
1.3 Satz: Für einen Cache der Größe k ist LRU k-kompetitiv.
Beweis:• Wir betrachten eine beliebige Anfragefolge .• LRU und OPT starten mit denselben Seiten im Cache.• Wir zerlegen in Phasen P(1), P(2),…, so dass LRU
in jedem P(i) mit i2 jeweils exakt k Seitenfehler hat und in der Phase P(1) höchstens einen Seitenfehler.
• Können wir zeigen, dass OPT in jeder dieser Phasen mindestens einen Seitenfehler hat, so folgt der Satz.
• Für Phase P(1) ist das sicherlich wahr, da LRU und OPT anfangs dieselben Seiten haben.
11.04.23 Kapitel 2 16
![Page 17: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/17.jpg)
Paging
Beweis (Fortsetzung):• Seien p1,…,pk die Fehlerstellen von LRU in Phase P(i) mit i2
und q die letzte vorangegangene Anfrage. Wir unterscheiden die folgenden Fälle:
1. ij pipj und i piq: Beim Phasenwechsel hat OPT q im Cache und kann höchstens k-1 der Seiten p1,…,pk im Cache haben. Also tritt bei OPT mindestens ein Seitenfehler auf.
2. ij pi=pj: Zwischen den Anfragen pi und pj müssen mindestens k andere verschiedene Seiten angefragt worden sein, sonst hätte LRU diese Seite ja nicht aus dem Cache entfernt. Also gibt es k+1 verschiedene Seiten in dieser Phase und OPT muss mindestens einen Seitenfehler haben.
3. ij pipj, aber i pi=q: Analog zur Argumentation bei Punkt 2 müssten zwischen q und pi mindestens k andere verschiedene Seiten angefragt worden sein.
11.04.23 Kapitel 2 17
![Page 18: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/18.jpg)
Paging
1.4 Satz: Sei A ein deterministischer online Paging-Algorithmus. Ist A c-kompetitiv, dann ist ck.
Beweis:• Wir geben eine Folge an, die k+1 verschiedene Seiten p1,
…,pk+1 verwendet. Anfangs seien die Seiten p1,…,pk im Cache.
• Der Gegner fragt nun stets diejenige Seite an, die bei A nicht im Cache vorhanden ist. Bei A tritt also bei jeder Anfrage ein Seitenfehler auf, d.h. A()=||.
• OPT muss höchstens alle k Anfragen eine Seite ersetzen, da nur k+1 Seiten vorhanden sind, und also nach einem Seitenfehler auf jeden Fall die nächsten k Seiten im Speicher sind.
• Damit ist c=A()/OPT() ||/(||/k) = k.
11.04.23 Kapitel 2 18
![Page 19: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/19.jpg)
Paging
Bemerkung: Auch wenn LRU im worst case eine schlechte Kompetitivität hat, so gibt es dennoch keinen besseren deterministischen Algorithmus. In der Tat gibt es sogar deterministische Algorithmen mit unbeschränkter Kompetitivität:
Algorithmus MRU (Most-Recently-Used):Entferne diejenige Seite, die zuletzt gefragt wurde
• Betrachte die Sequenz =p1,…, pk, pk+1, pk, pk+1,…• Bei MRU sind die Seitenfehler unbeschränkt
während OPT nur einen Seitenfehler hat.
11.04.23 Kapitel 2 19
![Page 20: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/20.jpg)
Übersicht
• Beispiele
• Notation
• Paging
• Scheduling
• Selbstorganisierende Suchstrukturen
11.04.23 Kapitel 2 20
![Page 21: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/21.jpg)
Scheduling
Problem: Eine online eintreffende Folge von Jobs =(J1,…,Jn) soll auf m identischen Maschinen verteilt werden. Jeder Job Ji sei spezifiziert durch eine Ausgabezeit tiIN und Bearbeitungszeit piIN, wobei ti<ti+1 für alle i. Der Online Algorithmus muss jeden Job Ji zum Zeitpunkt ti einer Maschine zuweisen.
Ziel: minimiere den Makespan, d.h. die Zeit bis der letzte Job bearbeitet ist.
Algorithmus: Greedy-SchedulingWeise jeden Job der Maschine zu, die zurzeit am wenigsten ausgelastet ist.
11.04.23 Kapitel 2 21
![Page 22: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/22.jpg)
Scheduling
1.5 Satz: Greedy ist 3-kompetitiv.Beweis: • Sei t der letzte Zeitpunkt, zu dem eine Maschine
unbeschäftigt ist, bevor sie bis zum Ende beschäftigt ist, und sei M diese Maschine.
• Für alle Jobs, die vor dem Zeitpunkt t generiert wurden, gilt, dass diese vor t mit der Bearbeitung begonnen haben, denn ansonsten hätte Greedy diese M zugewiesen.
11.04.23 Kapitel 2 22t
M
![Page 23: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/23.jpg)
Scheduling
Beweis (Fortsetzung):• Sei J die Menge der Jobs, die nach t generiert
werden.• Ergänzen wir J um die nach t noch abzuarbei-
tenden Reste der Jobs, die vor t generiert worden sind, auf J´, so ergibt sich für diese Jobmenge ein Greedy Schedule wie für den Greedy Approximationsalgorithmus.
11.04.23 Kapitel 2 23t
M J´
![Page 24: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/24.jpg)
11.04.23 Kapitel 2 24
Scheduling
Beweis (Fortsetzung): • J bestehe aus n Jobs mit Aufwand p1,…, pn
• Betrache Maschine i mit höchster Last Li.• Sei j der letzte Job in Maschine i.• Da Job j Maschine i zugeordnet wurde, hatte i vorher die
kleinste Last. Es gilt also Li – pj ≤ Lk für alle k.
vor j
j
nach j
Li - tj Lit
![Page 25: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/25.jpg)
11.04.23 Kapitel 2 25
Scheduling
Beweis (Forsetzung):• Es gilt: Li-pj ≤ Lk für alle k{1,…,m}
und damit Lk Li – pmax.• Wir wissen: j=1
m Lj j=1n pj+(m-1) pmax
• Also ist Li+(m-1)(Li – 2pmax) j=1n pj
• Daraus folgt: mLi ≤ j=1
n pj +(m-1)2pmax
Li ≤ (1/m) j=1n pj +2((m-1)/m)pmax
≤ OPT() + 2(1-1/m)OPT() ≤ 3 OPT()
Alte Jobs vor t
![Page 26: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/26.jpg)
11.04.23 Kapitel 2 26
Scheduling
Genauere Analyse: Greedy ist 2-1/m-kompetitiv.
Ist das scharf? Ja!
Beispiel: m Maschinen, m(m-1) Jobs der Länge L>>m(m-1), (so dass Zeit für Genierung der Jobs vernachlässigbar) ein Job der Länge mL
m=10
Makespan ~ 19L
![Page 27: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/27.jpg)
11.04.23 Kapitel 2 27
Scheduling
Genauere Analyse: Greedy ist 2-1/m-kompetitiv.
Ist das scharf? Ja!
Beispiel: m Maschinen, m(m-1) Jobs der Länge L>>m(m-1), (so dass Zeit für Genierung der Jobs vernachlässigbar) ein Job der Länge mL
m=10
Optimaler Makespan ~ 10L
![Page 28: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/28.jpg)
Übersicht
• Beispiele
• Notation
• Paging
• Scheduling
• Selbstorganisierende Suchstrukturen
11.04.23 Kapitel 2 28
![Page 29: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/29.jpg)
11.04.23 Kapitel 4 29
Wörterbuch
48
18
11
3
20
![Page 30: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/30.jpg)
11.04.23 Kapitel 4 30
Wörterbuch
48
18
11
3
20
insert(15)
15
![Page 31: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/31.jpg)
11.04.23 Kapitel 4 31
Wörterbuch
48
18
11
3
20
delete(20)
15
![Page 32: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/32.jpg)
11.04.23 Kapitel 4 32
Wörterbuch
48
18
11
3
lookup(8) ergibt 8
15
![Page 33: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/33.jpg)
11.04.23 Kapitel 2 33
Suchstruktur
S: Menge von Elementen
Jedes Element e identifiziert über key(e).
Operationen:
• S.insert(e: Element): S:=S {e}
• S.delete(k: Key): S:=S\{e}, wobei e das Element ist mit key(e)=k
• S.lookup(k: Key): gibt eS aus mit key(e)=k, falls es ein solches e gibt, und sonst
![Page 34: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/34.jpg)
11.04.23 Kapitel 2 34
Statische Suchstruktur
1. Speichere Elemente in sortiertem Feld.
lookup: über binäre Suche ( O(log n) Zeit )
1 3 10 14 195 28 31 58 60 82 89 94 9885
lookup(14)
![Page 35: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/35.jpg)
11.04.23 Kapitel 2 35
Binäre Suche
Eingabe: Zahl x und ein sortiertes Feld A[1],…,A[n]
Binäre Suche Algorithmus:l:=1; r:=nwhile l < r do m:=(r+l) div 2 if A[m] = x then return m if A[m] < x then l:=m+1 else r:=mreturn l
![Page 36: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/36.jpg)
11.04.23 Kapitel 2 36
Dynamische Suchstruktur
insert und delete Operationen:
Sortiertes Feld schwierig zu aktualisieren!
Worst case: (n) Zeit
1 3 10 145 19 28 31 58 60 82 85
15
![Page 37: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/37.jpg)
11.04.23 Kapitel 2 37
Suchstruktur
2. Sortierte Liste (mit -Element)
Problem: insert, delete und lookup kosten im worst case (n) Zeit (z.B. ständig wird 19 angefragt)
Besser: sortiere Elemente nach Zugriffshäufigkeit, aber Zugriffshäufigkeit nicht von vornherein bekannt. Was ist online möglich?
31
…19
![Page 38: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/38.jpg)
11.04.23 Kapitel 2 38
Suchstruktur
2. Sortierte Liste (mit -Element)
Zentrale Frage: für welche insert, delete und lookup Operationen weichen wir für jede gegebene Operationsfolge so wenig wie möglich ab von der Laufzeit eines optimalen Offline Algorithmus, der alle Anfragen zu Beginn an kennt und damit eine optimale Strategie für die Anordnung und Umordnung der Elemente in der Liste berechnen kann?
31
…19
![Page 39: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/39.jpg)
Selbstorganisierende Liste• Sei eine beliebige lookup-Anfragefolge gegeben.• Bei einem Zugriff auf ein Listenelement entstehen Kosten, die
von der Position des Elements abhängen.
• Das angefragte Element kann nach seiner Anfrage an eine beliebige Position weiter vorne in der Liste bewegt werden (mit keinen Zusatzkosten).
• Außerdem ist es möglich, zwei benachbarte Elemente mit Kosten 1 zu vertauschen.
11.04.23 Kapitel 2 39
k
Kosten 7
k k
lookup(k)
![Page 40: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/40.jpg)
Selbstorganisierende Liste
Die folgenden Online Strategien bieten sich an:• Move-to-Front (MTF): Das angefragte Element
wird an den Kopf der Liste bewegt.• Transpose: Das angefragte Element wird mit dem
Vorgänger in der Liste vertauscht.• Frequency-Count (FC): Verwalte für jedes
Element der Liste einen Zähler, der mit Null initiailisiert wird. Bei jeder Anfrage wird der Zähler um eins erhöht. Die Liste wird nach jeder Anfrage gemäß nicht steigenden Zählerständen sortiert.
Interessanterweise ist MTF die beste Strategie.
11.04.23 Kapitel 2 40
![Page 41: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/41.jpg)
11.04.23 Kapitel 2 41
Exkurs: Amortisierte Analyse
• S: Zustandsraum einer Datenstruktur
• : beliebige Folge von Operationen Op1, Op2, Op3,…,Opn
• s0: Anfangszustand der Datenstruktur
• Zeitaufwand T() = i=1n TOpi
(si-1)
s0Op1 s1
Op2 s2Op3 sn
Opn….
![Page 42: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/42.jpg)
11.04.23 Kapitel 2 42
Exkurs: Amortisierte Analyse
• Zeitaufwand T() = i=1n TOpi
(si-1)
• Eine Familie von Funktionen AX(s), eine pro Operation X, heißt Familie amortisier-ter Zeitschranken falls für jede Sequenz von Operationen gilt
T() A() := c + i=1n AOpi
(si-1)
für eine Konstante c unabhängig von
![Page 43: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/43.jpg)
11.04.23 Kapitel 2 43
Exkurs: Amortisierte Analyse
1.6 Satz: Sei S der Zustandsraum einer Datenstruktur, sei s0 der Anfangszustand und sei :SIR+ eine nichtnegative Funktion. Für eine Operation X und einen Zustand s mit ss´ definiere
AX(s) := (s´) - (s) + TX(s).
Dann sind die Funktionen AX(s) eine Familie amortisierter Zeitschranken.
X
![Page 44: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/44.jpg)
11.04.23 Kapitel 2 44
Exkurs: Amortisierte Analyse
Zu zeigen: T() c + i=1n AOpi
(si-1)
Beweis:
i=1n AOpi
(si-1) = i=1n [(si) - (si-1) + TOpi
(si-1)]
= T() + i=1n [(si) - (si-1)]
= T() + (sn) - (s0)
T() = i=1n AOpi
(si-1) + (s0) - (sn)
i=1n AOpi
(si-1) + (s0) konstant
![Page 45: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/45.jpg)
Selbstorganisierende Liste
1.7 Satz: MTF ist 2-kompetitiv.Beweis:• Wir zeigen mit amortisierter Analyse, dass A(s)2OPT(s) ist.• Wir verwenden die Potentialfunktion , die eine Konfiguration
von A und OPT auf eine reelle Zahl abbildet, wobei für alle t (t)0 und (0)=0 gilt.
• Wir wollen zeigen, dass für alle Zeitpunkte t gilt:A((t))+(t)-(t-1) cOPT((t))
• Damit ist A c-kompetitiv, denn durch das Summieren über alle t ergibt sich:
t=1m (A((t))+(t)-(t-1)) c t=1
m OPT((t)) A()+(m)-(0) cOPT()
A() cOPT() - (m) cOPT()
11.04.23 Kapitel 2 45
![Page 46: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/46.jpg)
Selbstorganisierende Liste
Beweis (Fortsetzung):• Wir wählen als Potentialfunktion die Anzahl
der Inversionen in der Liste, wobei eine Inversion ein geordnetes Paar (x,y) von Listenelementen ist, so dass x vor y in OPT´s Liste ist und x hinter y in MTF´s Liste ist.
11.04.23 Kapitel 2 46
1 8 5 9 4 3 7 2MTF:
2 1 5 3 8 7 9 4OPT:
Inversionen: (1,2), (2,3), (2,4), (2,5), (2,7), (2,8), (2,9), (3,4), (3,8), (3,9), (4,7), (5,8), (7,9)
![Page 47: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/47.jpg)
Selbstorganisierende Liste
Beweis (Fortsetzung):• Sei (t)=x. x befinde sich direkt nach k in OPTs
Liste und direkt nach l in MTFs Liste. Außerdem verschiebe OPT das Listenelement x nach vorne, so dass es direkt nach dem Listenelement i eingeführt wird.
11.04.23 Kapitel 2 47
i k xOPT:
i l xMTF:
![Page 48: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/48.jpg)
Selbstorganisierende Liste
• Durch OPTs Verschieben von x nach vorne können höchstens k-i neue Inversionen entstehen.
• Durch MTFs Verschieben von x werden anschließend l-i Inversionen aufgehoben und höchstens i neue Inversionen erzeugt.
• Also gilt: MTF((t))+DF(t)) (l+1)+(k-i)+(i-(l-i)) = k+i+1 2k+1 < 2(k+1) = 2OPT((t))
11.04.23 Kapitel 2 48
![Page 49: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/49.jpg)
Selbstorganisierende Liste
Bemerkung: Satz 1.7 lässt sich für insert- und delete-Operationen erweitern, wenn diese wie folgt implementiert werden.
• Insert(e): Füge Element e vorne in die Liste ein.
• Delete(k): Lösche Element e mit key(e)=k aus der Liste raus.
11.04.23 Kapitel 2 49
![Page 50: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/50.jpg)
Selbstorganisierende Liste
1.8 Satz: Sei A ein deterministischer online Algorithmus für selbstorganisierende Listen. Ist A c-kompetitiv, dann ist c2.
Beweis:• Sei eine Liste mit n Elementen gegeben.• Der Gegner erzeugt eine Anfragesequenz
, in der stets das letzte Element in A´s Liste angefragt wird. Für ||=m ist A()=mn.
11.04.23 Kapitel 2 50
![Page 51: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/51.jpg)
Selbstorganisierende Liste
Beweis (Fortsetzung):• Wir betrachten die Offline-Strategie SL, die mit einer
statischen Liste beantwortet, in der die Elemente nach nicht-steigenden Häufigkeiten sortiert sind.
• Sei m ein Vielfaches von n. Der worst case für SL ist, dass jedes Element gleich häufig angefragt wird. Dann entstehen für i=1..n ja m/n-mal Kosten i.
• Also ist OPT() i=1
n im/n + = (n+1)m/2 + n(n-1)/2
• Daraus folgt, dass c = A()/OPT() 2n/(n+1) = 2-2/(n+1)
11.04.23 Kapitel 2 51
n2
m
Aufwand für Umsortieren
![Page 52: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/52.jpg)
Selbstorganisierende Liste
1.9 Satz: Transpose ist für keine Konstante c c-kompetitiv.
Beweis:• Betrachte die Liste 1,…,n und die Anfragefolge
=(n,n-1,n,n-1,…,n,n-1) mit ||=m.• Dann entstehen für Transpose Kosten von
Transpose(s)=mn.• Mit MTF entstehen auf derselben Folge Kosten
von MTF(s)=n+n+2(m-2) = 2n+2m-4.• Für n>m ist also
c = Transpose(s)/OPT(s) Transpose(s)/MTF(s) m/4
11.04.23 Kapitel 2 52
![Page 53: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/53.jpg)
Selbstorganisierende Liste
1.10 Satz: FC ist für keine Konstante c c-competitiv.
Beweis: Übung.
11.04.23 Kapitel 2 53
![Page 54: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/54.jpg)
11.04.23 Kapitel 2 54
Suchstruktur
Selbstorganisierende Liste (mit -Element)
Problem bleibt: insert, delete und lookup kosten im worst case (n) Zeit
Einsicht: Wenn lookup effizient zu implementieren wäre, dann auch alle anderen Operationen
191
…3
![Page 55: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/55.jpg)
11.04.23 Kapitel 2 55
Suchstruktur
Idee: füge Navigationsstruktur hinzu, die lookup effizient macht
31
…119
Navigationsstruktur
![Page 56: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/56.jpg)
11.04.23 Kapitel 2 56
Binärer Suchbaum (ideal)
1 3 10 14 195 28 1
1 5
3
14 28
19
10lookup(14)
![Page 57: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/57.jpg)
11.04.23 Kapitel 2 57
Binärer Suchbaum
Suchbaum-Regel:
Damit lookup Operation einfach zu imple-mentieren.
k
T1 T2
Für alle Schlüssel k´ in T1 und k´´ in T2: k´ < k < k´´
![Page 58: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/58.jpg)
11.04.23 Kapitel 2 58
Lookup(k) Operation
Suchstrategie:• Starte in Wurzel des Suchbaums• Für jeden erreichten Knoten v:
– Falls key(v) > k, gehe zum linken Kind von v, sonst gehe zum rechten Kind
k
T1 T2
Für alle Schlüssel k´ in T1 und k´´ in T2: k´ < k < k´´
![Page 59: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/59.jpg)
11.04.23 Kapitel 2 59
Binärer Suchbaum
Formell: für einen Baumknoten v sei• key(v) der Schlüssel in v• d(v) die Anzahl Kinder von v
• Suchbaum-Regel: (s.o.)
• Grad-Regel:Alle Baumknoten haben zwei Kinder (sofern #Elemente >1)
• Schlüssel-Regel:Für jedes Element e in der Liste gibt es genau einen Baumknoten v mit key(v)=key(e).
![Page 60: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/60.jpg)
11.04.23 Kapitel 2 60
Lookup(10)
1 3 10 14 195 28 1
1 5
3
14 28
19
10
![Page 61: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/61.jpg)
11.04.23 Kapitel 2 61
Insert und Delete Operationen
Strategie:• insert(e):
Erst lookup(key(e)) bis Element e´ in Liste erreicht. Falls key(e´)>key(e), füge e vor e´ ein und ein neues Suchbaumblatt für e und e´ mit key(e), so dass Suchbaum-Regel erfüllt.
• delete(k):Erst lookup(k) bis ein Element e in Liste erreicht. Falls key(e)=k, lösche e aus Liste und Vater v von e aus Suchbaum, und setze in dem Baumknoten w mit key(w)=k: key(w):=key(v)
![Page 62: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/62.jpg)
11.04.23 Kapitel 2 62
Insert(5)
1 10 14 28 1
1
28
14
10
![Page 63: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/63.jpg)
11.04.23 Kapitel 2 63
Insert(5)
1 10 14 28 1
1
28
14
10
5
5
![Page 64: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/64.jpg)
11.04.23 Kapitel 2 64
Insert(12)
1 10 14 28 1
1
28
14
10
5
5
![Page 65: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/65.jpg)
11.04.23 Kapitel 2 65
Insert(12)
1 10 12 28 1
1
28
14
10
5
5
14
12
![Page 66: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/66.jpg)
11.04.23 Kapitel 2 66
Delete(1)
1 10 12 28 1
1
28
14
10
5
5
14
12
![Page 67: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/67.jpg)
11.04.23 Kapitel 2 67
Delete(1)
10 12 28 1
28
14
10
5
5
14
12
![Page 68: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/68.jpg)
11.04.23 Kapitel 2 68
Delete(14)
10 12 28 1
28
14
10
5
5
14
12
![Page 69: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/69.jpg)
11.04.23 Kapitel 2 69
Delete(14)
10 12 28 1
28
12
10
5
5
![Page 70: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/70.jpg)
11.04.23 Kapitel 2 70
Binärbaum
Problem: Binärbaum kann entarten!
Beispiel: Zahlen werden in sortierter Folge eingefügt
1 3 10 14 195 28 1
1
53
14
2819
10
Lookup benötigt (n)Zeit im worst case
Lösung: Splay Baum
![Page 71: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/71.jpg)
11.04.23 Kapitel 2 71
Splay-Baum
Üblicherweise: Implementierung als interner Suchbaum (d.h. Elemente direkt integriert in Baum und nicht in extra Liste)
Hier: Implementierung als externer Such-baum (wie beim Binärbaum oben)
![Page 72: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/72.jpg)
11.04.23 Kapitel 2 72
Splay-Baum
1 3 10 14 195 28 1
1 5
3
14 28
19
10lookup(19)
In Baum Zeiger auf Listenelement
![Page 73: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/73.jpg)
11.04.23 Kapitel 2 73
Splay-Baum
Ideen:
1. Im Baum Zeiger auf Listenelemente
2. Bewege Schlüssel von zugegriffenem Element immer zur Wurzel
2. Idee: über Splay-Operation
![Page 74: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/74.jpg)
11.04.23 Kapitel 2 74
Splay-Operation
Bewegung von Schlüssel x nach oben:
Wir unterscheiden zwischen 3 Fällen.
1a. x ist Kind der Wurzel:
A B
C
x
y x
A
B C
yzig
![Page 75: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/75.jpg)
11.04.23 Kapitel 2 75
Splay-Operation
Bewegung von Schlüssel x nach oben:
Wir unterscheiden zwischen 3 Fällen.
1b. x ist Kind der Wurzel:
A B
C
y
xy
A
B C
xzig
![Page 76: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/76.jpg)
11.04.23 Kapitel 2 76
Splay-Operation
Wir unterscheiden zwischen 3 Fällen.
2a. x hat Vater und Großvater rechts:
A B
C
x
y y
B
C D
zzig-zig
D
z x
A
![Page 77: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/77.jpg)
11.04.23 Kapitel 2 77
Splay-Operation
Wir unterscheiden zwischen 3 Fällen.
2b. x hat Vater und Großvater links:
zig-zig
A B
C
z
y
D
x
y
B
C D
x
z
A
![Page 78: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/78.jpg)
11.04.23 Kapitel 2 78
Splay-Operation
Wir unterscheiden zwischen 3 Fällen.
3a. x hat Vater links, Großvater rechts:
zig-zag
A B C
y
x
D
z
y
A
B C
x
z
D
![Page 79: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/79.jpg)
11.04.23 Kapitel 2 79
Splay-Operation
Wir unterscheiden zwischen 3 Fällen.
3b. x hat Vater rechts, Großvater links:
zig-zag
A B C
z
x
D
y
B C
D
x
y
A
z
![Page 80: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/80.jpg)
11.04.23 Kapitel 2 80
Splay-Operation
Beispiel:
1 3 10 14 195 28 1
1 5
3
14 28
19
10
x
zig-zag Operation (3a)
![Page 81: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/81.jpg)
11.04.23 Kapitel 2 81
Splay-Operation
1 3 10 14 195 28 1
114 28
19
10
5
3
![Page 82: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/82.jpg)
11.04.23 Kapitel 2 82
Splay-Operation
Beispiele:
zig-zig, zig-zag, zig-zag, zig zig-zig, zig-zag, zig-zig, zig
x x
![Page 83: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/83.jpg)
11.04.23 Kapitel 2 83
Splay-Operation
Baum kann im worst-case immer noch sehr
unbalanciert werden! Aber amortisierte
Kosten sind sehr niedrig.
1 3 10 14 195 28 1
1
53
14
2819
10
![Page 84: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/84.jpg)
11.04.23 Kapitel 2 84
Splay-Operation
lookup(k)-Operation:• Laufe von Wurzel startend nach unten, bis
k im Baumknoten gefunden (Abkürzung zur Liste) oder bei Liste angekommen
• k in Baum: rufe splay(k) auf
Amortisierte Analyse:m Splay-Operationen auf beliebigem Anfangsbaum mit n Elementen (m>n)
![Page 85: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/85.jpg)
11.04.23 Kapitel 2 85
Splay-Operation
• Gewicht von Knoten x: w(x)• Baumgewicht von Baum T mit Wurzel x:
tw(x)= yT w(y)
• Rang von Knoten x: r(x) = log(tw(x))
• Potential von Baum T: (T) = xT r(x)
1.11 Lemma: Sei T ein Splay-Baum mit Wurzel u und x ein Knoten in T. Die amortisierten Kosten für splay(x,T) sind max. 1+3(r(u)-r(x)).
![Page 86: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/86.jpg)
11.04.23 Kapitel 2 86
Splay-Operation
Beweis von Lemma 1.11:Induktion über die Folge der Rotationen.• r und tw : Rang und Gewicht vor Rotation• r’ und tw’: Rang und Gewicht nach Rotation1. Fall:
Amortisierte Kosten: 1+r’(x)+r’(y)-r(x)-r(y) 1+r’(x)-r(x) da r’(y) r(y) 1+3(r’(x)-r(x)) da r’(x) r(x)
A BC
xy x
AB C
yzig
Laufzeit(# Rot.)
Änderung von
![Page 87: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/87.jpg)
11.04.23 Kapitel 2 87
Splay-Operation
2. Fall:
Amortisierte Kosten: 2+r’(x)+r’(y)+r’(z)-r(x)-r(y)-r(z) = 2+r’(y)+r’(z)-r(x)-r(y) da r’(x)=r(z) 2+r’(x)+r’(z)-2r(x) da r’(x)r’(y) und r(y)r(x)
A BC
xy y
BC D
zzig-zig
D
z x
A
![Page 88: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/88.jpg)
11.04.23 Kapitel 2 88
Splay-Operation
2. Fall:
Behauptung: Es gilt, dass 2+r’(x)+r’(z)-2r(x) 3(r’(x)-r(x))d.h. r(x)+r’(z) 2(r’(x)-1)
A BC
xy y
BC D
zzig-zig
D
z x
Ar(x)
r’(z)
r’(x)
![Page 89: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/89.jpg)
11.04.23 Kapitel 2 89
Splay-Operation
2. Fall:
Behauptung: Es gilt, dass r(x)+r’(z) 2(r’(x)-1)Ersetzungen: r(x) log x , r’(z) log y , r’(x) log 1.Betrachte die Funktion f(x,y)=log x + log y.Zu zeigen: f(x,y) -2 für alle x,y0 mit x+y1.
A BC
xy y
BC D
zzig-zig
D
z x
Ar(x)
r’(z)
r’(x)
![Page 90: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/90.jpg)
11.04.23 Kapitel 2 90
Splay-Operation
1.12 Lemma: Die Funktion f(x,y)=log x + log y hat in dem Bereich x,y0 mit x+y1 im Punkt (½,½) ihr Maximum.
Beweis:• Da die Funktion log x streng monoton wachsend ist,
kann sich das Maximum nur auf dem Geradensegment x+y=1, x,y0, befinden.
• Neues Maximierungsproblem: betrachteg(x) = log x + log(1-x)
• Einzige Nullstelle von g’(x) = 1/x - 1/(1-x) ist x=1/2. • Für g’’(x)= -(1/x2 + 1/(1-x)2)) gilt g’’(1/2) < 0.• Also hat Funktion f im Punkt (½,½) ihr Maximum.
![Page 91: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/91.jpg)
11.04.23 Kapitel 2 91
Splay-Operation
2. Fall:
Behauptung: Es gilt, dass r(x)+r’(z) 2(r’(x)-1)Ersetzungen: r(x) log x , r’(z) log y , r’(x) log 1.Es folgt: f(x,y)=log x + log y -2 für alle x,y0 mit x+y1.Die Behauptung ist also korrekt.
A BC
xy y
BC D
zzig-zig
D
z x
Ar(x)
r’(z)
r’(x)
![Page 92: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/92.jpg)
11.04.23 Kapitel 2 92
Splay-Operation
3. Fall:
Amortisierte Kosten: 2+r’(x)+r’(y)+r’(z)-r(x)-r(y)-r(z) 2+r’(y)+r’(z)-2r(x) da r’(x)=r(z) und r(x)r(y) 2(r’(x)-r(x)) denn…
zig-zag
A B C
y
x
D
zy
AB C
x
z
D
![Page 93: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/93.jpg)
11.04.23 Kapitel 2 93
Splay-Operation
3. Fall:
…es gilt: 2+r’(y)+r’(z)-2r(x) 2(r’(x)-r(x)) 2r’(x)-r’(y)-r’(z) 2 r’(y)+r’(z) 2(r’(x)-1) analog zu Fall 2
zig-zag
A B C
y
x
D
zy
AB C
x
z
D
![Page 94: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/94.jpg)
11.04.23 Kapitel 2 94
Splay-Operation
Beweis Lemma 1.11:
Induktion über die Folge der Rotationen.• r: Rang vor Rotation• r’: Rang nach Rotation• Für jede Rotation ergeben sich amortisierte
Kosten von max. 1+3(r’(x)-r(x)) (Fall 1) bzw. 3(r’(x)-r(x)) (Fälle 2 und 3)
• Aufsummierung der Kosten ergibt mit Wurzel u max. 1 + Rot. 3(r’(x)-r(x)) = 1+3(r(u)-r(x))
![Page 95: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/95.jpg)
11.04.23 Kapitel 2 95
Splay-Operation
• Baumgewicht von Baum T mit Wurzel x: tw(x)= yT w(y)
• Rang von Knoten x: r(x) = log(tw(x))• Potential von Baum T: (T) = xT r(x)
1.13 Lemma: Sei T ein Splay-Baum mit Wurzel u und x ein Knoten in T. Die amortisierten Kosten für splay(x,T) sind max. 1+3(r(u)-r(x)) = 1+3log (tw(u)/tw(x)).
1.14 Korollar: Sei W=x w(x) und wi das Gewicht von ki in i-tem lookup. Für m lookup-Operationen sind die amor-tisierten Kosten O(m+3i=1
m log (W/wi)).
![Page 96: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/96.jpg)
11.04.23 Kapitel 2 96
Splay-Baum
1.15 Satz: Die Laufzeit für m lookup Operationen in einem n-elementigen Splay-Baum T ist höchstens
O(m+(m+n)log n).Beweis:• Sei w(x) = 1 für alle Schlüssel x in T. • Dann ist W=n und r(x) log W = log n für alle x in T.• Erinnerung: für eine Operationsfolge F ist die Laufzeit
T(F) A(F) + (s0)für amortisierte Kosten A und Anfangszustand s0
• (s0) = xT r0(x) n log n• Aus Korollar 1.14 ergibt sich Theorem 1.15.
![Page 97: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/97.jpg)
11.04.23 Kapitel 2 97
Splay-BaumAngenommen, wir haben eine Wahrscheinlichkeitsvertei-lung für die Suchanfragen.• p(x) : Wahrscheinlichkeit für Schlüssel x• H(p) = x p(x)log(1/p(x)) : Entropie von p
1.16 Satz: Die Laufzeit für m lookup Operationen in einem n-elementigen Splay-Baum T ist höchstens
O(mH(p) + nlog n).Beweis:Folgt aus Korollar 1.14 mit w(x) = np(x) für alle x.
Bemerkung: Laufzeit (mH(p)) für jeden statischen binären Suchbaum! Es ist aber seit der Enwicklung von Splay Bäumen vor 25 Jahren immer noch ein offenes Problem, ob diese konstant kompetitiv auch gegenüber dynamischen binären Suchbäumen sind.
![Page 98: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/98.jpg)
11.04.23 Kapitel 2 98
Splay-Baum Operationen
Bemerkung: Die amortisierte Analyse kann erweitert werden auf insert und delete, wenn diese wie folgt implementiert sind.
insert(e):• wie im binären Suchbaum• splay-Operation, um key(e) in Wurzel zu
verschieben
delete(k):• wie im binären Suchbaum
![Page 99: 10.11.2013Kapitel 21 Methoden des Algorithmenentwurfs Kapitel 2.1: Deterministische Online Algorithmen Christian Scheideler SS 2009](https://reader038.vdocuments.pub/reader038/viewer/2022110117/55204d6149795902118b5809/html5/thumbnails/99.jpg)
11.04.23 Kapitel 2 99
Fragen?