Vorlesung Internet Algorithmen SS 2014 Prof.Dr. Georg Schnitger 30. Mai 2014 Hinweise auf Fehler und Anregungen zum Skript bitte an [email protected] Mit einem Stern gekennzeichnete Abschnitte werden in der Vorlesung nur kurz angesprochen. Inhaltsverzeichnis 1 Einführung 1.1 Notation . . . . . . . . . . . . . 1.2 Wichtige Ungleichungen . . . . 1.3 Graphen . . . . . . . . . . . . . 1.4 Grundlagen aus der Stochastik 1.5 Lineare Programmierung . . . . I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Die Bearbeitung großer Datenmengen 2 Suchmaschinen 2.1 Die Architektur von Suchmaschinen . . . 2.2 Google . . . . . . . . . . . . . . . . . . . . 2.2.1 Markoff-Ketten . . . . . . . . . . . 2.2.2 Berechnung des Page-Rank . . . . 2.2.3 Inhalt-abhängiger Page-Rank . . . 2.3 Hubs und Authorities . . . . . . . . . . . 2.3.1 Inhalt-abhängige Suche . . . . . . 2.4 Meta-Suchmaschinen . . . . . . . . . . . . 2.4.1 Der Unmöglichkeitssatz von Arrow 2.4.2 Die Kendall-Distanz . . . . . . . . 2.5 Das Semantische Netz . . . . . . . . . . . 2.6 Zusammenfassung . . . . . . . . . . . . . 7 8 9 10 12 22 25 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 27 28 29 31 33 34 37 38 39 42 45 46 3 Hashing für Web-Anwendungen 3.1 Verteiltes Hashing in Peer-to-Peer Netzwerken: CHORD . . . . . 3.2 Ähnlichkeitsbestimmung . . . . . . . . . . . . . . . . . . . . . . . 3.2.1 Min-Hashing . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.2 Wann existieren ähnlichkeitsbewahrende Hashfunktionen? 3.3 Bloom-Filter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.1 Anwendungen . . . . . . . . . . . . . . . . . . . . . . . . . 3.4 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 49 52 54 55 57 60 61 4 Streaming Data 4.1 Stichproben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 Häufigkeitsmomente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.1 Streaming-Data und Kommunikation . . . . . . . . . . . . . . . . . . . 63 64 68 68 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 INHALTSVERZEICHNIS 4.3 4.4 4.5 II 4.2.2 Die Bestimmung von H0 . . . . . . . . . . . . . 4.2.3 Die Bestimmung von H2 . . . . . . . . . . . . . Häufigkeitsanfragen . . . . . . . . . . . . . . . . . . . . 4.3.1 Heavy Hitters . . . . . . . . . . . . . . . . . . . 4.3.2 Der Bloom-Filter Sketch . . . . . . . . . . . . . 4.3.3 Häufigkeitseigenschaften . . . . . . . . . . . . . Algorithmen für Zeitfenster: Zählen der letzten Einsen Histogramme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 74 77 77 79 82 83 85 Internet Routing 91 5 Routing 5.1 Routing Tabellen . . . 5.2 Intra-Domain Routing 5.3 Inter-Domain Routing 5.4 Multicast Routing . . . . . . 95 95 95 98 100 . . . . 103 104 108 112 115 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Queueing-Strategien 6.1 Stabilität . . . . . . . . . . . . . . . . 6.2 Instabile Queueing-Strategien . . . . . 6.3 Queuegröße . . . . . . . . . . . . . . . 6.4 Eine randomisierte Queueing-Strategie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Erasure Codes 119 7.1 Informationsrate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 7.2 Berechnung der Grad-Sequenzen . . . . . . . . . . . . . . . . . . . . . . . . . 123 7.3 Leistungsdaten der Tornado Codes . . . . . . . . . . . . . . . . . . . . . . . . 127 8 End-to-End Congestion Control 131 8.1 AIMD für eine Ressource . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 8.2 Alternative Geschwindigkeitsregeln . . . . . . . . . . . . . . . . . . . . . . . . 139 9 IP-Traceback 143 III 151 Die Theorie nicht-kooperativer Spiele 10 Algorithmische Spieltheorie 11 Das 11.1 11.2 11.3 Nash-Gleichgewicht Soziale und Pareto-optimale Strategieprofile . . . Gemischte Strategien . . . . . . . . . . . . . . . . Dominante Strategien und ehrliche Mechanismen 11.3.1 Auktionen . . . . . . . . . . . . . . . . . . 11.3.2 Eine Investitionsentscheidung . . . . . . . 11.3.3 Ein Routing Spiel . . . . . . . . . . . . . 11.4 Beschränkte Rationalität . . . . . . . . . . . . . . 153 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 159 161 165 165 166 167 169 INHALTSVERZEICHNIS 12 Die 12.1 12.2 12.3 12.4 5 Berechnung von Nash-Gleichgewichten Zweipersonen-Nullsummenspiele . . . . . . . . . . . . . . . Der Lemke-Howson Algorithmus . . . . . . . . . . . . . . . Fixpunktsätze . . . . . . . . . . . . . . . . . . . . . . . . . . Wie schwer ist die Bestimmung von Nash-Gleichgewichten? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Der Preis der Anarchie 14 Auktionen 14.1 Multi-Unit Auktionen: k Exemplare . . . . . 14.2 Multi-Unit Auktionen: Unbeschränkte Anzahl 14.3 Kombinatorische Auktionen . . . . . . . . . . 14.3.1 Gebotformulierung . . . . . . . . . . . 14.3.2 Zuteilung im Verkäuferproblem . . . . 14.3.3 Zuteilung bei ehrlichen Auktionen . . 14.4 Äquivalenz der Einkünfte . . . . . . . . . . . Literaturverzeichnis 173 173 176 182 186 189 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 198 202 210 211 213 215 220 225 6 INHALTSVERZEICHNIS Kapitel 1 Einführung Das Skript ist in die drei folgenden Themengebiete unterteilt: I Bearbeitung großer Datenmengen, II Internet Routing und III algorithmische Spieltheorie. Im ersten Teil betrachten wir zuerst Suchmaschinen und beschreiben das Page-Rank-Verfahren von Google sowie den Hubs-Authorities Ansatz von Kleinberg. Im Kapitel 3 untersuchen wir verteilte Hashing-Verfahren, ähnlichkeitsbewahrendes Hashing sowie speicherplatz-effizientes Hashing und wenden die entsprechenden Methoden auf besonders Daten-reiche Probleme im verteilten Rechnen an. In Kapitel 4 untersuchen wir das Streaming Data Modell: Große Datenmengen sind in Echtzeit zu bewältigen, wobei wir annehmen müssen, dass uns nur ein einziger Datendurchlauf zur Verfügung steht. Wir entwickeln algorithmische Lösungen vorwiegend für die statistische Datenanalyse, und zeigen in vielen Fällen, dass unsere Lösungen (fast-)optimal sind. Der zweite Teil befasst sich mit dem Internet Routing. Nach einer kurzen Einführung in das Internet Protokoll (IP), das Transmission Control Protokoll (TCP) sowie in das Intra-Domain und Inter-Domain Routing beginnen wir mit einer Untersuchung von Queueing Strategien für Router in Abschnitt 6. Nach dem Unicast Routing Problem, also dem Versenden einer Nachricht von einem Sender an einen Empfänger, besprechen wir auch kurz das Multicast Routing Problem, in dem ein multimedialer Datenstrom (Video on Demand, Interaktives Fernsehen, Live Übertragungen) von einem Sender an mehrere Empfänger zu verschicken ist. Wir stellen den Tornado Code detailliert vor, der durch eine redundante Daten-Kodierung in Echtzeit die Netzbelastung wesentlich reduziert. In Abschnitt 8 beschreiben und analysieren wir die Additive Increase, Multiplicative Decrease Strategie, mit der TCP die Emissionsrate eines Senders der Netzbelastung anpasst, und skizzieren alternative Methoden der Verkehrssteuerung im Internet. Wir schließen in Abschnitt 9 mit einer Betrachtung von Verfahren zur Bekämpfung von Denial-of-Service Attacken. Das Internet wird von einer Vielzahl von Personen und Institutionen betrieben und genutzt, die angetrieben von eigenen, meist wirtschaftlichen Interessen miteinander agieren, Koalitionen bilden, aber auch konkurrieren. Daher scheint es naiv zu erwarten, dass Ressourcen gerecht geteilt werden und dass sich Rechner stets an vorgegebene Protokolle halten. Wir betrachten 7 8 KAPITEL 1. EINFÜHRUNG deshalb im dritten und letzten Teil die algorithmische Spieltheorie, um den Egoismus-Aspekt der beteiligten Akteure (oder Spieler) untersuchen zu können. Wir beschränken uns auf die nicht-kooperativen Spieltheorie und nehmen an, dass die Spieler miteinander konkurrieren ohne Koalitionen bilden zu können. Nash-Gleichgewichte beschreiben Spielkonfigurationen, die im gewissen Sinne für alle Spieler profitabel sind. Wesentliche Fragestellungen in Kapitel 11 betreffen die Existenz von NashGleichgewichten (Abschnitte 12.1 und 12.3) sowie ihre Berechnung (Abschnitt 12.2). Die Berechnung optimaler Spielstrategien verlangt Spieler mit unbeschränkter Rechenkraft, und wir untersuchen deshalb in Abschnitt 11.4 die Konsequenz beschränkter Rechenkraft. Dann wenden wir den Begriff des Nash-Gleichgewichts an, um verschiedene Varianten von TCP evaluieren und um den Effekt des egoistischen Routings im Kapitel 13 zu untersuchen. Textbücher: - In der algorithmischen Spieltheorie ist das über das Internet frei erhältliche, bei Cambridge University Press erschienene Textbuch „Algorithmic Game Theory“ von N. Nisan, T. Roughgarden, E. Tardos und V. Vazirani zu empfehlen. - Im ebenfalls bei Cambridge University Press erschienen Text von D. Easley und J. Kleinberg, „Network Crowds and Markets: Reasoning about a highly connected world“ werden Grundzüge der algorithmischen Spieltheorie und der Suchmaschinen behandelt. 1.1 Notation R bezeichnet die Menge der reellen Zahlen, R≥0 , die Menge der nicht-negativen reellen Zahlen, Q die Menge der rationalen Zahlen und N die Menge der natürlichen Zahlen. Für eine reelle Zahl x ist bxc die größte natürliche Zahl kleiner oder gleich x und dxe die kleinste natürliche Zahl größer oder gleich x. Wir benutzen die asymptotische Notation, um den Ressourcenbedarf für große Eingabelängen zu analysieren. Für zwei Funktionen f, g : N → R≥0 schreiben wir (a) f = O(g), falls f (n) ≤ cg(n) für alle n ≥ N , wobei N eine ausreichend große natürliche Zahl und c > 0 eine passend gewählte Konstante ist. (b) f = Ω(g), falls g = O(f ). (c) f = Θ(g), falls f = O(g) und g = O(f ). (d) f = o(g), falls limn→∞ (e) f ∼ g, falls limn→∞ f (n) g(n) f (n) g(n) = 0. = 1. Das innere Produkt hx, yi von zwei Vektoren x = (x1 , . . . , xn ) and y = (y1 , . . . , yn ) in Rn wird durch hx, yi = x1 · y1 + · · · + xn · yn . p definiert und die Euklid’sche Norm ||x|| durch ||x|| = hx, xi. Eine reell-wertige Funktion f (x) ist genau dann konvex (bzw. konkav), wenn f (λx + (1 − λ)y) ≤ λf (x) + (1 − λ)f (y) (resp. f (λx + (1 − λ)y) ≤ λf (x) + (1 − λ)f (y)) 1.2. WICHTIGE UNGLEICHUNGEN 9 für jedes 0 ≤ λ ≤ 1 gilt. Die Konvexität von f bedeutet geometrisch gesehen, dass eine Gerade mit den Endpunkten (x, f (x)) und (y, f (y)) stets oberhalb der Kurve liegt. Deshalb ist es für die Konvexität ausreichend, wenn die zweite Ableitung nicht-negativ ist. 1.2 Wichtige Ungleichungen Die Ungleichung von Cauchy-Schwartz besagt, dass das innere Produkt von zwei Vektoren der Länge Eins durch Eins beschränkt ist. Lemma 1.1 Es seien x und y Vektoren im Rn . Dann gilt hx, yi ≤ ||x|| · ||y||. Beweis: Wir betrachten das innere Produkt hu, vi von zwei Vektoren u und v der Norm 1. Der Wert des inneren Produkts stimmt mit dem Kosinus des Winkels zwischen u und v y x überein und ist deshalb durch 1 nach oben beschränkt. Also folgt h ||x|| , ||y|| i ≤ 1 und damit die Behauptung. Wir benötigen auch eine Abschätzung von 1 ± x durch die e-Funktion. Lemma 1.2 Für jedes x > −1 gilt ex/(1+x) ≤ 1 + x ≤ ex . Darüberhinaus gilt 1 + x ≤ ex für alle x ∈ R. Beweis: Wir beschränken uns zuerst auf den Fall x ≥ 0. Der natürliche Logarithmus ist eine konkave Funktion und deshalb ist die Steigung der Sekante in den Punkten 1 und 1 + x durch die Tangentensteigungen in den Punkten 1 nach oben und 1 + x nach unten beschränkt. Dies liefert die Ungleichung 1 ln(1 + x) − ln(1) ln(1 + x) ≤ = ≤1 1+x (1 + x) − 1 x (1.1) x ≤ ln(1 + x) ≤ x. 1+x (1.2) oder äquivalent Die erste Behauptung folgt also für x ≥ 0 durch Exponentieren. Für x ∈] − 1, 0] brauchen wir nur zu beachten, dass diesmal die Ungleichung 1≤ ln(1 + x) − ln(1) 1 ≤ (1 + x) − 1 1+x gilt: Das Argument ist analog zur Ableitung von Ungleichung (1.1). Wir erhalten jetzt wieder Ungleichung (1.2), und damit die Behauptung, wenn wir (1.1) mit der negativen Zahl x multiplizieren. Damit gilt aber auch 1 + x ≤ ex für alle reellen Zahlen, da 1 + x für x ≤ −1 negativ und ex stets positiv ist. Wie verhält sich die “Konvexitätsungleichung”, wenn wir eine konvexe Funktion auf eine Summe von mehr als zwei Termen anwenden? 10 KAPITEL 1. EINFÜHRUNG Lemma 1.3 (Jensen’s Ungleichung) Wenn 0 ≤ λi ≤ 1, ist, dann gilt f X r λi xi ≤ i=1 r X Pr i=1 λi = 1 und wenn f konvex λi f (xi ). i=1 Beweis: Wir führen eine Induktion nach der Anzahl r der Terme. Die Basis r = 2 ist offensichtlich richtig, da f konvex ist. Für den Induktionsschritt von r auf r + 1 ersetzen wir die Summe der beiden Terme λ1 x1 + λ2 x2 durch den einen Term λ1 λ2 (λ1 + λ2 ) x1 + x2 = (λ1 + λ2 ) · x02 λ1 + λ2 λ1 + λ2 und können dann die Induktionshypothese auf x02 , x3 , . . . , xn anwenden. Wir erhalten jetzt sofort eine wichtige Beziehung zwischen dem arithmetischen und dem geometrischen Mittel. Lemma 1.4 a1 , . . . , an seien nicht-negative Zahlen. Dann gilt n 1X ai ≥ n i=1 Y n 1/n ai . (1.3) i=1 Beweis: Wir setzen f (x) = 2x , λ1 = . . . = λn = 1/n und xi = log2 ai , für alle i = 1, . . . , n. Nach Jensen’s Ungleichung folgt n n n X X 1X ai = λi f (xi ) ≥ f λi xi n i=1 i=1 i=1 ! Pn = 2( x /n i=1 i ) = n Y !1/n ai . i=1 Die beiden letzten Ungleichung sind für die Abschätzung von Binomialkoeffizienten wichtig. Lemma 1.5 (a) Die Stirling Formel besagt n! = n √ n 1 1 · 1+ + O( 2 ) . 2π · n · e 12 · n n (b) Es ist n k 1.3 ! = n! ≤ k! · (n − k)! n·e k k . Graphen Ein ungerichteter Graph ist ein Paar G = (V, E), das aus einer Knotenmenge V und einer Kantenmenge E besteht, wobei alle Kanten Teilmengen von V der Größe zwei sind. Wir sagen, dass ein Knoten v mit der Kante e inzident ist, wenn v ∈ e. Die beiden mit einer Kanten e inzidenten Knoten sind die Endpunkte von E. Zwei Knoten u, v ∈ V heißen adjazent, oder benachbart, wenn {u, v} eine Kante von G ist. In einem gerichteten Graphen sind Kanten geordnete Paare, d.h. es gilt stets E ⊆ V 2 , und wir haben die Möglichkeit den Anfangs- und 1.3. GRAPHEN 11 Endpunkt einer Kante auszuzeichnen. Der Knoten v heißt ein Nachbar (oder Nachfolger) von u, falls (u, v) ∈ E. Die Anzahl der Nachbarn eines Knotens u ist der Grad von u. Der Grad eines Graphen ist der maximale Grad eines Knotens. Ein Spaziergang der Länge k in G ist eine Folge v0 , e1 , v1 . . . , ek , vk von Knoten und Kanten, so dass ei = {vi−1 , vi } ∈ E, bzw. (vi−1 , vi ) ∈ E. Ein Spaziergang ohne wiederholte Knoten ist ein Weg. Ein Kreis der Länge k ist ein Spaziergang v0 , . . . , vk der Länge k mit v0 = vk und der Eigenschaft, dass v0 , . . . , vk−1 ein Weg ist. Die Distanz zwischen zwei Knoten ist die minimale Länge eines Weges zwischen den beiden Knoten. Abbildung 1.1: Der erste Graph ist ein Kreis der Länge 5. Der zweite Graph besteht aus zwei Kreisen der Länge 3. Ein Hamilton-Kreis ist ein Kreis, der jeden Knoten genau einmal durchläuft. Ein Euler-Kreis ist ein Spaziergang, der zu seinem Anfangsknoten zurückkehrt und jede Kante genau einmal durchläuft. Eine Knotenmenge in einem ungerichteten Graphen ist zusammenhängend, wenn je zwei Knoten der Menge durch einen Weg verbunden sind. Eine Zusammenhangskomponente ist eine größte zusammenhängende Knotenmenge. Ein Wald ist ein ungerichteter Graph ohne Kreise. Ein Baum ist ein zusammenhängender Wald. (Mit anderen Worten, ein Wald ist eine knoten-disjunkte Vereinigung von Bäumen.) Abbildung 1.2: Ein Wald, der aus drei Bäumen besteht. In einem Baum mit Wurzel wird genau ein Knoten als Wurzel ausgezeichnet. Wenn der Weg von der Wurzel zum Knoten w die Kante {v, w} benutzt, dann heißt w ein Kind von v und v der Vater von w. Knoten vom Grad 1 heißen Blätter. Die Tiefe eines Knotens ist die Länge des Weges von der Wurzel bis zu dem Knoten. Die Tiefe eines Baums ist die größte Tiefe eines Blatts. Ein Baum heißt binär, wenn die Wurzel den Grad zwei und jedes Nicht-Blatt den Grad drei besitzt. Ein vollständiger binärer Baum der Tiefe T ist ein binärer Baum, in dem alle Blätter die Tiefe T besitzen. Ein vollständiger Graph oder eine Clique ist ein Graph, in dem je zwei Knoten adjazent sind. Eine unabhängige Menge ist eine Knotenmenge, in der je zwei Knoten nicht durch eine Kante 12 KAPITEL 1. EINFÜHRUNG r v a b w u Abbildung 1.3: Ein Baum mit Wurzel der Tiefe 3; u und w sind Kinder des Vaters v. verbunden sind. Ein Graph ist bipartit, wenn seine Knotenmenge in zwei unabhängige Mengen zerlegt werden kann. Eine legale Färbung eines ungerichteten Graphen G = (V, E) ist eine Farbzuweisung an die Knoten, so dass adjazente Knoten verschiedene Farben erhalten. Eine legale Färbung zerlegt somit die Knotenmenge in unabhängige Mengen. Die minimale Farbenzahl, die für die Färbung eines Graphen G benötigt wird, heißt die chromatische Zahl χ(G) von G. Aufgabe 1 (a) Zeige, dass die Tiefe eines binären Baums mit n Blättern mindestens dlog2 ne beträgt. (b) Sei B ein binärer Baum mit N Blättern und sei Ti die Tiefe des iten Blatts. Zeige die sogenannte Kraft’sche Ungleichung n X 2−Ti ≤ 1. i=1 Hinweis: Assoziere einen binären String mit jedem Blatt. 1.4 Grundlagen aus der Stochastik Ein endlicher Wahrscheinlichkeitsraum besteht aus einer endlichen Menge Ω (dem Stichprobenraum) und einer Funktion prob : Ω → [0, 1] P (der Wahrscheinlichkeitsverteilung), so dass x∈Ω prob [x] = 1. Der Wahrscheinlichkeitsraum repräsentiert das Zufallsexperiment, ein Element von Ω auszuwählen und prob [x] ist die Wahrscheinlichkeit, dass x gewählt wird. Die Elemente x ∈ Ω heißen Stichproben und Teilmengen A ⊆ Ω heißen Ereignisse. Die Wahrscheinlichkeit eines Ereignisses A ist prob [A] = X prob [x] , x∈A also die Wahrscheinlichkeit, dass ein Element mit Eigenschaft A gewählt wird. Einige elementare Eigenschaften folgen direkt aus diesen Definitionen. Für zwei Ereignisse A and B (und das Komplement Ā = Ω \ A) gilt (1) prob [A ∪ B] = prob [A] + prob [B] − prob [A ∩ B]; h i (2) prob Ā = 1 − prob [A]; h i (3) prob [A ∩ B] ≥ prob [A] − prob B̄ ; 1.4. GRUNDLAGEN AUS DER STOCHASTIK 13 (4) Wenn B1 , . . . , Bm eine Zerlegung von Ω ist, dann ist prob [A] = (5) prob [ Sn i=1 Ai ] ≤ Pm i=1 prob [A ∩ Bi ]. Pn i=1 prob [Ai ]. Besonders Eigenschaft (5) werden wir häufig benutzen. Für zwei Ereignisse A und B ist prob [A|B] die bedingte Wahrscheinlichkeit von A gegeben B, also die Wahrscheinlichkeit, dass Ereignis A eintritt, wenn man bereits weiß, dass Ereignis B eingetreten ist. Formal definieren wir prob [A ∩ B] , prob [A|B] = prob [B] falls prob [B] 6= 0. Wenn wir zum Beispiel eine Zahl aus der Menge {1, . . . , 6} zufällig ziehen und wenn A das Ereignis ist, dass 2 die gezogene Zahl ist und B das Ereignis ist, dass die gezogene Zahl gerade ist, dann ist prob [A|B] = 1/3, wohingegen prob [B|A] = 1 gilt. B A Proportion of in B Abbildung 1.4: Interpretation von prob [A|B], wenn alle Elemente gleichwahrscheinlich sind. Zwei Ereignisse A und B heißen unabhängig, wenn prob [A ∩ B] = prob [A]·prob [B]. Beachte, dass diese Bedingung äquivalent mit prob [A|B] = prob [A] wie auch mit prob [B|A] = prob [B] ist. Wenn alle Elemente gleichwahrscheinlich sind, dann sind zwei Ereignisse genau dann unabhängig, wenn der Anteil |A|/|Ω| von Ereignis A im Stichprobenraum mit dem Anteil |A ∩ B|/|B| des Ereignisses A ∩ B im Ereignis B übereinstimmt. Beachte, dass Unabhängigkeit nichts mit der Disjunktheit von Ereignissen zu tun hat: Wenn zum Beispiel prob [A] > 0, prob [B] > 0 und A ∩ B = ∅ gilt, dann sind die Ereignisse A und B abhängig! Beispiel 1.1 Wir beschreiben das „Monty Hall Problem“. In einer Game Show ist hinter einer von drei Türen ein Preis verborgen. Ein Zuschauer rät eine der drei Türen und der Showmaster Monty Hall wird daraufhin eine weitere Tür öffnen, hinter der sich aber kein Preis verbirgt. Der Zuschauer erhält jetzt die Möglichkeit, seine Wahl zu ändern. Sollte er dies tun? Wir betrachten die Ereignisse - Pi , dass sich der Preis hinter Tür i befindet, - Zi , dass der Zuschauer zuerst Tür i wählt und - Mi , dass Monty Hall Tür i nach der ersten Wahl des Zuschauers öffnet. Wir nehmen o.B.d.A. an, dass der Zuschauer zuerst Tür 1 wählt und dass Monty Hall daraufhin Tür 2 öffnet; desweiteren nehmen wir an, dass der Zuschauer wie auch Monty Hall seine Wahl jeweils nach der Gleichverteilung trifft. Wir müssen die bedingten Wahrscheinlichkeiten prob[ P1 | Z1 , M2 ] und prob[ P3 | Z1 , M2 ] berechnen und beachten, dass 14 KAPITEL 1. EINFÜHRUNG prob[ P1 | Z1 , M2 ] + prob[ P3 | Z1 , M2 ] = 1 gilt, denn der Preis befindet sich nicht hinter der geöffneten Tür 2. Nach Definition der bedingten Wahrscheinlichkeiten ist prob[ P1 | Z1 , M2 ] · prob[ Z1 , M2 ] = prob[ Z1 , M2 | P1 ] · prob[ P1 ] und prob[ P3 | Z1 , M2 ] · prob[ Z1 , M2 ] = prob[ Z1 , M2 | P3 ] · prob[ P3 ]. Wir bestimmen jeweils die rechten Seiten und erhalten 1 1 1 prob[ P1 | Z1 , M2 ] · prob[ Z1 , M2 ] = ( · ) · , 3 2 3 denn Monty Hall kann die Türen 2 und 3 öffnen. Andererseits ist 1 1 prob[ P3 | Z1 , M2 ] · prob[ Z1 , M2 ] = ( · 1) · , 3 3 denn Monty Hall kann nur Tür 2 öffnen. Also ist prob[ P3 | Z1 , M2 ] · prob[ Z1 , M2 ] = 2 · prob[ P1 | Z1 , M2 ] · prob[ Z1 , M2 ] und wir erhalten prob[ P3 | Z1 , M2 ] = seine Wahl stets ändern! 2 3 und prob[ P1 | Z1 , M2 ] = 13 : Der Zuschauer sollte Eine Zufallsvariable ist eine Funktion X : Ω → R. Wenn zum Beispiel X eine aus der Menge {1, . . . , n} zufällig gezogene Zahl ist, dann sind X, Y = 2X und Z = „die Anzahl der Primteiler von X“ Zufallsvariablen. Eine Indikatorvariable für das Ereignis A ist eine 0-1 wertige Zufallsvariable mit ( 1 wenn ω ∈ A; X(ω) = 0 sonst. Beispiel 1.2 Die Lösung des Monty Hall Problems kann mit Hilfe von Zufallsvariablen kompakt erklärt werden: Sei W die Zufallsvariable, die die erste Wahl des Zuschauers beschreibt und sei T die Zufallsvariable, die die richtige Tür beschreibt. Dann findet die Änderungsstrategie genau dann die richtige Tür, wenn W und T unterschiedliche Werte annehmen und dieses Ereignis hat die Wahrscheinlichkeit 23 . Fazit: Mit höherer Wahrscheinlichkeit war die erste Wahl schlecht und wird durch die veränderte Wahl richtig. Zufallsvariablen X1 , . . . , Xn heißen genau dann unabhängig, wenn für alle x1 , . . . , xn ∈ R prob[ X1 = x1 ∧ · · · ∧ Xn = xn ] = n Y prob[ Xi = xi ] i=1 gilt. Die Zufallsvariablen heißen k-fach unabhängig, wenn Xi1 , . . . , Xik für jede Teilmenge {i1 , . . . , ik } ⊆ {1, . . . , n} von k Elementen unabhängig ist. Beachte, dass wiederholte Experimente unabhängigen Experimenten entsprechen. Desweiteren sind unabhängige Zufallsvariablen X1 , . . . , Xn k-fach unabhängig für jedes k < n. Die Umkehrung dieser Aussage gilt nicht. Aufgabe 2 Konstruiere paarweise unabhängige Zufallsvariablen X1 , X2 , X3 , die aber nicht unabhängig sind. 1.4. GRUNDLAGEN AUS DER STOCHASTIK 15 Der Erwartungswert einer Zufallsvariable kann für jede reell-wertige Zufallsvariable X definiert werden und ist, intuitiv gesprochen, der zu „erwartende“ Wert, wenn wir das Zufallsexperiment X mehrfach wiederholen und das durchschnittliche Ergebnis berechnen. Formal definieren wir den Erwartungswert von X als die Summe E [X] = X i · prob [X = i] i über alle Werte i des Wertebereichs: Wenn wir zum Beispiel würfeln, dann ist E [X] = i i=1 6 = 3.5 der Erwartungswert. (An diesem Beispiel können wir beobachten, dass der Erwartungswert von X kein Element des Wertebereichs von X sein muss!) P6 1 2 3 4 6 7 8 Abbildung 1.5: Interpretation des Erwartungswerts als „Masse-Zentrum“”: Die Stichproben haben das Gewicht pi = prob [X = ai ] auf der x-Achse an den Stellen ai für i = 1, . . . , n. Erwarte nie das „Erwartete“! Und tatsächlich sagt der Erwartungswert in vielen ärgerlichen Fällen nicht viel über das Verhalten der Zufallsvariable X aus. Der Erwartungswert ist nämlich nur dann vertrauenswürdig, wenn man zeigen kann, dass größere Abweichungen vom Erwartungswert unwahrscheinlich sind. Die „Distanz“ zwischen einer Zufallsvariable X und ihrem Erwartungswert misst man zum Beispiel mit der Varianz, die durch h i Var [X] = E (X − E [X])2 . definiert ist. Eine sehr wichtige Eigenschaft des Erwartungswerts ist seine Linearität. Satz 1.6 (Linearität des Erwartungswerts.) Für Zufallsvariablen X, Y und reelle Zahlen a, b gilt E [a · X + b · Y ] = a · E [X] + b · E [Y ] . Beweis: x1 , . . . , xn und y1 , . . . , ym seien Elemente des Wertebereichs von X, bzw. Y . Da für jede reelle Zahl a E [a · X] = n X a · xi · prob [X = xi ] = a · i=1 n X xi · prob [X = xi ] = a · E [X] , i=1 gilt, genügt der Nachweis von E [X + Y ] = E [X] + E [Y ]. Da die Ereignisse Y = yj für P verschiedene yj ’s disjunkt sind, folgt prob [X = xi ] = m j=1 prob [X = xi , Y = yj ] , und ein ähnliches Ergebnis gilt natürlich für prob [Y = yj ]. Deshalb folgt E [X + Y ] = n X m X (xi + yj )prob [X = xi , Y = yj ] i=1 j=1 16 KAPITEL 1. EINFÜHRUNG = = n X m X xi prob [X = xi , Y = yj ] + i=1 j=1 n X m X i=1 j=1 m X n X yj prob [X = xi , Y = yj ] j=1 i=1 xi prob [X = xi ] + yj prob [Y = yj ] = E [X] + E [Y ] . Aufgabe 3 (a) Zeige, dass die Varianz mit der Formel Var [X] = E X 2 − (E [X])2 berechnet werden kann. (b) Zeige, dass stets Var [a · X + b] = a2 · Var [X] gilt. (c) X und Y seien unabhängige Zufallsvariablen. Zeige, dass E [X · Y ] = E [X] · E [Y ] and Var [X + Y ] = Var [X] + Var [Y ] gilt. (d) X sei eine Zufallsvariable, die nur natürliche Zahlen als Werte annimmt. Zeige, dass E X 2 ≥ E [X], P∞ prob [X = 0] ≥ 1 − E [X] und E [X] = x=1 prob [X ≥ x] gelten. (e) Benutze die Ungleichung von Cauchy-Schwarz, um nachzuweisen, dass E [X]2 ≤ E X 2 für jede Zufallsvaraiable X gilt. (f) Wir haben n Briefe, die an verschiedene Personen adressiert sind und n Umschläge mit den jeweiligen Adressen. Wir stecken die Briefe zufällig und unabhängig voneinander in Umschläge und erlauben, dass mehrere Briefe in den selben Umschlag gesteckt werden. Wieviele Briefe landen im richtigen Umschlag? (g) Zeige, dass es für beliebige Vektoren v1 , . . . , vn ∈ {+1, −1}n stets Koeffizienten 1 , . . . , n ∈ {+1, −1} gibt, so dass k1 v1 + · · · + n vn k ≤ n gilt. Hinweis: Wähle die Koeffizienten i zufällig und unabhängig voneinander, wobei i = 1 mit Wahrscheinlichkeit 1/2 gelte, und benutze die Linearität des Erwartungswerts, um die erwartete Länge des Vektors P i vi zu berechnen. Die Methode der Erzeugendenfunktionen. Es gibt eine allgemeine Methode, um den Erwartungswert E [X] wie auch die Varianz Var [X] für eine beliebige diskrete Zufallsvariable X : Ω → N zu berechnen. Wir setzen pk = prob [X = k] und definieren die Erzeugendenfunktion von X durch X FX (x) := pk xk , wobei wir über alle Werte k des Wertebereichs von X summieren. Satz 1.7 Für jede diskrete Zufallsvariable gilt FX (1) = 1 E [X] = Var [X] = (1.4) FX0 (1) FX00 (1) (1.5) 2 + E [X] − E [X] . (1.6) P Beweis: Die erste Gleichung folgt sofort aus FX (1) = pk = 1. P P Wir berechnen die erste Ableitung FX0 (x) = kpk xk−1 und erhalten FX0 (1) = kpk = E [X]. P Schließlich berechnen wir die zweite Ableitung FX00 (x) = k(k − 1)pk xk−2 und folgern FX00 (1) = X k(k − 1)pk = X k 2 pk − X h i kpk = E X 2 − E [X] . 1.4. GRUNDLAGEN AUS DER STOCHASTIK 17 Wenn wir also E [X] addieren und E [X]2 von der rechten Seite subtrahieren, dann erhalten wir genau die Varianz Var [X]. Wir betrachten als Nächstes einige wichtige Verteilungen. Uniforme Verteilung: In der uniformen Verteilung sind alle Stichproben gleichwahrscheinlich und wir definieren dementsprechend diese „einfachste“ Verteilung durch 1 . |Ω| pk = prob [X = k] = Wir sagen, dass X uniform verteilt ist. Aufgabe 4 Berechne den Erwartungswert und die Varianz einer uniform verteilten Zufallsvariable. Binomialverteilung: Wir sagen, dass eine Zufallsvariable X mit Parametern n and k binomiell verteilt ist, vorausgesetzt ! n k p (1 − p)n−k k prob [X = k] = gilt für jedes 0 ≤ k ≤ n. Für n unabhängige Zufallsvariablen X1, . . . , Xn mit prob [Xi = 1] = p und prob [Xi = 0] = 1 − p folgt prob [X1 + · · · + Xn = k] = nk pk (1 − p)n−k und die Zufallsvariable X = X1 + · · · + Xn ist binomiell verteilt. P Der Erwartungswert von X ist E [X] = ni=1 E [Xi ] = np und auch die Varianz kann einfach berechnet werden. Wegen der Linearität des Erwartungswerts ist h i h X E X2 = E ( i Xi )2 = X h i E Xi2 + i X E [Xi · Xj ] . i6=j Da Xi , Xj paarweise unabhängig sind, folgt E [Xi · Xj ] = E [Xi ] · E [Xj ] und deshalb ist h E X 2 i ! n = np + 2 · · p2 = np + n(n − 1)p2 = (np)2 + np(1 − p). 2 Also gilt Var [X] = E X 2 − (E [X])2 = np(1 − p). Geometrische Verteilung: Wir werfen solange eine Münze, bis wir zum ersten Mal „Wappen“ erhalten. Wenn X die Anzahl der Versuche misst, dann ist X auf der Menge Ω = {Zahln · Wappen | n ∈ N} definiert und wir haben zum ersten Mal einen Stichprobenraum von abzählbar unendlicher Größe erhalten. Wenn p die Wahrscheinlichkeit für „Wappen“ ist, dann erhalten wir pk = prob [X = k] = q k−1 · p mit q = 1 − p. Wir benutzen Erzeugendenfunktionen, um Erwartungswert und Varianz zu berechnen. Die Erzeugendenfunktion von X ist FX (x) = ∞ X t=1 q t−1 p · xt = px · ∞ X t=0 q t xt = px . 1 − qx 18 KAPITEL 1. EINFÜHRUNG Die erste und zweite Ableitung ist FX0 (x) = p (1 − qx)p + pxq = (1 − qx)2 (1 − qx)2 und FX00 (x) = 2pq . (1 − qx)3 Also folgt nach Satz 1.7, E [X] = FX0 (1) = p 1 = 2 (1 − q) p und Var [X] = FX00 (1) + E [T ] − E [Y ]2 = 2pq 1 1−p 1 + − 2 = . 3 p p p p2 Aufgabe 5 Eine Zufallsquelle Q produziert Nullen und Einsen, wobei eine Eins mit Wahrscheinlichkeit p erscheint. Wir können auf Q zugreifen, kennen aber p nicht. Unsere Aufgabe ist die Konstruktion einer perfekten Zufallsquelle, die eine Eins mit Wahrscheinlichkeit 21 produziert. Wir können also den Strom der Zufallsbits von Q beobachten und müssen einen Strom von perfekten Zufallsbits konstruieren. Entwirf eine perfekte Zufallsquelle, so dass die erwartete Anzahl von Q-Bits pro perfektem Zufallbit höchstens 1 beträgt. p·(1−p) Hinweis: Betrachte zwei aufeinanderfolgende Bits von Q. Aufgabe 6 Wir können auf eine perfekte Zufallsquelle zugreifen, die 0 und 1 mit Wahrscheinlichkeit genau 1 2 produziert. - Wir möchten die Verteilung (p1 , . . . , pn ) erzeugen. Entwirf einen Algorithmus, der i mit Wahrscheinlichkeit pi erzeugt und benutze höchstens die erwartete Anzahl von O(log2 n) Bits der perfekten Quelle. Beachte, dass p1 , . . . , pn ≥ 0 beliebige reelle Zahlen sind, die zu Eins summieren. - Bestimme die Worst-Case Anzahl perfekter Zufallsbits für p1 = p2 = p3 = 13 . Aufgabe 7 Wir spielen gegen einen Gegner, der sich zwei Zahlen ausdenkt und jede Zahl, für uns nicht sichtbar, auf jeweils ein eigenes Blatt Papier schreibt. Wir wählen zufällig ein Blatt, lesen die Zahl und haben dann die Wahl, die Zahl zu behalten oder gegen die verbleibende Zahl zu tauschen. Sei x die Zahl für die wir uns letztlich entscheiden und sei y die verbleibende Zahl. Dann ist x − y unser (möglicherweise negativer) Gewinn. - Wir betrachten die Strategie St ≡ „Gib Zahlen < t zurück und behalte Zahlen ≥ t“. Analysiere den erwarteten Gewinn Ex,y (Gewinn(St )) dieser Strategie in Abhängigkeit von t, x und y. - Entwirf eine randomisierte Strategie mit erwartetem positiven Gewinn für beliebige, aber verschiedene Zahlen x 6= y. Aufgabe 8 Wir spielen ein Spiel mit Erfolgswahrscheinlichkeit p = 1/2. Wenn wir gewinnen, verdoppeln wir unseren Einsatz, wenn wir verlieren, verlieren wir auch unseren Einsatz. Betrachte die folgende Strategie i:=0 REPEAT Setze den Einsatz 2i $ i:=i+1 UNTIL(Ich gewinne zum ersten Mal) Berechne den erwarteten Gewinn und den erwarteten Geldbetrag, um diese Strategie durchzuführen. Beispiel 1.3 Berechnung des durchschnittlichen Gehalts ohne Offenlegung der Einzelgehälter. n Personen 1, . . . , n möchten das durchschnittliche Gehalt bestimmen, ohne aber ihr eigenes Gehalt offen legen zu müssen. Wenn alle Personen ehrlich sind, dann sollte das durchschnittliche Gehalt auch korrekt berechnet werden. Wenn jedoch irgendwelche k Personen lügen, dann sollten Sie keinerlei Information bis auf die Summe aller Gehälter gewinnen. 1.4. GRUNDLAGEN AUS DER STOCHASTIK 19 Algorithmus 1.8 Ein sicheres Protokoll (1) M sei eine genügend große Zahl, die größer als die Summe aller Gehälter ist. Jede Person i zufällig wählt Zahlen Xi,1 , . . . , Xi,i−1 , Xi,i+1 , . . . Xi,n ∈ {0, . . . , M −1} und teilt Xi,j der Person j mit. (2) Wenn Gi das Gehalt von Person i ist, dann bestimmt sie die Restklasse n X Si = Gi + Xj,i − j,j6=i (3) Jede Person i veröffentlicht Si und P n X Xi,j mod M. j,j6=i i Si mod M wird berechnet. Kommentar: Wenn alle Personen ehrlich sind, dann ist X Si mod M ≡ Gi + i i und X 1 n · P j n X n X Xj,i − i,j,j6=i Xi,j mod M ≡ X Gi mod M = i i,j,j6=i X Gi i Sj ist das gewünschte durchschnittliche Gehalt. Warum ist dieses Protokoll sicher? Angenommen, die letzten k Personen sind Lügner. Wir P Pn−k setzen Si∗ = Gi + n−k j=1,j6=i Xj,i − j=1,j6=i Xi,j mod M . Eine ehrliche Person veröffentlicht Si = Si∗ + n X Xj,i − j=n−k+1 Beachte, dass n X Xi,j mod M j=n−k+1 Pn−k Pn−k ∗ i=1 Gi gilt. i=1 Si = Aufgabe 9 ∗ Zeige: Jede Kombination (s∗2 , . . . , s∗n−k ) von Werten der Zufallsvariable S2∗ , . . . , Sn−k wird mit Wahrscheinlich−(n−k−1) ∗ ∗ keit M erzeugt. Deshalb sind die Zufallsvariablen S2 , . . . , Sn−k unabhängig. ∗ Nach dieser Aufgabe sind die Zufallsvariablen S2∗ , . . . , Sn−k unabhängig und uniform über der Menge {0, . . . , M − 1} verteilt. Diese Aussage gilt aber mit dem selben Argument auch für S2 , . . . , Sn−k und die Lügner lernen nichts, da jede Folge von n − k − 1 Werten mit 1 Wahrscheinlichkeit M n−k−1 auftritt. Abweichungen vom Erwartungswert kann man mit Hilfe der Ungleichungen von Markoff, Chernoff and Tschebyscheff abschätzen. Wir beginnen mit Markoff’s Ungleichung. Markoff’s Ungleichung: Sei X eine nicht-negative Zufallsvariable und sei a > 0 eine reelle Zahl. Dann gilt E [X] . prob [X > a] ≤ a Beweis: Nach Definition des Erwartungswerts ist E [X] = X x x · prob [X = x] ≥ X a · prob [X = x] = a · prob [X > a] . x>a 20 KAPITEL 1. EINFÜHRUNG Tschebyscheff’s Ungleichung: X sei eine Zufallsvariable. Dann gilt Var [X] . t2 prob [|X − E [X] | > t] ≤ für jede reelle Zahl t > 0. Beweis: Wir definieren die Zufallsvariable Y = (X − E [X])2 und wenden Markoff’s Ungleichung an. Das ergibt i h prob [|X − E [X] | > t] = prob Y > t2 ≤ E [Y ] /t2 = Var [X] /t2 . Chernoff’s Ungleichungen sind Spezialfälle der Markoff Ungleichung, angewandt auf Summen von unabhängigen 0-1 Zufallsvariablen. Satz 1.9 X1 , . . . , Xn seien beliebige unabhängige binäre Zufallsvariablen mit den ErfolgsP wahrscheinlichkeit pi = prob [Xi = 1]. Dann ist N = ni=1 pi die erwartete Anzahl der Erfolge und es gilt prob " n X !N ≤ eβ (1 + β)1+β !N ≤ e−β (1 − β)1−β # Xi > (1 + β) · N i=1 prob " n X # Xi < (1 − β) · N i=1 ≤ e−N ·min(β,β ≤ e−N ·β 2 )/3 2 /2 für jedes β > 0 (bzw. 0 < β ≤ 1 im zweiten Fall). Beweis: Wir zeigen nur die erste Ungleichung. Wir wenden die Markoff Ungleichung für beliebiges α > 0 an und erhalten prob " n X # Xi > t h = prob eα· Pn i=1 Xi > eα·t i i=1 h ≤ e−α·t · E eα· = e −α·t · n Y Pn i=1 h Xi i i E eα·Xi . i=1 In der letzten Gleichung haben wir benutzt, dass E [Y1 · Y2 ] = E [Y1 ] · E [Y2 ] gilt, wenn Y1 und Y2 unabhängige Zufallsvariablen sind. Wir ersetzen t durch (1 + β) · N , α durch ln(1 + β) und erhalten prob " n X # ≤ e−α·(1+β)·E · Xi > (1 + β) · N i=1 n Y h E eα·Xi i i=1 = (1 + β) −(1+β)·N · n Y h i E (1 + β)Xi . i=1 h i Die Behauptung folgt, da E (1 + β)Xi = pi (1 + β) + (1 − pi ) = 1 + β · pi ≤ eβ·pi gilt. 1.4. GRUNDLAGEN AUS DER STOCHASTIK 21 Aufgabe 10 Sei x ≤ 1 eine beliebige reelle Zahl. Zeige 2 ex = ex−(1+x) ln(1+x) ≤ e−x /3 . (1 + x)1+x Aufgabe 11 Pn X1 , . . . , Xn seien unabhängige, binäre Zufallsvariablen mit pi = prob [Xi = 1] und nimm an, dass N ∗ ≥ i=1 pi gilt. Zeige, dass " # prob n X Xi > (1 + β) · N ∗ ≤ e−β 2 ·N ∗ /3 i=1 für jedes β > 0 folgt. Aufgabe 12 Zeige die zweite Chernoff-Ungleichung. Beispiel 1.4 Wir nehmen an, dass ein Zufallsexperiment X vorliegt, dessen Erwartungswert wir experimentell messen möchten. Das Experiment sei aber instabil, d.h. die Varianz von X ist groß. Wir „boosten“, wiederholen also das Experiment k mal. Wenn Xi das Ergebnis des iten P Experiments ist, dann setzen wir Y = k1 · ki=1 Xi und beachten, dass die Zufallsvariablen X1 , . . . , Xk unabhängig sind: Es gilt also k k 1 X 1 X 1 V[Y ]= 2 · V [ Xi ] = 2 · V [ X ] = · V [ X ]. k i=1 k i=1 k Wir haben die Varianz um den Faktor k gesenkt, aber den Erwartungswert unverändert P P gelassen, denn E[ Y ] = E[ k1 · ki=1 Xi ] = k1 · ki=1 E[ X ] = E[ X ]. Die Tschebyscheff Ungleichung liefert jetzt das Ergebnis prob[ |Y − E[X]| > t ] = prob[ |Y − E[Y ]| > t ] ≤ V [Y ] V [X] = 2 t k · t2 und große Abweichungen vom Erwartungswert sind unwahrscheinlicher geworden. Angenommen, wir haben erreicht, dass Y mit Wahrscheinlichkeit mindestens p = 1 − ε in ein „Toleranzintervall“ T = [E[ X ] − δ, E[ X ] + δ ] fällt. Können wir p „schnell gegen 1 treiben“? Wir wiederholen diesmal das Experiment Y und zwar m mal und erhalten wiederum unabhängige Zufallsvariablen Y1 , . . . , Ym . Als Schätzung des Erwartungswerts geben wir jetzt den Median M von Y1 , . . . , Ym aus. Wie groß ist die Wahrscheinlichkeit, dass M nicht im Toleranzintervall T liegt? Y liegt mit Wahrscheinlichkeit mindestens p in T . Wenn also der Median außerhalb des Toleranzintervalls liegt, dann liegen mindestens m 2 Einzelschätzungen außerhalb, während nur (1 − p) · m = ε · m außerhalb liegende Einzelschätzungen zu erwarten sind. Wir wenden m die Chernoff Ungleichung an und beachten, dass (1 + 1−2·ε 2·ε ) · ε · m = 2 . Also erhalten wir mit β = 1−2·ε 2·ε prob[ M 6∈ T ] ≤ e−ε·m·β 2 /3 2 ·m/(12·ε) = e−(1−2·ε) und die Fehlerwahrscheinlichkeit fällt negativ exponentiell, falls ε < 12 . 22 KAPITEL 1. EINFÜHRUNG 1.5 Lineare Programmierung x1 , . . . , xn seien n reellwertige Variablen. In der linearen Programmierung ist ein System linearer Gleichungen n X aij xj = bi j=1 und/oder linearer Ungleichungen n X aij xj ≥ bi bzw. j=1 n X aij xj ≤ bi j=1 zu erfüllen. Für eine jede Variable xi ist zusätzlich zu entscheiden, ob die Nichtnegativitätsbedingung xi ≥ 0 gefordert wird. Unter allen Lösungsvektoren x := (x1 , . . . , xn ) suchen wir dann einen Vektor, der die lineare Zielfunktion cT · x = n X cj xj j=1 minimiert, bzw. maximiert. Wenn wir insgesamt m Gleichungen und/oder Ungleichungen festlegen, dann ist A = [aij ]1≤i≤m,1≤j≤n die m × n-Matrix des Systems von Gleichungen und Ungleichungen. Wir definieren b als den Vektor der rechten Seiten, c als den Koeffizientenvektor der linearen Zielfunktion und ∈ { =, ≥ }m als den Vektor der Vergleichsoperatoren. Das allgemeine Minimierungsproblem hat dann die Kurzform minimiere cT · x, so dass A · x b (1.7) und für alle i: xi ≥ 0 oder xi ist unbeschränkt. Dieses Minimierungsproblem kann mit dem Simplex-Algorithmus bzw. mit Interior-Point Verfahren gelöst werden, wobei Interior-Point Verfahren eine garantiert polynomielle Laufzeit besitzen. (Die verbrauchte Zeit wird in Abhängigkeit von der Länge der Binärdarstellung von A, b und c gemessen). Dem Minimierungsproblem (1.7) ist ein duales Maximierungsproblem zugeordnet: maximiere bT · y, so dass y T · A ∗ cT (1.8) und für alle j: yj ≥ 0 oder yj ist unbeschränkt. Die Wahl der Vergleichsoperatoren wie auch die Wahl der Nichtnegativitätsbedingungen ist abhängig vom „primalen“ Programm (1.7). Um diese Abhängigkeit zu erklären, ordnen wir die primale Variable xi der iten Bedingung des dualen Programms und die duale Variable yj der jten Bedingung des primalen Programms zu. - Wenn die jte Bedingung des primalen Programms eine Gleichung ist (j stimmt mit = überein), dann ist yj uneingeschränkt. Wenn die jte Bedingung eine Ungleichung ist (j stimmt mit ≥ überein), dann ist yj ≥ 0 zu fordern. 1.5. LINEARE PROGRAMMIERUNG 23 - Wenn xi unbeschränkt ist, dann ist die ite duale Bedingung eine Gleichung. Wenn hingegen xi ≥ 0 gefordert wird, dann ist eine Ungleichung zu wählen, wobei ∗j mit ≤ übereinstimmen muss. Das primale und das duale Programm haben überraschenderweise identische Optima! Satz 1.10 Dualitäts-Theorem Sei x eine Lösung des primalen Problems (1.7) und y eine Lösung des dualen Problems (1.8), sowie xopt und yopt optimale Lösungen von (1.7) bzw. (1.8). Dann gilt (a) schwache Dualität: cT · x ≥ bT · y und (b) starke Dualität: cT · xopt = bT · yopt . Wir zeigen in Satz 12.4, dass das von Neumann’sche Minimax-Theorem eine Konsequenz des Dualitätstheorems ist. Eine weitere fundamentale Konsequenz ist die komplementäre Slackness. Dazu betrachten wir das primale Programm (P ) minimiere cT · x, so dass A · x = b und x ≥ 0. Dann ist (D) maximiere y T · b, so dass y T · A ≤ cT das duale Programm und beide Optima, wenn endlich, stimmen überein. Wir modifizieren das duale Programm (D) durch die Einführung von „Slack“-Variablen s und erhalten (D) maximiere y T · b, so dass y T · A + sT = cT und s ≥ 0. Die Dualitätslücke cT · x − bT · y gibt den Abstand zwischen der Lösung x des primalen und der Lösung (y, s) des dualen Problems an. Es ist cT · x − bT · y = cT · x − (Ax)T · y = x T · c − x T · AT · y = x T · c − AT · y = xT · s. Wir erhalten deshalb als Konsequenz des Dualitäts-Theorems: Satz 1.11 Komplementäre Slackness Sei x eine Lösung des primalen Problems (P ) und (y, s) eine Lösung des dualen Problems (D). Dann sind äquivalent (a) Die Lösung x ist optimal für (P ) und (y, s) ist optimal für (D). (b) xT · s = 0. (c) Für alle i gilt xi · si = 0. (d) Aus si > 0 folgt xi = 0. Für optimale Lösungen x und y des primalen, bzw. dualen Programms gilt also: Wenn eine duale Ungleichung „Slack“ hat (also wenn si > 0), dann ist die entsprechende primale Variable des Ausgangsproblems gleich 0. Auch die umgekehrte Beziehung für die primalen Ungleichungen x ≥ 0 gilt: Wenn xi > 0, dann hat die ite duale Ungleichung keinen Slack. 24 KAPITEL 1. EINFÜHRUNG Teil I Die Bearbeitung großer Datenmengen 25 Kapitel 2 Suchmaschinen Suchmaschinen müssen für eine Anfrage bestehend aus mehreren Stichworten die informativsten Dokumente für diese Stichworte bestimmen. Wir beschreiben zuerst die Architektur einer Suchmaschine und stellen dann den Random Surfer Ansatz von Google sowie den HubsAuthorities Ansatz von Kleinberg vor. Diese beiden Ansätze sind Vertreter der ConnectivityAnalyse, die sich auf die beiden folgenden Annahmen gründet: Wenn ein Dokument A auf Dokument B zeigt, dann - gibt es eine inhaltliche Beziehung zwischen den beiden Dokumenten und - der Autor des Dokuments A hält Dokument B für wertvoll. Beide Ansätze versuchen, die relative Wertschätzung zwischen Dokumenten in eine absolute Relevanz der Dokumente umzurechnen und damit ergibt sich die Möglichkeit, Dokumente aufgrund der Graphstruktur des WWW zu bewerten. Wir schliessen mit einer allgemeinen Behandlung von Methoden für den Entwurf von Meta-Suchmaschinen. 2.1 Die Architektur von Suchmaschinen Man schätzt, dass das Web aus ungeführ 200 Millionen Websites besteht und dass die Anzahl der von Google indizierten Webseiten irgendwo zwischen 20 Milliarden und ungefähr 1 Billion liegt1 . Da die durchschnittliche Größe eines Dokuments zwischen 5 und 10 Kilobytes liegt, liegt damit die Gesamtgröse des indizierten Webs im Bereich von mehreren Hundert Terabytes. Desweiteren wird geschätzt, dass im .com Bereich 40% aller Dokumente täglich geändert werden; rund die Hälfte aller Webseiten scheint eine Lebenszeit von nur 10 Tagen zu besitzen. Schließlich gibt es mehr als 1.5 Milliarden Internetnutzer. Diese Zahlen unterstreichen die Komplexität des Suchproblems: Für einen sich rasant ändernden Suchraum gigantischer Größe sind Anfragen ohne merkliche Reaktionszeit zu beantworten. Suchmaschinen stellen sich diesen Anforderungen mit Hilfe der folgenden Komponenten: - Der Crawler durchforstet das Web,um neue oder veränderte Dokumente zu bestimmen. - Abspeichern der wichtigsten Informationen: Die vom Crawler gefundene Information muss aufbereitet und abgespeichert werden. 1 Siehe zum Beispiel http://googleblog.blogspot.com/2008/07/we-knew-web-was-big.html. 27 28 KAPITEL 2. SUCHMASCHINEN - Indizierung: Die Datenstruktur zum Abruf der abgespeicherten Information muss in Echtzeit alle Dokumente bestimmen, die die Anfrage enthalten. - Bewertung der Dokumente: Die ausgewählten Dokumente sind im Hinblick auf ihren Informationsgehalt zu bewerten. Der Crawler traversiert den Wegraphen. Dabei sind verschiedenste Probleme lösen. Da eine Erfassung aller Webseiten illusorisch ist, ist zu entscheiden, welche Dokumente abzuspeichern sind. Welche Dokumente sollten in welchen Zeiträumen auf Veränderung untersucht werden? Die wichtigen, und unter diesen die in der Vergangenheit häufig veränderten Dokumente sind vorrangig zu behandeln. Wie sollte der Crawler die Belastung der besuchten Webseiten minimieren? Wie kann der Crawling Prozess optimal parallelisiert werden? Abspeichern der wichtigsten Informationen. Das Web Repository wird vom Crawler aufgebaut und muss den direkten Zugriff auf Dokumente sowie das Einfügen und das Entfernen von Dokumenten unterstützen. Desweiteren müssen alle Dokumente mit einer gegebenen Eigenschaft, wie dem Besitz einer Menge von Stichworten, schnell bestimmbar sein. Diese Aufgaben werden oft mit einer Kombination von Hashing und B-Bäumen gelöst. In der Indizierung werden alle Worte eines jeden Dokuments erfasst. Häufig wird auch ein Wörterbuch berechnet, das alle je erfassten Worte aufführt und statistische Informationen wie Häufigkeiten angibt. Eine fundamentale Datenstruktur in der Indizierung ist der invertierte Index, in dem zu jedem Stichwort s alle Dokumente bestimmt werden, die s enthalten. Üblicherweise enthält der invertierte Index noch Zusatzinformation, um die Prominenz des Stichworts innerhalb des Dokuments zu beschreiben: hier spielen die Häufigkeit des Stichworts, seine Schriftgröße wie auch das Vorkommen des Stichworts in Beschriftungen von Links auf das Dokument wichtige Rollen. Neben diesen Text-basierten Indizes wird in modernen Suchmaschinen auch ein Link-Index berechnet, um mit der Graphstruktur des Webgraphen arbeiten zu können. Der Link-Index wird üblicherweise als Adjazenzliste abgespeichert. Die Bewertung der Dokumente ist ein zentrales Hilfsmittel, um informativste Dokumente für eine gegebene Anfrage bestimmen zu können. Moderne Suchmaschinen basieren eine solche Bewertung auf Methoden des Peer-Review und sind somit nur relativ schwach von solchen Eigenschaften des Dokuments abhängig, die vom Autor des Dokuments direkt beeinflussbar sind. Wir beschreiben erfolgreiche Methoden des Peer-Review in den Abschnitten 2.2 und 2.3. 2.2 Google Google bestimmt zuerst alle Dokumente, die die Stichworte der Anfrage enthalten. Die gefundenen Dokumente werden dann sowohl lokal wie auch global bewertet. In der lokalen oder anfrage-abhängigen Bewertung spielen Aspekte wie etwa - Schriftgröße und Nähe der Stichworte zueinander innerhalb des Dokuments, - Häufigkeit des Vorkommens der Stichworte innerhalb des Dokuments und - Vorkommen der Stichworte in der Beschriftung von Hyperlinks, die auf das Dokument zeigen, 2.2. GOOGLE 29 eine Rolle. In der globalen oder anfrage-unabhängigen Bewertung wird der Page-Rank des Dokuments ermittelt. Der Page-Rank pr(w) eines Dokuments w soll die Qualität des Dokuments wiedergeben und wird im Wesentlichen durch einen „Peer-Review“ bestimmt: Der Page-Rank pr(w) ist hoch, wenn viele Dokumente u mit hohem Page-Rank pr(u) auf das Dokument w zeigen. Ein erster Ansatz zur Bestimmung des Page-Ranks nimmt an, dass ein Dokument u mit du Hyperlinks seinen Page-Rank gleichmäßig verteilt: Wenn u auf Dokument w zeigt, dann „erbt“ w den Bruchteil pr(u) du und w erbt insgesamt den Betrag pr(w) = pr(u) du u zeigt auf w X (2.1) Um diese Definition zu interpretieren, fassen wir das WWW als eine Markov-Kette auf. 2.2.1 Markoff-Ketten Definition 2.1 Stochastische Matrizen und Markoff-Ketten. (a) Eine Matrix P heißt stochastisch, wenn alle Einträge von P nicht-negativ sind und wenn X P [i, j] = 1 j für alle Zeilen i gilt. (b) Eine Markoff-Kette (G, P ) besteht aus einem gerichteten Graphen G = (V, E) und einer Übergangsmatrix P , deren Zeilen und Spalten mit Knoten aus V indiziert sind. Die Knoten der „Web-Kette“ entsprechen den Dokumenten und eine Kante (u, w) entspricht einem Hyperlink von Dokument u auf Dokument w. Wir nehmen an, dass ein „RandomSurfer“ einen Hyperlink nach der Gleichverteilung auswählt und demgemäß wird ein Nachbar des Dokuments u mit Wahrscheinlichkeit d1u gewählt. Dabei unterstellt Google, dass jedes Dokument einen Hyperlink auf sich selbst hat, so dass du ≥ 1 für alle Dokumente u gilt. Wir erhalten somit die Übergangsmatrix P mit ( P [u, w] = 1 du 0 (u, w) ist ein Hyperlink sonst. Die Page-Rank Definition (2.1) ist jetzt äquivalent zu pr = pr · P. (2.2) Definition 2.2 Sei (G, P ) eine Markoff-Kette mit G = (V, E). Dann heißt eine Verteilung π = ( πv | v ∈ V ) auf V eine stationäre Verteilung, falls π = π · P . Wählen wir einen Startknoten gemäß einer stationären Verteilungen π und führen einen Schritt der Markoff-Kette durch, dann verbleiben wir in π. 30 KAPITEL 2. SUCHMASCHINEN Der Page-Rank, wenn aus der Perspektive des Peer-Review definiert, entspricht somit einer stationären Verteilung der Web-Kette. Warum sind stationäre Verteilungen wichtig? Wir werden in Lemma 2.5 feststellen, dass es für bestimmte Markoff-Ketten genau eine stationäre Verteilung gibt, die mit der Grenzverteilung übereinstimmt, also mit der Wahrscheinlichkeit, dass der Random-Surfer ein Dokument besucht, wenn ein beliebig langer Zeitraum zur Verfügung steht. Die Perspektive des Random Surfers und die Perspektive des Peer-Review in der Definition des Page-Ranks sind also für diese Markoff-Ketten identisch. Um den Beweis zu führen, schauen wir uns den Begriff der Grenzverteilung genauer an und betrachten k Schritte einer Markoff-Kette (G, P ). Wir setzen " (k) pi,j = Wahrscheinlichkeit, dass Knoten j nach k Schritten von Knoten i aus erreicht wird. # (k) Lemma 2.3 Es gilt pi,j = P k [i, j]. Beweis: Wir führen eine Induktion nach k. Die Verankerung für k = 1 ist offensichtlich. Nach Induktionsannahme gilt " (k+1) pi,j = X r = X prob In k Schritten wird Knoten r von i aus erreicht # " In einem Schritt wird Knoten j von r aus erreicht · prob # P k [i, r] · P [r, j]. r Wir erhalten (k+1) pi,j = X P k [i, r] · P [r, j] = P k+1 [i, j] r und das war zu zeigen. Die Wahrscheinlichkeit, einen Knoten j mit einem Random Walk bei Startverteilung q in k Schritten zu erreichen, ist also durch die j-te Komponente von q · PTk gegeben. Wir sind an (k) der Grenzwahrscheinlichkeit, also der Wahrscheinlichkeit limk→∞ pi,j interessiert. Wenn wir „Glück haben“, ist diese Grenzwahrscheinlichkeit unabhängig vom Startpunkt i. Definition 2.4 Die Markoff-Kette (G, P ) heißt genau dann ergodisch, wenn für alle i1 , i2 und j die Grenzwerte limk→∞ P k [i1 , j] und limk→∞ P k [i2 , j] existieren und lim P k [i1 , j] = lim P k [i2 , j] > 0 k→∞ k→∞ gilt. Für eine ergodische Markoff-Kette ist die Matrix P ∞ = lim P k = k→∞ lim P k [i, j] k→∞ i,j∈V wohldefiniert, da wir voraussetzen, dass die Grenzwerte existieren. Weiterhin fordern wir, dass alle Zeilen in P ∞ identisch sind: Wenn wir einen Startknoten gemäß einer beliebigen Anfangsverteilung π (0) wählen und hinreichend viele zufällige Schritte machen, ist die Wahrscheinlichkeit einen bestimmten Knoten j zu erreichen, stets beliebig nahe an P ∞ [1, j] = · · · = P ∞ [n, j]. 2.2. GOOGLE 31 Die Wahl des Anfangsknoten ist für einen hinreichend langen Random Walk also ohne Belang: Die Grenzverteilung einer ergodischen Markoff-Kette „vergisst“ somit den Startpunkt eines Random Walks. Wir definieren die Verteilung π ∞ durch die erste Zeile von P ∞ , setzen also π ∞ [j] = P ∞ [1, j]. Dann gilt für jede Anfangsverteilung π = (π1 , . . . , πN ) πT · P ∞ = N X πi · P ∞ [i, 1], . . . , i=1 = ∞ N X ! πi · P ∞ [i, N ] i=1 P [1, 1] · N X ∞ πi , . . . , P [1, N ] · i=1 N X ! πi i=1 = (P ∞ [1, j] | j = 1, . . . , N ) = π ∞ . Es gilt also stets πT · P ∞ = π∞ (2.3) und π ∞ ist Grenzverteilung für jede Anfangsverteilung π. Wir stellen jetzt eine wichtige Eigenschaft der Grenzverteilung π ∞ fest. Dazu ersetzen wir π durch π ∞ und erhalten aus (2.3) (π ∞ )T = (π ∞ )T · P ∞ = (π ∞ )T · lim P k ∞ T = (π ) · lim P k→∞ k+1 k→∞ ∞ T = (π ) · P ∞ · P = (π ∞ )T · P. Die Grenzverteilung π ∞ ist also auch stationär, wenn die Kette ergodisch ist. Wir machen jetzt die zentrale Beobachtung, dass die Grenzverteilung π ∞ die einzige stationäre Verteilung für ergodische Markoff-Ketten ist. Wir können also die Grenzverteilung berechnen, indem wir das Gleichungssystem π T · P = π lösen. Lemma 2.5 Jede ergodische Markoff-Kette (G, P ) besitzt eine eindeutig bestimmte stationäre Verteilung π und es gilt π = π (∞) . Insbesondere stimmen stationäre Verteilung und Grenzverteilung überein. Beweis: Wir wissen bereits, dass π ∞ eine stationäre Verteilung ist. Sei π eine beliebige stationäre Verteilung. Wir erhalten π = π T · P und damit natürlich auch π = π T · P ∞ . Andererseits ist aber π T · P ∞ = π ∞ mit Gleichung (2.3), und wir haben die Eindeutigkeit einer stationären Verteilung nachgewiesen. 2.2.2 Berechnung des Page-Rank Leider können wir nicht erwarten, dass die Web-Kette ergodisch ist, denn der Random Surfer wird zum Beispiel von Dokumenten ohne Hyperlinks gefangen und die Grenzverteilung vergisst somit den Startpunkt nicht, wenn wir in einer „Sackgasse“ beginnen. Um zu einer ergodischen Kette zu gelangen, verändert Google deshalb die Sichtweise ein wenig. Im erfolgreichen zweiten Ansatz legt Google einen Random Walk zugrunde, der mit Wahrscheinlichkeit (1 − d) ein benachbartes Dokument aufsucht und mit Wahrscheinlichkeit 32 KAPITEL 2. SUCHMASCHINEN d zu einem zufälligen Dokument springt. Wenn wir annehmen, dass es genau n Dokumente gibt, dann werden wir auf die Übergangsmatrix ( P 0 [u, w] = d n d n + 1−d du (u, w) ist ein Hyperlink sonst. geführt. Aufgabe 13 Zeige, dass die modifizierte Web-Kette ergodisch ist. Hinweis: Es genügt zu zeigen, dass die Kette irreduzibel und aperiodisch ist. (Die Kette ist irreduzibel, wenn jeder Knoten jeden anderen Knoten erreichen kann. Die Kette ist aperiodisch, wenn der größte gemeinsame Teiler aller Weglängen zwischen zwei beliebigen Knoten mit Eins übereinstimmt.) Wir fordern wiederum, dass der Page-Rank der (diesmal eindeutigen) stationären Verteilung P entspricht und erhalten deshalb wegen pr = pr · P 0 und u pr(u) = 1 die Setzung pr(w) = Xd u = n · pr(u) + (1 − d) · pr(u) du u zeigt auf w X X pr(u) d + (1 − d) · . n du u zeigt auf w In Matrix-Vektor Notation erhalten wir deshalb pr = d · p + (1 − d) · pr · P, (2.4) wobei der Vektor p durch pw = n1 definiert ist. Wie wird der Pagerank pr berechnet? Zuerst wird ausgenutzt, dass limk→∞ π0T · (P 0 )k = pr für jede Anfangsverteilung π0 gilt. Wir wählen π0 als Gleichverteilung und setzen πk+1 = πkT · P 0 . Wir haben Glück: Aufgrund des hohen Zusammenhangs des Netzes konvergiert πk schnell gegen pr. Für eine schnelle Berechnung des Vektor-Matrix Produkts wird ausgenutzt, dass P viele Nulleinträge hat; desweiteren ist das Vektor-Matrix Produkt hochgradig parallelisierbar. Gegenwärtig werden mehrere Tausend PC’s eingesetzt, die mehrere Stunden zur Berechnung des Page-Ranks benötigen und selbst dieser Aufwand ist im Hinblick auf die enorme Anzahl der Webseiten erstaunlich gering. Da ein hoher Page-Rank finanziell sehr lukrativ ist, hat sich schon beinahe eine eigene Industrie zur Erhöhung des Page-Rank entwickelt. Diese Industrie firmiert unter dem Begriff der „Suchmaschinen-Optimierung“ (search engine optimization) und setzt neben legalen Methoden wie einer verbesserten inhaltlichen Darstellung auch illegale Spamming-Methoden ein: Für den Anwender nicht sichtbar2 , werden beliebte Stichworte häufig wiederholt, um die lokale Bewertung der Webseite zu erhöhen. Desweiteren werden „Link Farms“3 eingesetzt, um die globale Bewertung zu erhöhen. Obwohl Link Farms keinen absolut hohen Page-Rank erreichen können, so können jedoch stark eingeschränkte Suchanfragen „gewonnen“ werden. 2 Beliebt ist der Trick, Stichworte in der Hintergrundfarbe zu setzen. Alle guten Suchmaschinen kennen diese Tricks und disqualifizieren die betroffenen Webseiten. 3 Jede Seite einer Link Farm zeigt auf viele andere Seiten der Farm. 2.2. GOOGLE 33 Google bestraft deshalb Seiten mit mehr als 100 ausgehenden Zeigern und senkt damit den vererbbaren Page-Rank. Aufgabe 14 Ein Anbieter einer Internetseite w möchte seiner Webseite, die keine ausgehenden Hyperlinks hat, zu einem höheren Page-Rank verhelfen. (a) In einem ersten Versuch legt der Anbieter c neue Seiten an, die jeweils wechselseitig aufeinander und auf die ursprüngliche Seite w verweisen. Zeige, dass sich der Page-Rank seiner Seite w dadurch um cd höchstens (1 − d − n1 ) · n+c erhöht. (b) In einem zweiten Versuch legt er c Seiten an, die alle ausschließlich auf die Seite w verweisen. Zeige, cd dass sich der Page-Rank seiner Seite w dadurch um höchstens (1 − d − n1 ) · n+c erhöht. 2.2.3 Inhalt-abhängiger Page-Rank Es wird vermutet, dass Google mittlerweise einen „topic-sensitiven Page-Rank“ verwendet. Wir beschreiben hier einen Vorschlag aus [H02]. Die Grundidee ist die Berechnung von PageRank Vektoren pr(1) , . . . , pr(K) für jedes von K Themengebieten T1 , . . . , TK : pr(i) soll die Kompetenz von Dokumenten für das Themengebiet Ti messen. (Zum Beispiel bieten sich die Themengebiete des Open Directory Projects an. Die allgemeinsten 16 Themengebiete sind hier Arts (Movies, Television, Music,...), Business (Jobs, Real Estate, Investing,...), Computers (Internet, Software, Hardware,...), Games (Video Games, RPGs, Gambling,...), Health (Fitness, Medicine,...), Home (Family, Consumers, Cooking,...), Kids and Teens (School, Teen Life,...), News (Media, Newspapers, Weather,...), Recreation (Travel, Food, Outdoors, Humor,...), Reference (Maps, Education, Libraries,...), Regional (US, Canada, UK, Europe,...), Science (Computer Science, Biology, Physics,...) Shopping (Autos, Clothing, Gifts,...), Society (People, Religion, Issues,...), Sports (Baseball, Soccer, Basketball,...), World (Deutsch, Español, Italiano, Polska, Dansk,...).) Der Page-Rank Vektor pr(i) wird wiederum in einer off-line Berechnung bestimmt: Zuerst (i) werden alle Dokumente im Hinblick auf das Themengebiet Ti bewertet; insbesondere sei pw die Bewertung für Dokument w. Wir „personalieren“ die Page-Rank Berechnung (2.4), indem wir p durch p(i) ersetzen und erhalten pr(i) = d · p(i) + (1 − d) · pr(i) · P, (2.5) als Grenzverteilung. Für die Bearbeitung der Suchanfrage Q = (Qj | j) werden die bedingten Wahrscheinlichkeiten prob[Qj | Ti ] benötigt: prob[Qj | Ti ] wird off-line berechnet und misst die relevanz-gewichtete Häufigkeit mit der das Stichwort Qj für das Themengebiet Ti auftritt. In der on-line Bearbeitung von Q werden dann die folgenden Schritte ausgeführt: Zuerst wird die Relevanz Πj prob[Qj | Ti ] · prob[Ti ] prob[Ti | Q] = Πj prob[Qj ] des Themengebiets Ti für die Anfrage Q ermittelt. (Es ist nur i prob[Ti | Q] = 1 zu fordern, deshalb ist eine Berechnung von Πj prob[Qj ] nicht erforderlich.) Danach werden alle Dokumente w ermittelt, in denen die Anfrage vorkommt. Wir bewerten (i) dann w mit der Linearkombinationen aller Page-Ranks prw , gewichtet nach der jeweiligen Relevanz des Themengebiets. Wir setzen also P Rang(w | Q) = X i (i) prob[Ti | Q] · prw . 34 KAPITEL 2. SUCHMASCHINEN 2.3 Hubs und Authorities Kleinberg [K1] stellt einen zweiten Ansatz für das Information Retrieval im Web vor. Seine Methode berechnet Authorities (Dokumente von hoher Qualität) mit Hilfe von Hubs (Dokumente mit „guten“ Links). Eine simultane Berechnung von Hubs und Authorities kann dann nach dem folgenden Muster erfolgen: - Ein Dokument, das auf viele Dokumente mit hohem Authority-Gewicht zeigt, erhält ein hohes Hub-Gewicht, - während ein Dokument, auf das viele Dokumente mit hohem Hub-Gewicht zeigen, ein hohes Authority-Gewicht erhält. Allerdings kennen wir anfänglich weder Hubs noch Authorities, und es sind somit Hubs und Authorities simultan zu bestimmen. Der HITS-Algorithmus (Hyperlink Induced Topic Search) von Kleinberg verarbeitet eine Anfrage σ wie folgt: (0) T sei ein fixierter Parameter. (1) Die Menge Wσ aller Dokumente, die die Stichworte der Anfrage enthalten, wird bestimmt. Aus diesen Dokumenten wird eine kleine Teilmenge Rσ relevanter Dokumente ausgewählt. Kommentar: Kleinberg empfiehlt textbasierte Suchmaschinen wie Altavista oder Hotbot zur Durchführung der Auswahl. Eine textbasierte Suchmaschine bewertet ein Dokument unter Anderem nach der Häufigkeit und nach der Schriftgröße mit der die Stichworte der Anfrage erscheinen. In vielen Fällen werden die informationsreichsten Dokumente in der Menge Rσ nicht enthalten sein. Deshalb konstruiert der nächste Schritt eine größere Menge Sσ . (2) Setze Sσ = Rσ . Für jedes Dokument w ∈ Rσ : (2a) Füge alle Dokumente zu Sσ hinzu, auf die w zeigt. Kommentar: Dies werden nicht viele Seiten sein. (2b) Füge alle Dokumente zu Sσ hinzu, die auf w zeigen. Wenn mehr als T Dokumente auf w zeigen, dann füge eine beliebige Auswahl von T Dokumenten hinzu. Kommentar: Der Schwellenwert T ist geeignet zu bestimmen. Es ist nicht wichtig, welche Seiten ausgewählt werden, solange genügend viele Seiten auf Authorities zeigen. (3) Berechne Hub- und Authority-Gewichte. Schritt (3) ist die wesentliche Komponente des HITS-Algorithmus. Wir beschränken uns auf den Graphen Gσ = (Sσ , Eσ ), wobei die Kanten in Eσ genau den Hyperlinks zwischen Dokumenten aus Sσ entsprechen. Algorithmus 2.6 Berechnung der Hub- und Authority-Gewichte (1) Es sei n = |Sσ |. Der Algorithmus berechnet zwei Vektoren A und H, wobei Au (bzw. Hu ) die Qualität des Dokuments u als Authority (bzw. als Hub) misst. Wir verlangen, dass A und H stets die Norm 1 besitzen und setzen anfänglich A = H = √ √ (1/ n, . . . , 1/ n)T . 2.3. HUBS UND AUTHORITIES 35 (2) Wiederhole genügend oft: (2a) Hu = P w, (u,w)∈Eσ Aw . /* Das Hub-Gewicht von u ist groß, wenn u auf viele Dokumente mit hohem Authority-Gewicht zeigt. */ (2b) Au = P w, (w,u)∈Eσ Hw . /* Das Authority-Gewicht von u ist groß, wenn viele Dokumente mit hohem HubGewicht auf u zeigen. */ A H (2c) Normalisiere A und H, d.h. setze A = ||A|| und H = ||H|| . √ √ Wir setzen x0 = (1/ n, . . . , 1/ n)T und bezeichnen den Authority- bzw. den Hub-Vektor nach der iten Iteration mit Ai bzw. mit H i . Wenn M die Adjazenzmatrix von Gσ ist, dann erhalten wir ohne Normalisierung H i+2 = M · Ai+1 und Ai+1 = M T · H i . Also folgt H i+2 = M · Ai+1 = M · M T · H i und Ai+2 = M T · H i+1 = M T · M · Ai und deshalb ist H 2k = (M · M T )k · x0 und A2k = (M T · M )k · x0 . Beachte, dass M · M T wie auch M T · M symmetrische Matrizen sind. Symmetrische Matrizen besitzen reellwertige Eigenwerte wie auch eine Orthonormalbasis von Eigenvektoren: Fakt 2.1 Sei K eine symmetrische Matrix mit n Zeilen und Spalten. (a) Sämtliche Eigenwerte λ1 , . . . , λn von K sind reellwertig. (b) Es gibt eine Orthonormalbasis b1 , . . . , bn von Eigenvektoren von K. (D.h. es ist K · bi = λi · bi und das innere Produkt hbi , bj i verschwindet für i 6= j und ist Eins für i = j.) (c) Der betragsmäßig größte Eigenwert λ1 sei vom Betrag her größer als der betragsmäßig zweitgrößte Eigenwert. Wenn der Vektor x0 nicht senkrecht auf dem Eigenvektor v von λ steht, dann konvergiert die Folge ( λxkk | k) gegen ±v, wobei 1 xk+1 = K · xk ||K · xk || gelte. Wir motivieren die Aussage (c). Nach Teil (b) gibt es eine Orthonormalbasis v1 , . . . , vn aus Eigenvektoren zu den Eigenwerten λ1 > λ2 ≥ · · · ≥ λn . Wir können somit den Vektor x0 als Linearkombination n x0 = X αi · vi i=1 schreiben. Da der Basisvektor vi Eigenvektor von K (zum Eigenwert λi ) ist, erhalten wir K · x0 = n X i=1 αi · K · vi = n X i=1 αi · λi · vi 36 KAPITEL 2. SUCHMASCHINEN und nach t-facher Iteration t K · x0 = n X αi · λti · vi . i=1 Da limt→∞ λti /λt1 = 0 für i 6= 1, nimmt das Gewicht des Eigenvektors v1 am stärksten zu, und Aussage (c) folgt, wenn α1 6= 0 oder, alternativ, wenn gefordert wird, dass x0 nicht senkrecht auf v1 steht. Konvergiert die Folge (xk | k ∈ N? Im allgemeinen nicht! Aufgabe 15 Wir betrachten die symmetrische Matrix K = (xk |k ≥ 0) mit xk+1 = 1 0 0 −1 . Für welche Startvektoren x0 konvergiert die Folge K·xk ? kK·xk k In unserer Situation hat die Matrix K aber eine sehr spezielle Form, denn K = M M T (bzw. K = M T M ): Die Matrix K ist also positiv semidefinit. Aufgabe 16 Sei K = M M T oder K = M T M . Zeige: (a) Wenn Kx = λx gilt, dann ist λ ≥ 0. (b) Wenn ein Vektor x nur positive Komponenten hat, dann steht x nicht senkrecht auf dem größten Eigenvektor. Wenn alle Eigenwerte (und damit auch der betragsmässig größte Eigenwert) nichtnegativ sind, dann konvergiert auch die Folge (xk | k ∈ N). Korollar 2.7 Die größten Eigenwerte von M T · M und M · M T mögen die Vielfachheit 1 besitzen. Dann bestimmt der HITS-Algorithmus Vektoren A bzw. H, die bis auf das Vorzeichen gegen die Eigenvektoren der größten Eigenwerte von M T · M bzw. M · M T konvergieren. Liegt Konvergenz auch dann vor, wenn die beiden größten Eigenwerte übereinstimmen? Aufgabe 17 Wenn K = M M T oder K = M T M , dann konvergiert die Folge (xk | k ∈ N) immer. Wir schließen mit einem Vergleich zwischen Page-Rank und dem HITS Verfahren, bevor wir Schwachstellen des HITS Verfahrens im nächsten Abschnitt ansprechen. - Berechnungsaufwand: Hier verbucht Page-Rank ein Plus, da es die Bewertungen vorberechnet. Dieser Vorteil ist jedoch nicht wesentlich, da von schneller Konvergenz (höchstens 20 Iterationen bei Mengen Sσ mit |Sσ | ≈ 1000) berichtet wird. - Spamming: Auch hier scheint Page-Rank stärker, da HITS bei „verdorbener“ Auswahl Rσ verloren ist. - Qualität des Suchergebnisses: Beide Verfahren liefern im Allgemeinen Ergebnisse guter Qualität. Da HITS die Suchanfrage in dem Connectivity-Ranking miteinbezieht, während Google Dokumente anfrage-unabhängig bewertet und die Suchanfrage nur in der lokalen Bewertung der Dokumente miteinbezieht, verdient HITS ein leichtes Plus. 2.3. HUBS UND AUTHORITIES 2.3.1 37 Inhalt-abhängige Suche In [BH] werden die folgenden Schwachstellen des HITS Verfahrens ausgemacht: (1) Angenommen, viele Dokumente Ai auf einem ersten Host zeigen auf ein einziges Dokument B auf einem zweiten Host. Als mögliche Konsequenz erhalten damit sowohl das Dokument B eine ungerechtfertigt hohe Authority-Gewichtung wie auch die Dokumente Ai eine ungerechtfertigt hohe Hub-Gewichtung. Das gleiche Problem entsteht, wenn ein Dokument A auf dem ersten Host auf viele Dokumente Bi des zweiten Hosts zeigt. (2) Automatisch erzeugte Links verbinden Dokumente, die nicht notwendigerweise in einem thematischen Zusammenhang stehen und nicht-relevante Dokumente tauchen somit in der Menge Sσ auf. Jetzt besteht die Gefahr, dass nicht-relevante Dokumente dominieren: Zum Beispiel werden für die Suchanfrage „Jaguar AND Car“ Dokumente von Automobil-Herstellern ohne Bezug zur Marke Jaguar den größten Teil des AuthorityGewichts an sich reißen. Die erste Schwachstelle kann durch eine einfache Modifikation von Hits beseitigt werden: Wenn z Dokumente Ai des ersten Hosts auf ein Dokumente B des zweiten Hosts j zeigen, dann erhält jeder Zeiger das Authority-Gewicht a(Ai , B) = 1/z. Umgekehrt, wenn ein Dokument A des ersten Hosts auf z Dokumente B1 , . . . , Bz des zweiten Hosts zeigt, dann erhält jeder Zeiger das Hub-Gewicht h(A, Bj ) = 1/z. Dementsprechend verändern wir die iterative HubAuthority Berechnung wie folgt: Hu = X X h(u, w) · Aw und Au = a(w, u) · Hw . w, (w,u)∈Eσ w, (u,w)∈Eσ Aufgabe 18 Zeige, dass die neue iterative Berechnung der Hub-Authority Gewichte konvergiert. Um die zweite Schwachstelle abzustellen, wird versucht, das der Suchanfrage zugrunde liegende allgemeinere Themengebiet T zu bestimmen. In einem zweiten Schritt werden dann alle die Dokumente eliminiert, die für T nicht relevant sind. Das Themengebiet T wird nicht semantisch bestimmt, sondern T wird durch die Dokumente aus Sσ , definiert, die der Algorithmus als relevant für T ansieht. Für die Relevanzmessung wird zuerst eine Auswahl von Dokumenten aus Sσ bestimmt. Die ersten 1000 Worte werden, über alle Dokumente der Auswahl, konkateniert und ergeben einen String T . Für jedes Dokument w ∈ Sσ wird dann die Ähnlichkeit zwischen T und w wie folgt bestimmt: Sowohl T wie auch w werden in Terme zerlegt und die Häufigkeiten ht,T und ht,w des Terms t in T , bzw. w, wird berechnet. Wenn ht die Häufigkeit des Terms t über alle Dokumente des WWW ist, dann wird mit den Häufigkeitsvektoren xT = ( ht,T ht,w | t) und xw = ( | t) ht ht die Ähnlichkeit Ä(T, w) = hxT , xw i ||xT || · ||xw || zwischen T und w definiert. Dementsprechend liegt es nahe, Ä(T, w) als Relevanzwert für das Dokument w einzuführen und das Themengebiet T könnte zum Beispiel als die Menge aller 38 KAPITEL 2. SUCHMASCHINEN Dokumente w ∈ Sσ definiert werden, deren Relevanzwert einen Schwellenwert übertrifft; alle verbleibenden Dokumente sind als nicht-relevant einzustufen. In [BH] wird vorgeschlagen, in der iterativen Authority-Hub Gewichtung die Relevanzwerte mit aufzunehmen. Dies führt auf die Setzungen Hu = X h(u, w) · Ä(T, w) · Aw und Au = w, (u,w)∈Eσ X a(w, u) · Ä(T, w) · Hw . w, (w,u)∈Eσ Weitere Varianten, wie die Eliminierung von nicht-relevanten Dokumenten oder die Eliminierung nur von Dokumenten mit hohem Authority- oder Hub-Gewicht, werden in [BH] beschrieben. Dieser Ansatz definiert das Themengebiet T mehr oder minder durch einen Mehrheitsentscheid. Da zudem auch die Bestimmung der Ähnlichkeitswerte aufwändig ist, ist der beträchtliche Zeitaufwand ein großer Nachteil dieses Verfahrens. 2.4 Meta-Suchmaschinen Eine Meta-Suchmaschine gibt eine Anfrage an mehrere Suchmaschinen weiter und berechnet, ausgehend von den Reihenfolgen der einzelnen Suchmaschinen, eine Reihenfolge von hoffentlich relevanten Dokumenten. Eine Meta-Suchmaschine muss damit das folgende Integrationsproblem lösen. Gegeben sind Teilmengen T1 , . . . , Tn ⊆ U eines Universums U sowie Ordnungen <1 , . . . , <n , wobei <i eine vollständige Ordnung auf der Teilmenge Ti ist. Es ist eine mögS lichst „gute“ vollständige Ordnung für die Teilmenge T = ni=1 Ti zu bestimmen. Im Kontext einer Meta-Suchmaschine entspricht das Universum U der Menge aller Dokumente, die Teilmenge Ti ⊆ U den von der iten Suchmaschine ausgegebenen, potentiell informativen Dokumenten und die vollständige Ordnung <i der ausgegebenen Reihenfolge der Dokumente in Ti . Das Integrationsproblem kann natürlich auch für konventionelle Suchmaschinen angewandt werden, um verschiedene interne Reihenfolgen zu “integrieren“. Weitere Anwendungen bestehen in Auswahlproblemen, wenn also Objekte unter mehreren Auswahlkriterien auszuwählen sind: Betrachten wir zum Beispiel ein ideales Flug-Reservierungssystem, das dem Anwender erlaubt, seine Präferenzen im Hinblick auf Preis, Reisezeit, Reiselänge, Anzahl der Zwischenstops, Wahl von Fenster- oder Gangsitzen, Frequent-Flier Optionen und Ticket-Rückgaberecht zu nennen. Während das Reservierungssystem für jedes der einzelnen Kriterien eine Reihenfolge der jeweiligen Flugmöglichkeiten ohne Probleme berechnen kann, ist die Berechnung einer für den Anwender zufriedenstellende Reihenfolge im Hinblick auf alle Kriterien die wirkliche Herausforderung. Zwar ist das Integrationsproblem wegen seiner vielfältigen Anwendungen sehr interessant, doch fehlt eine Erklärung, was denn eine gute vollständige Ordnung ist. Wir werden sogar im nächsten Abschnitt mit Hilfe des Unmöglichkeitssatzes von Arrow sehen, dass eine einfache, überzeugende Erklärung nicht zu erwarten ist. In Abschnitt 2.4.2 führen wir die Kendall-Distanz ein und wenden Heuristiken zur Berechnungen von Ordnungen mit kleiner Kendall-Distanz zu vorgegebenen Ordnungen <1 , . . . , <n an. Die berechneten Ordnungen können experimentell in vielen Fällen überzeugen. 2.4. META-SUCHMASCHINEN 2.4.1 39 Der Unmöglichkeitssatz von Arrow Wir nehmen in diesem Abschnitt T1 = · · · = Tn = U an. Definition 2.8 Ein Präferenzen-Funktional P ordnet n Ordnungen (oder Reihenfolgen) <1 , . . . , <n von n eine Ordnung < zu. - P respektiert Einstimmigkeit, falls für alle x, y ∈ U : x <i y für alle i ∈ {1, . . . , n} ⇒ x<y. - P ist unabhängig von irrelevanten Alternativen, wenn für alle x, y ∈ U nur die n individuellen Vergleiche zwischen x und y über die Präferenz x<y entscheiden. Formal: Es gelte x <i y genau dann, wenn x ≺i y gilt. Wenn P (<1 , . . . , <n ) die Ordnung < und P (≺1 , . . . , ≺n ) die Ordnung ≺ bestimmt, dann ist x < y ⇔ x ≺ y. - Das Funktional Di (<1 , . . . , <n ) = <i heißt Diktatur-Funktional. Bemerkung 2.1 Die folgende Anekdote, die dem amerikanischen Philosophen Sidney Morgenbesser zugeschrieben wird, verdeutlicht einen Verstoß gegen die Unabhängigkeit von irrelevanten Attributen. Als Nachtisch wurden Morgenbesser einmal Apfel- und Blaubeerkuchen angeboten. Er entschied sich für den Apfelkuchen. Als die Kellnerin ergänzte, das auch Erdbeerkuchen im Angebot sei, nahm er den Blaubeerkuchen. In dieser Anekdote erscheint die Unabhängigkeit von irrelevanten Attributen als eine natürliche Forderung, die nur für Philosophen nicht zutrifft. Allerdings wird hier die Perspektive einer einzigen Reihenfolge, nämlich der Präferenzen von Morgenbesser eingenommen, nicht aber die Perspektive der „sozialen“ Reihenfolge P (<1 , . . . , <n ). Eine soziale Reihenfolge sollte doch auch Rangunterschiede zwischen den beiden Optionen in den einzelnen Reihenfolgen berücksichtigen; gerade dies ist aber ausgeschlossen, wenn Unbhängigkeit von irrelevanten Attributen gefordert wird: Rangunterschiede entstehen durch „Dritte“, also durch irrelevante Attribute. Satz 2.9 Der Unmöglichkeitssatz von Arrow Es gelte |U | ≥ 3. Wenn P ein Präferenzen-Funktional ist, das unabhängig von irrelevanten Alternativen ist und Einstimmigkeit respektiert, dann ist P ein Diktatur-Funktional. Wir überzeugen uns zuerst an einigen Beispielen, dass die Konstruktion eines PräferenzenFunktionals nicht gelingt, wenn Unabhängigkeit von irrelevanten Alternativen und Einstimmigkeit gefordert wird. Der Fall |U | = 2 ist einfach. Beispiel 2.1 Wenn U = {x, y}, dann gibt es nur zwei vollständige Ordnungen. Das Demokratie-Funktional wählt in diesem Fall die vollständige Ordnung nach dem Mehrheitsprinzip. Bei Stimmengleichheit wird x < y gesetzt. Das Demokratie-Funktional respektiert Einstimmigkeit und ist unabhängig von irrelevanten Alternativen. 40 KAPITEL 2. SUCHMASCHINEN Schon für |U | = 3 ändert sich die Situation entscheidend, denn es gibt keine „überall gerechten“ Funktionale. Betrachten wir zum Beispiel die Mehrheitsabstimmung auf Paaren: Definiere die globale Präferenz x<y, falls eine Mehrheit der individuellen Präferenzen y gegenüber x bevorzugt. Hier macht die Transitivität Ärger, denn aus x<1 y<1 z, y<2 z<2 x und z<3 x<3 y erhalten wir die zyklischen globalen Präferenzen x<y, y<z und z<x. Dieses Beispiel wurde zuerst vom Marquis de Condorcet in 1785 erwähnt und wird deshalb auch als Condorcet’s Paradox bezeichnet. Beweis des Unmöglichkeitssatzes von Arrow: Wir nehmen an, dass das Funktional P Einstimmigkeit respektiert und unabhängig von irrelevanten Attributen ist. Behauptung 1: Es gelte x <i y genau dann, wenn u ≺i v gilt. Wenn P (<1 , . . . , <n ) die Ordnung < und P (≺1 , . . . , ≺n ) die Ordnung ≺ bestimmt, dann ist x < y ⇔ u ≺ v. Beweis: Nach einer Namensänderung können wir annehmen, dass x < y und u 6= y gilt. Wir konstruieren Ordnungen i , so dass i die Präferenzen von <i bezüglich x und y wie auch die Präferenzen von ≺i bezüglich u und v wiedergibt. Zusätzlich wird stets u i x (es sei denn u = x) und y i v (es sei denn y = v) gelten. Haben wir dies erreicht und ist P (1 , . . . , n ) =, dann folgt u x und y v, denn P respektiert Einstimmigkeit. Aber i gibt ebenfalls die Präferenzen von <i bezüglich x und y wieder. Da P unabhängig von irrelevanten Attributen ist und x < y gilt, folgt x y: Aus u x, x y und y v folgt u v über die Transitivität einer Ordnung. Wir wenden wieder die Unabhängigkeit von irrelevanten Attributen an und folgern u ≺ v, denn i gibt die Präferenzen von ≺i bezüglich u und v wieder. Die Konstruktion von i ist simpel: Verschiebe u in <i direkt unter x und verschiebe v direkt über y. Beachte, dass i genau die Präferenzen von <i bezüglich x und y und von ≺i bezüglich u und v wiedergibt, denn x <i y ⇔ u ≺i v. Wir müssen zeigen, dass P das Diktator-Funktional ist. Welche Ordnung wird zum Diktator? Dazu greifen wir zwei beliebige Elemente x, y ∈ U heraus. Wenn wir n Ordnungen π 0 betrachten, die alle x geringer als y einschätzen, dann wird P ebenfalls x geringer als y einschätzen. Betrachten wir hingegen n Ordnungen π n , die alle x höher als y einstufen, dann wird auch P die Option x höher als y einschätzen. Jetzt betrachten wir für jedes 0 < i < n wieder n Ordnungen π i , die diesmal zuerst n − i Mal x geringer als y und dann i Mal die Option x höher als y einschätzen. Sei k minimal mit der Eigenschaft, dass P für die Ordnungen in π k die Option x höher als y einordnet. Wir behaupten, dass P stets die kte Ordnung auswählt. Behauptung 2: Es gelte P (<1 , . . . , <n ) =<. Für beliebige u, v ∈ U gilt u < v ⇔ u <k v. Beweis: Es gelte u <k v und wir müssen u < v nachweisen. Sei z eine beliebige dritte Option. Wir machen die Option z zur niedrigst eingeschätzten Option in allen Ordnungen <i mit i < k und zur höchst eingeschätzten Option in Ordnungen <i mit i > k. Schließlich modifiziere <k so, dass u <k z <k v gilt. Das Funktional P möge die Ordnung ≺ für die neuen Ordnungen bestimmen: Da P unabhängig von irrelevanten Attributen ist, gilt u < v ⇔ u ≺ v. 2.4. META-SUCHMASCHINEN 41 In den neuen Ordnungen werden z und u genauso eingeschätzt wie x und y in π k . In π k wird aber x höher als y eingeschätzt und deshalb ist u ≺ z als Konsequenz von Behauptung 1. Andererseits werden z und v in den neuen Ordnungen genauso wie x und y in π k−1 eingeordnet: Da aber x niedriger als y in π k−1 eingeschätzt wird, folgt diesmal z ≺ v aus Behauptung 1. Wir haben also u ≺ z und z ≺ v erhalten: Es folgt u ≺ v über die Transitivität und somit gilt u < v wie verlangt. Der Unmöglichkeitssatz von Arrow schließt nur die Bestimmung einer überzeugenden „sozialen Ordnung“ aus, nicht aber die Bestimmung einer überzeugenden „sozialen Option“. Nehmen wir also an, dass Q(<1 , . . . , <n ) stets eine Option bestimmt: Welche Eigenschaften sollten wir von Q fordern? Sicherlich ist es wünschenswert, wenn jeder Wähler ehrlich, also gemäß den eigenen Überzeugungen abstimmen kann ohne taktische Überlegungen durchführen zu müssen. Insbsondere sollte Q monoton sein: Definition 2.10 Das Funktional Q ist monoton, wenn stets Q(<1 , . . . , <i , . . . , <n ) = a 6= b = Q(<1 , . . . , ≺i , . . . , <n ) ⇒ (b <i a ∧ a ≺i b) gilt. Ist ein Funktional nicht monoton, dann treten Situationen auf, in denen es vorteilhaft ist, gegen die eigenen Überzeugungen abzustimmen. Satz 2.11 Der Satz von Gibbard-Satterthwaite Es gelte |U | ≥ 3. Q sei ein monotones Funktional, das jede Option in U mindestens einmal als Wert annehmen kann. Dann ist Q ein Diktator-Funktional, d.h. Q wählt stets die beliebteste Option einer fixierten Eingabe-Ordnung. Wir geben eine Beweisskizze. Angenommen Q ist ein monotones Funktional mit Eingaben <1 , . . . , <n . Wir erzeugen ein Präferenzen-Funktion P aus Q und zeigen, dass P Einstimmigkeit respektiert und unabhängig von irrelevanten Attributen ist. Die Behauptung folgt dann aus dem Satz von Arrow. Um die Ordnung P (<1 , . . . , <n ) =< festzulegen, genügt es für je zwei Optionen u, v ∈ U zu klären, ob u < v oder v < u gilt. Dazu bewegen wir u und v in jeder Ordnung <i ganz nach oben, behalten die ursprüngliche Präferenz zwischen u und v aber bei: Wenn ≺i die neue Ordnung bezeichnet, dann ist u <i v ⇔ u ≺i v. Jetzt setze u < v ⇔ Q(≺1 , . . . , ≺n ) = v. Aufgabe 19 (a) Zeige, dass < tatsächlich eine Ordnung ist. (b) Weise nach, dass P Einstimmigkeit respektiert und unabhängig von irrelevanten Attributen ist. (c) Beweise den Satz von Gibbard-Satterthwaite. Der Satz von Gibbard-Satterthwaite hat unmittelbare Konsequenzen für den MechanismenEntwurf4 : n Spieler sollen entscheiden, welche Option aus einer Menge U von Optionen auszuwählen ist, zum Beispiel welche Baumaßnahme mit Steuergeldern zu finanzieren ist. Um die auszuführende Baumaßnahme zu entscheiden, ist die ehrliche Angabe der Präferenzen eine Vorbedingung. Nach dem Satz von Gibbard-Satterthwaite gibt es aber keinen „Mechanismus“, der taktisches, unehrliches Verhalten ausschließen kann. 4 Im Mechanismen Entwurf sind die Regeln eines Multi-Agenten Spiels so festzulegen, dass ein gewünschtes Endergebnis für sich rational verhaltende Spieler erzielt wird. 42 KAPITEL 2. SUCHMASCHINEN 2.4.2 Die Kendall-Distanz Nach dem Unmöglichkeitssatz von Arrow ist eine eindeutige, überzeugende Definition einer besten vollständigen Ordnung nicht zu erwarten. Wir besprechen eine Reihe bisher vorgeschlagener Definitionen und betrachten dazu zuerst Bordas Regel: Für jedes x ∈ U wird Rangi (x) = |{z ∈ U | z ≤i x}|, der Rang von x bezüglich <i , bestimmt. Danach werden die Ergebnisse in der globalen Präferenz gemäß steigender P Rangsumme ni=1 Rangi (x) angeordnet. Bordas Regel kann in Zeit O(n·|U |) berechnet werden, aber eine Berechnung für partielle Reihenfolgen <1 , . . . , <n , also für Reihenfolgen mit Ti ⊆ U ist unklar. Bordas Regel respektiert Einstimmigkeit aber sie muss nach dem Satz von Arrow die Unabhängigkeit von irrelevanten Alternativen verletzen. (Rangunterschiede sind in Bordas Regel entscheidend und Rangunterschiede werden durch „Dritte“ hervorgerufen.) Bordas Regel verletzt auch die abgeschwächte Demokratie-Eigenschaft: Wenn für irgendeine Teilmenge S ⊆ U und für alle y ∈ S und x ∈ S stets eine Mehrheit der Ordnungen y gegenüber x bevorzugt, dann ist x < y. Diese Eigenschaft ist wichtig, um Spamming erfolgreich begegnen zu können: Wenn eine Mehrheit von Suchmaschinen Spamming-Versuche erkennt, dann kann selbst ein hohes Ranking weniger Suchmaschinen kompensiert werden. Aufgabe 20 Wir haben eine endliche Menge I von Wählern und eine endliche Menge U von Alternativen. Jeder Wähler i bestimmt seine Präferenz (oder Reihenfolge) <i auf U . Ein Präferenzen-Funktional P ist (i) anonym, falls die berechnete Präferenz nicht von der Reihenfolge der individuellen Präferenzen abhängt. (Es gilt also P (<1 , . . . , <n ) = P <π(1) , . . . , <π(n) für jede Permutation π.) (ii) neutral, falls für je zwei Alternativen x und y eine Vertauschung von x und y in jeder Reihenfolge zu einer Vertauschung in der berechneten Präferenz führt. (iii) monoton, falls für jedes x, y ∈ U mit x < y die Beziehung x < y weiterhin gilt, falls x und y in irgendeiner Reihenfolge <i vertauscht werden, so dass jetzt x <i y gilt. (a) Es sei |U | = 2. Zeige, dass das Demokratie-Funktional das einzige Präferenzen-Funktional ist, das anonym, neutral und monoton ist. (b) Es gelte |U | ≥ 3. Ist Bordas Regel anonym? Ist Bordas Regel neutral? Ist Bordas Regel monoton? (c) Zeige, dass Bordas Regel die abgeschwächte Demokratie-Eigenschaft bereits für |S| = 1 verletzt. Die Spearman-Distanz S(<1 , <2 ) zwischen zwei vollständigen Ordnungen <1 und <2 wird durch X S(<1 , <2 ) = |Rang1 (x) − Rang2 (x)| x∈U definiert. Für gegebene vollständige Ordnungen <1 , . . . , <n ist dann s(<1 , . . . , <n ; <) = n X S(<i , <) i=1 die von der vollständigen Ordnung < erreichte Distanz. Lemma 2.12 Eine für die Spearman-Distanz optimale vollständige Ordnung kann effizient berechnet werden. 2.4. META-SUCHMASCHINEN 43 Beweis: Wir stellen einen vollständigen bipartiten Graphen mit den Knotenmengen V1 = U und V2 = {1, . . . , |U |} auf. Für ein Element x ∈ V1 und eine „Position“ p ∈ V2 wird die Kante P {x, p} mit dem Gewicht ni=1 |Rangi (x) − p| versehen. Ein perfektes Matching, also eine Teilmenge E der Kantenmenge, so dass jeder Knoten aus V1 wie auch jeder Knoten aus V2 Endpunkt von genau einer Kante aus E ist, definiert eine vollständige Ordnung: Wenn {x, p} ∈ E, dann definieren wir p als den Rang von x in <. Umgekehrt definiert eine vollständige Ordnung das perfekte Matching { {x, Rang(x)} | x ∈ V1 }, und wir erhalten eine eindeutige Entsprechung von Matchings und vollständigen Ordnungen. Jetzt brauchen wir nur noch zu beobachten, dass s(<1 , . . . , <n , ; <) das Kantengewicht des Matchings von < ist. Also ist ein perfektes Matching von minimalem Gewicht eine optimale Spearman Lösung. Die Behauptung folgt, da perfekte Matchings von minimalem Gewicht effizient bestimmt werden können. Die Berechnung optimaler Reihenfolge für partielle Reihenfolgen <1 , . . . , <n führt allerdings wieder auf ein N P -vollständiges Problem, wenn wir für die Berechnung der Distanz S(<i , <) nur die Ränge von Elementen aus Ti heranziehen. Trotzdem lassen sich gute Ergebnisse nach einer geringfügigen Modifikation des Algorithmus aus Lemma 2.12 erzielen: Für die neuen S Setzungen V1 = T (mit T = ni=1 Ti ) und V2 = {1, . . . , |T |} wird die neue Gewichtung Pn i=1 |Rangi (x)/|Ti | − p/|T || der Kante {x, p} verwandt. Die Kendall-Distanz K(<1 , <2 ) wird durch K(<1 , <2 ) = |{(x, y) ∈ U | x <1 y und y <2 x}| definiert und ist damit die minimale Anzahl von Transpositionen benachbarter Elemente, um die Reihenfolge <1 in die Reihenfolge <2 zu verwandeln. Auch hier wird die Distanz einer vollständigen Ordnung < zu gegebenen vollständigen Ordnungen <1 , . . . , <n als Summe der Distanzen, also durch k(<1 , . . . , <n ; <) = n X K(<i , <) i=1 festgelegt. Für partielle Reihenfolgen <1 , . . . , <n beschränkt man sich zur Berechnung von K(<i , <) auf die Elemente aus Ti . Leider stellt sich die Berechnung optimaler Reihenfolgen schon für n = 4 und selbst für vollständige Reihenfolgen als ein NP-vollständiges Problem heraus. Allerdings besteht ein enger Zusammenhang zwischen der Spearman- und der KendallDistanz: Aufgabe 21 Zeige, dass stets K(<1 , <2 ) ≤ S(<1 , <2 ) ≤ 2·K(<1 , <2 ) für vollständige Reihenfolgen gilt. Optimale Lösungen für die Kendall-Distanz können also effizient bis auf den Faktor zwei approximiert werden. Wir zeigen, dass Kendall-optimale Ordnungen < die abgeschwächte Demokratie-Eigenschaft besitzen. Da eine effiziente Berechnung Kendall-optimaler Lösungen nicht wahrscheinlich ist, müssen wir aber auf Approximationen zurückgreifen und damit besteht die Gefahr, dass die abgeschwächte Demokratie-Eigenschaft verletzt ist. Eine Wiederherstellung ist aber selbst für partielle Reihenfolgen einfach. Lemma 2.13 Die Reihenfolgen <1 , . . . , <n und < seien vorgegeben. Dann kann eine ReiS henfolge <∗ in Zeit O(n · | ni=1 Ti |2 ) bestimmt werden, so dass - <∗ die abgeschwächte Demokratie-Eigenschaft besitzt und - k(<1 , . . . , <n , <∗ ) ≤ k(<1 , . . . , <n , <) gilt. 44 KAPITEL 2. SUCHMASCHINEN Beweis: O.B.d.A. sei U = {1, . . . , |U |} und es gelte 1 > 2 > · · · > |U |}. Wir bestimmen <∗ iterativ. Wenn wir <∗ schon auf den Elementen 1, . . . , k definiert haben, dann legen wir <∗ als Nächstes auf den Elementen 1, . . . , k, k +1 fest. Wir versuchen zuerst k +1 als kleinstes der jetzt k + 1 vielen Elemente festzulegen, vertauschen aber k + 1 mit dem k-kleinsten Element, wenn eine Mehrheit der Reihenfolgen <1 , . . . , <n dies verlangt. Dieser Vertauschungsprozess wird solange wiederholt, bis Element k + 1 zur „Ruhe kommt“. Wir beachten zuerst, dass <∗ mindestens so gut wie < ist, da kein Vertauschungsschritt die k-Distanz erhöht. Wir verifizieren die abgeschwächte Demokratie-Eigenschft als nächstes. Offensichtlich ist <∗ bezüglich der Distanzmessung k(<1 , . . . , <n , <∗ ) im folgenden Sinne lokal optimal: Wenn wir irgendein Paar von in <∗ aufeinanderfolgenden Elementen vertauschen, dann wird die Distanz k nicht abnehmen. Angenommen <∗ erfüllt die abgeschwächte Demokratie-Eigenschaft nicht. Dann gibt es eine Teilmenge S ⊆ {1, . . . , n} und Elemente s ∈, so dass von den meisten Ordnungen stets s ∈ S gegenüber t 6∈ S bevorzugt wird. Allerdings gibt es auch Elemente u ∈ S, v 6∈ S mit u <∗ v. Wir nehmen an, dass das Paar (u, v), unter allen Gegenbeispielen für die abgeschwächte Demokratie-Eigenschaft unter der Ordnung <∗ die geringste Distanz besitzt. Sei w der unmittelbare Nachfolger von v bezüglich <∗ , d.h. w ist das bezüglich <∗ größte Element kleiner als v. Wenn w = u, dann ist <∗ nicht lokal maximal, da eine Vertauschung von v und u die Gesamtdistanz verringert. Also ist v >∗ w >∗ u und w muss zur Menge S gehören, da (u, w) ansonsten ein Gegenbeispiel geringerer Distanz ist. Aber auch dies ist nicht möglich, da dann (w, v) ein Gegenbeispiel von benachbarten Elementen ist. Die Berechnung von <∗ benötigt Θ(n · |U |2 ) Operationen im Worst-Case, aber wir können die Rechenzeit signifikant verbessern, wenn wir nur irgendein lokales Optimum finden möchten. Dazu definieren wir einen gerichteten Graphen G = (U, E) mit Knotenmenge U und fügen Kanten (y, x) ein, wann immer eine Mehrheit der Ordnungen <i mit x, y ∈ Ti das Element y gegenüber x bevorzugt; bei einem Unentschieden setzen wir die beiden Kanten (x, y) und (y, x) ein. Beachte, dass lokal optimale Ordnungen und Hamilton’sche Wege einander entsprechen. Aufgabe 22 Zeige, dass eine lokal optimale Ordnung in Zeit O(k · |T | · log2 |T |) gefunden werden kann. Aufgabe 23 Die Ordnungen <1 , . . . , <n und < seien vorgegeben. Wir nennen <∗ konsistent mit <1 , . . . , <n und <, falls wann immer x <∗ y auch x < y gilt, oder aber eine Mehrheit der Ordnungen <i mit x, y ∈ Ti bevorzugt das Element y gegenüber x. (a) Zeige, dass <∗ mindestens so gut wie < bezüglich k ist. (b) Wenn wir die Ordnungen auf die m höchsten (gemäß <) Elemente einschränken, dann ist <∗ eindeutig bestimmt, falls <∗ lokal optimal und konsistent mit <1 , . . . , <n und < ist. Bisher werden vor Allem Varianten von Borda’s Regel zur Bestimmung guter Ordnungen für die Kendall-Distanz eingesetzt. Wir haben aber bereits mit dem Verfahren von Lemma 2.12 eine weitere Heuristik kennengelernt. Da die Spearman-Distanz die Kendall-Distanz bis auf den Faktor zwei approximiert, überrascht es nicht, dass im Vergleich zur Borda’s Regel experimentell eine weitaus bessere Approximation beobachtet wurde. Wir lernen jetzt eine dritte, einfachere aber in experimentellen Tests mindestens so erfolgreiche Heuristik kennen. Algorithmus 2.14 Der Markoff-Ketten Ansatz. (1) Bestimme T = Sn i=1 Ti . 2.5. DAS SEMANTISCHE NETZ 45 (2) Konstruiere eine Markoff-Kette (G, P ) mit Zustandsmenge T wie folgt. Für x ∈ T sei Größer(x) = {y | x <i y für die meisten Ordnungen <i mit x, y ∈ Ti }. Dann setze P [x, y] = 1 |Größer(x)| , falls y ∈ Größer(x), und P [x, y] = 0 sonst. (3) Bestimme die stationäre Verteilung π von (G, P ). (4) Berechne eine vollständige Ordnung < für π. Wir müssen die Berechnung der Ordnung < für die stationäre Verteilung π präzisieren. Der gerichtete Graph G = (V, E) zerfällt in starke Zusammenhangskomponenten5 . Sei X die Menge der starken Zusammenhangskomponenten. Wir bauen einen weiteren gerichteten Graph G∗ = (X , E ∗ ), wobei wir eine Kante (X1 , X2 ) für X1 , X2 ∈ X einsetzen, wenn G eine Kante (x1 , x2 ) mit x1 ∈ X1 und x2 ∈ X2 besitzt. Aufgabe 24 Zeige, dass G∗ kreisfrei ist. Wenn x ∈ X und wenn X keine Senke ist, dann ist die Wahrscheinlichkeit den Knoten x beliebig oft zu erreichen gleich Null und es gilt π(x) = 0. Wir bestimmen deshalb zuerst π nur für solche Knoten, die zu den Senken von G∗ gehören, und fordern x1 < x2 , wann immer π(x1 ) < π(x2 ) gilt. Als Nächstes entfernen wir alle Senken aus G∗ und alle Knoten aus G, die zu den Senken von G∗ gehören. Wir bilden gemäß Algorithmus 2.14 eine Markoff-Kette auf den verbleibenden Knoten und wiederholen das obige Verfahren, wobei die neuen Knoten in < unterhalb den alten Knoten angesiedelt werden. Offenes Problem 1 Bestimme den Approximationsfaktor des Markoff-Ketten Ansatzes. Sowohl für die Spearman-Distanz wie auch für die Kendall-Distanz kann eine Gewichtung der individuellen Ordnungen <1 , . . . , <n eingeführt werden, um die Voraussagekraft der jeweiligen Reihenfolgen auszudrücken. Die obigen Ergebnisse bleiben weiterhin bestehen. 2.5 Das Semantische Netz Nach Berners-Lee, einem Pionier des World-Wide-Web, ist das Semantic Web eine Erweiterung des herkömmlichen Webs, in der Informationen mit Maschinen-verständlichen Bedeutungen versehen werden, um die Semantik der Inhalte formal festlegen. Die Grundidee ist die Implementierung eines verteilten semantischen Netzes, in der die Annotation der HTML/XML-Seiten eine wichtige Rolle spielt. Zum einen wird die Bedeutung von Web-Links durch die Annotation erklärt, zum anderen wird mit der Annotation Reasoning möglich: Besagt die Annotation eines Dokuments zum Beispiel, dass es sich mit „Fußball“ beschäftigt und geht aus der zugrundeliegenden Ontologie hervor, dass der Begriff „Fußball“ eine „Sportart“ darstellt, dann kann geschlossen werden, dass es im Dokument also auch um 5 Ein gerichteter Graph heißt stark zusammenhängend, falls je zwei Knoten des Graphen durch einen Weg miteinander verbunden sind. Ein Teilgraph H = (V 0 , E 0 ) mit E 0 ⊆ E von G heißt eine starke Zusammenhangskomponente von G, falls H stark zusammenhängend ist und kein Teilgraph, der H echt enthält, stark zusammenhängend ist. 46 KAPITEL 2. SUCHMASCHINEN Sport geht, obwohl dies nicht explizit in den Metadaten auftaucht. Bei entsprechender Qualität der Annotation lässt sich ein hoher Grad automatischer Verarbeitung erreichen. So wäre es zum Beispiel sogar denkbar, dass eine Suchmaschine im Semantischen Netz Anfragen der Art „Wie viele Tore hat Fußballer X im Jahre 1998 geschossen?“ direkt beantworten kann. Allerdings ist es unklar, ob sich das semantische Web durchsetzen wird: Ein überzeugender Standard hat sich bisher nicht etablieren können. Auch wird die zusätzliche Annotation des Anwenders nicht unmittelbar belohnt, und es stellt sich die Frage, ob viele Anwender diese zusätzliche Arbeit auf sich nehmen werden. Das Konzept des semantischen Netzes ist aber sehr attraktiv und, bei einer Einschränkung auf objektive semantische Daten, werden Suchmaschinen profitieren können. 2.6 Zusammenfassung Wir haben den Random Surfer Ansatz von Google sowie den Hubs-Authorities Ansatz von Kleinberg vorgestellt. Beide Ansätze bewerten Dokumente durch einen Peer-Review mit Hilfe der Connectivity-Analyse. Um erfolgreich zu sein, müssen deshalb die Annahmen der Connectivity-Analyse zutreffen: Wenn ein Dokument A auf Dokument B zeigt, dann - gibt es eine inhaltliche Beziehung zwischen den beiden Dokumenten und - der Autor des Dokuments A hält Dokument B für wertvoll. Google berechnet den Page-Rank eines Dokuments w als eine Anfrage-unabhängige Bewertung: Der Page-Rank pr(w) ist hoch, wenn viele Dokumente u mit hohem Page-Rank pr(u) auf das Dokument w zeigen. Eine Formalisierung des Page-Rank Konzepts führt dann auf pr = d · p + (1 − d) · pr · P, (2.6) wobei der Vektor p durch pw = n1 definiert ist. Der mit einer (im Vergleich zu 1) kleinen Konstante d gewichtete Vektor p garantiert, dass der Page-Rank mit der stationären Verteilung auf dem Webgraphen übereinstimmt, wenn wir die Übergangswahrscheinlichkeiten ( P 0 [u, w] = d n d n + 1−d du (u, w) ist ein Hyperlink sonst. für den Übergang von Dokument u auf Dokument w wählen: Die Forderung (2.6) besitzt eine eindeutige Lösung, wenn wir zusätzlich fordern, dass der Page-Rank Vektor eine Verteilung ist. Als Konsequenz stimmt der Page-Rank prw mit der relativen Häufigkeit überein, dass ein Random Surfer das Dokument w besucht. Ein wesentlicher Nachteil ist die Unabhängigkeit des Page-Ranks von der Anfrage. Wir haben deshalb die Möglichkeit benutzt, den Vektor p in (2.6) für ein vorgegebenes Themengebiet T maßzuschneidern. Wenn ein Crawler das Dokument w besucht und die Kompetenz pTw für das Themengebiet feststellt, dann können wir pr(i) = d · pT + (1 − d) · pr(i) · P, (2.7) als den Page-Rank für Themengebiet T einführen. Dabei genügt eine text-basierte Kompetenzbewertung pTw von w, da wir ja weiterhin eine Connectivity-Analyse ausführen. 2.6. ZUSAMMENFASSUNG 47 Der HITS-Algorithmus bestimmt Authorities (Dokumente von hoher Qualität) mit Hilfe von Hubs (Dokumente mit „guten“ Links). In der Berechnung erhält ein Dokument, das auf viele Dokumente mit hohem Authority-Gewicht zeigt, ein hohes Hub-Gewicht Hu = X Aw , w, (u,w)∈Eσ während ein Dokument, auf das viele Dokumente mit hohem Hub-Gewicht zeigen, ein hohes Authority-Gewicht X Au = Hw w, (w,u)∈Eσ erhält. In Anwendungen konvergieren die Hub- und Authorities-Vektoren nach nur relativ wenigen Iterationen gegen die größten Eigenvektoren von M · M T bzw. von M T · M , wobei M die Adjazenzmatrix eines Teilgraphen des Webgraphen ist. Das Integrationsproblem ist für den Entwurf von Metasuchmaschinen und allgemeiner für die Erstellung von Reihenfolgen im Hinblick auf mehrere Kriterien wesentlich. Wir haben zuerst im Satz von Arrow gesehen, dass die Definition einer zufriedenstellenden Reihenfolge schwierig ist. Da sich eine Metasuchmaschine vorrangig mit Spamming auseinandersetzen muss, haben wir die Kendall-Distanz oder Bubblesort-Distanz K(<1 , <2 ) = |{(x, y) ∈ U | x <1 y und y <2 x}| zwischen zwei Reihenfolgen <1 und <2 eingeführt und die Qualität einer Reihenfolge < im Hinblick auf die Reihenfolgen <1 , . . . , <n durch die Distanzsumme k(<1 , . . . , <n ; <) = n X K(<i , <) i=1 gemessen. Die Bestimmung einer Reihenfolge mit kleinster Distanzsumme führt allerdings auf ein N P -vollständiges Problem, aber gute Approximationen können zum Beispiel mit Spearman-Reihenfolgen berechnet werden. Wenn wir den Vertauschungsalgorithmus aus Lemma 2.13 anwenden, dann erfüllen diese Approximationen auch die abgeschwächte Demokratie-Eigenschaft: Wenn für irgendeine Teilmenge S ⊆ {1, . . . , n} und für alle y ∈ S und x ∈ S stets eine Mehrheit der Reihenfolgen y gegenüber x bevorzugt, dann ist x < y. Die abgeschwächte Demokratie-Eigenschaft kann gegen Spamming eingesetzt werden: Wenn eine Mehrheit von Suchmaschinen Spamming-Versuche erkennt, dann kann selbst ein hohes Ranking „verdorbener“ Dokumente (unterstützt nur durch eine Minderheit der Suchmaschinen) kompensiert werden. 48 KAPITEL 2. SUCHMASCHINEN Kapitel 3 Hashing für Web-Anwendungen Wir beschreiben zuerst verteilte Hashing-Verfahren, die in File-Sharing Anwendungen für Peer-to-Peer Systeme1 eine wichtige Rolle spielen. Als Nächstes stellen wir uns das Problem, alle Paare ähnlicher Objekte in einer großen Menge von Objekte zu bestimmen. Wenn identische Objekte herauszufiltern sind, dann ist konventionelles Hashing eine gute Lösung. Auch die Bestimmung ähnlicher Objekte scheint trivial, da ein Algorithmus mit quadratischer Laufzeit alle Paare inspizieren und auswerten kann. Allerdings können wir uns eine quadratische Laufzeit im Hinblick auf die Größe der Datenmenge nicht leisten, und wir benutzen deshalb Min-Hashing, eine Variante des ähnlichkeitsbewahrenden Hashings. Sodann speichern wir Mengen speicherplatz-effizient mit Hilfe von Bloom-Filtern ab. BloomFilter besitzen viele Anwendungen in Netzwerken und zwar besonders dann, wenn Knoten des Netzwerks Mengen relevanter Informationen austauschen müssen: Der Netzwerk-Verkehr wird Dank der Kompression durch Bloom-Filter weit weniger als mit konventionellen Methoden belastet. 3.1 Verteiltes Hashing in Peer-to-Peer Netzwerken: CHORD Die Musiktauschbörse Napster erlaubt den Austausch von MP3-Musikdateien über das Internet und verfolgt dazu eine Mischung des Client-Server und des Peer-to-Peer Ansatzes: Die Napster-Software durchsucht den Kunden-Rechner nach MP3-Dateien und meldet die Ergebnisse an einen zentralen Server, der auch alleinigen Zugriff auf die Angebote und Suchanfragen der anderen Teilnehmer hat (Client-Server Ansatz). Der Server meldet dann als Ergebnis auf eine Anfrage die IP-Adressen der Rechner, die die gesuchte Musikdatei anbieten. Anbieter und Käufer können sich daraufhin direkt miteinander verbinden (Peer-to-Peer Ansatz). Das Gnutella-Netzwerk ist ein vollständig dezentrales Netzwerk ohne zentrale Server. Startet ein Benutzer des Netzwerkes eine Suchanfrage, so wird diese zunächst nur an benachbarte Systeme weitergeleitet. Diese leiten dann ihrerseits die Anfrage an ihre benachbarten Systeme weiter, bis die angeforderte Datei gefunden wurde. Anschließend kann eine direkte Verbindung zwischen suchendem und anbietendem Benutzer für die Datenübertragung hergestellt werden. Gnutella überflutet also das Netz mit der Suchanfrage und wird deshalb nur unzureichend skalieren. 1 In einem Peer-to-Peer-Netzwerk sind, im Gegensatz zu Client-Server Netzen, alle Rechner gleichberechtigt und können sowohl Dienste in Anspruch nehmen als auch Dienste zur Verfügung stellen. 49 50 KAPITEL 3. HASHING FÜR WEB-ANWENDUNGEN Reine Peer-to-Peer Systeme wie Gnutella sind ausfallsicherer und verteilen die hohe Belastung des Servers auf die Peers. Wir beschreiben das reine Peer-to-Peer Sytem CHORD, das sowohl den Zugriff auf Information wie auch die Registrierung neuer Peers oder das Abmelden alter Peers dezentral und effizient erlaubt. Unser Ziel ist die Definition eines Protokolls, dass den effizienten Zugriff auf Information erlaubt, wenn Informationen auf verschiedenste Rechner verteilt ist und wenn Rechner das Netzwerk verlassen bzw. dem Netzwerk beitreten dürfen. Beachte, dass Information durch den Weggang, bzw. den Zugewinn von Rechnern bewegt werden muss und gute Protokolle sollte diese dynamischen Veränderungen ohne großen zusätzlichen Kommunikationsaufwand bewältigen. Die zentrale algorithmische Idee besteht in dem Konzept konsistenter Hashfunktionen, die sowohl auf die Menge R aller möglichen IP-Adressen wie auch auf die Menge D aller möglichen Dateien-ID’s angewandt werden dürfen. Im Unterschied zu den bisherigen Anwendungen liefern unsere Hashfunktionen jetzt reelle Zahlen in dem Intervall [0, 1]. Definition 3.1 (a) Die Klasse konsistenter Hashfunktionen besteht aus allen Funktionen der Form h : R ∪ D → [0, 1]. (b) Sei R eine Teilmenge von R. Wenn h(r1 ) < h(r2 ) für zwei Rechner r1 , r2 ∈ R gilt und wenn es keinen Rechner r3 ∈ R mit h(r1 ) < h(r3 ) < h(r2 ) gibt, dann heisst r2 der Nachfolger von r1 und r1 der Vorgänger von r2 bezüglich h. Wir rechnen modulo 1, d.h. der Rechner mit größtem Hashwert ist Vorgänger des Rechners mit kleinstem Hashwert. Demgemäß sollte man sich das Intervall [0, 1] als Kreis vorstellen. (c) Sei R eine Teilmenge von R und D eine Teilmenge von D. Dann sagen wir, dass der Rechner r2 ∈ R für die Dateienmenge D0 ⊆ D zuständig ist, falls r2 ∈ R der Nachfolger von r1 ist und D0 = {d ∈ D | h(r1 ) < h(d) < h(r2 ) gilt. Angenommen die Dateienmenge D ist von den Rechnern in R abzuspeichern. Dann wird in Chord ein Rechner genau die Dateien speichern, für die er zuständig ist. Wenn jetzt ein Rechner r ∈ R auf die Datei d ∈ D zugreifen möchte, dann berechnet r den Hashwert h(d). Chord stellt zusätzliche Information, die Routing-Tabelle, bereit, so dass r den für d zuständigen Rechner in wenigen Schritten lokalisieren kann: (1) r erhält die IP-Adresse seines Vorgängers und seines Nachfolgers. (2) Die Rechner sind durch die Hashfunktion auf dem Kreis angeordnet. Für jedes k erhält r desweiteren die IP-Adresse Rr (k) des ersten Rechners mit einem Abstand von mindestens 2−k , d.h. es ist h(Rr (k)) ≥ h(r) + 2−k und für jeden Rechner t ∈ R zwischen r und Rr (k) ist h(t) < h(r) + 2−k . Auf der Suche nach Datei d bestimmt r den Wert k, so dass h(Rr (k)) ≤ h(d) ≤ h(Rr (k − 1)) und sendet seine Anfrage nach d an den Rechner s = Rr (k) mit der Bitte bei der Suche zu helfen; s ist also der Rechner der Routingtabelle von r mit größtem Hashwert beschränkt durch h(d). Rechner s bestimmt seinerseits den Wert l mit h(Rs (l)) ≤ h(d) ≤ h(Rs (l − 1)) und kontaktiert Rs (l). Dieses Verfahren wird solange wiederholt bis der Vorgänger v des für die Datei d zuständigen Rechners erreicht ist. Rechner v kontaktiert seinen Nachfolger, der d dann direkt an den ursprünglich anfragenden Rechner r verschickt. Beachte, dass r und alle auf der Suche nach d beteiligten Rechner jeweils Rechner r0 mit h(r0 ) ≤ h(v) kontaktieren. Wir behaupten, dass die Hashdistanz zu h(v) in jedem Suchschritt mindestens halbiert wird. 3.1. VERTEILTES HASHING IN PEER-TO-PEER NETZWERKEN: CHORD 51 Lemma 3.2 Wenn r0 auf der Suche nach Datei d den Rechner r00 kontaktiert, dann ist h(v) − h(r00 ) ≤ h(v) − h(r0 ) . 2 Beweis: Es gelte h(r0 ) + 2−k ≤ h(v) < h(r0 ) + 2−(k−1) . Dann wird r0 den Rechner r00 mit h(r0 ) + 2−k ≤ h(r00 ) ≤ h(v) kontaktieren. Es ist 2−k ≤ h(r00 ) − h(r0 ) und h(v) − h(r0 ) < 2−(k−1) . Also ist h(v) − h(r00 ) = h(v) − h(r0 ) + h(r0 ) − h(r00 ) < 2−(k−1) − 2−k = 2−k . Also folgt h(v) − h(r0 ) = h(v) − h(r00 ) + h(r00 ) − h(r0 ) ≥ h(v) − h(r00 ) + 2−k ≥ 2 · (h(v) − h(r00 )) und das war zu zeigen. Wir erwähnen ohne Beweis, dass die Rechner bei zufälliger Wahl der Hashfunktion gleichmäßig mit Dateien belastet werden und dass die Rechner gleichmäßig auf dem Kreis verteilt sind. Lemma 3.3 Sei |R| = n und |D| = m. Für hinreichend großes α gelten die folgenden Aussagen nach zufälliger Wahl einer konsistenten Hashfunktion mit “großer” Wahrscheinlichkeit: (a) Jeder Rechner ist für höchstens α · m n · log2 (n) Dateien zuständig. (b) Kein Interval der Länge α·n−2 enthält zwei Rechner und kein Interval der Länge α·m−2 enthält zwei Dateien. (c) Die Suche nach der Datei s ist nach höchstens α · log2 n Schritten erfolgreich. Betrachten wir als Nächstes das Einfügen von Rechnern. Wenn Rechner r dem System beitreten möchte, dann bittet r einen beliebigen Rechner des Systems die Suche nach h(r) durchzuführen. Nach erfolgreicher Suche hat r seinen Nachfolger r0 gefunden und kann r0 benachrichtigen. r0 übermittelt die IP-Adresse des bisherigen Vorgängers und betrachtet r als seinen neuen Vorgänger. Danach baut r seine Routing-Tabelle mit Hilfe seines Nachfolgers r0 auf: Wenn r auf die Anfrage nach dem fiktiven Hashwert h(r) + 2−k die IP-Adresse rk erhält, dann ist Rr (k) = rk . Warum besteht kein Grund zur Panik, wenn ein Hinzufügen von Rechnern nicht sofort vollständig in den Routing-Tabellen anderer Rechner vermerkt wird? Solange der Rechner Rr (k) nicht entfernt wurde, hilft Rr (k) weiterhin in der Halbierung der Distanz und das gilt selbst dann, wenn nähere Knoten im Abstand mindestens 2−k zwischenzeitlich eingefügt wurden. Das erwartete Verhalten nach dem Einfügen von Rechnern ist beweisbar “gutmütig”: Lemma 3.4 Zu einem gegebenen Zeitpunkt bestehe das Netz aus n Rechnern und alle ZeigerInformationen (also Vorgänger, Nachfolger und Distanz 2−k Rechner) seien korrekt. Wenn dann n weitere Rechner hinzugefügt werden und selbst wenn nur Vorgänger und Nachfolger richtig aktualisiert werden, dann gelingt eine Suche hochwahrscheinlich in Zeit O(log2 n). Aufgabe 25 Zeige Lemma 3.4. Benutze, dass hochwahrscheinlich höchstens O(log2 n) neue Rechner zwischen zwei alten Rechnern liegen. Wenn sich ein Rechner r abmeldet, dann ist jetzt der Nachfolger von r für die Dateien von r zuständig. Desweiteren muss sich r bei seinem Nachfolger und seinem Vorgänger abmelden. Auch diesmal versucht Chord nicht, die Routing-Tabellen vollständig zu aktualisieren und 52 KAPITEL 3. HASHING FÜR WEB-ANWENDUNGEN stattdessen überprüft jeder Rechner seine Routing-Tabelle in periodischen Abständen. Sollte sich während der Suche nach einer Datei herausstellen, dass Rechner Rr (k) verschwunden ist, dann leidet die Suche unmittelbar: r muss sich auf die Suche machen und kontaktiert Rr (k−1) mit dem imaginären Adresse h(r)+2−k ; nach erhaltener Antwort kann die Dateisuche fortgesetzt werden. Aufgabe 26 (a) Zeige, dass die folgenden pathologischen Fälle nach Einfügen und Entfernen von Rechnern auftreten können: - Die Nachfolger-Zeiger definieren eine Liste, die mehrfach über das Intervall [0, 1] “streicht”. - Die Nachfolger-Zeiger definieren mehrere disjunkte Zyklen. (b) Wie lassen sich diese Pathologien erkennen? Ein zentrales Problem für Chord ist die Behandlung bösartiger Rechner, ein Problem das zum jetzigen Zeitpunkt noch ungelöst ist. Ein ähnliches Problem ist der Ausfall von Rechnern ohne vorige Abmeldung; dieses Problem ist aber zumindest approximativ durch Datenreplikation über eine fixe Anzahl von Nachfolgern in den Griff zu bekommen. Beachte, dass die zufällige Wahl der Hashfunktion einerseits für eine gleichmäßige Auslastung der Rechner und eine schnelle Suchzeit sorgt; andererseits ist sie aber auch dafür verantwortlich, dass die “HopDistanz” zwischen auf dem Kreis benachbarten Rechnern groß sein wird. Weitere Distributed Hashing Ansätze werden in den Systemen CAN, Pastry und Tapestry verfolgt. Ein Vergleich wird in [BKKMS] durchgeführt. 3.2 Ähnlichkeitsbestimmung Sei X eine Menge von Objekten. Wir definieren ein Ähnlichkeitsmaß als eine Funktion e : X 2 → [0, 1] und fordern, dass e(a, b) genau dann den Wert 1 annimmt, wenn a = b. Bestimmte Ähnlichkeitsmaße erlauben eine sehr schnelle Auswertung. Definition 3.5 Sei Y eine Menge und sei F eine Menge von Funktionen h : X → Y . Dann heißt F eine Klasse von ähnlichkeitsbewahrenden Hashfunktionen für X und das Ähnlichkeitsmaß e, wenn probh∈F [ h(x) = h(y) ] = e(x, y). Wenn F eine Klasse von ähnlichkeitsbewahrenden Hashfunktionen für X und e ist, dann genügt die zufällige Auswahl weniger Hashfunktionen, um die Ähnlichkeit zweier Elemente x und y approximativ zu bestimmen. Beispiel 3.1 Hamming-Ähnlichkeit Wir wählen X = {0, 1}n und e(x, y) = 1 − H(x, y)/n als Ähnlichkeitsmaß, wobei H den Hamming-Abstand bezeichnet, also H(x, y) = |{i | xi 6= yi }|. Dann ist F = {pi | pi (x) = xi } eine Klasse ähnlichkeitsbewahrender Hashfunktionen für {0, 1}n und das Ähnlichkeitsmaß e, denn e(x, y) = 1 − H(x, y)/n = (n − H(x, y))/n = |{i | xi = yi }|/n ist die Wahrscheinlichkeit, dass x und y in einer zufällig gezogenen Bitposition übereinstimmen. 3.2. ÄHNLICHKEITSBESTIMMUNG 53 Beispiel 3.2 Der Jaccard-Koeffizient und Min-Hashing Sei X = P(U ) die Klasse aller Teilmengen eines endlichen Universums U . Wir definieren den Jaccard-Koeffizienten J(A, B) für zwei Teilmengen A und B durch J(A, B) = |A∩B | . |A∪B | Beachte, dass 0 ≤ J(A, B) ≤ 1 und J(A, B) ist genau dann Eins, wenn A und B übereinstimmen. Für eine Permutation π von U setzen wir min(A) = min{π(j) | j ∈ A} π und minπ ist das kleinste Element von A nach Permutation der Elemente von A gemäß π. Schließlich wählen wir F = {minπ | π}. Die Klasse F definiert das wichtige Verfahren des Min-Hashing. F ist eine Klasse ähnlichkeitsbewahrender Hashfunktionen für X und J. Warum? Für Teilmengen A und B von U sei r ∈ A ∪ B das, nach Permutation, kleinste Element in A ∪ B. Es gibt insgesamt |A ∪ B|-viele Möglichkeiten für die Wahl von r, von denen aber genau |A ∩ B|-viele zur Gleichheit minπ (A) = minπ (B) führen. Beispiel 3.3 Ähnlichkeit von Vektoren Diesmal sei X = {x ∈ Rn | ||x|| = 1} die n-dimensionale Sphäre. Für zwei Vektoren x, y ∈ X sei φ(x, y) der Winkel zwischen x und y. Dann ist e(x, y) = 1−φ(x, y)/π ein Ähnlichkeitsmaß. Für jeden Vektor r ∈ X definieren wir die Funktion hr : X → {0, 1} durch ( hr (z) = 1 hz, ri ≥ 0 0 sonst. Aufgabe 27 Zeige, dass F = {hr | r ∈ X} eine Klasse ähnlichkeitsbewahrender Hashfunktionen für X und e ist. Wir erhalten damit auch ein weiteres ähnlichkeitsbewahrendes Hashing-Verfahren für Teilmengen des Universums {1, . . . , n}: Wir repräsentieren eine Menge X durch ihren Inzidenzvektor2 eX . Als Ähnlichkeit zweier Teilmengen A, B ⊆ {1, . . . , n} können wir dann die Ähnlichkeit ihrer Inzidenzvektoren wählen und der Ähnlichkeitswert von A und B ist dann 1−φ(eA , eB )/π. Beachte, dass der Kosinus des Winkels mit dem inneren Produkt der Inzidenzvektoren, nach Normierung auf Länge 1, übereinstimmt und es ist cos(φ(eA , eB )) = heA , eB i |A ∩ B| =p . ||eA || · ||eB || |A| · |B| Also ist e(A, B) = √|A∩B| ebenfalls ein Ähnlichkeitsmaß, dass indirekt schnell mit ähnlich|A|·|B| keitsbewahrendem Hashing ausgewertet werden kann: Approximiere den Winkel φ(eA , eB ) mit ähnlichkeitsbewahrendem Hashing und wende dann den Kosinus an. In den folgenden Abschnitten beschreiben wir Anwendungen und geben Kriterien für die Existenz oder Nicht-Existenz von ähnlichkeitsbewahrenden Hashfunktionen an. Insbesondere werden wir sehen, dass der Wertebereich {0, 1} im gewissen Sinne erzwungen werden kann. 2 Die ite Komponente des Inzidenzvektors eX ∈ {0, 1}n ist 1 genau dann, wenn i ∈ X. 54 KAPITEL 3. HASHING FÜR WEB-ANWENDUNGEN 3.2.1 Min-Hashing Wir beschreiben zuerst eine Anwendung des ähnlichkeitsbewahrenden Hashing in der Entdeckung ähnlicher Web-Dokumente. Ungefähr 20% aller Web-Dokumente im Datenbestand einer Suchmaschine scheinen Duplikate oder Fast-Duplikate zu sein. Gründe hierfür sind zum Beispiel lokale Kopien beliebter Webseiten, Mirroring und falsch arbeitende Crawler. Dieses Phänomen ist für Suchmaschinen äußerst ärgerlich, denn einerseits werden kostbare Ressourcen verschwendet und andererseits wird sich ein Anwender nicht durch sehr ähnliche Dokumente wühlen wollen. Unser Ziel ist deshalb die schnelle Bestimmung aller Paare ähnlicher Dokumente in einer großen Dokumentenmenge. In [BGMZ] wird deshalb ein Verfahren zur Ähnlichkeitsmessung von Dokumenten vorgeschlagen. Dazu wird ein Dokument A in Shingles (wenige aufeinanderfolgende Worte) aufgebrochen und das Dokument wird durch seine Shingle-Menge MA repräsentiert3 . Zur Messung der Ähnlichkeit zweier Dokumente A und B wird dann der Jaccard Koeffizient J(MA , MB ) benutzt. Hohe Jaccard-Werte belegen eine entsprechend starke syntaktische Ähnlichkeit. Wir können die Bestimmung von J(MA , MB ) durch ähnlichkeitsbewahrendes Hashing wesentlich erleichtern. Dazu fassen wir MA als eine Teilmenge des Universums U = {1, . . . , N } auf (in der Anwendung ist N ≈ 264 ) und wählen k Permutationen π1 , . . . , πk von U zufällig aus. Wir definieren dann den Sketch des Dokuments X durch sketch(A) = (minπi (MA ) | 1 ≤ i ≤ k) und beachten, dass die erwartete Anzahl übereinstimmender Komponenten von sketch(A) und sketch(B) mit k · J(MA , MB ) übereinstimmt. In [BGMZ] wird von einem Verfahren zum “syntaktischen Clustering“ auf 30 Millionen Webseiten berichtet. Dieses Verfahren wurde inzwischen von AltaVista übernommen. Ein Fenster von 10 aufeinanderfolgenden Worten definiert ein Shingle, so dass man davon ausgehen kann, dass gemeinsame Shingles ein starker Hinweis für Ähnlichkeit sind. 100 verschiedene lineare Permutationen πi (x) ≡ ai · x + bi mod N werden zufällig ausgewürfelt und die Dokumente werden somit als Vektoren mit 100 Komponenten repräsentiert. Entsprechend erwartet man bei 50% Ähnlichkeit zwischen 2 Dokumenten ungefähr 50% Übereinstimmung der sie repräsentierenden Sketches. Aufgrund der enormen Daten-Dimensionen (150 Gigabyte vor Sketching und immer noch 24 Gigabyte nach Sketching mit k = 100) werden Plattenzugriffe „panisch“ vermieden. In einer ersten Rechenphase werden Sketches für alle Dokumente berechnet. Danach werden Sketches mit konventionellem Hashing verglichen: Jedes Dokument A wird mit Argument minπi (MA ) in eine Hashtabelle eingefügt; für alle Dokumentenpaare mit gleichem Hashwert wird der Treffer vermerkt. (Hier wird also eine quadratische Laufzeit toleriert, quadratisch in der Anzahl der Dokumente mit gleichem Hashwert. Die Anzahl dieser Dokumente ist aber meist gering, da schon ein einziger gemeinsamer Treffer für nicht-ähnliche Dokumente unwahrscheinlich ist.) Nach dem k-fachen Hashing untersucht man den Dokumenten-Graphen, dessen Kanten mit der jeweiligen Trefferzahl beschriftet sind und setzt Kanten permanent ein, wenn die entsprechende Trefferzahl einen vorgegebenen Schwellenwert übersteigt. Sodann werden die Zusammenhangskomponenten als Cluster ähnlicher Webseiten aufgefasst. 3 Besteht ein Dokument A aus den Worten x1 · · · xn und besteht ein Shingle aus 10 aufeinanderfolgenden Worten, dann ist MA = {xi · · · xi+9 | i ≤ n − 9} seine Shingle-Menge. (Shingle ist Englisch für Dachziegel. 3.2. ÄHNLICHKEITSBESTIMMUNG 55 Aufgabe 28 In der obigen Anwendung werden nur lineare Permutationen benutzt. Sei Flinear die entsprechende Klasse der Hash-Funktionen. Bestimme zwei Mengen A und B so, dass probh∈Flinear [ h(A) = h(B) ] 6= J(A, B). „Lineares Hashing“ gibt somit den Jaccard-Koeffizienten nicht exakt wieder, allerdings sind die experimentellen Erfahrungen positiv. Eine zweite Anwendung des ähnlichkeitsbewahrenden Hashing findet man im Market-Basket Modell. Hier wird der Inhalt von Warenkörben festgehlten, um das Einkaufsverhalten der Kunden untersuchen zu können. Ein wichtiges Ziel ist die Bestimmung korrelierter Waren u und v: Die Ware u tritt möglicherweise nicht häufig auf; wenn sie aber gekauft wird, dann sollte auch Ware v mit guter Wahrscheinlichkeit im Warenkorb auftreten. Für jede Ware u sei Su die Menge der Warenkörbe, in denen u vorkommt. Um korrelierte Waren bestimmen zu können, stellen wir uns deshalb das Ziel, alle Paarmengen {u, v} von Waren u und v zu bestimmen für die der Jaccard-Koeffizient J(Su , Sv ) hinreichend groß ist. Wir wählen wiederum zufällige Permutationen π1 , . . . , πk der Warenkörbe und definieren sketch(u) = (minπi (Su ) | 1 ≤ i ≤ k) als den Sketch der Ware u. Man verwendet wieder lineare Permutationen. Wir können Sketches in einem Datendurchlauf berechnen, wenn wir eine Sketch-Komponente zu Anfang auf ∞ setzen und für jeden neuen Warenkorb die Sketch-Komponenten der enthaltenen Waren adjustieren. Natürlich möchte man den quadratischen Aufwand im Vergleich aller Warenpaare umgehen. Das folgende Verfahren hat sich als erfolgreich herausgestellt: Angenommen, wir möchten alle Paare mit einem Jaccard-Koeffizienten von mindestens t bestimmen. Wenn J(Su , Sv ) ≥ t, dann werden Su und Sv in r fixierten Sketch-Komponenten mit Wahrscheinlichkeit mindestens tr übereinstimmen. Wir Wählen deshalb r größtmöglich, so dass kr · tr ≈ 1: Wir können einen Treffer erwarten, wenn wir die k Komponenten in kr Gruppen von jeweils r Komponenten zerlegen und Gleichheit auf mindestens einer Gruppe fordern. Wenn wir jetzt nach minπ1 , . . . , minπk hashen, dann können wir sehr viele Kandidatenpaare ausschließen; die (hoffentlich) wenigen verbleibenden Kandiadatenpaare können dann vollständig durchforstet werden. Wir lernen eine weitere Anwendung in Abschnitt 4.3.3 kennen. 3.2.2 Wann existieren ähnlichkeitsbewahrende Hashfunktionen? Wir möchten als Nächstes Kriterien entwickeln, um die Existenz von ähnlichkeitsbewahrenden Hashfunktionen nachzuweisen, bzw. ausschließen zu können. Angenommen, das Paar (X, e) besitzt eine Klasse F von ähnlichkeitsbewahrenden Hashfunktionen, besitzt (X, e) dann auch ähnlichkeitsbewahrendes Hashing mit Wertebereich {0, 1}? Die Funktionen in F mögen die Menge Y als Wertebereich besitzen. Dann wählen wir eine Klasse G von Hashfunktionen mit Wertebereich {0, 1} und der Eigenschaft, dass probg∈G [ g(y1 ) = g(y2 ) ] = 1/2, für alle y1 , y2 ∈ Y mit y1 6= y2 . 56 KAPITEL 3. HASHING FÜR WEB-ANWENDUNGEN Wir betrachten die Menge FG = {g ◦ f | g ∈ G und f ∈ F } von Hashfunktionen. Wenn x1 und x2 zwei verschiedene Elemente aus X sind, dann ist nach Annahme probf ∈F [ f (x1 ) = f (x2 ) ] = e(x1 , x2 ). Also folgt probf ∈F ,g∈G [ g(f (x1 )) = g(f (x2 )) ] = e(x1 , x2 ) + 1 − e(x1 , x2 ) 1 + e(x1 , x2 ) = 2 2 und wir haben das folgende Ergebnis erhalten: Lemma 3.6 Wenn (X, e) ähnlichkeitsbewahrende Hashfunktionen besitzt, dann besitzt (X, 1+e(x21 ,x2 ) ) ähnlichkeitsbewahrende Hashfunktionen mit Wertebereich {0, 1}. Die Klasse FG möge genau die d Hashfunktionen h1 , . . . , hd besitzen. Dann können wir die Menge X in den d-dimensionalen Würfel einbetten, wenn wir die Funktion h = (h1 , . . . , hd ) : X → {0, 1}d benutzen. Die Einbettung h hat aber noch eine interessante Eigenschaft. Für verschiedene Elemente x1 , x2 ∈ X gilt probi [ hi (x1 ) 6= hi (x2 ) ] = 1 − 1 + e(x1 , x2 ) 1 − e(x1 , x2 ) = 2 2 und damit ist der Hamming-Abstand zwischen x1 und x2 nach Einbettung in den Würfel genau d · 1−e(x21 ,x2 ) . Da die Hamming-Distanz eine Metrik ist, muss also auch d(x1 , x2 ) = 1−e(x21 ,x2 ) eine Metrik sein, die sich darüberhinaus in den Würfel einbetten lässt! Definition 3.7 Sei X eine Menge und sei d eine Metrik auf X. Wir sagen, dass d eine Hamming-Metrik ist, wenn es ein N und eine Funktion Φ : X → {0, 1}N gibt, so dass H(Φ(x), Φ(y)) = α · d(x, y) für eine Konstante α. Wir können unsere Ergebnisse jetzt wie folgt zusammenfassen: Satz 3.8 Wenn (X, e) eine endliche Menge von ähnlichkeitsbewahrenden Hashfunktionen besitzt, dann ist 1 − e eine Hamming-Metrik und insbesondere ist 1 − e eine Metrik. Ist andererseits 1−e eine Hamming-Metrik, dann gibt es eine Konstante β und β+e(x,y) besitzt β+1 ähnlichkeitsbewahrende Hashfunktionen. Beweis: Nur die zweite Aussage ist zu verifizieren. Wir wissen gemäß Beispiel 3.1, dass 1 − H/N ähnlichkeitsbewahrendes Hashing besitzt. Nach Annahme ist H(Φ(x), Φ(y)) = α · (1 − e(x, y)) und deshalb besitzt 1− H(Φ(x), Φ(y)) N (1 − e(x, y)) N − α + α · e(x, y) = N N (N − α)/α + e(x, y) β + e(x, y) = (N − α)/α + 1 β+1 = 1−α· = ähnlichkeitsbewahrendes Hashing. Beispiel 3.4 Der Überlappungskoeffizient zweier Menge A und B ist durch e(A, B) = |A ∩ B| min{|A|, |B|} 3.3. BLOOM-FILTER 57 definiert. Wir zeigen, dass e kein ähnlichkeitsbewahrendes Hashing besitzt. Wir definieren die Mengen A = {a}, B = {b} und C = {a, b} und zeigen, dass die Dreiecksungleichung (1−e(A, C))+(1−e(C, B)) ≥ (1−e(A, B)) verletzt ist. Dies ist offensichtlich, denn e(A, B) = 0 und e(A, C) = 1 = e(C, B). Auch der Dice-Koeffizient |A ∩ B| e(A, B) = (|A| + |B|)/2 besitzt kein ähnlichkeitsbewahrendes Hashing: Wir wählen A, B und C wie oben und erhalten e(A, B) = 0 und e(A, C) = 23 = e(C, B). Aufgabe 29 X sei die Menge aller Teilmengen eines Universums U . Wir betrachten das Ähnlichkeitsmaß e(A, B) = √|A∩B| . |A|·|B| Zeige, dass (X, e) kein ähnlichkeitsbewahrende Hashfunktionen besitzt. Trotzdem kann e effizient durch einen randomisierten Algorithmus ausgewertet werden. Warum? 3.3 Bloom-Filter Sei U ein Universum. Unser Ziel ist die Konstruktion einer möglichst platz-effizienten Datenstruktur, die Lookup-Anfragen beantwortet und Insert- sowie Remove-Operationen ausführt. Insbesondere werden wir darauf verzichten, Elemente abzuspeichern und sogar erlauben, dass „falsche positive“ Antworten gegeben werden, garantieren aber, dass jede negative Antwort korrekt ist. Wir arbeiten mit einem Booleschen Array der Länge m und k Hash-Funktionen h1 , . . . , hk : U → {1, . . . , m}. - Anfänglich sind alle Zellen von B auf Null gesetzt. - Ein Element x ∈ U wird eingefügt, indem das Array B nacheinander an den Stellen h1 (x), . . . , hk (x) auf Eins gesetzt wird. - Um nachzuprüfen, ob x eingefügt wurde, wird B an den Stellen h1 (x), . . . , hk (x) überprüft. Wenn B an allen Stellen den Wert 1 besitzt, dann wird die Vermutung “x wurde eingefügt” ausgegeben und ansonsten wird die definitive Ausgabe “x nicht vorhanden” getroffen. Wie groß ist die Wahrscheinlichkeit einer falschen positiven Antwort, wenn eine Menge X von n Elementen eingefügt wurde, wobei wir mit einem Booleschen Array der Größe m und k zufällig und unabhängig voneinander ausgewürfelten Hashfunktionen h1 , . . . , hk arbeiten? Angenommen, wir haben die Elemente aus X in das Array B gehasht. Wie groß ist die Wahrscheinlichkeit pn,m,k , dass B an einer Position i eine Null speichert? Eine Hashfunktion n hj wird die Position i mit Wahrscheinlichkeit ( m−1 m ) nicht treffen. Da wir annehmen, dass die Hashfunktionen unabhängig voneinander ausgewürfelt werden, folgt also pn,m,k = ( m − 1 kn 1 ) = (1 − )kn . m m Wir wenden Lemma 1.2 an und erhalten e−(kn/m)·(1/(1−1/m)) ≤ pn,m,k = (1 − 1 kn ) ≤ e−kn/m , m 58 KAPITEL 3. HASHING FÜR WEB-ANWENDUNGEN denn es ist ex/(1+x) ≤ 1 + x ≤ ex für x > −1. Die Abschätzung für pn,m,k ist scharf, falls kn und m die gleiche Größenordnung besitzen und falls m hinreichend groß ist, denn e−(kn/m)·(1/(1−1/m)) = e−(kn/m)·(1+1/(m−1)) = e−(kn/m) · e−kn/(m·(m−1)) ≈ e−(kn/m) . Nachdem alle Elemente aus X eingefügt wurden, betrachten wir die Anfrage lookup(y), wobei wir annehmen, dass y nicht zur Teilmenge X gehört. Wir müssen die Wahrscheinlichkeit qn,m,k einer falschen positiven Antwort zumindest approximativ bestimmen. Die Wahrscheinlichkeit, dass B in Position hj (y), für eine bestimmte Zahl j, 1 ≤ j ≤ k, eine Eins speichert ist 1 − (1 − 1 kn ) . m Leider können wir nicht qn,m,k = Qn,m,k für 1 kn k ) ) m folgern: Unabhängigkeit liegt nicht vor, da zum Beispiel zwei Positionen hj (y) und hk (y) übereinstimmen können. qn,m,k = (1 − (1 − Aufgabe 30 Wir vergleichen die tatsächliche Wahrscheinlichkeit qn,m,k einer falschen positiven Antwort mit der Abschätzung Qn,m,k := 1− 1 1− m kn !k . Gib ein Beispiel mit |U | = 2, n = 1 und k = m = 2 an, für das Qn,m,k < qn,m,k gilt. Die tatsächliche Wahrscheinlichkeit einer falschen positiven Antwort kann also größer als die Abschätzung Qn,m,k sein! Es stellt sich aber heraus, dass Qn,m,k eine sehr scharfe Approximation von qn,m,k ist, wenn n und m hinreichend groß sind, während k nicht zu groß ist. Gerade dieser Fall ist aber für praktische Anwendungen von Interesse. Wir verwenden deshalb die Beziehung qn,m,k ≈ Qn,m,k ohne weitere Argumentation und erhalten: 1 ≈ 1 − (1 − )kn m qn,m,k k −kn/m ) ≈ (1 − e−kn/m )k = ek·ln(1−e . Wieviele Hash-Funktionen sollten wir bei gegebener Anzahl n der gespeicherten Elemente und bei gegebener Größe m des Boole’schen Arrays benutzen, um die Wahrscheinlichkeit einer falschen positiven Antwort zu minimieren? Einerseits “sollte” k möglichst groß sein, da dann die Wahrscheinlichkeit wächst eine Null zu erwischen, aber andererseits “sollte” k möglichst klein sein, da dann eine Einfüge-Operation nur wenige neue Einsen einträgt. Wir bestimmen k so, dass g(k) = (1 − e−kn/m )k minimiert wird. Dann wird k ebenfalls die Funktion ln g(k) minimieren. Für p = e−kn/m ist m ln g(k) = −k · ln(1 − p) = − · ln(p) · ln(1 − p). n Wir erhalten deshalb ein globales Minimum für p = 12 . Die Setzung e−kn/m = auf k = ln(2) · m/n mit der Fehlerwahrscheinlichkeit qn,m,k ≈ (1 − p)k = 2−k . 1 2 führt dann 3.3. BLOOM-FILTER 59 Lemma 3.9 Wenn wir k = ln(2)·m/n Hashfunktionen verwenden, um eine Menge der Größe n durch ein Boole’sches Array der Größe m zu repräsentieren, dann ist die Wahrscheinlichkeit einer falschen positiven Antwort höchstens 2−k . Die Laufzeit einer Insert- oder Lookup-Operation ist durch O(k) und die Speicherplatzkomplexität ist durch O(n) beschränkt. Bloom-Filter erreichen also eine Fehlerwahrscheinlichkeit von höchstens 2−k für k = ln(2)·m/n k·n und damit für m = ln(2) . Insbesondere erreichen Bloom Filter eine Fehlerwahrscheinlichkeit von höchstens 1/128 mit einem Booleschen Array mit gut 10 · n Einträgen, bzw eine Fehlerwahrscheinlichkeit von höchstens n1r mit Arrays der Größe Θ(r · n log2 n). Wir haben bisher die Insert- und Lookup-Operationen für Bloom-Filter implementiert, aber die Implementierung einer Delete-Operation ist schwieriger: Wenn wir das Array B an den Positionen h1 (x), . . . , hk (x) auf Null setzen und wenn {h1 (x), . . . , hk (x)}∩{h1 (y), . . . , hk (y)} = 6 ∅, dann wird auch y entfernt! Hier hilft ein zählender Bloom-Filter: Statt einem Boole’schen Array wird ein Array von Zählern benutzt und Elemente werden durch das Hochsetzen (bzw. Heruntersetzen) der entsprechenden Zähler eingefügt (bzw. entfernt). Aufgabe 31 Eine n-elementige Menge S ⊆ U sei durch einen zählenden Bloom-Filter Z mit m Zählern und k Hashfunktionen h1 , . . . , hk : U → {1, . . . , m} repräsentiert. Wir nehmen an, dass das Heruntersetzen der entsprechenden Zähler bei der Entfernung eines Elements x nur dann geschieht, wenn Z[hi (x)] 6= 0 für alle i = 1, . . . , k gilt. Sei p+ (bzw. p− ) die Wahrscheinlichkeit einer falschen positiven (bzw. negativen) Antwort. (a) Verkleinern oder vergrößern sich die Wahrscheinlichkeiten p+ und p− , wenn wir ein Element x ∈ S entfernen? (b) Angenommen, N Elemente x ∈ U werden aus dem Filter entfernt, wobei wir jetzt auch zulassen, falsche Positive zu entfernen. Sei p0+ die Wahrscheinlichkeit einer falschen positiven Antwort und p0− die Wahrscheinlichkeit einer falschen negativen Antwort in diesem neuen Modell. Zeige, dass dann p0+ ≤ p+ , p0− ≤ N p+ gilt. Die Vereinigung von zwei Mengen X1 und X2 kann einfach implementiert werden: Wenn Xi durch Bi repräsentiert wird, dann repräsentiert B1 ∨ B2 die Vereinigung X = X1 ∪ X2 . Für die Berechnung des Durchschnitts könnten wir ähnlich vorgehen und X = X1 ∩ X2 durch B1 ∧ B2 repräsentieren, aber beachte, dass B1 ∧ B2 eine möglicherweise echte “Obermenge” der Bloom-Filter Einfügungen für X ist und dementsprechend nimmt die Wahrscheinlichkeit falscher Positive zu. Bemerkung 3.1 Tatsächlich können wir Bloom-Filter bereits mit zwei Hashfunktionen g1 , g2 : U → {0, . . . , p − 1} für eine Primzahl p implementieren, wenn wir eine geringfügig anwachsende Fehlerwahrscheinlichkeit tolerieren. Dazu setzen wir m = k · p und definieren die k Hashfunktionen h1 , . . . , hk durch hi (x) = (i − 1) · p + (g1 (x) + (i − 1) · g2 (x) mod p) . Wir beachten, dass hi (x) = hi (y) für alle i genau dann eintritt, wenn g1 (x) = h1 (x) = h1 (y) = g1 (y) und g2 (x) = g2 (y), und wir haben die Schwäche dieses Ansatzes herausgefunden: Wenn wir eine Menge X = {x1 , . . . , xn } von n Elementen aufgebaut haben, dann gilt für y 6∈ X prob[∃j : h1 (y) = h1 (xj ) ∧ · · · ∧ hk (y) = hk (xj )] ≤ n p2 und diese Fehlerwahrscheinlichkeit lässt sich nicht mit wachsendem k absenken! Aber in praktischen Anwendungen wird man p ≈ n wählen und wir erhalten die relativ kleine Fehlerwahrscheinlichkeit von ungefähr 1/n. Aber y kann auch falsch positiv sein, wenn es zu jedem i ein 60 KAPITEL 3. HASHING FÜR WEB-ANWENDUNGEN j mit hi (y) = hi (xj ) gibt und y mit jedem xj höchstens eine gemeinsame Hashzelle besitzt. In diesem Fall kann aber gezeigt werden, dass die Fehlerwahrscheinlichkeit wiederum durch (1 − e−kn/m )k abgeschätzt werden kann! Der Vorteil des neuen Schemas ist die schnellere Berechnung der k Hashfunktionen. Aufgabe 32 Wir zerlegen die m Positionen von B in k Gruppen von jeweils m/k Positionen und würfeln dann Hashfunktionen h1 , . . . , hk ∈ H(U, m/k) zufällig aus, wobei hi für die ite Gruppe von Positionen zuständig ist. Bestimme die Wahrscheinlichkeit p, dass B an einer zufällig ausgewählten Position eine Null speichert. Sinkt oder steigt die Wahrscheinlichkeit einer falschen positiven Antwort im Vergleich zum konventionellen Ansatz? 3.3.1 Anwendungen Verteiltes Caching: In Web Cache Sharing speichern mehrere Proxies Webseiten in ihren Caches und kooperieren, um zwischengespeicherte Webseiten abzurufen: Bei Nachfrage nach einer bestimmten Seite ermittelt der zuständige Proxy, ob ein Cache eines anderen Proxies die nachgefragte Seite enthält und bittet diesen Proxy um Lieferung. In diesem Szenario liegt die Benutzung von Bloom-Filtern nahe. Jeder Proxy speichert in einem Bloom-Filter ab, welche Seiten zwischengespeichert wurden und sendet in regelmäßigen Abständen seinen aktualisierten Bloom-Filter an alle Kollegen. Natürlich ist es möglich, dass ein Proxy aufgrund des Phänomens falscher Positiver vergebens kontaktiert wird und die Laufzeit erhöht sich in diesem Fall. Allerdings entstehen falsche Positive wie auch falsche Negative bereits durch die Auslagerung von Seiten während eines Aktualisierungszyklus und die Fehler des Bloom-Filters erscheinen durch die Verringerung des Netzwerk-Verkehrs mehr als amortisiert. Peer-to-Peer Netzwerke: Im Synchronisierungsproblem besitzen die Knoten X eines Netzwerks Mengen SX von Objekten. Jeder Knoten X versucht, alle Objekte zu erfahren, die zu den Mengen seiner Nachbarn, aber nicht zu seiner Menge SX gehören. Um dies zu erreichen schickt X den Bloom-Filter der Menge X an jeden seiner Nachbarn; Nachbar Y antwortet mit der unkodierten Menge SY \ SX . Es werden nur tatsächlich benötigte Objekte versandt, aber falsche Positive im Bloom-Filter von SX führen dazu, dass einige Objekte in SY \ SX nicht erkannt werden. Aggressive Flüsse im Internet Routing: Die Ermittlung aggressiver Flüsse, also die Ermittlung von Start-Ziel Verbindungen, die Datenstaus durch den Transfer von besonders vielen Paketen verschärfen oder sogar verursachen, ist ein wichtiges Problem in der Internet Verkehrskontrolle. Um aggressiven Flüssen auf die Schliche zu kommen, repräsentiert ein Router die Menge aller Start-Ziel Paare, deren Pakete er befördert, durch einen zählenden Bloom-Filter. Insbesondere werden für eine Start-Ziel Verbindung x die Zähler aller Positionen h1 (x), . . . , hk (x) inkrementiert. Überschreitet der minimale der k Werte einen vorgegebenen Schwellenwert T , dann wird x als “möglicherweise” aggressiv gebrandmarkt. Beachte, dass alle aggressiven Flüsse erkannt werden; allerdings ist es nicht ausgeschlossen, dass auch unschuldige Flüsse als aggressiv eingeschätzt werden. Wir kommen auf dieses Verfahrens in Abschnitt 4.3.2 zurück. Aufgabe 33 Wir nehmen an, dass eine Menge F von n Flüssen in einen Bloom-Filter mit m Zählern Z[i], i = 1, . . . , m eingefügt wird. Angenommen, vx Pakete eines Start-Ziel Paares x ∈ F durchlaufen unseren Router. (a) Was ist der Zusammenhang zwischen prob [min {Z[h1 (x)], . . . , Z[hk (x)]} > vx ] und der Wahrscheinlichkeit p+ einer falschen positiven Antwort? 3.4. ZUSAMMENFASSUNG 61 (b) Tatsächlich können wir unseren Ansatz für Anwendungen in der Praxis noch verbessern. Wie sollte eine Modifikation aussehen, die Überschätzungen der Vielfachheiten vx für x ∈ F erschwert? Insbesondere, wenn vx0 die Abschätzung unseres Verfahrens ist, und wenn vx00 die Abschätzung deines neuen Verfahrens ist, dann sollte stets vx ≤ vx00 ≤ vx0 gelten und die Ungleichung vx00 < vx0 sollte in einigen Fällen auftreten können. Hier genügt eine kurze Antwort. IP-Traceback: Hier nehmen wir an, dass ein Router durch eine Paketflut angegriffen wird. Unser Ziel ist die Bestimmung aller Wege, über die das Opfer angegriffen wird. In unserer Lösung protokolliert ein Router jedes transportierte Paket in einem Bloom-Filter. Ein angreifendes Paket kann jetzt vom Opfer an alle Nachbarn weitergereicht werden. Der Nachbar, der das Paket befördert hat, wird dies erkennen, wobei aber falsche Positive dazu führen, dass Nachbarn fälschlicherweise annehmen, am Transport beteiligt gewesen zu sein. Wird dieser Rekonstruktionsprozess iteriert, dann sollten diese falschen Verzweigungen aber, bei entsprechend kleiner Wahrscheinlichkeit für falsche Positive, hochwahrscheinlich aussterben. Wir beschreiben eine zweite Methode des IP-Tracebacks in Abschnitt 9. 3.4 Zusammenfassung Wir haben mit DHT’s (distributed hash tables) als einer fundamentalen Datenstruktur für Peer-to-Peer Systeme begonnen und haben die Implementierung CHORD besprochen. Die wesentliche Idee hinter CHORD ist die Verwendung konsistenter Hashfunktionen h : R∪D → [0, 1] für Rechner aus der Menge R aller Rechner und Dokumente aus der Menge D aller Dokumente. Die gemeinsame Hashfunktion sichert hochwahrscheinlich eine gleichmäßige Belastung der beteiligten Rechner und eine logarithmische Suchzeit ist selbst dann hochwahrscheinlich, wenn Rechner zwischenzeitlich kommen und gehen. CHORD ist eine zufriedenstellende Lösung für gutartige Peers, aber kryptographische Methoden müssen im Fall bösartiger Peers hinzugezogen werden. Für die approximative Auswertung bestimmter Ähnlichkeitsmaße haben wir ähnlichkeitsbewahrendes Hashing angewandt und dabei vor allem das Ähnlichkeitsmaß von Jaccard betont. Ähnlichkeitsbewahrendes Hashing ist eine fundamentale algorithmische Methode, um alle „hinreichend ähnlichen“ Paare aus einer Menge X von Dokumenten zu bestimmen: Nach zufälliger Wahl von k Hashfunktionen h1 , . . . , hk wird jedes Dokument D ∈ X k-mal gehasht und erhält eine kurze Signatur (h1 (D), . . . , hk (D)). Ähnliche Dokumente werden dann auch hochwahrscheinlich ähnliche Signaturen besitzen und wir haben die Ähnlichkeit langer Objekte auf die Ähnlichkeit kurzer Objekte reduziert. Bloom-Filter erlauben eine äußerst speicherplatz-effiziente Darstellung von Mengen durch Boole’sche Arrays. Beteiligt sind wiederum k Hash-Funktionen h1 , . . . , hk , die beim Einfügen eines Elements x das Boole’sche Array an den Stellen h1 (x), . . . , hk (x) auf Eins setzen. Während negative Antworten bei einer Suche nach einem Element stets richtig sind, können positive Antworten falsch sein. Wir haben festgestellt, dass die Wahrscheinlichkeit falscher positiver Antworten bei n gespeicherten Elementen und einem Boole’schen Array der Länge k·n m höchstens 2−k beträgt, wenn m = ln(2) gilt. 62 KAPITEL 3. HASHING FÜR WEB-ANWENDUNGEN Kapitel 4 Streaming Data Abhängig von der Größe der Datenmengen werden verschiedene Speichermodelle benutzt: - Im Hauptspeichermodell wird angenommen, dass der Hauptspeicher für die Berechnung ausreichend ist. - Im Sekundärspeichermodell sind die Daten zum Beispiel auf der Platte zu speichern. Jetzt ist die Suchzeit (von ungefähr 4 ms) die teure Ressource und dementsprechend ist die Anzahl der Plattenzugriffe zu minimieren. - Das Streaming-Data Modell beschreibt ein On-line Szenario: Daten strömen fortlaufend ein und Berechnungen sind in Echtzeit, bzw in wenigen Datendurchläufen zu erbringen. Beispiele sind Verkehrsmessungen im Internet, die Datenanalyse in der Abwehr einer Denial-of-Service Attacke, die Verarbeitung von durch Satelliten erfassten Daten oder die fortlaufende Protokollierung von Telefonverbindungen durch weltweit agierende Telefonunternehmen und die damit verbundenen Reaktionen auf überlastete Leitungen. Im Streaming Data Modell erhalten wir einen Datenstrom (xi | i ), wobei jedes xi zu dem Universum U = {1, . . . , m} der Größe m gehört: Gewaltige Datenmengen sind schnellstmöglich zu bewältigen, wobei im Regelfall nur ein Datendurchlauf zur Verfügung steht. Wir werden uns nun mit den folgenden algorithmischen Fragestellungen beschäftigen: Erstellung von Stichproben: Stichproben reduzieren die Größe der Datenmenge und sind deshalb ein wichtiges Hilfsmittel für viele einfache Probleme. Beachte, dass eine Stichproben nicht ein und für alle Mal bestimmt werden kann, sondern sich mit dem Datenstrom dynamisch ändern muss. Häufigkeitsanalyse für Datenströme: au = | {i | xi = u} | ist die Häufigkeit des Schlüssels u. Wir beschäftigen uns mit der exakten oder approximativen Bestimmung des kten Häufigkeitsmoments X Hk = aku . u∈U H0 ist die Anzahl der verschiedenen Schlüssel, denn es ist x0 = 1 für x 6= 0 und x0 = 0 sonst. Das zweite Häufigkeitsmoment H2 misst wie gleichmäßig die Datenmenge auf die einzelnen 2 n 2 Schlüssel verteilt ist: Es ist m · m = nm ≤ H2 ≤ n2 und kleine Werte von H2 implizieren eine gleichmäßige Verteilung. Wir sind ebenfalls an der Bestimmung seltener und häufiger Schlüssel interessiert. 63 64 KAPITEL 4. STREAMING DATA Zeitfenster: Um das Verhalten eines Datenstroms in der jüngsten Vergangenheit bestimmen zu können, wertet man Datenströme in Zeitfenstern aus. Bei entsprechend großen Zeitfenstern ist die Abspeicherung des Datenstroms nicht möglich und wir müssen Methoden entwickeln, um die quantitative Analyse nach dem Verschwinden veralteter und dem Erscheinen junger Schlüssel zu aktualisieren. Bestimmung von Histogrammen: Ein Histogramm komprimiert den Datenstrom und bestimmt die charakteristischen numerischen Werte innerhalb weniger Zeitintervalle. Aufgabe 34 (a) Die Zahlen 1, . . . , n werden in einer vorher nicht bekannten Permutation ausgegeben. Allerdings fehlt genau eine der Zahlen. Bestimme die fehlende Zahl mit Speicherplatz O(log2 n). (b) Wie in Teil (a) werden die Zahlen 1, . . . , n wieder permutiert, allerdings fehlen diesmal genau k Zahlen. Bestimme die fehlenden Zahlen mit Speicherplatz O(log2 n). 4.1 Stichproben Unser Ziel ist die Auswahl einer relativ kleinen Stichprobe aus einem Datenstrom (xi | i), und wir stellen die Berechnung einer ohne Ersetzung gleichverteilt gezogenen Stichprobe S ⊆ { (i, xi ) | 1 ≤ i ≤ n } vor. Natürlich ist die Hoffnung, dass statistische Anfragen direkt auf der sehr viel kleineren Stichprobe beantwortet werden können. Algorithmus 4.1 Reservoir Sampling (1) T sei eine obere Schranke für die Größe der Stichprobe. Der Parameter t zählt die bisher gesehenen Schlüssel; setze t = 0 und STICHPROBE= ∅. (2) Durchlaufe die Schlüssel nacheinander: (2a) Setze t = t + 1. (2b) Wenn t ≤ T , dann füge den Schlüssel in STICHPROBE ein. (2c) Wenn t > T , dann werfe eine Münze mit Erfolgswahrscheinlichkeit Tt . Bei einem Erfolg bestimme zufällig einen Schlüssel aus STICHPROBE und entferne den Schlüssel; der aktuelle Schlüssel wird eingefügt. Bei einem Misserfolg wird nichts unternommen. Kommentar: Die Stichprobengröße T bleibt unverändert. Satz 4.2 Zu jedem Zeitpunkt t ≥ T wird jede T -elementige Teilmenge X ⊆ {(i, xi ) | 1 ≤ i ≤ t} mit Wahrscheinlichkeit 1/ Tt als Stichprobe gewählt. Beweis: Wir führen eine Induktion nach t. Die Aussage ist offenbar für t = T richtig. Wir nehmen an, dass die Aussage für t − 1 richtig ist. Der Schlüssel (t, xt ) wird dann mit Wahrscheinlichkeit Tt aufgenommen und das ist genau die Wahrscheinlichkeit, dass eine zufällige T -elementige Teilmenge X ⊆ {(i, xi ) | 1 ≤ i ≤ t} den Schlüssel (t, xt ) enthält, denn ! t−1 t / T −1 T ! = T . t Wir können also eine T -elementige Stichprobe nach dem folgenden Verfahren ziehen: 4.1. STICHPROBEN 65 - Entscheide zuerst mit Erfolgswahrscheinlichkeit T t, ob (t, xt ) gewählt wird. - Wenn (t, xt ) nicht gewählt wird, dann wähle eine zufällige, T -elementige Stichprobe aus der Menge {(i, xi ) | 1 ≤ i ≤ t − 1}. - Wenn (t, xt ) gewählt wird, dann wähle eine zufällige Stichprobe mit T − 1 Elementen aus der Menge {(i, xi ) | 1 ≤ i ≤ t − 1}. Genau dieses Verfahren führt Algorithmus 4.1 durch, da zuerst mit Wahrscheinlichkeit Tt entschieden wird, ob (t, xt ) aufzunehmen ist. Wird (t, xt ) nicht aufgenommen, dann wenden wir die Induktionsvoraussetzung an und erhalten, dass eine zufällige T -elementige Stichprobe aus {(i, xi ) | 1 ≤ i ≤ t − 1} gezogen wurde. Ansonsten wird (t, xt ) aufgenommen und wir betrachten die alte Stichprobe X, von der wir induktiv annehmen können, dass sie einer zufälligen T -elementigen Teilmenge von {(i, xi ) | 1 ≤ i ≤ t − 1} entspricht. Algorithmus 4.1 entfernt ein zufälliges Element aus X und erhält damit eine zufällige Stichprobe aus {(i, xi ) | 1 ≤ i ≤ t − 1} mit T − 1 Elementen. Diese modifizierte Stichprobe wird um (t, xt ) vergrößert und wir erhalten eine zufällige T -elementige Stichprobe X. Wir können also das mächtige Hilfsmittel der Berechnung auf Stichproben im Streaming Data Modell benutzen! Als eine erste Anwendung betrachten wir die Bestimmung eines approximativen Medians in einem Datendurchlauf. Algorithmus 4.3 Bestimmung eines approximativen Medians. (1) Benutze Reservoir Sampling, um eine Stichprobe S der Größe s zu ziehen. (2) Bestimme den Median M von S und gib M als Approximation des tatsächlichen Medians aus. Satz 4.4 δ, ε ∈ [0, 1] seien vorgegeben. Wenn Algorithmus 4.3 mit einer Stichprobe der Größe s = c · ε12 · ln 1δ für ein hinreichend großes c arbeitet, dann liegt der Rang des ausgegebenen Schlüssels mit Wahrscheinlichkeit mindestens 1 − δ in dem Intervall [ n2 − ε · n, n2 + ε · n]. Beweis: Sei xunten (bzw. xoben ) der Schlüssel des Datenstroms vom Rang ( 12 −ε)·n (bzw. vom Rang ( 12 + ε) · n). Wir haben nur dann Pech gehabt, wenn 50% aller Schlüssel der Stichprobe unterhalb von xunten (bzw. oberhalb von xoben ) liegen. Ein Schlüssel kleiner als xunten wird mit Wahrscheinlichkeit ( 21 − ε) gezogen und die erwartete Anzahl dieser „kleinen” Schlüssel ist deshalb höchstens ( 12 − ε) · s. Wir haben also Pech, ε ) kleine Schlüssel gezogen werden. Wir wenden wenn sogar 21 · s = ( 12 − ε) · s · (1 + 1/2−ε 2 die Chernoff-Schranke an und erhalten die Wahrscheinlichkeit e−Ω(ε ·s) als obere Schranke. Um die Fehlerwahrscheinlichkeit auf höchstens δ zu beschränken, ist also ε2 · s = Ω(ln 1δ ) zu fordern. Die Behauptung folgt, da die Anzahl der „großen” Schlüssel ein analoges Verhalten zeigt. Die zweite Anwendung betrifft ein Clustering Problem, nämlich das k-Zentren Problem. Hier ist ein vollständiger ungerichteter Graph G = (V, E) und eine Metrik1 d gegeben. Für ein fixiertes k ist eine Menge Z ⊆ V von k Knoten zu bestimmen, so dass max min d(v, w) v∈V w∈Z 1 d : V 2 → R≥0 ist eine Metrik, falls d(u, v) = d(v, u), d(u, v) = 0 gdw. u = v und d(u, v) + d(v, w) ≥ d(u, w). 66 KAPITEL 4. STREAMING DATA kleinstmöglich ist. Hier wird also nach dem größten Abstand eines Punktes vom nächstliegenden Cluster-Zentrum gefragt. Die Sprachenversion des k-Zentren Problems ist N P -vollständig und deshalb wird uns nur eine approximative Lösung gelingen. Algorithmus 4.5 Clustering auf einer Stichprobe (1) Die Zahl k der erlaubten Cluster-Zentren ist gegeben ebenso wie die Metrik d. Die Folge (xj | j) bezeichne den Datenstrom. (2) Benutze Reservoir Sampling, um eine Stichprobe S der Größe s zu ziehen. (3) Setze Z = {xj } für einen beliebigen Schlüssel xj ∈ S. Wiederhole k − 1 mal: Bestimme einen Schlüssel xi ∈ S, dessen minimaler Abstand zu einem Schlüssel in Z größtmöglich ist. Füge xi in die Menge Z ein. (4) Z wird als Menge der Cluster-Zentren ausgegeben. Wir zeigen zuerst, dass unsere Wahl für Z auf der Stichprobe 2-approximativ ist. Dann müssen wir Z auf dem Datenstrom auswerten. Angenommen die optimale Cluster-Lösung auf dem Datenstrom besitzt den Radius2 opt. Wenn es einen Punkt p ∈ S gibt, der einen Abstand von größer als 2 · opt zu allen Punkten in Z besitzt, dann haben gemäß Konstruktion von Z je zwei Punkte in Z ∪ {p} einen Abstand von größer als 2 · opt. Also gehören die Punkte aus Z ∪ {p} zu verschiedenen Clustern der optimalen Lösung: Wenn ein Clusterpunkt y der optimalen Lösung nächstliegender Punkt für zwei Elemente u, v ∈ Z ∪ {p} ist, dann ist d(u, v) ≤ d(u, y) + d(y, v) ≤ 2·opt. Aber die optimale Lösung besitzt nur k Cluster und wir haben einen Widerspruch erhalten: Schritt (3) berechnet eine Menge Z von Zentren mit maxv∈S minw∈Z d(v, w) ≤ 2 · opt. Wir behaupten, dass Algorithmus 4.5 dieselbe Approximationsleistung auf dem vollständigen Datenstrom erzielt, wenn wir eine kleine Menge von Punkten ausschließen dürfen. Satz 4.6 Ein Datenstrom der Länge n sei gegeben. Wenn wir eine Stichprobe der Größe k·ln n+ln( 1 ) δ s= wählen, dann ist Algorithmus 4.5 mit Wahrscheinlichkeit mindestens 1 − δ auf ε einer Teilmenge der Größe (1 − ε) · n 2-approximativ. Beweis: Sei opt der optimale Radius. Sei Z eine beliebige, aber „schlechte“ Zentrenmenge: Die Menge Weitweg(Z) = {xi | d(xi , Z) > 2 · opt}, also die Menge aller Punkte mit einem Abstand von mehr als 2 · opt von ihrem nächstliegenden Zentrum in Z, habe mehr als ε · n Elemente. Wir zeigen zuerst, dass die Stichprobe S nur mit einer Wahrscheinlichkeit von höchstens δ/ nk die Menge Weitweg(Z) nicht trifft. (1 − ε)n s ) = (1 − ε)s n 1 ≤ e−ε·s = e−(k·ln n+ln( δ )) = δ · n−k ! n ≤ δ/ . k prob[ S ∩ Weitweg(Z) = ∅ ] ≤ ( 2 Der Radius ist der längste Abstand eines Datenpunkts von einem Zentrum. 4.1. STICHPROBEN 67 Wenn Weitweg(Z) getroffen wird, dann kann Algorithmus 4.5 die schlechte Zentrenmenge Z nicht gewählt haben, denn sonst hätten wir einen Punkt in S gefunden, der einen Abstand von mehr als 2 · opt von Z besitzt und das haben wir oben ausgeschlossen.Die Wahrscheinlichkeit irgendeine schlechte Zentrenmenge zu wählen, ist somit höchstens nk · δ/ nk = δ. Also wird Algorithmus 4.5 mit Wahrscheinlichkeit mindestens 1 − δ eine gute Zentrenmenge Z, also eine Menge Z mit |Weitweg(Z)| ≤ ε · n, bestimmen und das war zu zeigen. Aufgabe 35 Wir zeigen, dass der Stichprobenansatz eine 2-approximative Lösung nur nach Ausschluss von Punkten erreicht. Insbesondere sei sn = o(n), δ eine Konstante mit 0 < δ < 1 und k eine natürliche Zahl. Konstruiere eine Instanz (In ) für das k-Zentren Problem, die aus n Punkten der Ebene R2 besteht. Weise nach, dass für genügend großes n Algorithmus 4.5, angewandt auf eine Stichprobe der Größe sn , mit Wahrscheinlichkeit mindestens δ keine 2-approximative Lösung für In liefert. Allerdings ist der Stichprobenansatz selbst für relativ einfache Probleme kein Allheilmittel, denn wir zeigen jetzt, dass der Stichprobenansatz bereits für die approximative Bestimmung der Anzahl verschiedener Schlüssel scheitert. Unser negatives Resultat gilt für eine sehr große Klasse von (deterministischen oder probabilistischen) Algorithmen zur StichprobenErstellung, nämlich für alle Algorithmen, die nur r << n Schlüssel inspizieren. Beachte, dass Algorithmus 4.1 nur die in der Stichprobe gesammelten Schlüssel inspizieren kann, denn die Werte der ausgelassenen Schlüssel bleiben unbekannt. Damit wird unser negatives Ergebnis auch für Algorithmus 4.1 gelten. Insbesondere zeigen wir, dass es schwierig ist, die beiden folgenden Szenarien voneinander zu unterscheiden. Szenario 1 besteht aus der nur mit Einsen besetzten Folge. Szenario 2 besteht aus allen Folgen, für die jedes i ∈ {2, . . . , k} genau einmal auftritt. Alle restlichen Folgenelemente haben den Wert 1. Unser Ziel ist der Nachweis, dass Stichproben, die nur den Schlüsselwert 1 besitzen, eine relativ hohe Wahrscheinlichkeit haben. Dazu nehmen wir an, dass irgendein Algorithmus r < n Schlüssel (möglicherweise sogar nur deterministisch) inspiziert. Lemma 4.7 Sei A ein Algorithmus und sei Xi die Zufallsvariable, die den iten von A ausgewählten Schlüssel als Wert besitzt. Dann gilt prob[ Xi = 1 | X1 = X2 = · · · = Xi−1 = 1 ] = n−i−k+1 , n−i+1 wenn nur Eingaben des Szenarios 2 auftreten. Beweis: Wir müssen Szenario 2 betrachten und dort den Fall, dass die ersten i−1 inspizierten Schlüssel sämtlich den Wert 1 besitzen. Von den n − k Schlüsseln mit Wert 1 verbleiben somit n − k − (i − 1) noch nicht inspizierte Schlüssel mit Wert 1. Da insgesamt n − (i − 1) Schlüssel noch nicht inspiziert wurden, folgt die Behauptung. Sei I das Ereignis, dass alle r inspizierten Schlüssel den Wert 1 besitzen. Wie wahrscheinlich ist I? prob[ I ] = Πri=1 prob[ Xi = 1 | X1 = X2 = · · · = Xi−1 = 1 ] n−i−k+1 = Πri=1 n−i+1 68 KAPITEL 4. STREAMING DATA n−r−k r n−r r 2·k·r k = 1− ≥ e− n−r n−r ≥ falls k n−r ≤ 12 , denn wir haben in der letzten Ungleichung benutzt, dass 1 − z ≥ e−2·z für 0 ≤ z ≤ k 1 setzen k = n−r 2·r · ln(2) und erhalten n−r ≤ 2 für r ≥ 2 und damit prob[ I ] ≥ 1/2. Satz 4.8 Es gelte k = inspiziert. n−r 2·r 1 2 gilt. Wir · ln(2) sowie r ≥ 2. Sei A ein Algorithmus, der nur r Schlüssel (a) A wird im Szenario 2 mit Wahrscheinlichkeit mindestens 1/2 eine Stichprobe bestimmen, die nur aus dem Wert 1 besteht. (b) A wird die tatsächliche Anzahl verschiedener Schlüssel mit Wahrscheinlichkeit mindestens 1/2 im Szenario 1 oder im Szenario 2 um den Faktor √ r k= n−r · ln(2) 2·r über- bzw. unterschätzen. Beweis: (a) haben wir bereits gezeigt. (b) folgt direkt aus (a), wenn wir beachten, dass das Szenario 1 genau einen Schlüssel und Szenario 2 genau k + 1 Schlüssel besitzt. Nach Teil (a) kann Algorithmus A aber mit Wahrscheinlichkeit e−1 nicht zwischen den Szenarien √ beiden √ unterscheiden und deshalb wird ein Szenario um den Faktor mindestens k + 1 ≥ k falsch eingeschätzt. 4.2 Häufigkeitsmomente Wir beginnen mit negativen Ergebnissen und zeigen, dass die Kommunikationskomplexität für die Berechnung der Häufigkeitsmomente gute untere Schranken für die Speicherplatzkomplexität im Streaming-Data Modell liefert. 4.2.1 Streaming-Data und Kommunikation Wir stellen zuerst das 2-Parteien Kommunikationsmodell vor. Zwei Parteien, Alice und Bob, besitzen Eingaben x bzw. y, wobei weder Alice noch Bob die Eingabe des Partners kennt. Im Einweg-Modus schickt Alice eine Nachricht message(x) an Bob, und Bob muss das Ergebnis nur in Abhängigkeit von seiner Eingabe y und der von Alice geschickten Nachricht berechnen. Da wir an dieser Stelle vor Allem an negativen Ergebnissen interessiert sind, nehmen wir an, dass Alice und Bob, im Rahmen der ihnen zur Verfügung stehenden Informationen, eine unbeschränkte Rechenkraft besitzen: Negative Aussagen über das 2-Parteien Kommunikationsmodell sind damit umso stärker. Deterministische oder probabilistische Protokolle bestimmen die von Alice geschickte Nachricht und definieren die von Bob zu berechnende Antwort. Das Ziel ist die (zumindest approximative) Berechnung einer Funktion f (x, y), wobei die Länge der längsten von Alice geschickten Nachricht zu minimieren ist. 4.2. HÄUFIGKEITSMOMENTE 69 Definition 4.9 Seien A und B Mengen von Eingaben und sei f : A × B → R mit relativem Fehler höchstens ε zu berechnen. (a) In einem deterministischen Protokoll erhält Alice eine Eingabe x ∈ A und Bob eine Eingabe y ∈ B. Das deterministische Protokoll heißt genau dann ε-approximativ, wenn Bob für jedes Eingabepaar (x, y) ein Ergebnis a(x, y) mit (1 − ε) · f (x, y) ≤ a(x, y) ≤ (1 + ε) · f (x, y) berechnet. (b) Wir definieren die deterministische Kommunikationskomplexität einer ε-approximativen Berechnung von f durch C ε (f ) = die Länge der längsten Nachricht eines besten ε-approximativen deterministischen Protokolls für f . (c) Ein probabilistisches Protokoll heißt genau dann ε-approximativ mit Fehler δ, wenn Bob für jedes Eingabepaar (x, y) mit Wahrscheinlichkeit mindestens 1 − δ ein Ergebnis a(x, y) mit (1 − ε) · f (x, y) ≤ a(x, y) ≤ (1 + ε) · f (x, y) berechnet. (d) Wir definieren die probabilistische Kommunikationskomplexität einer ε-approximativen Berechnung von f durch Cδε (f ) = die Länge der längsten Nachricht eines besten ε-approximativen probabilistischen Protokolls, das f mit Fehler δ berechnet. Aufgabe 36 1 x=y zu 0 sonst berechnen. Zeige, dass C ε (idn ) = n gilt, falls ε < 21 . (Hinweis: Was passiert, wenn dieselbe Nachricht für zwei verschiedene Eingaben von Alice verschickt werden?) 0 (idn ) = O(log2 n). (Hinweis: Interpretiere Probabilistische Protokolle sind sehr viel effizienter, denn es gilt C1/3 die beiden Strings x und y als Zahlen. Was passiert, wenn wir Gleichheitstests modulo kleiner Primzahlen durchführen?) Im Identitätsproblem ist die Funktion idn : {0, 1}n × {0, 1}n → {0, 1} mit idn (x, y) = Wenn eine Funktion f : {0, 1}∗ → R im Streaming-Data Modell zu berechnen ist, dann definieren wir fn als die Einschränkung von f auf Eingaben der Länge n. Für jede Eingabe x erhält Alice den Präfix und Bob den Suffix von x als Eingabe der jeweiligen Länge n2 . Wir werden sehen, dass die Kommunikationskomplexität im Allgemeinen gute untere Schranken für die Speicherplatzkomplexität im Streaming-Data Modell ergibt. Lemma 4.10 Die Funktion fn sei zu berechnen. (a) Jeder deterministische Algorithmus, der f ε-approximativ mit b Befehlen berechnet, benötigt mindestens die Speicherkomplexität C ε (fn ) − O(dlog2 be). (b) Jeder probabilistische Algorithmus, der f ε-approximativ mit Fehler δ und b Befehlen berechnet, benötigt mindestens die Speicherkomplexität Cδε (fn ) − O(dlog2 be). Beweis: Da die Beweise für (a) und (b) fast identisch sind, zeigen wir nur Teil (b). Sei A ein probabilistischer Algorithmus, der f im Streaming-Data Modell ε-approximativ mit Fehler δ berechnet. A möge die Speicherkomplexität höchstens s(n) für Eingaben der Länge n besitzen. 70 KAPITEL 4. STREAMING DATA Es genügt, wenn wir ein probabilistisches Protokoll für fn entwerfen, das Nachrichten der Länge höchstens s(n) + O(1) verschickt. Das Protokoll simuliert Algorithmus A auf Eingabefolgen der Länge n, wobei wir annehmen, dass Alice die ersten n/2 Bits und Bob die letzten n/2 Bits erhält. Alice bearbeitet ihre Eingabe mit Algorithmus A und verschickt dann die entstehende Konfiguration (Speicherinhalt und nächster auszuführender Befehl) an Bob. Bob kann damit die Berechnung von A problemlos fortsetzen. Da der Algorithmus die Funktion ε-approximativ mit Fehler höchstens δ berechnet, hat das simulierende Protokoll dieselbe Eigenschaft. Wenn Algorithmus A also b Befehle besitzt, dann folgt s(n) + O(dlog2 be) ≥ Cδε (fn ) und die Behauptung ist gezeigt. Aufgabe 37 Warum können wir in Satz 4.10 nicht s(n) + dlog2 be ≥ Cδε (fn ) folgern? Fakt 4.1 Im Disjunktheitsproblem der Größe m erhalten Alice und Bob Inzidenzvektoren der Teilmengen x, y ⊆ {1, . . . , m}. Die Funktion Dm sei durch ( Dm (x, y) = 1 x∩y =∅ 0 sonst definiert. Dann gilt Cδε (Dm ) = Ω(m) für jedes ε < 1 2 und jedes δ < 12 . Leider erhalten wir als eine erste Konsequenz eine hohe Speicherkomplexität, wenn die größte Häufigkeit eines Schlüssels zu berechnen ist. Satz 4.11 Seien ε, δ < 12 beliebig und sei A ein probabilistischer Algorithmus, der die größte Häufigkeit ε-approximativ mit Fehler höchstens δ im Streaming-Data-Modell berechnet. Dann benötigt A Speicherkomplexität Ω(m), wobei m die Anzahl verschiedener Schlüssel ist. Beweis: Sei A ein probabilistischer Algorithmus, der die Häufigkeit des häufigsten Schlüssels approximativ berechnet. Wir zeigen, dass A zur Lösung des Disjunktheitsproblems benutzt werden kann und weisen dazu Alice und Bob die Teilmengen x, y ⊆ {1, . . . , m} zu. Wir beobachten, dass offensichtlich ( Dm (x, y) = 1 1 = größte Häufigkeit für (x, y), 0 2 ≤ größte Häufigkeit für (x, y) für die Funktion Dm des Disjunktheitsproblems gilt und A liefert wie versprochen auch eine Lösung des Disjunktheitsproblems. Nach Fakt 4.1 ist aber Cδε (Dm ) = Ω(m) und die Behauptung folgt mit Lemma 4.10. Bemerkung 4.1 Damit nützt weder der Einsatz von probabilistischen Algorithmen, noch stellt eine approximative Berechnung eine wesentliche Erleichterung dar, denn die Wahl des trivialen deterministischen Algorithmus ist sogar fast optimal: Speichere alle Häufigkeiten in einem Array mit m Zellen. Wenn (a1 , . . . , am ) der Häufigkeitsvektor ist, dann genügt ein P Speicher von m u=1 log2 (au ) Bits. Die Berechnung von H1 = aber komplex. P u∈U au ist trivial, die exakte Berechnung von Hk für k 6= 1 ist 4.2. HÄUFIGKEITSMOMENTE 71 Satz 4.12 Sei δ < 12 beliebig und sei A ein probabilistischer Algorithmus, der Hk (für k 6= 1) exakt mit Fehler höchstens δ im Streaming-Data-Modell berechnet. Dann benötigt A Speicherkomplexität mindestens Ω(m), wenn m die Anzahl verschiedener Schlüssel ist. Beweis: Wir übernehmen das Argument aus Satz 4.11 und setzen m∗ = |x| + |y|. Diesmal ist zu beachten, dass ( 1 H0 = m∗ Dm (x, y) = 0 H0 < m∗ , beziehungsweise für k > 1 ( Dm (x, y) = 1 Hk = m∗ 0 Hk > m∗ und der Rest des Arguments folgt analog. Wir haben also nur dann eine Chance speicher-effizient zu arbeiten, wenn wir approximative Berechnungen zulassen und glücklicherweise gelingt dies, wie wir in den nachfolgenden Abschnitten sehen werden. Aufgabe 38 Häufig sollen Datenströme auf Unregelmäßigkeiten hin überwacht werden. Eine einfaches Kriterium in diesem Kontext ist die Frage, ob sich die relative Häufigkeit eines Elementes in einem Datenstrom stark verändert. Bei der Kommunikationsversion des Problems erhält Alice einen Vektor X = (x1 , . . . , xs ) und Bob einen Vektor Y = (y1 , . . . , yr ), wobei die xi und die yi aus derselben Schlüsselmenge S kommen. Als Änderungsgrad G eines Schlüssels a ∈ S definieren wir: G(a) = 1 falls a weder in X noch in Y vorkommt, falls a entweder in X oder in Y vorkommt, ∞ max n r·|{i|xi =a}| s·|{i|yi =a}| , s·|{i|yi =a}| r·|{i|xi =a}| o sonst. Im Variationsproblem für α soll entschieden werden, ob alle Schlüssel einen Änderungsgrad von höchstens α besitzen. Wir wollen zeigen, dass das Variationsproblem für jedes feste α > 1 eine Kommunikationskomplexität von Ω(s) besitzt. (a) Reduziere das Identitätsproblem auf das Variationsproblem. (b) Reduziere das Disjunktheitsproblem auf das Variationsproblem. (c) Warum stellt Teil b) die stärkere Aussage dar? 4.2.2 Die Bestimmung von H0 Wenn wir annehmen, dass die Hauptspeichergröße mindestens so groß ist wie die Anzahl verschiedener Schlüssel, dann wird man Hashing durchführen und bei entsprechender Größe der Hash-Tabelle eine Lösung in erwarteter linearer Zeit erhalten. Im Sekundärspeichermodell ist das oberste Gebot eine Minimierung der Anzahl der Zugriffe. Aus der Vorlesung Theoretische Informatik 1 ist bekannt, dass vergleichsorientierte Algorithmen mindestens Ω(n log2 n) Vergleiche durchführen müssen und deshalb ist Merge-Sort eine gute Wahl. Im Streaming-Data Modell benötigt nach Satz 4.1 jeder probabilistische Algorithmus, der die Anzahl der verschiedenen Schlüssel exakt bestimmt, mindestens Speicherkomplexität Ω(m). Wenn wir also vernünftige Speicheranforderungen im Streaming-Data Modell erhalten wollen, dann müssen wir approximative Lösungen erlauben. Wir benutzen Hashing, da bei s verschiedenen Schlüsseln höchstens s verschiedene Hashwerte berechnet werden. Die Anzahl besetzter Hashzellen sollte somit zumindest schwache Rückschlüsse auf die tatsächliche Anzahl verschiedener Schlüssel erlauben. 72 KAPITEL 4. STREAMING DATA Algorithmus 4.13 Approximieren durch Hashing (1) Wähle eine natürliche Zahl T > 1 und eine zufällige Hashfunktion h : U → {1, . . . , T }. Setze die boolesche Variable GROß auf falsch. (2) Durchlaufe die Eingabe (x1 , . . . , xn ): Wenn h(xi ) = T für ein i, dann setze GROß auf wahr. (3) Gib die Antwort GROSS aus. Beachte, dass wir nur ein Speicherbit benötigen. Wir hoffen, eine Unterscheidung zwischen höchstens T und mindestens (1 + ε) · T verschiedenen Schlüsseln zu erreichen. Da bei d verschiedenen Schlüsseln die Hashzelle T mit Wahrscheinlichkeit (1 − T1 )d leer bleibt, ergibt sich das folgende Resultat. Lemma 4.14 Wenn eine Eingabefolge d ≤ T verschiedene Schlüssel besitzt, dann wird Algorithmus 4.13 die Antwort GROSS = falsch mit Wahrscheinlichkeit (1 − T1 )d ≥ (1 − T1 )T ausgeben. Gibt es andererseits d ≥ (1 + ε) · T verschiedene Schlüssel, dann wird Algorithmus 4.13 die Antwort GROSS = falsch mit Wahrscheinlichkeit (1 − T1 )d ≤ (1 − T1 )(1+ε)·T ausgeben. Wir haben damit nur eine schwache Trennung zwischen höchstens T und mindestens (1+ε)·T verschiedenen Schlüsseln erreicht, aber wir können Algorithmus 4.13 boosten: Wir arbeiten wieder mit einem Parameter T , aber diesmal mit k zufällig gezogenen Hashfunktionen h1 , . . . , hk : U → {1, . . . , T }. Angenommen, es liegen höchstens T verschiedene Schlüssel vor. Dann ist die erwartete Häufigkeit der Antwort falsch mindestens k · (1 − T1 )T , während die erwartete Häufigkeit bei mindestens (1 + ε) · T verschiedenen Schlüsseln durch k · (1 − T1 )(1+ε)·T nach oben beschränkt ist. Wir geben deshalb im Boosting-Ansatz die Ausgabe falsch, wenn mindestens S =k· (1 − 1 (1+ε)·T T) + (1 − 1 T T) 2 Hashfunktionen die Hashzelle T nicht besetzen; ansonsten wird die Antwort wahr gegeben. Beachte, dass k · (1 − 1 (1+ε)·T (1 − 1/T )−ε·T − 1 1 1 + (1 − 1/T )−ε·T ) · (1 + ) = k · (1 − )(1+ε)·T · ( ) T 2 T 2 = S 1 1 + (1 − 1/T )ε·T = k · (1 − )T · ( ) T 2 1 1 − (1 − 1/T )ε·T = k · (1 − )T · (1 − ). T 2 Wir wenden Lemma 1.2 an und erhalten (1 − 1/T )−ε·T − 1 1 − (1 − 1/T )ε·T = Ω(ε) sowie = Ω(ε). 2 2 Die Chernoff Ungleichung besagt jetzt, dass die Fehlerwahrscheinlichkeit, bei höchstens T verschiedenen Schlüsseln oder bei mindestens (1 + ε) · T verschiedenen Schlüsseln, negativ 4.2. HÄUFIGKEITSMOMENTE 73 2 exponentiell durch e−Ω(ε ·k) beschränkt ist. Also genügen O( ε12 · ln 1δ ) Hashfunktionen, um eine Fehlerwahrscheinlichkeit von höchstens δ zu erreichen. Wenn wir die Anzahl verschiedener Schlüssel bis auf den Faktor (1 + O(ε)) approximieren möchten, dann führen wir das obige Verfahren für jedes T ∈ {(1 + ε)r | r ≤ log1+ε n} log n mit einer jeweils zufälligen Auswahl von k = O( ε12 · ln( 1+ε )) Hashfunktionen durch und δ ln(n) erreichen weiterhin eine Fehlerwahrscheinlichkeit von höchstens δ. Es ist log1+ε n = ln(1+ε) und mit Lemma 1.2 folgt log1+ε n = O( ln(n) ε ) und wir erhalten: log n Satz 4.15 Bei einer zufälligen Auswahl von k = O( ε12 · ln( 1+ε )) Hashfunktionen für jedes δ T ∈ {(1 + ε)r | r ≤ log1+ε n} wird die Anzahl verschiedener Schlüssel mit Wahrscheinlichkeit 1 − δ bis auf den Faktor 1 + ε richtig bestimmt. Deshalb genügt die Speicherkomplexität O(k · log1+ε n) = O( ln(n) ln(n) · ln( )). 3 ε ε·δ Ein zweiter, besserer Ansatz basiert wieder auf Stichproben. Wir haben allerdings gesehen, dass eine Stichprobe gleichverteilt gezogener Schlüssel die Anzahl verschiedener Schlüssel möglicherweise mit einem zu großen Fehler bestimmt. Wir versuchen deshalb, eine verlässliche Stichprobe verschiedener Schlüssel zu berechnen. Dazu weisen wir jedem gesehenen Schlüssel eine zufällig bestimmte Priorität zu und halten alle Schlüssel ab einer Mindestpriorität als Stichprobe fest. Wenn die Stichprobe überläuft, dann ist die Mindestpriorität um 1 hochzusetzen und alle Schlüssel mit zu kleiner Priorität werden entfernt. Algorithmus 4.16 Bestimmung einer Stichprobe verschiedener Schlüssel (1) m sei eine Zweierpotenz und mindestens so groß wie die Anzahl möglicher verschiedener Schlüssel. Bestimmung der Prioritäten: Wähle Parameter A ∈ {1, . . . , m − 1} und B ∈ {0, . . . , m − 1} zufällig und definiere die Hashfunktion hA,B (u) = (A·u+B) mod m. Schließlich wähle p(u) = die Anzahl der führenden Nullen in der Binärdarstellung von hA,B (u) als Prioritätszuweisung. (Wir fordern, dass die Binärdarstellung durch führende Nullen auf die exakte Länge log2 m aufgefüllt wird.) Kommentar: Beachte, dass prob[ p(u) ≥ k ] = 2−k . (2) Setze PRIORITÄT= 0 und STICHPROBE= ∅. S sei die Maximalgröße einer Stichprobe. (Wähle S so groß wie möglich. Allerdings ist S durch den verfügbaren Speicher nach oben beschränkt, denn die Anzahl verschiedener Schlüssel in STICHPROBE muss bestimmt werden.) Wiederhole für i = 1, . . . , n: (2a) Füge xi zur Menge STICHPROBE hinzu, falls p(xi ) ≥ PRIORITÄT. (2b) Solange STICHPROBE mehr als S Schlüssel besitzt, entferne alle Schlüssel x mit p(x) = PRIORITÄT und erhöhe PRIORITÄT um 1. (3) Setze p = PRIORITÄT und gib 2p · |STICHPROBE| als Schätzung aus. 74 KAPITEL 4. STREAMING DATA Wir analysieren Algorithmus 4.16. Es ist prob[ p(x) ≥ p ] = 2−p und deshalb folgt für die am Ende berechnete Priorität p E[ |STICHPROBE| ] = E[ |{x | p(x) ≥ p und es gibt i mit x = xi }| ] X = prob[ p(x) ≥ p ] x ein Schlüssel −p = 2 · Anzahl verschiedener Schlüssel. Also folgt E[ 2p · |STICHPROBE| ] = Anzahl verschiedener Schlüssel. Die Schätzung in Schritt (3) ist also gut, wenn große Abweichungen vom Erwartungswert E[ |STICHPROBE| ] unwahrscheinlich sind. Aufgabe 39 Bestimme die Varianz Var[ |STICHPROBE| ] und zeige, dass Var[ |STICHPROBE| ] ≤ E[ |STICHPROBE| ] gilt. Wir setzen E = E[ |STICHPROBE| ] und die Tschebyscheff Ungleichung liefert somit prob[ | E − |STICHPROBE| | > ε · E ] = O( E 1 ) = O( 2 ). ε2 · E 2 ε ·E Sei V die Anzahl der tatsächlich auftretenden verschiedenen Schlüssel. Dann ist V = 2p · E und wir erhalten prob[ | V − 2p · |STICHPROBE| | > ε · V ] = prob[ 2p · | E − |STICHPROBE| | > ε2p · E ] = prob[ | E − |STICHPROBE| | > ε · E ] 1 = O( 2 ) ε ·E Natürlich müssen wir einen kleinen Fehler erreichen und müssen deshalb E >> Dies bedingt eine Stichprobengröße S mit S >> ε12 . 1 ε2 fordern. Aufgabe 40 (a)Wiederhole Algorithmus 4.16 O(ln( 1δ ))-mal mit maximaler Stichprobengröße S = O( ε12 ). Wir verwenden in jedem Versuch zufällige und unabhängig voneinander gewählte Prioritätszuweisungen. Wir bestimmen alle Stichprobengrößen (nach entsprechender Skalierung mit 2p ) und geben dann den Median aus. Zeige: Wir erhalten eine bis auf den Faktor 1 + ε exakte Schätzung mit Wahrscheinlichkeit 1 − δ. Also genügt die Speicherplatzkomplexität O( ε12 · ln( 1δ )). Damit ist dieses Verfahren wesentlich besser als das Verfahren aus Satz 4.15. (b) Was kann passieren, wenn wir m kleiner als die Anzahl der möglichen verschiedenen Schlüssel wählen? 4.2.3 Die Bestimmung von H2 Wir nehmen wieder das Streaming-Data Modell an, wobei die Daten xi zum Universum U = {1, . . . , m} gehören mögen. Unser Ziel ist die approximative Bestimmung von H2 = X a2u , u∈U wobei au = | {i | xi = u} | die Häufigkeit des Schlüssels u ist. 4.2. HÄUFIGKEITSMOMENTE 75 Algorithmus 4.17 Sketching H2 (1) Bestimme eine zufällige Hashfunktion h : U → {−1, 1} und setze SUMME = 0. (2) Wiederhole für alle Daten xi Setze SUMME = SUMME +h(xi ). Wir bestimmen zuerst Erwartungswert und Varianz von SUMME2 . Lemma 4.18 Die Hashfunktion h möge aus einer vierfach unabhängigen Menge von Hashfunktionen gewählt werden. Dann ist E[ SUMME2 ] = H2 und V [ SUMME2 ] ≤ 2 · H22 . Beweis: Es ist E[ SUMME2 ] = E[ ( m X au · h(u))2 ] u=1 = E[ = E[ m X u=1 m X a2u · h(u)2 ] + E[ X au · av · h(u) · h(v) ] u6=v a2u ]= u=1 m X a2u = H2 , u=1 h(u)2 denn offensichtlich ist = 1 für jedes u und E[ h(u) · h(v) ] = 0 für u 6= v. Also stimmt der Erwartungswert von SUMME2 mit H2 überein. Wir berechnen als nächstes die Varianz V [ SUMME2 ] = E[ SUMME4 ] − E[ SUMME2 ]2 . Zuerst beachte E[ SUMME4 ] = E[ ( m X au · h(u))4 ]. u=1 Beim Ausmultiplizieren treten Terme der Form E[ h(u1 ) · h(u2 ) · h(u3 ) · h(u4 ) ] auf. Da wir vierfache Unabhängigkeit annehmen, verschwindet ein solcher Term genau dann nicht, wenn entweder u1 = u2 = u3 = u4 oder u1 = u2 6= u3 = u4 oder u1 = u3 6= u2 = u4 oder u1 = u4 6= u2 = u3 . Also folgt E[ SUMME4 ] = E[ = m X X a4u · h(u)4 ] + 2 · 3 · E[ u=1 m X a4u + u=1 a2u · a2v · h(u)2 · h(v)2 ] u6=v X 6· a2u · a2v u6=v und wir erhalten die Varianz 2 V [ SUMME ] = m X a4u +6· u=1 = 4· X u6=v X a2u · a2v u=1 u6=v a2u · a2v ≤2· − m X H22 !2 a2u 76 KAPITEL 4. STREAMING DATA und das war zu zeigen. Wir wenden die Tschebyscheff Ungleichung prob[ |X − E[X]| > t ] ≤ 2 prob[ |SUMME2 − E[SUMME2 ]| > t ] ≤ V [SUMME ] . Also ist V [X] t2 an und erhalten t2 prob[ |SUMME2 − H2 | > λ · H2 ] ≤ 2 2 · H22 = 2 λ λ2 · H22 für jedes λ und selbst relativ kleine Abweichungen sind somit leider nicht als unwahrscheinlich ausgeschlossen. Deshalb boosten wir. Im ersten Schritt wählen wir k Hashfunktionen h1 , . . . , hk und geben das Ergebnis Pk SCHÄTZUNGk = 2 i=1 SUMMEi k aus. Wir gehen wie in Beispiel 1.4 vor und beobachten, dass der Erwartungswert stabil bleibt, aber dass die Varianz um den Faktor k fällt. Also erhalten wir nach k-maliger Wiederholung und Durchschnittsbildung prob[ |SCHÄTZUNGk − H2 | > λ · H2 ] ≤ 2 . k · λ2 Beachte, dass wir für k = λ82 eine durch 14 nach oben beschränkte Fehlerwahrscheinlichkeit erhalten. Insgesamt wiederholen wir Algorithmus 4.17 k ∗ = k · s mal. Die jeweiligen Summenergebnisse werden in s Klassen von jeweils k Wiederholungen eingeteilt und für jede Klasse wird eine Schätzung ermittelt. Schließlich bestimmt man den Median Mk∗ der s Schätzungen. Satz 4.19 Es sei k = 8 λ2 und k ∗ = k · s. (a) Wenn der arithmetische Durchschnitt SCHÄTZUNGk der Summenwerte berechnet wird, 2 dann ist |SCHÄTZUNGk − H2 | > λ · H2 mit Wahrscheinlichkeit höchstens k·λ 2. (b) Wenn der Median Mk∗ der Summenwerte ausgegeben wird, dann ist |Mk∗ − H2 | > λ · H2 mit Wahrscheinlichkeit höchstens 2−Ω(s) . (c) Eine bis auf den Faktor 1 + λ exakte Schätzung von H2 wird mit Wahrscheinlichkeit mindestens 1 − δ und Speicherplatzkomplexität O( λ12 · log2 ( 1δ )) erreicht. Beweis: Wir haben (a) bereits gezeigt. Für (b) beachten wir, dass eine Schätzung nur mit Wahrscheinlichkeit höchstens 14 außerhalb des Toleranzintervalls |Mk∗ − H2 | ≤ λ · H2 liegt. Wenn also der Median außerhalb des Toleranzintervalls liegt, dann liegt mindestens die Hälfte aller Einzelschätzungen außerhalb und damit mindestens doppelt so viele Einzelschätzungen wie erwartet. Das Ergebnis folgt jetzt aus der Chernoff-Schranke. Aufgabe 41 In Anlehnung an das Schema der H2 -Schätzung beschreiben wir den folgenden Algorithmus für die Bestimmung von H3 : (1) Bestimme eine zufällige Hashfunktion 2 4 h : U → {1, e 3 iπ , e 3 iπ } /* Es wird also auf eine der komplexen dritten Einheitswurzeln gehasht. */ 4.3. HÄUFIGKEITSANFRAGEN 77 (2) SUMME := 0; (3) Wiederhole für alle Daten xi SUMME := SUMME + h(xi ) a) Es sei Y = SUMME3 . Zeige E[Y ] = H3 . b) Warum kann dieses Ergebnis nicht benutzt werden, um eine gute Schätzung von H3 mit geringem Speicheraufwand zu erhalten? 4.3 Häufigkeitsanfragen Verkehrsmessungen im Internet, also Häufigkeitsmessungen für Flüsse3 , sind besonders datenintensiv: Bereits heute können DRAMs nicht mit der Geschwindigkeit der Links mithalten und diese Lücke wird eher anwachsen, da die Geschwindigkeit der DRAMs jährlich um höchstens 10%, die Linkgeschwindigkeit sich aber momentan jährlich sogar verdoppelt. DRAM-Zähler können somit Häufigkeitsmessungen nicht exakt durchführen, vielmehr müssen Messungen stichprobenartig, wie etwa in CISCO’s NetFlow Algorithmus, durchgeführt werden. Der NetFlow Algorithmus ist aber aus zwei Gründen nicht überzeugend. Zuerst sind die Schätzungen nicht präzise und insbesondere werden keine fehlerfreien unteren Schranken bestimmt: Sicherlich wird man nicht willens sein, einen überhöht angesetzten Paketverkehr zu bezahlen. Zuletzt ist die Speicherplatzkomplexität immens und es ist nicht ungewöhnlich, dass nur 10% der erfassten Daten ausgewertet werden. Aus diesen Gründen konzentriert man sich mehr und mehr auf die “heavy hitter”, also Flüsse mit großer Häufigkeit. Diese Maßnahme wird zum Beispiel auch durch die Dominanz großer Flüsse unterstützt, da ein kleiner Prozentsatz (ungefähr 10%) aller Flüsse einen Großteil des Paketverkehrs (ungefähr 90%) ausmacht [FP]. Wir beschreiben Algorithmen für die Bestimmung der heavy hitter, also für die Bestimmung häufiger Schlüssel, in den beiden nächsten Abschnitten. In Abschnitt 4.3.3 zeigen wir unter Anderem wie man die Anzahl seltener Flüsse abschätzt, solange seltene Flüsse für einen signifikanten Anteil des Verkehrsaufkommens verantwortlich sind. 4.3.1 Heavy Hitters Wir haben bereits in Satz 4.11 gesehen, dass die Bestimmung des häufigsten Schlüssels, bzw. der Häufigkeit eines häufigsten Schlüssels, die Speicherkomplexität Ω(m) verlangt, selbst wenn wir mit randomisierten Algorithmen arbeiten und nur eine approximative Bestimmung anstreben. Wie sieht es aus, wenn wir die Problemstellung verändern und zu einem Schwellenwert θ nur alle Schlüssel mit Häufigkeit größer als θ · n bestimmen wollen? Aufgabe 42 A sei ein deterministischer Algorithmus. Wenn m die Anzahl verschiedener Schlüssel unter den ersten n Schlüsn seln ist, dann wird A für die Bestimmung aller Schlüssel mit Häufigkeit größer als 2 mindestens die Speichern komplexität Ω(m · log2 m ) benötigen. Hinweis: Wende das Kommunikationsmodell an. Benutze das Fooling Argument, d.h. zeige, dass Alice für bestimmte verschiedene Eingaben keine identischen Nachrichten verschicken darf. Um den entsprechenden Nachweis zu führen, konstruiere „passende“ Eingaben für Bob. Die Ungleichung ab ≥ ( ab )b kann benutzt werden. 3 Ein Fluß ist eine Paketmenge mit fixiertem Sender und Empfänger. Zusätzlich muss der (optionale) “Flußname” identisch sein. 78 KAPITEL 4. STREAMING DATA Also ist auch hier keine substantielle Speicherplatz-Ersparnis im Vergleich zu Ω(m) möglich. Glücklicherweise wird das Häufigkeitsproblem plötzlich machbar, wenn wir nur verlangen, dass eine Menge K von höchstens 1θ Schlüsseln4 berechnet wird, unter denen sich alle Schlüssel mit Häufigkeit größer als θ · n befinden müssen. Die Grundidee steckt schon in der seit Langem bekannten Lösung des Mehrheitsproblems, nämlich der Bestimmung eines Schlüssels mit Häufigkeit größer als n2 : Entferne nämlich stets Paare verschiedener Schlüssel. In diesem Prozess verliert der Mehrheitschlüssel nie seine Mehrheitseigenschaft und wird bis zuletzt überleben. Ein zweiter Datendurchlauf kann dann die Mehrheitseigenschaft überprüfen. Algorithmus 4.20 Bestimmung häufiger Schlüssel (1) Der Datenstrom bestehe aus dem Vektor x = (x1 , x2 , . . . , xn ) mit xi ∈ {1, . . . , m}. (2) Die Menge K ist anfänglich leer und das Array “Zähler” ist auf Null initialisiert. (3) For i = 1 to n do (3a) Wenn xi ∈ K, dann erhöhe den Zähler von xi um Eins. (3b) Wenn xi 6∈ K, dann füge xi zu K hinzu und setze den Zähler von xi auf Eins. Wenn K jetzt genau 1θ Elemente besitzt, dann erniedrige alle Zähler um Eins und entferne alle Schlüssel mit Zählerstand Null. Satz 4.21 Algorithmus 4.20 bestimmt eine Menge K von höchstens 1θ Schlüsseln, unter denen sich alle Schlüssel mit Häufigkeit größer als θ · n befinden. Der Algorithmus rechnet in Linearzeit. Beweis: Übungsaufgabe. Die Speicherplatzkomplexität von Algorithmus 4.20 kann selbst von randomisierten Algorithmen nicht wesentlich unterschritten werden, da Speicherplatz Ω( 1θ · log2 (θ · n)) schon benötigt n wird, um die 1/θ möglichen Mengen der heavy hitter darzustellen. Allerdings werden keine Schätzungen der individuellen Häufigkeiten berechnet und zusätzlich werden möglicherweise Schlüssel mit sehr geringer Häufigkeit ausgegeben. Die letzte Schwäche können wir mit dem randomisierten Sample-and-Count Algorithmus [EV] zumindest teilweise beseitigen: Der Algorithmus nimmt einen Schlüssel nur mit sehr kleiner Wahrscheinlichkeit in seine Stichprobe auf, ein heavy hitter erhält aber entsprechend viele Versuche und wird deshalb hochwahrscheinlich erfasst. Aufgabe 43 Wir beschreiben Algorithmus Sample-and-Count, der mit einer Stichprobe S arbeitet. Wenn xn ein Schlüssel des Datenstroms ist, dann führe die folgende Fallunterscheidung durch: (1) Wenn xn ∈ / S, dann füge xn zu S mit Wahrscheinlichkeit dem Wert 1. /* r wird später bestimmt. r n hinzu. Initialisiere einen Zähler für xn mit */ (2) Wenn xn ∈ S, dann erhöhe den Zähler von xn um Eins. (3) Gib alle Schlüssel in S aus, deren Zählerwert mindestens (θ − ε) · n beträgt. /* Es muss ε ≤ θ gelten. 4 Offensichtlich gibt es höchstens 1 θ Schlüssel mit Häufigkeit mindestens θ · n. */ 4.3. HÄUFIGKEITSANFRAGEN 79 (a) Angenommen der Schlüssel x ist ein heavy hitter, d.h. x tritt mit Häufigkeit mindestens θ · n auf. Zeige, dass x mit Wahrscheinlichkeit höchstens (1 − nr )ε·n ≤ e−r·ε nicht in Schritt (3) ausgegeben wird. Die Wahrscheinlichkeit, dass irgendein heavy hitter ausgelassen wird, ist damit höchstens θ1 · e−r·ε . (b) Nur Schlüssel mit Häufigkeit mindestens (θ − ε) · n werden ausgegeben. Bestimme r, so dass jeder heavy hitter mit Wahrscheinlichkeit mindestens 1 − δ ausgegeben wird. Zeige, dass die Reaktionszeit pro Schüssel 1 )) beschränkt ist. konstant ist und dass die erwartete Größe der Stichprobe S durch O( 1ε · log2 ( δ·θ Beachte, dass alle Pakete, die zu einem in der Stichprobe befindlichen Fluss gehören, bearbeitet werden müssen, um die fehlerfreie untere Schranke (θ − ε) · n zu erhalten. Deshalb muss mit dem schnellen SRAM-Speicher gearbeitet werden. Da wir uns aber auf heavy hitters beschränken, ist ein relativ kleiner SRAM-Speicher ausreichend. Im nächsten Abschnitt wenden wir Bloom-Filter auf die Bestimmung der heavy hitter an. Während der Zeitaufwand für die Verarbeitung eines Pakets im Vergleich mit sample-andcount leicht ansteigt, wird jeder heavy hitter mit Wahrscheinlichkeit 1 erfasst und wir erhalten vergleichbare Schätzungen des tatsächlichen Paketaufkommens, falls wenige Flüsse stark dominieren. Aufgabe 44 Wir stellen ein weiteres Schätzverfahren vor. Wir arbeiten wieder mit einer anfänglich leeren Stichprobe S und benutzen diesmal Zeitintervalle der Länge 1ε . (1) Alle während eines Zeitfensters Z auftretenden Schlüssel werden, wenn nicht schon zu S gehörig, in die Stichprobe eingefügt und ihre Zähler werden aktualisiert. (2) Nach Ablauf von Z werden alle Zählerstände um Eins verringert und alle Schlüssel mit Häufigkeit 0 werden aus S entfernt. (3) Alle Schlüssel mit Häufigkeit mindestens (θ − ε) · n werden ausgegeben. (a) Jeder Schlüssel mit Häufigkeit mindestens θ · n wird ausgegeben und alle ausgegebenen Schlüssel haben die Häufigkeit mindestens (θ − ε) · n. (b) Die Reaktionszeit pro Schüssel ist konstant und die Größe der Stichprobe ist durch O( 1ε · log2 (ε · n)) beschränkt. 4.3.2 Der Bloom-Filter Sketch Wie verallgemeinern unser Häufigkeitsmodell und nehmen an, dass der Datenstrom die Form ((xi , ci ) | i) hat. Für einen Schlüssel x ist jetzt H(x) = X ck xk =x die verallgemeinerte Häufigkeit von x: Wir summieren also die Inkremente ck für jeden Zeitpunkt zu dem der Schlüssel x im Datenstrom erschienen ist. Wenn stets ci = 1, dann erhalten wir das konventionelle Häufigkeitsmodell und die konventionellen Häufigkeitsanfragen. Wir werden aber im Folgenden nur ci ≥ 0 annehmen. Wir möchten eine „Ungenauigkeit“ von höchstens ε mit Wahrscheinlichkeit mindestens 1 − δ erreichen und arbeiten mit k = dln( 1δ )e Hashfunktionen h1 , . . . , hk : U → {1, . . . , w} für w = eε Zellen. Wir verwenden zählende Bloom-Filter, die den einzelnen Hashfunktionen disjunkte Teilarrays Z1 , . . . , Zk des Arrays Z = (Z1 , . . . , Zk ) zuweisen; jedes Teilarray besteht aus w Zellen. Algorithmus 4.22 Der Bloom-Filter Sketch. (1) Die Arrays Z1 , . . . , Zk sind alle zu Null initialisiert. 80 KAPITEL 4. STREAMING DATA (2) Wiederhole: Wenn das Paar (xi , ci ) empfangen wird, dann setze für jedes j ≤ k Zj [hj (xi )] = Zj [hj (xi )] + ci . (3) Eine verallgemeinerte Häufigkeitsfrage für Schlüssel x wird mit H 0 (x) = min1≤j≤k Zj [hj (x)] beantwortet. Satz 4.23 Es gelte ci ≥ 0 für alle i. Dann ist stets H(x) ≤ H 0 (x). Für k = dln( 1δ )e und w = eε gilt X H 0 (x) ≤ H(x) + ε · H(y) y∈U mit Wahrscheinlichkeit mindestens 1 − δ. Insgesamt werden höchstens O( 1ε · ln( 1δ )) Zellen benutzt und die Laufzeit pro Anfrage ist höchstens O(ln( 1δ )). Beweis: Es ist stets H(x) ≤ Zj [hj (x)] und H(x) ≤ H 0 (x) = minj≤k Zj [hj (x)] folgt. Also bleibt nur die Frage, mit welcher Wahrscheinlichkeit H 0 (x) zu groß wird. Wir definieren die Zufallsvariable X H(y) Kjx = y∈U mit x6=y und hj (x)=hj (y) und erhalten prob[ H 0 (x) > H(x) + ε · X H(y) ] = prob[ ∀j ≤ k : Zj [hj (x)] > H(x) + ε · X H(y) ] y∈U y∈U = prob[ ∀j ≤ k : H(x) + Kjx > H(x) + ε · X H(y) ] y∈U X = prob[ ∀j ≤ k : Kjx > ε · H(y) ] y∈U = (prob[ Kjx >ε· X H(y) ])k . (4.1) y∈U Im letzten Schritt haben wir ausgenutzt, dass wir die Hashfunktionen zufällig voneinander ausgewählt haben: An dieser Stelle zahlt sich der Bloom-Filter Ansatz aus. Wie groß kann Kjx werden? Wir definieren die Null-Eins Zufallsvariable Kjx (y), wobei Kjx (y) genau dann den Wert Eins annimmt, wenn hj (x) = hj (y). Wir beachten, dass E[Kjx (y)] ≤ 1/w für x 6= y gilt und können jetzt den Erwartungswert von Kjx abschätzen: X E[ Kjx ] = E[ H(y) ] = y∈U mit x6=y und hj (x)=hj (y) X ≤ y∈U mit x6=y X H(y) · E[ Kjx (y) ] y∈U mit x6=y H(y) ε X ≤ · H(y). w e y∈U Wir wenden jetzt die Markoff Ungleichung5 auf (4.1) an und erhalten prob[ H 0 (x) > H(x) + ε · X y∈U H(y) ] = (prob[ Kjx > ε · X H(y) ])k y∈U X ε X H(y) / ε · H(y))k = e−k ≤ δ ≤ ( · e y∈U y∈U 5 prob[ X > a ] ≤ E[X] a für X ≥ 0 4.3. HÄUFIGKEITSANFRAGEN 81 und das war zu zeigen. Aufgabe 45 Wir erlauben jetzt auch negative “Inkremente” ci . Modifiziere Schritt (3) des Bloom-Filter Ansatzes, so dass für die neue Schätzung H 00 (x) prob[ H(x) − s · ε · X H(y) ≤ H 00 (x) ≤ H(x) + s · ε · y∈U X H(y) ] ≥ 1 − δ 1/s y∈U für konstantes s gilt. Bemerkung 4.2 In [EV] werden Bloom-Filter mit sample-and-count und Cisco’s NetFlow verglichen. Bloom Filter werden allerdings leicht modifiziert. Zum Einen wird eine konservative Aktualisierung durchgeführt: Wenn ein Paket des Flusses F zu verarbeiten ist, dann wird zuerst der bisherige minimale Wert MF von F festgestellt. Sodann wird der Zählerstand in einer jeden Position hi (x) nur dann inkrementiert, wenn der bisherige Wert für hi (x) höchstens FM beträgt: Der Fluss kann bei einem Wert größer als M nicht allein für den Zählerwert verantwortlich gewesen sein! Zum Anderen wird die Methode des Shielding angewandt: Es werden Meßintervalle eingeführt und die Pakete von Flüssen, die für einen längeren Zeitraum in jedem Meßintervall häufig vertreten sind, werden direkt gezählt ohne durch den Bloom-Filter laufen zu müssen. Nach diesen Maßnahmen stellen sich Bloom-Filter und sample-and-count als wesentlich exakter in der Schätzung der heavy hitter heraus, während natürlich NetFlow exaktere Schätzungen der leichteren Flüsse liefert, aber dabei enorme Datenmengen produziert. Der Vergleich zwischen Bloom-Filtern und sample-and-hold wird mit leichten Vorteilen vom Bloom-Filter Sketch gewonnen. Wir starten eine weitere Schätzung mit den −1/1-wertigen Hashfunktionen aus Abschnitt 4.2.3. Aufgabe 46 Der Datenstrom (xi | i) sei gegeben. Wir wählen zufällig k Hashfunktionen h1 , . . . , hk : U → {−1, +1} aus und richten k anfänglich auf Null gesetzte Zähler Z1 , . . . , Zk ein. Für jeden Schlüssel xi des Datenstroms und für jedes j ≤ setze Zj := Zj + hj (xi ). Anschließend Pk geben wir für jeden Schlüssel x ∈ U den Wert H 0 (x) = k1 · i=1 Zi · hi (a) als Schätzung der Häufigkeit aus. Sei H(x) die tatsächliche Häufigkeit des Schlüssels x. (a) Zeige, dass E 1 k · Pk (b) Zeige, dass Varianz (c) Wir setzen ||H|| = i=1 1 k · zi · hi (x) = H(x) gilt. Pk z · hi (x) = i=1 i qP y∈U 1 k · P y∈U,x6=y H(y)2 gilt. H(y)2 . Zeige, dass eine Schätzung H 00 (x) mit Speicherplatzkomplexität O( ε12 · ln( 1δ )) berechnet werden kann, so dass prob[ H(x) − ε · ||H|| ≤ H 00 (x) ≤ H(x) + ε · ||H|| ] ≥ 1 − δ gilt. Hinweis: Benutze das Verfahren aus Satz 4.19. Bemerkung 4.3 Die Speicherplatzkomplexität für das Sketching mit −1/1 Hashfunktionen ist also höher als für das Sketching mit Bloom-Filtern. Andererseits wird eine schärfere ApP proximation erreicht, wenn ||H|| << y∈U H(y). Die beiden Ansätze sind also nicht direkt vergleichbar. Allerdings treiben heavy hitters die L2 -Norm ||H|| hoch und Bloom-Filter werden in RoutingAnwendungen die Nase vorn haben. 82 KAPITEL 4. STREAMING DATA 4.3.3 Häufigkeitseigenschaften Wir betrachten Schlüssel-Eigenschaften, die nur von der Häufigkeit abhängen mit der der Schlüssel in einem Datenstrom ( xi | i ) auftritt. “Schlüssel mit Häufigkeit höchstens K” oder “Schlüssel mit Häufigkeit mindestens θ · n” sind Beispiele solcher Eigenschaften. Um die Klasse dieser Eigenschaften zu formalieren, betrachten wir eine Teilmenge En von {1, . . . , n}. Wir sagen, dass ein Schlüssel x die Eigenschaft En hat, falls |{j ≤ n | xj = x}| ∈ En gilt. Zum Beispiel formalisiert die Menge En = {1, . . . , K} die Eigenschaft „höchstens K-mal aufzutreten“. Definition 4.24 Sei ( xi | i ) ein Datenstrom, Vn = {xj | j ≤ n} die Menge der verschiedenen Schlüssel xj für j ≤ n und sei En∗ = {xj | j ≤ n und xj hat Eigenschaft En } die Menge der Schlüssel mit Eigenschaft En . Dann hat Eigenschaft En die Wahrscheinlichkeit p[En ] = |En∗ | . |Vn | p[En ] misst also wieviele der verschiedenen Schlüssel unter den ersten n Schlüsseln die Eigenschaft En besitzen. ∗ ∗ |En ∩Vn | ∗ n| gilt J(En∗ , Vn ) = |E Für den Jaccard-Koeffizienten J(En∗ , Vn ) = |E ∗ |Vn | = p[En ], da En eine n ∪Vn | Teilmenge von Vn ist. Wir haben Min-Hashing benutzt, um den Jaccard-Koeffizienten J(En∗ , Vn ) zu berechnen, denn es ist prob[min(En∗ ) = min(Vn )] = J(En∗ , Vn ) π π und als Konsequenz folgt prob[min(En∗ ) = min(Vn )] = p[En ]. π π Algorithmus 4.25 Häufigkeitsmessung für Eigenschaften (1) Wähle zufällig k Permutationen π1 , . . . , πk und setze minj (0) = ∞ sowie Zählerj = 0 für alle j ≤ k. /* k wird später bestimmt. */ (2) Wenn xi+1 zu verarbeiten ist, dann wiederhole für jedes j ≤ k (a) Berechne πj (xi+1 ). (b) Wenn πj (xi+1 ) < minj (i), dann setze minj (i + 1) = πj (xi+1 ) und Zählerj = 1. /* Der Schlüssel xi+1 ist zum ersten Mal aufgetreten und sein Zähler wird deshalb auf Eins gesetzt. */ (c) Wenn πj (xi+1 ) = minj (i), dann setze Zählerj = Zählerj + 1. /* Ein weiteres Vorkommen des minimalen Schlüssels xi+1 für πj wurde beobachtet und dementsprechend wird sein Zähler inkrementiert. */ (3) Bestimme die Anzahl k ∗ der Schlüssel minj (n) für die Eigenschaft En gilt und gib k ∗ /k als Schätzung für die Wahrscheinlichkeit von En aus. 4.4. ALGORITHMEN FÜR ZEITFENSTER: ZÄHLEN DER LETZTEN EINSEN 83 Aufgabe 47 Warum können wir weder Reservoir Sampling (Algorithmus 4.1) noch Stichproben verschiedener Elemente (Algorithmus 4.16) anwenden? Für die Analyse von Algorithmus 4.25 definieren wir die Zufallsvariablen Xj durch ( Xj = 1 minj (n) ∈ En∗ , 0 sonst und berechnen den Erwartungswert E[ kj=1 Xj ] = kj=1 E[Xj ] = k · p[En ]. Da die Zufallsvariablen unabhängig voneinander sind, können wir die Chernoff-Schranke anwenden und erhalten P prob[ | k X P Xj − k · p[En ]| ≥ ε · k · p[En ] ] ≤ 2 · e−k·p[En ]·ε 2 /3 . j=1 Also folgt prob[ |k ∗ /k − p[En ]| ≥ ε · p[En ] ] = prob[ |k ∗ − k · p[En ]| ≥ ε · k · p[En ] ] ≤ 2 · e−k·p[En ]·ε 2 /3 . Wenn wir also eine ε-Approximation mit Fehlerwahrscheinlichkeit höchstens δ fordern, werden wir auf die Bedingung 2 2 · e−k·p[En ]·ε /3 ≤ δ geführt und deshalb auf die Bedingung −k · p[En ] · ε2 /3 ≤ ln( 2δ ), beziehungsweise auf k ≥ 3 · ln( 2δ ). ε2 ·p[En ] 1 Satz 4.26 Für k = O( ε2 ·p[E · ln( 1δ )) erreicht Algorithmus 4.25 eine ε-Approximation von n] p[En ] mit Wahrscheinlichkeit mindestens 1 − δ. Die Laufzeit pro Schlüssel ist durch O(k) und die Speicherplatzkomplexität durch O(k · log2 n) beschränkt, wenn der für die Permutationen benötigte Speicherplatz nicht gezählt wird. Wir können also die Anzahl seltener oder häufiger Schlüssel recht exakt mit kleinem Speicher abschätzen, solange p[En ] nicht zu klein ist. Beachte aber, dass wir nur die Anzahl, nicht aber alle nachgefragten Schlüssel selbst in Erfahrung bringen können. Wenn wir Permutationen zufällig auswürfeln, dann benötigt Algorithmus 4.25 den unrealistisch großen Speicherplatz Ω(k · log2 (n!)) = Ω(k · n · log2 n)). Stattdessen sollten Hashfunktionen aus wesentlich kleineren Hashklassen eingesetzt werden: Die linearen Permutationen a · x + b mod N stellen sich in praktischen Anwendungen als gut heraus und benötigen nur Speicherplatz O(log2 N ). 4.4 Algorithmen für Zeitfenster: Zählen der letzten Einsen Die Fenstergröße N sei gegeben. Wir betrachten einen Datenstrom und möchten die Anzahl “auffälliger” Daten in einem Zeitfenster der Länge N zählen. Wir modellieren dieses Problem als das Zählen der Einsen unter den letzten N Bits in einem Datenstrom von Nullen und Einsen 84 KAPITEL 4. STREAMING DATA Eine Lösung mit Speicherkomplexität N ist trivial, kostet aber zuviel schnellen Speicher. Wir stellen einen Algorithmus vor, der mit Speicherkomplexität O( 1ε · log22 N ) arbeitet und die Anzahl „Geschätzt” ausgibt, so dass |Geschätzt − Exakt| ≤ 2ε · Exakt. Unsere Lösung wird fast optimal sein, denn es gilt Aufgabe 48 Zeige, dass jeder deterministische Algorithmus, der die Anzahl der Einsen im Zeitfenster der Größe N mit relativem Fehler ε bestimmt, mindestens Speicherplatz Ω( 1ε log22 εN ) benötigt. Wir bauen eine Datenstruktur aus Körben K1 , . . . Km . Der Korb Ki speichert die Anzahl der Einsen in einem sich dynamisch ändernden Zeitintervall Zi . Körbe haben die folgenden Eigenschaften: (1) Die Zeitintervalle Z1 , . . . , Zm bilden eine disjunkte Zerlegung eines {1, . . . , N } umfassenden Zeitraums. (2) Die Zeitintervalle sind zeitlich geordnet (Z1 < · · · < Zm ), wobei Z1 den gegenwärtigen Zeitpunkt und Zm den letzten interessanten Zeitpunkt N der Vergangenheit enthält. (3) Korb Ki speichert den Zeitstempel des Korbs (nämlich das Alter der jüngsten erfassten Eins im Zeitintervall Zi ) und die Korbgröße Gi (d.h. die Anzahl der Einsen im Zeitintervall Zi ). (4) Die Korbgrößen Gi sind stets Zweierpotenzen und die Körbe K1 . . . , Km besitzen aufsteigende Korbgrößen. (5) Sei k = d 1ε e. Wenn 2h die Korbgröße des letzten Korbs Km ist, dann gibt es zu jedem 0 h0 < h mindestens k2 und höchstens k2 + 1 Körbe der Größe 2h . Die Speicherplatzkomplexität der Korbdatenstruktur ist O(k · log22 N ) = O( 1ε · log22 N ), denn nach Eigenschaft (5) gibt es insgesamt O(k·log2 N ) Körbe und jeder Korb speichert O(log2 N ) Bits gemäß Eigenschaft (3). Aufgrund der Zeitstempel können wir feststellen, ob ein Korb noch aktuell ist: Wenn der Zeitstempel des letzten Korbs größer als N ist, dann kann der Korb entleert und wiederverwandt werden. Alle Körbe halten die exakte Anzahl der Einsen ihres Zeitintervalls in ihrer Korbgröße fest; allerdings kennen wir das Ende des Zeitintervalls nicht: Wenn der letzte Korb Km noch aktuell ist, dann können wir nur sagen, dass m−1 X Gi + 1 ≤ Exakt ≤ i=1 m−1 X Gi + Gm i=1 Gm gilt. Unser Algorithmus gibt die Schätzung m−1 i=1 Gi + 2 ab. Um den relativen Fehler durch 2ε zu beschränken, genügt also die Forderung P Gm /2 ≤2·ε i=1 Gi + 1 Pm−1 und hierzu genügt wiederum der Nachweis von (Gm − 1)/2 ≤ ε. i=1 Gi + 1 Pm−1 4.5. HISTOGRAMME 85 Diese Ungleichung wird durch Eigenschaft (5) erzwungen, denn wenn Korb Kl die Korbgröße 2r besitzt, dann gibt es mindestens k2 Körbe der Größen 1, 2, 4, . . . , 2r−1 und damit ist sogar l−1 X Gi + 1 ≥ i=1 X k 1 Gl − 1 k r−1 · 2i ≥ · (2r − 1) ≥ · 2 i=0 2 ε 2 für jedes 1 ≤ l ≤ m. Algorithmus 4.27 Das Zählen von Einsen in einem Zeitfenster (1) Zwei Variablen „TOTAL” und „LETZTER” speichern die Gesamtgröße aller Körbe, bzw. den Index des letzten Korbs. (2) Wenn ein neues Bit ankommt, dann überprüfe, ob der letzte Korb noch aktuell ist. Ist dies nicht der Fall, dann wird der letzte Korb entfernt und die Variablen TOTAL und LETZTER werden aktualisiert. (3) Wenn das neue Bit eine Null ist, dann wird es ignoriert. Ansonsten wird ein neuer Korb mit Korbgröße 1 erzeugt und der Zeitpunkt wird festgehalten. TOTAL wird um Eins erhöht. (4) Wenn es jetzt k2 + 2 Körbe der Korbgröße 1 gibt, dann fasse die beiden ältesten Körbe zu einem Korb der Größe 2 zusammen und bestimme den Zeitstempel des neuen Korbs. Da es nach Zusammenfassung möglicherweise zu viele Körbe der Größe 2 gibt, ist die Überprüfung von Eigenschaft (5) für Korbgröße 2 fortzusetzen.... Die Variable LETZTER ist zu aktualisieren. Beispiel 4.1 Es sei k = 2 und die Korbgrößen seien (1, 1, 2, 4, 4, 8, 8, 16, 32). Wenn eine neue Eins eintrifft, dann sind Körbe zusammenzufassen und wir erhalten (1, 2, 2, 4, 4, 8, 8, 16, 32). Nach zwei weiteren Einsen und der entsprechenden Korbzusammenfassung ergibt sich dann der Vektor (1, 2, 4, 8, 16, 16, 32). Beachte, dass jedes neue Bit mit Hilfe einer geeigneten zusätzlichen Datenstruktur im worstcase O(log2 N ) Operationen verursacht, während die amortisierte (oder durchschnittliche) Laufzeit sogar nur konstant ist. Wir fassen unsere Ergebnisse zusammen: Satz 4.28 Für jedes N wird die Anzahl der Einsen unter den letzten N Bits mit relativem Fehler höchstens 2ε bestimmt. Die worst-case Laufzeit pro Bit ist k = d 1ε e = O(log2 N ) und die amortisierte Laufzeit ist konstant. Die Speicherplatzkomplexität ist durch O( 1ε · log22 N ) beschränkt. 4.5 Histogramme Der Datenstrom bestehe aus der Folge x1 , . . . , xn von natürlichen Zahlen. Ein k-Histogramm (Z1 , . . . , Zk ) zerlegt den Zeitraum {1, . . . , n} in k Zeitintervalle Z1 , . . . , Zk und gibt für jedes Zeitintervall Zi einen konstanten Wert wi an. Damit das Histogramm das Verhalten der Folge möglichst gut wiedergibt, wird für jedes Zeitintervall Zi eine „Stufenhöhe“ wi bestimmt, so dass die quadratische Abweichung, also abweichungi (w) = X j∈Zi (xj − wi )2 86 KAPITEL 4. STREAMING DATA minimal ist. Um optimale Stufenhöhen zu bestimmen, setzen wir die Ableitung der Funktionen „abweichungi “ auf Null und erhalten die Bedingungen X −2 · (xj − wi ) = 0 ⇒ wi = j∈Zi 1 X xj . |Zi | j∈Z i Also ist der „Erwartungswert“ E(Zi ) = |Z1i | j∈Zi xj eine optimale Wahl der Stufenhöhe wi . Natürlich möchten wir ein optimales k-Histogramm berechnen und haben deshalb noch die Wahl einer optimalen Zerlegung des Zeitraums {1, . . . , n} in k Zeitintervalle. Wir definieren P Varianz(Z) = X (xj − E(Z))2 j∈Z als die „Varianz“ des Zeitintervalls Z und fordern, dass der Wert W (Z1 , . . . , Zk ) = k X Varianz(Zi ) (4.2) i=1 des k-Histogramms (Z1 , . . . , Zk ) kleinstmöglich ist. Mit anderen Worten, ein optimales kHistogramm entspricht einer Stufenfunktion, die die Folge in der euklidschen Norm optimal approximiert. Wir beschreiben zuerst einen dynamischen Programmier-Algorithmus, der ein optimales Histogramm berechnet. Unser Algorithmus bestimmt optp (m) = min{ W (Z1 , . . . , Zp ) | (Z1 , . . . , Zp ) ist ein p-Histogramm für x1 , . . . , xm } für alle Kombinationen 1 ≤ p ≤ k und 1 ≤ m ≤ n. Die Bestimmung gelingt mit Hilfe der Rekursion opt1 (m) = Varianz({1, . . . , m}), optp (m) = min {optp−1 (m∗ ) + Varianz({m∗ + 1, . . . , m}) }. m∗ <m (4.3) Um die Varianzen effizient zu berechnen, bestimmen wir in einer Vorberechnung zuerst alP Pm 2 le Präfixsummen m i=1 xi und i=1 xi und können dann die Varianz eines Zeitintervalls in konstant vielen Schritten evaluieren. Wir haben insgesamt k · n Teilprobleme zu lösen und die Lösung eines Teilproblems gelingt in Zeit O(n). Die Laufzeit ist also durch O(k · n2 ) beschränkt. Schließlich ist die Speicherkomplexität durch O(n) beschränkt, denn es genügt, die Werte optp (1), . . . , optp (m) und optp−1 (1), . . . , optp−1 (m) abzuspeichern. Damit sind die benötigten Ressourcen aber jenseits von Gut und Böse und wir erlauben deshalb (1 + ε)-approximative Histogramme. Wir beginnen mit zwei einfachen Beobachtungen. Beobachtung 4.1 Wenn Z 0 ⊆ Z für Zeitintervalle Z 0 und Z gilt, dann ist Varianz(Z 0 ) ≤ Varianz(Z). Beweis: Die Behauptung ist offensichtlich, denn Varianz(Z) = X j∈Z (xj − E(Z))2 ≥ X j∈Z 0 (xj − E(Z))2 ≥ X j∈Z 0 (xj − E(Z 0 ))2 = Varianz(Z 0 ). 4.5. HISTOGRAMME 87 Beobachtung 4.2 Wenn m1 ≤ m2 , dann ist optp (m1 ) ≤ optp (m2 ). Beweis: Wenn (Z1 , . . . , Zp ) eine Zerlegung von {1, . . . , m2 } ist, dann induziert (Z1 , . . . , Zp ) auch eine (nicht zwangsläufig optimale) Zerlegung von {1, . . . , m1 }. Der Wert der induzierten Zerlegung liegt wegen der ersten Beobachtung unterhalb des Werts der ursprünglichen Zerlegung. Die Rekursionsgleichung (4.3) ist also zusammengesetzt aus den (in m∗ ) monoton steigenden opt(m∗ ) Werten und den (ebenfalls in m∗ ) monoton fallenden Varianz({m∗ + 1, . . . , m}) Werten. Allerdings erlaubt diese Tatsache keine schnellere Bestimmung des Minimums in (4.3). Beispiel 4.2 Die Zahlen a1 , . . . , an seien nicht-negativ. Wir setzen f (i) = ij=1 aj und g(i) = Pn ist f monoton wachsend in i und g monoton fallend. Weiterhin ist j=i aj . Offensichtlich P f (i) + g(i) = ai + nj=1 aj und die Bestimmung des minimalen f (i) + g(i)-Werts ist äquivalent zur Bestimmung des minimalen ai . Allerdings ist eine 2-approximative Lösung sehr einfach P P zu bestimmen, da stets nj=1 aj ≤ f (i) + g(i) ≤ 2 · nj=1 aj gilt. P Unsere schnelle Approximation berechnet p-Histogramme für jedes p ≤ k, indem (4.3) nur in wenigen, sorgfältig ausgewählten Punkten m∗ minimiert wird. Algorithmus 4.29 Schnelle Bestimmung guter k-Histogramme mit wenig Speicher (1) Bisher wurden die Zahlen x1 , . . . , xn verarbeitet und die Zahl xn+1 sei gerade erschienen. Zu diesem Zeitpunkt sind unter Anderem für jedes p (1 ≤ p ≤ k) gespeichert: - die Folge 1 = linksp1 < linksp2 < · · · < linkspI(p) ≤ n linker Endpunkte. - für jeden rechten Endpunkt rechtspi = linkspi+1 − 1 die Werte approxp (rechtspi ) von Prechtsp Prechtsp p-Histogrammen für {1, . . . , rechtspi } sowie die Summen i=1 i xi und i=1 i x2i . /* Der Algorithmus bestimmt eine Zerlegung in p Intervalle und vereinigt dazu einige Intervalle [linkspi , rechtspi ]. Der Wert der Zerlegung von {1, . . . , m} ist approxp (m). */ Für jedes i ≤ I(p) fordern wir die Invariante approxp (rechtspi ) ≤ (1 + δ) · approxp (linkspi ) für rechtspi = linkspi+1 − 1. /* Die Invariante fordert insbesondere, dass die Varianz des Intervalls [linkspi , rechtspi ] nicht zu groß ist. Die Invariante garantiert eine gute Approximation, denn wir zeigen approxp (n) ≤ (1 + δ)p−1 · optp (n) in Lemma 4.30. */ (2) p-Histogramme für {1, . . . , n + 1} werden iterativ bestimmt. Für p = 1 setzen wir approx1 (n + 1) = Varianz({1, . . . , n + 1}): Approximation und Optimum fallen für p = 1 zusammen. Im Schritt von p auf p + 1 setzen wir approxp+1 (n + 1) = min i≤I(p) approxp (rechtspi ) + Varianz({linkspi+1 , . . . , n + 1}), 88 KAPITEL 4. STREAMING DATA Wenn approxp+1 (n + 1) = approxp (rechtspi ) + Varianz({linkspi+1 , . . . , n + 1}), dann gibt der Algorithmus die Zerlegung Zp (rechtspi ) ∪ [rechtspi + 1, n + 1] aus, wobei Zp (rechtspi ) eine Intervallzerlegung von {1, . . . , rechtspi } in p Intervalle mit Wert approxp (rechtspi ) ist. Eine geeignete Datenstruktur muss die Bestimmung von Zp (rechtspi ) erleichtern. /* Wir bestimmen also ein bestes p+1-Histogramm, indem wir die gegebene IntervallzerSIp legung {1, . . . , n} = i=1 [linkspi , rechtspi ] an allen rechten Endpunkten rechtspi aufspalten und ein jeweils bestes approximatives p-Histogramm bis zum Endpunkt rechtspi mit dem verbleibenden Intervall zusammensetzen. Wir wählen das Beste der untersuchten p + 1Histogramme als unsere approximative Lösung aus. */ Wenn approxp+1 (n + 1) > (1 + δ) · approxp+1 (linkspI(p) ), dann fügen wir das Intervall {n + 1} hinzu, d.h. wir setzen I(p) = I(p) + 1 und linksI(p) = n + 1. Ansonsten bleibt die Folge linker Endpunkte unverändert. Wir verifizieren zuerst, dass Algorithmus 4.29 gute p-Histogramme für jedes p ≤ k berechnet. Lemma 4.30 Für jedes p ≤ k gilt approxp (n) ≤ (1 + δ)p−1 · optp (n). Beweis: Wir führen eine Doppelinduktion, zuerst nach p und dann nach n durch. Für p = 1 darf nur ein einziges Zeitfenster gewählt werden und die berechnete Lösung stimmt mit der optimalen Lösung überein. Wir betrachten als Nächstes den Fall von p + 1 Zeitfenstern. Mit der Rekursionsgleichung (4.3) wissen wir, dass ein x mit optp+1 (n + 1) = optp (x) + Varianz({x + 1, . . . , n + 1}) existiert. Sei [linkspi , rechtspi ] das Intervall in dem x liegt. Da optp monoton wächst (Beobachtung 4.2), folgt optp (linkspi ) ≤ optp (x) ≤ optp (rechtspi ). Weiterhin folgt aus der Invariante in Verbindung mit der Induktionsvoraussetzung approxp (rechtspi ) ≤ (1 + δ) · approxp (linkspi ) ≤ (1 + δ) · (1 + δ)p−1 · optp (linkspi ) ≤ (1 + δ)p · optp (x) und, da Varianzen monoton fallen (Beobachtung 4.1), gilt optp+1 (n + 1) = optp (x) + Varianz({x + 1, . . . , n + 1}) ≥ (1 + δ)−p · approxp (rechtspi ) + Varianz({x + 1, . . . , n + 1}) ≥ (1 + δ)−p · approxp (rechtspi ) + Varianz({rechtspi + 1, . . . , n + 1}) ≥ (1 + δ)−p · approxp (rechtspi ) + Varianz({rechtspi + 1, . . . , n + 1}) ≥ (1 + δ)−p · approxp+1 (n + 1). Und das war zu zeigen. Wir analysieren die benötigten Zeit und Platz-Ressourcen und bestimmen dazu zuerst die Anzahl linker Endpunkte. Wir fixieren p (1 ≤ p ≤ k) und beobachten, dass Algorithmus 4.29 nur dann n + 1 als neuen linken Endpunkt hinzufügt, wenn sich die approx-Werte des linken und des rechten Endpunkts des gegenwärtig letzten Intervalls um mehr als den Faktor 1 + δ unterscheiden. 4.5. HISTOGRAMME 89 Sei MAX die größte der n Zahlen x1 , . . . , xn . Dann ist approxp (rechtspi ) ≤ und damit werden höchstens O log1+δ n · MAX2 = O( Pn 2 j=1 xj ≤ n·MAX2 log2 (n · MAX2 ) ) log2 (1 + δ) linke Endpunkte hinzugefügt. Wir wählen δ so, dass (1+δ)k = 1+ε gilt. Wegen k·log2 (1+δ) = log2 (1 + ε) erhalten wir insbesondere log2 (1 + δ) = log2 (1 + ε)/k. Also ist die Anzahl linker Endpunkte für jedes p ≤ k durch O log1+δ n · MAX2 = O( k · log2 (n · MAX) k · log2 (n · MAX2 ) ) = O( ). log2 (1 + ε) ε beschränkt. (Wir haben ln(1 + x) = Θ(x) benutzt: Siehe Lemma 1.2.) Aufgabe 49 Beschreibe eine Datenstruktur für Algorithmus 4.29. Laufzeit und Speicherplatz sollten durch O( MAX) ) beschränkt sein. k2 ε · log2 (n · Wir können zusammenfassen: Satz 4.31 Wenn die nte Zahl mit Approximationskonstante höchstens 1 + ε zu verarbeiten ist, dann ist Speicherplatz und Laufzeit O( k2 · log2 (n · MAX) ) ε ausreichend, wobei MAX = max{x1 , . . . , xn }. Für kleine Werte von k genügt also logarithmischer Speicherplatz und logarithmische Laufzeit pro Zahl. Aufgabe 50 Wir nennen eine Stichprobe der Größe k zufällig und gleichverteilt gezogen, wenn jede mögliche k-elementige −1 Teilmenge aus den letzten m ≥ k Punkten des Datenstroms die gleiche Wahrscheinlichkeit m hat. Für t ≥ k m betrachten wir zufällig gezogene Stichproben St der Größe k auf dem Zeitfenster {t − m + 1, . . . , t} und nennen die Folge (St )t≥m paarweise unabhängig, wenn je zwei Stichproben für disjunkte Zeitfenster unabhängig sind. Betrachte den folgenden Algorithmus A für den Datenstrom x1 , x2 , . . .: (1) Führe auf x1 , . . . , xm Reservoir Sampling aus, um eine Stichprobe Sm der Größe k zu erhalten. Speichere die Datenpunkte der Stichprobe in aufsteigender (Alters-)Reihenfolge in einer Schlange ab. (2) Wiederhole für jedes t = m + 1, m + 2, . . .: Falls der älteste Datenpunkt der Schlange zum Zeitpunkt t − m in die Stichprobe aufgenommen wurde, entferne ihn und nimm xt auf. Ansonsten ignoriere xt . (a) Zeige, dass Algorithmus A eine zufällig und gleichverteilt gezogene Stichprobe auf den letzten m Datenpunkten liefert. Hinweis: Was passiert mit dem charakteristischen Vektor der Stichprobe Sm im Laufe der Zeit? (b) Zeige, dass die vom Algorithmus A gelieferte Stichproben (St )t≥m nicht paarweise unabhängig sind. Aufgabe 51 Algorithmus A produziert eine periodische Stichprobe, die viele Anwendungen unmöglich macht. Wir führen deshalb einen neuen Algorithmus B ein, der eine Stichprobe der Größe 1 liefert. Sei x1 , x2 , . . . ein Datenstrom. (1) Q sei eine leere doppelt verkette Liste, die in einem Listenelement sowohl den Index, als auch den Wert eines Datenpunkts speichern kann. Der Wert kann ungesetzt bleiben. Die Listenelemente haben also die Form (t, xt ) oder (t, ∗). Die einelementige Stichprobe S initialisieren wir durch S = ∅. (2) Wiederhole für jeden Datenpunkt xt für t = 1, 2, . . .: 90 KAPITEL 4. STREAMING DATA Schritt a : Falls das erste Listenelement von Q verfällt, d.h. den Index t − m trägt, dann entferne dieses Element vom Anfang der Liste Q. Wenn das neue erste Listenelement nun den Wert xj hat, dann setze S = {xj }. Schritt b : Wenn das erste Listenelement von Q nicht verfällt, dann wirf eine Münze mit Erfolgswahrscheinlichkeit p = 1/ min(t, m). Bei einem Erfolg setze S = {xt }, lösche Q komplett und füge den Index t als einziges Listenelement in Q ein. Bei Mißerfolg tue nichts. Schritt c : Falls t nun als Index im letzten Listenelement von Q gespeichert ist, speichere dort zusätzlich den Wert xt . Wähle dann zufällig gleichverteilt einen Index i aus der Menge {t + 1, . . . , t + m}. Füge diesen Index als neues Listenelement am Ende von Q ein. (a) Zeige: Zu jedem Zeitpunkt t ≥ m (nach der Iteration für t) gibt es ein r mit Q[1] = (i1 , xi1 ), . . . , Q[r − 1] = (ir−1 , xir−1 ) und Q[r] = (ir , ∗, ) wobei t − m + 1 ≤ i1 < i2 < . . . < ir−1 ≤ t < ir und wobei xi1 die gegenwärtige Stichprobe ist. Q besitzt also stets den gegenwärtigen Stichprobenschlüssel als erstes Listenelement. Nachfolgende Listenelemente sind nach Zeitpunkt aufsteigend angeordnet und spezifizieren den jeweils neuen Stichprobenschlüssel, wenn der gegenwärtige Stichprobenschlüssel verfällt. Q ist also eine Liste von Nachrückern. (b) Zeige, dass Algorithmus B eine zufällig und gleichverteilt gezogene Stichprobe auf den letzten m Datenpunkten liefert. Gilt dieselbe Aussage auch, wenn wir Schritt b auslassen? (c) Zeige oder widerlege, dass Algorithmus B eine Folge von paarweise unabhängigen Stichproben liefert. (d) |Q| sei die Länge der Liste Q. Zeige, dass prob [|Q| > log m] ≤ m−c für jede Konstante c gilt. Hinweis: Zeige zuerst, dass prob [|Q| > r] ≤ m m−r gilt. r (e) Zeige, dass die Ungleichung E [|Q|] ≤ e für die erwartete Länge der Liste Q gilt. Hinweis: Wenn eine Zufallsvariable X nur natürliche Zahlen als Werte annimmt, dann gilt E [X] = P ∞ prob [X > i]. i=0 Teil II Internet Routing 91 93 Für die Kommunikation in Netzen stehen im Wesentlichen zwei verschiedene Paradigmen zur Auswahl. Im Circuit Switching (bzw. in der Leitungsvermittlung) wird zuerst ein Weg zwischen den Kommunikationspartnern bestimmt. Sodann werden Ressourcen auf dem Weg für die gesamte Dauer der Kommunikation reserviert und die Kommunikation kann ohne Verzug verlässlich durchgeführt werden. Man spricht hier auch von einem „Connection Oriented Service“. Circuit Switching wird vor Allem von Telefon-Gesellschaften im Festnetz eingesetzt. Die Verwendung neuer Technologien wie ATM (Asynchronous Transfer Mode) scheint aber auch im Festnetz zur zumindest partiellen Ablösung des Circuit Switching zu führen. Im Packet Switching (bzw. in der Paketvermittlung) werden Internet Daten (Zugriffe auf Web Seiten, e-mail oder Downloads) in kleine Pakete von ungefähr 1500 Bytes aufgebrochen und über mehrere Zwischenstationen verschickt. Durch das Aufbrechen der Daten in kleine Pakete können innerhalb kürzester Zeit unterschiedliche Netzwerkbelastungen durch Teilung der Ressourcen ausgeglichen werden. Darüberhinaus genügt bei dem Verlust eines Pakets die Neuanforderung des Pakets und nicht die der ganzen Datei. Allerdings leiden EchtzeitAnforderungen: Datenstaus oder der Ausfall von Links oder Routern können den Transport einiger Pakete beeinträchtigen. Packet-Switching ist heute der de facto Standard für die Internet Kommunikation. Jedes Paket besteht aus den folgenden drei Komponenten: - Der Header gibt zum Beispiel die IP-Adresse des Senders und Empfängers, die Länge des Pakets und die Paketnummer (zur Identifizierung des gegebenen Pakets in der Folge aller Pakete der verschickten Datei) an. - Die Payload besteht aus dem Informationsanteil. - Der Trailer beschreibt das Paketende und beeinhaltet auch Information zur Fehlerüberprüfung (wie etwa die Anzahl der Einsen in der Payload). Pakete werden nach einem Schichtenmodell versandt. Wir führen einige dieser Schichten gemäß steigender Abstraktion auf: - Physical Layer: verantwortlich für die physikalische Verbindung zwischen Rechnern. - Network Interface6 Layer: „Wo die Bits die Kabel treffen“. Hier wird der Transfer zwischen direkt-verbundenen Rechnern abhängig von dem Verbindungstyp —Ethernet, FDDI (Fiber Distributed Data Interface), ATM (Asynchronous Transfer Mode), etc. — geregelt. Auf diesem Layer werden die Besonderheiten der Hardware „versteckt“. - Internet Layer: Pakete werden vom Sender, über mehrere Zwischenstationen, an den Empfänger mit Hilfe des Internet Protocols7 (IP) verschickt. Ressourcen sind dynamisch zu teilen. Es gibt keinerlei Garantie, dass Pakete in der ursprünglichen Reihenfolge ankommen und IP garantiert statt dem fehlerfreien Ankommen des Pakets nur „Best Effort“. Die Fehlerbehandlung wird dem übergeordneten Transport Layer überlassen. Innerhalb eines Netzes wird das Intra-Domain Routing verwandt, während das InterDomain Routing die Reihenfolge der zu durchlaufenden Netze bestimmt. 6 Ein Interface beschreibt die Kommunikation von einem Layer an das übergeordnete Layer. Ein Protokoll ist eine Übereinkunft in Hinsicht auf die Kommunikationssprache, das Datenformat, Hardwareanforderungen etc. 7 94 - Transport Layer: verantwortlich für die fehlerfreie Kommunikation zwischen Sender und Empfänger. Diese Schicht wird durch das Transmission Control Protocol (TCP) gesteuert. Seine Aufgaben sind unter Anderen: (*) Bestätigung erhaltener Pakete, bzw. Aufforderung nach wiederholter Sendung nicht erhaltener Pakete. (*) Aufbrechen der Daten in Pakete beim Sender und Zusammensetzen der Pakete in korrekter Reihenfolge beim Empfänger. (*) Flow Control: Der Sender wird gezwungen, die Kapazitäten des Empfängers nicht zu überschreiten. (*) Congestion Control: Die durch das Netz ausgelösten Datenstaus werden durch eine angepasste Emissions- und Wiederversandsrate kontrolliert. - Application Layer: Die Kommunikation mit den Anwendungen wird geregelt. Beispiele sind Telnet (Remote Login), FTP (File Transfer Protocol) und Multimedia-Kodierung (Kompression von Audio- und Video-Daten). Wir werden uns im Folgenden mit dem Internet und dem Transport Layer beschäftigen und betrachten zuerst das Routing Problem in größerem Detail. Die in Pakete aufgeteilten Daten werden in mehreren Schritten an ihr Ziel geleitet. Der jeweils zuständige Router bestimmt die Zieladresse des Pakets und wählt dann die entsprechende Regel seiner Routingtabelle aus, wobei eine solche Regel einer Gruppe von Zieladressen einen Zwischenstop zuweist. Der Router überprüft die Belastung dieser primären Verbindung und untersucht bei Überlastung alternative Verbindungen gemäß weiterer Regeln, um eine bestmögliche Option unter den momentanen Bedingungen zu erhalten. Die Routingtabelle muss schnell veränderten Bedingungen, wie neuen oder temporär nicht erreichbaren Routern, angepasst werden; dazu wird periodisch Erreichbarkeitsinformation mit benachbarten Routern ausgetauscht. Das Internet ist in gegenwärtig ungefähr 30.000 autonome Systeme aufgeteilt. Ein autonomes System wird von einer Institution (zum Beispiel einem Internet Service Provider) unterhalten und die Institution ist verantwortlich für das Intra-Domain Routing, also das Verschicken von Paketen innerhalb eines autonomen Systems. Im Intra-Domain Routing sind EffizienzGesichtspunkte maßgebend: Pakete werden meist über kürzeste Wege verschickt. Im InterDomain Routing müssen Pakete über eine Folge von Knoten aus verschiedenen autonomen Systemen zugestellt werden. Der Wechsel zwischen autonomen Systemen wird durch besonders leistungsstarke Router vermittelt, die jede Sekunde bis zu 60 Millionen Pakete bewegen. Im Folgenden untersuchen wir Routing Algorithmen sowohl für Intra-Domain wie auch für Inter-Domain Routing. Desweiteren beschäftigen wir uns mit der durch TCP durchgeführten „Verkehrskontrolle“ (congestion control) zur Verhinderung von Datenstaus und betrachten Techniken zur Bekämpfung von denial-of-service Attacken. Kapitel 5 Routing 5.1 Routing Tabellen Eine IP-Adresse (für IP Version 4) besteht aus insgesamt 32 Bits. Diese 32 Bits bestanden anfänglich aus zwei Teilen, einer Beschreibung des Netzwerks gefolgt von einer Beschreibung des Hosts. Später entwickelten sich daraus drei Teile (Netzwerkbeschreibung, Teilnetzwerkbeschreibung und Hostbeschreibung) und mittlerweile beschreibt die IP-Adresse beliebige Netzwerkhierarchien. 32 Bits erscheinen ausreichend, da damit ungefähr 4 Milliarden Adressen zur Verfügung stehen. Allerdings beschreibt die IP-Adresse auch Routing-Informationen und deshalb ist ein nur kleiner Anteil des Adressraums auch tatsächlich nutzbar. Die stürmische Entwicklung des Internets hat dann auch in der IP Version 6 dazu geführt, dass IP-Adressen auf 128 Bits ausgedehnt werden, wobei 64 Bits für Routing Informationen und die verbleibenden 64 Bits für die Host-Identifizierung zur Verfügung stehen. Ein Router inspiziert die IP-Zieladresse α eines Pakets und sucht dann in seiner Routing Tabelle nach α, um den Link für die Weiterleitung des Pakets bestimmen zu können. Tatsächlich besteht die Routing Tabelle allerdings nur aus Adresspräfixen und der Router sucht nach dem längsten Präfix von α, der in seiner Tabelle vertreten ist. In den nächsten beiden Abschnitten wenden wir uns der Frage der Berechnung von Routing Tabellen zu. 5.2 Intra-Domain Routing Man verwendet vorwiegend Heuristiken zur Bestimmung kurzer Wege. Wir besprechen Distanz Vektor Algorithmen für das dezentrale Routing und Link State Algorithmen für das globale Routing. Beide Verfahren sind dynamisch und versuchen, sich ändernden Netzbedingungen anzupassen. Im dezentralen Routing besitzt ein Router nur Information über die direkt mit ihm verbundenen Router. Ein jeder Router u versucht, seinen Distanzvektor Du zu berechnen, wobei Du (v) = Länge eines kürzesten Weges von Knoten u nach Knoten v. Der Bellman-Ford Algorithmus erlaubt eine parallele Berechnung der Distanzvektoren, wobei wir zuerst die (für das Internet sinnlose) Annahme treffen, dass alle Router eine synchrone, 95 96 KAPITEL 5. ROUTING also eine durch eine globale Uhr getaktete Berechnung durchführen. In der iten Runde werden die Teilprobleme Dui (v) = Länge eines kürzesten Weges von u nach v mit höchstens i Kanten gelöst. Aber wie? Ein kürzester Weg von Knoten u nach Knoten v mit höchstens i Kanten wird über einen Nachbarn w von u laufen; das Teilstück ab w besitzt i − 1 Kanten und seine i−1 (v) gegeben. Als Konsequenz erhalten wir D i (v) = länge(u, w)+D i−1 (v), Länge ist durch Dw u w und wir müssen die Rekursion Dui (v) = min w,(u,w)∈E i−1 { länge(u, w) + Dw (v) } benutzen. Natürlich nutzt uns die Länge eines kürzesten Weges wenig und wir benötigen zumindest den „next hop“, also den ersten Knoten „Nächsteru (v)” auf einem kürzesten Weg von u nach v. Algorithmus 5.1 Bellman-Ford (1) Der gerichtete Graph G = (V, E) und eine Kantengewichtung länge : E → R ist gegeben. Es gelte länge(u, u) = 0 für alle Knoten u. ( (2) Setze Nächsteru (v) = v (u, v) ∈ E, und Du (v) = nil sonst ( länge(u, v) (u, v) ∈ E, ∞ sonst. (3) Wiederhole |V | − 1 mal: Parallel, für jeden Knoten u berechne Du (v) = min w,(u,w)∈E {länge(u, w) + Dw (v)} für alle Knoten v. Wenn der Wert von Du (v) sinkt, dann setze Nächsteru (v) = w. /* Warum können wir Dui (v) durch Du (v) ersetzen? */ Die parallele Laufzeit von Bellman-Ford ist durch O(|V |2 ) beschränkt, wenn wir annehmen, dass jeder Knoten nur beschränkt viele Nachbarn hat: In |V | − 1 Runden sind die Distanzvektoren zu aktualisieren, wobei pro Runde eine Aktualisierung in Zeit O(|V |) gelingt. Der Algorithmus von Bellman-Ford funktioniert sogar dann noch, wenn Router asynchron rechnen und das ist im Vergleich zu anderen kürzeste Wege Algorithmen seine wesentliche Stärke. Aufgabe 52 Bestimme die sequentielle Laufzeit des Bellman-Ford Algorithmus für einen gerichteten Graphen G = (V, E). Vergleiche den Algorithmus von Floyd mit Bellman-Ford in Abhängigkeit von der Anzahl der Kanten. Aufgabe 53 Wir analysieren den asynchronen Bellman-Ford Algorithmus für das Single-Source Problem. Algorithmus 5.2 (1) Der Knoten r ist ausgezeichnet. Setze D(r) = 0 und D(v) = ∞ für v 6= r. r sendet Null an alle Nachbarn. (2) Wenn Knoten v eine Nachricht von seinem Nachbarn u mit Wert e erhält und wenn e + d(u, v) < D(v), dann 5.2. INTRA-DOMAIN ROUTING 97 setze parent[v] = u; D(v) = e + d(u, v); sende eine Nachricht mit Wert D(v) an alle Nachbarn mit Ausnahme von u; (a) Sei D die Länge eines längsten Weges im Eingabegraphen G = (V, E). Zeige, dass höchstens O(D · |E|) Nachrichten ausgetauscht werden. (b) Zeige, dass Algorithmus 5.2 in Zeit O(|V |) läuft. Zur Bestimmung der Laufzeit kann angenommen, dass jede Nachricht N mit einer Verzögerung vN ∈ [0, 1] ankommt (c) Was ist die Laufzeit, falls alle Kantengewichte Eins sind? Was ist die Laufzeit, wenn alle Kantengewichte in der Menge {1, . . . , L} liegen? Aufgabe 54 Die Kanten eines ungerichteten Graphen mögen natürliche Zahlen als Gewichte besitzen. Nach wievielen Schritten wird der verteilte Bellman-Ford Algorithmus konvergieren, wenn L das Gewicht der schwersten Kante ist und wenn der Graph aus N Knoten besteht? Allerdings reagiert Bellman-Ford träge auf veränderte Verkehrsverbindungen wie das folgende Beispiel zeigt. Wir betrachten drei Knoten A, B und C, die wie folgt angeordnet sind. 1 A B 1 (L) C 1 Anfänglich besitzen alle Links das Gewicht 1, aber nach einer gewissen Zeit steige das Gewicht des Links von B nach C auf L. Wenn der Bellman-Ford Algorithmus synchron ausgeführt wird, dann wird Knoten B seine Distanz zu Knoten C auf 3 von vorher 1 setzen, denn A behauptet, einen Weg der Länge 2 nach C zu besitzen. Dieser Weg führt zwar über die jetzt wesentlich langsamer gewordene Verbindung von B nach C, aber das weiss B aufgrund seiner nur lokalen Information nicht. Daraufhin wird A seine Prognose auf 4 hochschrauben, denn seine Verbindung nach B hat die Länge 1. Nach i Iterationen behauptet B für ungerades i die Distanz i + 2 und A die Distanz i + 1. Erst nach proportional zu L vielen Schritten hat B die korrekte Distanz gefunden und der Prozess kommt zum Stillstand. Ist der Link von B nach C zusammengebrochen, also L = ∞, dann wird der Prozess sogar nicht zum Stillstand kommen und man spricht vom „Count-to-infinity“ Problem. Distanzvektor Protokolle werden zum Beispiel im „Route Information Protokoll“ (RIP) eingesetzt. RIP wird zum Beispiel aufgrund des Count-to-Infinity Problems nicht mehr in größeren Netzen benutzt, ist aber in kleineren Netzen immer noch populär. Stattdessen werden Pfadvektor Protokolle eingesetzt: Die Router berechnen nicht mehr nur den nächsten Hop, sondern halten eine möglichst vollständige Wegbeschreibung parat und tauschen die Beschreibungen in regelmäßigen Abständen aus. Aufgabe 55 In der „Poison Reverse“ Heuristik gibt ein Router u den Wert Du (v) = ∞ als die Länge eines kürzesten Weges von u nach v an einen Nachbarn w weiter, wenn w der nächste Router auf dem kürzesten Weg nach v ist. Die „Path“ Heuristik übermittelt den Distanzvektor und den kürzesten Weg zu jedem Eintrag. Welche der beiden Heuristiken vermeidet das Count-to-Infinity Problem? In Link State Algorithmen wird Dijkstra’s Algorithmus benutzt. Dazu muss jeder Router die Gewichte aller Kanten seines Netzes kennen. In periodischen Abständen geben deshalb die Router die Abstände1 zu ihren Nachbarn durch einen Flooding Algorithmus bekannt. Nach Beendigung des Flooding Algorithmus löst Router u das Single-Source-Shortest-Path Problem für Quelle u mit Hilfe von Dijkstra’s Algorithmus. 1 Abstände können sich dynamisch, zum Beispiel durch die Überlastung von Links, ändern. 98 KAPITEL 5. ROUTING Der Berechnungs- und Nachrichtenaufwand ist natürlich beträchtlich und Link State Algorithmen skalieren deshalb schlecht bei wachsender Netzgröße. Weiterhin werden kürzeste Wege in unkoordinierter Weise ausgewählt, was dann zu Kantenüberlastungen und dementsprechend zu Gewichtsänderungen und schließlich zu neuen Wegen führen kann. OSPF (open shortest path first) führt hierarchisches Routing als einen Kompromiss zwischen globalem und dezentralem Routing durch. In einer zwei-stufigen Hierarchie werden die Router in Regionen (oder Areas)2 aufgeteilt: Router kennen die Gewichte aller Kanten in ihrer Region und damit können Link State Algorithmen innerhalb der Region eingesetzt werden. Eine Region übernimmt also die Rolle eines „sub-autonomen“ Systems. Die wesentlichen Merkmale von OSPF sind: - Anwendung des hierarchischen Routing mit den Hierarchien „autonome Systeme, Regionen und Backbone Regionen (Routergruppen, die Regionen verbinden)“. - Anwendung von Link State Algorithmen und damit von Dijkstra’s Algorithmus innerhalb der Regionen. - Mehrfache Distanzmetriken (wie etwa geographische Distanz, Durchsatz und Verzögerung). Im nächsten Abschnitt betrachten wir das Inter-Domain Routing. Danach untersuchen wir, nach welchen Queueing-Strategien, Kollisionen aufgelöst werden sollten: Welches Paket ist über eine Kante zu befördern, wenn mehrere Pakete auf Beförderung warten? 5.3 Inter-Domain Routing Im Inter-Domain Routing werden Pakete zwischen autonomen Systemen ausgetauscht. Autonome Systeme sind in die Klassen Tier 3 (lokale Reichweite), Tier 2 (regionale Reichweite) und Tier 1 (globale Reichweite) aufgeteilt. Absprachen verschiedenster Art werden zwischen autonomen Systemen getroffen: In Transit-Verabredungen werden Pakete eines niedrigrangigen Systems in dem Netz eines hochrangigen Systems gegen finanzielle Entschädigung befördert. Peering umfasst Absprachen zwischen gleichgestellten Systemen und beinhaltet wechselseitige Beförderung von Paketen; da es sich hier häufig um Absprachen zwischen Wettbewerbern handelt, können auch hier finanzielle Entschädigungen zum Beispiel bei ungleich starkem Paketverkehr im Spiel sein. Das Border Gateway Protocol (BGP) ist der de fakto Standard für Inter-Domain Routing. Da autonome Systeme aus finanziellen Erwägungen wie auch möglicherweise aus Sicherheitserwägungen ihre eigene Routing Politik besitzen, ist eine für alle autonome Systeme akzeptable Metrik nicht zu erwarten, und BGP setzt sich deshalb nur das Ziel, den Empfänger eines Pakets ohne Zyklen zu erreichen. Zu diesem Zweck ermöglicht BGP jedem autonomen System, Klassen von Zieladressen zu veröffentlichen, die es bereit ist zu bedienen: Ein Internet Service Provider wird zum Beispiel Erreichbarkeit seiner Kunden sicherstellen wollen und wird deshalb Wege zu seinen Kunden veröffentlichen. Die Veröffentlichung von bedienten Zieladressen (oder genauer, die Veröffentlichung von Wegen zu diesen Zieladressen) ist also die Grundlage, auf der die Erreichbarkeit eines jeden Empfängers sichergestellt werden muss. Algorithmus 5.3 BGP Routing Nachrichten. 2 Typischerweise besteht eine Area aus zwischen 300-500 Routern und zwischen 700-1700 Area-lokalen Links. 5.3. INTER-DOMAIN ROUTING 99 (1) Shutdown: Ein benachbarter Router wird über das Kappen der Verbindung aufgrund eines beobachteten Fehlers informiert. (2) Keepalive: Jeder BGP-Router sendet mindestens alle drei Sekunden ein Lebenszeichen. Erhält der Router andererseits innerhalb eines gewissen Zeitraums kein Lebenszeichen von einem benachbarten BGP-Router, dann wird die Verbindung zu diesem Router durch Shutdown geschlossen und alternative Routen werden eingeführt. (3) Update: Ein BGP-Router verschickt bzw. erhält Routing Information von benachbarten BGP-Routern. Die Routing Information Withdrawn Route beschreibt einen nicht mehr benutzbaren Weg zu einer Klasse von IP-Adressen 3 , während die Routing Information Path eine neue Verbindung mit einer Klasse von IP-Adressen publiziert. Die Publikation besteht aus der Klasse, dem nächsten Router („next hop“) auf dem Weg und der Folge der autonomen Systeme auf dem Weg. Kommentar: Jedes autonome System publiziert somit Aktualisierungen der erreichbaren IP-Adressen über die Update-Nachricht. Autonome Systeme haben somit über die Veröffentlichung von Routen die Möglichkeit, - eigenen Kunden uneingeschränkten Transit zu bieten, - in Peering-Absprachen Transit über sorgfältig ausgewählte Routen zu gewähren - und Transit zum eigenen Provider auf eigene Transit-Kunden einzuschränken. (4) Decision: Der Router empfängt eine Update-Nachricht über einen neuen Weg für eine Klasse von IP-Adressen. Der Router berechnet seine bevorzugte Route neu und entscheidet dann, ob seine Routing Tabelle zu verändern ist. Kommentar: Die Kommunikation des Weges erlaubt eine Paketlieferung ohne Zyklen, da strikt darauf geachtet wird, dass kein autonomes System zweimal in der Folge der autonomen Systeme vorkommt. Stellt zum Beispiel ein Router fest, dass sein System bereits in einer veröffentlichten Route enthalten ist, dann wird diese Veröffentlichung verworfen. (5) Policy: Router, die zu demselben autonomen System gehören, können sich über neue Entscheidungsprozeduren absprechen. BGP wurde entworfen, um die folgenden wesentlichen Bedingungen zu erfüllen: - Skalierbarkeit: Inter-Domain Routing muss auch bei einer wachsenden Anzahl autonomer Systeme effizient durchführbar sein. - Jedes autonome System erhält die Möglichkeit, seine Routing-Entscheidungen dynamisch zu ändern. BGP stellt dazu die Policy-Nachricht (5) zur Verfügung. - Kooperation zwischen Wettbewerbern ist im Interesse der autonomen Systeme und wird durch die Veröffentlichung von Routen ermöglicht. 3 Eine Klasse wird durch einen IP-Präfix beschrieben. 100 KAPITEL 5. ROUTING 5.4 Multicast Routing Wir haben bisher nur das Unicast Routing Problem besprochen, also das Versenden einer Nachricht von einem Sender an einen Empfänger. Im Multicast Routing ist hingegen ein multimedialer Datenstrom (Video on Demand, Interaktives Fernsehen, Live Übertragungen) von möglicherweise mehreren Sendern an mehrere Empfänger zu verschicken. Spezielle Routing Methoden sind einerseits aufgrund der enormen Datenmengen (im Umfang von bis zu mehreren Terrabits pro Sekunde) und andererseits aufgrund der benötigten hohen Dienstgüte erforderlich. Wir benutzen die folgende Modellierung. Gegeben ist ein gerichteter Graph G mit beidseitig gerichteten Kanten, dessen Knoten den Router entsprechen. Jeder Anwender ist einem Router zugeordnet, seinem „First Hop Router“. Die gegenwärtig benutzten oder vorgeschlagenen Routing Methoden weisen einer jeden Multicast-Gruppe g einen oder mehrere Multicast-Bäume zu, über die der Datenstrom entlang der Kanten des Baums an die Knoten weitergereicht wird. Die Überflutung des Netzes mit Kopien des Datenstroms wird also umgangen, da jede Kante eines Multicast-Baums nur ein einziges Multicast-Paket transportieren muss. Im Entwurf eines erfolgreichen Multicast müssen die folgenden Fragen beantwortet werden: - Wie wird ein Multicast-Baum bestimmt? - Wie wird das Einfügen bzw. das Entfernen von Anwendern gehandhabt? - Wie können die fairen Übertragungskosten, die von einem bestimmten Empfänger zu bezahlen sind, ermittelt werden? (Die für den Datentransport anfallenden Kosten lassen sich wegen der Bandbreitenteilung nicht a priori bestimmen.) Welchen Betrag sollte ein Internet-Service-Provider vom Sender verlangen, wenn dieser kostenpflichtig ist? (Die im Unicast-Modell gängige Bezahlung proportional zur Emissionsrate des Senders ist im Multicast-Modell sinnlos.) Kommerzielle Überlegungen wie bereits im letzten Punkt angesprochen, haben dazu geführt, dass Multicast im allgemein zugänglichen Internet nicht angeboten wird. Insbesondere unterstützen die meisten Router keinen Multicast, und Multicast ist auf sogenannte MulticastInseln, also bestimmte Multicast-fähige Netzwerke eingeschränkt. Das Mbone (Multicast Backbone), eine Erweiterung des Internet Protokols (IP, Version 4), verbindet diese Inseln mit Hilfe von Multicasting-fähigen Routern. (Ein Multicast-Tunnel zwischen je einem Rechner der betroffenen Netzwerke wird aufgebaut und Multicast-Paket werden über UnicastVerbindungen in das jeweils andere Netzerk transportiert, wo sie als Multicast-Pakete weitergereicht werden.) Wie könnte ein Multicast-Protokoll idealerweise aussehen? In PIM4 (dense mode) nimmt man an, dass Mitglieder der Multicast-Gruppe dicht über das Netzwerk verteilt sind. Anfänglich werden Multicast-Pakete durch Flutung in das Netzwerk gepumpt. Zur Weiterleitung verwendet ein Router die Methode des Reverse Path Forwarding (RPF): Ein Paket von einem Sender S wird nur dann von einem Router R akzeptiert, wenn R das Paket von einem Nachbarn Q erhält und wenn R den Link (R, Q) im Unicast-Routing zum Empfänger S benutzen 4 Protocol Independent Multicast 5.4. MULTICAST ROUTING 101 würde. Ein akzeptiertes Paket wird dann über alle Links, mit Ausnahme des Links (P, Q) weitergeleitet. RPF baut somit einen Baum „kürzester Wege“. Auf die Überflutung folgt ein Pruning-Schritt, der in den Blättern des Baums beginnt: Wenn ein Router feststellt, dass keine Gruppenmitglieder zu seinem Teilbaum gehören, dann meldet er dies an seinen Vaterknoten weiter. Diese Nachricht wird solange „hochgetragen“, bis ein Router erreicht wird, der mindestens ein Kind mit erreichbaren Gruppenmitgliedern besitzt. Dieser Router vermerkt die negativen Nachrichten und der Baum wird entsprechend gestutzt. Nach einer fest vorgegebenen Zeitschranke beginnt ein neuer Zyklus des Überflutens gefolgt vom Pruning. Wenn sich neue Mitglieder im Netz anmelden, wird dies dann im darauffolgenden Zyklus entdeckt. Der administrative Aufwand durch die Flutung-Pruning Zyklen ist hoch und dementsprechend werden im Fall dünnbesetzter Gruppen andere Methoden verwandt. 102 KAPITEL 5. ROUTING Kapitel 6 Queueing-Strategien Queueing-Strategien haben einen großen Einfluss auf die Schnelligkeit der Beförderung. Wir nehmen an, dass jede Kante e eine Schlange se besitzt, in der die Pakete auf ihre Beförderung über die Kante e warten. Um die Notation zu vereinfachen, nehmen wir zusätzlich an, dass in jedem Schritt nur ein Paket über eine Kante befördert werden kann. Die Queueing-Strategie muss dann das zu transportierende Paket aus den wartenden Paketen auswählen. Die FIFO-Strategie (First-In-First-Out) und ihre Varianten wird häufig angewandt. In FairQueueing wird für jede Kante e und für jeden Absender a eine Schlange se,a eingerichtet. Die Schlangen werden sodann für jede Kante e in Round-Robin Manier durchlaufen und das zu befördernde Paket der aktuellen Schlange wird nach dem FIFO-Prinzip bestimmt. Auf diese Art und Weise werden Absender mit geringem Paketverkehr nicht durch Absender mit großem Paketverkehr benachteiligt. Gewichtetes Fair-Queueing ist eine zweite Variante; hier werden die Schlangen nicht nach Round-Robin, sondern gemäß den Gewichten der Schlangen abgearbeitet. Wir betrachten nur Greedy-Strategien: Zu jedem Zeitpunkt wird ein Paket ausgewählt und weitergeleitet, wenn die jeweilige Schlange nichtleer ist. Neben der FIFO-Strategie sind vor Allem die folgenden Greedy-Strategien von Interesse: - Farthest-To-Go (FTG): Das Paket, das noch die meisten Kanten zu durchlaufen hat, wird gewählt. - Nearest-To-Source (NTS): Das Paket, das bisher die wenigsten Kanten durchlaufen hat, wird gewählt. - Longest-In-System (LIS): Das Paket, das die meiste Zeit im System verbracht hat, wird gewählt. - Shortest-In-System (SIS): Das Paket, das die kürzeste Zeit im System verbracht hat, wird gewählt. - Nearest-To-Go (NTG): Das Paket, das noch die wenigsten Kanten zu durchlaufen hat, wird gewählt. - Farthest-From-Source (FFS): Das Paket, das bisher die meisten Kanten durchlaufen hat, wird gewählt. 103 104 6.1 KAPITEL 6. QUEUEING-STRATEGIEN Stabilität Wir haben verschiedene Auswertungsmöglichkeiten. Ein statistischer Ansatz aus der Theorie der Warteschlangen legt eine Emissionsverteilung zugrunde und misst das erwartete Verhalten und die Varianz. Natürlich ist hier nicht klar, welche Verteilung das tatsächliche Paketaufkommen am besten wiedergibt, und wir wählen stattdessen einen Worst-Case Ansatz: Ein bösartiger Gegner versucht, die Anzahl der sich im System befindlichen Pakete „hochzuschaukeln“. Wir fragen, ob eine vorgegebene Queuing Strategie jeden Gegner in jedem Graphen in Schach halten kann. Definition 6.1 G sei ein gerichteter Graph. (a) Ein (r, b)-Gegner G darf für jeden Knoten Pakete injizieren und deren Wege festlegen. Für jedes Zeitintervall I und für jede Kante e dürfen allerdings höchstens r · |I| + b der während I injizierten Pakete die Kante e in ihrem vorgeschriebenen Weg besitzen. r heißt die Injektionsrate und b die maximale Burstiness. /* Der Gegner erhält also die Möglichkeit, Wege für die von ihm injizierten Pakete vorzuschreiben, wobei aber keine Kante überladen werden darf. Damit wird ein Gegner im Allgemeinen über eine Kante e laufende Pakete in gleichmäßiger Geschwindigkeit injizieren. Allerdings sind bis zu b Ausnahmen erlaubt. */ (b) Eine Queueing-Strategie ist auf G gegen einen Gegner G stabil, wenn es eine Konstante CG gibt, so dass zu jedem Zeitpunkt die Anzahl der im System verbleibenden Pakete durch CG beschränkt ist, wenn die Pakete von G in ein Anfangs leeres System injiziert wurden. (c) Eine Queueing-Strategie ist stabil, wenn die Strategie gegen jeden (r, b)-Gegner mit Injektionsrate r < 1 auf jedem gerichteten Graphen stabil ist. /* Beachte, dass keine Queueing-Strategie gegen (r, b)-Gegner mit Injektionsrate r > 1 stabil sein kann. */ Wir sind vor Allem an stabilen Queueing-Strategien interessiert. Eine stabile QueueingStrategie muss für jeden Gegner und für jeden Graphen garantieren, dass kein Hochschaukeln erfolgt. Wir haben angenommen, dass eine Kante nur ein Paket transportieren kann und deshalb testet ein (r, b)-Gegner für r < 1 die Queueing-Strategie nahe an der maximal tolerierbaren Auslastung: Für eine Injektionsrate von r > 1 kann ein Hochschaukeln nicht verhindert werden. Ein bösartiger (r, 0)-Gegner wählt die zum jeweiligen Zeitpunkt für die Queueing-Strategie schwierigsten Wege und hat zusätzlich die Möglichkeit „Bursts“ einzubauen, also zu einem Zeitpunkt sogar bis zu b Pakete zu injizieren, die (irgendwann) eine bestimmte Kante traversieren müssen. Obwohl eine Injektionsrate r < 1 unterhalb der maximalen Kapazität liegt, können Datenstaus aufgebaut werden: Wir setzen r = 21 und wählen N gerichtete Wege WN −1 , . . . W0 der Längen 2 · (N − 1), 2 · (N − 2), . . . , 2, 0. Weg Wi endet im Knoten ui , der den Knoten u als einzigen Nachfolger besitzt: u seinserseits besitzt nur den Nachfolger v. Wir provozieren einen Datenstau für die Kante (u, v) (für Injektionsrate r = 12 ), wenn wir im ersten Schritt ein Paket in den ersten Knoten des Weges WN −1 , im dritten Schritt ein Paket in den ersten 6.1. STABILITÄT 105 Knoten des Weges WN −2 etc. injizieren. Nach Injektion eines Pakets in den einzigen Knoten von W0 wird eine Greedy Queueing-Strategie alle Pakete in den Knoten u gepumpt haben, und wir haben eine Schlange von N Paketen erzeugt, die alle auf ihren Transport über die Kante (u, v) warten. Wenn eine Queueing-Strategie gegen einen Gegner stabil ist, dann besitzen alle Schlangen zu jedem Zeitpunkt eine Höchstzahl von Paketen. Bedeutet Stabilität aber auch, dass Pakete in beschränkter Zeit zugestellt werden? Gibt es einen direkten Zusammenhang zwischen maximaler Zustellzeit und der maximalen Größe von Schlangen? Beide Fragen besitzen eine positive Antwort für r < 1, denn jede Schlange wird in einem genügend langen Zeitfenster mindestens einmal entleert und jedes wartende Paket kann somit die jeweilige Kante in diesem Zeitraum überqueren: Lemma 6.2 Die fundamentale Beobachtung Wir fixieren eine Greedy Strategie. Sei e eine Kante eines vorgegebenen Graphen. Wenn es zum Zeitpunkt t genau k − 1 Pakete im System gibt, die die Kante e in ihrer Wegbeschreibung k+b besitzen, dann wird die Schlange von e irgendwann während der nächsten 1−r Schritte leer sein. k+b Beweis: Wir fixieren einen Zeitpunkt t und betrachten das Zeitfenster Z = [t + 1, t + 1−r ]. Wenn ein Paket P die Schlange von e im Zeitfenster Z erreicht hat, dann war P entweder zum k+b Zeitpunkt t bereits im System oder aber ist eines von höchstens r · 1−r + b später injizierten Paketen. Also möchten insgesamt nur höchstens k−1+r· k+b (1 − r) · (k + b − 1) k+b k+b +b= +r· < 1−r 1−r 1−r 1−r Pakete die Kante e im Zeitfenster Z durchlaufen und die Behauptung folgt, da wir nur Greedy Strategien betrachten. Die folgende Anwendung von Lemma 6.2 ist typisch: Angenommen ein Paket P wartet zum Zeitpunkt t in der Schlange einer Kante e. Wenn es zum Zeitpunkt t genau k − 1 Pakete im System gibt, die auch die Kante k+b e in ihrer Wegbeschreibung besitzen, dann wird P die Kante e nach höchstens 1−r Schritten überqueren. Die nächste Aussage stellt einen Zusammenhang zwischen maximaler Schlangengröße und maximaler Zustellzeit her. Lemma 6.3 G = (V, E) sei ein gerichteter Graph und es gelte r < 1. (a) Es gelte k · |E| > b. Wenn zu keinem Zeitpunkt eine Schlange mehr als k Pakete besitzt, dann wird jedes Paket, das mit einem Weg der Länge höchstens d injiziert wurde, nach höchstens 2·k·d·|E| Schritten zugestellt. 1−r (b) Wenn jedes Paket nach höchstens s Schritten zugestellt wird, dann befinden sich zu jedem Zeitpunkt höchstens s Pakete in einer Schlange. Beweis (a): Nach Annahme besitzt jede Schlange höchstens k Pakete und damit befinden sich zu jedem Zeitpunkt höchstens k ·|E| Pakete in dem System. Wir betrachten eine beliebige Schlange S zu einem beliebigen Zeitpunkt T und wissen mit Lemma 6.2, dass S irgendwann während der nächsten k·|E|+1+b ≤ 2·k·|E| 1−r 1−r Schritte geleert wird. 106 KAPITEL 6. QUEUEING-STRATEGIEN Also überquert jedes Paket mindestens eine Kante innerhalb von wie behauptet nach höchstens 2·k·d·|E| 1−r 2·k·|E| 1−r Schritten und kann Schritten zugestellt werden. (b) Wenn sich zu irgendeinem Zeitpunkt mehr als s Pakete in einer Schlange S aufhalten, dann wird das niedrigst-rangige Paket in S für mehr als s Schritte aufgehalten. Stabilität von Shortest-In-System: Der Graph G = (V, E) ist ebenso vorgegeben wie der (r, b)-Gegner G mit r < 1. Um die maximale Verweildauer eines Pakets zu bestimmen, definieren wir die rekursive Folge kj +b (kj ) durch k1 = b und kj+1 = 1−r . Die Folge gibt die Maximalzahl kj von rivalisierenden Paketen an, wenn bereits j Kanten traversiert wurden: Lemma 6.4 Sei e eine beliebige Kante und sei P ein beliebiges Paket, das e (irgendwann) durchlaufen möchte. Wenn P die Schlange seiner jten Kante erreicht, dann gibt es höchstens kj − 1 andere Pakete im System, die auch die Kante e in ihrer Wegbeschreibung besitzen und eine mindestens so hohe Priorität wie P haben. Beweis: Sei e eine beliebige Kante und sei P ein beliebiges Paket. Wir führen einen induktiven Beweis nach j. Wenn P in seine erste Schlange eingefügt wird, dann haben nur die gleichzeitig mit P injizierten Pakete eine gleichhohe Priorität. Aber in einem Schritt dürfen insgesamt höchstens br + bc = b = k1 Pakete injiziert werden, die e traversieren möchten. Für den Induktionsschritt betrachten wir zuerst die jte Kante ej des Weges von P und nehmen an, dass P gerade die Schlange von ej erreicht hat. Nach Induktionsannahme gibt es zu diesem Zeitpunkt höchstens kj − 1 Pakete, die ej auch in ihrer Wegbeschreibung besitzen und eine mindestens so hohe Priorität wie P haben. Wir wenden Lemma 6.2 an und erhalten, dass kj +b P die jte Kante nach höchstens 1−r Schritten überquert und damit die Schlange der Kante ej+1 erreicht. kj +b In der Wartezeit können höchstens r · 1−r + b Pakete injiziert werden, die e als Kante in ihrer Wegbeschreibung besitzen. Wenn P die Schlange von ej+1 erreicht, haben somit höchstens kj − 1 + r · kj + b kj + b + b = (1 − r + r) · − 1 = kj+1 − 1, 1−r 1−r um e rivalisierende Pakete eine mindestens so hohe Priorität wie P. Satz 6.5 SIS ist stabil. Wenn d die Länge eines längsten Weges ist, dann besitzt keine SchlanP ge mehr als kd Pakete und kein Paket verweilt für mehr als (d · b + di=1 ki )/(1 − r) Schritte im System. Fazit: Wenn nur Wege logarithmischer Länge vorgegeben werden, dann verweilt jedes Paket nur für polynomiell viele Schritte im System. Beweis: Wenn zu irgendeinem Zeitpunkt mehr als kd Pakete in der Schlange zu einer Kante e warten, dann betrachte ein Paket P, das unter den wartenden Paketen die längste Zeit im System ist. Paket P hat somit mehr als kd − 1 Rivalen, die e traversieren möchten und eine mindestens gleichhohe Priorität besitzen. Dies ist im Widerspruch zu Lemma 6.4, da kd ≥ kj für alle j. Weiterhin überquert ein Paket seine jte Kante nach höchstens (kj + b)/(1 − r) Schritten und damit folgt auch die Schranke für die Verweildauer. 6.1. STABILITÄT 107 Aufgabe 56 Zeige, dass LIS stabil ist. Wenn d die Länge eines längsten Weges ist, dann besitzt jede Schlange höchstens b b + b Pakete, und die Verweildauer eines Pakets ist höchstens r·(1−r) d. (1−r)d Stabilität von Farthest-To-Go: Sei m die Kantenzahl von G und sei d die Länge eines längsten einfachen1 Weges von G. Wir definieren die rekursive Folge (ki ) durch ki = 0 für i > d und ki = m · ki+1 + m · b für 1 ≤ i ≤ d. Satz 6.6 FTG ist stabil. Es sind stets höchstens k1 Pakete im System, jede Schlange enthält höchstens k2 + b Pakete und jedes Paket hat eine Verweildauer von höchstens (d · (b + 1) + d X ki )/(1 − r). i=2 Beweis: Wir zeigen durch eine Rückwärts-Induktion, dass zu jedem Zeitpunkt die Anzahl der Pakete, die noch mindestens i Kanten traversieren müssen, durch ki beschränkt ist. Die Behauptung ist für i > d trivial, denn dann ist ki = 0. Sei e eine beliebige Kante. Wir definieren Xi (e, t) als die Menge der Pakete in der Schlange von e zum Zeitpunkt t, die noch mindestens i Kanten traversieren müssen. Desweiteren sei t∗ < t der letzte Zeitpunkt, zu dem Xi (e, t∗ ) leer war. (Da das System anfänglich leer ist, existiert t∗ .) Wie gelangt ein Paket P in die Menge Xi (e, t)? Entweder wurde P erst nach dem Zeitpunkt t∗ injiziert oder P musste zum Zeitpunkt t∗ noch mindestens i + 1 Kanten traversieren, denn es hatte die Schlange von e zum Zeitpunkt t∗ noch nicht erreicht. Im ersten Fall ist P eines von höchstens r · (t − t∗ ) + b Paketen, denn höchstens r · (t − t∗ ) + b im Zeitraum [t∗ + 1, t] injizierte Pakete dürfen die Kante e in ihrer Wegbeschreibung besitzen. Im zweiten Fall ist P nach Induktionsannahme eines von höchstens ki+1 Paketen. Wir wenden die Farthest-To-Go Heuristik an und im Zeitfenster [t∗ + 1, t] muss deshalb stets ein Paket mit noch mindestens i zu traversierenden Kanten die Schlange von e verlassen –denn t∗ ist der letzte Zeitpunkt, zu dem Xi (e, t∗ ) leer war. Wir erhalten |Xi (e, t)| ≤ ki+1 + r · (t − t∗ ) + b − (t − t∗ ) = ki+1 − (1 − r) · (t − t∗ ) + b ≤ ki+1 + b. (6.1) Also gibt es höchstens m · ki+1 + m · b = ki Pakete, die noch mindestens i Kanten traversieren müssen und wir haben den Induktionsschritt abgeschlossen. Die Größe der Schlange von e zum Zeitpunkt t stimmt mit |X1 (e, t)| überein. Da |X1 (e, t)| ≤ k2 + b aus (6.1) folgt, ist die maximale Größe einer Schlange durch k2 + b beschränkt; als zusätzliche Konsequenz halten sich nie mehr als m · (k2 + b) = k1 Pakete im System auf. +1+b Weiterhin folgt t − t∗ ≤ ki+11−r mit Lemma 6.2: Zum Zeitpunkt t∗ war Xi (e, t∗ ) leer und ∗ alle zum Zeitpunkt t schon im System befindlichen Pakete aus Xi (e, t) mussten mindestens i + 1 Kanten zurücklegen. Also wird jedes Paket mit i noch zu traversierenden Kanten nach 1 Ein einfacher Weg traversiert jeden Knoten höchstens einmal. 108 KAPITEL 6. QUEUEING-STRATEGIEN höchstens durch ki+1 +1+b 1−r Schritten die nächste Kante traversiert haben, und die Verweildauer ist d X ki+1 + 1 + b 1−r i=1 Pd = i=2 ki + d · (b + 1) 1−r beschränkt, denn kd+1 = 0. Aufgabe 57 Pd Gib einen geschlossenen Ausdruck für k1 , k2 und k an. i=2 i Aufgabe 58 Wir betrachten die Nearest-To-Source Strategie, die stets die Pakete mit den wenigsten bereits durchquerten Kanten bevorzugt. Wir definieren eine Folge (li ) mit l0 = 0 und li = m · li−1 + m · b sonst. (a) Zeige : li = kd−i+1 . (b) Zeige, dass die Zahl der im System befindlichen Pakete, die bisher höchstens i Schritte zurückgelegt haben, zu jedem Zeitpunkt durch li beschränkt ist. (c) Leite Schranken für die maximale Paketzahl im System und für die maximale Transportzeit eines Paketes ab. Folgere daraus die Stabilität von NTS. 6.2 Instabile Queueing-Strategien In den Konstruktionen benutzen wir das folgende Lemma, das eine beliebige Konfiguration als Anfangskonfiguration erlaubt. Lemma 6.7 Die Queueing-Strategie Q sei instabil gegen einen (r, b)-Gegner G auf dem Graphen G, wenn mit einer (möglicherweise) nicht-leeren Konfiguration begonnen wird. Dann gibt es einen Graphen G∗ und einen (r, b)-Gegner G ∗ , so dass Q auch instabil auf G∗ gegen G ∗ ist, wenn mit der leeren Konfiguration begonnen wird. Beweis: Wir kleben an jeden Knoten v von G einen Baum Tv , indem wir die Wurzel von Tv mit v identifizieren. Wenn Knoten v ursprünglich pv Pakete erhalten hat, dann erhält die Wurzel genau pv Kinder, die jeweils „Anführer“ einer genügend langen Kette sind. Der Baum Tv muss so gebaut sein, dass 1.) in jedem 1r ten der ersten 1 r · P v∈V pv Schritte genau ein Paket in ein Blatt injiziert wird, 2.) sich Pakete erst an der Wurzel ihres Baums treffen und 3.) die Pakete eines jeden Baums unter jeder Greedy-Strategie die Wurzel zum selben Zeitpunkt erreichen. Sei t∗ der Zeitpunkt, zu dem alle Pakete ihre Wurzel erreicht haben. Vom Zeitpunkt t∗ ab, übernimmt der alte Gegner G auf der jetzt erreichten Wunschkonfiguration. Wir weisen die Instabilität von FIFO bereits für ein System von vier Knoten a, b, c und d nach. Die vier Knoten bilden den Kreis a → b ⇒ c → d ⇒ a, wobei b über die zwei Kanten e1 = (b, c) und e2 = (b, c) mit seinem Nachfolger c und auch d über die zwei Kanten f1 = (d, a) und f2 = (d, a) mit seinem Nachfolger a verbunden ist. Satz 6.8 Für r ≥ 0.85 gibt es eine Anfangskonfiguration, auf der FIFO für den obigen Viererzyklus gegen einen (r, 0)-Gegner instabil ist. 6.2. INSTABILE QUEUEING-STRATEGIEN 109 b e1 a e2 c f1 f2 d Abbildung 6.1: Ein schwieriger Graph für FIFO Beweis: Wir konstruieren einen (r, 0)-Gegner in Phasen, so dass die Schlange von (a, b) zu Anfang der 2 · jten Phase mindestens 2 · j Pakete enthält, während die Schlange von (c, d) am Ende der Phase mindestens 2 · j + 1 Pakete enthält. Für ungerade Phasen 2 · j + 1 wird die Konstruktion analog verlaufen, wobei wir aber mit mindestens 2 · j + 1 Paketen in der Schlange von (c, d) beginnen und mit mindestens 2 · j + 2 Paketen in der Schlange von (a, b) enden. Offensichtlich folgt hieraus die behauptete Instabilität. Wir definieren den Gegner in Phase 2 · j unter der Voraussetzung, dass eine Menge W von n ≥ 2 · j Paketen in der Schlange von (a, b) wartet. Diese n Pakete werden dann später in ihrem Zielknoten b aus dem System genommen. 1.) Während der ersten n Schritte wird eine Menge X von r · n Paketen mit der Wegbeschreibung (a, b), e2 , (c, d) in den Knoten a injiziert. Alle Pakete in X müssen nach Voraussetzung in der Schlange von (a, b) warten, da die n Pakete aus W nach der FIFO-Regel Vorfahrt haben. 2.) Während der nächsten r · n Schritte wird eine Menge Y von r2 · n Paketen mit der Wegbeschreibung (a, b), e1 , (c, d) in den Knoten a injiziert. Diese Pakete müssen allerdings erst den vollständigen Transport der Pakete aus X über die Kante (a, b) abwarten. Gleichzeitig wird der Weitertransport der jetzt in b ankommenden Pakete aus X über die Kante e2 aufgehalten, indem r2 · n Pakete mit Wegbeschreibung e2 in b injiziert werden. Diese Pakete vermischen sich mit den Paketen aus X und die Pakete aus X 1 erhalten eine Dichte von r+1 in der Schlange von e2 : In K Schritten werden r · K Pakete neu injiziert, K Pakete aus X sind in der Schlange angekommen und insgesamt sind (r + 1) · K angekommen. 1 Dementsprechend kreuzen während dieser r · n Schritte nur r · n · r+1 Pakete aus X die 2 r·n ·n Kante e2 und r ·n− r+1 = rr+1 Pakete aus X verbleiben in b. Alle Pakete aus Y befinden sich weiterhin im Knoten a, fließen aber in den nächsten Schritten ohne Verzug über die Kanten (a, b) und e1 in den Knoten c. 2 ·n Pakete aus X und und die 3.) Während der nächsten r2 · n Schritte bewegen sich die rr+1 2 r ·n Pakete aus Y über die Kanten e2 bzw. e1 und treffen sich im Knoten c. Gleichzeitig werden r3 · n Pakete mit Wegbeschreibung (c, d) im Knoten b injiziert. 2 ·n Damit rivalisieren insgesamt r2 · n + rr+1 Pakete aus X ∪ Y mit den neu injizierten r3 · n Paketen um die Kante (c, d) und nach diesen r2 · n Schritten enthält die Schlange von 2 ·n (c, d) mindestens r3 · n + rr+1 Pakete. 110 KAPITEL 6. QUEUEING-STRATEGIEN 2 ·n Wir beachten, dass r3 · n + rr+1 > n, denn r3 · (r + 1) + r2 > r + 1 für r ≥ 0.85. Da die Konstruktion auch für ungerade Phasen analog verläuft, ist die Behauptung gezeigt. Es kann gezeigt werden, dass FIFO selbst für beliebig kleine Injektionsraten r > 0 instabil ist [KMS]. Da FIFO von vielen Routern benutzt wird, kann damit ein „schleichender“ Angriff erfolgreich durchgeführt werden, solange der Angreifer die Wegbeschreibung der Pakete kontrolliert: Selbst nur langsam eingefügte Pakete können nicht schnell genug vom System befördert werden. Satz 6.9 Nearest-To-Go ist für r > √1 2 instabil gegen einen (r, 0)-Gegner. Beweis: Wir modifizieren das „FIFO-Netz“ geringfügig und arbeiten stattdessen mit einem Netz aus sechs Knoten. b e1 e2 c a b’ f d’ f2 1 d Abbildung 6.2: Ein schwieriger Graph für NTG Wie in der Konstruktion für FIFO schaukeln wir das System langsam hoch. Wir machen zu einem beliebigen Zeitpunkt in unserer Konstruktion die folgende Annahme: Wenn die im System befindlichen Pakete Vorfahrt haben, dann wird in den nächsten N Schritten jeweils ein Paket mit Ziel b0 oder b die Kante (a, b0 ) durchlaufen. Wir injizieren jetzt Pakete in zwei Phasen, um mehr als N Pakete mit Ziel d0 oder d zu produzieren, die den Knoten d0 noch nicht erreicht haben. Phase 1 dauert N Schritte. Wir fügen in diesem Zeitraum eine Menge X von r · N Paketen mit Wegbeschreibung (a, b0 ), (b0 , b), e1 , (c, d0 ) im Knoten a ein. Nearest-To-Go bewegt nur die N ursprünglichen Pakete, da diese Pakete die wenigsten Kanten zu durchlaufen haben; alle Pakete aus X müssen warten. Phase 2 dauert r · N Schritte. Wir injizieren zwei Paketmengen Y und Z von jeweils r2 · N Paketen. Die Pakete in Y werden im Knoten a eingefügt und haben den langen Weg (a, b0 ), (b0 , b), e2 , (c, d0 ), (d0 , d) vor sich. Die Pakete in Z hingegen werden im Knoten b eingefügt und durchlaufen den kurzen Weg e1 . Am Ende der zweiten Phase haben alle Pakete aus X den Knoten a verlassen, während alle Pakete aus Y in a warten müssen: Das Ziel d für die Pakete aus Y ist weiter entfernt als das Ziel d0 für die Pakete aus X. Die Pakete aus X müssen aber die r2 · N Pakete aus Z an sich vorbeiziehen lassen und am Ende der zweiten Phase haben deshalb r2 · N Pakete aus X und alle r2 · N Pakete aus Y den Knoten d0 noch nicht erreicht. Wenn wir also keine weiteren Pakete injizieren, dann wird in den nächsten M ≥ 2 · r2 · N > N Schritten jeweils ein Paket mit Ziel d0 oder d die Kante (c, d0 ) durchlaufen. Wir treffen also eine im Vergleich zum Anfang der Konstruktion ähnliche Situation mit diesmal aber mehr als N involvierten Paketen an. Die Instabilität von Nearest-To-Go ist nachgewiesen, wenn 6.2. INSTABILE QUEUEING-STRATEGIEN 111 wir unsere bisherige, im Knoten a beginnende Konstruktion jetzt im Knoten c entsprechend beginnen lassen. Aufgabe 59 Zeige, dass auch Farthest-From-Source gegen einen (r, 0)-Gegner für r > √1 2 instabil ist. Fazit: Farthest-To-Go, Nearest-To-Source, Longest-In-System und Shortest-In-System sind stabil. Die populäre FIFO Strategie wie auch Nearest-To-Go und Farthest-From-Source sind hingegen instabil; Gleiches kann auch für die LIFO-Strategie gezeigt werden. Diese Strategien können also durch bösartig verteilte Pakete in die Knie gezwungen werden. Aufgabe 60 Die LIFO-Strategie gibt stets dem Paket den Vorzug, welches die geringste Zeit wartet. Wir wollen zeigen, dass LIFO instabil ist, indem wir einen Graphen und eine Injektionsfolge angeben, die es uns erlaubt, das System hochzuschaukeln. Der folgende Graph bietet eine Möglichkeit dazu: X Y e1 B e0 A e2 e3 C e4 D e6 e5 A’ e’ 5 e’6 D’ e’4 C’ e’2 e’3 Y’ e’0 B’ e’1 X’ (a) Nimm an, dieses Netzwerk wird mit LIFO betrieben und zu einem Zeitpunkt t gilt Folgendes: Würde ab Zeitpunkt t die Injektion neuer Pakete eingestellt, so würden noch für s Schritte jeweils ein Paket mit Ziel C und dem Restweg e0 , e2 die Kante e0 durchlaufen. Konstruiere eine (r, b) Injektionsfolge für die Schritte nach Zeitpunkt t, so dass schließlich zu einem Zeitpunkt t0 > t gilt: Würde ab Zeitpunkt t0 die Injektion neuer Pakete eingestellt, so würden noch für s0 Schritte jeweils ein Paket mit Ziel C 0 und dem Restweg e00 , e02 die Kante e00 durchlaufen, wobei s0 > s gilt. (b) Warum folgt aus Teil a die Instabilität von LIFO? Hinweise: Falls in einem Schritt mehrere Pakete in einem Knoten ankommen, so darf das weitergeleitete Paket unter diesen bösartig gewählt werden. Es existiert eine Lösung, bei der zunächst rs Pakete in X injiziert werden und anschließend zeitgleich jeweils r2 s Pakete in Y und D injiziert werden. Farthest-To-Go und Nearest-To-Source stechen hervor, da für sie sogar Stabilität für r = 1 gezeigt werden kann [G]. Andererseits schneiden Farthest-To-Go und Nearest-To-Source mit maximaler Schlangengröße O(b · |E|d−1 /(1 − r)) und Verweildauer O(b · |E|d−1 /(1 − r)) zumindest in der Analyse leicht schlechter ab als Longest-In-System und Shortest-In-System mit maximaler Schlangengröße O(b/(1−r)d ) und Verweildauer O(b/(1−r)d ), bzw. O(d·b/(1− r)d ), wenn |E| >> 1/(1 − r). Für alle betrachteten Strategien kann weder eine polynomielle maximale Schlangengröße noch eine polynomielle Verweildauer gezeigt werden. Wir erhalten nur dann polynomielle Beziehungen, wenn nur Wege logarithmischer Länge zu traversieren sind. Man beachte aber, dass sogar sublogarithmische Distanzen im Webgraphen zu erwarten sind und unsere Analysen 112 KAPITEL 6. QUEUEING-STRATEGIEN zeigen, dass die vier obigen Queueing-Strategien im Anwendungsfall selbst unter worst-case „Attacken“ standhalten, wenn Kapazitäten nicht überschritten werden! Offenes Problem 2 (a) Besitzen Farthest-To-Go, Nearest-To-Source und Shortest-In-System polynomielle Verweildauer und polynomielle Schlangengrößen, wenn die Injektionsrate r hinreichend klein gewählt wird? Exponentiell große Verweildauer und Schlangengröße kann für hinreichend großes r < 1 nachgewiesen werden [AAF]. Besitzt Longest-In-System eine polynomielle Verweildauer für alle r < 1? Es ist bekannt, dass die Verweildauer exponentiell im Durchmsser sein kann. (b) Ist Longest-In-System für r = 1 stabil? In [AAF] wird auch untersucht, ob es Graphen gibt, die unter jeder Queueing Strategie stabil sind und es wird gezeigt, dass der Ring für jede Knotenanzahl stabil ist. (Beachte, dass die anscheinend geringfügige MModifikation der beiden Doppelkanten im Viererzyklus zu einem instabilen Netz führt.) Die Klasse stabiler Graphen ist allerdings recht klein. Im wichtigen ungerichteten Fall gibt es sogar keine nicht-trivialen „stabilen Graphen“ und der Entwurf guter Queueing Strategien ist damit für jede interessante Netzarchitektur wichtig. Aufgabe 61 Wir betrachten nur ungerichtete, zusammenhängende Graphen. Zeige, dass nur Graphen mit höchstens zwei Knoten unter jeder Queueing-Strategie stabil sind. 6.3 Queuegröße Wir haben bisher stabile und instabile Queueing-Strategien kennengelernt, uns aber nicht mit der Frage nach der Queuegröße und der damit äquivalenten Frage nach der Transportzeit der einzelnen Strategien beschäftigt. Insbesondere muss uns interessieren, ob es QueueingStrategien gibt, deren maximale Queuegröße oder maximale Transportzeit polynomiell im Durchmesser oder zumindest polynomiell in der Knotenanzahl ist. Wir werden hier eine leider negative Antwort für eine große Klasse von Strategien erhalten. Allgemein kann man sich eine Queueing Strategie durch eine Prioritätsfunktion repräsentiert denken, die das vorhandene Wissen über das Netzwerk, den bisherigen Verlauf des Pakets und den noch zu durchlaufenden Weg auf eine Priorität des Pakets abbildet. Die Strategie gibt dann stets einem Paket mit maximaler Priorität den Vorzug. Klassen von Strategien entstehen dann natürlicherweise dadurch, dass man charakterisiert, welche Informationen die Prioritätsfunktion als Argument erhält. Wir betrachten die große Klasse der Strategien ohne Zeitnahme. Definition 6.10 Eine Queueing Strategie Sf arbeitet ohne Zeitnahme, wenn sie einem Paket p die Priorität f (G, P, a) zuweist, wobei G der Graph des Netzwerks, P der Weg von p und a die Zahl der bereits von p traversierten Kanten ist. Wir nennen Strategien, die ohne Zeitnahme arbeiten, auch WTS-Strategien (without time stamping.) Prominente WTS-Strategien sind Nearest-To-Source (NTS), Farthest-From-Source (FFS), Nearest-To-Go (NTG), und Farthest-To-Go (FTG) mit den jeweiligen Prioritätsfunktionen fNTS (G, P, a) = −a, fFFS (G, P, a) = a, fNTG (G, P, a) = a − |P | und fFTG (G, P, a) = |P | − a. √ Wir zeigen, dass jede WTS-Strategie zu einer Queuegröße von 2Ω( n) gezwungen werden kann, wobei n die Knotenzahl ist. Der Durchmesser d der Graphenfamilie ist dabei asymptotisch √ gleich n, womit die Queuegröße 2Ω(d) beträgt. 6.3. QUEUEGRÖßE 113 Abbildung 6.3: Graph Gk enthält k 2 Gatter Gi,j sowie die zusätzlichen Knoten X, Y, Z, X 0 , Y 0 und Z 0 angeordnet und verbunden wie links angedeutet. Ein dicker Pfeil steht hier für k + 1 parallele Kanten in der jeweiligen Richtung. Jedes Gatter besteht aus zwei internen Knoten Ai,j , in dem alle eingehenden Kanten enden, und Bi,j , dem alle ausgehenden Kanten entspringen. Diese Knoten sind durch 2k + 1 gerichtete Kanten, x1i,j , . . . , x2k+1 von Ai,j nach i,j Bi,j verbunden. Die eingehenden Zeilenkanten, die entweder aus Gi,j−1 bzw. aus Y kommen, l für 1 ≤ l ≤ k + 1. Die eingehenden Spaltenkanten, die entweder aus G benennen wir ri,j i−1,j bzw. Y 0 kommen, benennen wir cli,j für 1 ≤ l ≤ k + 1. Die ausgehenden Zeilenkanten (bzw. Spaltenkanten) der letzten Spalte Gi,k (bzw. Zeile Gk,j ) nach Z [Z 0 ] heißen ri,k+1 [ck+1,j ]. Schließlich nennen wir die k + 1 Kanten von X nach Y (bzw. X 0 and Y 0 ) r0l (bzw. cl0 ) für 1 ≤ l ≤ k + 1. Satz 6.11 [W] Es gibt eine Familie Gk von Graphen mit n = 2k 2 + 6 Knoten und Durchmes2rk ser d = 4k, auf der jede WTS-Strategie mit Injektionsrate r > 0.5 und Burstiness b > 2r−1 Θ(k) gezwungen werden kann. Damit ist die Queuegröße 2Θ(d) , zu einer Queuegröße √ von 2 Θ( n) beziehungsweise 2 . Dieses Resultat zeigt, dass Zeitmessung notwendig ist, wenn man an polynomiellen Queuegrößen interessiert ist, da die einzigen sinnvollen Größen, die in WTS-Strategien keinen Eingang finden, Zeiten sind wie etwa die Lebenszeit eines Pakets – wie in LIS verwendet – oder die aktuelle Wartezeit eines Pakets – wie in FIFO verwendet. Beweis von Satz 6.11: Gk = (Vk , Ek ) besteht im Wesentlichen aus k 2 Kopien des Gatters Gij (vergl. Abb. 6.3). Gk hat 2k 2 + 6 Knoten und der Durchmesser beträgt 4k. Sei Ri die Menge der Wege von X zu Z, die ausschließlich die Gatter der Zeile i durchlaufen und sei Cj die Menge der Wege von X 0 zu Z 0 , die ausschließlich Gatter der j-ten Spalte durchlaufen. In unserer Konstruktion arbeiten wir ausschließlich mit diesen Zeilen- und Spaltenwegen. l : Dieser Weg gehört Für jede der Kanten xlij bestimmen wir einen domininanten Weg Wi,j zu Ri ∪ Cj , benutzt xlij und erhält unter allen Paketwegen, die xlij durchlaufen, maximale l also die Priorität Priorität in der Schlange von xlij . Damit besitzt ein Paket auf Wi,j max max {f (Gk , P, 2j)|P benutzt P ∈Ri xlij }, max {f (Gk , P, 2i)|P benutzt P ∈Cj xlij } , 114 KAPITEL 6. QUEUEING-STRATEGIEN da ein Paket auf einem Weg aus Ri (bzw. Cj ) genau 2j Kanten (bzw. 2i Kanten) durchlaufen l zu R gehört, nennen wir die Kante xl hat, wenn es die Schlange von xlij erreicht. Falls Wi,j i ij zeilendominiert und andernfalls spaltendominiert. Darüberhinaus nennen wir Gatter Gi,j zeilendominiert (bzw. spaltendominiert) wenn mindestens k+1 seiner xlij Kanten zeilendominiert (bzw. spaltendominiert) sind. Also ist jedes Gatter entweder zeilen- oder spaltendominiert. Mindestens die Hälfte aller Gatter ist zeilendominiert oder mindestens die Hälfte aller Gatter ist spaltendominiert. Es gibt also eine Zeile, in der mindestens die Hälfte aller Gatter spaltendominiert sind, oder eine Spalte, in der mindestens die Hälfte aller Gatter zeilendominiert sind. Sei o.B.d.A. Zeile i0 eine solche Zeile. Dann existieren q ≥ k2 spaltendominierte Gatter in Zeile i0 und wir können ebenso o.B.d.A. annehmen, dass in spaltendominierten Gattern Gi0 ,j die Kanten x1i0 ,j , . . . , xk+1 i0 ,j spaltendominiert sind. Der folgende Algorithmus wählt die Wege aus, die bei der anschließenden Einfügung von Paketen benutzt werden. 1. Die Kantenmenge L enthalte die Kante ri0 ,k+1 , die Kanten r0l sowie ril0 ,j und xli0 ,j für 1 ≤ j ≤ k und 1 ≤ l ≤ k + 1. Wir nennen Kanten in L legal und nennen einen Weg legal, wenn er nur legale Kanten verwendet, in X beginnt und in Z endet. /* Beachte dass legale Wege stets in Zeile i0 verlaufen. */ 2. Sei z := q. /* z durchläuft die spaltendominierten Gatter von rechts nach links. */ 3. for j = k to 1 do (a) Wähle e ∈ {ril0 ,j |1 ≤ l ≤ k + 1} ∩ L beliebig. /* Kante e ist also ein legaler Eingang in das Gatter Gi0 ,j . */ (b) Wenn Gi0 ,j spaltendominiert ist: i. Sei Sz ein legaler Weg, der e benutzt, und unter allen legalen Wegen, die e benutzen, eine minimale Priorität in Qe erhält: f (Gk , Sz , 2j − 1) ist also minimal. ii. Entferne die Kanten aus L, die Sz vor e durchläuft. iii. Wähle eine beliebige Kante e0 ∈ ({xli0 ,j |1 ≤ l ≤ k + 1} \ Sz ). /* Kante e0 ist also eine legale Kante, die von Sz nicht benutzt wird. */ 0 iv. Sei Dz der domininante Weg von e . /* Die Kante e0 ist spaltendominiert und Dz verläuft somit in Spalte j. Wir benutzen Dz später, um auf der Zeile i0 laufende Pakete aufzuhalten. */ v. Setze z := z − 1. (c) Sonst: Wähle e0 ∈ {xli0 ,j |1 ≤ l ≤ k + 1} ∩ L beliebig. (d) Entferne alle Kanten ril0 ,j 6= e und xli0 ,j 6= e0 mit 1 ≤ l ≤ k + 1 aus L. /* Wir sagen, dass die Kanten e und e0 fixiert sind. Später gewählte Wege Sz 0 (mit z 0 < z) laufen somit über die bisher schon fixierten Kanten. Die Wege Sz 0 und Sz treffen sich aber wegen Schritt 3(b)ii zum ersten Mal in der Eingangskante e. */ 4. Wähle einen legalen Weg S0 beliebig. /* S0 ist bis auf die Mehrfachkante von X nach Y festgelegt. */ 6.4. EINE RANDOMISIERTE QUEUEING-STRATEGIE 115 Man beachte, dass die Wahlen von e und e0 jeweils wohldefiniert sind, da zu Beginn für jedes j mindestens k + 1 legale ril0 ,j und xli0 ,j Kanten existieren. Höchstens k − 1 dieser Kanten werden vor der Wahl von e und e0 im Schritt 3(b)ii durch vorhergehende Schleifendurchläufe gelöscht. Wir fügen nun in q Phasen Pakete ein, wobei die Phasen den spaltendominierten Gattern Gi0 ,j1 , Gi0 ,j2 , . . . Gi0 ,jq der Zeile i0 entsprechen. Um den Prozess in Gang zu setzen, nutzen wir einmalig die Burstiness aus und fügen im ersten Schritt b Pakete mit Wegbeschreibung S0 ins System ein. Diese Paketmenge nennen wir X0 . Phase t beginnt, wenn das erste Paket von Xt−1 die Queue der fixierten Kante ril0 ,jt erreicht und dauert |Xt−1 | Schritte. Wir fügen jetzt jeweils Pakete mit Rate r und Wegbeschreibungen St und Dt ein. Man beachte, dass St und Dt kantendisjunkt sind und diese Einfügungen belasten somit jede Kante mit Rate höchstens r: Sz und Dz haben lediglich das gemeinsame Gatter Gi0 ,jt , Sz erreicht und verlässt es auf Zeilenkanten, Dz auf Spaltenkanten. Schließlich wird in Schritt 3(b)iii sichergestellt, dass Sz und Dz verschiedene xli0 ,j Kanten zur Durchquerung des Gatters benutzen. In der Queue der fixierten Kante ril0 ,jt treffen die Pakete aus St erstmalig auf die Pakete aus Xt−1 . Ihre Priorität in dieser Queue ist nicht größer als die Priorität eines Paketes der Menge Xt−1 , da jedes Paket aus Xt−1 auf einem der Wege S0 , . . . , St−1 unterwegs ist, und diese Wege alle legal waren, als St minimal unter den legalen Wegen gewählt wurde. Also kann keines der r|Xt−1 | Pakete auf St das Gatter Gi0 ,jt in Phase t durchqueren, da die Eingangskante durchgehend von Xt−1 Paketen benutzt wird. Nach höchstens 2k Schritten der Phase t erreicht das erste auf Dt eingefügte Paket das Gatter Gi0 ,jt . Von diesem Zeitpunkt an bis zum Ende der Phase (und das sind |Xt−1 | − 2k Schritte) erreichen r · (|Xt−1 | − 2k) Pakete auf dem dominanten Spaltenweg das Gatter Gi0 ,jt . Alle Pakete in Xt−1 laufen über die fixierte Kante xli0 ,jt und diese Pakete werden somit durch die Pakete des dominanten Spaltenweges aufgehalten. Daher schaffen es mindestens r · (|Xt−1 | − 2k) Pakete aus Xt−1 nicht, das Gatter Gi0 ,jt in Phase t zu durchqueren. Sei Xt die Vereinigung der Menge der aufgehaltenen Xt−1 -Pakete und der neu auf St eingefügten Pakete. Dann ist |Xt | ≥ r(|Xt−1 | − 2k) + rXt−1 = 2r|Xt−1 | − 2rk. Für r > 21 und hinreichend großes2 b ist jede Menge Xt um (fast) den multiplikativen Faktor 2r größer als Xt−1 . Da q = Θ(k) = Θ(d) gilt, hat die letzte Menge Xq die Größe 2Θ(k) = √ 2Θ(d) = 2Θ( n) , was zu zeigen war. 6.4 Eine randomisierte Queueing-Strategie Wir schließen mit einer randomisierten Queueing-Strategie, die hochwahrscheinlich polynomielle Verweildauer und polynomielle Schlangengröße besitzt. Wir analysieren dazu zunächst eine randomisierte Strategie für das statische Routing Problem. Beim statischen Routing Problem sind die zu transportierenden Pakete von Beginn an im System. Es werden keine weiteren Pakete zur Laufzeit hinzugefügt. 2 Die Bedingung |X1 | ≥ 2r · |X0 | − 2rk > |X0 | ist äquivalent zu |X0 | > ausreichend. 2rk 2r−1 und da, |X0 | = b, ist b > 2rk 2r−1 116 KAPITEL 6. QUEUEING-STRATEGIEN Es sei auch hier d die maximale Länge eines einfachen Weges in G und m die Zahl der Kanten. Sei weiter c das maximale Vorkommen einer Kante in den Wegen der Pakete, also die größte Zahl von Paketen, die über eine Kante transportiert werden sollen. Damit sind c und d triviale untere Schranke für die Laufzeit. Unsere statische Queueing Strategie wird mit hoher Wahrscheinlichkeit eine Laufzeit von (1 + ε) · c + O(d · log(mcd)) für beliebiges vorgegebenes ε erreichen. Algorithmus 6.12 Eine randomisierte Queueing-Strategie für statisches Routing (1) Wähle für jedes Paket unabhängig und gleichverteilt eine Startverzögerung aus der Menαc ge {1, . . . , log(mcd) }, wobei wir α in der Analyse passend bestimmen werden. Setze i = 1. (2) Wiederhole, solange nicht zugestellte Pakete existieren: (a) Bewege zum Zeitpunkt i alle Pakete mit Startverzögerung höchstens i um eine Kante entlang ihres Weges weiter. (Wann immer mehrere Pakete dieselbe Kante durchlaufen wollen, wird dies mehr als einen Zeitschritt erfordern.) Pakete mit höherer Startverzögerung werden nicht bewegt. (b) Erhöhe i um 1. Wir bestimmen zunächst die Zahl der Iterationen von Schleife (2). Ein Paket wartet höchstens αc log(mcd) Iterationen und kommt dann in jeder Iteration dem Ziel um eine Kante näher. Nach αc Iterationen sind also alle Pakete zugestellt. d + log(mcd) Kritisch für die Laufzeit ist die Frage, wieviele Zeitschritte in Schritt (2a) nötig sind. Dafür müssen wir untersuchen, wieviele Pakete in derselben Iteration i dieselbe Kante durchlaufen möchten. Die Zufallsvariable Ne,i bezeichnet die Zahl der Pakete, die in Iteration i durch Kante e laufen möchten. Desweiteren ist Ip,e,i eine Indikatorvariable, die angibt, ob Paket p P in Iteration i über Kante e laufen möchte. Es ist Ne,i = p Ip,e,i und wir beschränken den Erwartungswert: E[Ne,i ] = E[ X p = X Ip,e,i ] = X E[Ip,e,i ] p prob[ Paket p will in Iteration i die Kante e durchlaufen ] p log(mcd) log(mcd) = αc α Die Abschätzung ist richtig, da höchstens c Pakete überhaupt Kante e auf ihrem Weg haben und von den möglichen Startverzögerungen höchstens eine dazu führt, dass p genau in Iteration i über die Kante e laufen möchte. Wir benutzen die Chernoff Schranke, um die Wahrscheinlichkeit von zu langen Iterationen zu beschränken. (Die Chernoff-Schranke ist anwendbar, da die Pakete ihre Startverzögerung unabhängig voneinander auswürfeln.) ≤ c· prob[Ne,i > (1 + ε) · log(mcd) ε2 log(mcd) ] ≤ e− α · 3 α 2 = (mcd)−ε /(3α) 6.4. EINE RANDOMISIERTE QUEUEING-STRATEGIE 117 Die Wahrscheinlichkeit, dass irgendeine Iteration der Schleife (2) länger als (1 + ε) · log(mcd) α dauert, beschränken wir, indem wir die gerade gefundene Wahrscheinlichkeit mit der Zahl m αc der Kanten und der maximalen Iterationszahl d + log(mcd) multiplizieren. prob[ irgendeine Iteration dauert länger als (1 + ε) · Wählen wir α ≤ c−1 c · d · log(mcd), so ist d + αc log(mcd) log(mcd) ] α ≤ (mcd) −ε2 3α αc ·m· d + log(mcd) ≤ c · d, und wir erhalten prob[ irgendeine Iteration dauert länger als (1 + ε) · log(mcd) ] α ≤ (mcd) −ε2 +1 3α . 2 Zu jedem gegebenen ε können wir α ≤ ε6 wählen und damit ist die Wahrscheinlichkeit einer zu langen Iteration durch (mcd)−1 beschränkt. Multiplizieren wir die obere Schranke der αc der Iterationsanzahl, so erhalten wir: Iterationsdauer mit der oberen Schranke d + log(mcd) Lemma 6.13 Algorithmus 6.12 löst das statische Routingproblem mit Wahrscheinlichkeit 1− (mcd)−1 in Zeit (1 + ε) · c + 1+ε · (d · log mcd) = (1 + ε) · c + O(d · log mcd) α für jedes ε > 0. Wir kommen zurück zu unserem eigentlichen Problem, dem dynamischen Routing. Wir wollen hierfür den folgenden Algorithmus analysieren. Den Parameter T legen wir in der Analyse geeignet fest. Algorithmus 6.14 Eine randomisierte Queueing-Strategie. (1) Der Algorithmus arbeitet mit den Zeitintervallen Zi = {iT + 1, . . . , (i + 1)T } der Länge T . Alle Pakete, die im Zeitintervall Zi in das System gelangen, werden in eine Menge Xi aufgenommen. Wir sagen, dass Xi zum Zeitpunkt (i + 1)T , also nach Injektion aller Pakete im Zeitintervall Zi , aktiv wird. Xi wird deaktiviert, wenn sämtliche Pakete in Zi zugestellt wurden. (2) Wiederhole: (a) Bestimme das kleinste k, so dass Xk aktiv ist. (b) Führe auf den Paketen aus Xk den statischen Algorithmus aus. Nach seiner Beendigung sind alle Pakete aus Xk zugestellt und Xk wird deaktiviert. Wir sollten T also so wählen, dass der Algorithmus, wenn alles normal läuft, eine Menge Xi zugestellt hat, bevor die nächste Menge Xi+1 aktiv wird. Andernfalls besteht die Gefahr, dass wir uns lange Warteschlangen von aktiven Mengen einhandeln. Wir sagen, dass der statische Algorithmus auf Xi erfolgreich ist, wenn alle Pakete aus Xi in Zeit 1+ε (1 + ε) · (rT + b) + · d · log(md(rT + b)) α zustellt werden. Da wir einen (r, b) beschränkten Gegner annehmen, wird Xi für jede Kante e höchstens rT + b Pakete besitzen, die e durchlaufen möchten. Wenn wir also c = rT + b 118 KAPITEL 6. QUEUEING-STRATEGIEN setzen, dann ist der statische Algorithmus gemäß Lemma 6.13 auf Xi mit Wahrscheinlichkeit 1 − (mcd)−1 erfolgreich. Da die Fehlerwahrscheinlichkeit aber nur invers polynomiell ist, richten wir einen zusätzlichen Faktor von 1 + ε als Fehlertoleranz ein. Wir setzen also T kleinstmöglich, so dass d T ≥ (1 + ε) · c + · log(mcd) . α 2 Beachte, dass T auf der rechten Seite nur linear (in c = rT + b) bzw. logarithmisch eingeht, so dass wir keine Probleme haben werden, ein solches T zu finden. Aufgabe 62 d log(m) Zeige T = Θ( 1−r·(1+ε) 2 ). Im Erfolgsfall schafft unser Algorithmus also eine Menge Xi sogar mit Zeitreserve, bevor die nächste Menge aktiv wird: Von der zur Verfügung stehenden Zeit T wird dann nur die Zeit ε T = 1+ε T T /(1+ε) verbraucht und damit kann der eventuelle Rückstand um mindestens T − 1+ε wieder abgetragen werden. Sei τi die Zeitverzögerung, nach der der statische Algorithmus die Verarbeitung von Xi übernimmt. Ist τi > 0, so wird die Abarbeitung von Xi im Erfolgsfall den Rückstand additiv ε um min{T · 1+ε , τi } verkleinern. Im Misserfolgsfall schätzen wir die zusätzliche Verzögerung pessimistisch durch d(rT + b) = dc ab: Die höchstens r · T + b injizierten Pakete können nacheinander in Zeit höchstens d an ihr Ziel gebracht werden. ε · T ≥ 4. Wenn Wir nehmen an, dass c ≥ 1, m, d ≥ 2 und dass T so groß gewählt ist, dass 1+ε ε τi ≥ T · 1+ε , dann gilt also für die erwartete Veränderung im Hinblick auf die Planerfüllung ε 1 1 · T · (1 − )+ ·c·d 1+ε c·d·m c·d·m ε 1 1 ≤ − · T · (1 − )+ 1+ε c·d·m m 3 1 ≤ −4 · + = −2.5. 4 2 E[τi+1 − τi ] ≤ − Die Folge τ1 , τ2 , . . . zeigt also das folgende Verhalten: (1) τi+1 − τi ≤ c · d und (2) E[τi+1 − τi ] ≤ −2.5, falls τi ≥ ε 1+ε · T. Unter diesen Bedingungen kann gezeigt werden [H], dass für jedes i prob[ τi ≥ α · c · d ] ≤ e−Ω(α) gilt. Satz 6.15 Es gelte T = Θ( d log(m) 1−r ) und c = r · T + b. Dann gilt für jede Menge Xi mit Wahrscheinlichkeit mindestens 1 − e−Ω(α) , dass alle Pakete aus Xi nach höchstens 2 · T + O(c · d) = O( d2 · log2 m ) 1−r Schritten zugestellt werden. Also ist Algorithmus 6.14 stabil und besitzt hochwahrscheinlich eine polynomielle Verweildauer. Kapitel 7 Erasure Codes Bei großen Multicast-Aufgaben (Versand langer Programmcodes oder Videos hoher Qualität an mehrere hunderttausende Empfänger) muß eine Rekonstruktion trotz Paketverlusts in Echtzeit gewährleistet werden. Um Paketverlust zu kompensieren liegt es natürlich nahe, die zu versendende Information redundant zu kodieren. Die Zielvorgaben sollten sein: (1) Rekonstruktion trotz hohen Paketverlusten. Wir geben allerdings keine Worst-Case Garantie, sondern garantieren Rekonstruktion nur mit hoher Wahrscheinlichkeit. (2) Superschnelle Kodierungs- und Dekodierungsalgorithmen, um die hohen Bandbreiten von Hochleistungskanälen (Glasfaser, ATM oder Gigabit Ethernet) ausnutzen zu können. Beispiel 7.1 Automobile Data Broadcasting Ein Schlüsselproblem im Data-Broadcast für Autos ist die Anforderung verläßlicher Kommunikation mit einer Vielzahl von Empfängern über unsichere Kanäle (wechselnde Landschaften, Tunnel). Da eine Rückverbindung zum Empfänger nicht besteht, ist ein nicht-kompensierbarer Paket-Verlust äußerst schwerwiegend und redundante Kodierung ist erforderlich. Wir beschreiben zuerst das formale Modell eines Kanals K mit Verlust (erasure-channel oder auch lossy channel genannt): Für ein Alphabet Σ werden Nachrichten der Form (a1 , 1) · (a2 , 2) · · · (ai , i) · · · (an , n) (mit a1 , . . . , an ∈ Σ) über den Kanal K verschickt. (Das Alphabet Σ kann zum Beispiel aus allen Bitfolgen einer bestimmten Höchstlänge bestehen.) K löscht ein Paket (ai , i) mit Wahrscheinlichkeit ρ, wobei die Wahrscheinlichkeit des Löschen eines Pakets nicht von den anderen Paketen abhängt. Beachte, dass jedes Paket (ai , i) einen Zeitstempel, nämlich den Zeitpunkt i, enthält: Der Empfänger weiß also, welche Pakete verloren gegangen sind. Bemerkung 7.1 Auf den ersten Blick ist der Erasure-Kanal kein realistisches Modell für das Beispiel des Internets. Dort wird man erwarten, dass die Löschwahrscheinlichkeiten zeitlich benachbarter Pakete stark korreliert sind. Eine solche Korrelation können wir aber auflösen, wenn wir „gegen den Kanal randomisieren“, also die Pakete vor dem Versand zufällig permutieren. 119 120 KAPITEL 7. ERASURE CODES Wir beschreiben die Tornado Codes, die selbst hohe Verlustraten tolerieren und zusätzlich noch superschnelle Kodier- und Dekodieralgorithmen anbieten. Um die Beschreibung zu vereinfachen, nehmen wir an, dass jedes Paket nur aus einem Bit und der Paketnummer besteht. Der Tornado Code wird durch eine Folge von „dünn-besetzten“ bipartiten Graphen Bi = (Ui , Vi , Ei ) (mit |Vi | = β · |Ui | für β < 1 und |Ei | = O(|Ui |)) definiert. Informationsbits Checkbits + + + + + + B 2 Checkbits B1 Informationsbits Abbildung 7.1: Die bipartiten Graphen des Tornado Codes Wir nennen die „linken“ Knoten von Bi (also die Knoten in Ui ) Informationsbits und die „rechten“ Knoten von Bi (also die Knoten in Vi ) Check-Bits. Die Informationsbits von B1 entsprechen den Eingabebits, wobei die Zuordnung von Eingabebits und Informationsbits zufällig gewählt ist, um gegen den Kanal zu randomisieren. (Natürlich bleiben die Pakete mit einem Zeitstempel versehen). Für die Kodierung der Eingabebits werden zuerst die Werte aller Checkbits von B1 durch Xoring der inzidenten Informationsbits von B1 berechnet. Sodann interpretieren wir die rechten Bits von B1 als die Informationsbits von B2 und berechnen die Checkbits von B2 , also die rechten Knoten von B2 , wiederum durch Xoring der inzidenten Informationsbits von B2 . Dieses Verfahren wird für alle bipartiten Graphen wiederholt. √ Nach hinreichender Kompression (d.h. wenn |Vk | ≤ n zum ersten Mal erreicht wurde) wird der Reed-Solomon Code1 D als letzte Kodierungsstufe der Hierarchie eingefügt. Die Folge der Informations- und Checkbits, zusammen mit den Namen der entsprechenden Knoten, ist die Kodierung der Eingabe. Aufgabe 63 Ein linearer (m, n)-Code mit m ≥ n wird durch eine 0, 1 Matrix A mit m Zeilen und n Spalten sowie Rang(A) = n (über ZZ2 ) beschrieben. Eine Nachricht x ∈ {0, 1}n wird dann durch y = Ax über dem Körper ZZ2 kodiert. (Beachte, dass der Tornado Code ein linearer Code ist.) Eine kodierte Nachricht y wird durch den Erasure Kanal geschickt und man erhält die Nachricht y 0 mit yi0 = yi ∗ Bit i „überlebt“, sonst. Zeige: Wenn y 0 nur von einer Nachricht x „erzeugt“ wurde, dann kann x in poly(n) Schritten bestimmt werden. Fazit: Die Dekodierung linearer Erasure Codes ist also effizient möglich. Da sogar zufällig ausgewürfelte Matrizen A ihren maximalen Rank nach (zufälligem) Streichen von (nicht zu vielen) Zeilen (hochwahrscheinlich) 1 Ein fehlerkorrigierender Code, der in quadratischen Zeit kodiert und dekodiert. 121 beibehalten, sind lineare Codes gute Erasure-Codes. Tornado Codes sind aber durch ihre superschnelle Kodierung und Dekodierung unter den linearen Codes ausgezeichnet. Algorithmus 7.1 Erzeugung des Tornado Codes und Kodierung. Komponenten: die Eingabelänge n, der Check-Faktor β und der Reed-Solomon Code D. √ (1) Wähle m minimal so, dass n·β m ≤ n. Erzeuge die bipartiten Graphen Bi = (Ui , Vi , Ei ) (für i = 1, . . . , m). (a) Bestimme Grad-Sequenzen u = (ui,2 , . . . , ui,L ) und v = (vi,2 , . . . , vi,R ) (mit der Intention, dass Ui , bzw. Vi , genau ui,j , bzw. vi,j , Knoten vom Grad j besitzt). Bi P PR wird dann ei = L j=2 j · ui,j = j=2 j · vi,j Kanten erhalten. /* Grad-Sequenzen werden später berechnet. */ (b) Setze Ui∗ = {1, . . . , ei } = Vi∗ und bestimme eine zufällige Bijektion bi : Ui∗ → Vi∗ . (c) Zerlege Ui∗ in beliebiger Weise in ui,j disjunkte Teilmengen der Größe j (für j = 2, . . . , L) und zerlege Vi∗ in beliebiger Weise in vi,j disjunkte Teilmengen der Größe j (für j = 2, . . . , R). „Kollabiere“ die erhaltenen Teilmengen auf jeweils einen Repräsentantenknoten und nenne die neuen Knotenmengen Ui und Vi . /* Damit haben wir alle Knoten in Ui , bzw. in Vi vom Grad j definiert. */ (d) Verbinde einen Knoten u ∈ Ui mit einem Knoten in v ∈ Vi , wenn ein Element der Teilmenge von u auf ein Element der Teilmenge von v durch die Bijektion b abgebildet wird. /* Bei diesem Prozess können Mehrfach-Kanten auftreten, die auch als solche zu behandeln sind. Beachte, dass Ui (bzw. Vi ) genau ui,j (bzw. vi,j ) Knoten vom Grad j besitzt. */ (2) Permutiere die Eingabefolge zufällig. (Natürlich bleiben die Pakete mit einem Zeitstempel versehen). Kodiere die permutierte Folge, indem zuerst die Eingabebits an die linken Knoten von B1 angelegt werden. Sodann berechne die Werte aller Check-Bits. Nach der Kodierung gemäß Bm ist die Kodierung gemäß D die letzte Phase der Kodierung. (Die Codewortlänge von D sei Θ(β m · n).) Die Folge der Informations- und Checkbits, zusammen mit den Namen der entsprechenden Knoten, ist die Kodierung der Eingabe. Aufgabe 64 Die Tornado-Codes kodieren die Menge der n Eingabebits Bits durch Einfügen von Checkbits mit dem Check√ √ Faktor β. Der Code endet mit n Checkbits, die durch den Reed-Solomon Code in quadratischer Zeit (in n) kodiert und dekodiert werden. Wie groß sollte β (in Abhängigkeit von der Löschwahrscheinlichkeit ρ) mindestens sein, um eine Rekonstruktion nicht auszuschliessen? Wir werden später einen kleinen linearen Anteil weiterer Knoten und Kanten einsetzen. Wir haben in der Beschreibung des Tornado Codes die Konstruktion der Grad-Sequenzen offengelassen. Die Grad-Sequenzen werden wir so bestimmen, dass der folgende Dekodierungsalgorithmus eine möglichst große Fehlerrate verkraftet. Algorithmus 7.2 Dekodier-Algorithmus für Tornado Codes. (1) Die kodierte Folge ist nach Verlust einiger Bits zu dekodieren. 122 KAPITEL 7. ERASURE CODES (2) Beginne die Rekonstruktion mit dem Reed-Solomon Code. Setze i = m. (3) Wiederhole, solange es mindestens ein Check-Bit c in Bi mit genau einem fehlenden Vorgänger b0 gibt: Setze b0 = c ⊕ b1 ⊕ · · · ⊕ bk , wobei b1 , . . . , bk die vorhandenen Vorgänger von c seien. (4) Wenn ein linker Knoten von Bi nicht korrigiert werden konnte, dann brich mit einer Fehlermeldung ab. Ansonsten, wenn i = 1, dann ist die Korrektur geglückt. Wenn i > 1, dann setze i = i−1 und wiederhole Schritt (3). Aufgabe 65 Die bipartiten Graphen in der Definition des Tornado Codes mögen die Knotenmenge V und die Kantenmenge E besitzen. Beschreibe, wie Algorithmus 7.2 in Zeit O(|V | + |E|) implementiert werden kann. Benenne insbesondere geeignete Datenstrukturen. Aufgabe 66 Algorithmus 7.2 gibt in einigen Fällen auf, obwohl eine Rekonstruktion möglich wäre. (a) Gib einen bipartiten Graphen G = (L ∪ R, E) an und weise jedem Knoten einen Wert aus {0, 1, ∗} zu, so dass - jeder Knoten aus R einen Wert aus {0, 1} erhält, - es genau eine Belegung der mit ∗ beschrifteten Knoten mit {0, 1} gibt, so dass die Beschriftung aller Knoten aus R der Parität der Beschriftungen seiner Nachbarn entspricht, - aber Algorithmus 7.2 die eindeutige Lösung nicht findet. (b) Gib zwei bipartite Graphen G1 = (L1 ∪ R1 , E1 ) und G2 = (L2 ∪ R2 , E2 ) mit R1 = L2 nebst {0, 1, ∗} Beschriftung an, die die folgenden Eigenschaften erfüllen. - Jeder Knoten aus R2 hat einen Wert aus {0, 1}. - Keiner der Graphen Gi besitzt eine eindeutige Belegung der mit ∗ beschrifteten Knoten mit Werten aus {0, 1}, so dass die Beschriftung jedes Knotens aus Ri der Parität der Beschriftung seiner Nachbarn in Li entspricht. - Der verklebte Graph G = (L1 ∪ L2 ∪ R2 , E1 ∪ E2 ) besitzt eine eindeutige Belegung der mit ∗ beschrifteten Knoten mit Werten aus {0, 1}, so dass die Beschriftung jedes Knotens aus Ri der Parität der Beschriftung seiner Nachbarn in Li entspricht. (c) Warum ersetzt man die Heuristik von Algorithmus 7.2 nicht durch die Gauß’sche Eliminierung? Aufgabe 67 G = (L∪R, E) sei ein bipartiter Graph mit maximalem Grad zwei für die Knoten in R. Die Werte aller Knoten von R seien bekannt, während die Werte einiger linker Knoten fehlen. Beweise oder widerlege: Algorithmus 7.2 findet stets eine eindeutige konsistente Beschriftung, wenn eine solche existiert. Das Abbruchkriterium in Schritt (4) für i > 1 dient nur der theoretischen Analyse. In praktischen Anwendungen sollte ein Abbruch nur erfolgen, wenn tatsächlich Informationsbits der ersten Hierarchie nicht rekonstruiert wurden. Warum wählen wir nicht reguläre bipartite Graphen, also Graphen in denen alle linken Knoten denselben Grad und alle rechten Knoten denselben Grad besitzen? Vom Standpunkt eines Informationsbits (also vom Standpunkt eines linken Knotens) ist ein hoher Grad hochwillkommen, denn dann bestehen die größten Chancen von irgendeinem der vielen rechten Nachbarn bestimmt zu werden. Andererseits werden diese Chancen zunichte gemacht, wenn alle linken 7.1. INFORMATIONSRATE 123 Nachbarn denselben hohen Grad besitzen: Nur wenige rechte Knoten besitzen dann genau einen fehlenden linken Nachbarn. Bei einer sorgfältigen Auswahl der Gradsequenzen (mit dementsprechender nicht-regulärer Struktur) wird die Rekonstruktion in Wellen verlaufen. Die wenigen hochgradigen linken Nachbarn werden sofort rekonstruiert, gefolgt von ihren etwas niedrig-gradigeren Kollegen und so weiter. Die vielen niedrigst-gradigen linken Knoten werden dann in wenigen letzten Wellen rekonstruiert: Der Tornado produziert rasant wachsende Wellen rekonstruierter linker Knoten. Die in Kapitel 7.2 durchgeführte Analyse wird diese Analogie begründen. 7.1 Informationsrate Wie kompakt ist die Kodierung? Wir definieren die Informationsrate durch Informationsrate = Eingabelänge . Codewortlänge Die Codewortlänge beträgt n+ m X √ √ √ 1 − β m+1 n β i · n + O( n) = n · + O( n) ≤ + O( n). 1−β 1−β i=1 Da n Eingabebits vorliegen, erhalten wir die Informationsrate 1−β √ ) 1 + O( 1−β n . Sei ρ die Wahrscheinlichkeit, mit der der Kanal Bits verliert. Dann ist offensichtlich eine n Bits notwendig, um den Bitverlust des Kanals zu komCodewortlänge von mindestens 1−ρ pensieren, und damit wird die Informationsrate bestenfalls 1 − ρ betragen. Wir machen den Ansatz β = ρ(1 + ε) und erreichen damit erstaunlicherweise eine Informationsrate von fast 1 − ρ. Es bleibt zu zeigen, dass eine Rekonstruktion in jeder Hierarchiestufe Bi mit hoher Wahrscheinlichkeit gelingt. Dabei können wir rekursiv annehmen, dass alle Check-Bits von Bi bereits rekonstruiert wurden. (Die Induktionsbasis wird durch den fehlerkorrigierenden Code D gelegt.) 7.2 Berechnung der Grad-Sequenzen Wir stellen uns vor, dass ein durch das Löschen von Bits verstümmeltes Codewort w zu dekodieren ist. Die Wahrscheinlichkeit des Löschens einer Bitposition sei ρ und die Löschungen der Positionen seien stochastisch unabhängig. Wir nehmen weiterhin an, dass die Rückwärtsdekodierung von Algorithmus 7.2 den Graphen B = Bi erreicht hat. Das setzt voraus, dass ein jeder rechter Knoten von Bi entweder bereits vorhanden ist oder erfolgreich rekonstruiert wurde. Wir sagen, dass ein rechter Knoten von B rekonstruiert, falls höchstens einer seiner linken Nachbarn verloren gegangen ist. Sei v ein beliebiger linker Knoten von B, dessen Bit verloren gegangen ist. Wann werden wir im Stande sein, das verlorene Bit zu bestimmen? Zuerst betrachten wir sämtliche Check-Knoten, die mit v benachbart sind und hoffen auf einen benachbarten rekonstruierenden Check-Knoten. Formal können wir somit v als einen ODER-Knoten interpretieren, der auf mindestens einen rekonstruierenden Nachbarn hofft. 124 KAPITEL 7. ERASURE CODES Wann kann uns einer dieser (rechten) Nachbarn w glücklich machen? Genau dann, wenn alle linken Nachbarn von w (mit der Ausnahme von v) vorhanden sind. Mit anderen Worten, jeder rechte Nachbar w von v spielt die Rolle eines UND-Knotens. Wir haben aber noch nicht verloren, wenn sich kein rekonstruierender rechter Nachbar von v findet, denn „wer noch kein rekonstruierender Knoten ist, der kann’s noch werden“! Nach der ersten Generation (der rechten Nachbarn von v), schauen wir uns deshalb die zweite Generation, also die Enkelkinder von v, an. Nicht vorhandene Enkelkinder von v können mit der gleichen Überlegung wie für v rekonstruiert werden: auch sie lassen sich formal als ODER-Knoten auffassen. Was passiert, wenn wir diesen Prozess solange wiederholen, bis wir alle Knoten im Abstand 2l von v erreicht haben? (Wir werden l so klein wählen, dass der von den erreichten Knoten induzierte Teilgraph von B mit hoher Wahrscheinlichkeit ein Baum ist.) Wir setzen v als ODER-Knoten auf die Wurzel des Baums, gefolgt von den rechten Nachbarn (als UNDKnoten), gefolgt von deren linken Nachbarn (mit Ausnahme von v) als ODER-Knoten und so weiter. Die Blätter dieses Baums Tl (v) sind linke Knoten, die wir mit 0 (nicht vorhanden) oder 1 (vorhanden) beschriften. Die Knoten der Tiefe 2l − 1 sind rechte Knoten, die genau dann rekonstruierend werden, wenn alle Kinder vorhanden sind, d.h. mit 1 beschriftet sind. Mit anderen Worten, ein Knoten der Tiefe 2l − 1 ist rekonstruierend, wenn der Knoten als UND-Knoten den Wert 1 berechnet. Wann ist ein Knoten der Tiefe 2l−2 rekonstruierbar, bzw vorhanden? Um dies zu formalisieren, erlauben wir das Festfrieren des entsprechenden ODERKnotens auf 1 zusätzlich zum Formalismus des UND-ODER Baums (falls das entsprechende Paket nicht verloren ist). Damit ist ein Knoten der Tiefe 2l−2 genau dann rekonstruierbar oder vorhanden, wenn der Knoten festgefroren ist, oder wenn eines seiner Kinder rekonstruierend ist. Und die Berechnung des Wertes 1 ist hinreichend und notwendig zur Berechnung des Bits des Knotens. Wir fassen zusammen. Mit einem induktiven Argument erhalten wir, dass der Ausgangsknoten v genau dann entweder vorhanden ist (also festgefroren auf Wert 1) oder rekonstruierbar ist, wenn der oben beschriebene UND-ODER Baum Tl (v) den Wert 1 berechnet! Schauen wir uns die möglichen Bäume Tl (v) genauer an. Wir wollen die Wahrscheinlichkeit in B bestimmen, dass eine Kante einen linken (bzw. rechten) Knoten mit einem rechten (bzw PR P linken) Knoten vom Grad j verbindet. Wir besitzen insgesamt L j=2 j · vi,j j=2 j · ui,j = Kanten. Von diesen Kanten verbinden genau j · vi,j Kanten einen linken Knoten mit einem rechten Knoten vom Grad j, und genau j · ui,j Kanten verbinden einen rechten Knoten mit einem linken Knoten vom Grad j. Wir definieren die Wahrscheinlichkeiten j · ui,j pj = PL j=2 j · ui,j j · vi,j und qj = PR j=2 j · vi,j dafür, dass eine Kante einen rechten (bzw. linken) Knoten mit einem linken (bzw. rechten) Knoten vom Grad j verbindet. Diese Verteilungen definieren auch den durchschnittlichen linken (bzw. rechten) Grad. Zum Beispiel ist L X pj j=2 j PL = PL j=2 ui,j j=2 j · ui,j = 1 . Gradlinks (7.1) Beachte, dass stets β· L X pj j=2 j = R X β·n qj = Kantenzahl j=2 j (7.2) 7.2. BERECHNUNG DER GRAD-SEQUENZEN 125 gilt. Wenn wir uns einen beliebigen Knoten v 0 in Tl (v) ungerader Tiefe (also einen rechten Knoten) anschauen und eine Kante e = (v 0 , u) zu einem Kind u wählen, dann verbindet e den Knoten v 0 mit Wahrscheinlichkeit pj mit einem Knoten vom Grad j: Also wird ein innerer Knoten in gerader Tiefe genau j − 1 Kinder mit Wahrscheinlichkeit pj besitzen (beachte, dass eine Kante von u bereits vom Vater geschluckt wurde). Mit analogem Argument: Ein beliebiger Knoten ungerader Tiefe besitzt mit Wahrscheinlichkeit qj genau j − 1 Kinder. Leider bringt die Wurzel diesen Formalismus durcheinander, da sie keinen Vater besitzt; deshalb stiebitzen wir eine ihrer Kanten durch zufällige Wahl. Hier ist allerdings ein Wort der Warnung angebracht. Die Kinderzahlen entsprechen nicht unabhängigen Zufallsvariablen: Wenn bereits viele Knoten mit einer bestimmten Kinderzahl im Baum aufgetreten sind, wird diese Kinderzahl entsprechend unwahrscheinlicher, denn unsere bipartiten Graphen besitzen eine festgelegte Anzahl von Knoten für jeden Grad. Insbesondere sind die zugewiesenen Wahrscheinlichkeiten für die Kinderzahlen nur als approximativ anzusehen. Wir werden deshalb dafür Sorge tragen, dass die Bäume Tl (v) klein bleiben, damit die Approximation nur mit einem kleinen, vernachläßigbaren Fehler behaftet ist. Um die möglichen UND-ODER Bäume Tl (v) zu beschreiben, führen wir die Klasse Tl (~ p, ~q) von UND-ODER Bäumen der Tiefe 2l ein, um die zufällige Wahl der bipartiten Graphen wiederzugeben. Wenn wir uns vorstellen, dass wir die Bäume in Tl (~ p, ~q) von der Wurzel aus wachsen lassen, dann wird ein ODER-Knoten vODER mit Wahrscheinlichkeit pi genau i − 1 Kinder und ein UND-Knoten vUND mit Wahrscheinlichkeit qi genau i − 1 Kinder besitzen. (Wir modellieren also die zufällige Konstruktion der bipartiten Graphen.) Wir nehmen jetzt auch die Löschwahrscheinlichkeit ρ mit in unseren Formalismus auf. Dazu markiere die Blätter eines Baums in Tl (~ p, ~q) zufällig durch 0 (mit Wahrscheinlichkeit ρ) oder durch 1 (mit Wahrscheinlichkeit 1 − ρ). Linke Knoten, also Knoten gerader Tiefe, werden ebenfalls mit Wahrscheinlichkeit 1 − ρ auf den Wert 1 festgefroren. (Wir modellieren den zufällig löschenden Erasure Kanal.) Im Evaluierungsproblem für UND-ODER Bäume fragt man nach der Wahrscheinlichkeit Nulll (ρ), dass die angelegte zufällige Eingabe die Ausgabe 0 an der Wurzel produziert. (Der Wahrscheinlichkeitsraum besteht aus allen Paaren (T, x), so dass x eine Eingabe für den Baum T ∈ Tl (~ p, ~q) ist. Die Wahrscheinlichkeit des Paares (T, x) ist das Produkt der Wahrscheinlichkeit von T mit der Wahrscheinlichkeit von x. Die Wahrscheinlichkeit für eine Null an einer beliebigen Position in x ist ρ.) Erstaunlicherweise lässt sich die Wahrscheinlichkeit Nulll (ρ) leicht rekursiv bestimmen. Dazu zuerst eine vorbereitende Definition. Definition 7.3 Für die Verteilungen p~ = (p1 , . . . , pL ) und ~q = (q1 , . . . , qR ) definieren wir die Polynome p(x) = L X i=2 pi · xi−1 und q(x) = R X i=2 sowie das Iterationspolynom f (x) = ρ · p(1 − q(1 − x)). Lemma 7.4 Setze Null0 (ρ) = ρ. Dann gilt für jedes l ≥ 1, Nulll+1 (ρ) = f (Nulll (ρ)). qi · xi−1 126 KAPITEL 7. ERASURE CODES Beweis: Es ist f (Nulll (ρ)) = ρ · p(1 − q(1 − Nulll (ρ))). Wir betrachten ein UND-Gatter der Tiefe 1. Wenn das UND-Gatter i − 1 Kinder besitzt (und dies passiert mit Wahrscheinlichkeit qi ), dann kann nur dann der Wert 1 erzielt werden, wenn alle i − 1 ODER-Kinder den Wert 1 erreichen und dies passiert mit Wahrscheinlichkeit (1 − Nulll (ρ))i−1 . Mit anderen Worten, q(1 − Nulll (ρ)) ist die Wahrscheinlichkeit, dass ein UND-Knoten der Tiefe 1 wahr wird. Wann wird die Wurzel den Wert 0 bekommen? Zuerst darf die Wurzel nicht festgefroren sein (und dies passiert mit Wahrscheinlichkeit ρ). Wenn das ODER-Gatter j − 1 Kinder besitzt, darf weiterhin keines dieser Kinder wahr sein und wir wissen bereits, dass dies mit Wahrscheinlichkeit (1−q(1−Nulll (ρ)))j−1 passiert. Die Wahrscheinlichkeit für j −1 Kinder ist aber pj und damit ist ρ · p(1 − q(1 − Nulll (ρ))) die Wahrscheinlichkeit für das Wurzelergebnis 0 und die Behauptung folgt. Wir möchten erreichen, dass Nulll (ρ) = f (l) (ρ) schnell kleine Werte annimmt. Dazu machen wir den Ansatz f (x) = ρ · p(1 − q(1 − x)) < x für 0 < x ≤ ρ. (7.3) Wenn Bedingung (7.3) gilt, dann wird die Folge f (l) (ρ) in l monoton fallen und gegen Null konvergieren. Wenn andererseits die Bedingung für x0 ≤ ρ verletzt ist, gilt f (l) (x0 ) > x0 für jedes l. (Dies folgt, da die Polynome p(x) und q(x) monoton wachsende Funktionen in x sind. Damit ist auch f eine monoton wachsende Funktion in x.) Um die Gradverteilung der linken Knoten zu definieren, legen wir die folgende Verteilung fest: pi = 1 P (i − 1) · di=1 für i = 2, . . . , d + 1. 1 i Um den durchschnittlichen Grad der linken Knoten zu berechnen, beachte d+1 X pj 1 = Pd j i=1 j=2 · 1 i und mit (7.1) folgt Gradlinks = di=1 rechten Knoten durch die Verteilung P qi = 1 i d+1 X 1 1 = Pd (j − 1) · j i=1 j=2 · d+1 d . 1 i · d d+1 Wir bestimmen ebenso die Gradverteilung der e−α · αi−1 (i − 1)! für i ≥ 2. Um die Beziehung (7.2) einzuhalten, müssen wir α so wählen, dass X qi i≥2 i = X e−α · αi−1 i≥2 i! = e−α β · (eα − 1) = α Gradlinks gilt. Diese Forderung wird erfüllt, falls Gradlinks α · eα = α β e −1 7.3. LEISTUNGSDATEN DER TORNADO CODES 127 gilt. Wir haben Gradlinks bereits berechnet und erhalten deshalb d 1 d + 1 eα − 1 Gradlinks eα − 1 X = α= · · · β eα i d β · eα i=1 Wir haben hier ein wenig geschummelt, da die tatsächliche Verteilung auf den rechten Knoten natürlich auch endlich sein muss. Da die qi aber schnell gegen Null konvergieren, haben wir nur einen vernachlässigbaren Fehler eingebaut. Wir können jetzt überprüfen, wie schnell Nulll (ρ) gegen Null konvergiert. Es ist −1 p(x) < Pd 1 i=1 i · ln(1 − x) und q(x) = eα·x−α und deshalb −ρ f (x) = ρ · p(1 − q(1 − x)) < Pd 1 i=1 i ρ · ln(eα·(1−x)−α ) = Pd 1 i=1 i · α · x. Mit der Forderung an α erhalten wir f (x) < und für ρ ≤ β · d d+1 ρ · (d + 1) eα − 1 · ·x β·d eα ist insbesondere f (x) < eα −1 eα · x. Als Konsequenz: Lemma 7.5 Für die Verteilungen p~ und ~q mit pi = qi = e−α ·αi−1 (i−1)! 1 P d 1 i=1 i (für i = 2, . . . , d + 1) und (für i ≥ 2) ist Bedingung (7.3) erfüllt, falls ρ≤β· 7.3 (i−1)· d . d+1 Leistungsdaten der Tornado Codes Wir nehmen von jetzt ab an, dass die bisher nicht fixierten Gradsequenzen gemäß den Verteilungen p~ und ~q festgelegt werden. Nach Lemma 7.4 sowie Lemma 7.5 ist damit die Wahrscheinlichkeit der erfolglosen Rekonstruktion eines Bits an einer vorher fixierten Bitposition durch eine beliebig kleine Konstante nach oben beschränkt. Aber wir besitzen n viele Bitpositionen und die erfolglose Rekonstruktion eines wenn auch kleinen, aber immer noch linear großen Anteils der Bitpositionen kann damit nicht ausgeschlossen werden! In experimentellen Tests wurden dann auch häufig nicht-rekonstruierbare Bitpositionen gefunden. Aber wir haben dennoch einen signifikanten Fortschritt gemacht, denn der erwartete Prozentsatz ρ von fehlenden Bits konnte auf einen wesentlich kleineren linearen Anteil α nichtrekonstruierbarer Bits gesenkt werden. Darüberhinaus kann gezeigt werden, dass Bi mit i Wahrscheinlichkeit mindestens 1 − 2−Ω(β ·n) höchstens α · β i · n nicht rekonstruierbare Informationsbits besitzt. Der Rekonstruktions-Prozess beginnt mit dem fehlerkorrigierenden Code D mit Codewort√ länge Θ( n). D sei so gewählt, dass D einen Prozentsatz von ρ0 > ρ fehlenden Bits mit 128 KAPITEL 7. ERASURE CODES √ konstanter Fehlerrate verkraftet. Damit wird D mit Wahrscheinlichkeit 1 − 2−Ω( n) eine vollständige Rekonstruktion erlauben, denn mit dieser Wahrscheinlichkeit wird ein Prozentsatz von höchstens ρ0 aller Bits fehlen. Damit sind sämtliche Check-Bits des letzten bipartiten Codes Bm rekonstruiert und leider wird dennoch ein α-Anteil der Informationsbits von Bm nicht rekonstruierbar sein. Wir fügen einen relativ kleinen, aber immer noch linear großen Anteil von neuen Check-Bits zu Bm hinzu und verbinden die β m · n Informationsbits von Bm mit diesen neuen CheckBits über linear viele, zufällig eingesetzte Kanten. Der neue bipartite Graph wird auf allen Informationsbits von Bm den Grad g besitzen. Wir geben eine informelle Beschreibung des Effekts dieser neuen Kanten. Sei U 0 die Menge nicht-rekonstruierbarer Informationsbits, also |U 0 | ≤ α · β m · n. Da wir Kanten zufällig eingesetzt haben, wird U 0 mindestens g2 · |U 0 | + 1 Nachbarn besitzen: Bei zufälliger Kantenauswahl wird die Menge U 0 also expandieren. Wenn jeder Nachbar mit mindestens zwei Knoten aus U 0 verbunden ist, dann kann U 0 höchstens g2 · |U 0 | Nachbarn besitzen: Es gibt mindestens einen Nachbarn, der nur mit genau einem Knoten u ∈ U 0 verbunden ist! Dieser Knoten u ist jetzt rekonstruierbar! Die Wiederholung dieses Arguments garantiert die vollständige Rekonstruktion aller Informationsbits von Bm . Damit sind aber alle Check-Bits von Bm−1 rekonstruiert und wir wiederholen unser Vorgehen diesmal für Bm−1 . Aufgabe 68 Ein bipartiter Graph G = (L ∪ R, E) heißt ein (γ, α)-Expander, wenn für alle U ⊆ L mit |U | ≤ α · |L| gilt |Γ(U )| ≥ γ · |U |, wobei Γ(U ) die Menge der mit U benachbarten Knoten ist. Ein bipartiter Graph G = (L ∪ R, E) heißt ein eindeutiger α-Expander, wenn für alle U ⊆ L mit |U | ≤ α · |L| ein Knoten v ∈ R mit genau einem Nachbarn in U existiert. a) G = (L ∪ R, E) sei ein durch folgenden Prozess zufällig erzeugter bipartiter Graph mit |L| = |R| = n: −1 Zu jedem Knoten u ∈ L wird zufällig gleichverteilt mit Wahrscheinlichkeit nd die Nachbarmenge Γ({u}) ⊆ R mit |Γ({u})| = d gewählt. α sei eine hinreichend kleine Zahl. Zeige, dass G mit positiver Wahrscheinlichkeit ein ( d2 , α)-Expander ist. Diese Aussage ist für d = O(1) zu zeigen. Hinweis: Zeige, dass die Wahrscheinlichkeit, dass G eine Menge U mit ∅ = 6 U ⊆ L und |U | ≤ αn und d |U | enthält, klein ist. eine Menge W mit Γ(U ) ⊆ W ⊆ R und |W | = 2 Die Stirling Approximation liefert nk ≤ ( ne )k . k b) Zeige, dass ein (γ, α)-Expander auch ein eindeutiger α-Expander ist, falls γ > v ∈ L den Grad d besitze. Satz 7.6 Die Verteilungen p~ und ~q seien durch pi = −α (i−1)· 1 P d i−1 1 i=1 i d , 2 wobei jeder Knoten (für i = 2, . . . , d + 1) und ·α qi = e (i−1)! (für i ≥ 2) definiert. D sei ein „guter“ fehlerkorrigierender Code. D habe die √ Codewortlänge Θ( n) und besitze Kodierungs- und Dekodierungsalgorithmen mit höchstens quadratischer Laufzeit. 1 Der Tornado Code T werde durch D, die Verteilungen p~ und ~q, den Parameter β = ρ·(1+ 2·ε ) und durch die Einsetzung von Expander Graphen entsprechender Größe konstruiert. Dann besitzt T für ρ < 12 die Informationsrate Rate(T ) ≥ (1 − ρ) · (1 − ε). Eine√Rekonstruktion gelingt für hinreichend großes n mit Wahrscheinlichkeit mindestens 1 − 2−Ω( n) . Kodierungs- und Dekodierungsalgorithmen benötigen höchstens O(n · ln( 1ε )) Schritte. 7.3. LEISTUNGSDATEN DER TORNADO CODES 129 Beweis: Wir haben bereits die Informationsrate berechnet und 1−β √ ) 1 + O( 1−β n als Ergebnis (vor dem Einsetzen der Expandergraphen) erhalten. Diese Rate wird um den Faktor 1 − γ für eine kleine Konstante γ sinken, da die Expander Graphen neue Knoten in den Graphen des Tornado Codes einfügen. Für hinreichend großes n kann γ als beliebig klein angenommen werden. Für eine erfolgreiche Rekonstruktion genügt die Forderung β ≥ ρ· d+1 d gemäß Lemma 7.5. Wir 2 ε setzen d = ε und erhalten die Forderung β ≥ ρ · (1 + 2 ), die wir natürlich mit β = ρ · (1 + 2ε ) erfüllen. Die Informationsrate ist also mindestens 1 − ρ · (1 + 2ε ) (1 − γ) · 1 + O( 1−ρ·(1+ 2ε ) √ ) n ≥ (1 − ρ) · (1 − ε), für hinreichend großes n. Die Laufzeit der Kodier- und Dekodieralgorithmen ist proportional zur Kantenzahl des GraP 1 phen des Tornado Codes. Wir besitzen O(n · 1−β ) Knoten, wobei Gradlinks = di=1 1i · d+1 d = Θ(ln(d)) der durchschnittliche Grad der linken Knoten ist. Die Kantenzahl ist somit O(n · 1 1 1 · ln( )) = O(n · ln( )), 1−β ε ε denn wegen ρ < 1/2 wird β nicht zu nahe an 1 „gedrängt“. Bemerkung 7.2 Unter den konventionellen Erasure-Codes ist der Reed-Solomon Code am erfolgreichsten. In experimentellen Vergleichen mit Varianten des Reed-Solomon Codes wurden Dateien der Größen 1 MB, 2MB, 4 MB, 8 MB und 16 MB bei einer Paketgröße von einem KB kodiert und dekodiert. Die Informationsrate 1/2 wurde zu Grunde gelegt. Bei den Laufzeiten (Kodieren/Dekodieren) ergab sich unter Auswahl der besten Reed-Solomon Variante - 1 MB. Tornado: 0.26 Sek / 0.14 Sek; Reed-Solomon 93 Sek / 40.5 Sek. - 2 MB. Tornado: 0.53 Sek / 0.19 Sek; Reed-Solomon 442 Sek / 199 Sek. - 4 MB. Tornado: 1.06 Sek / 0.40 Sek; Reed-Solomon 1717 Sek / 800 Sek. - 8 MB. Tornado: 2.13 Sek / 0.87 Sek; Reed-Solomon 6994 Sek / 3166 Sek. - 16MB. Tornado: 4.33 Sek / 1.75 Sek; Reed-Solomon 30802 Sek / 13269 Sek. Die Experimente wurden auf einer SUN Ultrasparc (167 MHz) mit 64 MB RAM von den Autoren der Tornado Codes durchgeführt. Diese Zahlen belegen eindeutig den Laufzeitvorteil der Tornado Codes. Kommen wir zu den Nachteilen. Tornado Codes basieren auf einer rekursiven Paritäts-Kodierung und sind deshalb sehr anfällig für verfälschte Pakete. Diese Verfälschungen werden nicht nur nicht korrigiert, sondern sogar vervielfacht. Dies scheint ihren Einsatz für sicheres Internet Routing jedoch nicht zu behindern, da bei kleinen Paketgrößen der Paketverlust, jedoch nicht die Verfälschung von Paketen droht. 130 KAPITEL 7. ERASURE CODES Kapitel 8 End-to-End Congestion Control Paketverluste entstehen aufgrund von Überlast, defekten Routern, Bitfehlern während der Übertragung oder nicht ausreichender Puffer-Kapazität des Empfängers. Weitere Fehlerquellen sind duplizierte Pakete sowie das Eintreffen von Paketen in falscher Reihenfolge. TCP, das Transmission Control Protokoll, ist die verantwortliche Kontrollinstanz für die Behebung von Überlast und die bestmögliche Nutzung der Link-Kapazitäten. Die TCPVerkehrskontrolle misst dazu die Belastung einer Sender-Empfänger Verbindung über den bisher beobachteten Durchsatz der Verbindung und versucht, sich adaptiv auf die Belastung durch Hoch- oder Runterfahren der Emissionsrate einzustellen. - Der Sender berechnet ein Sendefenster (sliding window), dessen Größe sich dynamisch dem Durchsatz anpasst, aber die Länge des Empfänger-Puffers nicht übersteigen sollte. Das Sendefenster besteht aus einem Intervall aufeinanderfolgender Pakete und beschreibt die versandbereiten Pakete, bzw. die versandten, aber noch nicht bestätigten Pakete. (Der Empfänger bestätigt den Erhalt eines Pakets durch eine Bestätigung – Acknowledgements oder Ack –, die Paketen in der Gegenrichtung hinzugefügt wird.) Pakete werden durchnummeriert, um dem Empfänger die Möglichkeit zu geben, die Pakete in richtiger Reihenfolge zusammenzusetzen. bestätigt nicht bestätigt kann gesendet werden zukünftige Pakete Sliding Window (Länge = Länge des Empfänger Puffers) Abbildung 8.1: Sliding Window und bestätigte Pakete - Man unterscheidet kumulative, duplizierte und selektive Bestätigungen. Eine kumulative Bestätigung bestätigt stets auch den Erhalt aller vorher gesandten Pakete. Eine duplizierte Bestätigung wird verschickt, wenn ein Paket in falscher Reihenfolge empfangen wird: Nur das jüngste in richtiger Reihenfolge empfangene Paket wird bestätigt. Eine duplizierte Bestätigung ist also ein Hinweis, aber kein Beweis, für einen Paketverlust. 131 132 KAPITEL 8. END-TO-END CONGESTION CONTROL Eine selektive Bestätigung führt bis zu vier Paket-Intervalle explizit auf, die erfolgreich empfangen wurden. Selektive Bestätigungen sind vor Allem dann wichtig, wenn mehrere Paketverluste in einem Sendefenster auftreten und nur sie bieten die Möglichkeit, die nachzusendenden Pakete zu identifizieren. Die verschiedenen Bestätigungsarten erklären sich einerseits aus dem nur wenigen Bytes langem Platz für Bestätigungen und andererseits aus der Redundanzanforderung, um sich auch gegen den Verlust von Bestätigungen behaupten zu können. - Der Sender berechnet die Rundreisezeit (bzw. Round-Trip Time oder RTT) eines Pakets. Die Rundreisezeit ist der sich dynamisch verändernde Zeitraum, beginnend im Versand des Pakets an den Empfänger und endend im Erhalt des vom Empfänger versandten Ack. Die Rundreisezeit wird durch Stichproben aktualisiert. - Der Retransmission Timeout (RTO) ist der Zeitraum, in dem der Sender auf eine Bestätigung eines versandten Pakets wartet. Geht innerhalb des RTO-Zeitraums keine Bestätigung ein, wird das Paket wieder gesendet. Der RTO-Zeitraum verändert sich dynamisch mit der Rundreisezeit: Bei steigender Rundreisezeit, und damit bei stärker belasteten Links, wird RTO entsprechend hochgesetzt und der Sender wartet länger auf eine Bestätigung. - Ein Fehler tritt auf, wenn der RTO-Zeitraum ohne eine Bestätigung überschritten wird (RTO-Fehler) oder wenn der Sender drei identische duplizierte Bestätigungen erhalten hat (Ordnungsfehler). (Der Sender wartet also ab in der Hoffnung, zwischenzeitlich noch eine Bestätigung zu erhalten.) - Der Sender versucht, sein Sendefenster den Netzbedingungen anzupassen und benutzt dazu die Komponenten Slow Start, Congestion Avoidance, Fast Retransmit und Fast Recovery. Es gibt zahlreiche TCP-Varianten (TCP Tahoe, TCP Vegas, TCP Reno, TCP New Reno, TCP Sack), die sich in der Implementierung dieser vier Verfahren zum Teil wesentlich unterscheiden. Wir beschreiben TCP Sack. (*) Slow Start wird beim Aufbau einer Verbindung bzw. nach einem RTO-Fehler aufgerufen. (Ein RTO-Fehler wird als wesentlich ernster als ein Ordnungsfehler aufgefasst, denn bei einem Ordnungsfehler erhält der Empfänger ja noch neue Pakete.) Slow Start beginnt mit einem kleinen Sendefenster S0 und endet, wenn der Schwellenwert S1 (S0 << S1 ) überschritten wird. Wenn Bestätigungen für alle bisher versandten Pakete innerhalb des Retransmission Timeouts eingegangen sind, dann wird die Länge des gegenwärtigen Sendefensters S auf S = max{2 · S, S1 } hochgesetzt. Also steigert Slow Start die anfänglich sehr geringe Emissionsrate durch multiplikatives Anwachsen (multiplicative increase) bis entweder der Schwellenwert S1 überschritten wird oder bis ein Fehler auftritt. Wird S1 überschritten, dann wird in das Congestion Avoidance Verfahren gewechselt. (*) Congestion Avoidance erhöht die Fenstergröße S um Eins (additives Anwachsen, bzw. additive increase), wann immer alle Pakete eines Fensters bestätigt wurden. (*) Fast Retransmit wird aufgerufen, wenn ein Ordnungsfehler für ein Paket auftritt. Das (vermutlich) verlorene Paket wird neu versandt ohne den Retransmission Ti- 133 meout abzuwarten. Die gegenwärtige Emissionsrate S wird halbiert (multiplikatives Fallen, bzw. multiplicative decrease) und Fast Recovery wird aufgerufen. (*) Fast Recovery: Mit Hilfe der selektiven Bestätigungen wird ein Scoreboard berechnet, das alle vermutlich verlorenen Pakete des Fensters aufführt. Desweiteren schätzt der Sender die Anzahl der (regulär) ausstehenden Pakete und hält die Schätzung in der Variable „pipe“ fest. Der Sender sendet Pakete des Scoreboards bzw. neue Pakete nur dann, wenn pipe < S gilt, wobei S die aktuelle Fenstergröße ist. pipe wird für jedes versandte Paket um Eins erhöht und für jede Bestätigung um Eins erniedrigt: Die Belastung des Netzes ist somit durch S beschränkt. Tritt ein RTO-Fehler auf, wird Slow Start aufgerufen, wobei die aktuelle Fenstergröße als neuer Schwellenwert S1 gewählt wird. Werden hingegen alle Pakete des Scoreboards bestätigt, erfolgt ein Aufruf von Congestion Avoidance. Bemerkung 8.1 Das Knie-Kliff Modell erklärt die unterschiedlichen Geschwindigkeiten der einzelnen TCP-Komponenten beim Hochfahren. Dazu betrachten wir den Durchsatz als Funktion der Last und beobachten bei wachsender, aber relativ kleiner Last einen schnellen Anstieg des Durchsatzes. Ab einer gewissen Last L0 verlangsamt sich der Durchsatz merklich und kommt dann letztlich ab Last L1 völlig zum Erliegen. Wird Last L1 überschritten, kollabiert der Durchsatz fast vollständig. Das Lastintervall [0, L0 ] definiert das Knie und das Lastintervall [L0 , L1 ] das Kliff. Slow Start versucht möglichst schnell, also ganz anders als sein Name besagt, die Last L0 zu erreichen. Congestion Avoidance hingegen begibt sich langsam auf den Weg zum Kliff, wohlwissend, dass der Absturz droht. (Multiplicative Decrease) Fast Retransmit Slow Start (mit Schwellenwert S ) 1 Fast Recovery Congestion Avoidance (Additive Increase) Abbildung 8.2: Interaktion von Slow Start, Congestion Avoidance, Fast Retransmit und Fast Recovery. Die Kombination von Congestion Avoidance und Fast Retransmit folgt somit dem konservativen Prinzip des additiven Anwachsen / multiplikativen Fallens (AIMD). Bemerkung 8.2 TCP Tahoe, TCP Reno wie auch TCP Sack sind Implementierungen verschiedener AIMD-Verfahren. Alle Verfahren erhöhen in Congestion Avoidance ihre Senderate r additiv um α, wenn kein Paket-Verlust eintritt. Die Verfahren unterscheiden sich aber in 134 KAPITEL 8. END-TO-END CONGESTION CONTROL ihrer Implementierung von Fast Retransmit, also in ihrer Reaktion auf einen Paketverlust. In allerdings stark vereinfachter Darstellung ergeben sich die folgenden Definitionen. (β mit 0 < β < 1 und γ ∈ R>0 sind Konstanten.) TCP Tahoe (starke Geschwindigkeitsreduktion): Tritt mindestens ein Paket-Verlust auf, dann legt der Sender eine Sendepause fixierter Länge ein. Nach Ablauf der Sendepause wird die Rate r auf β · r erniedrigt. TCP Reno (mittlere Geschwindigkeitsreduktion): Tritt genau ein Paketverlust ein, dann wird die Rate auf β·r−γ reduziert, aber eine Sendepause wird nicht eingelegt. Treten hingegen mehrere Paketverluste auf, dann wird eine Sendepause von vorher festgelegter Länge eingelegt. Als neue Rate wird eine langsame, vorher fixierte Rate gewählt, die nicht von r abhängt. TCP Sack (sanfte Geschwindigkeitsreduktion): Treten v Paket-Verluste auf, dann wird die Rate auf β · r − γ · v reduziert. Der Sender legt aber keine Sendepause ein. Beispiel 8.1 Active Queue Management (AQM) AQM-Algorithmen entfernen sogar vorsätzlich Pakete als Teil einer Verkehrskontrolle. Warum sollte man Pakete entfernen, wenn dies nicht erzwungen ist? Der Sender entfernter Paket stellt fest, dass diese nicht ankommen und vermindert daraufhin (hoffentlich) freiwillig die Sendegeschwindigkeit. Der AQM-Algorithmus Drop-Tail weist ankommende Pakete ab, falls die maximale Queuegröße überschritten wird. Paketstaus werden allerdings nur langsam aufgelöst, da Sender zu spät von überlaufenden Queues erfahren, und deshalb versucht der AQM-Algorithmus RED (Random Early Detection), die durchschnittliche Queue-Größe klein zu halten. RED arbeitet mit den Schwellenwerten MIN und MAX und arbeitet mit einer Löschwahrscheinlichkeit pM in Abhängigkeit von der Queuegröße M . Die Bestiimung von pM ist nicht automatisch. Da das Verwerfen der Pakete in Routern zufällig erfolgt, können durch RED unter Umständen eine Vielzahl von Verbindungen zur Neuübertragung veranlasst werden, was den Stau verschärfen kann. Andererseits kann es auch dazu führen, daß zu viele Verbindungen abbremsen und es dadurch erst Recht zu Lastschwankungen kommt. Desweiteren könnte ein Client sich durch das Nichtverzögern des Datenverkehrs Bandbreitenvorteile verschaffen, da gehorsame Clients ihre Flüsse abbremsen, und demgemäß sind mit dem reinen RED-Algorithmus keine Quality-of-Service Konzepte umsetzbar. Daher wurden erweiterte Algorithmen wie Blue und Stochastic Fair Blue (SFB) entwickelt, die sich besser für die Verkehrskontrolle eignen. Eine durch Blue verwaltete Queue löscht Pakete ebenfalls randomisiert mit einer adaptiv bestimmten Wahrscheinlichkeit p, wobei p bei einer Überlast auf p · (1 + ε) erhöht und bei einer Unterlast auf p · (1 − ε) reduziert wird. Stochastic Fair Blue (SFB) bestimmt Löschwahrscheinlichkeiten in Abhängigkeit von der Rate eines Paketflusses, wobei die Rate durch Hashing oder durch die wesentlich speichereffizienteren Bloom-Filter approximiert wird. Wenn die Löschwahrscheinlichkeit eines Flusses gegen 1 konvergiert, dann reagiert der Fluss nicht auf die gelöschten Pakete und der Fluss erfährt eine Strafbehandlung. In den nächsten Abschnitten versuchen wir, die Stärken und Schwächen von AIMD-Verfahren genauer zu verstehen. 8.1. AIMD FÜR EINE RESSOURCE 8.1 135 AIMD für eine Ressource Wir untersuchen ein stark vereinfachtes Szenario, in dem n Verbindungen die Ressource „Bandbreite“ nutzen möchten. Wir nehmen an, dass Verbindung i zum Zeitpunkt t den Anteil xi (t) ≥ 0 angefordert hat. Um die Anforderung xi (t + 1) zum Zeitpunkt t + 1 zu bestimmen, wird i die Antwort y(t) ∈ {fahr hoch, fahr runter} des Systems abwarten und dann xt+1 als Funktion von xi (t) und y(t) bestimmen. Die Aufforderung y(t) ist für alle Verbindungen verpflichtend. Weiterhin fordern wir, dass alle Verbindungen dasselbe lineare Anforderungsschema ( xi (t + 1) = aH + bH · xi (t) yt = fahr hoch, aR + bR · xi (t) yt = fahr runter benutzen. Unser Ziel ist die Bestimmung eines linearen Anforderungsschematas, das die Fairness P ( ni=1 xi (t + 1))2 P Ft+1 = n · ni=1 xi (t + 1)2 zum Zeitpunkt t + 1 maximiert. Aufgabe 69 Zeige, dass 0 ≤ Ft ≤ 1 gilt. Darüberhinaus ist Ft genau dann maximal (Ft = 1), wenn alle xi (t) identisch sind. Lemma 8.1 Ein lineares Anforderungsschema ist multiplikativ für das Runterfahren (aR = 0 und bR < 1) und additiv für das Hochfahren (bH = 1), falls den Anweisungen des Systems Folge zu leisten ist und der Fairnessanstieg in jedem Schritt zu maximieren ist. Beweis: Die Verbindung i muss ihre Anforderung für „yt = fahr runter” drosseln. In diesem Fall ist also xi (t + 1) = aR + bR · xi (t) < xi (t) zu fordern, falls xi (t) > 0. Da xi (t + 1) ≥ 0 auch für kleine Werte von xi (t) sichergestellt werden muss, darf aR nicht negativ werden. Andererseits muss xi (t + 1) < xi (t) ebenfalls für kleine Werte von xi (t) garantiert werden und damit folgt aR = 0. Wir erhalten also aR = 0 und 0 ≤ bR < 1. (8.1) Für die Antwort „yt = fahr hoch” ist hingegen xi (t + 1) = aH + bH · xi (t) > xi (t) zu fordern und wir erhalten die Bedingungen aH ≥ 0 und bH ≥ 1. (8.2) Wir betrachten als Nächstes die Konvergenz gegen die optimale Fairness. Es ist ( ni=1 xi (t + 1))2 ( ni=1 aH + bH · xi (t))2 Pn P = n · i=1 xi (t + 1)2 n · ni=1 (aH + bH · xi (t))2 P ( ni=1 aH /bH + xi (t))2 P . n · ni=1 (aH /bH + xi (t))2 P Ft+1 = = P Wir fassen den letzten Ausdruck als Funktion von c = aH /bH auf und erhalten die Funktion n X G(c) = ( i=1 c + xi (t))2 /(n · n X i=1 (c + xi (t))2 . 136 KAPITEL 8. END-TO-END CONGESTION CONTROL Beachte, dass G(0) = Ft . Wir zeigen, dass G0 (c) ≥ 0 für c ≥ 0 und damit ist G für c ≥ 0 eine monoton wachsende Funktion. Die Bedingung G0 (c) ≥ 0 ist äquivalent mit1 n X 2n · ( c + xi (t)) · (n · i=1 n X (c + xi (t))2 ) ≥ ( i=1 c + xi (t))2 · (2n · i=1 und damit, nach Kürzung um den Term 2n · ( n· n X Pn i=1 c n X n X i=1 i=1 (c + xi (t))2 ≥ ( n X (c + xi (t))) i=1 + xi (t)) > 0 äquivalent mit c + xi (t))2 . Diese Ungleichung ist stets erfüllt und der Nachweis der Monotonie von G für c ≥ 0 ist geführt. Da die Funktion G für c ≥ 0 monoton wachsend ist, müssen wir c größtmöglich wählen, um einen maximalen Fairnessanstieg zu gewährleisten. Wenn die Anforderungen runter zu fahren sind, bleibt die Fairness damit aufgrund von (8.1) unverändert (denn aR = 0), während im Fall des Hochfahrens die Setzung bH = 1 wegen (8.2) optimal ist. (Allerdings ist im Fall aH = 0 zu berücksichtigen, dass die Fairness unabhängig von bH unverändert bleibt. aH = 0 kann somit ausgeschlossen werden, da ein Fairnessanstieg für jedes aH > 0 erfolgt.) Das Argument zeigt, dass additives Anwachsen zu dem stärksten Anstieg der Fairness führt. Dies ist nicht weiter verwunderlich, da ein langsames Ansteigen jeder beteiligten Verbindung denselben Zusatzgewinn bringt. Allerdings ist Lemma 8.1 keine wirklich überzeugende Rechtfertigung des additive increase - multiplicative decrease Rezepts, denn wir schränken uns in Lemma 8.1 freiwillig auf die kleine Klasse der linearen Anforderungsschemata ein. Aufgabe 70 Es ist zu erwarten, dass Nutzer mit verschiedenen Bandbreiten auf die Ressource zugreifen. Diese sollen nun entsprechend ihrer Bandbreite bedient werden. Pn Gegeben sei eine Verteilung (pi )1≤i≤n mit pi ≥ 0 für jedes i und i=1 pi = 1. Steht die Ressource in Kapazität B zur Verfügung, so ist jetzt das Ziel, dass Anfrage i den Anteil pi · B erhält. Wir definieren die gewichtete Fairness als Pn xi (t))2 Ft = Pn i=11 . 2 ( i=1 pi (xi (t)) Beachte, dass wir die ursprüngliche Definition der Fairness für die Gleichverteilung pi = 1 n erhalten. 1. Zeige, dass 0 ≤ Ft ≤ 1 gilt. P 2. Zeige, dass Ft = 1 ⇔ xj (t) = pj xi (t). Hinweis: Lemma 1.1 ist hilfreich. Beachte auch, dass cos(φ) = 1 ⇔ φ = 0 für einen Winkel −π < φ ≤ π. 3. Zeige, dass wir Ft+1 ≥ Ft für das Kommando „runter“ (beziehungsweise Ft+1 > Ft für das Kommando „hoch“) erreichen, wenn wir xi (t + 1) = xi (t) + pi β · xi (t) falls Kommando hoch erfolgt, falls Kommando runter erfolgt wählen. Wir verschärfen jetzt das betrachtete Szenario und lassen zu, dass alte Verbindungen terminieren und neue Verbindungen hinzukommen, bleiben aber bei der Einschränkung auf eine einzige Ressource. Wie schnell konvergiert AIMD gegen ein sich jetzt dynamisch änderndes 1 Zur Erinnerung: ( fg )0 = f 0 ·g−f ·g 0 g2 und ( fg )0 ≥ 0 ist äquivalent zu f 0 · g ≥ f · g 0 . 8.1. AIMD FÜR EINE RESSOURCE 137 Fairness-Optimum? Wir nehmen an, dass AIMD die Bandbreite im Hochfahren um 1 erhöht und im Runterfahren um den Faktor β < 1 erniedrigt. Wir fixieren eine Verbindung V und nehmen an, dass das System eine Gesamtbandbreite B zur Verfügung stellt. V wird zu einem Zeitpunkt T mit Bandbreite 0 aufgenommen und wird dann in einer Folge von Additionsschritten mehr und mehr Bandbreite gewinnen. Wir interessieren uns vor Allem für die Folge T0 < T1 < · · · Tk < · · · der Zeitpunkte, zu dem das System den Befehl des Runterfahrens gibt. Es gelte T ≤ T0 . Lemma 8.2 Wenn Verbindung V bis zum Zeitpunkt Tk besteht, dann beträgt ihre Bandbreite vor dem Zeitpunkt Tk mindestens B (1 − β)k · , nk wobei nk die Anzahl der Verbindungen zum Zeitpunkt Tk ist. Zu einem Zeitpunkt t ∈ [Tk−1 , Tk [ besitzt jede andere Verbindung höchstens die Bandbreite von V plus die Bandbreite β k · B. Beweis: Wir führen den Begriff der gerechtfertigten Bandbreite für alle dem Zeitpunkt T folgenden Zeitpunkte ein. Wir legen fest, dass die von den einzelnen Verbindungen zum Zeitpunkt T gehaltenen Bandbreiten ungerechtfertigt sind. (Wir nehmen also die Sichtweise der Verbindung V ein, die zum Zeitpunkt T mit Bandbreite 0 beginnen muss.) Danach gewinnen alle Verbindungen bis zum Zeitpunkt T0 zusätzliche Bandbreite und wir legen diese gewonnene Bandbreite als gerechtfertigt fest. (Intuition: Die Verbindung V muss die ihrerseits gewonnene Bandbreite auch den anderen Verbindungen zugestehen.) Zum Zeitpunkt T0 werden alle Bandbreiten, ob gerechtfertigt oder nicht, mit dem Faktor β erniedrigt. Im Zeitraum ]T0 , T1 [ gewinnen dann alle Verbindungen gerechtfertigte Bandbreiten etc. Wieviel Bandbreite ist zum Zeitpunkt Tk gerechtfertigt? Nur die Bandbreite zum Zeitpunkt T ist ungerechtfertigt und danach kommt nie mehr ungerechtfertigte Bandbreite hinzu. Da die ungerechtfertigte Bandbreite zu jedem Zeitpunkt Ti um den Faktor β erniedrigt wird, ist vor dem Zeitpunkt Tk höchstens die Bandbreite β k · B ungerechtfertigt. Der Begriff der berechtigten Bandbreite ist für die Verbindung V optimal, da keine andere Verbindung mehr berechtigte Bandbreite besitzen wird als V : spätere Verbindungen besitzen weniger und zwischenzeitlich terminierende Verbindungen geben zusätzliche Bandbreite frei. Das aber bedeutet, dass V vor dem Zeitpunkt Tk mindestens die Bandbreite (1 − β k ) · B/nk errungen hat. Eine andere Verbindung W wird dann die meiste Bandbreite an sich reißen können, wenn sie zum Zeitpunkt T die gesamte (und damit ungerechtfertigte) Bandbreite B besitzt. Zu einem Zeitpunkt t ∈ [Tk−1 , Tk [ ist aber die ungerechtfertigte Bandbreite auf β k · B geschmolzen und die Verbindung W besitzt dann höchstens die (gerechtfertigte) Bandbreite von V plus die ungerechtfertigte Bandbreite β k · B. Jede Verbindung erhält also mindestens ihren fairen Anteil mit exponentieller Geschwindigkeit, wenn man die Zeit in der Anzahl der Befehle zum Runterfahren misst. Zuletzt nehmen wir das folgende, stark vereinfachte steady-state Modell an, um den Durchsatz D von AIMD in Abhängigkeit von der Verlustrate p zu bestimmen: Ein Sender fährt seine Sende-Rate um jeweils ein Paket solange hoch, bis ein Schwellenwert S erreicht ist. Danach erfolgt ein Paketverlust und der Sender muss seine Rate von S auf S2 halbieren. 138 KAPITEL 8. END-TO-END CONGESTION CONTROL Beginnend mit Senderate S2 erhalten wir in den ersten S2 Schritten den Gesamtdurchsatz P D∗ = Si=S/2 i ≈ 83 · S 2 und D∗ fällt auch in jedem darauffolgendem Zeitintervall der Länge S2 an. Also erhalten wir den durchschnittlichen Durchsatz D ≈ 38 · S 2 /(S/2) = 34 · S. Andererseits erfahren wir in jedem Zeitintervall der Länge S/2 genau einen Paketverlust, und damit ist 8 p ≈ 3·S 2 die durchschnittliche Verlustrate. Als Konsequenz haben wir die Beziehung 1 D = Θ( √ ) p erhalten. Man überzeugt sich jetzt sofort, dass die Beziehung D = Θ( p1 ) für AIAD, MIAD und MIMD gilt und AIMD besitzt die höchste Durchsatzrate als Funktion der Verlustrate. Aufgabe 71 Wir betrachten wieder das AIMD-Verfahren für eine Ressource, die pro Zeiteinheit in Kapazität B zur Verfügung steht. Wir verwenden das Anforderungsschema xi (t + 1) = xi (t) + 1 β · xi (t) falls Kommando hoch erfolgt, falls Kommando runter erfolgt. Wir nehmen an, dass die Parameter so gewählt sind, dass nach einmaligem Runterfahren die Kapazität unterschritten wird. Als Spanne eines Systems zum Zeitpunkt t bezeichnen wir die maximale Differenz |xi (t) − xj (t)| zwischen zwei Anfragen zum Zeitpunkt t. (a) Zeige, dass ein System mit n Verbindungen und anfänglicher Spanne ∆ nach Θ B · ln n ∆ Iterationen eine vorgegebene Spanne ε nicht überschreitet. (b) Neben der Fairness ist die Auslastung der Ressource eine wichtige Qualitätsgröße: Am gerechtesten ist schließlich ein kaputtes System. Als Auslastung A zum Zeitpunkt t definieren wir Pn A(t) = xi (t)/B A(t − 1) i=1 Pn falls sonst. i=1 xi (t) ≤ B, Wir beschränken uns auf eine Verbindung (n = 1). Zeige, dass der mittlere Auslastungsfaktor mit wachsendem t gegen einen Wert von mindestens 12 · (β + 1) strebt. 1 t Pt t0 =1 A(t0 ) Man nennt einen Paketfluss mit Durchsatz D = Θ( √1p ) auch TCP-freundlich, da der Fluss zumindest scheinbar seine Geschwindigkeit nach den TCP-Regeln steuert. Da ein Router die Beziehung Durchsatz/Verlustrate nachprüfen kann, können somit aggressive Flüsse, erkannt und eliminiert werden. Aufgabe 72 Die TCP-Geschwindigkeitsregeln sind für Streaming Audio- und Video-Applikationen zu konservativ und man betrachtet deshalb auch die folgenden Geschwindigkeitsregeln: Beim Hochfahren wird xi (t+1) = xi (t)+α·xi (t)k und beim Herunterfahren wird xi (t + 1) = xi (t) − β · xi (t)l für α, β > 0 gefordert. (a) Wir nehmen an, dass sich zwei Verbindungen um eine Ressource streiten und dass sich diese beiden Verbindungen nach den neuen Geschwindigkeitsregeln richten. Wir nehmen desweiteren an, dass das System genau dann auf die Bremse tritt, wenn x1 (t) + x2 (t) > 1. Zeige, dass limt→∞ (x1 (t), x2 (t)) = (1/2, 1/2) gilt. (b) Verallgemeinere Teil (a) auf den Fall von beliebig vielen Verbindungen. 1 (c) Zeige, dass D = Θ( p1/(k+l+1 ) gilt. Also erzeugen die neuen Geschwindikeitsregeln genau dann TCPfreundliche Flüsse, wenn k + l = 1 (und l ≤ 1) gilt. Offenes Problem 3 Entwerfe ein realistisches Szenario, in dem AIMD als fast-optimal nachgewiesen werden kann. In [EDD] wird ein On-line Szenario mit einer einzelnen Ressource entworfen. 8.2. ALTERNATIVE GESCHWINDIGKEITSREGELN 8.2 139 Alternative Geschwindigkeitsregeln Zwar setzt sich AIMD in der obigen Analys gegen MIMD, AIAD und MIAD durch, doch ist ein Vergleich mit einer größeren Klasse von Strategien unterblieben und nur der Fall einer einzigen umkämpften Ressource wurde betrachtet. Schließlich haben wir unter idealisierten Annahmen wie einer nicht zu berücksichtigenden Round-Trip Time gearbeitet. Die folgenden Kritikpunkte müssen deshalb angesprochen werden: (1) TCP ändert Geschwindigkeiten nur aufgrund von Paket-Verlusten. Der Paket-Verlust ist nicht anderes als ein binäres Signal, das aber nicht den Grad der Verstopfung angibt und damit keine Möglichkeit einer der Ursache angepassten Reaktion erlaubt. Da das Feststellen eines Paketverlusts ohne Zusatzinformation erfolgt, ist die Reaktion notwendigerweise defensiv und Durchsatz-feindlich. Vorbeugende Gefahrmeldungen durch Router scheinen vernünftiger als ein Warten auf den Unfall. (2) Die Reaktionszeit hängt stark von der Round-Trip Time ab, die kontroll-theoretisch als Feedback-Verzögerung wirkt. Als Konsequenz benachteiligt TCP Paketflüsse mit grosser Round-Trip Time. Um Stabilität bei großer Feedback-Verzögerung zu bewahren, müssen Sender zwangsläufig entsprechend langsamer reagieren, aber das Ausmaß der Geschwindigkeitsveränderung ist unklar: Wenn Sende- und Empfangsrate auseinanderklaffen, dann ist aus Sicht der Kontrolltheorie ein invers proportionales Abbremsen angemessen. Wenn hingegen auf eine durch eine Queue verursachte Verzögerung reagiert werden muss, dann ist ein invers quadratisches Abbremsen angeraten. (3) TCP skaliert schlecht mit steigender Link-Kapazität von optischen Links und wachsender Verzögerung auf Satelliten-Links. Sally Floyd berechnet, dass eine standard TCP-Verbindung mit Paketen von 1.5 KB, einer Round-Trip Time von 100 Millisekunden und einem Steady-State Durchsatz von 10 Gigabit pro Sekunde ein Sliding Window von ungefähr 84,000 Segmenten und eine Verlustrate von Eins zu 5 Milliarden (oder äquivalent ein verlorenes Paket in 1 2/3 Stunden) benötigt. Solche Anforderungen sind durch das konventionelle TCP nicht zu bewältigen. (4) Slow Start benötigt Θ(log2 N ) Verdopplungen bis die volle Bandbreite N erreicht ist. Dies ist kein Problem für langlebige Flüsse, aber sehr wohl ein Problem für kurzlebige Flüsse, die während ihrer Lebenszeit Slow Start nicht verlassen und dementsprechend die zur Verfügung stehende Bandbreite auch nicht voll nutzen können. (Beachte, dass ein Zeitfenster der Länge mindestens RTT zwischen Verdopplungen liegen muss.) Die zukünftige Form der Verkehrskontrolle ist unklar. Zum jetzigen Zeitpunkt konkurrieren die folgenden Modifikationsvorschläge miteinander. HighSpeed TCP (ftp.rfc-editor.org/in-notes/rfc3649.txt) verhält sich wie das konventionelle TCP, wenn das Sliding Window nicht zu groß ist. Auch für große Sliding Windows wird das AIMD Verfahren beibehalten, allerdings mit aggressiveren Inkrementen und langsamerem Abbremsen. 140 KAPITEL 8. END-TO-END CONGESTION CONTROL Desweiteren wird Slow Start durch Limited Slow Start ersetzt, wenn TCP mit einem großen Sliding Window beginnt: Statt die Senderate exponentiell zu steigern, wird die Fenstergröße nach jedem Acknowledgement um eine Konstante vergrößert. Selbst wenn ein Acknowledgement ausbleibt, wird die Fenstergröße allerdings um eine kleinere Konstante vergrößert. QuickStart (www.ietf.org/internet-drafts/draft-amit-quick-start-04.txt) Bei Eröffnung einer Verbindung zwischen Hosts A und B sendet A ein Paket mit einer gewünschten Emissionsrate. Router auf dem Weg von A nach B können die gewünschte Emissionsrate billigen, modifizieren oder ablehnen. Host B sendet dann das Ergebnis der “Router-Umfrage” an A zurück. Sollte die Anfrage abgelehnt werden, wählt A eine DefaultEmissionsrate. Natürlich ist das Ziel, bereits mit einer großen Emissionsrate, beziehungsweise mit einem großen Sliding Window zu beginnen. Beide Verfahren sind also konservative TCP-Erweiterungen und die Kritikpunkte (1) und (2) bleiben bestehen. Explicit Control Protocol (XCP) geht auf die Publikation [KHR] zurück. Siehe auch http://www.isi.edu/isi-xcp/ und http://www.ana.lcs.mit.edu/dina/XCP/. XPC verfolgt zwei neue Ansätze. Zuerst verschickt XPC explizite Stauinformationen: Die Router informieren den Sender durch Acknowledgements über den Verstopfungsgrad und erlauben damit eine der Ursache angepasste Reaktion. Zuletzt behandeln Router Effizienz (möglichst große Ausnutzung der Bandbreite) und Fairness (möglichst gleichmäßige Aufteilung der Bandbreite) getrennt, was zu einer schnelleren, aber immer noch fairen Bandbreitennutzung führen soll. In XCP gibt der Sender A die Größe seines Sliding Windows und die gegenwärtige RoundTrip Time im Paket-Header bekannt und nennt anfänglich seine gewünschte Emissionsrate S. Jeder Router auf dem Weg modifiziert S aufgrund dieser Information, schreibt die modifizierte Information in den Paket-Header und reicht das Paket an den nächsten Router weiter. Der Empfänger B verschickt dann die Empfehlung als Teil des Acknowledgements zurück an A. Insbesondere kann somit QuickStart als Teil von XCP aufgefasst werden. Jeder Router R bestimmt für jeden Link die durchschnittliche Round-Trip Time T der über den Link führenden Pakete. R beginnt jetzt ein Zeitintervall der Länge T mit einer Geschwindigkeitsempfehlung und wartet die nächsten T Schritte ab, um die Konsequenz der bisherigen Empfehlung einschätzen zu können. Danach wird ein neues Zeitfenster mit aktualisiertem T aufgemacht und das Vorgehen wiederholt sich. Die Geschwindigkeitsempfehlung wird vom Effizienz-Controller und dem Fairness-Controller entworfen. Der Effizienz-Controller bestimmt die freie Bandbreite B am Ende des alten Zeitfensters sowie (im Wesentlichen) die minimale Queuegröße Q während des letzten Zeitfensters und definiert dann φ=α·B−β·Q als zu vergebende, bzw. zu drosselnde Bandbreite für Koeffizienten α, β ∈ [0, 1]. (Die minimale Queuegröße geht negativ ein, damit die Queue entleert werden kann.) Der Fairness-Controller wendet AIMD an, um φ auf die Flüsse aufzuteilen: - Für φ ≥ 0 erhält jeder Fluss dasselbe additive Inkrement. - Für φ < 0 sinkt die Bandbreite eines jeden Flusses um denselben Faktor. 8.2. ALTERNATIVE GESCHWINDIGKEITSREGELN 141 Beachte, dass für φ = 0 die Effizienz maximiert wurde und damit ein weiterer Fairnessanb stieg ausgeschlossen ist. Deshalb wird die Bandbreite max{0, 10 − |φ|} des Gesamtflusses zur Fairness-Umverteilung benutzt (b ist die Bandbreite des Gesamtflusses). Schließlich müssen wir noch den Fehlerfall ansprechen. Hier verhält sich XCP wie TCP. XCP ist sogar fairer als das konventionelle TCP, da in TCP eine Umverteilung nur im Fehlerfall geschieht. Desweiteren kann gezeigt werden, dass XCP in einem vereinfachten Modell (eine strittige Ressource mit n Verbindungen, die die gleiche Round-Trip Time besitzen) gegen ein Fairness- und Effizienz-Optimum konvergiert. Experimentelle Untersuchungen [KHR] zeigen, dass XCP eine höhere Bandbreitenausnutzung, kleinere Queuegrößen und eine geringere Verlustrate besitzt. Gleichzeitig fordert XCP keinen großen administrativen Aufwand und sollte von Hochgeschwindigkeitsroutern benutzbar sein. 142 KAPITEL 8. END-TO-END CONGESTION CONTROL Kapitel 9 IP-Traceback In einer typischen Verbindung kontaktiert ein Rechner einen Webserver mit der Bitte um Zugang, E-Mail, IP-Ping Anfragen oder Internet Control Message Protocol (ICMP) Paketen. In einer Denial-of-Service Attacke schickt ein Angreifer über eine große Zahl gehackter Rechner eine Vielzahl von Anfragen mit falscher Rückadresse an sein Opfer. Die Ressourcen des Servers werden aufgebraucht und der Server wird lahmgelegt. Wir stellen uns das Problem, den Weg der angreifenden Pakete zu den gehackten Rechner zurückzuverfolgen. Man beachte, dass der Paket-Header nur die IP-Adresse des Senders und des Empfängers bereitstellt und neben dem Hop-Count keine weitere Information über den zurückgelegten Weg zur Verfügung stellt. Leider lässt das IP-Protokoll zu, das der Sender seine IP-Adresse eintragen darf und gefälschte IP-Adressen sind somit leicht zu erstellen. Wir stellen zuerst eine Reihe tatsächlicher benutzter Methoden sowie potentielle Methoden mit ihren Vor- und Nachteilen vor. - Anhängen von ID’s der durchlaufenen Router: Dieses sicherste Verfahren scheitert an der vorgegebenen Maximallänge des Paket-Headers. Desweiteren ist es schwierig eine Maximallänge für den Weg vorzugeben, da der Angreifer ein gefälschtes Anfangsstück des Weges einsetzen kann und damit den vorgesehen Platz füllt. - Filterung: Router bestimmen, ob die Adresse des Senders legal ist. Ein solcher Ansatz ist für geringes Paketvolumen und kleine Netze adäquat, da dann die Legalität überprüfbar ist. Allerdings besteht die Gefahr, dass eine legale Adresse gefälscht wird. - Testen der Links: Der am nächsten zum Opfer liegende Router rekonstruiert die Links, auf denen der Angriffsverkehr verläuft. Dieses Vorgehen setzt voraus, dass der Angriff andauert, bzw. dass der Angreifer auf die Rückverfolgung nicht reagieren kann. Desweiteren wird die Rückverfolgung den Routern aufgeladen. - Logging: Erhaltene und weitergeleitete Pakete werden in einem „Logbuch“ festgehalten. Dieser Ansatz verbraucht enorme Ressourcen und setzt voraus, dass verschiedenste Provider in der Rückverfolgung kooperieren. - ICMP Traceback1 : Es wird eine Stichprobe der erhaltenen Pakete angelegt (mit einer 1 ICMP (Internet Control Message Protocol) ist eine Komponente des Internet Layers. Es benutzt das Internet Layer, um Probleme im Paketversand bekannt zu geben. 143 144 KAPITEL 9. IP-TRACEBACK Stichprobenwahrscheinlichkeit von z.B. 1/20000). Sodann wird für jedes „gezogene“ Paket eine ICMP-Traceback Nachricht an den Empfänger verschickt, wobei die Nachricht die Router auf dem Weg zum Empfänger aufführt. Dieser Zugang ist erfolgversprechend, allerdings wird die geringe Stichprobengröße eine Rekonstruktion behindern und auch der Angreifer erhält die Möglichkeit gefälschte ICMP-Nachrichten abzuschicken. Das Modell: Wir repräsentieren das Opfer als Wurzel eines Baums B und Router als innere Knoten von B. Die inneren Knoten entsprechen potentiellen Angreifern. Unser Ziel ist die Rekonstruktion der Angriffswege. Wir machen die folgenden Annahmen: - Ein oder mehrere Angreifer attackieren das Opfer, wobei Angreifer zusammenarbeiten und über Rekonstruktionsversuche im Bilde sind. - Pakete können verloren gehen, bzw in anderer Reihenfolge empfangen werden. - Router müssen ihre Berechnungskraft vorwiegend für den Datentransport einsetzen. - Angriffe sind nur ernst zu nehmen, wenn sie das Opfer wesentlich behindern. - Innerhalb kurzer Zeit von einem Angreifer abgeschickte Pakete benutzen im Wesentlichen denselben Weg. Wir stellen einen ersten Verteidigungsmechanismus vor, der aus einer randomisierten Markierung der Pakete durch die Router des Weges sowie aus einem Rekonstruktionsalgorithmus des Opfers besteht. Die einzig notwendige Kooperation unter den Routern besteht somit in der Paket-Markierung und die Rekonstruktion wird allein vom Opfer durchgeführt. Wir müssen allerdings annehmen, dass der Paket-Header drei zusätzliche Felder zur Verfügung stellt: ein Start- und Endefeld sowie ein Distanzfeld, die insgesamt bis zu 72 Bits (zweimal 32 Bits für die IP-Adressen und 8 Bits für das Distanzfeld) verbrauchen. (Die beiden Start- und Endefelder werden die Endknoten einer durchlaufenen Kante festhalten, das Distanzfeld hält den Abstand zwischen dem Endknoten und dem gegenwärtigen Knoten fest.) Algorithmus 9.1 Randomisierte Markierung Wenn ein Router einen zu hohen Distanzwert entdeckt, dann wird er sich im Startfeld eintragen und das Distanzfeld auf Null setzen. Ansonsten entscheidet sich ein Router R mit Wahrscheinlichkeit p, ein Paket P zu markieren. Wenn R das Paket markiert, dann trägt er sich im Startfeld ein und setzt das Distanzfeld auf Null. Wenn R das Paket nicht markiert und das Distanzfeld den Wert Null hat, dann trägt sich R in das Endefeld ein. Jeder nicht markierende Router wird das Distanzfeld inkrementieren. Kommentar: Ein Angreifer besitzt zwar die Möglichkeit, seine Pakete zu markieren, aber die meisten seiner Pakete werden von Upstream-Routern überschrieben. Selbst wenn ein vom Angreifer markiertes Paket durchkommt, dann erzwingt die Distanz-Markierung, dass die tatsächliche Distanz zum Angreifer mindestens so groß ist wie die im Paket vermerkte Distanz: Es wird dem Angreifer nicht gelingen, den Verdacht auf eine Kante zwischen ihm und dem Opfer zu lenken, aber es ist durchaus möglich, den Verdacht auf weiter entfernt liegende Kanten zu lenken. Algorithmus 9.2 Rekonstruktion durch das Opfer 145 (1) Das Opfer initialisiert einen nur aus der Wurzel bestehenden Baum und trägt sich als Wurzel ein. (2) Wenn ein angreifendes Paket mit der Markierung (start, ende, distanz) empfangen wird, dann setzt das Opfer die Kante (start, ende) ein, falls noch nicht vorhanden und falls die vermerkte Distanz mit der tatsächlichen Distanz zwischen ende und Opfer übereinstimmt. Kommentar: Wenn die vermerkte Distanz mit der tatsächlichen Distanz zwischen ende und Opfer übereinstimmt, dann ist der Angreifer ein Nachfahre des Knotens ende. (3) Die längsten Wege des Baums zur Wurzel entsprechen den vermuteten Angriffswegen. Wir stellen die wesentlichen Eigenschaften der beiden Algorithmen zusammen. Satz 9.3 (a) Wenn sich ein Angreifer im Abstand d vom Opfer befindet, dann wird sein Weg nach einer erwarteten Anzahl von höchstens ln(d) + O(1) p · (1 − p)d−1 Paketen offengelegt. (Wenn p ≈ d1 , dann genügen somit O(d · ln(d)) Pakete. Die Wahrschein1 lichkeit p = 25 wird empfohlen, da Wege nur selten die Länge 25 überschreiten.) (b) Wenn α Angreifer teilnehmen, dann erhöht sich die für die Rekonstruktion aller Wege notwendige erwartete Paketzahl um den Faktor α. Beweis (a): Die Wahrscheinlichkeit, dass das Opfer ein vorgegebenes Paket erhält, das zuletzt vom iten Router des Weges markiert wurde, ist genau p · (1 − p)d−i . Diese Wahrscheinlickeiten werden vom ersten Router minimiert. Wie lange brauchen wir im Erwartungsfall bis das Opfer für jeden Router R des Weges ein von R „unterschriebenes“ Paket erhalten hat? Das Coupon Collector Problem gibt die Antwort: - d verschiedene Coupons müssen gesammelt werden, wobei pi die Wahrscheinlichkeit ist, den iten Coupon zu ziehen. - Wenn q = min{pi | 1 ≤ i ≤ d } ist, dann genügt die erwartete Anzahl Versuchen: ln(d)+O(1) q von 1 q ist die erwartete Wartezeit bis der Coupon mit niedrigster Wahrscheinlichkeit gezogen ist. Die Wartezeit bis alle Coupons gezogen sind, ist dann noch mit dem Logarithmus der Anzahl der Coupons zu multiplizieren. Also genügt die erwartete Paket-Zahl ln(d) + O(1) p · (1 − p)d−1 für die Rekonstruktion. (b) ist offensichtlich. 146 KAPITEL 9. IP-TRACEBACK Aufgabe 73 Wir untersuchen in dieser Aufgabe die Relevanz einer guten Wahl der Markierungswahrscheinlichkeit p beim Probabilistic Packet Marking. Wir nehmen an, dass ein Angreifer Pakete entlang eines Weges der Länge d sendet. Das Ziel ist eine Rekonstruktion des kompletten Weges. Sei W (d) die Wartezeit bis der komplette Weg bekannt ist. Wir wissen bereits, dass E[W (d)] = O(d · log(d)) für p = d1 gilt. (a) Zeige: E[W (d)] = Ω(dk · log(d)) für p = (b) Zeige: E[W (d)] = ω(dk ) für p = √1 d 1 dk und k > 1. und beliebiges festes k. Ein Schwachpunkt dieses Verfahrens ist die große Anzahl der in Anspruch genommenen Bits im Paket-Header. Wir stellen deshalb einige Varianten vor, die die Anzahl benötigter Bits signifikant reduzieren. Eine erste Modifikation benötigt statt den beiden Start- und Endefeldern nur ein einziges Kanten-ID-Feld von 32 Bits und halbiert somit fast die benötigte Bitzahl: Wenn ein Router R sich entscheidet, ein Paket zu markieren, dann wird der nächste Router R0 des Weges das XOR R ⊕ R0 berechnen. Wenn das Opfer über den Weg (R1 , . . . , Rk ) angegriffen wird, dann wird es mit Rk , Rk−1 ⊕ Rk , . . . , Ri ⊕ Ri+1 , . . . markierte Pakete erhalten, die es dann nacheinander unter Benutzung des Distanzfeldes dekodieren kann. Aufgabe 74 Wir versuchen den Speicheraufwand von 72 (bzw. 40) Bits weiter zu reduzieren. (a) Zeige, wie man durch Aufteilung der Adressen in k Fragmente den Speicheraufwand weiter reduzieren kann. Welche Probleme können hierbei auftreten (wenn Pakete von mehr als einem Angreifer analysiert werden) und wie kann man diese Probleme umgehen? Welcher Speicherbedarf ist mit dieser Methode erreichbar? Wie läuft die Kodierung und Dekodierung der Weginformation ab, wenn das Opfer, ausgehend von einem einzelnen Angreifer, den Weg vom ersten Router nach dem Angreifer bis zum Opfer rekonstruieren will? (b) Zeige, dass die erwartete Anzahl eintreffender Pakete (die benötigt werden, um den Weg zu rekonstruieren) bei einer Weglänge l und einer Markierungswahrscheinlichkeit p durch k · ln(k · l) p(1 − p)l−1 nach oben beschränkt ist. Eine substantielle Verbesserung kann nicht erreicht werden, wenn nur die Typen verschiedener Nachrichten, nicht aber ihre Anzahl festgehalten wird: Lemma 9.4 Das Opfer sei die Wurzel eines vollständigen binären Baums der Tiefe n und ein Angreifer befinde sich auf einem unbekannten Blatt des Baums. Jedes Paket besitze ein Markierungsfeld von b Bits, das durch die Router des durchlaufenen Wegs beschreibbar ist. Der Inhalt des Markierungsfelds definiere den Typ des Pakets. Wenn das Opfer nur die Typen der erhaltenen angreifenden Pakete festhält und nicht deren jeweilige Anzahl, dann muss b ≥ log2 (n − 1) gelten, damit das Opfer das angreifende Blatt mit Wahrscheinlichkeit mindestens 12 rekonstruieren kann. b Beweis: Es gibt 2b verschiedene Pakettypen und 22 verschiedene Teilmengen von Pakettypen. Das Opfer muss aus der Teilmenge der erhaltenen Pakettypen auf das angreifende Blatt zurückschließen können. Wenn dieser Rückschluss auf eines der 2n Blätter mit Wahrscheinlichkeit mindestens 12 gelingen soll, dann muss die Anzahl dieser Teilmengen mindestens 2n /2 betragen und 2n b 22 ≥ 2 147 folgt. Nach zweimaligem Logarithmieren erhalten wir b ≥ log2 (n − 1). Wir zeigen jetzt, dass das Zählen der erhaltenen Nachrichten pro Typ einen entscheidenden Vorteil bringt. Allerdings wird dieses Schema nur für ein angreifendes Blatt erfolgreich sein und wir müssen auf das Markierungsschema von Algorithmus 9.1 für den allgemeinen Fall zurückgreifen. Wir nehmen der Einfachheit halber an, dass das Opfer der Wurzel eines binären Baums der Tiefe n entspricht. (Diese Annahme kann entfernt werden und dient nur einer einfacheren Beschreibung.) Unser Ziel ist die Rekonstruktion des angreifenden Blatts mit einem einzigen Bit! Da wir in einem binären Baum arbeiten, dessen Kanten wir uns Null/Eins markiert vorstellen, wird der Angreifer durch einen unbekannten binären String B = (B1 , . . . , Bn ) beschrieben. Unser neues Markierungsschema wird die Wahrscheinlichkeit p, dass das Opfer ein mit Eins markiertes angreifendes Paket erhält, so steuern, dass vom Wert von p auf den Bitstring B zurückgeschlossen werden kann. Ein solcher Rückschluss ist zum Beispiel dann P trivial, wenn p = ni=1 Bi · 2−i . Für die Dekodierung eines ähnlichen Schemas benötigen wir die folgende Beobachtung: Lemma 9.5 Unbekannte Bits B1 , . . . , Bn sind vorgegeben sowie bekannte reelle Zahlen p, σ und c1 , . . . , cn mit den folgenden Eigenschaften: (1) |p − Pn i=1 ci · Bi | ≤ σ, (2) für jedes i (1 ≤ i ≤ n − 1) gilt ci > 2 · σ + Pn j=i+1 cj und (3) cn > 2 · σ. Dann kann die Bitfolge (B1 , . . . , Bn ) aus der Folge (p, σ, c) rekonstruiert werden. Beweis: Es genügt zu zeigen, dass Bit Bi rekonstruiert werden kann, wenn B1 , . . . , Bi−1 bereits rekonstruiert wurden. Wir behaupten, dass cn−k > 2k+1 · σ als Konsequenz der Eigenschaften (2) und (3) folgt. Wir führen ein induktives Argument und stellen zuerst cn > 21 · σ mit Eigenschaft (3) fest. Der Induktionsschluss folgt unmittelbar, da mit Eigenschaft (2) cn−k > 2 · σ + k−1 X cn−j > 2 · σ + j=0 k−1 X 2j+1 · σ = 2k+1 · σ j=0 gilt. Insbesondere ist also stets ci > 0. Fall 1: p − i−1 j=1 cj · Bj ≥ ci − σ. Wir wenden wieder Eigenschaft (2) an und erhalten Pi−1 P p − j=1 cj · Bj ≥ ci − σ > σ + nj=i+1 cj . Also folgt P p− i−1 X j=1 cj · Bj − n X cj · Bj ≥ p − j=i+1 i−1 X cj · Bj − j=1 n X cj > σ. j=i+1 Da Eigenschaft (1) für Bi = 0 verletzt wird, ist zwangsläufig Bi = 1. Fall 2: p − Pi−1 j=1 cj p− · Bj < ci − σ. Diesmal ist i−1 X j=1 cj · Bj − ci · Bi − n X j=i+1 cj · Bj ≤ p − i−1 X j=1 cj · Bj − ci · Bi 148 KAPITEL 9. IP-TRACEBACK und Eigenschaft (1) wird für Bi = 1 verletzt: Es ist zwangsläufig Bi = 0. Sei r = 12 − ε für ein später zu bestimmendes ε. Wir entwerfen ein Markierungsschema, das Pn −i i=1 Bi · r /2 als Wahrscheinlichkeit einer vom Opfer erhaltenen Eins erzwingt. Sei Rn das angreifende Blatt und sei Ri der ite Router auf dem Weg zur Wurzel R0 . Algorithmus 9.6 Randomisierte Markierung mit einem Bit Ri erhält ein Paket von Router Ri+1 . Das im Paket enthaltene Bit sei Ci . Der Router Ri bestimmt das Bit Bi , das die Kante zum Kind Ri+1 beschriftet. Wenn (Bi , Ci ) = (0, 0), dann wird das Bit Ci mit Null überschrieben. Wenn (Bi , Ci ) = (0, 1) (bzw. (Bi , Ci ) = (1, 0) oder (Bi , Ci ) = (1, 1)), dann wird Ci mit Wahrscheinlichkeit r (bzw. 21 oder 1 − ε) durch eine Eins ersetzt. Ist der Münzwurf nicht erfolgreich, dann wird Ci durch eine Null ersetzt. Das modifizierte Paket wird an Ri−1 weitergeleitet. Wir überprüfen zuerst, dass das Opfer auch tatsächlich eine Eins mit der gewünschten WahrP scheinlichkeit ni=1 Bi · ri−1 /2 erhält. Für t ∈ {0, 1} sei pti die Wahrscheinlichkeit, dass Router Ri das Bit Ci = 1 erhält, wenn der Angreifer zu Anfang das Paket mit dem Bit t markiert hat. Wenn Bi = 0, dann ist pti−1 = r · pti . Für Bi = 1 hingegen ist pti−1 = 21 · (1 − pti ) + (1 − ε) · pti = 1 1 1 t t 2 + ( 2 − ε) · pi = 2 + r · pi . Also ist pti−1 = r · pti + Bi · und wir erhalten pt0 = t · rn + n X 1 2 Bi · ri−1 /2 i=1 durch Induktion. Für die Analyse von Algorithmus 9.6 müssen wir weiterhin sicherstellen, dass wir bei hinreichend großer Paketzahl P hochwahrscheinlich eine scharfe Approximation P p von ni=1 Bi · ri−1 /2 = pt0 − t · rn = p00 erhalten. Wenn x die Anzahl der Pakete mit Bit 1 ist, dann geben wir p = Px − rn /2 als Schätzung an. Wir haben uns damit, unabhängig von der Wahl des vom Angreifer eingesetzten Bits, bereits den Fehler rn /2 eingehandelt. Dieser Verlust ist unvermeidlich, denn der erwartete Anteil P P p∗ der Einsen liegt im Intervall [ ni=1 Bi · ri−1 /2, rn + ni=1 Bi · ri−1 /2] = [p00 , p10 ] und der Angreifer kontrolliert den exakten Wert. Wir machen den Ansatz P = 3 · ln(2/δ)/(ε2 · r2·n ) und untersuchen die Wahrscheinlichkeit, dass |p − p∗ | > Variante der Chernoff-Schranke liefert dann die Schranke prob[ |p − p∗ | > rn 2 + ε · rn . Die Anwendung einer rn + ε · rn ] ≤ δ. 2 Wir dekodieren mit Hilfe von Lemma 9.5 und zeigen zuerst, dass die Eigenschaften von Lemma n 9.5 für p, σ = r2 + ε · rn und ci = ri−1 /2 mit Wahrscheinlichkeit mindestens 1 − δ erfüllt sind. Eigenschaft (1) ist eine Konsequenz der Chernoff-Schranke. Für Eigenschaft (3) müssen n wir r2 + ε · rn < cn /2 = rn−1 /4 fordern. Diese Forderung ist äquivalent zu der Ungleichung r · ( 12 + ε) < 1/4, die wegen r = 21 − ε erfüllt ist. Eigenschaft (2) folgt aus Eigenschaft (3), da P ci − nj=i+1 cj > cn . 149 Satz 9.7 Algorithmus 9.6 erlaubt die Rekonstruktion eines Weges, wenn mindestens P = 3 · ln(2/δ)/(ε2 · r2·n ) Pakete vom Opfer erhalten werden. Die Anzahl der Pakete ist von der Form O((2 + ε0 )2·n ) und damit zu groß für praktische Anwendungen. Allerdings kann unser Schema für b Bits so modifiziert werden, dass die notb wendige erwartete Paketzahl auf ungefähr O((2 + ε0 )4·n/2 ) gedrückt wird. Aber der etwas verschwenderische Algorithmus 9.1 bleibt überlegen, da er mehrere Angreifer verkraftet. 150 KAPITEL 9. IP-TRACEBACK Teil III Die Theorie nicht-kooperativer Spiele 151 Kapitel 10 Algorithmische Spieltheorie Das Internet kann als ein verteiltes, dezentrales System von eigensüchtigen Agenten aufgefasst werden. Besitz, Betrieb und Benutzung von Ressourcen durch viele unabhängige Agenten verleiht dem Internet den Charakter eines ökonomischen Systems1 . Der Entwurf von Methoden für die Beherrschung dieses Systems verlangt neben konventionellen informatischen Techniken wie Algorithmen- und Protokollentwurf auch die Einbeziehung von spieltheoretischen Konzepten. In der Spieltheorie werden Spiele untersucht, in denen unabhängige Spieler versuchen, ihren Gewinn zu maximieren. Anwendungen finden sich immer dann, wenn das Resultat einer individuellen Entscheidung nicht allein von dieser Entscheidung abhängt, sondern von den Entscheidungen aller Mitspieler: - Wie sollte der Preis eines neuen Produkts bei Markteinführung gewählt werden, wenn Mitbewerber bereits ähnliche Produkte anbieten? - Sollte ein Land eine harte oder eher konziliante Linie in seiner Außenpolitik vertreten? - Wie sollte sich ein Bieter in einer Auktion verhalten? - Wie sollten Wege in einem Transportnetz gewählt werden? Häufig führen Spielsituationen zu nicht wünschenwerten Resultaten. Die Spieltheorie fragt deshalb auch, ob Systeme von Anreize geschaffen werden können, um sozial erwünschtes Verhalten hervorzurufen. Allerdings sind viele Ergebnisse der Spieltheorie existentiell und lassen eine effiziente Berechnung optimaler Strategien ungeklärt. In der Informatik wird größtenteils entweder angenommen, dass Spieler gehorsam sind und nach vorher festgelegten Regeln spielen oder aber ein gegnerisches worst-case Verhalten zeigen; eine algorithmische Untersuchung von Anreizen und ihren Konsequenzen fehlte vollständig. Der Entwurf von Protokollen in der Informatik ist sicherlich wesentlich; es muss aber auch sichergestellt werden, dass die Protokolle befolgt werden und dazu ist eine Verbindung spieltheoretischer und informatischer Methoden hilfreich. Das Ziel dieses Kapitels ist zum Einen die Analyse einiger wichtiger spieltheoretischer Methoden vom Standpunkt der Algorithmik und damit die Beschreibung der Anfänge einer algorithmischen Spieltheorie. Zum Anderen sollen spieltheoretische Methoden in informatische 1 Zum Beispiel scheinen gerade kommerzielle Überlegungen dafür maßgeblich zu sein, dass Multicast nur eingeschränkt zur Verfügung steht. 153 154 KAPITEL 10. ALGORITHMISCHE SPIELTHEORIE Protokolle eingebettet werden, um dem eingangs erwähnten Aspekt des Internets als Marktplatz gerecht zu werden. Insbesondere möchten wir untersuchen, wie weit die Konsequenzen egoistischen Verhaltens, bzw. sozial erwünschten Verhaltens voneinander abweichen. Weitere Ziele bestehen im Entwurf von einfachen verteilten Systemen von Anreizen und Regeln, um zu erzwingen, dass eigensüchtiges Verhalten zu sozial erwünschtem Verhalten wird. Beispiel 10.1 Internet Routing ist eine erste Anwendung. Internet Service Provider halten sich gegenwärtig an das BGP-Protokoll und befördern Transit-Verkehr nach Absprachen unter den Providern. Die Beförderung fremder Pakete ist im eigenen Interesse, da ja auch eigene Pakete durch fremde ISP’s weitergeleitet werden sollen. Ein einheitliches Bezahlsystem fehlt aber und wird durch Ad-hoc Absprachen ersetzt. Dies führt dazu, dass Inter-Domain Routing nicht effizient ist: Anstatt einen kürzesten Weg zu wählen, wird nur angestrebt, ein Paket schleifenfrei weiterzuleiten. Sollte der Internet Verkehr weiter zunehmen, dann wird sich das Verhalten der ISP’s ändern müssen und Methoden der Spieltheorie können Anwendung finden, um zum Beispiel ISP’s dazu zu bewegen, ihre wahren Weiterleitungskosten offenzulegen. Zusätzliche Komplexität entsteht, da diese „Mechanismen“ über verteilte Algorithmen zu implementieren sind. Wir setzen im Folgenden voraus, dass sich die Spieler rational2 verhalten und versuchen, ihre jeweilige Auszahlung zu maximieren, ohne miteinander Absprachen zu treffen. Wir stellen zuerst verschiedene Spieltypen vor und beginnen mit der „einfachen“ Klasse der 1-Zug Spiele, in der die n Spieler unabhängig voneinander jeweils einen einzigen Zug ausführen. Definition 10.1 Ein Spiel in Normalform wird durch ein Tripel (n, S, U ) repräsentiert. - n ist die Anzahl der Spieler, - S = (Sp | 1 ≤ p ≤ n) ist der Vektor der möglichen Strategien der einzelnen Spieler. Wir nehmen an, dass jede Strategiemenge Sp endlich ist. - U = (up | 1 ≤ p ≤ n) ist ein Vektor von Funktionen up : ×ni=1 Si → R, wobei up (s) die Auszahlung für Spieler p beschreibt, wenn die Spieler das Strategieprofil s = (s1 , . . . , sn ) ∈ ×ni=1 Si benutzen. In dieser Formulierung versuchen die Spieler, ihre Auszahlung zu maximieren. Wenn es darum geht Kosten zu minimieren, verwenden wir Kostenfunktionen cp : ×ni=1 Si → R. Das Spiel (n, S, U ) heißt ein Nullsummenspiel, wenn n X up (s) = 0 p=1 für jedes Strategieprofil s = (s1 , . . . , sn ) ∈ ×ni=1 Si gilt. In Zwei-Personen Spielen stimmt also stets der Gewinn des ersten Spielers mit dem Verlust des zweiten Spielers überein. Beispiel 10.2 Das Ampel-Spiel Wir modellieren das Verhalten von Autofahrern vor einer roten Ampel, wobei Spieler 1 ein individueller Autofahrer ist und Spieler 2 für die restlichen Verkehrsteilnehmer steht. Beide 2 Gerade wegen der Annahme unbeschränkter Rationalität wird die Spieltheorie kritisiert. Diese Kritik gilt für Spieler mit großer Rechenkraft natürlich nur in entsprechend eingeschränktem Maße. 155 Spieler haben die Optionen zu „gehorchen“ bzw. „die Ampel zu überfahren“. Wenn ein Spieler gehorcht, dann muss er die Wartezeit t in Kauf nehmen; überfahren beide Spieler die rote Ampel, dann müssen beide Spieler die Stauzeit T >> t in Kauf nehmen. Überfährt schließlich genau ein Spieler die rote Ampel, muss der gehorsame Spieler die Zeit t+T wartend verbringen. Wir modellieren dieses Zwei-Personen Spiel durch eine Spielmatrix. Die beiden Strategien von Spieler 1 (bzw 2), also Anhalten oder Überfahren, werden in den beiden Zeilen und Spalten festgehalten. Jeder Eintrag gibt die Zeitstrafe für beide Spieler wieder, die Spieler versuchen also ihre Kosten –die Haftstrafen– zu minimieren. In unserem Ampel-Spiel ergibt sich dann die Spielmatrix Anhalten Überfahren Anhalten t, t t + T, 0 Überfahren 0, t + T T, T Die rationale Entscheidung von Spieler 1 ist ein Überfahren der roten Ampel, denn Spieler 1 steht sich beim Überfahren, unabhängig vom Gegenzug, besser. (Wir sagen auch, dass die erste Zeile von der zweiten Zeile dominiert wird.) Um ein sozial akzeptables Verhalten zu erzwingen, muss das Spiel somit umdefiniert werden. Dies kann zum Beispiel dadurch erreicht werden, dass eine (Zeit-)Strafe S für das Überfahren zu entrichten ist. Wenn p die Wahrscheinlichkeit ist, geschnappt zu werden, dann ergibt sich aus der Sicht von Spieler 1 die Spielmatrix Anhalten Überfahren Anhalten Überfahren t t+T p·S T +p·S und Anhalten ist profitabel, falls p · S > t. Dieses Spiel beschreibt die Problematik der Erstellung von Internet Protokollen: Besitzer von Ressourcen sollen dazu bewegt werden, ihre Ressourcen zu teilen und Anwender sollen dazu bewegt werden, Regeln zu folgen. Protokolle müssen dazu geeignete Kombinationen von Belohnungen und Strafen ausgeben. Obwohl Spiele in Normalform auf den ersten Blick nur die sehr eingeschränkte Klasse der 1Zug Spiele beschreiben, lassen sich auch komplizierte Mehrzug Spiele als Spiele in Normalform auffassen. Als ein erstes Beispiel betrachten wir Spiele in extensiver Form mit vollständiger Information. Beispiel 10.3 Spiele in extensiver Form mit vollständiger Information Ein Spielbaum T beschreibt die Spielregeln: jeder innere Knoten von T ist mit einem Spieler markiert und die Blätter sind mit jeweils einem Auszahlungsvektor beschriftet. Wenn Knoten v mit Spieler p markiert ist, dann muss Spieler p ein Kind von v als seinen Zug angeben. Dementsprechend ist Sp die Menge aller Funktionen, die für jeden mit p beschrifteten Knoten ein Kind auswählen. Ein Strategieprofil s = (s1 , . . . , sn ) ∈ ×ni=1 Si wählt für jeden inneren Knoten genau ein Kind aus und beschreibt somit einen eindeutigen Weg von der Wurzel in T zu einem Blatt b in T . Wenn b mit dem Auszahlungsvektor (x1 , . . . , xn ) beschriftet ist, dann setzen wir up (s) = xp . Spiele in extensive Form mit vollständiger Information lassen sich also als Spiele in Normalform auffassen. 156 KAPITEL 10. ALGORITHMISCHE SPIELTHEORIE Da Schach ein extensives Spiele mit vollständiger Information ist, können wir Schach auch als ein Spiel in Normalform auffassen: Strategien geben für jede Brettkonfiguration einen Zug an und die Veröffentlichung von Strategien für die Spieler „Weiß“ und „Schwarz“ definiert also ein bestimmtes Spiel. Spiele wie Poker oder Skat werden von der Klasse der Spiele in extensiver Form mit unvollständiger Information erfasst. Beispiel 10.4 Spiele in extensiver Form mit unvollständiger Information Wie im Fall vollständiger Information werden die Spielregeln durch einen Spielbaum T beschrieben. Diesmal sind auch die Kanten (mit Buchstaben eines Alphabets) beschriftet und zwar so, dass jeder innere Knoten mit seinen Kindern über Kanten mit paarweise verschiedenen Buchstaben verbunden ist. Zusätzlich werden die Knoten von T in Informationsbezirke mit den folgenden Eigenschaften zerlegt: - In allen Knoten eines Informationsbezirks ist immer derselbe Spieler am Zug und es stehen immer die gleichen Züge zur Auswahl. - Jeder Informationsbezirk wird in einem Spiel höchstens einmal durchlaufen. Eine Strategie für Spieler p beschreibt jetzt für jeden Informationsbezirk, in dem p am Zug ist, welchen Zug, also welchen Buchstaben, Spieler p wählt. Ein ziehender Spieler weiß also nicht unbedingt, in welchem Knoten eines Informationsbezirks das Spiel sich gerade befindet. Ein Strategieprofil s = (s1 , . . . , sn ) ∈ ×ni=1 Si beschreibt wiederum einen eindeutigen Weg von der Wurzel in T zu einem Blatt in T und wir können die Auszahlungsfunktionen wie in Spielen mit vollständiger Information definieren. Aufgabe 75 Zeige, dass sich jedes Spiel in Normalform als ein extensives Spiel mit unvollständiger Information auffassen lässt. Mit unserem letzten Beispiel erfassen wir auch Spiele mit Zufallskomponenten wie etwa Roulette. Beispiel 10.5 Spiele mit Zufallszügen Wir lassen jetzt auch Zufallszüge zu, die keinem Spieler zugeordnet werden. Als Modell wählen wir Spiele in extensiver Form mit unvollständiger Information. Der Spielbaum erhält jetzt neben den Informationsbezirken auch Zufallsknoten, wobei jedem Zufallsknoten eine Verteilung zugeordnet ist, die die Wahrscheinlichkeit der Kinder beschreibt. Eine Strategie für Spieler p beschreibt weiterhin für jeden Informationsbezirk, in dem p am Zug ist, welchen Zug, also welchen Buchstaben, Spieler p wählt. Ein Strategieprofil s = (s1 , . . . , sn ) ∈ ×ni=1 Si beschreibt jetzt einen mit der Wurzel beginnenden Teilbaum, der nur in Zufallsknoten verzweigt. Die Auszahlung an Spieler p ist als die erwartete Auszahlung (über alle Blätter des Teilbaums) definiert. Bisher haben wir nur nicht-kooperative Spiele kennengelernt. In der Spieltheorie werden auch kooperative Spiele betrachtet, also Spiele in denen Spieler mit- oder gegeneinander koalieren können. Wir werden uns aber im Folgenden auf nicht-kooperative Spiele beschränken. Kapitel 11 Das Nash-Gleichgewicht Gibt es Strategie-Profile, die für die jeweiligen Spieler optimal sind? Definition 11.1 (n, S, U ) sei ein Spiel in Normalform. (a) s = (s1 , . . . , sn ) ∈ S1 × · · · × Sn sei ein Strategie Profil. Dann bezeichnet (s−i , t) das Strategie Profil s mit si durch t ersetzt, d.h. (s−i , t) = (s1 , . . . , si−1 , t, si+1 , . . . , sn ) ∈ S1 × · · · × Sn . (b) Eine Strategie s für Spieler p dominiert Strategie t strikt, wenn up (r−p , s) > up (r−p , t) für alle Strategie Profile r gilt. Im Fall einer schwachen Dominanz muss up (r−p , s) ≥ up (r−p , t) gelten. (c) Eine Strategie s ist dominant für Spieler p, wenn s alle anderen Strategien für p schwach dominiert. Im Ampel-Spiel aus Beispiel 10.2 ist die Strategie des Überfahrens für jeden Spieler dominant, wenn keine Zeitstrafen zu entrichten sind. Bei entsprechend gewählter Zeitstrafe wird die Strategie des Anhaltens dominant. Ist es für die Spieler stets vorteilhaft, dominante Strategien zu wählen, wenn es dominante Strategien gibt? Sicherlich, wenn die Spieler gegeneinander spielen, also ihre Strategie genau dann ändern, wenn es zu ihrem Vorteil ist. Gibt es denn stets dominante Strategien? Beispiel 11.1 Koordinationsspiele Wir betrachten zuerst das Koordinationsspiel „Battle of the Sexes“. Ein Junge und ein Mädchen möchten den Abend miteinander verbringen. Es bieten sich zwei Möglichkeiten an, nämlich der Besuch eines Footballspiels, bzw. der Besuch einer Balletveranstaltung. Der Junge zieht das Footballspiel vor, das Mädchen das Ballet; beide ziehen es aber vor, den Abend gemeinsam und nicht getrennt voneinander zu verbringen. Die Spielmatrix könnte zum Beispiel die folgende Form besitzen, wenn der Junge eine Zeile und das Mädchen eine Spalte auswählen muss: Football Ballet Football Ballet 6, 4 2, 2 0, 0 4, 6 157 158 KAPITEL 11. DAS NASH-GLEICHGEWICHT Kein Spieler besitzt dominante Strategien! Auch in dem folgenden „Stauspiel“, gewissermaßen dem Gegenteil von Battle of the Sexes, gibt es keine dominaten Strategien. Jeder von zwei Paketflüssen, kontrolliert von den Spielern 0 und 1, müssen entweder an den Router A oder an den Router B weitergeleitet werden. Werden beide Flüsse an denselben Router weitergeleitet, ergibt sich eine starke Verzögerung durch Überlast des betroffenen Routers. Die folgende Spielmatrix gibt die jeweiligen Verzögerungen wieder; Spieler 0 muss eine Zeile und Spieler 1 eine Spalte wählen. A B A 6, 6 2, 2 B 2, 2 6, 6 Wir können dominierte reine Strategien entfernen ohne dass die erzielbare Auszahlung des betroffenen Spielers sinkt. In der iterativen strikten Dominanz werden reine, strikt dominierte Strategien für alle Spieler solange entfernt, bis keine Strategie mehr strikt dominiert wird. Derselbe Eliminierungsprozess kann auch für schwach dominierte Strategien durchgeführt werden, die Menge entfernter Strategien hängt aber diesmal von der Reihenfolge der Eliminierungsschritte ab. Aufgabe 76 Zeige, dass die Menge entfernter Strategien in der iterativen strikten Dominanz nicht von der Reihenfolge der Eliminierungsschritte abhängt. Zeige, dass alle gemischten Strategien, die eine strikt (bzw. schwach) dominierte Strategie mit positiver Wahrscheinlichkeit besitzen, ebenfalls strikt (bzw. schwach) dominiert werden. Es gibt also Spiele, die keine dominanten Strategien besitzen. Gibt es aber stets Strategieprofile, so dass sich kein Spieler verbessern kann, wenn er eine andere Strategie wählt? Definition 11.2 (n, S, U ) sei ein Spiel in Normalform und s = (s1 , . . . , sn ) ∈ S1 × · · · × Sn ein Strategie Profil. Dann ist s ein Nash-Gleichgewicht, wenn up (s) ≥ up (s−p , s∗p ) für alle Spieler p und für alle Strategien s∗p ∈ Sp gilt. In einem Nash-Gleichgewicht s = (s1 , . . . , sn ) ist es also nicht vorteilhaft für Spieler p, wenn er seine Strategie sp ändert. Man sollte deshalb erwarten, dass hinreichend viele wiederholte Spiele bei egoistischen Spielern letztlich in einem Nash-Gleichgewicht enden. Nash-Gleichgewichte verallgemeinern den Begriff dominanter Strategien: Wenn das Strategieprofil s = (s1 , . . . , sn ) nur aus dominanten Strategien besteht, dann ist s ein NashGleichgewicht. Beispiel 11.2 Im Koordinationsspiel „Battle of the Sexes“ haben wir die Spielmatrix Football Ballet Football Ballet 6, 4 2, 2 0, 0 4, 6 erhalten. Man überzeuge sich, dass die Strategieprofile (Football, Football) und (Ballet, Ballet) die einzigen Nash-Gleichgewichte sind. 11.1. SOZIALE UND PARETO-OPTIMALE STRATEGIEPROFILE 11.1 159 Soziale und Pareto-optimale Strategieprofile Wie die beiden nächsten Spiele zeigen, kann die Wahl einer dominanten Strategie für kooperierende Spieler elendig schlecht sein. Beispiel 11.3 Das Gefangenen-Dilemma Zwei Gefangene werden in getrennten Zellen festgehalten. Es gibt genug Indizien, um jeden der beiden eines geringen Vergehens (mit einem Jahr Haft) zu überführen. Allerdings wird vermutet, dass beide ein größeres Verbrechen (mit vier Jahren Haft zu ahnden) verübt haben. Geben beide keine Auskunft, dann werden beide zu einem Jahr Haft verurteilt. Gesteht einer, während der andere schweigt, dann wird der Gestehende freigelassen und sein Partner zu vier Jahren Haft verurteilt. Wenn beide gestehen, dann werden beide zu 3 Jahren Haft verurteilt. Die Spielmatrix hat also die folgende Form Gestehen Schweigen Gestehen Schweigen 3, 3 0, 4 4, 0 1, 1 Die Strategie des Gestehens ist offensichtlich für jeden Spieler dominant. Das für beide Spieler profitablere Strategieprofil (Schweigen, Schweigen) lässt sich somit mit dominanten Strategien nicht erreichen. Wir beschreiben als Nächstes eine Mehrspieler-Variante des Gefangenen Dilemmas. Jeder von n verschiedenen Staaten hat die Option, die Luftverschmutzung mit Schutzmaßnahmen von 3 Milliarden Euro einzudämmen. Führt ein Staat S keine Schutzmaßnahmen durch, dann muss jeder Staat 1 Milliarde Euro an Gesundheitskosten nur für die von Staat S verursachten Schäden aufbringen. Wenn also genau k der n Staaten Schutzmaßnahmen durchführen, dann muss jedes dieser k Staaten insgesamt n − k + 3 Milliarden Euro aufbringen, während die Verschmutzer nur n − k Milliarden Euro tragen. Wir haben nur ein einziges Nash-Gleichgewicht, nämlich die dominante Strategie der Nichtausführung von Schutzmaßnahmen in allen n Staaten. Man beachte, dass jeder Staat in diesem Fall Mittel in Höhe von n Milliarden Euro aufbringen muss, aber nur 3 Milliarden Euro bezahlen müsste, wenn alle Staaten Schutzmaßnahmen ausführen. Beispiel 11.4 Tragedy of the Commons n Spieler möchten ihre Daten über einen Kanal mit maximaler Kapazität 1 schicken. Sei P K = ni=1 xi . Wenn Spieler i die Bandbreite xi beansprucht, und wenn K < 1 gilt, dann ist xi ·(1−K) sein Nutzen: Die Geschwindigkeit des Kanals nimmt mit steigender Beanspruchung ab. Wie sehen die Nash-Gleichgewichte aus? Sei Ki = K − xi . Der Nutzen xi · (1 − K) = xi · (1 − Ki − xi ) von Spieler i wird für xi = (1 − Ki )/2 maximiert. Ein Nash-Gleichgewicht muss also das Gleichungssystem xi = (1 − Ki )/2 erfüllen und somit mit der eindeutigen Lösung xi = 1/(n + 1) übereinstimmen. Der Nutzen für Spieler i beträgt also 1 n 1 2 · (1 − )=( ) , n+1 n+1 n+1 ein sehr geringer Wert im Vergleich zum Nutzen Θ( n1 ) für xi = 1 2n . 160 KAPITEL 11. DAS NASH-GLEICHGEWICHT In einem Nash-Gleichgewicht hat jeder Spiel die beste Reaktion auf die Strategie seiner Gegenspieler gefunden. Wie wir aber im Gefangenen Dilemma wie auch in Tragedy of the Commons gesehen haben, können Nash-Gleichgewichte sehr viel weniger profitabel als „sozial optimale“ Strategieprofile sein: Egoismus kann eine sehr kurzsichtige Strategie sein, ist aber das einzig sinnvolle Vorgehen, wenn die Gegenspieler egoistisch sind. Definition 11.3 Sei (n, S, U ) ein Spiel in Normalform. (a) Ein Strategieprofil s ist genau dann sozial optimal, wenn die Summe der Auszahlungen an alle Spieler größtmöglich ist. u(s) (b) Der Preis der Anarchie ist der Wert des Quotienten u(N ) , wobei u(N ) die Summe aller Auszahlungen in einem schlechtesten Nash-Gleichgewicht N und u(s) die Summe aller Auszahlungen in einem sozialen Optimum s ist. Im Gefangenen Dilemma ist die Strategie des Schweigens sozial optimal und weitaus profitabler als das Nash-Gleichgewicht des Gestehens; insbesondere ist der Preis der Anarchie genau 6 2 = 3. (Beachte, dass im Gefangenen Dilemma nicht Auszahlungen zu maximieren, sondern Strafen zu minimieren sind.) Beispiel 11.5 Pigou’s Routing Problem Wir betrachten den nur aus den beiden Knoten s und t bestehenden Graphen G. G besitze zwei von s nach t gerichtete Kanten e und f . Die Kante e besitze die Latenz l1 (x) = x und die Kante f die Latenz l2 (x) = 1. Zwei Spieler möchten jeweils einen Fluss mit Emissionsrate 1 2 von s nach t schicken. e s t f Abbildung 11.1: Ein schlechtestes Nash-Gleichgewicht. Die optimale Lösung teilt den Gesamtfluss gleichmäßig auf die beiden Kanten auf und erreicht die Kosten 12 · 12 + 12 · 1 = 43 . In dieser Lösung sieht sich der Spieler benachteiligt, dessen Nachrichten über die langsame Kante f geleitet werden: Seine Kosten sind 21 im Vergleich zu den Kosten 14 seines „Kontrahenten“ und er wird seinen Fluss ebenfalls über die (zum jetzigen Zeitpunkt) schnellere Kante e transportieren. Wenn aber der Gesamtfluss über die Kante e geleitet wird, dann erhalten wir die höheren Kosten 1. Da aber kein Spieler gewinnt, wenn er die Kante f in Anspruch nimmt, entspricht die Leitung des Gesamtflusses über die Kante e 1 einem Nash-Gleichgewicht und der Preis der Anarchie ist hier 3/4 = 43 . Beispiel 11.6 Das Braess Paradox Warum können Verkehrsstaus durch den Bau neuer Straßen zunehmen statt abzunehmen? Wir betrachten den Graphen G = ({s, a, b, t}, {(s, a), (a, t), (s, b), (b, t)}) mit der Quelle s, den Zwischenknoten a und b sowie der Senke t. Die Kanten (s, a) und (b, t) besitzen die Latenz l(x) = x, während die beiden übrigen Kanten (s, b) und (a, t) die Latenz 1 besitzen mögen; die Kanten (s, a) und (b, t) sind also bei einer Belastung von höchstens 1 im Vergleich zu (s, b) und (a, t) wesentlich schneller. 11.2. GEMISCHTE STRATEGIEN 161 Wir nehmen an, dass zwei Spieler einen Fluss von jeweils 21 von s nach t schicken möchten und erhalten einen Nash-Fluss mit den Kosten 2 · ( 12 · 21 + 12 ) = 23 , wenn wir die beiden Flüsse gleichmäßig auf die beiden Wege s → a → t und s → b → t verteilen. Dieser Nash-Fluss ist auch ein optimaler Fluss. a x 1 0 s 1 t b x Abbildung 11.2: Neue Schnellstrassen können den Verkehr verlangsamen. Jetzt verbessern wir den Graphen durch die Hinzunahme der superschnellen Verbindung (a, b) mit Latenz 0. Jeder Spieler wird die (zum jetzigen Zeitpunkt) schnelle Kante (s, a) wählen und über die Kante (a, b) auf die (noch) schnelle Kante (b, t) wechseln. Da keiner der Spieler einen Anreiz hat, den Weg s → a → b → t zu wechseln, entspricht der Weg einem NashFluss. Durch die Verbesserung des Graphen haben sich die Kosten von vorher 32 auf jetzt 1 + 0 + 1 = 2 erhöht: Schnelle Verbindungen ziehen Verkehr an und provozieren damit erst recht Staus. Darüberhinaus ist der optimale Fluss kein Nash-Fluss, da jeder Spieler profitiert, wenn er den Nash-Fluss wählt. 2 Beachte, dass auch in diesem Beispiel 3/2 = 43 der Preis der Anarchie ist. Wir zeigen in Kapitel 13, dass 43 tatsächlich der Preis der Anarchie für beliebige Graphen ist: Routing Spiele sind gutartig! Definition 11.4 Sei (n, S, U ) ein Spiel in Normalform. Ein Strategieprofil s ist genau dann Pareto-optimal, wenn es kein anderes Strategieprofil t mit ui (s) ≤ ui (t) für alle Spieler i und mindestens einen Spieler j mit uj (s) < uj (t) gibt. Aufgabe 77 (a) Zeige: Ein soziales Optimum ist stets Pareto-optimal. (b) Zeige, dass ein Nash-Gleichgewicht nicht notwendigerweise Pareto-optimal ist. (c) Wenn ein Strategieprofil s Pareto-optimal ist, ist s dann auch ein Nash-Gleichgewicht? 11.2 Gemischte Strategien Der Begriff des Nash-Gleichgewichts ist fundamental, und wir sollten deshalb die beiden folgenden Fragen beantworten: - Besitzt jedes Spiel in Normalform ein Nash-Gleichgewicht? 162 KAPITEL 11. DAS NASH-GLEICHGEWICHT - Können Nash-Gleichgewichte effizient bestimmt werden? Für Spiele in extensiver Form mit vollständiger Information können wir die erste Frage positiv beantworten, denn es gibt sogar stets teilspielperfekte Nash-Gleichgewichte, also NashGleichgewichte, die auch in jedem Teilbaum des Spielbaums ein Nash-Gleichgewicht sind. Lemma 11.5 Jedes Spiel in extensiver Form mit vollständiger Information besitzt ein teilspielperfektes Nash-Gleichgewicht. Beweis: Wir werten den Spielbaum durch eine in den Blättern beginnende „Rückwärtsinduktion“ aus: Wenn v ein Blatt ist, dann ist kein Zug auszuwählen. Wenn v ein innerer Knoten ist und wenn Spieler p am Zug ist, dann wählen wir für Spieler p das Kind w aus, das die größte Auszahlung an p garantiert, wenn das im Knoten w fortgesetzte Spiel von allen Spielern optimal gespielt wird. (Bei mehreren Kindern mit gleicher maximaler Auszahlung für p wähle ein beliebiges Kind.) Die Kante zum gewinnenden Kind färben wir rot. Sei s ein Strategie Profil, das für jeden Knoten genau die roten Kinder-Kanten auswählt. Wir behaupten, dass s ein Nash-Gleichgewicht ist. Wenn Spieler p seine Strategie ändert, dann ersetzt er einige der ihm gehörenden roten Kanten. Mit einem induktiven Argument, beginnend mit der tiefsten ehemals roten Kante von Spieler p, zeigt man jetzt, dass diese Ersetzungen die Auszahlung an Spieler p nicht erhöhen. Aufgabe 78 Gib einen vollständigen Beweis für Lemma 11.5 an. Beispiel 11.7 Teilspielperfekte Nash-Gleichgewichte Nicht jedes Nash-Gleichgewicht ist auch teilspielperfekt wie das Beispiel in Abbildung 11.3 zeigt: Der Spielbaum T ist binär mit drei Blättern. Spieler 1 beginnt an der Wurzel. Das linke Kind 0 der Wurzel ist ein Blatt mit Auszahlungsvektor (3, 2), das rechte Kind 1 ist dem Spieler 2 zugeordnet. Knoten 1 besitzt die Blätter 10 und 11 als Kinder mit den Auszahlungsvektoren (0, 0) und (4, 1). 0 1 (3,2) 10 11 (0,0) (4,1) Abbildung 11.3: Ein nicht teilspielperfektes Nash-Gleichgewicht. Wir erhalten ein Nash-Gleichgewicht, wenn Spieler 1 das Blatt 0 und Spieler 2 das Blatt 10 wählt. Zwar ist die Wahl von Spieler 2 sinnlos, denn 11 ist die profitablere Wahl, aber diese Wahl ist auch folgenlos, da das Spiel bereits mit dem Zug von Spieler 1 endet. Dieses Nash-Gleichgewicht ist nicht teilspielperfekt, denn die Wahl von Spieler 2 im Teilbaum mit Wurzel 1 ist nicht optimal. 11.2. GEMISCHTE STRATEGIEN 163 Aufgabe 79 Sei (n, S, U ) ein Spiel in extensiver Form mit vollständiger Information. Zeige oder widerlege: (a) Wenn keine zwei Blätter dieselbe Auszahlung für einen Spieler definieren, dann gibt es genau ein NashGleichgewicht. (b) Wenn keine zwei Blätter dieselbe Auszahlung für einen Spieler definieren, dann gibt es genau ein teilspielperfektes Nash-Gleichgewicht. (c) Wenn (n, S, U ) ein Zwei-Personen Nullsummenspiel ist, dann besitzt jedes Nash-Gleichgewicht denselben Auszahlungsvektor (x, y). Bisher haben wir stets mindestens ein Nash-Gleichgewicht vorgefunden, aber das nächste Beispiel zeigt, dass es Spiele ohne Nash-Gleichgewichte gibt! Beispiel 11.8 Das Cent-Spiel Spieler 1 wie auch Spieler 2 wählt entweder „Wappen“ oder „Zahl“. Spieler 1 gewinnt, wenn Spieler 2 identisch wählt, während Spieler 2 gewinnt, wenn die Spieler verschieden wählen. Die Spielmatrix hat also die Form Wappen Zahl Wappen 1, −1 −1, 1 Zahl −1, 1 1, −1 Wir beobachten, dass es kein Nash-Gleichgewicht gibt! Beachte, dass das Cent-Spiel ein Nullsummen-Spiel ist, da der Profit des einen Spielers mit dem Verlust des anderen Spielers übereinstimmt. Gerade im Cent-Spiel liegt es nahe, randomisiert zu spielen und wir führen deshalb gemischte Strategien, also die Strategien randomisiert rechnender Spieler ein. Definition 11.6 (n, S, U ) sei ein Spiel. (a) Eine gemischte Strategie für Spieler p wird durch eine Verteilung πp auf den Strategien in Sp beschrieben. Die erwartete Auszahlung an Spieler p ist dann ep (π1 , . . . , πn ) = X up (s) · Πni=1 πi (si ). s∈×n i=1 Si Eine reine Strategie entspricht einer gemischten Strategie πi , die nur einer einzigen Strategie die Wahrscheinlichkeit 1 zuweist. (b) Die Verteilungen (π1 , . . . , πn ) sind ein Nash-Gleichgewicht von gemischten Strategien, wenn ep (π1 , . . . , πp−1 , πp , πp+1 , . . . , πn ) ≥ ep (π1 , . . . , πp−1 , πp∗ , πp+1 , . . . , πn ) für alle Spieler p und für alle Verteilungen πp∗ über Strategien in Sp gilt. Im Fall gemischter Strategien versucht also jeder Spieler seine erwartete Auszahlung zu maximieren. Man beachte, dass eine Maximierung des Erwartungswerts riskant ist, wenn der Erwartungswert nicht scharf zentriert ist: In einem Ein-Personen Spiel hat die Spielerin die Möglichkeit „teilzunehmen“ oder zu „kneifen“. Nimmt sie teil, wird ein Bit zufällig gezogen. Die Spielerin gewinnt eine Million Euro, wenn das Bit Eins ist, und verliert sonst 999999 164 KAPITEL 11. DAS NASH-GLEICHGEWICHT Euro. Gemäß der Erwartungswertmaximierung müsste die Spielerin stets teilnehmen und Totalverlust riskieren. Ist die Spielerin allerdings die Deutsche Bank und ist gewährleistet, dass das Spiel genügend oft gespielt wird, so steht einer Beteiligung der Deutschen Bank nur die sehr magere Rendite gegenüber. Aufgabe 80 Zeige: Eine gemischte Strategie si ist genau dann eine beste Reaktion gegen s−i , wenn alle reinen Strategien in si mit positiver Wahrscheinlichkeit beste Reaktionen gegen s−i sind. Aufgabe 81 Das Balls-and-Bins Spiel modelliert die Last Balancierung: n Spieler besitzen je einen Ball, der in einem von m Behältern unterzubringen ist. Haben die Spieler ihre Bälle verteilt, dann muss jeder Spieler die Anzahl der Bälle in „seinem“ Behälter als Kosten tragen. (Der Behälter des Spielers ist der Behälter, der den Ball von Spieler i aufgenommen hat.) 1 (a) Ein jeder Spieler wähle einen Behälter zufällig mit Wahrscheinlichkeit m aus der Menge aller Behälter. Zeige, dass das entsprechende Strategieprofil s ein Nash-Gleichgewicht gemischter Strategien ist. (b) Zeige, dass s das schlechteste Nash-Gleichgewicht ist. (c) Bestimme den Preis der Anarchie für das Balls-and-Bins Spiel. Aufgabe 82 Bestimme sämtliche Nash-Gleichgewichte im Gefangenen-Dilemma, wobei gemischte Strategie Profile zugelassen werden. Aufgabe 83 1. Alice und Bob überlegen jeweils, wie sie ihren Abend gestalten sollen. Alice könnte in ihrer Wohnung bleiben, die Kneipe des Ortes aufsuchen oder das örtliche Café besuchen. Alice ginge am liebsten ins Café. Ihre nächste Präferenz wäre die Kneipe und erst an letzter Stelle der Abend zu Hause. Allerdings möchte sie keinesfalls Bob begegnen, da er sie fürchterlich nervt. Bob seinerseits hat (weil er nervt) in der Kneipe Hausverbot. Im Café ärgert er sich, dass man dort auch etwas bestellen muss. Allerdings würde er das in Kauf nehmen, wenn er dort Alice trifft. Wir nehmen beliebige Auszahlungen an, die Präferenzen der beiden strikt wiedergeben. Zeige, dass es für dieses Spiel kein Nash-Gleichgewicht von reinen Strategien gibt. 2. Berechne die Menge der gemischten Nash Gleichgewichte für das Spiel aus Aufgabe (a). Dabei bewertet Alice einen Abend zu Hause mit 0 Punkten, einen Kneipenabend mit einem Punkt, einen ungestörten Cafébesuch mit 3 Punkten und einen Cafébesuch, bei dem sie Bob begegnet, mit -5 Punkten. Bob bewertet einen Abend zu Hause mit 0 Punkten, einen Cafébesuch, bei dem er Alice begegnet, mit 5 Punkten und einen vergeblichen Cafébesuch mit -1 Punkt. 3. Auf der Südseeinsel San Theoretica stehen Präsidentschaftswahlen an. Es gibt einen amtierenden Präsidenten und einen Herausforderer. Jeder Bürger ist Anhänger eines der beiden Kandidaten und hat eine Stimme. Am Wahltag regnet es in Strömen. Jeder Wähler möchte lieber seinen Kandidaten gewinnen sehen als den Gegner, aber andererseits möchte er auch lieber trocken bleiben als auf dem Weg zum Wahllokal nass zu werden. Trotzdem zieht es ein jeder Wähler aber vor nass zu werden bevor sein Kandidat verliert. Das Wahlgeheimnis wird auf San Theoretica sehr ernst genommen und deswegen sprechen sich die Bürger keinesfalls ab. Die Verfassung sieht vor, dass bei Stimmengleichheit der Präsident im Amt bleibt. Gibt es in diesem Spiel ein reines Nash Gleichgewicht (wenn die Auszahlungen die Präferenzen strikt wiedergeben)? Aufgabe 84 Das Strategie Profil s sei ein Nash-Gleichgewicht für ein Spiel (n, S, U ) in Normalform. Dann wird keine reine Strategie, die unter s mit positiver Wahrscheinlichkeit gespielt wird, in der iterativen strikten Dominanz entfernt. Also erleichtert die Eliminierung strikt dominierter Strategien die Bestimmung von NashGleichgewichten. Die Aussage der Aufgabe ist falsch, wenn die Eliminierung schwach dominierter Strategien erlaubt ist. Dazu betrachten wir das 1-Zug Spiel mit der Spielmatrix 3, 3 5, 4 6, 3 2, 0 . 11.3. DOMINANTE STRATEGIEN UND EHRLICHE MECHANISMEN 165 Die zweite Spalte von Spieler 2 wird durch die erste Spalte schwach dominiert. Wenn wir sie entfernen, dann dominiert die zweite Zeile die erste Zeile strikt, und wir können die erste Zeile entfernen. Beachte, dass wir jetzt das Nash-Gleichgewicht, bestehend aus der ersten Strategie von Spieler 1 und der zweiten Strategie von Spieler 2 zerstört haben. 11.3 Dominante Strategien und ehrliche Mechanismen Wie wechseln jetzt die Perspektive und wenden uns dem Entwurf von Mechanismen, also dem Entwurf von Spielregeln zu: Ein gewünschtes Verhalten der Spieler, wie etwa die Offenlegung der tatsächlichen Bewertung in Auktionen, soll zu dominanten Strategien gemacht werden. 11.3.1 Auktionen In einer Erstpreis-Auktion wie auch in einer Zweitpreis-Auktion erhält stets das Höchstgebot den Zuschlag. Während in einer Erstpreis-Auktion das gewinnende Gebot auch zu bezahlen ist, muss in einer Zweitpreis-Aution nur das zweithöchste Gebot bezahlt werden. Welche Auktionsform ist vernünftiger? Von der Perspektive des Auktionators ist der Unterschied gering, solange die Auktion mit öffentlich bekanntgemachten, sich jeweils übertreffenden Geboten durchgeführt wird, denn der Erstpreis wird sich nur wenig vom Zweitpreis unterscheiden. Anders ist die Situation in einer „sealed bid“ Auktion, in der Bieter ihr Gebot geheim einreichen. Der Auktionator profitiert zwar von der größeren Höhe des Erstpreises, muss aber befürchten, dass die Bieter „tiefstapeln“, also Gebote abgeben, die weit unter ihrer eigenen Bewertung liegen. Beispiel 11.9 Eine Erstpreis-Auktion Wir betrachten ein Beispiel einer Erstpreisauktion mit den beiden Bietern 1 und 2. Bieter i habe die Bewertung bi und möge das Gebot gi abgeben. Desweiteren besitze Bieter 1 (bzw. 2) die Strategien g1 ∈ {2, 4, 6} (bzw. g2 ∈ {1, 3, 5, 7}) sowie die Bewertung b1 = 6 (bzw. b2 = 5). Wenn Spieler i die Auktion gewinnt, dann definieren wir bi − gi als seine Auszahlung; verliert er, erhält er die Auszahlung 0. Dementsprechend erhalten wir die Spielmatrix 1 3 5 7 2 4, 0 0, 2 0, 0 0, −2 4 2, 0 2, 0 0, 0 0, −2 6 0, 0 0, 0 0, 0 0 − 2 Wir besitzen die drei Nash-Gleichgewichte (4,3), (6,5) und (4,5) und die Auktion ähnelt einem Glücksspiel. Als Alternative betrachten wir eine Zweitpreis-Auktion und lassen somit den Gewinner i nur den Betrag des zweithöchsten Gebots gj bezahlen. Die Auszahlung beträgt also bi − gj . Gibt es eine beste Strategie für den iten Bieter? Satz 11.7 In einer Zweitpreis-Auktion ist die ehrliche Strategie gi = bi dominant. Beweis: Wir betrachten zuerst eine Strategie gi > bi : Das Gebot ist also höher als die eigene Bewertung. Im Vergleich zur ehrlichen Strategie tritt nur dann eine Änderung für Bieter i ein, wenn i aufgrund des höheren Gebots diesmal den Zuschlag erhält. Dann muss aber gi ≥ gj ≥ bi gelten, denn gi gewinnt gegen das jetzt zweithöchste Gebot gj und gj ist 166 KAPITEL 11. DAS NASH-GLEICHGEWICHT mindestens so groß wie die Bewertung bi , da Bieter i mit dem ehrlichen Gebot bi verliert. Während die Auszahlung für die ehrliche Strategie 0 ist, ist bi − gj ≤ 0 die neue Auszahlung und Bieter i kann sich nur verschlechtern. Wenn gi < bi , dann ändert sich die Situation von Bieter i im Hinblick auf die ehrliche Strategie nur dann, wenn er aufgrund des niedrigeren Gebots den Zuschlag verliert. Der alten Auszahlung bi − gj ≥ 0 steht aber jetzt die Auszahlung 0 gegenüber. Auch diesmal wird keine Verbesserung erzielt. In jedem Fall ist also ein ehrliches Gebot für jede Gegenstrategie optimal: Die Strategie gi = bi ist dominant. Aufgabe 85 Diesmal werden k Exemplare derselben Ware versteigert. Verallgemeinere den Ansatz von Beispiel 11.9, so dass wiederum ein ehrliches Gebot eine dominante Strategie ist. Beispiel 11.10 Auktionen für die gesponserte Suche Google und Yahoo! versteigern Werbefläche zu Suchanfragen. Dazu werden verschiedene „Slots“ mit absteigender Sichtbarkeit neben den Treffern der Suchanfrage angeboten. Typischerweise gibt ein Werbekunde Gebote in Form von Paaren (Schlagwort, Gebot) ab und bestimmt sein tägliches oder wöchentliches Budget. Gibt ein Anwender dann ein Schlagwort als Suchbegriff ein, beteiligen sich alle Werbekunden, die Gebote für das eingebene Schlagwort abgegeben haben, an einer Echtzeit-Auktion, solange ihr Budget noch nicht erschöpft ist. Google und Yahoo! verwenden unterschiedliche Preissetzungen. Yahoo! bewertet Werbekunden nur nach ihrem Gebot. Gibt der Werbekunde i das i-höchste Gebot gi ab, dann muss der Preis gi+1 , also der Wert des nächstniedrigeren Gebots entrichtet werden. Die Preissetzung in Google ist komplizierter: Für jeden Werbekunden i wird ein Quality Score qi bestimmt, der sich aus • der Click Through Rate, einer Google-internen Bewertung der Sichtbarkeit des Werbekunden, • der Relevanz der angebotenen Webseite • und ihrer Qualität zusammensetzt. In der Auktion werden Werbekunden dann nach score = Quality Score · Gebot geordnet. Wenn wir diesmal annehmen, dass Werbekunde i den i-höchsten score-Wert qi · gi (mit Quality Score = wi und Gebot gi ) besitzt, dann bezahlt i den Preis Preisi := 11.3.2 qi+1 · gi+1 ≤ gi . qi Eine Investitionsentscheidung Im nächsten Beispiel entwerfen wir einen „Mechanismus“, um zu entscheiden, ob eine Investition I vorzunehmen ist. Die Investition, wenn sie denn stattfindet, habe die öffentlich bekannten Kosten K. Wir nehmen an, dass Spieler i den tatsächlichen Profit θi ∈ R≥0 hat, 11.3. DOMINANTE STRATEGIEN UND EHRLICHE MECHANISMEN 167 wenn die Investition ausgeführt wird. Die Investition soll stattfinden, wenn ihre Kosten durch die Profite der Spieler aufgewogen werden, wenn also n X θi ≥ K i=1 gilt. Wir konstruieren einen Mechanismus, der von jedem Spieler möglicherweise Gebühren erhebt, wobei das Gebührensystem die Spieler überzeugen soll, ihre wirklichen Profite ehrlich preiszugeben. Spieler, die keine Gebühren entrichten möchten, können dies tun. Beispiel 11.11 Investitionsentscheidung Ein erster Lösungsansatz erhebt eine für alle Spieler identische, niedrige Gebühr. Dieser Ansatz ist zum Scheitern verurteilt, denn ein sehr an dem Unterfangen interessierter Spieler wird einen extrem hohen Profit melden. Ein zweiter Ansatz fordert eine Gebühr proportional zum veröffentlichten Profit θi0 . Dieser Versuch funktioniert auch nicht, da eine Bekanntgabe des eigenen Profits zum Beispiel dann nicht dominant ist, wenn die Profite der restlichen Spieler bereits die Tätigung der Investition garantieren. Der dritte und erfolgreiche Ansatz verlangt, dass der ite Spieler den Betrag max(0, K − X θj0 ) j6=i als Gebühr bezahlt, wenn die Investition zu tätigen ist, d.h. wenn j θj0 ≥ K gilt. Spieler i bezahlt also nichts, wenn sein gemeldeter Profit θi0 die Investitionsentscheidung nicht beeinflusst. Beeinflusst sein gemeldeter Profit die Entscheidung, dann muss Spieler i den Teil bezahlen, der für das Kippen der Entscheidung notwendig war. Die ehrliche Strategie θi0 = θi ist dominant. Warum? Wenn θi0 > θi gemeldet wird, dann hat dies gegenüber der ehrlichen Antwort nur dann eine Konsequenz für die Auszahlung, wenn die Investition aufgrund der gelogenen Hochsetzung erfolgt. In diesem Fall ist die Auszahlung P P θi − (K − j6=i θj0 ) = θi + j6=i θj0 − K < 0, während bei einer ehrlichen Angabe die Auszahlung 0 erfolgt. Wird hingegen θi0 < θi gemeldet, dann wird die Auszahlung gegenüber der ehrlichen Antwort nur dann geändert, wenn keine Investition aufgrund der gelogenen Heruntersetzung erfolgt. Damit ist 0 die neue Auszahlung und eine Verbesserung tritt nicht ein, da die Auszahlung bei ehrlicher Meldung stets nicht-negativ ist. P Aufgabe 86 Ist θi0 = θi die einzige dominante Strategie? Ändert sich die Situation, wenn wir negative Gewinne θi < 0 zulassen? 11.3.3 Ein Routing Spiel Wir betrachten einen gerichteten Graphen G = (V, E) mit zwei ausgezeichneten Knoten s und t. Wenn eine Nachricht über eine Kante e zu transportieren ist, dann entstehen für e die nur e bekannten Kosten c(e). Unser Ziel ist die Berechnung eines billigsten Weges W von s nach t. Wir möchten wieder einen Mechanismus entwerfen, der die Kantenspieler dazu bringt, ihre wahren Kosten c(e) zu veröffentlichen. 168 KAPITEL 11. DAS NASH-GLEICHGEWICHT Beispiel 11.12 Routingkosten Wir nehmen an, dass keine Kante e ein Monopol besitzt, d.h. es gibt stets einen e vermeidenden Weg von s nach t. Wir wählen einen billigsten Weg W aus, wobei wir die veröffentlichten und möglicherweise gelogenen Kantenkosten c0 (e) zugrundelegen. Wir bezeichnen die Kosten von W mit d(s, t) und die Kosten eines billigsten Weges von s nach t ohne die Kante e mit de (s, t). Unser Mechanismus zahlt an Kante e den Betrag ( BetragW (e) = de (s, t) − ( d(s, t) − c0 (e) ) W läuft über e. 0 sonst Wenn die Kante e auf dem billigsten Weg liegt, dann erhält die Kante mindestens die publizierten Kosten c0 (e), denn die Prämie de (s, t) − d(s, t) ist stets nicht-negativ. Eine zentrale Beobachtung ist, dass der von e erhaltene Betrag nicht von e abhängt, denn der Betrag stimmt überein mit der Differenz zwischen der billigsten Weglänge de (s, t) ohne e und der billigsten Weglänge d(s, t) − c0 (e) mit Gratiskante e. Die ehrliche Strategie c0 (e) = c(e) ist dominant. Warum? Wenn c0 (e) > c(e) gemeldet wird, dann ändert sich die Auszahlung an Spieler e nur dann, wenn der billigste Weg nicht mehr über e läuft. Der Auszahlung c(e) + de (s, t) − d(s, t) ≥ c(e) bei ehrlicher Angabe steht dann die neue Auszahlung 0 gegenüber und die vormalige Auszahlung ist mindestens so gut. Wenn c0 (e) < c(e) gemeldet wird, dann hat dies nur dann eine Konsequenz für die Auszahlung, wenn der billigste Weg nach Kostenreduktion über e läuft. Der vormaligen Auszahlung 0 steht jetzt die Auszahlung de (s, t) − ( d(s, t) − c0 (e) ) gegenüber. Für die billigste Weglänge d∗ (s, t) vor Herabsetzung gilt d∗ (s, t) = de (s, t), denn e wurde vorher nicht benutzt. Also gilt de (s, t) − ( d(s, t) − c0 (e) ) = d∗ (s, t) − ( d(s, t) − c0 (e) ) = d∗ (s, t) − ( d(s, t) − c0 (e) + c(e) ) + c(e) ≤ c(e), denn d(s, t) − c0 (e) + c(e) ist die Länge eines billigsten Weges, der Kante e mit Kantenkosten c(e) benutzt und diese Weglänge ist mindestens so groß wie die Länge d∗ (s, t) eines billigsten Weges. Wieviel muss der Mechanismus bezahlen, d.h. was ist der „Preis der Wahrheit“? Wenn der billigste Weg W die Kanten e1 , . . . , em durchläuft, dann wird unsere Kasse um m X i=1 Betrag(ei ) = m X (dei (s, t) − ( d(s, t) − c0 (ei ) ) i=1 = d(s, t) + m X (dei (s, t) − d(s, t)) i=1 erleichtert, und wir müssen den Aufpreis m i=1 (dei (s, t) − d(s, t)) gegenüber den Kosten eines billigsten Weges in Kauf nehmen. Der Preis der Wahrheit kann intolerabel hoch sein, wie das folgende Beispiel zeigt: Wir nehmen an, dass der Graph aus zwei kantendisjunkten Wegen zwischen s und t besteht, wobei der billigere Weg aus k + 1 Knoten besteht und den Preis L besitze. Der zweite Weg habe den Preis (1 + ε) · L. Damit müssen wir an jede der k Kanten des billigsten Weges zusätzlich den Aufpreis ε · L aufbringen, und die Gesamtkosten betragen somit L + k · ε · L = Θ(k · L): Wir müssen Kanten zu einem Preis einkaufen, der sogar weit über dem Preis des zweitbilligsten Wegs liegt! P 11.4. BESCHRÄNKTE RATIONALITÄT 169 Der Mechanismus wird bei entsprechend großem Wettbewerbsdruck praktikabel, wenn also der Verzicht auf Kanten die Wegkosten nur unwentlich hochtreibt. Aufgabe 87 Ist die ehrliche Strategie stets die einzige dominante Strategie? In allen Beipielen haben wir Mechanismen, also Spielregeln entworfen, so dass ehrliche Antworten der Spieler profitabel sind, also eine dominante Strategie darstellen. Dies steht im Gegensatz zum Satz von Gibbard-Satterthwaite: Jedes Funktional, das eine aus vielen Optionen auswählt, und kein Diktator-Funktional ist, muss zwangsläufig nicht-monoton sein, lädt somit in einigen Situationen zum Taktieren ein. Wir haben die Implikationen des Satzes von Gibbard-Satterhwaite vermieden, indem wir „Geld“ in Form von Gebühren oder Ausschüttungen benutzt haben. Im Gebiet des Mechanismen-Entwurfs wird der Entwurf ehrlicher Mechanismen im Detail untersucht. 11.4 Beschränkte Rationalität Wir greifen das Gefangenen-Dilemma aus Beispiel 11.3 wieder auf und betrachten die Spielmatrix Gestehen Schweigen Gestehen 1, 1 4, 0 Schweigen 0, 4 3, 3 Das Strategie Profil (Gestehen, Gestehen) ist das einzige Nash-Gleichgewicht, während das „soziale Optimum“ (Sschweigen ,Schweigen) keinem Nash-Gleichgewicht entspricht. In diesem Beispiel scheint das Konzept des Nash-Gleichgewichts das zu erwartende menschliche Verhalten nicht wiederzugeben, und wir betrachten deshalb weitere Spielvariationen. Da Spielsituationen nicht einmal, sondern mehrfach angetroffen werden, betrachten wir das wiederholte Gefangenen-Dilemma und nehmen an, dass wir das Spiel n-mal wiederholen, wobei die Rundenzahl n beiden Spielern bekannt sei. Wir halten die Ergebnisse in allen Runden fest und schütten dann das durchschnittliche Ergebnis an den jeweiligen Spieler aus. Die Spieler erhalten also die Möglichkeit, auf die vorigen Züge ihres Gegners zu reagieren; dementsprechend nimmt die Komplexität des Spiels zu, denn nach k Runden muss man auf alle 2k möglichen Historien reagieren können. Wir können uns eine Strategie als einen binären Entscheidungsbaum der Tiefe k vorstellen, dessen Kanten mit den Zügen des Gegners markiert sind und dessen Blätter den eigenen Zügen entsprechen. Da die 2k Blätter zu markieren sind, k gibt es insgesamt 22 viele Strategien! Obwohl die Möglichkeit der Kooperation gegeben ist, tritt auch hier nur das Nash-Gleichgewicht (Gestehen, Gestehen) auf1 : Ein Nash-Gleichgewicht für das wiederholte Spiel wird in der letzten Runde ein Nash-Gleichgewicht für das ursprüngliche Spiel erzwingen und die Behauptung folgt mit einem induktiven Argument. Aufgabe 88 Wir betrachten das unendlich oft wiederholte Gefangenen-Dilemma. Wenn ein Spieler die Auszahlung xn in Pn Runde n erhält, dann wird limn→∞ n1 · i=1 xi als durchschnittliche Ausschüttung des Spielers definiert. Zeige, dass (G, G) ein Nash-Gleichgewicht ist, wenn die Maximierung der durchschnittlichen Ausschüttung das Ziel des Spiels ist. Gib ein Nash-Gleichgewicht an, das beiden Spielern eine höhere Auszahlung als 1 bietet. 1 Unabhängig vom bisherigen Spielverlauf werden also beide Spieler stets gestehen. 170 KAPITEL 11. DAS NASH-GLEICHGEWICHT Aufgabe 89 Ein Zweipersonenspiel heißt symmetrisch, falls jeder Spieler dieselbe Strategiemenge S = {s1 , . . . , sn } besitzt und für die Auszahlungen ∀i, j : u1 (si , sj ) = u2 (sj , si ) gilt. Z.B. ist das Gefangenendilemma symmetrisch. Sei M = max{u1 (si , sj ) + u2 (si , sj )|si , sj ∈ S} die maximale Gesamtauszahlung an die Spieler. Zeige oder widerlege: Für die unendliche Wiederholung eines symmetrischen Zweipersonenspiels gibt es stets ein Nash-Gleichgewicht mit mittlerer Auszahlung M für jeden 2 Spieler. Wir behalten das Modell des n-fach wiederholten Spiels bei, lassen diesmal aber nur endliche Automaten mit beschränkter Zustandszahl als Spieler zu. Definition 11.8 (2, S1 × S2 , (u1 , u2 )) sei ein Spiel in Normalform, das als n-fach wiederholtes Spiel zu spielen ist. Ein Automatenspieler für Spieler 1 (bzw. Spieler 2) wird durch einen deterministischen endlichen Automaten A1 = (S2 , Q1 , q01 , δ1 , σ1 ) (bzw. A2 = (S1 , Q2 , q02 , δ2 , σ2 )) beschrieben. Der Zug des Gegners in der vorigen Runde wird als Eingabe aufgefasst und demzufolge ist die Zustandsüberführungsfunktion von der Form δ1 : Q1 × S2 → Q1 (bzw. δ2 : Q2 × S1 → Q2 ). Jeder Zustand q von A1 (bzw. A2 ) ist mit einer Strategie σ1 (q) ∈ S1 (bzw. σ2 (q) ∈ S2 ) beschriftet. Das Spiel beginnt, indem beide Spieler ihren Anfangszustand q0b als jeweils erste Strategie wählen. Die darauffolgenden Züge werden dann durch die Zustandsübergänge der Spieler bestimmt. Das Spielergebnis ist die durchschnittliche Auszahlung a1 (A1 , A2 ) an Spieler 1 und a2 (A1 , A2 ) an Spieler 2. Zwei deterministische endliche Automaten A1 und A2 mit jeweils höchstens N1 bzw. N2 Zuständen bilden ein reines (N1 , N2 )-Nash-Gleichgewicht, wenn a1 (B1 , A2 ) ≤ a1 (A1 , A2 ) und a2 (A1 , B2 ) ≤ a2 (A1 , A2 ) für alle endlichen Automaten B1 und B2 mit jeweils höchstens N1 bzw. N2 Zuständen gilt. Deterministische endliche Automaten entsprechen reinen Strategien, während gemischte Strategien durch Verteilungen über Automaten dargestellt werden. Wir betrachten zuerst den trivialen Automaten AS , der stets die Strategie „Schweigen“ wählt. Dieser Automat wird von der Gegenstrategie „Gestehen“ verheerend geschlagen und damit kann dieses Kooperationsangebot nicht Teil eines Nash-Gleichgewichts sein. Anders ist die Situation für den Automaten AG , der stets die Strategie „Gestehen“ wählt, denn das Automatenpaar (AG , AG ) bildet ein Nash-Gleichgewicht. Ein recht erfolgreicher „Automatenspieler“ ist der Tit-for-Tat Automat AT , dessen beide Zustände G und S den Strategien Gestehen und Schweigen entsprechen. Wenn die Strategie des Gegenspielers mit der eigenen Strategie übereinstimmt, dann verbleibt der Automat in seinem Zustand und wechselt den Zustand ansonsten. Der Zustand S ist Anfangszustand und AT beginnt somit mit einem Kooperationsangebot, wird sich aber sofort wehren, wenn sein Gegner das Kooperationsangebot ausschlägt. Satz 11.9 Das Paar (AT , AT ) ist ein (N, N )-Nash-Gleichgewicht für das n-fach wiederholte Gefangenen-Dilemma, solange die Zustandszahl N kleiner als die Rundenzahl n ist. Beweis: Aufgrund der Symmetrie des Gefangenen-Dilemmas genügt der Nachweis a1 (B, AT ) ≤ a1 (AT , AT ) für jeden endlichen Automaten B mit höchstens n − 1 Zuständen. Spieler 1 erhält für das Strategie Profil (AT , AT ) die durchschnittliche Auszahlung 3 und deshalb müssen wir zeigen, dass stets a1 (B, AT ) ≤ 3 gilt. 11.4. BESCHRÄNKTE RATIONALITÄT 171 Behauptung 11.1 Ein unbeschränkt mächtiger Spieler 1 kann nur dann eine durchschnittliche Auszahlung größer als drei erreichen, wenn er nur in der letzten Runde die Strategie G benutzt. Beweis: Wir zeigen die Behauptung durch Induktion über die Rundenzahl n. Die Behauptung ist offensichtlich richtig, wenn n = 1 und wir nehmen an, dass n = k + 1. Wenn Spieler 1 die Strategie „Schweigen“ in der ersten Runde benutzt, dann folgt die Behauptung aus der Induktionsvoraussetzung, angewandt auf die letzten k Runden. Also können wir annehmen, dass Spieler 1 sofort die Strategie „Gestehen“ mit einer Auszahlung von 4 anwendet. AT wird in der zweiten Runde mit der Strategie „Gestehen“ antworten. Spieler 1 ist gezwungen, ebenfalls die Strategie „Gestehen“ zu wählen, da er ansonsten eine Auszahlung von Null erhält und nach Induktionsvoraussetzung diesen Verlust gegenüber der durchschnittlichen Auszahlung von 3 in den verbleibenden n − 2 Runden nicht wettmachen kann: Der Auszahlung von 4 für die beiden ersten Runden stehen 3 · (n − 2) + 4 für die letzten n − 1 Runden gegenüber, was zu einer durchschnittlichen Auszahlung von 3·n+2 n+1 < 3 führt. Aber AT wird dann bei Strategie „Gestehen“ bleiben und wiederum Spieler 2 zwingen ebenfalls mit „Gestehen“ fortzufahren..... Als Ergebnis erhalten wir die schlechtere durchschnittliche Auszahlung 4+n−1 = 1 + n3 < 3. n Um eine höhere Auszahlung als AT zu erhalten, muss der Automat B die Strategie „Gestehen“ genau in der letzten Runde anwenden. B erhält dann aber stets die Eingabe „Schweigen“ und wird auch in der letzten Runde die Ausgabe „Schweigen“ geben müssen, da er sich in Runde n in einem Zustand befindet, den er schon vorher durchlaufen hat. Aufgabe 90 Gilt Satz 11.9 auch, wenn wir probabilistische Automaten mit weniger als n Zuständen als Spieler zulassen? Was passiert, wenn wir Verteilungen über deterministischen Automaten mit weniger als n Zuständen betrachten? Aufgabe 91 Benenne alle Nash-Gleichgewichte für das unendlich oft wiederholte Gefangenendilemma, wenn nur Automatenspieler mit bis zu zwei Zuständen zugelassen werden. Satz 11.9 zeigt, dass es für Spieler mit „beschränkter Rationalität“ vorteilhaft sein kann, zu kooperieren. Allerdings ist die Zustandsbeschränkung sehr einschneidend. Ab welcher Zahl von Zuständen gibt es nur das Nash-Gleichgewicht (Gn , Gn )? Aufgabe 92 Zeige, dass (Gn , Gn ) das einzige Nash-Gleichgewicht ist, wenn Automatenspieler mit bis zu 2n−1 Zuständen erlaubt sind. Wie ist die Situation für weniger als 2n−1 Zustände? Satz 11.10 [Ne, PY] Sei ε eine beliebige reelle Zahl aus dem offenen Intervall [0, 1[. Wenn mindestens ein Automat im n-fach wiederholten Gefangenen-Dilemma weniger als 2O(ε·n) Zustände besitzt, dann gibt es für genügend großes n ein gemischtes Nash-Gleichgewicht mit einer durchschnittlichen Auszahlung von mindestens 3 − ε. Also gibt es auch hier überraschenderweise ein Nash-Gleichgewicht mit fast vollständiger Kooperation. Wir geben eine (allerdings sehr grobe) Skizze der aufwändigen Konstruktion. Die beiden Spieler des Nash-Gleichgewichts würfeln in den ersten Runden eine Strategie zufällig aus und benutzen ihr Verhalten in diesen ersten Runden als ihre „Visitenkarte“: In nachfolgenden Runden wird periodisch überprüft, ob der Gegenspieler die fremde Visitenkarte abgespeichert hat und damit mit dem Automaten des Nash-Gleichgewichts übereinstimmt. 172 KAPITEL 11. DAS NASH-GLEICHGEWICHT Ist dies nicht der Fall, dann wird der Gegenspieler bestraft, indem nur noch die wenig profitable Strategie „Gestehen“ gespielt wird; besteht der Gegenspieler alle Tests, dann wird er mit einer relativ großen Anzahl von „Schweigen“-Zügen belohnt. Der Gegenspieler muss für die Abspeicherung der Visitenkarte einen Großteil seiner Speicherkapazität opfern und verliert damit sogar die Fähigkeit, die relativ wenigen Runden des Spiels zu zählen. Aufgabe 93 Zeige, dass Satz 11.10 auch gilt, wenn wir Turingmaschinen als Spieler verwenden. Die Turingmaschinen dürfen allerdings nur auf einem Band mit o(n) Zellen rechnen. Nach Satz 11.10 kann sich beschränkte Zustandszahl (oder beschränkte Rationalität) auszahlen: Wir erhalten weitaus profitablere Nash-Gleichgewichte als im Fall unbeschränkter Rechenkraft. Kapitel 12 Die Berechnung von Nash-Gleichgewichten 12.1 Zweipersonen-Nullsummenspiele Beachte, dass es für Zweipersonen-Nullsummenspiele genügt, nur die Auszahlung des ersten Spielers zu zeigen. Dementsprechend verwenden wir nur noch die Auszahlung des ersten Spielers in den Einträgen der Spielmatrix A. Definition 12.1 Eintrag (i, j) ist ein Sattelpunkt der Spielmatrix A, wenn A[i, j] in seiner Zeile minimal und in seiner Spalte maximal ist. Ein Sattelpunkt (i, j) ist offensichtlich ein Nash-Gleichgewicht, denn ein Strategiewechsel lohnt weder für Spieler 1 ((i, j) ist maximal in seiner Spalte) noch für Spieler 2 ((i, j) ist minimal in seiner Zeile). Andererseits ist aber jedes Nash-Gleichgewicht auch ein Sattelpunkt! Lemma 12.2 Reine Strategien: Nash-Gleichgewichte Ein Nullsummenspiel mit Spielmatrix A sei vorgegeben. (a) (i, j) ist genau dann ein Sattelpunkt, wenn (i, j) ein Nash-Gleichgewicht ist. (b) Wenn (i, j) und (r, s) Sattelpunkte sind, dann sind auch (i, s) und (r, j) Sattelpunkte und es gilt A[i, j] = A[r, s] = A[i, s] = A[r, j]. Beweis: (a) ist offensichtlich. (b) Nach Definition der Sattelpunkte gilt A[i, j] ≤ A[i, s] ≤ A[r, s] und A[r, s] ≤ A[r, j] ≤ A[i, j] und die behauptete Gleichheit folgt. Zusätzlich ist (i, s) ein Sattelpunkt, denn A[i, s] = A[i, j] ist in seiner Zeile i minimal und A[i, s] = A[r, s] ist in seiner Spalte s maximal. Die entsprechende Aussage für (r, j) folgt analog. Wir untersuchen jetzt Nash-Gleichgewichte für gemischte Strategien. Eine gemischte Strategie des Zeilenspielers (bzw. Spaltenspielers) ist eine Verteilung π (bzw. µ) über die jeweils eigenen Strategien. Die erwartete Auszahlung für den Zeilenspieler ist deshalb X πi · A[i, j] · µj = π T · A · µ. i,j Wann ist (π ∗ , µ∗ ) ein Nash-Gleichgewicht gemischter Strategien? 173 174 KAPITEL 12. DIE BERECHNUNG VON NASH-GLEICHGEWICHTEN Lemma 12.3 Ein Nullsummenspiel mit Spielmatrix A sei vorgegeben. (a) Wenn (π ∗ , µ∗ ) ein Nash-Gleichgewicht ist, dann gilt max min π T ·A·µ = min (π ∗ )T ·A·µ = (π ∗ )T ·A·µ∗ = max π T ·A·µ∗ = min max π T ·A·µ. π µ µ π µ π (b) (π ∗ , µ∗ ) ist genau dann ein Nash-Gleichgewicht, wenn min (π ∗ )T · A · µ ≥ max π T · A · µ∗ µ π gilt. Also besitzen alle Nash-Gleichgewichte denselben erwarteten Gewinn (π ∗ )T · A · µ∗ für den Zeilenspieler und der erwartete Gewinn des Zeilenspielers stimmt mit dem erwarteten Verlust des Spaltenspielers überein. Beweis (a): Wir nehmen an, dass (π ∗ , µ∗ ) ein Nash-Gleichgewicht ist. Da π ∗ eine beste Antwort des Zeilenspielers auf die gemischte Strategie µ∗ des Spaltenspielers ist, erhalten wir (π ∗ )T · A · µ∗ = max π T · A · µ∗ ≥ max min π T · A · µ ≥ min(π ∗ )T · A · µ, π π µ µ (12.1) denn die erste Ungleichung folgt aus π T · A · µ∗ ≥ minµ π T · A · µ für alle π. Aber µ∗ ist auch eine beste Antwort des Spaltenspielers auf die gemischte Strategie π ∗ des Zeilenspielers und wir erhalten aus analogen Gründen (π ∗ )T · A · µ∗ = min(π ∗ )T · A · µ ≤ min max π T · A · µ ≤ max π T · A · µ∗ . µ µ π π (12.2) Also gilt min(π ∗ )T · A · µ ≤ max min π T · A · µ, min max π T · A · µ ≤ max π T · A · µ∗ . µ π µ µ π π (12.3) Aber min(π ∗ )T · A · µ = (π ∗ )T · A · µ∗ = max π T · A · µ∗ µ π (12.4) ist eine Konsequenz von (12.1) und (12.2) und die Behauptung ergibt sich jetzt direkt aus (12.3) und (12.4). (b) Es ist nur zu klären, ob die in Definition 11.6 beschriebenen Eigenschaften erfüllt werden. Offensichtlich gilt für alle Verteilungen π ∗ und µ∗ min (π ∗ )T · A · µ ≤ (π ∗ )T · A · µ∗ ≤ max π T · A · µ∗ µ π und damit ergibt sich min (π ∗ )T · A · µ = (π ∗ )T · A · µ∗ = max π T · A · µ∗ µ π aus der Annahme minµ (π ∗ )T · A · µ ≥ maxπ π T · A · µ∗ . Als direkte Konsequenz erhalten wir (π ∗ )T · A · µ ≥ (π ∗ )T · A · µ∗ ≥ π T · A · µ∗ 12.1. ZWEIPERSONEN-NULLSUMMENSPIELE 175 und das war zu zeigen. Gibt es stets ein Nash-Gleichgewicht für gemischte Strategien und wenn ja, kann ein NashGleichgewicht effizient berechnet werden? Wir wissen bereits, dass die Forderung min (π ∗ )T · A · µ ≥ max π T · A · µ∗ µ π ausreicht, aber auch notwendig ist, wenn (π ∗ , µ∗ ) ein Nash-Gleichgewicht ist. Wie sieht eine möglichst bösartige Verteilung µ für π ∗ aus? Der Spaltenspieler sollte sein ganzes Gewicht 1 auf die kleinste Komponente des Vektors (π ∗ )T · A werfen! Mit anderen Worten, der Zeilenspieler muss das äquivalente Maximierungsproblem so dass π ≥ 0, max Profit, X πi = 1 und (12.5) i Profit − X πi · A[i, j] ≤ 0 für alle j i lösen und der optimale Wert von (12.5) stimmt mit minµ (π ∗ )T · A · µ überein, wenn π ∗ die optimale Lösung von (12.5) ist. Der Spaltenspieler muss seine Verteilung so wählen, dass maxπ π T · A · µ∗ = minµ maxπ π T · A · µ gilt. Auch hier wird eine möglichst bösartige Verteilung π ihr ganzes Gewicht auf die größte Komponente des Vektors A · µ∗ werfen und der Spaltenspieler muss das äquivalente Minimierungsproblem so dass µ ≥ 0, min Verlust, X µj = 1 und (12.6) j Verlust − X A[i, j] · µj ≥ 0 für alle i j lösen. Wir beachten, dass der optimale Wert von (12.6) mit maxπ π T · A · µ∗ übereinstimmt, wenn µ∗ die optimale Lösung von (12.6) ist. Die Programme (12.5) und (12.6) sind aber dual zueinander und das Dualitätstheorem (Satz 1.10) bedingt, dass das Maximum von (12.5) mit dem Minimum von (12.6) übereinstimmt. Also folgt min (π ∗ )T · A · µ = max min π T · A · µ = min max π T · A · µ = max π T · A · µ∗ µ π µ µ π π und (π ∗ , µ∗ ) ist ein Nash-Gleichgewicht als Konsequenz von Lemma 12.3 (b). 176 KAPITEL 12. DIE BERECHNUNG VON NASH-GLEICHGEWICHTEN Satz 12.4 Das von Neumann’sche Minimax Prinzip (a) Es gibt Zwei-Personen Nullsummenspiele ohne Nash-Gleichgewichte für reine Strategien. Jedes Zwei-Personen Nullsummenspiel besitzt aber ein Nash-Gleichgewicht gemischter Strategien. (b) Sei π ∗ eine optimale Lösung von (12.5) und sei µ∗ eine optimale Lösung von (12.6). Dann ist (π ∗ , µ∗ ) ein Nash-Gleichgewicht für das Nullsummenspiel mit Spielmatrix A. (c) Für jede Matrix A ist max min π T · A · µ = min max π T · A · µ. π µ µ π Also stimmt die erwartete Auszahlung für einen optimal spielenden Zeilenspieler überein mit dem erwarteten Verlust eines optimal spielenden Spaltenspielers. Beweis (a): Das Cent-Spiel hat kein Nash-Gleichgewicht für reine Strategien. (Beachte aber, dass (π, π) mit π = ( 12 , 21 ) ein Nash-Gleichgewicht für gemischte Strategien ist.) (b) und (c) haben wir bereits gezeigt. 12.2 Der Lemke-Howson Algorithmus Wir haben eine effiziente Berechnung von Nash-Gleichgewichten im Fall von Zwei-Personen Nullsummenspielen kennengelernt. Ist auch eine effiziente Berechnung für Nullsummenspiele mit n > 2 Spielern möglich? Aufgabe 94 Zeige: Die Berechnung von Nash-Gleichgewichten in Nullsummenspielen mit n Spielern ist mindestens so schwierig wie die Berechnung von Nash-Gleichgewichten in allgemeinen Spielen für n − 1 Spieler. Also sind Nullsummenspiele für drei Personen bereits so schwierig wie allgemeine Spiele für zwei Personen. Wir stellen uns deshalb das Problem, Nash-Gleichgewichte für allgemeine Zwei-Personen Spiele zu berechnen und stellen dazu den Algorithmus von Lemke-Howson, einen der derzeit erfolgreichsten Algorithmus, vor. Verabredung der Notation. Wir nehmen an, dass der erste Spieler Strategien aus der Menge M = {(1, 1), . . . , (1, m)} und der zweite Spieler aus der Menge N = {(2, 1), . . . , (2, n)} wählt. Die Auszahlung an Spieler 1 und Spieler 2 werde durch die Spielmatrix A, bzw. B repräsentiert. S = {s ∈ Rm | m X si = 1, s ≥ 0} bzw. T = {t ∈ Rn | n X i=1 ti = 1, t ≥ 0} i=1 ist die Menge der Verteilungen von Spieler 1 bzw Spieler 2. Beachte, dass sT · A · t die Auszahlung an Spieler 1 ist, wenn Spieler 1 die gemischte Strategie s und Spieler 2 die gemischte Strategie t spielt. Ebenso gilt, dass sT · B · t die Auszahlung an Spieler 2 ist. Aufgabe 95 (a) Ai und Bj seien die ite Zeile von A, bzw. die jte Spalte von B. Eine Paar (s, t) gemischter Strategien ist genau dann ein Nash-Gleichgewicht für (A, B), wenn jede reine Strategie, die mit positiver Wahrscheinlichkeit auftritt, eine beste Antwort auf die gegnerischen Strategien ist, d.h. si > 0 ⇒ hAi , ti = maxhAk , ti und tj > 0 ⇒ hs, Bj i = maxhs, Bk i. k∈M k∈N (12.7) 12.2. DER LEMKE-HOWSON ALGORITHMUS 177 (b) Wir nennen (X, Y ) den Träger des gemischten Nash Gleichgewichts (s, t), falls X = {i | xi > 0} und Y = {i | yi > 0}. Zeige, dass die Berechnung eines Nash-Gleichgewichts effizient durchgeführt werden kann, wenn sein Träger bekannt ist. Also ist die Bestimmung der Trägermengen der kombinatorisch harte Kern in der Bestimmung eines NashGleichgewichts. Wir betrachten statt den Bedingungen in (12.7) das folgende System für Vektoren s ∈ Rm und t ∈ Rn mit s, t ≥ 0 unter Verzicht auf die Verteilungseigenschaft: sT · B ≤ 1 und A · t ≤ 1, (12.8) si > 0 ⇒ hAi , ti = 1 und tj > 0 ⇒ hs, Bj i = 1. Von (12.7) erhalten wir (12.8), wenn t durch maxk∈Mt hAk ,ti und s durch maxk∈Ns hs,Bk i ersetzt wird. Wir arbeiten mit dem etwas einfacheren System (12.8) weiter. Wir sagen, dass s ≥ 0 mit sT · B ≤ 1 eine Pseudo-Strategie für Spieler 1 und dass t ≥ 0 mit A · t ≤ 1 eine Pseudo-Strategie für Spieler 2 ist. Beachte, dass der Nullvektor eine Pseudo-Strategie ist und der Nullvektor ist die einzige Pseudo-Strategie, die keiner gemischten P Strategie entspricht: Wenn zum Beispiel s eine Pseudo-Strategie ist, dann ist s/( m i=1 si ) eine gemischte Strategie. Markierung. Der Lemke-Howson Algorithmus markiert Pseudo-Strategien mit Elementen aus M ∪ N . Eine Pseudo-Strategie s ∈ S erhält die Markierung k ∈ M ∪ N , wenn entweder k ∈ M und k nicht gespielt wird (sk = 0) oder wenn k ∈ N und Strategie k eine beste Antwort gegen s ist (hs, Bk i = 1). Das Markierungsschema ist analog für eine Pseudo-Strategie t ∈ T definiert: Eine Pseudo-Strategie t erhält die Markierung k ∈ M ∪ N , wenn entweder k ∈ N und k nicht gespielt wird (tk = 0) oder wenn k ∈ M und Strategie k eine beste Antwort gegen t ist (hAk , ti = 1). Eine Strategie k ∈ M tritt entweder im Strategieprofil s (sk = 0) nicht auf oder aber ist eine beste Antwort gegen t. Gleiches gilt für Strategien in N und wir erhalten: Lemma 12.5 Ein Paar (s, t) ∈ S×T von Pseudo-Strategien mit s, t 6= 0 sei vorgegeben. Dann entspricht (s, t) genau dann einem Nash-Gleichgewicht für (A, B), wenn für alle k ∈ M ∪ N die Strategie s oder die Strategie t mit k markiert ist. Wir ergänzen A (bzw. B) um die negativen n Zeilen (bzw. m Spalten) der Einheitsmatrix und nennen die neue Matrix A0 (bzw. B 0 ). Beachte, dass s, bzw. t genau dann Pseudo-Strategien sind - wenn sT · B ≤ 1 und s ≥ 0, bzw A · t ≤ 1 und t ≥ 0 - oder äquivalent, wenn A0 · t ≤ α und sT · B 0 ≤ β, wobei der Vektor α (bzw. β) nur aus Nullen für die neu eingefügten Zeilen (bzw. Spalten) und Einsen für die alten Zeilen (bzw. Spalten) besteht. 178 KAPITEL 12. DIE BERECHNUNG VON NASH-GLEICHGEWICHTEN Wir nennen A0 nicht-degeneriert, wenn jede Auswahl von n+1 Zeilen von A0 linear unabhängig ist, nachdem wir α als n + 1te Spalte zu A0 hinzugefügt haben. Ebenso nennen wir B 0 nichtdegeneriert, wenn jede Auswahl von m + 1 Spalten von B 0 linear unabhängig ist, nachdem wir β als m + 1te Zeile zu B 0 hinzugefügt haben. Wir werden von jetzt ab fordern, dass A0 wie auch B 0 nicht-degeneriert sind1 . Die Forderung kann beseitigt werden; da die Konstruktion im Falle degenerierter Matrizen keine substantiell neuen Methoden benötigt, verzichten wir aber auf ihre Beschreibung. Eine Pseudo-Strategie s ∈ S hat höchstens m Markierungen. Warum? Eine Menge K von r Markierungen entspricht einer Auswahl von r Spalten in B 0 und damit einer m × r Teilmatrix B 00 von B 0 . Die Pseudo-Strategie s besitzt die Markierungen in K genau dann, wenn sT · B 00 der Vektor der entsprechenden Komponenten aus β ist. Also ist B 00 , wenn um den auf die r Komponenten eingeschränkten Vektor β vergrößert, linear abhängig. Für r = m + 1 erhalten einen Widerspruch, da B 0 nicht degeneriert ist. Lemma 12.6 Die Matrizen A0 und B 0 seien nicht degeneriert. Dann gilt (a) Jede Pseudo-Strategie in S (bzw. in T ) besitzt höchstens m (bzw. n) Markierungen. (b) K, L ⊂ M ∪ N seien Teilmengen der Größen m und n. Dann gibt es höchstens eine Pseudo-Strategie s ∈ S, die mit K markiert ist und höchstens eine Pseudo-Strategie t ∈ T , die mit L markiert ist. Beweis (a) haben wir bereits gezeigt. (b) Die Pseudo-Strategie s sei mit der Menge K 0 von B 0 wie auch eine Einschränkung markiert. Dann definiert K eine m × m Teilmatrix BK βK von β. 0 = β Wir behaupten, dass BK regulär ist, wenn das Gleichungssystem st · BK K lösbar ist. Wenn nicht, dann ist der Rang von BK höchstens m − 1. Da wir annehmen, dass das Gleichungssystem lösbar ist, ist auch der Rang von B 0 , wenn um die neue Zeile βK vergrößert, höchstens m − 1: Die Matrix B 0 ist also degeneriert. Wenn das Gleichungssystem lösbar ist, dann ist es eindeutig lösbar, und das war zu zeigen. Lemma 12.6 und die folgende Beobachtung sind zentral: Lemma 12.7 Die Matrizen A0 und B 0 seien nicht degeneriert. Die Menge K ⊆ M ∪ N habe Größe m und trete als Markierung einer Pseudo-Strategie s ∈ S auf. Dann gibt es zu jedem k ∈ K genau eine Markierung K 0 ⊆ M ∪ N , den k-Nachbarn von K, so dass - |K 0 | = m, - |K ∩ K 0 | = m − 1 und k 6∈ K 0 , - K 0 tritt als Markierung einer Pseudo-Strategie aus S auf. Die analoge Aussage für Pseudo-Strategien t ∈ T gilt ebenfalls. Beweis: Die Pseudo-Strategie s besitze K als Markierung. Die m Markierungen aus K defi0 = β , das s als eindeutige Lösung besitzt. nieren das Gleichungssystem sT · BK K 0 zu den Wir nehmen die Bedingung zu k heraus und betrachten die Teilmatrix C von BK verbleibenden m − 1 Bedingungen. Wir wissen, dass der Kern von C eindimensional ist, 1 In vielen wichtigen Anwendungen sind sowohl A0 wie auch B 0 nicht-degeneriert. 12.2. DER LEMKE-HOWSON ALGORITHMUS 179 0 ist regulär. Der Vektor x 6= 0 gehöre zum Kern. Damit können genau die Pseudodenn BK Strategien in S, die zu der Geraden s + λ · x gehören, alle Markierungen in K \ {k} tragen. Pseudo-Strategien aus S entsprechen den Lösungen von sT · B ≤ β. Jede Markierung j ∈ M ∪ N definiert eine lineare Bedingung hs + λ · x, Bj0 i ≤ βj und damit eine Halbgerade. Der Durchschnitt der Halbgeraden entspricht genau den Pseudo-Strategien der Geraden, und dieser Durchschnitt besetzt ein Geraden-Segment. Wenn wir die Bedingung zu k herausnehmen, dann enthält das Geraden-Segment s als inneren Punkt, fügen wir die Bedingung zu k wieder hinzu, erhalten wir zwei Endpunkte, nämlich die Pseudo-Strategie s und eine weitere Pseudo-Strategie s0 . Die Pseudo-Strategie s0 kann mit K \ {k} markiert werden und einer weiteren Markierung, die das Ende des Segments definiert. Zwischen s und s0 liegende Pseudo-Strategien s00 besitzen nur Markierungen aus K \ {k}: keine Bedingung hs + λ · x, Bj0 i ≤ βj für j 6∈ K kann exakt im Inneren des Geraden-Segments erfüllt werden. Aufgabe 96 Warum kann im obigen Argument angenommen werden, dass s ein innerer Punkt des Geraden-Segments ist, wenn die Bedingung zu k herausgenommen wird? Wir sagen, dass eine Pseudo-Strategie s zulässig ist, wenn s eine Markierung K mit |K| = m besitzt. Analog heißt eine Pseudo-Strategie t zulässig, wenn t eine Markierung L mit |L| = n besitzt. Schließlich nennen wir ein Paar (s, t) zulässig, wenn s und t zulässig sind und wenn |K ∪ L| ≥ m + n − 1. Wenn (s, t) zulässig ist, gilt also stets |K ∩ L| ≤ 1. Wir nutzen aus, dass (0, 0) zulässig ist. Beachte, dass ein zulässiges Paar einem Nash-Gleichgewicht entspricht, wenn |K ∪ L| = m + n und wenn weder s noch t dem Nullvektor entspricht. Lemma 12.7 bietet uns die Möglichkeit, beginnend mit dem zulässigen Vektor (0, 0) alle zulässigen Paare zu durchlaufen bis wir ein Nash-Gleichgewicht gefunden haben: • Angenommen, wir „besuchen“ gegenwärtig den zulässigen Vektor (s, t) mit der Markierung (K, L) und es ist K ∩ L = {j}. • Wenn wir die Markierung j gerade als Markierung von s oder als Markierung von t erhalten haben, dann entfernen wir j als Markierung des Partners, also als Markierung von t oder als Markierung von s. Algorithmus 12.8 Der Algorithmus von Lemke und Howson (0) M ist die Strategie-Menge von Spieler 1, N ist die Strategie-Menge von Spieler 2. (1) Wir beginnen mit dem Paar (s, t) = (0, 0) von Pseudo-Strategien. (1a) Sei k ∈ M beliebig: Wir nennen k die fehlende Markierung. (1b) Sei s0 der k-Nachbar von s und sei k 0 die Markierung von s0 , die k ersetzt. Setze s = s0 . Kommentar: Das Paar (0, 0) ist zulässig mit den Markierungen K = M und L = N . Das neue Paar (s, 0) ist ebenfalls zulässig mit den Markierungen K 0 = K \{k}∪{k 0 } und L: Die Markierung k fehlt. Die neue Markierung k 0 markiert jetzt sowohl s wie auch t = 0 und ist deshalb im nächsten Schritt durch eine Markierung k 00 zu ersetzen. 180 KAPITEL 12. DIE BERECHNUNG VON NASH-GLEICHGEWICHTEN (2) Wiederhole solange bis k 0 = k: (2a) k 0 ist als neue Markierung von s hinzu gekommen. Wenn t0 der k 0 -Nachbar von t und k 00 die Markierung von t0 ist, die k 0 ersetzt, dann setze t = t0 und k 0 = k 00 . (2b) k 0 ist als neue Markierung von t hinzu gekommen. Wenn s0 der k 0 -Nachbar von s und k 00 die Markierung von s0 ist, die k 0 ersetzt, dann setze t = t0 und k 0 = k 00 . Der Algorithmus von Lemke und Howson arbeitet auf einem ungerichteten Graphen G, dessen Knoten aus allen zulässigen Paaren (s, t) von Pseudo-Strategien bestehen. Wenn (s, t) kein Nash-Gleichgewicht ist und wenn (s, t) von (0, 0) verschieden ist, dann fügen wir eine Verbindung zwischen (s, t) und (s0 , t) genau dann ein, wenn s0 der j-Nachbar von s ist und j die eindeutig bestimmte Markierung ist, die sowohl für s wie auch für t auftritt. Kanten zwischen (s, t) und (s, t0 ) werden analog eingesetzt. Alle Knoten von G, die kein Nash-Gleichgewicht sind und von (0, 0) verschieden sind, besitzen zwei Nachbarn, nämlich (s, t0 ) und (s0 , t). Auf diesen Knoten zerfällt G also in Wege und Kreise. Der Algorithmus von Lemke und Howson beginnt im Paar (0, 0) und ersetzt die Markierung k durch eine Markierung k 0 ∈ N , um das Paar (s1 , 0) zu erhalten. (s1 , 0) ist von (0, 0) verschieden und kein Nash-Gleichgewicht. Im Folgenden kehrt der Algorithmus nie zu einem bereits besuchten Knoten (s, t) 6= (0, 0) zurück, denn ansonsten hätte (s, t) drei Nachbarn. Kann der Algorithmus zum Knoten (0, 0) zurückkehren? Das Paar (0, 0) besitzt die fehlende Markierung k. Wenn der Algorithmus die fehlende Markierung k in einem von (0, 0) verschiedenen Paar (s, t) zurückerhalten hat, dann ist (s, t) ein Nash-Gleichgewicht und wir sind fertig. Also wird k zurückerhalten, wenn (0, 0) zum zweiten Mal besucht wird. Das ist aber nur vom Knoten (s1 , 0) aus möglich und (s1 , 0) wäre zweimal besucht worden! Kein zulässiges Paar wird also zweimal besucht. Nach Lemma 12.6 (b), gibt es aber nur endlich viele zulässige Paare: Der Algorithmus muss in einem Paar mit genau einem Nachbarn, also in einem Nash-Gleichgewicht enden! Satz 12.9 Algorithmus 12.8 bestimmt ein Nash-Gleichgewicht. Wir haben somit einen konstruktiven Nachweis von Nash-Gleichgewichten für allgemeine Zwei-Personen Spiele geführt. Eine für alle Eingaben effiziente Lösung ist bisher nicht gefunden worden. Desweiteren können Beispiele konstruiert werden, in denen der Graph aus mehreren Zusammenhangskomponenten besteht: Der Algorithmus von Lemke und Howson kann also nicht dazu benutzt werden, sämtliche Nash-Gleichgewichte aufzuspüren. Varianten von Nash-Gleichgewichten, nämliche approximative und korrelierte Nash-Gleichgewichte können hingegen effizient bestimmt werden: Aufgabe 97 Wir interessieren uns für die effiziente approximative Bestimmung eines Nash-Gleichgewichts für ein Zweipersonen Spiel in Normalform. Die Auszahlungen für Spieler A (B) sei durch die n × n Matrix A (B) gegeben. Die Zeilen (Spalten) sind mit den reinen Strategien von A (B) indiziert. Es gelte 0 ≤ Ai,j , Bi,j ≤ 1 für 1 ≤ i, j ≤ n nach einer entsprechenden Skalierung der Auszahlungen. Für die gemischte Strategie x von A und y von B ergibt sich somit die Auszahlung xAy (xBy) für A (B). 12.2. DER LEMKE-HOWSON ALGORITHMUS 181 Wir nennen (x, y) ein ε-approximatives Nash-Gleichgewicht, falls ∀x0 : x0 Ay ≤ xAy + ε und ∀y 0 : xBy 0 ≤ xBy + ε gilt. Außerdem sind wir daran interessiert, dass sich die Auszahlung für jeden Spieler nicht zu sehr gegenüber der Auszahlung im Nash Gleichgewicht ändert: Wenn (x∗ , y ∗ ) ein Nash-Gleichgewicht ist, dann nennen wir ein ε-approximatives Nash-Gleichgewicht (x, y) ε-nah zu (x∗ , y ∗ ), wenn |xAy − x∗ Ay ∗ | < ε und |xBy − x∗ By ∗ | < ε gilt. Das folgende Argument ermöglicht uns die Konstruktion eines ε-nahen Nash-Gleichgewichts in quasipolynomieller Zeit (also in Zeit nO(log n) ). Ein exaktes Nash-Gleichgewicht (x∗ , y ∗ ) sei bekannt und es gelte k = d12 ln n/2 e. Der folgende randomisierte Algorithmus liefert dann mit positiver Wahrscheinlichkeit ein ε-nahes Nash-Gleichgewicht (x, y). • Setze xj := 0 und yj := 0 für 1 ≤ j ≤ n. • Wiederhole k mal – Wähle j zufällig gemäß der Verteilung x∗ (also prob(j = i) = x∗i ). – Setze xj := xj + k1 . – Wähle j zufällig gemäß der Verteilung y ∗ . – Setze yj := yj + k1 . 2 2 (a) Zeige, dass prob(|xAy ∗ − x∗ Ay ∗ | ≥ 4ε ) ≤ 2e−kε /8 und dass prob(|xAy − xAy ∗ | ≥ 4ε ) ≤ 2e−kε /8 gilt. Hinweis: Für unabhängige Zufallsvariablen X1 , . . . , Xk mit 0 ≤ Xi ≤ 1 für 1 ≤ i ≤ k und 0 < δ < k − Pk E[ i=1 Xi ] gilt prob k X Xi − E " k X i=1 ∗ ∗ x By | ≥ ε }) 2 −kε2 /8 ≤ 4e ! Xi ≥ δ 2 2 ≤ e− k δ . i=1 ∗ ε }) 2 (b) Folgere aus (a), dass prob({|xAy −x Ay | ≥ ∗ # 2 ≤ 4e−kε /8 gilt. Beachte, dass entsprechend prob({|xBy − folgt. 2 (c) Zeige, dass für jedes i = 1, . . . , n prob(ei Ay − ei Ay ∗ ≥ 2ε ) ≤ e−kε /2 gilt; ei ist der Zeilenvektor, der an der i-ten Stelle den Eintrag 1 und sonst 0 hat. (d) Zeige, dass für jedes i = 1, . . . , n aus ei Ay − ei Ay ∗ < 2ε und |xAy − x∗ Ay ∗ | < 2ε folgt, dass ei Ay − xAy < ε. 2 2 Folgere, dass prob(ei Ay − xAy ≥ ε) ≤ e−kε /2 + 4e−kε /8 gilt. Somit ist keine reine Strategie ei mit hoher Wahrscheinlichkeit viel besser als x, wenn B die gemischte Strategie y benutzt. 2 2 Beachte, dass entsprechend prob(xBei − xBy ≥ ε) ≤ e−kε /2 + 4e−kε /8 für jedes i folgt, wobei hier ei als Spaltenvektor zu lesen ist. (e) Zeige, dass (x, y) mit positiver Wahrscheinlichkeit ein ε-approximatives Nash-Gleichgewicht ist, das ε-nah zu (x∗ , y ∗ ) ist. (f) Konstruiere nun einen deterministischen Algorithmus, der zu gegebenen Matrizen A, B und gegebenem Fehler ε (natürlich ohne Kenntnis von (x∗ , y ∗ )) ein ε-approximatives Nash-Gleichgewicht (x, y), das ε-nah zu O( ln2n ) einem Nash-Gleichgewicht ist, in Zeit nO(k) = n ε berechnet. Aufgabe 98 Wir führen korrelierte Nash-Gleichgewichte ein. Ein korreliertes Nash-Gleichgewicht liegt vor, wenn es für jeden Spieler das Beste ist, der ihm gegebenen Empfehlung zu folgen. Genauer: Es gibt n Spieler und jeder Spieler hat die Wahl zwischen den Strategien seiner Strategiemenge Si = {si,1 , . . . , si,mi } und für jeden Spieler gibt es eine Funktion ui , die jedem Strategieprofil die anfallende Auszahlung zuweist. Das Spiel wird nun um ein glaubwürdiges Orakel erweitert. Das Orakel weist jedem Strategieprofil eine Wahrscheinlichkeit zu, mit der diese Kombination empfohlen wird. Diese Wahrscheinlichkeitsverteilung ist allen Spielern bekannt. Das Orakel wählt zufällig gemäß seiner Wahrscheinlichkeitsverteilung eine Kombination von Empfehlungen und gibt diese an die Spieler weiter. Ein Spieler erfährt dabei nur seine eigene Empfehlung. Das Orakel stellt ein korreliertes Nash-Gleichgewicht dar, falls für jeden Spieler i und jede ihn erreichende Empfehlung si,j gilt, dass es für Spieler i das (erwartet) Beste ist, der Empfehlung zu folgen, falls jeder andere Spieler sich an die Empfehlung hält. 182 KAPITEL 12. DIE BERECHNUNG VON NASH-GLEICHGEWICHTEN (a) Zeige, dass für jedes Spiel ein gemischtes Nash-Gleichgewicht auch als ein korreliertes Nash-Gleichgewicht aufgefasst werden kann. 1. Wir betrachten das folgende Spiel: n Autos möchten eine Brücke überqueren, die dem Gewicht von genau c < n Autos standhält. Jeder Spieler hat die Strategien fahren und stehenbleiben. Jeder Spieler bewertet das Überqueren der Brücke mit 1, das Stehenbleiben mit 0 und den Einsturz der Brücke, während man sich auf ihr befindet, mit −1000. Zeige, dass es für dieses Spiel ein korreliertes Nash-Gleichgewicht gibt, bei dem die erwartete Auszahlung des schlechtgestelltesten Spielers besser ist als bei jedem gemischten Nash-Gleichgewicht. (b) n Spieler möchten eine Ressource benutzen. Sie haben die Strategien nachfragen oder nicht nachfragen. Fragt ein Spieler die Ressource nicht nach, so ist seine Bewertung 0. Fragen k Spieler die Ressource nach, so erhält jeder von ihnen eine Auszahlung von f (k)/k, wobei f eine streng monoton fallende Funktion mit Wertebereich zwischen 0 und 1 ist. Die Funktion f beschreibt also den Anteil der Ressource, der an die Spieler ausgeschüttet werden kann. Fragen viele Spieler die Ressource nach, so fällt für die Koordination der Anfragen so viel Arbeit an, dass mit wachsendem k immer weniger zu verteilen ist. Aus sozialer Sicht sind wir an einer guten Auslastung der Ressource interessiert, also an einer entsprechend hohen Summe der Auszahlungen an die Spieler. Zeige, dass kein korreliertes Nash-Gleichgewicht entsteht, das besser ist als das beste gemischte Nash-Gleichgewicht. Wie ist das beste gemischte NashGleichgewicht aus sozialer Sicht zu bewerten? (c) Zeige, wie zu einem gegebenen Spiel, ein die Gesamtauszahlung an die Spieler maximierendes korreliertes Nash-Gleichgewicht effizient berechnet werden kann. 12.3 Fixpunktsätze Wir erinnern daran, dass eine Menge X ⊆ Rn kompakt heißt, wenn X abgeschlossen und beschränkt ist. Beachte, dass, nach dem Satz von Weierstrass, eine stetige Funktion auf einer kompakten Menge ihr Minimum (bzw. Maximum) annimmt. X heißt konvex, wenn X mit je zwei Punkten x, y ∈ X auch die x und y verbindende Gerade enthält. X heißt abgeschlossen, wenn das Komplement von X eine offene Menge ist. Eine Korrespondenz f : X ⇒ Y ist eine Abbildung einer Menge X in Teilmengen einer Menge Y , d.h. es gilt stets f (x) ⊆ Y . Die Paarmenge G(f ) = {(x, y) | x ∈ X, y ∈ f (x) } ist der Graph der Korrespondenz f . Wir sagen, dass die Korrespondenz f konvex-wertig ist, wenn f (x) für jedes x ∈ X eine konvexe Menge ist. f heißt nicht-leer, wenn f (x) für jedes x ∈ X nicht-leer ist. Wir formulieren jetzt den Fixpunktsatz von Kakutani ohne Beweis. Er ist die Grundlage für den Nachweis von Nash-Gleichgewichten. Satz 12.10 Kakutani’s Fixpunktsatz Sei X ⊆ Rn kompakt, konvex und nicht-leer. f : X ⇒ X sei eine nicht-leere, konvex-wertige Korrespondenz, deren Graph G(f ) abgeschlossen ist. Dann besitzt f einen Fixpunkt, also einen Punkt x∗ ∈ X mit x∗ ∈ f (x∗ ). Eine erste unmittelbare Konsequenz ist Brouwer’s Fixpunktsatz. Korollar 12.11 Brouwer’s Fixpunktsatz Sei X ⊆ Rn kompakt, konvex und nicht-leer.Dann besitzt jede stetige Funktion f : X → X einen Fixpunkt, also einen Punkt x∗ ∈ X mit f (x∗ ) = x∗ . 12.3. FIXPUNKTSÄTZE 183 Beweis: Sei f : X → X eine stetige Funktion. Wir erhalten aus f eine Korrespondenz F , wenn wir F (x) = {f (x)} setzen. Offensichtlich ist F eine nichtleere und konvexwertige Korrespondenz, und wir müssen nur beobachten, dass der Graph einer stetigen Funktion abgeschlossen ist. Aufgabe 99 Beweise Brouwer’s Fixpunktsatz, wenn X eine kompakte, konvexe und nicht-leere Teilmenge der reellen Zahlen ist. Hinweis: Der Zwischenwertsatz besagt, dass für eine stetige Funktion f : [a, b] → IR und eine beliebige Zahl c zwischen f (a) und f (b) ein x ∈ [a, b] mit f (x) = c existiert. Bevor wir die Existenz von Nash-Gleichgewichten nachweisen, betrachten wir eine andere Anwendung der Fixpunktsätze von Brouwer und Kakutani. Beispiel 12.1 Gleichgewichte in Märkten n Händler bieten Teilmengen von k Gütern an und möchten selbst Güter erwerben. Wir nehmen dazu an, dass Händler i den Gütervektor ei ∈ Rk anbietet und dass seine Kaufpräferenzen für Güterkombinationen durch die Bewertungsfunktion ui : Rk → R wiedergegeben wird: ui (y) ist die Bewertung der Güterkombination y ∈ Rk durch Händler i. Jedes Gut sei unbeschränkt teilbar. Ein erster Ansatz versucht durch wechselseitig profitables Tauschen von Gütern, bessere Allokationen e∗i zu erreichen. Nach hinreichend vielen Schritten wird man eine Pareto-Allokation erreichen, nämlich eine Allokation, in der zusätzlicher Tausch keinen beidseitigen Gewinn bedeutet; in der Sprache der Informatik entspricht eine Pareto-Allokation einem lokalen Optimum. Wir betrachten stattdessen die Festsetzung von Preisen in Märkten. Wir untersuchen PreisP vektoren p mit p ≥ 0 und ki=1 pi = 1 und interpretieren p als die relative Bewertung der einzelnen Güter. Wenn ein Preisvektor p feststeht, dann wird Händler i einen Gütervektor x∗i (p) ∈ Rk kaufen wollen, so dass xi = x∗i (p) eine optimale Lösung von max ui (xi ), so dass hp, xi i ≤ hp, ei i (12.9) ist: Jeder Händler maximiert seinen Nutzen unter Einsatz seines Erlöses. Unser Ziel ist die Bestimmung eines Preisvektors p, so dass der Markt geräumt wird, d.h. wir fordern: n X i=1 x∗i (p) = n X ei . i=1 Mit anderen Worten, wenn jeder Händler seine Güter zu Marktpreisen verkauft und mit den Einnahmen seine bevorzugte Güterkombination erwirbt, dann stimmen wie durch ein Wunder Angebot und Nachfrage überein und der Markt wird geräumt. 184 KAPITEL 12. DIE BERECHNUNG VON NASH-GLEICHGEWICHTEN Satz 12.12 Das Arrow-Debreu Theorem Die folgenden Eigenschaften mögen erfüllt sein: - Die Bewertungsfunktion ui ist für jedes i echt monoton wachsend, d.h. es ist ui (x) < ui (y), wann immer x < y. - Die Bewertungsfunktionen ui sind stetig und konkava , d.h. es ist λ·ui (x)+(1−λ)·ui (y) ≤ ui (λ · x + (1 − λ) · y) für jedes i. Dann gibt es ein Walras-Gleichgewicht, also einen Preisvektor p mit a Pn ∗ i=1 xi (p) = Pn i=1 ei . Damit wird angenommen, dass der Nutzenzuwachs bei großen Stückzahlen abnimmt. „Beweis“: Wir beginnen mit einem beliebigen Preisvektor p. Wir setzen Nachfrage(p) = n X x∗i (p) und Angebot = i=1 n X ei . i=1 Nachfrage(p)j und Angebotj beziffern also die Nachfrage und das Angebot für das jte Gut. Da die Bewertungsfunktionen ui für jedes i echt monoton wächst, wird jeder Händler seinen Erlös vollständig investieren und es ist stets hp, x∗i (p)i = hp, ei i. Wenn die Nachfrage das Angebot für kein Gut übertrifft, dann haben wir somit ein WalrasGleichgewicht gefunden, denn in diesem Fall muss Nachfrage und Angebot exakt übereinstimmen. Ansonsten übertrifft die Nachfrage das Angebot und wir adjustieren den Preis, so dass Güter mit zu hoher Nachfrage verteuert werden und setzen Φ(p) = ( pj + max{0, Nachfrage(p)j − Angebotj } | 1 ≤ j ≤ k ), λ (12.10) wobei die Normalisierung λ garantiert, dass wir wieder einen legalen Preisvektor erhalten. P Der Simplex {x ∈ Rk | x ≥ 0, ki=1 xi = 1 } ist kompakt (da abgeschlossen und beschränkt), konvex und nicht-leer und Brouwer’s Fixpunktsatz garantiert einen Fixpunkt p∗ , wenn Φ stetig ist. Gerade dies ist aber nicht der Fall und der Grund, dass wir hier nur eine Beweisidee beschreiben: Wenn zum Beispiel ein Gut j nichts kostet (pj = 0), dann werden die Händler das Gut in unendlicher Quantität nachfragen. Wir nehmen hier trotzdem Stetigkeit an und erhalten Φ(p∗ ) = p∗ . Behauptung 12.1 Es ist Nachfrage(p∗ ) ≤ Angebot. Sei D = Nachfrage(p∗ ) − Angebot und Dj0 = max{0, Dj }. Unser Ziel ist der Nachweis von D ≤ 0. Nach Definition von Φ in (12.10) ist Φ(p∗ ) = p∗ + D0 = p∗ λ und wir erhalten (λ − 1) · p∗ = λ · p∗ − p∗ = (p∗ + D0 ) − p∗ = D0 (12.11) als Konsequenz. Da hp∗ , x∗i (p∗ )i ≤ hp∗ , ei i für jeden Händler gilt, folgt durch Summation über alle Händler hp∗ , Nachfrage(p∗ )i ≤ hp∗ , Angeboti 12.3. FIXPUNKTSÄTZE 185 und deshalb ist hp∗ , Di ≤ 0. Wir beachten λ ≥ 1 und folgern mit Hilfe von (12.11) 0 ≥ (λ − 1) · hp∗ , Di = h(λ − 1) · p∗ , Di = hD0 , Di = X max{0, Dj } · Dj = X Dj2 . j,Dj ≥0 j Also folgt Dj ≤ 0 für alle Güter j und die Behauptung und damit auch das Arrow-Debreu Theorem ist gezeigt. Aufgabe 100 Gib einen vollständigen Beweis des Arrow-Debreu Theorems mit Hilfe des Fixpunktsatzes von Kakutani. Aufgabe 101 Zeige unter den Annahmen des Arrow-Debreu Theorems, dass jedes Walras-Gleichgewicht eine Pareto-Allokation ist. Korollar 12.13 Jedes Spiel (n, S, U ) in Normalform besitzt ein Nash-Gleichgewicht von gemischten Strategien. Beweis: Wir sagen, dass sp eine beste Antwort von Spieler p gegen das Strategie Profil s−p ist, wenn ep (s−p , sp ) ≥ ep (s−p , s∗p ) für alle s∗p ∈ Sp gilt. Wir definieren die Korrespondenz BA(t) = {s ∈ ×ni=1 Si | für jedes p ist sp eine beste Antwort gegen t−p } für jedes Profil t gemischter Strategien und beachten, dass s genau dann ein Nash-Gleichgewicht ist, wenn s ∈ BA(s), d.h. wenn s ein Fixpunkt der Korrespondenz BA ist. Um Kakutani’s Fixpunktsatz anzuwenden, müssen wir die erforderlichen Voraussetzungen überprüfen: - Die Urbildmenge von BA ist nicht-leer, kompakt und konvex. Wenn Spieler p genau ap reine Strategien besitzt, dann entspricht eine gemischte Strategie einem Vektor πp ∈ Rap , der aus dem Simplex Xp = {x ∈ Rap | x ≥ 0, ap X xi = 1 } i=1 gewählt wird. Somit ist ×np=1 Xp die Urbildmenge von BA und die Urbildmenge von BA ist nicht-leer, konvex und kompakt. - BA ist eine nicht-leere Korrespondenz, denn es gibt stets eine beste Antwort. - BA ist eine konvex-wertige Korrespondenz. Wir erinnern an die Definition ep (π1 , . . . , πn ) = X up (s) · Πni=1 πi (si ) s∈×n i=1 Si der erwarteten Auszahlung von Spieler p. Beachte, dass ep eine lineare Funktion der Wahrscheinlichkeiten πp (sp ) ist, wenn die Wahrscheinlichkeiten für die anderen Spieler fixiert sind. Wenn s1p und s2p zwei beste Antworten für das Strategie Profil t−p sind, dann ist auch jede Konvexkombination λ · s1p + (1 − λ) · s2p von s1p und s2p eine beste Antwort, denn ep ist eine lineare Funktion 186 KAPITEL 12. DIE BERECHNUNG VON NASH-GLEICHGEWICHTEN - Der Graph G(BA) ist abgeschlossen. Aufgabe 102 Zeige, dass G(BA) abgeschlossen ist. 12.4 Wie schwer ist die Bestimmung von Nash-Gleichgewichten? Offenes Problem 4 Können Nash-Gleichgewichte oder Walras-Gleichgewichte in polynomieller Zeit konstruiert werden? Im Fall von (angenäherten) Walras-Gleichgewichten werden in [DPS] N P -Vollständigkeitsergebnisse für nicht-teilbare Güter angegeben. Die Argumentation benutzt, dass die Existenz von Walras-Gleichgewichten nur für teilbare Güter garantiert ist. Da die Existenz von Walras-Gleichgewichten für teilbare Güter garantiert ist, sind N P Vollständigkeitsergebnisse nicht zu erwarten. Wir werden diese offene Frage nicht beantworten können. Wir zeigen aber zuerst, dass diese Gleichgewichts-Konstruktionsprobleme irgendwo zwischen den Klassen P und N P „leben“. Lemma 12.14 Angenommen, ein N P-vollständiges Problem L kann effizient gelöst werden, wenn Nash-Gleichgewichte effizient berechnet werden können. Dann gilt N P = coN P. Beweis: Wir wissen, dass es einen effizienten deterministischen Algorithmus A gibt, der für Eingabe w entscheidet, ob w ∈ L gilt, solange von A angeforderte Nash-Gleichgewichte effizient konstruierbar sind. Wir zeigen jetzt, dass die Komplementsprache L zur Klasse N P gehört: Wann immer A ein Nash-Gleichgewicht anfordert, raten wir ein Nash-Gewicht und verifizieren effizient, dass es sich tatsächlich um ein Nash-Gleichgewicht handelt. Wir erhalten also statt A einen effizienten nichtdeterministischen Algorithmus für die Komplementsprache. Die Komplementsprache ist aber ein schwierigstes Problem in coN P und deshalb besitzen alle Sprachen in coN P effiziente nichtdeterministische Algorithmen, gehören also zur Klasse N P. Die Umkehrbeziehung N P ⊆ coN P zeigt man analog. Verwandte Fragestellungen, wie etwa die Frage ob ein Spiel in Normalform mindestens zwei Nash-Gleichgewichte besitzt, sind hingegen als N P-vollständig bekannt. Wir betrachten das Problem End-of-the-Line, dass sich als Resultat des Lemke-Howson Algorithmus aufdrängt. In End-of-the-Line ist ein riesiger gerichteter Graph G implizit durch die folgenden Schaltkreise gegeben: - Ein Schaltkreis K überprüft, ob ein String v ∈ {0, 1}n der Name eines Knotens von G ist. - Jeder Knoten v von G hat einen Ingrad und einen Outgrad von höchstens eins. Die Namen des Vorgängers und des Nachfolgers lassen sich durch die Schaltkreise V und N berechnen. Desweiteren ist eine ausgezeichnete Quelle s, also ein Knoten mit Ingrad null, gegeben. Das Ziel ist die Bestimmung irgendeiner von s verschiedenen Quelle oder die Bestimmung irgendeiner Senke. End-of-the-Line erscheint auf den ersten Blick als sehr simples Problem, denn es genügt ja, von s aus zu starten bis der Endpunkt des Weges gefunden ist. Aber Achtung: Die Eingabelänge des Problems ist durch die Größe der Schaltkreise K, V und N gegeben. Wenn diese Schaltkreise eine Größe besitzen, die durch ein Polynom in n beschränkt ist, dann dürfen 12.4. WIE SCHWER IST DIE BESTIMMUNG VON NASH-GLEICHGEWICHTEN? 187 auch effiziente Algorithmen für End-of-the-Line höchstens polynomielle Laufzeit aufwenden: Ein schwieriges Unterfangen bei einem Graphen, der möglicherweise 2n Knoten besitzt! Es kann gezeigt werden [DGP], dass End-of-the-Line nicht schwieriger ist als die Bestimmung von Nash-Gleichgewichten für Spiele in Normalform mit drei oder mehr Spielern. In [CDT] wird diese Reduktion sogar für Nash-Gleichgewichte von Zwei-Personen Spielen nachgewiesen. Diese Ergebnisse lassen die effiziente Bestimmung von Nash-Gleichgewichten als höchst unwahrscheinlich erscheinen. Weitere Ergebnisse finden sich in [Y]. Sind diese Ergebnisse überraschend? Im Algorithmus von Lemke und Howson haben wir die Bestimmung eines Nash-Gleichgewichts auf ein zu End-of-the-Line ähnliches Problem reduziert: Wir haben einen ungerichteten Graph mit Knoten vom Grad zwei aufgebaut. Der schwierige Schritt ist die Umkehrung, also die Reduktion von End-of-the-Line auf die Bestimmung eines Nash-Gleichgewichts. 188 KAPITEL 12. DIE BERECHNUNG VON NASH-GLEICHGEWICHTEN Kapitel 13 Der Preis der Anarchie ISP’s werden für ihre Pakete die Wege wählen, die unter den gegenwärtigen Bedingungen bestmöglich sind. Damit werden ISP’s zu „eigensüchtigen Spielern“, die untereinander um Ressourcen, nämlich um Wege mit möglichst geringer Belastung, kämpfen. Es ist zu erwarten, dass das unkoordinierte Verhalten der Spieler zu weiteren Datenstaus führt, da alle Spieler Wege mit geringer Belastung bevorzugen.1 Bei rationalem Verhalten der Spieler entspricht der Ausgang des für längere Zeit gespielten Routingspiels einem Nash-Gleichgewicht. Wir stellen uns deshalb die Frage nach dem Preis der Anarchie, also nach dem worst-case Unterschied zwischen einem Nash-Gleichgewicht einerseits und dem sozialen Optimum andererseits [KP]. Definition 13.1 Sei (n, S, U ) ein Spiel in Normalform. Für ein Strategie Profil s sei wert(s) die Summe der Auszahlungen an die Spieler, wenn diese gemäß s spielen. Das soziale Optimum ist ein Strategie Profil s∗ , so dass wert(s∗ ) = max wert(s). s Wir sagen, dass das Spiel (n, S, U ) c-approximativ ist, wenn c · wert(s) ≥ wert(s∗ ) für jedes Nash-Gleichgewicht s gilt. (Die Definition ist entsprechend anzupassen, wenn Strafen zu minimieren sind.) Der „Preis der Anarchie“ ist also der Faktor c, der das soziale Optimum von einem schlechtesten Nash-Gleichgewicht unterscheidet. Während die Analyse von On-line Algorithmen den Preis dafür quantifiziert, dass wir die Zukunft nicht kennen und die Analyse von Approximationsalgorithmen den Preis für den Einsatz effizienter Algorithmen beschreibt, möchten wir hier den Preis für unkoordiniertes, eigensüchtiges, aber intelligentes Verhalten bestimmen. Wir betrachten ein „Routing-Spiel“ und nehmen an, dass Nachrichten auf (für die jeweilige Situation) kürzesten Wegen versandt werden. Der Preis der Anarchie misst in diesem Fall den Unterschied zwischen dem egoistischen Verhalten der einzelnen Spieler, die den Weg 1 Bei der gegenwärtigen Aufteilung des Internet in autonome Systeme kann eine solche Situation nicht auftreten, da jeder Knoten von genau einem Spieler kontrolliert wird und der Wechsel zwischen autonomen Systemen von den beiden betroffenen Spieler verhandelt wird. Dieser Abschnitt behandelt also ein futuristisches Internet. 189 190 KAPITEL 13. DER PREIS DER ANARCHIE ihrer Nachricht den jeweiligen Umständen anpassen und damit möglicherweise Datenstaus weiter verschärfen, und dem optimalen Verhalten einer zentralen Kontrollinstanz, die Wege unter dem globalen Aspekt der Stau-Minimierung auswählt. Natürlich kann sich das Internet aus Effizienzgründen keine zentrale Kontrollinstanz leisten. Wenn wir nur leichte Service-Verschlechterungen in Nash-Gleichgewichten feststellen, dann haben wir somit nachgewiesen, dass das Routing der kürzesten Wege auch eigensüchtiges Verhalten toleriert. Das Routing-Spiel: Ein beliebiger gerichteter Graph G = (V, E) sei vorgegeben, wobei jeder Kante e ∈ E eine konvexe und monoton wachsende Latenz-Funktion le : R → R zugewiesen wird. Wir erlauben Mehrfachkanten, die mit verschiedenen Latenz-Funktionen beschriftet sind. Desweiteren sind k Paare (si , ti ) ∈ V 2 und k Emissionsraten ri gegeben. Wir müssen Pakete mit der Emissionsrate ri von si nach ti über einen oder mehrere Wege Pi,1 , Pi,2 , . . . verschicken. Die Wege Pi,j definieren einen Fluss f , der jedem Weg Pi,j seine Emissionsrate fi,j zuordnet und eine Kante mit dem Fluß X fe = fi,j i,j:e∈Pi,j P belastet; insbesondere muss j fi,j = ri gelten. Die Latenz (oder der Verzögerungsfaktor) einer Kante e ist dann le (fe ), da der Verkehr über alle e traversierenden Wege aufzusummieren ist. Wir definieren le (fe )·fe als die von e benötigte Zeit, um sämtliche aufgelaufenen Pakete zu transportieren. Die Latenz lP (f ) = X le (fe ) e,e∈P eines Weges P legen wir als die Summe der Latenzen der Kanten von e fest und demgemäß ist lPi,j (f ) · fi,j die Transportzeit entlang Weg Pi,j . Schließlich definieren wir K(f ) = X lPi,j (f ) · fi,j i,j als die Kosten des Flusses f : Es ist im Interesse von Spieler i, Wege Pi,j mit minimaler P Transportzeit zu bestimmen und damit seine Kosten j lPi,j (f ) · fi,j zu minimieren. K(f ) ist somit die Summe der Kosten aller Spieler. Wir benötigen aber auch eine alternative Sichtweise: K(f ) = X = X lPi,j (f ) · fi,j = i,j X le (fe ) · fi,j e∈Pi,j le (fe ) · fi,j = le (fe ) · fe X i,j X e i,j:e∈Pi,j = X X e le (fe ) · X fi,j i,j:e∈Pi,j (13.1) e Die Kosten von Fluss f stimmen also mit der Summe der Transportzeiten über alle Kanten überein. 191 Beobachtung 13.1 (a) Ein Fluss f ist genau dann ein Nash-Gleichgewicht (bzw. ein Nash-Fluss), wenn kein Spieler seine Latenz durch den Wechsel eines Weges verbessern kann. Mit anderen Worten, für jedes i und für alle Wege Pi,j und Q von si nach ti muss lPi,j (f ) ≤ lQ (f ) (13.2) gelten. (b) f ist ein optimaler Fluß, falls j fi,j = ri für alle i und falls K(f ) ≤ K(g) für alle P Flüsse g (mit j gi,j = ri für alle i) gilt. P Um wieviel unterscheiden sich die Kosten eines Nash-Flusses von den Kosten eines optimalen Flusses? Wir greifen zuerst Beispiel 11.5 wieder auf. Beispiel 13.1 Wie bisher möchten zwei Spieler jeweils einen Fluss mit Emissionsrate 21 von s nach t schicken. Die Kante e besitze diesmal die Latenz l1 (x) = xd (für d ≥ 1) und die Kante f die alte Latenz l2 (x) = 1. e s t f Abbildung 13.1: Die Kante e hat Latenz xd Im einzigen Nash-Gleichgewicht schicken beide Spieler ihren Fluss über die Kante e und erhalten die Kosten 1. Wenn wir aber einen Fluss von √1d über die Kante f schicken und den restlichen Fluss über die Kante e, dann erhalten wir die Kosten √ 1 1 1 √ + (1 − √ )d ≤ √ + e−d/ d . d d d Wenn d also genügend groß ist, dann fallen die Kosten gegen Null. Wir arbeiten ab jetzt nur noch mit linearen Latenz-Funktionen le (x) = ae · x + be , wobei wir ae , be ≥ 0 voraussetzen und deshalb insbesondere erreichen, dass le (x) · x konvex ist. In diesem Fall können wir Nash-Flüsse und optimale Flüsse sehr einfach charakterisieren. Wir erhalten K(f ) = X e le (fe ) · fe = X e (ae · fe + be ) · fe = X ae · fe2 + be · fe e als die Kosten des Flusses f und beobachten, dass K(f ) eine konvexe quadratische Funktion ist (ae ≥ 0). Aufgabe 103 Betrachte das Problem des Routings der kürzesten Wege im doppelt verketteten Ring mit n ≥ 3 Knoten. Jede Kante e, die im Uhrzeigersinn verläuft, hat Latenz le (x) = x, während jede Kante e, die in der entgegengesetzten Richtung verläuft, Latenz le (x) = 1 hat. 192 KAPITEL 13. DER PREIS DER ANARCHIE (a) Bestimme Nash-Fluss und optimalen Fluss für den Fall, dass jeder Knoten eine Nachricht mit Emissionsrate 1 zu seinem Nachbarn im Uhrzeigersinn transportieren möchte. (b) Bestimme Nash-Fluss und optimalen Fluss für den Fall, dass jeder Knoten eine Nachricht mit Emissionsrate 1 zu seinem Nachbarn entgegen dem Uhrzeigersinn transportieren möchte. Hinweis: Aus Symmetriegründen darf angenommen werden, dass sich alle Knoten im Nash-Gleichgewicht (bzw. im Optimum) gleich verhalten. Aufgabe 104 Zeige, dass Nash-Flüsse stets existieren. Angenommen der Fluß f ist optimal. Wenn P = Pi,j ein Weg von si nach ti mit positivem Fluss (d.h. fi,j > 0) ist und wenn Q ein anderer Weg von si nach ti ist, dann werden wir uns nicht verbessern, wenn wir den Fluss entlang P um irgendein ε > 0 erniedrigen und entsprechend um ε entlang Q erhöhen. Wenn also f 0 der neue Fluss ist, dann ist K(f ) − K(f 0 ) = X e∈P,e6∈Q X = X ae · (fe2 − (fe − ε)2 ) + be · ε + ae · (fe2 − (fe + ε)2 ) − be · ε e6∈P,e∈Q X 2 ae · (2ε · fe − ε ) + be · ε + e∈P,e6∈Q ae · (−2ε · fe − ε2 ) − be · ε e6∈P,e∈Q ≤ 0. Also folgt insbesondere X X K(f ) − K(f 0 ) = (2ae · fe + be ) − (2ae · fe + be ) ≤ 0 ε→0 ε e∈P,e6∈Q e6∈P,e∈Q lim und damit ist stets X (2ae · fe + be ) ≤ X (2ae · fe + be ). e∈Q e∈P Wir fassen zusammen: Lemma 13.2 Ein Graph G, Emissionsraten r und Latenzfunktionen le (x) = ae · x + be mit ae , be ≥ 0 seien gegeben. (a) Der Fluss f ist genau dann optimal, wenn X 2ae · fe + be ≤ e∈Pi,j X 2ae · fe + be e∈Q für jedes i und für alle Wege Pi,j und Q von si nach ti mit fi,j > 0 gilt. (b) Der Fluss f ist genau dann ein Nash-Fluss, wenn X e∈Pi,j ae · fe + be ≤ X ae · fe + be e∈Q für jedes i und für alle Wege Pi,j und Q von si nach ti mit fi,j > 0 gilt. Insbesondere haben also alle gewählten Wege Pi,j von si nach ti dieselbe Latenz lPi,j (f ), falls fi,j > 0. (c) Sei f ein Nash-Fluss. Dann ist f /2 ein optimaler Fluss für die Emissionsraten ri /2. 193 Beweis: Für (a) müssen wir nur noch bemerken, dass K(f ) konvex ist: Jedes lokale Minimum ist also auch ein globales Minimum. Da (b) direkt aus der Definition (13.2) eines Nash-Flusses folgt, ist nur (c) zu zeigen. Wir wissen, dass f ein Nash-Fluss ist. Nach Teil (b) gilt also X 2ae · e∈P X fe fe + be ≤ 2ae · + be 2 2 e∈Q für jedes i und für alle Wege P und Q von si nach ti mit fP > 0. Das aber bedeutet mit Teil (a), dass f /2 ein optimaler Fluss für die Emissionsraten ri /2 ist. Wir haben jetzt die Vorbereitungen abgeschlossen und vergleichen einen Nash-Fluss f mit einem optimalen Fluss f ∗ . Zuerst ist offensichtlich wegen be ≥ 0 K(f /2) = X1 e ≥ 4 · ae · fe2 + 1 · be · fe 2 1 1 X · ( ae · fe2 + be · fe ) = · K(f ). 4 4 e Mit Lemma 13.2 wissen wir, dass f /2 ein optimaler Fluss für die Emissionsraten ri /2 ist. Wir haben gerade gesehen, dass der minimale Fluss für Emissionsraten ri /2 die Kosten mindestens 1 4 · K(f ) besitzt. Da die Kosten offensichtlich steigen, wenn die Emissionsraten steigen, haben wir also schon K(f ∗ ) ≥ K(f /2) ≥ 14 · K(f ) gezeigt und das Routing über kürzeste Wege ist zumindest 4-approximativ. Aber wir können unsere Analyse verschärfen. Lemma 13.3 Ein Graph G, Emissionsraten r und Latenzfunktionen le (x) = ae · x + be mit ae , be ≥ 0 seien gegeben. Desweiteren sei g ein optimaler Fluss für die Emissionsraten ri . Dann gilt für jeden Fluss h mit den Emissionsraten 2ri K(h) ≥ K(g) + 1 · K(2 · g). 2 Bevor wir das Lemma verifizieren, zeigen wir unser Hauptergebnis. Satz 13.4 Ein Graph G, Emissionsraten ri und Latenzfunktionen le (x) = ae · x + be mit ae , be ≥ 0 seien gegeben. Wenn f ein Nash-Fluss ist und f ∗ ein optimaler Fluss (jeweils für die Emissionsraten ri ) ist, dann gilt K(f ) ≤ 34 · K(f ∗ ) und das Routing über kürzeste Wege ist 34 -approximativ. Beweis: Wir wenden Lemma 13.3 für g = f /2 und h = f ∗ an und erhalten, da f /2 optimal für die Emissionsraten r/2 ist, K(f ∗ ) ≥ K(f /2) + 1 1 1 3 · K(f ) ≥ · K(f ) + · K(f ) = · K(f ). 2 4 2 4 Und das war zu zeigen. Beweis von Lemma 13.3: Sei e eine beliebige Kante. Die Funktion le (x) · x = ae · x2 + be · x ist konvex und deshalb gilt die Ungleichung2 le (he ) · he ≥ le (ge ) · ge + (he − ge ) · (le (ge ) · ge )0 . Wenn die Funktion F konvex ist, dann gilt F (x) ≥ F (y) + (x − y) · F 0 (y), denn die Steigung der Sekante in den Punkten x und y ist für x ≤ y höchstens so groß wie die Steigung der Tangente im Punkt y. 2 194 KAPITEL 13. DER PREIS DER ANARCHIE Beachte, dass (le (x) · x)0 = (ae · x2 + be · x)0 = 2 · ae · x + be . Wir setzen le∗ (x) := 2 · ae · x + be und erhalten K(h) = X le (he ) · he ≥ le (g) · ge + X X (he − ge ) · (le (g) · ge )0 e∈E e∈E e∈E = K(g) + X (he − ge ) · le∗ (g) e∈E = K(g) + X le∗ (g) · (hPi,j − gPi,j ) = K(g) + X X le∗ (g) · (hPi,j − gPi,j ) i,j e,e∈Pi,j i,j:e∈Pi,j e∈E = K(g) + X (hPi,j − gPi,j ) · lP∗ i,j (g), X i,j denn wir setzen lP∗ i,j (g) := e,e∈Pi,j le∗ (g). Der Fluss g ist optimal, und wir können Lemma 13.2 (a) anwenden: Die Werte lP∗ i,j (g) sind alle identisch, falls gPi,j > 0. Wir können deshalb li∗ (g) := lP∗ i,j (g) definieren. Also folgt P (hPi,j − gPi,j ) · lP∗ i,j (g) K(h) ≥ K(g) + X = K(g) + X i,j li∗ (g) · X = K(g) + X (hPi,j − gPi,j ) j i li∗ (g) · (2 · ri − ri ) = K(g) + X li∗ (g) · ri . i i Es ist le (2x) = le∗ (x) für jede Kante e. Also folgt lP∗ i,j (g) = e,e∈Pi,j le∗ (g) = e,e∈Pi,j le (2g) = lPi,j (2g). Also stimmen auch alle Werte lPi,j (2g) überein, und wir können deshalb li (2g) := lPi,j (2g) definieren. Beachte, dass li (2g) = li∗ (g) gilt. Also folgt P K(h) ≥ K(g) + X P li (2 · g) · ri i und das war zu zeigen. = K(g) + 1 X li (2 · g) · (2 · ri ) · 2 i = K(g) + 1 · K(2 · g) 2 In Beispiel 13.1 haben wir gesehen, dass der Preis der Anarchie gegen unendlich strebt, wenn wir Polynome mit unbeschränkt wachsendem Grad als Latenzfunktionen zulassen. Man kann aber zeigen, dass der Preis der Anarchie bei Grad höchstens d durch O(d/ ln d) beschränkt ist. Das Routing Spiel bleibt also selbst dann gutartig, wenn die Geschwindigkeit der Links aufgrund gröser Belastung stärker als linear fällt. Vergleichen wir unkoordiniertem Verhalten bei halbierten Emissionsraten mit zentral koordiniertem Verhalten bei ursprünglichen Emissionsraten, dann kann unkoordiniertes Verhalten sogar für beliebige stetige Latenzfunktionen mithalten! Satz 13.5 [RT] Ein Graph G, Emissionsraten r und stetige, monoton wachsende Latenzfunktionen le (x) seien gegeben. Wenn f ein Nash-Fluss ist und f ∗ ein optimaler Fluss für die Emissionsraten 2 · ri ist, dann gilt K(f ) ≤ K(f ∗ ). 195 Aufgabe 105 Wir betrachten das Routing-Problem im folgenden einfachen Modell. Von Knoten x führen m parallele Kanten zu Knoten y. Der Spieler i will einen Datenstrom der Länge wi von x nach y schicken. Er entscheidet sich, Kante ji ∈ {1, . . . , m} zu benutzen. Nehmen n Spieler an dem Routing Spiel teil, dann sind die Kosten für Spieler i X Ci (j1 , . . . , jn ) = wk . k:jk =ji Das vorgegebene Routing wird mit max1≤i≤n Ci (j1 , . . . , jn ) bewertet: Ein optimales Routing muss also versuchen, den schlechtgestelltesten Spieler möglichst gut zu stellen. Wir lassen nun auch gemischte Strategien zu. Jeder Spieler i erhält die Möglichkeit, eine Verteilung pi zu wählen: Spieler i wird die Kante j mit Wahrscheinlichkeit pi,j benutzen. Hier sind die erwarteten Kosten von Spieler i Ci (p1 , . . . , pn ) = X n Y pk,jk · Ci (j1 , . . . , jn ). (j1 ,...,jn )∈{1,...,m}n k=1 Die erwartete Bewertung des vorgegebenen Routings ist max1≤i≤n Ci (p1 , . . . , pn ). Ein Nash-Gleichgewicht liegt vor, wenn für jeden Spieler i und alle Verteilungen p∗i Ci (p1 , . . . , pn ) ≤ Ci (p1 , . . . , pi−1 , p∗i , pi+1 , . . . , pn ) gilt. Wähle eine Kantenzahl m, eine Spielerzahl n und Nachrichtenlängen für jeden Spieler, so dass der Preis der Anarchie mindestens 32 beträgt. Wir definieren den Preis der Anarchie als den größten Bruch egoistisch/sozial, wobei egoistisch die maximale erwartete Bewertung eines Nash-Gleichgewichts ist und sozial die minimale erwartete Bewertung eines Routings ist. 196 KAPITEL 13. DER PREIS DER ANARCHIE Kapitel 14 Auktionen Das Einsatzgebiet von Auktionen ist vielfältig. Die schnelle und unkomplizierte Durchführung einer Auktion wie auch die Möglichkeit einer möglichst fairen Zuteilung sind wichtige Vorteile. Beispiele von Auktionen beinhalten - Kunst- und Antiquitäten-Auktionen (Christie’s, Sotheby’s). - Versteigerungen durch Privatpersonen (Ebay). - An- und Verkauf von Anleihen und Aktien. - Versteigerungen durch den Staat wie etwa die UMTS-Versteigerung durch die Regulierungsbehörde für Telekommunikation und Post. - Versteigerungen unter Zulieferern großer Firmen. Man unterscheidet zahlreiche Auktionsformen, die aber alle den Zuschlag nur an das Höchstgebot erteilen. Zu den wichtigsten zählen - Englische Auktionen: Die Teilnehmer der Auktion können durch Handheben oder Zwischenruf den aktuell gebotenen Preis erhöhen. Der Bieter mit dem höchsten Gebot erhält den Zuschlag. - Holländische Auktionen1 : Eine Preisuhr läuft rückwärts und der erste Bieter, der bereit ist, den angezeigten Preis zu bezahlen, erhält den Zuschlag. - Geschlossene Gebote: Gebote werden zum Beispiel in geschlossenen Briefumschlägen abgegeben. Insbesondere ist nur die Abgabe eines Gebots möglich (und sinnvoll) und der Ablauf der Auktion erlaubt keinerlei Information über die Zahlungsbereitschaft der anderen Teilnehmer. Auch hier geht der Zuschlag an das höchste Gebot, jedoch unterscheidet man zwei „Mechanismen“ zur Bezahlung. - Erstpreis-Auktion: das höchste Gebot ist auch zu zahlen. Die Erstpreis-Auktion ähnelt damit einer holländischen Auktion. 1 Holländische Auktionen werden in holländischen Großmärkten zur Versteigerung von Massenwaren wie etwa Blumen und Gemüse benutzt. 197 198 KAPITEL 14. AUKTIONEN - Zweitpreis-Auktion: das zweithöchste Gebot ist zu zahlen. Diese Versteigerungsform ähnelt einer englischen Auktion, denn dort wird der gewinnende Bieter sein Gebot nur unwesentlich höher als das zweithöchste Gebot wählen. Erst- und Zweitpreis-Auktionen haben wir bereits in Beispiel 11.9 verglichen. Neben diesen Auktionsformen treten noch weitere Varianten auf. Der Verkäufer hat möglicherweise einen Reservierungspreis p und willigt nur dann in einen Verkauf ein, wenn das Höchstgebot den Reservierungspreis übersteigen. Bieter müssen vielleicht auch eine Gebühr entrichten unabhängig davon, ob sie den Zuschlag erhalten oder nicht; in Wohltätigkeitsauktionen erhält das Höchstgebot wie üblich den Zuschlag, aber jedes Gebot wird als Gebühr eingezogen. Bisher haben wir nur den einfachsten Auktionstyp, nämlich die Versteigerung eines einzigen Guts betrachtet. Von besonderer Bedeutung sind desweiteren Auktionen, in denen Exemplare eines Guts in beschränkter Zahl oder unbeschränkter Zahl versteigert werden (Multi-Unit Auktionen) sowie kombinatorische Auktionen, in denen Gebote für Kombinationen verschiedener Güter abgegeben werden dürfen. Alle bisher betrachteten Situationen sind ein-seitig: Wir nehmen einen Verkäufer (oder einen Auktionator) und viele Käufer (oder Bieter) an. In zwei-seitigen Auktionen, wie etwa im Aktienhandel, treffen wir hingegen eine Vielzahl von Käufern und Verkäufern an. Wir werden uns aber auf ein-seitige Auktionen einschränken. Wir beginnen mit Multi-Unit Auktionen und betrachten dann kombinatorische Auktionen. Wir schließen mit einem Vergleich verschiedener Auktionsformen im Ein-Güter Fall. 14.1 Multi-Unit Auktionen: k Exemplare Wir betrachten zuerst geschlossene multi-unit Auktionen. Wir nehmen an, dass k Exemplare eines Guts zur Verfügung stehen. Bieter i gibt ein Gebot der Form (mi , pi ) ab und erklärt damit seine Bereitschaft, mi Exemplare zum Einzelpreis pi zu erwerben. Wir machen die folgenden Annahmen: - Der Auktionsmechanismus, also das Verfahren der Zuteilung und der jeweiligen Preisfestsetzung, ist allen Teilnehmern bekannt. - Die Bieter sind eigensüchtig. Insbesondere besitzt jeder Bieter eine nur ihm bekannte Bewertung vi seines Gebots und der Bieter versucht, seine Auszahlung vi − qi zu maximieren, wobei qi der in der Auktion zu bezahlende Gesamtpreis ist. - Bei Zuschlag muss ein Bieter höchstens sein Gebot bezahlen. - Bieter kooperieren nicht gegen den Auktionsmechanismus. Die Bestimmung einer Zuteilung mit optimalem Erlös für den Verkäufer ist äquivalent zum Rucksackproblem. Definition 14.1 Im Rucksackproblem sind n Objekte mit Gewichten gi und Werten wi (1 ≤ i ≤ n) vorgegeben ebenso wie eine Gewichtsschranke G. Der Rucksack ist mit einer Auswahl von Objekten so zu bepacken, dass einerseits die Gewichtsschranke nicht überschritten wird und andererseits der Gesamtwert maximal ist. 14.1. MULTI-UNIT AUKTIONEN: K EXEMPLARE 199 Um den Zusammenhang zum Rucksackproblem herzustellen, nehmen wir an, dass n Bieter teilnehmen. Wir setzen gi = mi , wi = mi · pi und setzen die Gewichtsschranke G auf k. Eine optimale Zuteilung I ⊆ {1, . . . , n} ist jetzt offensichtlich äquivalent zu einer optimalen Bepackung des Rucksacks mit Objekten aus I. Die schlechten Nachrichten zuerst: Das Rucksackproblem ist N P -vollständig. Aber wir erhalten auch gute Nachrichten, denn eine effiziente Berechnung gelingt bei nicht zu großer P Wertesumme W = ni=1 wi . Lemma 14.2 Das Rucksackproblem für Wertesumme W und n Objekte kann in Zeit O(n·W ) gelöst werden. Beweis: Wir beschreiben eine Anwendung des dynamischen Programmierens. (1) Wahl der Teilprobleme: Für jedes W ∗ ≤ W und jedes i = 1, . . . , n bestimme eine Auswahl, die höchstens aus den ersten i Objekten besteht, den Wert W ∗ besitzt und das minimale Gesamtgewicht Gewichti (W ∗ ) hat. (2) Lösung der Teilprobleme: Gewichti (W ∗ ) := min {Gewichti−1 (W ∗ − wi ) + gi , Gewichti−1 (W ∗ )} . Analysieren wir die Laufzeit. Wir haben höchstens nW = n · n X wi i=1 viele Teilprobleme, die jeweils in Zeit O(1) gelöst werden können und die Gesamtlaufzeit ist deshalb O(nW ). Wir haben einen Polynomialzeit-Algorithmus erhalten, falls nW polynomiell in n ist. Wir zeigen als Nächstes, dass wir auch bei sehr großen Werten effizient approximieren können. Aufgabe 106 Der Beweis zu Lemma 14.2 enthält einen dynamischen Programmieransatz, der nicht vollständig beschrieben ist. a) Ergänze den Ansatz um die Initialisierung der Variablen Gewichti (W ∗ ) und beschreibe, wie der Wert der optimalen Bepackung ausgegeben wird. b) Wende den Algorithmus auf das Problem n = 4, G = 9, g1 = 3, w1 = 1, g2 = 2, w2 = 2, g3 = 3, w3 = 4, g4 = 4, w4 = 3 an und stelle alle Zwischenergebnisse in einer Tabelle für Gewichti (W ∗ ) dar. Wir zeigen jetzt, wie man aus der exakten Lösung für kleine Werte ein volles polynomielles Approximationsschema für beliebige Werte erhält. Algorithmus 14.3 Ein volles polynomielles Approximationsschema für das Rucksackproblem (1) Sei (w1 , . . . , wn , g1 , . . . , gn , G) eine beliebige Instanz des Rucksackproblems. Der Approximationsfaktor 1 + ε sei vorgegeben. Entferne alle Objekte, deren Gewicht die Gewichtsschranke G übersteigt. (2) Packe nur das Objekt mit größtem Wert in den Rucksack. Der erhaltene Wert sei W1 . 200 KAPITEL 14. AUKTIONEN (3) Die Werte werden nach unten skaliert, nämlich setze wi∗ = bwi · n c. ε · maxj wj (4) Berechne eine exakte Lösung x für die Instanz (w1∗ , . . . , wn∗ , g1 , . . . , gn , G). Wenn x die P Objektmenge I ⊆ {1, . . . , n} in den Rucksack packt, dann setze W2 = i∈I wi und übernimm die Bepackung für die alten Werte. (5) Gib die beste der beiden Bepackungen aus. Satz 14.4 Algorithmus 14.3 berechnet eine (1 + ε)-Approximation mit Laufzeit O( 1ε · n3 ). Beweis: Wir können annehmen, dass alle Objekte eingepackt werden können, da der Algorithmus zu schwere Objekte zuerst entfernt. Die neuen Werte sind durch nε beschränkte natürliche Zahlen. Wir können somit das Optimierungsproblem in den neuen Werten (und alten Gewichten) in Zeit O( 1ε · n3 ) exakt lösen. Sei B die gefundene Bepackung und Bopt die optimale Bepackung (für die alten Werte). Dann gilt für den Skalierungsfaktor ε · maxj wj s= , n dass X X wi ≤ s·b i∈Bopt i∈Bopt X ≤ s·b i∈B X ≤ wi c + sn s wi c + sn denn B ist die beste Bepackung für die Werte wi∗ = b wsi c s wi + sn. i∈B Fall 1: wi ≥ maxj wj . Es ist P i∈B P i∈Bopt P i∈B wi wi P wi + sn sn sn ≤1+ P ≤1+ ≤ 1 + ε. maxj wj i∈B wi i∈B wi i∈B ≤ P (14.1) P Fall 2: i∈B wi < maxj wj . Algorithmus 14.3 findet eine Bepackung mit Wert maxj wj . Es ist P i∈Bopt wi maxj wj P ≤ wi + sn maxj wj + sn sn ≤ ≤1+ ≤ 1 + ε, maxj wj maxj wj maxj wj i∈B denn wir haben die Fallannahme benutzt. Pn Abhängig von der Größe der Wertesumme W = i=1 mi · pi haben wir also die Option der Berechnung einer optimalen Zuteilung in Zeit O(n · W ) oder einer (1 + ε)-approximativen Zuteilung in Zeit O( 1ε · n3 ). Auktion 14.5 Die Multi-Unit Auktion mit maximalen Einkünften (1) Die Bieter 1, . . . , n geben ihre geschlossenen Gebote (m1 , p1 ), . . . , (mn , pn ) ab. 14.1. MULTI-UNIT AUKTIONEN: K EXEMPLARE 201 (2) Eine optimale Zuteilung I ⊆ {1, . . . , n} wird mit Hilfe des Rucksackproblems bestimmt: Bieter i ∈ I erhält bei Zuschlag die gewünschten mi Exemplare und bezahlt den Betrag mi · pi . Auktion 14.5 ist nur dann sinnvoll, wenn die Nachfrage das Angebot übertrifft, da ansonsten Exemplare zum Schleuderpreis abgegeben werden. Ein weiterer Nachteil sind die unterschiedlichen Einzelpreise (die Einzelpreise berechnen sich aus den jeweiligen Geboten). Deshalb betrachten wir als Nächstes die Bestimmung des höchsten Preises, der den Markt räumt. Auktion 14.6 Die Multi-Unit Höchstpreis-Auktion (1) Die Bieter 1, . . . , n geben ihre geschlossenen Gebote (m1 , p1 ), . . . , (mn , pn ) ab. (2) pπ(1) , . . . , pπ(n) sei die absteigend sortierte Reihenfolge der gebotenen Einzelpreise pi . P Bestimme den maximalen Preis p = pi , so dass ij=1 mπ(j) ≥ k. Alle Bieter j mit pj > p erhalten die gewünschte Stückzahl zum Einzelpreis p. Das verbleibende Kontingent wird unter den Bietern j mit pj = p so aufgeteilt, dass eine größtmögliche Anzahl von Exemplaren zum Einzelpreis p verteilt werden. Aufgabe 107 (a) Zeige, dass Auktion 14.6 effizient, d.h. polynomiell in n und k, berechnet werden kann. (b) Man kann allgemeinere Gebote zulassen, in denen ein Bieter für jeden Preis die Anzahl der gewünschten Exemplare spezifiziert. Wenn P verschiedene Preise zugelassen sind, kann dann die Höchstpreis-Auktion effizient durchgeführt werden? Die Laufzeit sollte polynomiell in n, k und P sein. Auktion 14.5 versucht nicht, die Einkünfte des Verkäufers zu maximieren, sondern hat als Priorität die Räumung des Lagers. Wenn die Einkünfte des Verkäufers zu maximieren sind, P P dann wird man ein kleinstes i mit ij=1 mπ(j) ≥ k bestimmen, so dass pπ(i) · ij=1 mπ(j) größtmöglich ist. Wir stellen als Nächstes die Vickrey-Variante der Höchstpreis-Auktion vor. Auktion 14.7 Die Multi-Unit Vickrey Auktion (1) Die Bieter 1, . . . , n geben ihre geschlossenen Gebote (m1 , p1 ), . . . , (mn , pn ) ab. (2) pπ(1) , . . . , pπ(n) sei die absteigend sortierte Reihenfolge der gebotenen Einzelpreise pi . P Bestimme den maximalen Preis pl , so dass lj=1 mπ(j) ≥ k. Zuschläge erfolgen wie in Auktion 14.6. Wenn qj das j-höchste abgelehnte EinzelpreisP i Gebot ist, dann muss Bieter i, bei Zuschlag, den Betrag m j=1 qj bezahlen. Achtung: Die Nachfrage muss das Angebot übertreffen, sonst sind die qj nicht definiert! Aufgabe 108 Zeige, dass Auktion 14.7 ehrlich ist. Schließlich beschreiben wir eine offene Auktion, die man als eine Version der Vickrey-Auktion ansehen kann. Da die Bieter maximale Information erhalten, ist diese Version besonders attraktiv. Auktion 14.8 Die Multi-Unit Auktion mit aufsteigender Preisuhr (1) Der Auktionator gibt eine aufsteigende Folge von Preisen vor. 202 KAPITEL 14. AUKTIONEN (2) Wenn p < p∗ der gegenwärtige Preis ist und wenn Bieter i für mi (p) Exemplare bietet, dann erhält Bieter i X max{0, k − mj (p)} j,j6=i Exemplare zum Stückpreis p. (3) Die Auktion endet, wenn ein Preis p∗ erreicht wird, für den die Nachfrage das Angebot nicht übersteigt. Die nicht zwischenzeitlich vergebenen Exemplare werden zum Preis p∗ zugeteilt. 14.2 Multi-Unit Auktionen: Unbeschränkte Anzahl Wir betrachten das Versteigerungsproblem für digitale Güter und nehmen also an, dass das Gut in unbeschränkt vielen Exemplaren zur Verfügung steht. Desweiteren erlauben wir nur, dass ein Bieter ein einziges Exemplar erwerben kann; diese Einschränkung kann problemlos aufgehoben werden und dient nur der Vereinfachung der Notation. Definition 14.9 Eine Funktion p : Rn → Rn definiert einen Auktionsmechanismus: Für den Gebotsvektor g = (g1 , . . . , gn ) erhält der ite Bieter genau ein Exemplar zum Preis pi (g), wenn pi (g) ≤ gi . Unser Ziel ist der Entwurf ehrlicher Auktionsmechanismen, die die Einkünfte des Verkäufers maximieren. Wir beginnen mit der nicht-ehrlichen Einzelpreis-Auktion, die maximale Einkünfte erlöst, wenn Bieter ihre Bewertung als Gebot einreichen und wenn ein einziger Preis festzulegen ist. Auktion 14.10 Einzelpreis-Auktion (1) g sei der Gebotsvektor der Länge n. Es gelte o.B.d.A. g1 ≥ g2 ≥ · · · ≥ gn (2) Der Mechanismus bestimmt P(g) = max k · gk . k (3) Wenn P(g) = k · gk , dann erhalten genau die Bieter i mit gk ≤ gi ein Exemplar des Guts zum Preis gk . Aufgabe 109 Pn Zeige, dass stets P(g) = Ω( Pn Θ( gn i=1 i log2 n i=1 gi log2 n ) gilt. Zeige, dass es eine Familie g n von Gebotsvektoren mit P(g n ) = ) gibt. Allerdings erhalten die Bieter keinen Anreiz, ihre wirkliche Bewertung als Gebot einzureichen, die Einzelpreisauktion ist also nicht ehrlich. Wenn genau k Exemplare zu verkaufen sind, dann bietet sich die VCG-Auktion an: Verkaufe die k Exemplare an die k Höchstbieter zum Preis des k + 1ten Gebots. Zwar ist diese Auktion ehrlich, aber der Erfolg der Auktion ist an die Höhe des k + 1ten Gebots geknüpft. Wir suchen nach Alternativen und bestimmen zuerst Kriterien für ehrliche Auktionsmechanismen. Wann ist die Preisgabe der eigenen Bewertung für jeden Bieter eine dominante Strategie im nicht-kooperativen Auktionsspiel? 14.2. MULTI-UNIT AUKTIONEN: UNBESCHRÄNKTE ANZAHL 203 Definition 14.11 Ein Auktionsmechanismus heißt gebot-unabhängig, falls pi (g) für jedes i nicht vom Gebot gi abhängt. Lemma 14.12 Ein Auktionsmechanismus p ist genau dann ehrlich, wenn p gebot-unabhängig ist. Beweis: Wir nehmen zuerst an, dass p gebot-unabhängig ist. Bieter i kann den Preis pi (g) nicht beeinflussen, da pi (g) nicht von seinem Gebot abhängt. Wenn vi < pi (g), dann kann das Gut nicht mit Profit ersteigert werden und die Preisgabe gi = vi ist optimal. Wenn pi (g) ≤ vi , dann wird jedes Gebot gi ≥ pi (g) zur Ersteigerung mit Profit vi − pi (g) ≥ 0 führen, während ein niedrigeres Gebot nur riskiert, dass eine Zuteilung nicht erfolgt. In jedem Fall ist die Preisgabe der Bewertung vi also eine dominante Strategie. Schließlich nehmen wir an, dass p ein ehrlicher Auktionsmechanismus ist. Wir zeigen, dass pi (g) für keinen Gebotsvektor g von gi abhängt. Ist dies nicht der Fall, dann gibt es zwei Gebotsvektoren g 1 und g 2 , die sich nur in Komponente i unterscheiden, so dass pi (g 1 ) 6= pi (g 2 ). Es gelte o.B.d.A. pi (g 1 ) < pi (g 2 ) und Bieter i mit Bewertung gi2 steht sich besser, das Gebot gi1 statt seiner Bewertung gi2 abzugeben. Also ist p nicht ehrlich. Wie gut können ehrliche Auktionsmechanismen vom Standpunkt des Verkäufers sein? Wir vergleichen die Einkünfte ehrlicher Auktionsmechanismen mit den Einkünften des optimalen P (aber nicht ehrlichen) Einzelpreis-Mechanismus. Offensichtlich ist ik=1 gk eine obere Schranke für die maximal erzielbaren Einkünfte. Wir behaupten aber, dass sogar P(g) eine obere Schranke für gebot-unabhängige Mechanismen ist und diese Aussage wird auch gelten, wenn wir statt mit einer gebot-unabhängigen Preisfindung mit einer Verteilung über gebotunabhängigen Preissetzungen arbeiten. Allerdings müssen wir uns auf monotone Auktionen einschränken. Definition 14.13 Eine Auktion (n, p) heißt genau dann monoton, wenn p gebot-unabhängig ist (bzw. einer Verteilung über gebot-unabhängigen Preissetzungen entspricht) und wenn für jeden Vektor g = (g1 , . . . , gn ) von Geboten und für jede Fixierung der Münzwürfe von p (mit resultierendem deterministischen Mechanismus p0 ) gi ≤ gj ⇒ p0i (g) ≥ p0j (g) (14.2) gilt2 . In einer monotonen Auktion muss der Verkäufer einen gebot-unabhängigen Mechanismus verwenden. Der Verkäufer hat damit für die Preissetzung des iten Bieters keinen Zugriff auf das ite Gebot. In (14.2) wird gefordert, dass Preise höchstens ansteigen, wenn wir den Preis zu einem höheren Gebot mit dem Preis zu einem niedrigen Gebiet vergleichen: Dies ist nicht überraschend, da der Mechanismus in der Preisfestsetzung zu dem niedrigen Gebot das niedrige Gebot nicht mehr „sieht“ und deshalb zu einem höheren Preis tendieren wird. Wir zeigen jetzt die verschärfte obere Schranke für die Einkünfte des Verkäufers und betrachten dazu sogar die Möglichkeit, eine nicht-erfolgreiche Auktion (bei zu geringen Einkünften des Verkäufers) abzusagen. 2 Der Begriff der Monotonie ist unnötig scharf gewählt. Es genügt zu fordern, dass prob[ pi (g) ≥ α ] ≥ prob[ pj (g) ≥ α ] für jedes α gilt. 204 KAPITEL 14. AUKTIONEN Lemma 14.14 Eine monotone Auktion (n, p) sei gegeben, in der die Möglichkeit der Absage besteht. Der Auktionsmechanismus sei möglicherweise randomisiert. Dann sind die erwarteten Einkünfte des Verkäufers, unter der Bedingung der Nicht-Absage, durch P(g) nach oben beschränkt. Beweis: Wir fixieren die Gebote und nehmen o.B.d.A. an, dass g1 ≥ · · · ≥ gn gilt. Wir fixieren die Münzwürfe des randomisierten Mechanismus und erhalten einen deterministischen Mechanismus p, der gebot-unabhängig ist. Sei gk das kleinste Gebot, das den Zuschlag unter p erhält. Da p monoton ist, gilt pi (g) ≥ pj (g), wann immer gi ≤ gj . Also erhalten genau die Bieter mit Geboten mindestens gk den Zuschlag und zahlen einen Preis von höchstens gk . Somit betragen die Einkünfte höchstens k · gk ≤ P(g) und die erwarteten Einkünfte sind damit ebenfalls durch P(g) nach oben beschränkt. Wie gut sind ehrliche Mechanismen im Vergleich zur oberen Schranke P(g)? Beobachtung 14.1 Für jeden ehrlichen Auktionsmechanismus und für jedes α ≥ 1 gibt es einen Gebotsvektor g, so dass die erwarteten Einkünfte des Verkäufers durch 1 · P(g) α nach oben beschränkt sind. Dieses Ergebnis gilt sogar für randomisierte Auktionsmechanismen. Beweis: Wir fixieren eine Zahl α ≥ 1 und betrachten einen beliebigen randomisierten und gebot-unabhängigen Mechanismus p für zwei Bieter. Bestimme die kleinste reelle Zahl h ≥ 1, so dass 1 prob[ p1 (1) ≥ h ] ≤ . 2α Wir betrachten den Gebotsvektor g = (H, 1) mit dem sehr hohen Gebot H = 4α · h. Beachte, dass p1 (1) den Preis für Bieter 1 festsetzt, denn der Auktionsmechanismus ist gebotunabhängig. Wenn p1 (1) ≤ h, dann bezahlt der erste Bieter höchstens h und dies geschieht mit Wahr1 scheinlichkeit mindestens 1 − 2·α . Sollte hingegen p1 (1) ≥ h eintreten, dann ist höchstens H zu bezahlen und dieses Ereignis tritt mit der sehr kleinen Wahrscheinlichkeit von höchstens 1 2·α ein. Da vielleicht noch ein Beitrag von höchstens 1 durch das niedrige Gebot des zweiten Bieters erfolgt, sind die erwarteten Einkünfte durch 1 1 1 1 )+H · + 1 ≤ h + 2 · h + 1 ≤ 4 · h = · H = · P(g) h · (1 − 2·α 2·α α α nach oben beschränkt. Also können auch die Einkünfte des optimalen Einzelpreis-Mechanismus nicht approximativ durch ehrliche Auktionsmechanismen erbracht werden, und wir müssen die Erwartungen weiter herunterschrauben. Im besten Fall können ehrliche Auktionsmechanismen mithalten, wenn minimaler Wettbewerb besteht, das heißt, wenn mindestens zwei Bieter einen Zuschlag erhalten. Dann aber sind P2 (g) = max k · gk k≥2 die Einkünfte des Einzelpreis-Mechanismus, falls g1 ≥ g2 ≥ · · · ≥ gn . Wie gut sind deterministische Mechanismen im Vergleich zur oberen Schranke P2 (g)? Wir betrachten die Schwellenwert-Auktion als ein erstes Beispiel. 14.2. MULTI-UNIT AUKTIONEN: UNBESCHRÄNKTE ANZAHL 205 Auktion 14.15 Schwellenwert-Auktion (1) g sei der Gebotsvektor der Länge n. (2) Wiederhole für alle i ∈ {1, . . . , n}: Bestimme den optimalen Einzelpreis pi für alle Gebote mit Ausnahme von gi : Der Einzelpreis pi maximiert also die Einkünfte des Verkäufers, wenn der Verkäufer alle Gebote bis auf Gebot gi sieht. Kommentar: Offensichtlich ist p gebot-unabhängig. Die Schwellenwert-Auktion ergibt hervorragende Ergebnisse, wenn die Gebote durch unabhängige, gleichverteilte Zufallsvariablen erzeugt werden, denn man kann zeigen, dass die Einkünfte für wachsende Bieterzahl n gegen die Einkünfte des optimalen Einzelpreis Mechanismus konvergieren. Allerdings ist das worst-case Verhalten erbärmlich: n Wir nehmen an, dass G Bieter das Gebot G >> 1 und die verbleibenden Bieter das Gebot 1 abgeben. Die Schwellenwert-Auktion bestimmt zuerst 1 als Preis eines Bieters mit Gebot G: n − 1 mal abgegeben - Von den verbleibenden n − 1 Bietern wird das Gebot G nur G und ein Einzelpreis größer als 1 führt nur auf die Einkünfte n − G, während der Einzelpreis 1 auf die Einkünfte n − 1 führt. Schließlich wird G als Preis eines Bieters mit Gebot 1 bestimmt: - Von den verbleibenden n − 1 Bietern wird das Gebot G jetzt und führt auf die optimalen Einkünfte n. n G mal abgegeben n Also erhalten nur die G Bieter mit Gebot G den Zuschlag und müssen dafür den Preis 1 n entrichten. Den erzielten Einkünften von G stehen damit die Einkünfte n des optimalen Einzelpreis-Mechanismus gegenüber. Die Schwellenwert-Auktion liefert somit Einkünfte, die um den Faktor G niedriger als die optimalen Einkünfte sein können. Der Schwellenwert-Mechanismus versagt vom worst-case Standpunkt. Gibt es aber möglicherweise bessere deterministische Mechanismen? Wir beschränken uns auf symmetrische Auktionsmechanismen, also auf Mechanismen, deren Berechnungen nicht von der Reihenfolge der Gebote abhängen. Lemma 14.16 Ein deterministischer, symmetrischer Auktionsmechanismus p sei vorgegeben, wobei p zusätzlich noch gebot-unabhängig ist. Dann gibt es einen Gebotsvektor g der Länge n, so dass die Einkünfte durch n1 · P2 (g) nach oben beschränkt sind. Beweis: Wir betrachten nur Gebotsvektoren, deren Gebote entweder 1 oder n sind. Wir setzen E(j) als den Preis, den die Auktion für einen Bieter erzielt, wenn genau j der restlichen Gebote den Wert n besitzen. Fall 1: E(0) > 1. Dann erzielt die Auktion für den Gebotsvektor, der nur aus den Geboten 1 besteht, überhaupt keine Einkünfte, da kein einziger Zuschlag erfolgt, und die Behauptung folgt. Fall 2: E(0) ≤ 1. 206 KAPITEL 14. AUKTIONEN Wir wählen ein größtmögliches k mit E(k) ≤ 1 und betrachten einen Gebotsvektor mit genau k + 1 vielen n-Geboten. Da E(k + 1) > 1, erhalten Bieter mit Gebot 1 keinen Zuschlag. Für einen Bieter mit Gebot n, wird aber nur der Preis E(k) festgesetzt, denn der Mechanismus ist gebot-unabhängig und „sieht“ den Bieter in der Preisfestsetzung nicht. Also erwirtschaftet die Auktion damit Einkünfte von höchstens (k + 1) · E(k) ≤ k + 1. Für k = 0 ist P2 (g) = n, während die Auktion höchstens 1 = n1 · P2 (g) erwirtschaftet. Ansonsten ist k ≥ 1 und P2 (g) = (k + 1) · n. In diesem Fall sind die Einkünfte der Auktion höchstens k + 1 = n1 · P2 (g). Aufgabe 110 Ein beliebiger Auktionsmechanismus mit Wettbewerbsfaktor λ sei gegeben. Zeige, dass es dann einen symmetrischen Auktionsmechanismus mit Wettbewerbsfaktor λ gibt. (Hinweis: Verwende Randomisierung.) Glücklicherweise haben randomisierten Auktionsmechanismen Erfolg. Auktion 14.17 Einzelpreis-Auktion für eine zufällige Zweiteilung (1) Zerlege die Menge der n Bieter zufällig in zwei Teilmengen B1 und B2 . (2) Wende den Einzelpreis-Mechanismus sowohl auf die Gebote zu B1 wie auch auf die Gebote zu B2 an. Die erzielten Preise seien p1 und p2 . (3) Ein Bieter in B1 (bzw. B2 ) erhält den Zuschlag, falls sein Gebot nicht kleiner als p2 (bzw. p1 ) ist. Kommentar: Die Auktion ist gebot-unabhängig, da die Preissetzung für einen Bieter nicht von dem Gebot des Bieters abhängt. Es kann gezeigt werden, dass die Einkünfte von Auktion 14.17 asymptotisch mit P2 (g) übereinstimmen [GHKW]. Wir verzichten auf den Beweis, denn Auktion 14.17 ist leider nicht absagbar und wir werden das Konzept der Absagbarkeit für verallgemeinerte Auktionen später benötigen. Aufgabe 111 Konstruiere einen Gebotsvektor g, so dass Auktion 14.17 Einkünfte von höchstens 1 2 · P2 (g) erzielt. Offenes Problem 5 Bestimme den Wettbewerbsfaktor von Auktion 14.17 möglichst genau, da bisher nur ein relativ großer (aber beschränkter) Wettwerbsfaktor nachgewiesen wurde. Wenn es anderseits eine Konstante H gibt, so dass alle Gebote mindestens 1 und höchstens H sind, dann konvergiert der Wettbewerbsfaktor für wachsende Bieterzahl n sogar gegen 1 [GHKW]. Definition 14.18 Ein Auktionsmechanismus ist absagbar, wenn der Mechanismus ehrlich ist und für jede Konstante C ehrlich bleibt, wenn die Auktion bei Einkünften von höchstens C abgesagt wird. Um zu zeigen, dass Auktion 14.17 nicht absagbar ist, betrachten wir wieder einen Gebotsvektor mit einem dominanten Bieter. Für den Gebotsvektor g = (1, . . . , 1, n) wird der Preis n für die Klasse B festgesetzt, die den Hochgebot-Bieter enthält, während der Preis 1 für die andere Klasse ermittelt wird. Diese Preissetzung führt dazu, dass nur die Bieter der Klasse B den Zuschlag erhalten und die erwarteten Einkünfte n2 werden erwirtschaftet, da die Bieter der Klasse B jeweils den Preis 1 bezahlen müssen. Für den Hochgebot-Bieter stellt sich die Situation wie folgt dar, wenn wir die Auktion bei Einkünften von höchstens 34 · n absagen: 14.2. MULTI-UNIT AUKTIONEN: UNBESCHRÄNKTE ANZAHL 207 - Bietet er n, dann erhält er keinen Zuschlag, da die Auktion dann hochwahrscheinlich abgesagt wird. Seine Auszahlung ist also Null. - Bietet er 1, wird für jede Klasse der Preis 1 festgesetzt und die Auktion ist erfolgreich mit den Einkünften n. Seine Auszahlung ist jetzt n − 1. Es lohnt sich somit, die eigene Bewertung nicht preiszugeben und die Auktion ist nicht absagbar. Aber es gibt absagbare Auktionsmechanismen, die stets hohe Einkünfte erwirtschaften. Auktion 14.19 Einzelpreis-Auktion für eine zufällige Zweiteilung mit Kostenteilung (1) Zerlege die Menge der n Bieter zufällig in zwei Teilmengen B1 und B2 . (2) Wende den Einzelpreis-Mechanismus sowohl auf die Gebote zu B1 wie auch auf die Gebote zu B2 an. Die erzielten Preise seien p1 und p2 . (3) Führe Kostenteilung für jede Klasse Bi durch: Wenn die andere Klasse die Einkünfte E über den Einzelpreis-Mechanismus erwirtschaftet, dann bestimme das größte k, so dass mindestens k Bieter aus Bi ein Gebot von mindestens k1 · E abgegeben haben. Gibt ein solches k nicht, dann wird kein Bieter aus Bi berücksichtigt. Ansonsten erhalten die k Höchstbieter den Zuschlag für jeweils den Preis k1 · E. Kommentar: Wenn die Einkünfte zu beiden Zerlegungen verschieden sind, dann wird kein Bieter aus der Klasse mit den geringeren Einkünften berücksichtigt. Tatsächlich wird die Eigenschaft verschiedener Einkünfte für die Absagbarkeit benötigt: Wiederhole deshalb die Schritte (1)-(3) solange, bis verschiedene Einkünfte erzielt werden. Wir analysieren zuerst die Höhe der Einkünfte von Auktion 14.19 und weisen dann Absagbarkeit nach. Die Auktion erbringt genau die Einkünfte P(g 0 ) für den Gebotsvektor g 0 der verlierenden Bieterklasse und wir haben damit schon starke Indizien für eine Vergleichbarkeit mit P2 (g). Beachte aber, dass wir, im Vergleich mit Auktion 14.17 im Allgemeinen freiwillig auf die Hälfte der Einkünfte verzichten. Satz 14.20 Die erwarteten Einkünfte von Auktion 14.19 betragen mindestens 1 4 · P2 (g) Beweis: Das Maximum von P2 (g) werde für k ≥ 2 Bieter mit einem Einzelpreis p erzielt. Diese k Bieter werden in der zufälligen Zerlegung in k 0 bzw. k 00 Bieter aufgeteilt. Wenn P i (g i ) der optimale Einzelpreis für die Klasse Bi ist, dann ist offenbar P 1 (g 1 ) ≥ p · k 0 und P 2 (g 2 ) ≥ p · k 00 . Also erzielen wir mindestens die Einkünfte p · min{k 0 , k 00 } = min{k 0 , k 00 } · P2 (g). k 208 KAPITEL 14. AUKTIONEN Um die erwarteten Einkünfte zu analysieren, müssen wir den Erwartungswert von min{k 0 , k 00 } bestimmen. Es ist k−1 X ! k E[ min{k , k } ] = min{i, k − i} · · 2−k i i=1 0 00 Aufgabe 112 k Pk−1 k−1 Zeige, dass min{i, k − i} · ki · 2−k = k2 − bk/2c · 2k . i=1 Nach Division durch k nimmt dieser Ausdruck sein Minimum 1/4 für k = 2 und k = 3 an. Die Behauptung folgt aus der Aufgabe. Beachte aber auch, dass der Wettbewerbsfaktor gegen 2 konvergiert, wenn k wächst. Der Wettbewerbsfaktor 4 wird auch fast erreicht. Dazu betrachten wir Gebotsvektoren mit zwei sehr großen Geboten H und H + ε und den restlichen, vernachläßigbar kleinen Geboten. Wenn die beiden hohen Gebote nicht getrennt werden, dann sind nur die geringen Einkünfte der Verliererklasse zu erbringen und die Einkünfte sind in diesem Fall vernachläßigbar gering. Werden die beiden hohen Gebote (mit Wahrscheinlichkeit 12 ) getrennt, dann betragen die Einkünfte der Verliererklasse H und die erwarteten Einkünfte betragen somit ungefähr 21 · H. Da P2 (g) ≈ 2 · H wird der Wettbewerbsfaktor 4 also tatsächlich fast erreicht. Satz 14.21 Auktion 14.19 ist absagbar. Beweis: Auktion 14.19 ist offensichtlich ehrlich. Also ist die Preisgabe der eigenen Bewertung eine dominante Strategie, wenn nicht abgesagt wird. Wir müssen somit sicherstellen, dass die Offenlegung der Bewertung auch bei Absage eine dominante Strategie bleibt. Dazu ist zu zeigen, dass eine Gebotsänderung, die zu einer erfolgreichen Auktion führt, keine positive Auszahlung impliziert. Wir fixieren die Zufallsbits von Auktion 14.19 und einen Bieter i, der seine Bewertung offenlegt. O.B.d.A. gehöre i zur Klasse B1 . Fall 1: Bieter i erhält den Zuschlag bevor über eine Absage entschieden wird. Also sind die Einkünfte von B1 höher als die Einkünfte von B2 . Eine Erhöhung des Gebots von Bieter i verändert die Einkünfte des Verkäufers nicht und die Auktion bleibt damit erfolglos. Eine Erniedrigung kann nur dazu führen, dass die Einkünfte des Verkäufers weiter sinken und die Auktion bleibt weiterhin erfolglos. Fall 2: Bieter i erhält keinen Zuschlag bevor über eine Absage entschieden wird. Wenn Bieter i sein Gebot erhöht, dann kann dies nicht zu einer positiven Auszahlung führen: Erhält er den Zuschlag, dann ist seine Auszahlung negativ, erhält er keinen Zuschlag, dann ist die Situation für ihn unverändert. Offenes Problem 6 In [FGHK] wird unter bestimmten Einschränkungen gezeigt, dass randomisierte ehrliche Auktionsmechanismen einen kleineren Wettbewerbsfaktor als 2 nicht erreichen können. Gibt es randomisierte ehrliche Auktionsmechanismen mit Wettbewerbsfaktor kleiner als 4? Gibt es randomisierte absagbare Auktionsmechanismen mit Wettbewerbsfaktor kleiner als 4? Wir haben bisher angenommen, dass der Verkäufer nur die einmaligen Kosten der Herstellung des Guts durch den Erlös der Auktion amortisieren muss. Was aber passiert, wenn die Bieter in Märkte zusammengefasst werden und die Lieferung an einen Markt zu nicht vernachläßigbaren Kosten führt? 14.2. MULTI-UNIT AUKTIONEN: UNBESCHRÄNKTE ANZAHL 209 Beispiel 14.1 Pay-Per-View in segmentierten Märkten. Eine Pay-Per-View Firma bedient verschiedene Märkte M1 , . . . , Mk und möchte für jeden Markt einen Preis festsetzen. Wir nehmen an, dass im Markt Mi die Fixkosten Ki entstehen, wenn mindestens ein Bieter des Markts beliefert wird und suchen nach einer Preissetzung und einer Marktauswahl, so dass die Einkünfte, also die Differenz zwischen der Summe der bezahlten Preise und der Summe der Fixkosten über alle bedienten Märkte, maximiert werden. Der Preissetzung soll wiederum ein ehrlicher Mechanismus zugrunde liegen. Beispiel 14.2 Preisfindung für Multicasts. Hier ist ein Multicast-Baum und ein System von Preisen zu bestimmen, so dass die Differenz zwischen der Summe der bezahlten Preise und den Kosten des Multicast-Baums möglichst groß ist. Die Knoten entsprechen den (disjunkten) Mengen der Kunden, den Märkten. Alle Beispiele werden von dem Begriff der „verallgemeinerten Auktion“ erfasst. Definition 14.22 Eine verallgemeinerte Auktion wird durch den Vektor (n, M1 , . . . , Mm , c, p) beschrieben. (1) Die Märkte M1 , . . . , Mm bilden eine Zerlegung der Menge der n Bieter. Die Funktion c : {0, 1}m → R≥0 beschreibt die dem Verkäufer entstehenden Kosten: Für r ∈ {0, 1}m gelte ri = 1 genau dann, wenn mindestens ein zu Si gehöriger Bieter ein Exemplar des versteigerten Guts erhält. Also stimmen die dem Verkäufer entstehenden Kosten mit c(r) überein. (2) Der Auktionsmechanismus besteht einerseits aus einer Preissetzung p : Rn → Rn , die den Preis für Bieter i bei Geboten g = (g1 , . . . , gn ) als pi (g) definiert. Der zweite Teil des Mechanismus bestimmt eine Marktzuteilung r ∈ {0, 1}m , so dass die Einkünfte m X j=1 rj · X pi (g) i,i∈Mj und pi (g)≤gi des Verkäufers maximiert werden. Bieter i erhält also genau dann eine Kopie des Guts, wenn sein Markt bedient wird und sein Gebot gi mindestens so hoch wie der Preis pi (g) ist. Wir sagen, dass der Mechanismus gebot-unabhängig ist, wenn pi für jedes i nicht von den Geboten von Bieter i abhängt. Wir erhalten das Basismodell einer Auktion bei unbeschränktem Vorrat als einen Spezialfall einer verallgemeinerten Auktion für m = 1. In der Preisfindung für Multicasts entsprechen die Märkte den Knoten des Netzwerks, und die Funktion c(r) beschreibt die Kosten eines Multicast-Baums, der genau die Knoten i mit ri = 1 besitzt. Wir können jetzt ausnutzen, dass Auktion 14.19 absagbar ist, um einen ehrlichen Auktionsmechanismus für verallgemeinerte Auktionen zu erhalten. Auktion 14.23 Ein ehrlicher Mechanismus für verallgemeinerte Auktionen 210 KAPITEL 14. AUKTIONEN (1) Wende Auktion 14.19 auf jeden Markt an. Die Einkünfte für den jten Markt mögen Ej betragen. (2) Bestimme eine optimale Marktzuteilung r, d.h. es gelte m X rj · Ej − c(r) ≥ j=1 m X sj · Ej − c(s) j=1 für jede Marktzuteilung s ∈ {0, 1}m . (3) Sage die Auktion in jedem Marktsegment Mj mit rj = 0 ab. In jedem anderen Marktsegment ist die Auktion erfolgreich. Damit erhalten wir also insbesondere einen ehrlichen Auktionsmechanismus für das MulticastProblem. Im Vergleich mit Beispiel ?? versuchen wir diesmal allerdings nicht die Kosten weitgehendst auf die Kunden umzulegen, sondern verfolgen den Ansatz der Profitmaximierung des Verkäufers (unter Verwendung ehrlicher Mechanismen). Beachte, dass sich der Wettbewerbsfaktor 4 nicht auf Auktion 14.23 vererbt, da jetzt die Kosten der Lieferung in die Berechnung der Einkünfte miteinbezogen werden. Aufgabe 113 Implementiere Schritt (2) durch einen verteilten Algorithmus. Hinweis: Betrachte den verteilten Algorithmus aus Beispiel ??. 14.3 Kombinatorische Auktionen Wir nehmen wieder an, dass n Bieter an einer geschlossenen Auktion teilnehmen, in der eine Menge U von m Gütern zur Versteigerung anstehen3 . Ein Bieter besitzt eine nur ihm bekannte Bewertungsfunktion b : P(U ) → R, wobei der Bieter bereit ist, den Betrag b(S) zu zahlen, wenn er den Zuschlag für die Teilmenge S ⊆ U erhält. Es ist also möglich, Gebote für alle Teilmengen von Objekten abzugeben und wir sprechen deshalb von kombinatorischen Auktionen. Beispiele sinnvoller Anwendungen beinhalten unter Anderen die Ersteigerung von - Rechten zu identischen Frequenzbändern in geographisch benachbarten Gebieten, bzw. von Rechten zu verschiedenen Frequenzbändern in einem geographischen Gebiet, - fehlenden Stücken einer Sammlung, wobei aber nur bestimmte Kombinationen von Stücken von Interesse sind. Die Auktion verläuft in einer einzigen Runde, in der die Bieter ihre Bewertung an den Auktionator weitergeben. Der Auktionator wird nach Einsicht aller Gebote eine Zuteilung, also eine Zerlegung der Gütermenge in disjunkte Teilmengen und eine Zuordnung an die Bieter, berechnen, so dass eine vorgegebene Zielfunktion approximiert oder, besser noch, optimiert wird. Im Verkäuferproblem zum Beispiel wird versucht, die Einkünfte des Verkäufers zu maximieren, also eine disjunkte Zerlegung X1 ∪ X2 ∪ · · · ∪ Xn = U zu bestimmen, so dass der 3 Wir nehmen in diesem Abschnitt stets an, dass nur ein Exemplar eines Guts zur Verfügung steht. Stehen mehrere Exemplare zur Verfügung, dann spricht man von einer kombinatorischen Mehrgüter-Auktion. 14.3. KOMBINATORISCHE AUKTIONEN 211 insgesamt gezahlte Betrag ni=1 gi (Xi ) maximal ist. (gi (x) ist das Gebot von Bieter i für Xi .) Weitere Optimierungsprobleme treten auf, wenn ehrliche Auktionsmechanismen angewandt werden. Wir werden die folgenden drei grundlegenden Probleme in den nächsten Abschnitten untersuchen: P - Gebotformulierung: Da Gebote für alle 2m Teilmengen abgegeben werden können, muss dem Bieter ein Formalismus, also eine „Bietersprache“ zur Verfügung gestellt werden, die es ihm erlaubt, seine verschiedenen Gebote kompakt zu formulieren. - Zuteilung: Der Auktionator muss versuchen, eine optimale oder zumindest fast-optimale Zuteilung für die jeweilige Zielfunktion zu bestimmen. Dies führt im Allgemeinen auf sehr komplexe algorithmische Fragestellungen. - Konstruktion des Mechanismus: Welcher Mechanismus ist anzuwenden? Gibt es insbesondere ehrliche Mechanismen, selbst wenn die Zielfunktion nur approximativ berechenbar ist? 14.3.1 Gebotformulierung Wir führen die Bietersprache OR∗ ein, die es dem Bieter in einigen wichtigen Fällen erlaubt, Gebote mit vernünftigem Aufwand zu formulieren. Hierzu fordern wir, dass die Bewertung eines jeden Bieters die beiden folgenden Eigenschaften besitzt: - Für je zwei Teilmengen S ⊆ T gilt b(S) ≤ b(T ). - b(∅) = 0. In OR∗ kann Bieter i seine eigene Menge Ui von neuen (Phantom-)Objekten bestimmen. Seine Gebote sind (beliebig viele) Paare (S1 , p1 ), . . . , (Sk , pk ) mit S1 , . . . , Sk ⊆ U ∪Ui und dem Maximalpreis pj für Obermengen T von Sj . Der Bieter muss sich mit Abgabe dieser Gebote insbesondere bereit erklären, die Summe seiner Gebote für jedes Teilsystem disjunkter Gebote zu zahlen. Wird eine Menge S auf mehr als eine Weise als Vereinigung disjunkter Gebote dargestellt, dann muss der Bieter bereit sein, den Höchstpreis unter den Darstellungen zu zahlen. Definition 14.24 Wir sagen, dass die Gebote (S1 , p1 ), . . . , (Sk , pk ) die Bewertung b definieren, wenn für jede Teilmenge S ⊆ U b(S) = max Si1 ,...,Sir ⊆S,Si1 ∩···∩Sir =∅ pi1 + · · · + pir (14.3) gilt. Werden Phantom-Objekte aus U 0 benutzt, dann benutzt man (14.3) zur Definition von b(S 0 ) für Teilmengen S 0 ⊆ U ∪ U 0 und setzt b(S) = maxS 0 ⊆S∪U 0 b(S 0 ). Die „Phantom-Objekte“ in Ui erlauben die Formulierung von Bedingungen des Bieters: Will der Bieter entweder die Teilmenge S1 (mit Maximalpreis p1 ) oder die Teilmenge S2 (mit Maximalpreis p2 ) ersteigern, dann formuliert er die beiden Gebote (S1 ∪ {g}, p1 ) und (S2 ∪ {g}, p2 ) mit einem Phantom-Objekt g. Wir werden gleich sehen, dass ohne Phantom-Objekte nur Bewertungen b mit b(S∪T ) ≥ b(S)+ b(T ) (für disjunkte Mengen S und T ) definiert werden können. Wenn S = {1} und T = {10 } 212 KAPITEL 14. AUKTIONEN für identische Waren 1 und 10 gilt, dann wird man nach dem Sättigungsprinzip erwarten, dass der Erhalt einer ersten Kopie den Nutzen einer zweiten Kopie schmälert und deshalb wird man in diesem Szenario eher b(S ∪ T ) < b(S) + b(T ) annehmen. Die ohne PhantomObjekte definierten Bewertungen sind also stark eingeschränkt. Mit Phantom-Objekten kann andererseits jede Bewertung definiert werden. Beobachtung 14.2 (a) Eine Bewertung b ist genau dann ohne Phantom-Objekte definierbar, wenn b(S ∪ T ) ≥ b(S) + b(T ) für alle Paare disjunkter Teilmengen S und T gilt. (b) Jede Bewertung kann in OR∗ definiert werden. Beweis (a) ⇒ Wenn die Bewertung b durch Gebote ohne Phantom-Objekte definiert wird, dann folgt aus Definition 14.24 für jedes Paar disjunkter Teilmengen S und T , dass b(S ∪T ) ≥ b(S) + b(T ). ⇐ Für jede Bewertung b gilt b(S) = b(S) + b(∅) ≤ max P,R⊆S,P ∩R=∅ b(P ) + b(R). Wenn zusätzlich b(X ∪ Y ) ≥ b(X) + b(Y ) für alle Paare disjunkter Teilmengen X und Y gilt, dann erhalten wir max P,R⊆S,P ∩R=∅ b(P ) + b(R) ≤ max P,R⊆S,P ∩R=∅ b(P ∪ R) ≤ b(S) und als Konsequenz folgt b(S) = maxP,R⊆S,P ∩R=∅ b(P ) + b(R). Also ist die Bewertung b ohne Phantom-Objekte definierbar. (b) Sei b eine beliebige Bewertung. Ein Bieter wählt ein einziges Phantom-Objekt g und formuliert die Gebote (S ∪ {g}, b(S)). Offensichtlich definieren diese Gebote die Bewertung b, denn S ∪ {g} und ∅ ist das einzige Paar disjunkter Teilmengen von S ∪ {g}. Zwar ist OR∗ stark eingeschränkt, doch lassen sich einfache Bewertungen mit wenigen Einzelgeboten formulieren. Beispiel 14.3 Die additive Bewertung Sei p = (p1 , . . . , pm ) ein Preisvektor für die m Einzelobjekte. Die additive Bewertung b mit P b(S) = i∈S pi wird durch die m Gebote ({1}, p1 ), . . . , ({m}, pm ) definiert. Wenn der Bieter nur bereit ist, für k Waren zu bieten, dann gelingt dies über die k · m Gebote ({1, g1 }, p1 ), . . . , ({1, gk }, p1 ), . . . , ({m, g1 }, pm ), . . . , ({m, gk }, pm ). Beispiel 14.4 Identische Waren Wir setzen voraus, dass U aus m „Kopien“ derselben Ware besteht. (1) Abnehmender Wert: In vielen Fällen ist anzunehmen, dass jedes weitere Objekt einen geringeren Wert darstellt. Es sei also p1 ≥ p2 · · · ≥ pm und der Bieter sei bereit, p1 + · · · + pi für i Kopien zu zahlen. Dann gelingt dies mit den m2 Geboten ({1, g1 }, p1 ), . . . , ({m, g1 }, p1 ), . . . , ({1, gm }, pm ), . . . , ({m, gm }, pm ). 14.3. KOMBINATORISCHE AUKTIONEN 213 (2) Beschränktes Budget: Der Bieter sei an höchstens k Kopien interessiert, für die er jeweils den Höchstbetrag von p bereit ist zu zahlen. Dies gelingt über die Gebote aus (1), wenn wir nur die Phantom-Objekte g1 , . . . , gk benutzen und p1 = · · · = pk = p setzen. (3) Mindestabnahme: Der Bieter sei nur daran interessiert, mindestens k Objekte zu ersteigern. Die entsprechende Bewertung kann nicht über Gebote für weniger als k Objekte definiert werden, da hier nur der Preis 0 geboten wird. Dann müssen aber Gebote für alle Mengen von k Objekten abgegeben werden und das bedeutet eine Definition mit m ∗ k Einzelgeboten: Eine signifikante Schwäche von OR . 14.3.2 Zuteilung im Verkäuferproblem Wir untersuchen zuerst die Komplexität des Verkäuferproblems, also die Komplexität der Bestimmung einer optimalen Zuteilung, wenn die Einkünfte des Verkäufers zu maximieren sind. Im gewichteten Independent Set Problem ist ein ungerichteter Graph gegeben, dessen Knoten mit Gewichten versehen sind, und es wird nach einer schwersten unabhängigen Menge gefragt. Zum Beispiel wird in der Vorlesung „Approximationsalgorithmen“ gezeigt, dass es für keine Konstante ε > 0 effiziente Approximationsalgorithmen gibt, die für alle Graphen mit n Knoten eine unabhängige Menge der Größe mindestens Ω(opt/n1−ε ) finden. (Diese Aussage gilt, wenn die Annahme P 6= N P vorausgesetzt wird.) Das gewichtete Independent Set Problem ist also sehr schwer zu approximieren. Satz 14.25 Wenn A ein effizienter Algorithmus ist, der das Verkäuferproblem innerhalb des Faktors λ approximiert, dann gibt es einen effizienten Algorithmus A0 , der das gewichtete Independent Set Problem innerhalb des Faktors λ approximiert. Wenn P 6= N P , dann ist eine effiziente Approximation des Verkäuferproblems innerhalb des Faktors O(n1−ε ) ausgeschlossen! Beweis: Sei A ein effizienter Algorithmus für das Verkäuferproblem. Wir bilden A zu einem Algorithmus für das gewichtete Independent Set Problem wie folgt um. Sei G eine Eingabe für das gewichtete Independent Set Problem. Wir definieren eine zugeordnete kombinatorische Auktion, indem wir die Kanten von G als Güter und die Knoten von G = (V, E) als Bieter auffassen. Wenn Knoten v das Gewicht b(v) besitzt und Endpunkt der Kanten e1 , . . . , er ist, dann wird Bieter v für die Menge {e1 , . . . , er } das Gebot b(v) abgeben. Wir haben damit sogar eine recht einfache Instanz des Verkäuferproblems erzeugt: Jeder Bieter gibt genau ein Gebot ab, und jedes Gut, also jede Kante, hat genau zwei Bieter, nämlich die beiden Endpunkte der Kante. Damit gilt Eine Knotenmenge I ist genau dann eine unabhängige Menge, wenn die Kantenmengen für jeden Knoten aus I disjunkt sind, d.h. wenn I eine Zuteilung definiert. Die Einkünfte der Zuteilung stimmen mit dem Gewicht von I überein. Da sich unabhängige Mengen und Zuteilungen eineindeutig entsprechen, folgt die Behauptung. Wir werden im Folgenden trotzdem Heuristiken entwerfen, da die in der Praxis auftretenden Instanzen nicht notwendigerweise worst-case Instanzen sind. Aber der Verkäufer muss dann im worst-case hohe Verluste in Kauf nehmen. 214 KAPITEL 14. AUKTIONEN Unsere Heuristik approximiert das Zuteilungsproblem, wenn Gebote in der OR∗ Sprache abgegeben wurden. Zuerst ist zu beachten, dass wir nicht zwischen wirklichen Objekten und Phantom-Objekten unterscheiden müssen, wenn wir alle Phantom-Objekte ebenfalls als Waren auffassen. Die Zuteilung muss die Waren disjunkt in Gebote mit insgesamt maximalem Profit aufteilen und die Urheberschaft der Gebote ist unerheblich. Seien also (S1 , p1 ), . . . , (Sk , pk ) sämtliche abgegebene Gebote. Wir formulieren das Zuteilungsproblem als ein lineares Programm mit den 0-1 Variablen x1 , . . . , xk . Die Indikatorvariable xi drückt aus, ob Gebot (Si , pi ) gewinnt und die Bedingungen fordern, dass jede Ware nur einmal vergeben wird. max k X p i · xi , so dass x1 , . . . , xk ∈ {0, 1} und i=1 X xi ≤ 1 für jede Ware j. i:j∈Si Da die 0-1 Programmierung nicht effizient gelöst werden kann, gehen wir zur Relaxation über und ersetzen die 0-1 Bedingungen xi ∈ {0, 1} durch die linearen Bedingungen 0 ≤ xi ≤ 1. Tatsächlich genügt die Forderung xi ≥ 0 aufgrund der Nebenbedingungen und wir erhalten das lineare Programm max k X pi · xi , so dass x1 , . . . , xk ≥ 0 und (14.4) i=1 X xi ≤ 1 für jede Ware j. i:j∈Si Das lineare Programm (14.4) ist effizient lösbar. Allerdings erlauben wir jetzt fraktionale Zuteilungen, denn ein Wert xi = 21 besagt zum Beispiel, dass das Gebot (Si , pi ) den Zuschlag für jeweils die Hälfte einer jeden Ware in Si erhält. Wie können wir ganzzahlige Zuteilungen aus einer fraktionalen Lösung erhalten? Wir betrachten das duale Programm. min m X yj , so dass y1 , . . . , ym ≥ 0 und (14.5) j=1 X yj ≥ pi für jedes Gebot (Si , pi ). j:j∈Si Für optimale Lösungen x = (x1 , . . . , xk ) des primalen Programms (14.4) und y = (y1 , . . . , ym ) P P des dualen Programms (14.5) gilt ki=1 pi · xi = m j=1 yj nach dem Dualitätssatz der linearen Programmierung. Mit anderen Worten, das duale Programm stellt den (fraktionalen) Gesamterlös dar, in dem es den einzelnen Waren „faire Einzelpreise“ zuordnet: Für jedes Gebot (Si , pi ) übertrifft die Summe der Preise zu Waren in Si das Gebot pi , aber der Gesamtpreis aller Waren ist unter diesen Bedingungen zu minimieren. Die beiden optimalen Lösungen hängen über die komplementären Slackness-Bedingungen zusammen: Lemma 14.26 x = (x1 , . . . , xk ) (bzw. y = (y1 , . . . , ym )) sei die optimale Lösung des primalen P Programms (14.4) (bzw. des dualen Programms (14.5)). Dann gilt pi = j,j∈Si yj für jedes P Gebot (Si , pi ) mit xi > 0 und pi ≤ j,j∈Si yj für jedes Gebot xi mit xi = 0. Fazit: Wenn Güter unbeschränkt teilbar wären, oder in anderen Worten, wenn das primale Programm die Zuteilung bestimmen würde, dann bietet ein gewinnendes Gebot (Si , pi ) genau die Summe der Einzelpreise. 14.3. KOMBINATORISCHE AUKTIONEN 215 Beweis: Aus den Bedingungen des dualen Programms folgt, dass das Gebot (Si , pi ) stets unterhalb des Gesamtpreises von Si liegt und damit folgt die Aussage über Gebote xi mit xi = 0. Aus der komplementären Slackness folgt für ein Gebot (Si , pi ) mit xi > 0, dass die zugehörige P duale Bedingung j,j∈Si yj ≥ pi exakt erfüllt wird. Unser Vorgehen zur Bestimmung einer ganzzahligen Zuteilung ist heuristisch: Wir lösen die P Programme 14.4) und (14.5) und interpretieren xi , bzw. den Bruch pi / j,j∈Si yj als „Wahrscheinlichkeit“, dass Gebot (Si , pi ) den Zuschlag erhält. Eine lokale Suche versucht, die Heuristik sukzessive zu verbessern. Algorithmus 14.27 Die Berechnung einer Zuteilung. (1) Bestimme optimale Lösungen x und y der Programme (14.4) und (14.5). Kommentar: Tatsächlich genügen bereits approximative Lösungen [ZN]. (2) Ordne die Gebote nach absteigendem x-Wert. Ordne die Gebote i mit xi = 0 nach P absteigendem Bruch pi / j,j∈Si yj . Kommentar: Wir benutzen hier Lemma 14.26 zur Motivation: Je größer pi / umso größer die „Chance“, dass Gebot i gewinnt. P j,j∈Si yj , (3) Setze Gewinner = ∅ und Zugeteilt = ∅. Durchlaufe die geordnete Folge der Gebote: (Si , pi ) sei das betrachtete Gebot. Wenn Zugeteilt ∩Si = ∅, dann setze Zugeteilt = Zugeteilt ∪Si und Gewinner = Gewinner ∪{i}. (4) Führe eine lokale Suche durch, indem ein beliebiges Gebot nach „vorn“ geholt wird. Wenn Schritt (3) eine bessere Zuteilung für die neue Folge berechnet, dann setze mit der neuen Folge fort. Algorithmus 14.27 wird in [ZN] experimentell untersucht. Abweichungen von durchschnittlich nur 0.5% vom Optimum werden beobachtet, wobei allerdings auch Problemverteilungen mit Abweichungen von 4% sowie Einzelprobleme mit einer Abweichung von 14% gefunden werden. Laufzeit und Approximationsverhalten werden als im Wesentlichen zufriedenstellend bezeichnet. 14.3.3 Zuteilung bei ehrlichen Auktionen Wir beschreiben den verallgemeinerten Vickrey Auktionsmechanismus, eine Verallgemeinerung der Zweitpreis-Auktion. Auktion 14.28 Die verallgemeinerte Vickrey Auktion (1) Bestimme eine für das Verkäuferproblem optimale Zuteilung Z. Desweiteren bestimme für jedes j (1 ≤ j ≤ n) eine ebenfalls für das Verkäuferproblem optimale Zuteilung Zj , wobei diesmal Bieter j mit seinen Geboten ausgeschlossen wird. (2) Wiederhole für jeden Bieter i: (2a) Bieter i erhält den Zuschlag für die durch Z definierte Güterkombination. 216 KAPITEL 14. AUKTIONEN (2b) Bestimme den von Bieter i in Z zu bezahlenden imaginären Preis pi (Z) sowie für jedes j (1 ≤ j ≤ n) die zu zahlenden imaginären Preise pi (Zj ) in Zj . (2c) Bieter i bezahlt den Preis qi (Z) = X pj (Zi ) − j:j6=i X pj (Z). j:j6=i Kommentar: Sei bi (Z) die Bewertung und gi (Z) das Gebot von Bieter i für die in Z erhaltene Menge von Gütern. Bieter i wird versuchen, seine Auszahlung bi (Z) − qi (Z) = P P bi (Z) − j:j6=i pj (Zi ) + j:j6=i pj (Z) zu maximieren. Da er aber nur den Term V (Z) = P bi (Z) + j:j6=i pj (Z) beeinflussen kann, muss er somit versuchen, V (Z) zu maximieren. Wenn Bieter i ehrlich ist, dann ist bi (Z) = gi (Z) = pi (Z) und V (Z) ist genau der maximale Verkaufserlös für die Gebote g1 , . . . , gi−1 , bi , gi+1 , . . . , gn . Ist Bieter i hingegen unehrlich gewesen, dann maximiert Z den maximalen Verkaufserlös nur für die Gebote g1 , . . . , gi−1 , gi , gi+1 , . . . , gn und Z ist möglicherweise suboptimal für die Gebote g1 , . . . , gi−1 , bi , gi+1 , . . . , gn . Der Bieter muss eine geringere Auszahlung befürchten und eine größere Auszahlung ist ausgeschlossen. Satz 14.29 Die verallgemeinerte Vickrey Auktion 14.28 ist ehrlich. Beweis: Wir haben die Argumentation bereits im Kommentar der Auktion geführt. Bemerkung 14.1 Wenn nur ein einziges Gut zu versteigern ist, dann gilt pj (Z) = 0 für die Verlierer j der Auktion. Wenn Bieter i verliert, dann ändert seine Herausnahme nichts an dem Auktionsergebnis und dementsprechend hat Bieter i nichts zu bezahlen. Gewinnt P Bieter i, dann muss er den Betrag j=1,j6=i pj (Zi ), also den Betrag des zweithöchsten Gebots bezahlen. Folglich ist die verallgemeinerte Vickrey Auktion tatsächlich eine Verallgemeinerung der Zweitpreis-Auktion. Leider ist die verallgemeinerte Vickrey Auktion wegen Satz 14.25 nicht effizient durchführbar. Wir versuchen deshalb mit Approximationsalgorithmen zu arbeiten und müssen uns dann aber mit zwei Problemen auseinandersetzen: - Eine möglichst gute Approximation ist zu erzielen. - Der Auktionsmechanismus, nach Approximation, sollte ehrlich sein. Wegen Satz 14.25 können wir auch keine guten Approximationen erreichen und nur hoffen, dass die Approximationen im Anwendungsfall „gut genug“ sind. Die Ehrlichkeit eines „approximierenden“ Mechanismus scheint ein weiteres großes Problem zu sein, da Bieter sofort etwaige Schwächen ausnutzen werden. Wir werden uns deshalb auf den Fall von eindeutigen Bietern (single-minded bidders) beschränken, wobei ein eindeutiger Bieter ein Gebot (s, a) nur für eine einzige Teilmenge s abgeben wird: Der Bieter ist bereit, nach dem Erwerb von s oder einer Obermenge von s bis zu a zu bezahlen. Die Bewertung des Bieters braucht nicht mit dem Gebot übereinstimmen, aber wir nehmen an, dass nur s und seine Obermengen positiv und zwar gleich bewertet sind. 14.3. KOMBINATORISCHE AUKTIONEN 217 Beispiel 14.5 Die Einschränkung auf eindeutige Bieter ist natürlich einschneidend, aber in einigen Anwendungen harmlos: Im kürzesten Wege Problem mit Endpunkten s und t wird man die Kanten eines kürzesten Weges zwischen s und t ersteigern wollen. In der Ersteigerung von Nutzungsrechten (z.B. für Frequenzen oder Verwertung von Holz) liegt es nahe, Gebote für räumlich benachbarte Gebiete abzugeben. Der Fall eindeutiger Bieter scheint auf den ersten Blick sehr viel einfacher, aber die Argumentation von Satz 14.25 zeigt, dass auch diese Einschränkung im Allgemeinen nur sehr schwache Approximationen zulässt. Trotzdem versuchen wir unser Glück. Zentral ist der Begriff der a Bewertung eines Gebots (s, a). Wir werden im Folgenden mit der Bewertung ||s|| arbeiten, wobei wir nur fordern, dass || · · · || monoton ist: s0 ⊆ s ⇒ ||s0 || ≤ ||s|| und es gelte stets ||s|| > 0 für s 6= ∅. a Im Anwendungsfall sollten „güter-relevante“ Bewertungen ||s|| gewählt werden: Bei der Versteigerung von Frequenzen liegt es zum Beispiel nahe, ein Gebot zu einer Menge s mit dem Durchschnittspreis pro Einwohner des zugehörigen Gebiets zu bewerten. Auktion 14.30 Eine ehrliche kombinatorische Auktion a (1) Wir bewerten ein Gebot (s, a) durch ||s|| . Wir setzen voraus, dass || · · · || monoton ist und dass keine zwei Gebote gleichbewertet sind. (2) Sortiere die Gebote (s, a) nach absteigender Bewertung a ||s|| . (3) Durchlaufe die sortierte Folge der Gebote, beginnend mit dem höchbewerteten Gebot: Das gegenwärtig bearbeitete Gebot (s, a) erhält den Zuschlag und genau die Menge s geht an den entsprechenden Bieter. Sämtliche Gebote (t, b) mit s ∩ t 6= ∅ werden aus der Liste entfernt und damit disqualifiziert; nicht zum Zuge kommende Gebote sind gebührenfrei. Sei (t∗ , b∗ ) ein entferntes Gebot mit höchster Bewertung, das nur wegen dem Zuschlag an (s, a) nicht zum Zuge gekommen ist. Der zu entrichtende Preis ist dann ∗ ||s|| · ||tb∗ || . Gibt es kein Gebot, das nur wegen Gebot (s, a) nicht zum Zuge gekommen ist, dann wird der Preis 0 verlangt. Wechsle zum nächsten Gebot der Folge. Kommentar: Der zu entrichtende Preis ist stets durch das Gebot beschränkt, denn b∗ a b∗ ||t∗ || < ||s|| und damit ist ||s|| · ||t∗ || < a. Wir untersuchen Auktion 14.30 erstens unter dem Aspekt der Approximation und zweitens unter dem Aspekt der Ehrlichkeit. Zuerst untersuchen wir die Güte der Approximation, wenn der angebotene Preis auch zu entrichten ist. Aufgabe 114 Wir setzen ||s|| = |s|. Zeige, dass es Instanzen gibt, für die Auktion 14.30 Einkünfte von höchstens O( opt ) bei k k Gütern erbringt, wenn für jedes erfolgreiche Gebot (s, a) der Preis a zu entrichten ist. Zeige, dass aber auch stets Einkünfte von mindestens Ω( opt ) erzielt werden. k p Satz 14.31 Wir setzen ||s|| = |s|. Wenn insgesamt k Güter zu versteigern sind, dann wird √ erbringen, solange die von Auktion 14.30 berechnete Zuteilung Einkünfte von mindestens opt k für jedes erfolgreiche Gebot (s, a) der Preis a zu entrichten ist. 218 KAPITEL 14. AUKTIONEN Beweis: Wir analysieren zuerst eine optimale Zuteilung, die Gebote (si , ai ) für i ∈ I auswählt. P Die optimalen Einkünfte sind i∈I ai und deshalb folgt mit der Ungleichung von CauchySchwarz4 : v opt = X i∈I ai = X i∈I v uX 2 sX uX 2 √ q u u ai ai ai t p · |si | ≤ · |si | ≤ t · k. |si | |si | |si | i∈I i∈I i∈I Die letzte Ungleichung folgt, da i∈I |si | ≤ k für jede Zuteilung gilt. In Auktion 14.30 werden alle Gebote (si , ai ) für i ∈ J akzeptiert. Es genügt also zu zeigen, dass P v uX 2 √ √ X u ai t ai · k · k≤ i∈I |si | (14.6) i∈J gilt. Wir erhalten weiterhin X ai ≥ sX i∈J a2j i∈J und deshalb genügt der Nachweis von X a2 i i∈I |si | ≤ X a2i . (14.7) i∈J Wir können o.B.d.A. annehmen, dass die Mengen I und J disjunkt sind. Warum wird ein Bieter i ∈ I in J disqualifiziert? Es muss zu jedem i ∈ I einen Bieter f (i) ∈ J mit si ∩sf (i) 6= ∅ a geben, dessen Bewertung höher als i ist, d.h. es gilt √ai < √ f (i) . Wenn genau die Bieter |si | |sf (i) | aus Ij ⊆ I an dem Bieter j ∈ J scheitern, dann ist offensichtlich |Ij | ≤ |sj |. Wir erhalten X a2 a2j i ≤ · |sj | = a2j |s | |s | i∈Ij i j und (14.7) folgt. Aufgabe 115 Bestimme Instanzen, für die erzielten Einkünfte nicht sehr viel mehr als opt √ k betragen. Natürlich ist die garantierte Approximationsleistung recht schwach, aber wir können nach Satz 14.25 nicht sehr viel mehr herausholen! Da wir wiederum ein Zweitpreis-Schema verfolgen, um die Bieter zu Höchstgeboten zu veranlassen, werden die Einkünfte des Verkäufers im worstcase entsprechend gering sein und ein Vorbehalt des Verkäufers bei enttäuschendem Ergebnis scheint notwendig. Wir zeigen zuletzt, dass Auktion 14.30 ehrlich ist und kommen damit zu dem interessantesten Teil dieses Abschnitts. Es stellt sich heraus, dass die folgenden Eigenschaften im Fall von eindeutigen Bietern garantieren, dass ein Auktionsmechanismus ehrlich ist. - Exaktheit: Wenn ein Bieter ein Gebot (s, a) abgibt, dann erhält der Bieter entweder s oder die leere Menge. Auktion 14.30 liefert im Fall des Zuschlags genau die Menge s und erfüllt damit Exaktheit. 4 Es ist hx, yi ≤ ||x|| · ||y|| und deshalb gilt insbesondere P i xi · yi ≤ ( pP i pP x2i ) · ( i yi2 ). 14.3. KOMBINATORISCHE AUKTIONEN 219 - Monotonie: Wenn ein Bieter den Zuschlag für ein Gebot (s, a) erhält, dann erhält er auch den Zuschlag für ein Gebot (s0 , a0 ), falls s0 ⊆ s und a0 ≥ a. Wenn ein Bieter in Auktion 14.30 den Zuschlag für (s, a) erhält, dann auch für Gebot (s0 , a0 ), denn die Bewertung des neuen Gebots ist mindestens so hoch wie die Bewertung 0 a des alten Gebots ( ||sa0 || ≥ ||s|| ) und neue Kollisionen mit anderen Geboten treten nicht auf. - Gebührenfreiheit: Wenn das Gebot eines Bieters disqualifiziert wird, dann ist nichts zu bezahlen. Gebührenfreiheit wird in Auktion 14.30 explizit gefordert. - Kritischer Wert: Wenn eine Auktion Exaktheit und Monotonie besitzt, dann gibt es für jedes Gebot zu einer Menge s, bei fixierten Geboten der anderen Bieter, einen kritischen Wert ks . Wird unterhalb des kritischen Werts geboten, dann verliert das Gebot, wird oberhalb geboten, dann gewinnt das Gebot5 . Wir fordern, dass der Preis im Falle des Zuschlags mit ks übereinstimmt. Die Eigenschaft des kritischen Werts ist die einschneidenste Eigenschaft, denn sie fordert Unabhängigkeit des Preises vom gebotenen Preis. Für Auktion 14.30 ist der kritische ∗ ∗ Wert ||s|| · ||tb∗ || , wobei ||tb∗ || die Höchstbewertung eines Gebots ist, das nur wegen dem Zuschlag an (s, a) nicht zum Zuge gekommen ist. Der kritische Wert stimmt also mit dem letztlich verlangten Preis überein. Aufgabe 116 Wenn ein ehrlicher Mechanismus die Eigenschaften Exaktheit, Monotonie und Gebührenfreiheit erfüllt, dann auch die Eigenschaft des kritischen Werts. Wir weisen jetzt nach, dass die obigen vier Eigenschaften Ehrlichkeit garantieren. Diese Aussage ist auf allgemeine Mechanismen anwendbar und insbesondere auf Auktion 14.30. Satz 14.32 [LOS] (a) Wenn ein Auktionsmechanismus die Eigenschaften der Exaktheit, Monotonie, Gebührenfreiheit und des kritischen Werts besitzt, dann ist der Mechanismus ehrlich. (b) Die Auktion 14.30 ist ehrlich, falls || · · · || monoton ist. Beweis (b) ist eine unmittelbare Konsequenz von Teil (a), denn wir haben ja schon gezeigt, dass Auktion 14.30 die vier Eigenschaften besitzt. Wir führen den Nachweis von (a) mit einer Reihe von Beobachtungen. Beobachtung 14.3 Ein nicht erfolgreiches Gebot ist gebührenfrei. Wenn ein Bieter seine ehrliche Bewertung als Gebot abgibt, dann ist der Nutzen des Bieters (also die Differenz zwischen Bewertung und verlangtem Preis) nicht-negativ. Beweis: Wird das Gebot abgelehnt, dann ist das Gebot gebührenfrei, denn wir verlangen Gebührenfreiheit explizit. Wird ein ehrliches Gebot akzeptiert, dann ist die Bewertung mindestens so hoch wie der kritische Wert des Gebots. Die Eigenschaft des kritischen Werts garantiert somit, dass der verlangte Preis die Bewertung nicht übersteigt. Beobachtung 14.4 Ein eindeutiger Bieter bewerte eine Menge s mit a. Dann ist der Nutzen für das Gebot (s, a) mindestens so groß wie für ein Gebot (s, a∗ ) mit einer beliebigen reellen Zahl a∗ . 5 Wenn der kritische Wert genau getroffen wird, dann wird keine Aussage gemacht. 220 KAPITEL 14. AUKTIONEN Beweis: Wir vergleichen die Gebote (s, a) und (s, a∗ ). Wird das Gebot (s, a∗ ) abgelehnt, dann steht dem nicht-negativen Nutzen für Gebot (s, a) der Nutzen Null bei Gebot (s, a∗ ) gegenüber. Wird das Gebot (s, a∗ ) akzeptiert, dann sind zwei Fälle zu unterscheiden. Im ersten Fall nehmen wir an, dass auch Gebot (s, a) akzeptiert wird. Dann ist der Nutzen für beide Gebote identisch, denn der verlangte Preis hängt nicht vom Gebot ab. Im zweiten Fall wird das Gebot (s, a) verworfen und damit gilt a ≤ ks ≤ a∗ : Dem Nutzen Null für Gebot (s, a) steht ein nicht-positiver Nutzen a − ks gegenüber. Beobachtung 14.5 Wir wählen einen Bieter aus und fixieren die Gebote der anderen Bieter. Wenn der Bieter eine Menge s mit einem Gebot (s, a) zum Preis p ersteigert, dann wird auch eine Teilmenge s0 ⊆ s mit dem Gebot (s0 , a) ersteigert und zwar zu einem Preis p0 mit p0 ≤ p. Beweis: Wenn das Gebot (s, a) erfolgreich ist, dann ist auch das Gebot (s0 , a) wegen der Eigenschaft der Monotonie erfolgreich. Wegen der Eigenschaft des kritischen Werts ist ein Gebot (s0 , b) mit b < p0 nicht erfolgreich und die Monotonie bedingt, dass auch ein Gebot (s, b) nicht erfolgreich ist. Die Eigenschaft des kritischen Werts, angewandt auf (s, b), bedingt somit b < p für alle b < p0 und p0 ≤ p folgt. Warum erzwingen die vier Eigenschaften die Ehrlichkeit des Mechanismus? Angenommen, ein Bieter möchte die Menge s erwerben und bewertet s mit a. Wann kann es für den Bieter günstiger sein, das Gebot (s0 , a0 ) anstelle des ehrlichen Gebots (s, a) abzugeben? Da ein ehrliches Gebot als Konsequenz von Beobachtung 14.3 stets nicht-negativen Nutzen erwirtschaftet, hat der Bieter nur dann eine Chance sich besser zu stellen, wenn das Gebot (s0 , a0 ) den Zuschlag erhält. Wenn s 6⊆ s0 , dann bewertet der eindeutige Bieter s0 mit Null und sein Nutzen ist bestenfalls Null. Also können wir s ⊆ s0 annehmen. Der Bieter bewertet s und s0 gleich und Beobachtung 14.5 bedingt, dass sich der Bieter mit dem Gebot (s, a0 ) mindestens so gut stellt. Mit Beobachtung 14.4 ist aber der Nutzen bei dem ehrlichen Gebot (s, a) mindestens so hoch wie bei dem Gebot (s, a0 ) und wir sind fertig. 14.4 Äquivalenz der Einkünfte Wir stellen uns die Frage, inwieweit sich die Auktionsformen faktisch voneinander unterscheiden, d.h. in wieweit optimale Gebote und Einkünfte des Verkäufers von der Auktionsform abhängen. Allerdings werden wir ein stark vereinfachtes Modell annehmen, um eine Analyse durchführen zu können: (1) Ein einziges, unteilbares Objekt ist unter mehreren Bietern zu versteigern. (2) Sämtliche Bieter, wie auch der Verkäufer sind Risiko-neutral, d.h. sie basieren ihre Entscheidungen nur auf den zu erwartetenden Ausgang der Auktion. (3) Die Bewertungen entsprechen unabhängigen, gleichverteilten Zufallsvariablen, die aus einem Intervall [v, v] gezogen werden. (4) Die Bieter verhalten sich symmetrisch, d.h. die Gebotsstrategie von Bieter i unterscheidet sich nicht von der Gebotsstrategie von Bieter j, falls beide das Objekt identisch bewerten. 14.4. ÄQUIVALENZ DER EINKÜNFTE 221 (5) Wenn die Bieter sich symmetrisch verhalten und wenn ein Bieter das Objekt mit v bewertet und das Gebot g(v) abgibt, dann ist E[ug (v)] = v · p(g(v)) − E[G(g(v))] seine erwartete Auszahlung, wobei E[G(g(v))] die erwartete Gebühr bei Gebot g(v) bezeichnet und p(g(v)) die Wahrscheinlichkeit einer Zuteilung für Gebot g(v) ist. Die erwartete Auszahlung setzt sich also aus dem erwarteten Gewinn v · p(g(v)) und der erwarteten Gebühr E[G(g(v))] zusammen, wobei die erwartete Gebühr gemäß Annahme (5) nur von dem Gebot des Bieters abhängen darf. Die Gebühr kann sich aus verschiedenen Komponenten wie etwa dem Gebot oder dem zweithöchsten Gebot (jeweils im Falle der Zuteilung) und einer Teilnahmegebühr zusammensetzen. Wir fassen Auktionen als ein nicht-kooperatives Spiel unter den Bietern auf. Wir haben angenommen, dass die Bieter Risiko-neutral sind und jeder Bieter wird demgemäß versuchen, seine erwartete Auszahlung zu maximieren. Wie sehen Nash-Gleichgewichte im Auktionsspiel aus? Beobachtung 14.6 Die Gebotsstrategie g : [v, v] → R definiere ein Nash-Gleichgewicht. Dann gilt E[ug (v)] ≥ E[ug (v 0 )] + (v − v 0 ) · p(g(v 0 )). (14.8) Beweis: Wir betrachten zuerst die rechte Seite von (14.8) und erhalten E[ug (v 0 )] + (v − v 0 ) · p(g(v 0 )) = v 0 · p(g(v 0 )) − E[G(g(v 0 ))] + (v − v 0 ) · p(g(v 0 )) = v · p(g(v 0 )) − E[G(g(v 0 ))]. Da g ein Nash-Gleichgewicht definiert, muss E[ug (v)] ≥ v · p(g(v 0 )) − E[G(g(v 0 ))] gelten, denn ansonsten steht sich der Bieter besser, wenn er das Gebot g(v 0 ) bei Bewertung v abgibt. Beobachtung 14.7 Die Gebotsstrategie g : [v, v] → R definiere ein Nash-Gleichgewicht. Dann gilt für die erste Ableitung der erwarteten Auszahlung E[ug (v)]0 = p(g(v)). Beweis: Wir wenden (14.8) zweimal an und erhalten E[ug (v)] ≥ E[ug (v + ε)] − ε · p(g(v + ε)) und E[ug (v + ε)] ≥ E[ug (v)] + ε · p(g(v)). Also folgt E[ug (v + ε)] − E[ug (v)] ≤ p(g(v + ε)) ε und die Behauptung ergibt sich durch den Grenzübergang ε → 0. p(g(v)) ≤ 222 KAPITEL 14. AUKTIONEN Mit Hilfe der letzten Beobachtung können wir im Fall eines Nash-Gleichgewichts die erwartete Auszahlung nur durch die Wahrscheinlichkeit der Zuteilung ausdrücken, denn es ist Z v E[ug (v)] = E[ug (v)] + p(g(u)) du. (14.9) v Die Äquivalenz der Einkünfte (revenue equivalence) unter den verschiedenen Auktionsformen ist offensichtlich, falls zwei Auktionen sich nicht in der erwarteten Auszahlung E[ug (v)] bei minimaler Bewertung unterscheiden und falls eine Zuteilung bei Gebotsfunktion g stets an den Bieter mit der höchsten Bewertung geht. Die erste Forderung werden wir annehmen; sie ist zum Beispiel dann erfüllt, wenn E[ug (v)] = 0: Wenn ein Bieter kein Interesse hat, dann erhält er das Objekt nicht, muss aber auch keine Gebühren entrichten. Die zweite Forderung ist erfüllt, wenn die Gebotsfunktion g strikt monoton steigend ist: In diesem Fall gewinnt stets der Bieter mit der höchsten Bewertung. Beobachtung 14.8 Die Gebotstrategie g : [v, v] → R definiere ein Nash-Gleichgewicht. Dann ist g strikt monoton wachsend. Beweis: Wir betrachten die erwartete Auszahlung E[ug (v)] wieder als Funktion der Bewertung v. Mit (14.8) ist für v ≥ v 0 E[ug (v)] − E[ug (v 0 )] ≥ p(g(v 0 )) v − v0 und die Steigung der Sekante zu den Endpunkten v und v 0 ist mindestens so groß wie die Steigung in v 0 . Aufgabe 117 f : R → R sei vorgegeben. Zeige: f ist genau dann konvex, wenn stets f (x) ≥ f (y) + (x − y) · f 0 (y) gilt. Also ist die erwartete Auszahlung E[ug (v)] eine konvexe Funktion in v. Die zweite Ableitung einer konvexen Funktion ist aber nicht-negativ und wir erhalten 0 ≤ E[ug (v)]00 = p(g(v))0 = p0 (g(v)) · g 0 (v). Natürlich wächst die Wahrscheinlichkeit der Zuteilung mit wachsendem Gebot und p0 (g(v)) ist nicht-negativ und damit ist auch g 0 (v) nicht-negativ. Also ist g(v) monoton wachsend. Aufgabe 118 Die Gebotstrategie g : [v, v] → R definiere ein Nash-Gleichgewicht. Zeige: Wenn g monoton wachsend ist, dann ist g auch strikt monoton wachsend. Die Behauptung folgt jetzt aus der Aufgabe. Die Äquivalenz der Einkünfte ergibt sich als unmittelbares Korollar. Satz 14.33 Revenue Equivalence Zwei Auktionen mögen die Eigenschaften (1)-(5) mit derselben Anzahl von Bietern erfüllen. Wir betrachten Gebotsstrategien für jede der beiden Auktionen, die jeweils einem Nash-Gleichgewicht entsprechen. Wenn beide Auktionen eine identische erwartete Auszahlung bei minimaler Bewertung besitzen, dann stimmen auch die erwarteten Auszahlungen (bei jeweils gleicher Bewertung) überein. Schließlich stimmen auch die erwarteten Auszahlungen an den Verkäufer überein. 14.4. ÄQUIVALENZ DER EINKÜNFTE 223 Beweis: Da die Wahrscheinlichkeit einer Zuteilung für jede der beiden Auktionen nur von der Bewertung abhängt, stimmen die Zuteilungswahrscheinlichkeiten überein und die Bieter besitzen gemäß (14.9) identische erwartete Auszahlungen. Da aber die erwarteten Auszahlungen an die Bieter übereinstimmen, stimmen auch die erwarteten Auszahlungen an den Verkäufer überein. Beispiel 14.6 Erstpreis Auktion Wir nehmen an, dass die N Bewertungen v1 , . . . , vN unabhängig, gemäß der Gleichverteilung aus dem Intervall [0, 1] gezogen werden; d.h. es ist insbesondere prob[vi ≤ x] = x. Wir zeigen, dass die Gebotsfunktion N −1 g(v) = ·v N ein Nash-Gleichgewicht definiert. Um dies zu verifizieren, müssen wir einen Bieter i fixieren, annehmen, dass die restlichen Bieter nach der Gebotsfunktion g bieten und dann zeigen, dass das Gebot g(vi ) = NN−1 · vi die erwartete Auszahlung an Bieter i maximiert. Wenn Bieter i das Gebot g abgibt, dann ist (vi − g) · pi die erwartete Auszahlung, wenn pi die Zuteilungswahrscheinlichkeit ist. Offensichtlich ist pi = prob[ g ≥ max{g(vj ) | j 6= i} ] N −1 · vj | j 6= i} ] = prob[ g ≥ max{ N N −1 N = ·g , N −1 denn g ≥ NN−1 ·vj genau dann, wenn vj ≤ NN−1 ·g und die Wahrscheinlichkeit dieses Ereignisses ist NN−1 · g; da die Bewertungen der restlichen N − 1 Bieter unabhängig voneinander gewählt werden, ergibt sich die Behauptung. Also beträgt die erwartete Auszahlung (vi − g). N N −1 ·g N −1 Aufgabe 119 N −1 Zeige, dass NN−1 · g ·(vi −g) durch g = NN−1 ·vi maximiert wird. Also ist die Gebotsfunktion g(v) = tatsächlich ein Nash-Gleichgewicht und viN /N ist die erwartete Auszahlung. · N −1 ·v N Wir bestimmen die Höhe des gewinnenden Gebots als Nächstes und wenden dazu den folgenden Fakt an. Fakt 14.1 Wenn Ek die erwartete Größe des k-kleinsten Gebots bezeichnet, dann gilt Ek = k N +1 . Die erwartete Höhe E[g] des gewinnenden Gebots stimmt mit E[ NN−1 · v] = NN−1 · E[v] überein, wobei v die maximale Bewertung ist. Also folgt mit dem obigen Fakt, dass der Verkäufer die erwartete Auszahlung N −1 N N −1 · = N N +1 N +1 erhält. Beispiel 14.7 Zweitpreis Auktion Wir haben schon gesehen, dass die Veröffentlichung der eigenen Bewertung sogar eine dominante Strategie ist und damit induziert die Gebotsfunktion g(v) = v 224 KAPITEL 14. AUKTIONEN insbesondere ein Nash-Gleichgewicht. Der Gewinner zahlt den Preis des zweithöchsten Gebots −1 und damit erhält auch hier der Verkäufer die erwartete Auszahlung N N +1 . Literaturverzeichnis [AAF] M. Andrews, B. Awerbuch, A. Fernandez, T. Leighton, Z. Liu und J. Kleinberg, Universal-Stability results and performance bounds for greedy contentionresolution protocols, Journal of the ACM, vol 48 (1), pp. 39-69, 2001. [AGKM] V. Arya, N. Garg, R. Khandekar, A. Myerson, K. Munagala und V. Pandit, Local search heuristics for k-median and facility location problems, Proceedings of the 33rd Annual ACM Symposium on Theory of Computing, 2001. [AL] B. Awerbuch und T. Leighton, Improved approximation algorithm for the multicommodity flow problem and local competitive routing in dynamic networks, Proceedings of the 26th Annual ACM Symposium on Theory of Computing, pp. 487-496, 1994. [AKO] W. Aiello, E. Kushilevitz, R. Ostrovsky und A. Rosen, Adaptive packet routing for bursty adversarial traffic, Proceedings of the 30th Annual ACM Symposium on Theory of Computing, pp. 359-368, 1998. [BKKMS] H. Balakrishnan, M. Frans Kaashoek, D. R. Karger, R. Morris, I. Stoica, Looking up data in P2P systems, Communications of the ACM (CACM), 46 (2), pp. 43-48, 2003. [BH] K. Bharat und M.R. Henzinger, Improved algorithms for Topic distillation in a hyperlinked environment, Proceedings of 21st ACM International Conference on Research and Development in Information Retrieval, pp. 104-111, 1998. [BKR] A. Borodin, J. Kleinberg, P. Raghavan, M. Sudan und D.P. Williamson, Adversarial queueing theory, Journal of the ACM, Vol. 48 (1), pp. 13-38, 2001. [BGMZ] A. Broder, S. Glassman, M. Manasse und G. Zweig, Syntactic clustering of the web, Proceedings of the 6th International World Wide Web Conference pp. 391-404, 1997. [BCFM] A. Broder, M. Charikar, A. Frieze und M. Mitzenmacher, Min-wise independent permutations, Proceedings of the 30th Annual ACM Symposium on Theory of Computing, pp. 327-336, 1998. [CDT] X. Chen, X. Deng, and S.-H. Teng, Settling the complexity of two-player Nash equilibria, Journal of the ACM, 2008. 225 226 LITERATURVERZEICHNIS [CJ] D. Chiu und R. Jain, Analysis of the increase and decrease algorithms for congestion avoidance in computer networks, Computer Networks and ISDN Systems, (17), pp. 1-14, 1989. [CDR] R. Cole, Y. Dodis und T. Roughgarden, How much can taxes help selfish routing?, Proceedings of the 4th Annual ACM Symposium on Electronic Commerce, pp. 98-107, 2003. [DGP] C. Daskalakis, P. W. Goldberg, and C. H. Papadimitriou, The complexity of computing a Nash equilibrium, SIAM Journal on Computing, 2008. [DBCP] M. Degermark, A. Brodnik, S. Carlsson und S. Pink, Small forwarding tables for fast routing lookups, Proceedings of the ACM SIGCOMM, pp. 3-14, 1997. [DP] X. Deng und C. Papadimitriou, On the complexity of cooperative solution concepts, Math. Oper. Res., 19, pp. 257-266, 1994. [DPS] X. Deng, C. Papadimitriou und S. Safra, On the complexity of equilibria, Proceedings of the 34th Annual ACM Symposium on Theory of Computing, pp. 67-71, 2002. [DKNS] C. Dwork, R. Kumar, M. Naor und D. Sivakumar, Rank aggregation methods for the web, Proceedings of the 10th International World Wide Web Conference, pp. 613-622, 2001. [EDD] J. Edmonds, S. Datta und P. Dymond, TCP is competitive against a limited adversary, Proceedings of the 15th ACM Symposium on parallel algorithms and architectures, pp. 174-183, 2003. [EV] C. Estan und G. Varghese, New directions in traffic management and accounting: focusing on the elephants, ignoring the mice, ACM Transactions on Computer Systems, 2003. [FKFH] U. Faigle, W. Kern, S.P. Fekete und W. Hochstättler, On the complexity of testing membership in the core of min-cost spanning tree games, Int. Journal of Game Theory, 26, pp. 361-366, 1997. [FKK] U. Faigle, W. Kern und J. Kuipers, Computing the nucleolus of min-cost spanning tree games is N P -hard, Int. Journal of Game Theory, 27, pp. 443-450, 1998. [FP] W. Fang und L. Peterson, Inter-AS traffic patterns and their implications, Proceedings of IEEE GLOBECOM, 1999. [FKSS] J. Feigenbaum, A. Krishnamurthy, R. Sami und S. Shenker, Hardness results for multicast cost sharing, erscheint in: Theoretical Computer Science, 2003. [FGHK] A. Fiat, A. Goldberg, J. Hartline und A. Karlin, Competitive generalized auctions, Proceedings of the 32nd Annual ACM Symposium on Theory of Computing, pp. 72-81, 2002. LITERATURVERZEICHNIS 227 [FK] L. Fredman und L. Khachiyan, On the complexity of dualization of monotone disjunctive normal forms, Journal of Algorithms (21), pp. 618-628, 1996. [G] D. Gamarnik, Stability of adaptive and non-adaptive packet routing policies in adversarial queueing networks, Proceedings of the 31st Annual ACM Symposium on Theory of Computing, pp. 206-214, 1999. [GHKW] A. Goldberg, J. Hartline, A. Karlin und A. Wright, Competitive auctions, Manuskript, 2003. [GKS] S. Guha, N. Koudas, K. Shim, Data-streams and histograms, Proceedings of the 31st Annual ACM Symposium on Theory of Computing, pp. 471-475, 2001. [GY] N. Garg und N. Young, On-line and End-to-End congestion Control, Proceedings of the 43rd Annual IEEE Symposium on Foundations of Computer Science, pp. 303-312, 2002. [H] B. Hajek, Hitting-time and occupation-time bounds implied by drift analysis with applications, Advances in Applied Probability, pp. 502-525, 1982. [H02] T. H. Haveliwala, Topic-Sensitive PageRank, Proceedings of the 11th International World Wide Web Conference, 2002. [JV] K. Jain und V. Vazirani, Applications of Approximation to cooperative games, 33rd Annual ACM Symposium on Theory of Computing, pp. 364-372, 2001. [K1] J.M. Kleinberg, Authoritative sources in a hyperlinked environment, Journal of the ACM, (46), pp. 604-632, 1999. [K2] J.M. Kleinberg, The small-world phenomenon: an algorithmic perspective, Proceedings of the 32nd ACM Symposium on Theory of Computing, pp. 163170,2000. [KKPS] R. Karp, E. Koutsoupias, C. Papadimitriou und S. Shenker, Optimization problems in congestion control, Proceedings of the 41st Annual IEEE Symposium on Foundations of Computer Science, pp. 66-74, 2000. [KHR] D. Katabi, M. Handley und C. Rohrs, Internet congestion control for high bandwidth-delay product environments, Proc. of the ACM SIGCOMM, 2002. [KMS] D. Koukopoulos, M. Mavronicolas und P. Spirakis, FIFO is unstable at arbitrarily low rates, Electonic Colloquium on Computational Complexity (ECCC), Technical Report 03-016, 2003. [KP] E. Koutsipias und C. Papadimitrou, Worst-case equilibria, Proceedings of the 16th Annual Symposium on Theoretical Aspects of Computer Science, pp. 404413, 1999. [LOS] D. Lehmann, L. O’Callaghan and Y. Shoham, Truth revelation in approximately efficient combinatorial auctions, Journal of the ACM (49), pp. 577-602, 2002. 228 LITERATURVERZEICHNIS [LMS] M. Luby, M. Mitzenmacher, M.A. Shokrollahi, D.A. Spielman, V. Steman, Practical loss-resilient codes, Proc. 29th Annual ACM Symp. on Theory of Computing, pp.150-159, 1997. [M] K.G. Murty, On the linear complementarity problem, Proceedings of the 3rd Symposium on Operations Research, pp. 425-439, 1978. [Ne] A. Neyman, Finitely repeated games with finite automata, Mathematics of Operations Research (23), pp. 513-552, 1998. [Ni] N. Nisan, Bidding and allocation in combinatorial auctions, 2nd Annual ACM Conference on Electronic Commerce, 2000. [NR] N. Nisan und A. Ronen, Algorithmic mechanism design, 31st Annual ACM Symposium on Theory of Computing, pp. 129-140, 1999. [PY] C. H. Papadimitriou und M. Yannakakis, On complexity as bounded rationality, 26th Annual ACM Symposium on Theory of Computing, pp. 726-733, 1994. [RT] T. Roughgarden und E. Tardos, How bad is selfish routing?, Journal of the ACM 49 (2), pp. 236-259, 2002. [SS] L.S. Shapley und M. Shubik, On market games, Journal of Economic Theory, 1969. [Sh] A. Shokrollahi, Raptor codes, preprint 2003. [S] B. von Stengel, Computing equilibria for two-person games, chapter 45 in: Handbook of Game Theory, vol 3, eds. R.J. Aumann und S. Hart, North-Holland, pp. 1723-1759, 2002. [SMLK] I. Stoica, R. Morris, D. Liben-Nowell, D. R. Karger, M. Frans Kaashoek, F. Dabek und H. Balakrishnan, Chord: A Scalable Peer-to-peer Lookup Protocol for Internet Applications”, , IEEE/ACM Transactions on Networking, Vol. 11, No. 1, pp. 17-32, 2003. [T] A. Tanenbaum, Computer Networks, Prentice Hall, 4th edition, 2002. [W] M. Weinard, The Necessity of Timekeeping in Adversarial Queueing, Proceedings of the 4th International Workshop on Efficient and Experimental Algorithms (WEA), pp. 440-451, 2005. [YKT] M. Yajnik, J. Kurose, D. Towsley, Packet Loss Correlation in the MBone multicast network, IEEE Global Internet Conference, 1996. [Y] M. Yannakakis, Equilibria, fixed points, and complexity classes, Symp. on Theoretical Aspects of Computer Science, pp. 19-38, 2008. [ZN] E. Zurel und N. Nisan, An efficient approximate allocation algorithm for combinatorial auctions, 3rd Annual ACM Conference on Electronic Commerce, 2001.