10.11.2013kapitel 21 methoden des algorithmenentwurfs kapitel 2.2: randomisierte online algorithmen...
TRANSCRIPT
11.04.23 Kapitel 2 1
Methoden des Algorithmenentwurfs
Kapitel 2.2: RandomisierteOnline Algorithmen
Christian Scheideler
SS 2009
Übersicht
• Notation
• Paging
• Selbstorganisierende Suchstrukturen
• Finanzielle Spiele
11.04.23 Kapitel 2 2
Notation
2.1 Definition: Sei ein Optimierungs-problem und A ein Online Algorithmus für . Für eine beliebige Eingabesequenz =((1),(2),…,(t)) seien E[A()] die erwarteten 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: E[A()] cOPT() + a
11.04.23 Kapitel 2 3
Übersicht
• Notation
• Paging
• Selbstorganisierende Suchstrukturen
• Finanzielle Spiele
11.04.23 Kapitel 2 4
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
Algorithmus RANDOM:Entferne bei jedem Seitenfehler eine zufällig gemäß der Gleichverteilung gewählte Seite aus dem Cache.
11.04.23 Kapitel 2 5
Paging
2.2 Satz: RANDOM ist nicht besser als k-kompetitiv im Erwartungswert.
Beweis:• Wähle für N>>k die folgende Eingabesequenz:
=b0 a1…ak-1 (b1 a1…ak-1)N(b2 a1…ak-1) N…
• In jeder Phase Pi,i1, ist die Wkeit für das Aus-lagern der Seite bi-1 bei jedem Cache-Miss 1/k.
• Also macht RANDOM in jeder Phase im Erwar-tungswert k Fehler, bis er sich von bi-1 trennt.
11.04.23 Kapitel 2 6
P0 P1 P2
Paging
Algorithmus MARKING:• Die Anfragesequenz wird in Phasen bedient. Zu
Beginn einer Phase sind alle Seiten unmarkiert. • Wird eine Seite angefragt, so wird sie markiert. • Bei einem Seitenfehler wird eine zufällig gleichverteilt
ausgewählte unmarkierte Seite entfernt.• Eine Phase endet unmittelbar vor einem Seitenfehler,
wenn alle Seiten im schnellen Speicher markiert sind.
2.3 Satz: MARKING ist 2Hk-kompetitiv, wobei Hk = i=1
k 1/i die k-te harmonische Zahl ist.
Bemerkung: Es gilt ln(k+1) Hk ln(k) + 1.11.04.23 Kapitel 2 7
Paging
Algorithmus MARKING:
:
11.04.23 Kapitel 2 8
7
1Cache
Hauptspeicher
2 3 4 5 6
7 8
4 8 1 6 4 23
Paging
Algorithmus MARKING:
:
11.04.23 Kapitel 2 9
7
1Cache
Hauptspeicher
2
3
4 5 67
8
4 8 1 6 4 23
Paging
Algorithmus MARKING:
:
11.04.23 Kapitel 2 10
7
1Cache
Hauptspeicher
2
3
4 5 67
8
84 1 6 4 23
Paging
Algorithmus MARKING:
:
11.04.23 Kapitel 2 11
7
1Cache
Hauptspeicher
2
3
4 5
6
7 8
34 8 1 6 4 2
Paging
Algorithmus MARKING:
:
11.04.23 Kapitel 2 12
7
1Cache
Hauptspeicher 2
3 4 5
6
7 8
14 38 6 4 2
Paging
Algorithmus MARKING:
:
11.04.23 Kapitel 2 13
7
1Cache
Hauptspeicher 2
3 4 5
6
7 8
4 38 61 4 2
Paging
Algorithmus MARKING:
:
11.04.23 Kapitel 2 14
7
1Cache
Hauptspeicher 2
3 4
5
67 8
4 38 41 6 2
Paging
Algorithmus MARKING:
:
11.04.23 Kapitel 2 15
7
1Cache
Hauptspeicher 2
3 4
5
67 8
4 38 21 6 4
Paging
Algorithmus MARKING:
:
11.04.23 Kapitel 2 16
7
1Cache
Hauptspeicher 2
3 4
5
67 8
4 38 21 6 4
neue Phase
Paging
Beweis:• Sei eine beliebige Anfragesequenz.• MARKING zerlegt in Phasen P1,P2,…,Pm.• Jede Phase Pi enthält genau k verschiedene Seiten-
anfragen, und die erste Anfrage von Pi ist verschieden von allen Seitenanfragen in Pi-1.
• ni: Anzahl der neuen Seitenanfragen in Pi (d.h. Seiten, die nicht in Pi-1 angefragt wurden)
• Wir zeigen, dass OPT amortisierte Kosten von mindestens ni/2 in Pi erzeugt und MARKING mit erwarteten Kosten von niHk auskommt.
• Dann ergibt sich als Kompetitivitätsfaktor c niHk/(ni/2) = 2Hk
11.04.23 Kapitel 2 17
Paging
Beweis (Fortsetzung):• Wir zeigen zunächst, dass OPT amortisierte Kosten von
mindestens ni/2 pro Phase Pi erzeugt.• Wir betrachten zwei aufeinanderfolgende Phasen Pi und Pi+1.• Pi und Pi+1 enthalten zusammen genau k+ni paarweise
verschiedene Seiten.• OPT macht also in diesem Phasenpaar mindestens ni Fehler.• Es gilt also:
OPT n2+n4+n6+… = i gerade nisowie OPT n1+n3+n4+… = i ungerade ni
• Insgesamt erhalten wir als amortisierte Kosten 2OPT i gerade ni + i ungerade ni
OPT (1/2) i ni 11.04.23 Kapitel 2 18
PagingBeweis (Fortsetzung):• MARKING erzeugt in Phase Pi genau ni Seitenfehler für die Anfragen auf
neue Seiten.• Es kann aber auch Seitenfehler für Seiten geben, die nicht neu in Pi sind!• Die Anzahl der in Pi angefragten alten Seiten sei oi. Es gilt oi+ni=k.• Wir betrachten die erste Anfrage auf die j-te alte Seite, joi.• Unmittelbar vorher enthält der Cache ni
j neue Seiten, die bisher angefragt worden sind, ni
jni.• Es gibt k-(j-1) alte Seiten, die vor der Anfrage auf die j-te alte Seite noch
nicht angefragt wurden. Von diesen alten Seiten sind nij nicht mehr im
Cache.• Die Wahrscheinlichkeit für einen Seitenfehler ist also
nij/(k-(j-1)) ni/(k-(j-1))
• Da ni1 ist, gilt oik-1 und damit 1/(k-oi+1) ½. Als erwartete Kosten für die alten Seiten ergibt sich also j=1
oi ni/(k-(j-1)) ni(1/k+…+1/2) = ni(Hk-1)• Die Gesamtkosten in Phase Pi sind also cost(Pi) ni+ni(Hk-1) = niHk.
11.04.23 Kapitel 2 19
Paging2.4 Satz: Sei A ein randomisierter Online-Paging-Algorithmus, der c-kompetitiv
ist. Dann ist c Hk.Beweis:• Sei A ein Online-Paging-Algorithmus.• Die Menge der angefragten Seiten sei {p1,…,pk+1}.• Der Gegner verwaltet einen Vektor von Wahrscheinlichkeitswerten Q=(q1,
…,qk+1). qi ist die Wahrscheinlichkeit, dass die Seite pi nicht im Cache von A ist.
• Es gilt i=1k+1 qi = 1. Die Einträge im Vektor Q werden vom Gegner in jedem
Schritt aktualisiert.• Wir unterteilen die Anfragesequenz in Phasen, die jeweils aus k
Subphasen bestehen. Der Gegner markiert die angefragten Seiten wie bei MARKING und unterteilt in entsprechende Phasen. Mit jeder neu markierten Seite beginnt eine neue Subphase.
• In jeder Subphase j wollen wir für A erwartete Kosten von 1/(k+1-j) erzeugen, so dass sich die Kosten pro Phase für A berechnen zu j=1
k 1/(k+1-j) = 1/k + 1/(k-1) + … + 1 = Hk
• Der Gegner soll pro Phase Kosten von 1 erzeugen. Dann folgt Satz 2.4.11.04.23 Kapitel 2 20
PagingBeweis (Fortsetzung):• Zu Beginn einer Subphase j gibt es j markierte Seiten.• Sei M die Menge der markierten Seiten. Wir setzen = piM qi und
unterscheiden zwei Fälle.• Ist =0, dann gibt es k+1-j unmarkierte Seiten, von denen wir eine
unmarkierte Seite pi mit qi 1/(k+1-j) auswählen.• Diese Seite wird vom Gegner angefragt und markiert. Damit endet
Subphase j.• Ist >0, dann gibt es ein piM mit qi=>0. Der Gegner fragt pi an und
erzeugt somit bei A erwartete Kosten .• Solange die erwarteten Kosten für Subphase j kleiner als 1/(k+1-j)
sind und > ist, fragt der Gegner die markierte Seite piM mit dem größten qi an.
• Nach dem Ende dieser Schleife fragen wir die unmarkierte Seite pi mit größtem qi an und markieren sie, womit Subphase j beendet wird.
11.04.23 Kapitel 2 21
Paging
Beweis (Fortsetzung):• Wird die Schleife verlassen, dann sind die erwarteten
Kosten entweder mindestens 1/(k+1-j) oder es gilt • Die erwarteten Kosten am Ende der Schleife sind also
mindestens 1-piM qi 1- 1- 1 k+1-j k+1-j k+1-j k+1-j
• Am Phasenende bleibt die zuletzt markierte Seite für die neue Phase markiert.
• Am Anfang einer Phase entfernt der Gegner gerade die Seite aus dem Cache, die zu Beginn der folgenden Phase angefragt wird. So erreicht er Kosten 1 pro Phase.
11.04.23 Kapitel 2 22
Übersicht
• Notation
• Paging
• Selbstorganisierende Suchstrukturen
• Finanzielle Spiele
11.04.23 Kapitel 2 23
11.04.23 Kapitel 2 24
Erinnerung: 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
11.04.23 Kapitel 2 25
Erinnerung: Suchstruktur
Effektive Regel für Listen: Move-to-Front
Frage: geht es besser mit randomisierter Regel?
31
…19
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 26
Kosten 7
x x
Selbstorganisierende Liste
Algorithmus BIT:• Halte für jedes Listenelement x ein Bit b(x).
Anfangs werden diese Bits zufällig und unabhängig voneinander mit 0 oder 1 initialisiert.
• Bei jeder Anfrage x wird b(x) komplementiert. Wechselt b(x) dabei auf 1, so wird x an den Kopf der Liste bewegt, andernfalls wird die Position von x nicht geändert.
2.5 Satz: BIT ist 1,75-kompetitiv.11.04.23 Kapitel 2 27
Selbstorganisierende Liste
Beweis:• Sei beliebig. Zu jedem Zeitpunkt von gilt:
b(x) = (Startwert+#(Anfragen auf x)) mod 2.• Wir führen eine amortisierte Analyse durch, wobei wir die
Anzahl der Inversionen betrachten (siehe die MTF-Analyse im vorigen Kapitel).
• Bei einer Inversion (x,y) ist x vor y in OPTs Liste, aber y vor x in BITs Liste.
• Wir unterscheiden Inversionen, bei denen b(x)=0 ist (Typ 1) und bei denen b(x)=1 ist (Typ 2).
• Als Potentialfunktion verwenden wir = #(Inversionen vom Typ 1) + 2#(Inversionen vom Typ 2)
• Wir wollen zeigen: BIT((t)) + E[(t)-(t-1)] 1,75 OPT((t))
11.04.23 Kapitel 2 28
Selbstorganisierende Liste
Beweis (Fortsetzung):• OPT bearbeite die Anfragen vor BIT. Wir
betrachten nun die Fälle, in denen eine Inversion aufgehoben bzw. neu erzeugt werden kann.
• Sei k die Position in OPTs Liste direkt vor dem aktuell angefragten Listenelement x und i die Position direkt vor der neuen Position von x.
• Für die Aktionen von OPT gilt OPT((t))=k+1 und
E[OPT] (k-i)((1/2)(1+2)) = 1,5(k-i)11.04.23 Kapitel 2 29
i k xOPT:
Selbstorganisierende Liste
Beweis (Fortsetzung):• In BITs Liste sei x an Position l+1.
• Für die Potentialänderung durch BITs Bedienen der Anfrage unterscheiden wir zwei Fälle.
11.04.23 Kapitel 2 30
i l xBIT:
b(x):10
b(x):01
Selbstorganisierende ListeErster Fall: li.(a) Ist b(x)=1 vor dem Zugriff, dann wechelt b(x) auf 0. Die Position von
x wird nicht verändert, es können also keine neuen Inversionen entstehen. Damit ist BITa=0.
(b) Ist b(x)=0, dann können höchstens l neue Inversionen entstehen, die jeweils entsprechend des Bitwerts des übersprungenen Listenelements bewertet werden. Damit ergibt sich E[BITb] l ((1/2)(1+2)) = 1,5 l
Da (a) und (b) mit Wkeit 0,5 auftreten, gilt:BIT((t)) + E[] = = BIT((t)) + E[OPT] + 0,5(E[BITa] + E[BITb]) l+1+1,5(k-i) + 0,50 + 0,51,5 l = l+1 + 0,75l + 1,5(k-i) = 1,75l + 1,5(k-i) + 1 1,75i + 1,5(k-i) + 1 1,75(k+1) = 1,75 OPT((t))
11.04.23 Kapitel 2 31
Selbstorganisierende ListeZweiter Fall: i<l.(a) Ist b(x)=1, dann ändert sich die Position von x nicht. Da x in OPT
jetzt an Position i+1 ist, gibt es l-i Inversionen, deren Typ von 2 auf 1 wechselt. Damit ergibt sich BITa –(l-i).
(b) Ist b(x)=0, dann kommt x an den Kopf der Liste, womit l-i Inversionen aufgehoben werden. Hier sinkt mindestens um l-i. Außerdem werden höchstens i neue Inversionen (y,x) erzeugt, die im Erwartungswert mit 1,5 zu beitragen. Also ist E[BITb] 1,5i - (l-i).
Da (a) und (b) mit gleicher Wkeit auftreten, gilt BIT((t)) + E[] = = BIT((t)) + E[OPT] + 0,5(E[BITa] + E[BITb]) l+1+1,5(k-i) + 0,5(l-i) + 0,5(1,5i – l + i) = l+1 + 1,5k – 1,5i – 0,5l + 0,5i + 0,75i – 0,5l + 0,5i = 1 + 1,5k + 0,25i 1 + 1,75k 1,75(k+1) = 1,75 OPT((t))
11.04.23 Kapitel 2 32
Übersicht
• Notation
• Paging
• Selbstorganisierende Suchstrukturen
• Finanzielle Spiele
11.04.23 Kapitel 2 33
Finanzielle Spiele
Sei = p1, p2, p3,… eine Sequenz von Preisen für ein Gut.
Problem: wähle das Maximum (Minimum) in . Akzeptieren wir den i-ten Preis, dann ist unser Ertrag pi. Andernfalls spielen wir weiter und das Angebot pi ist verfallen.
Beispiele: Hausverkauf, Gehaltsverhandlung, Aktienkauf
Einschränkung: Wir beschränken uns auf Suchprobleme mit einer beschränkten Preisspanne [m,M] mit 0<mM, die dem Online-Spieler bekannt ist.
11.04.23 Kapitel 2 34
Finanzielle Spiele
Algorithmus RPP (Reservation-Price-Policy):Wir setzen einen Reservation Price p*= mM und akzeptieren den ersten Preis p mit pp*. Falls wir am Ende noch kein Angebot angenommen haben, geben wir uns mit dem letzten Angebot zufrieden.
2.6 Satz: RPP ist -kompetitiv, wobei =M/m ist.Beweis:• Sei beliebig und pmax der maximale Preis der Sequenz.• Ist p*pmax, dann ist
OPT()/RPP() pmax/m p*/m = Mm/m = • Ist p*<pmax, dann ist
OPT()/RPP() pmax/p* M/ Mm = In beiden Fällen ist also RPP –kompetitiv.
11.04.23 Kapitel 2 35
Finanzielle Spiele
2.7 Satz: Kein deterministischer Online-Algorithmus A ist besser als -kompetitiv.
Beweis:• Der Gegner bietet als ersten Preis mM .• Akzeptiert A das Angebot, dann bieten wir als
nächstes M und erhalten als Verhältnis . • Akzeptiert A das Angebot nicht, dann bieten
wir als nächstes m und erhalten ebenfalls als Verhältnis .
11.04.23 Kapitel 2 36
Finanzielle Spiele
Wie wir sehen werden, können randomisierte online Algorithmen deutlich besser sein.
Algorithmus EXPO:Sei M=m2k mit kIN, also =2k. Sei RPPi der RPP Algorithmus mit p*=m2i. Wähle mit Wahrscheinlichkeit 1/k die Strategie RPPi für i{1,…,k}.
2.8 Satz: EXPO ist c()log –kompetitiv mit c()1 für .
11.04.23 Kapitel 2 37
Finanzielle Spiele
Beweis:• Sei eine beliebige Preisfolge gegeben und jIN so, dass
m2j pmax < m2j+1.• Hat EXPO die Strategie RPPi gewählt, dann ist für ij der
Ertrag mindestens m2i. Für i>j und damit p*>pmax ist der Ertrag von EXPO mindestens m. Als erwarteter Ertrag von EXPO ergibt sich darausE[EXPO()] = (1/k)(i=1
j m2i + (k-j)m) = (m/k)(2j+1-2+k-j)
• Also ist OPT()/E[EXPO()] m2j+1/[(m/k)(2j+1-2+k-j)] k/(1+(k-j-2)/2j+1) = log /(1+(k-j-2)/2j+1)
• Der Term 1/(1+(k-j-2)/2j+1) wird maximiert für j*=k-2+1/log 2, wodurch dieser für k gegen 1 konvergiert.
11.04.23 Kapitel 2 38
11.04.23 Kapitel 2 39
Fragen?