Streaming Data: Das Modell Berechnungen, bei fortlaufend einströmenden Daten (x t t 0), sind in Echtzeit zu erbringen. Beispiele sind: - Verkehrsmessungen im Internet, - Datenanalyse in der Abwehr einer Denial-of-Service Attacke, - Verarbeitung von durch Satelliten erfassten Daten, oder - fortlaufende Protokollierung von Telefonverbindungen durch weltweit agierende Telefonunternehmen und die damit verbundenen Reaktionen auf überlastete Leitungen. Das Modell 1 / 74
Algorithmische Fragestellungen (1/2) Erstellung von Stichproben: Stichproben reduzieren die Größe der Datenmenge und sind deshalb ein wichtiges Hilfsmittel für viele einfache Probleme. Beachte, dass sich Stichproben dynamisch mit dem Datenstrom ändern müssen. Das Modell 2 / 74
Algorithmische Fragestellungen (1/2) Erstellung von Stichproben: Stichproben reduzieren die Größe der Datenmenge und sind deshalb ein wichtiges Hilfsmittel für viele einfache Probleme. Beachte, dass sich Stichproben dynamisch mit dem Datenstrom ändern müssen. Häufigkeitsanalyse für Datenströme: Wenn au = {i x i = u} die Häufigkeit des Schlüssels u ist, dann berechne das k te Häufigkeitsmoment H k = u U a k u. H0 ist die Anzahl verschiedener Schlüssel, H 1 die Anzahl der bisher gesehenen Schlüssel. H2 misst wie gleichmäßig n Daten (auf m verschiedene Schlüssel) verteilt sind: Es ist m ( ) n 2 = n2 H m m 2 n 2. Kleine Werte von H 2 implizieren eine gleichmäßige Verteilung. Das Modell 2 / 74
Algorithmische Fragestellungen (2/2) Zeitfenster: Um das Verhalten eines Datenstroms in der jüngsten Vergangenheit bestimmen zu können, wertet man Datenströme in Zeitfenstern aus. Entwickle Methoden, um die quantitative Analyse nach dem Verschwinden veralteter und dem Erscheinen junger Schlüssel zu aktualisieren. Das Modell 3 / 74
Reservoir Sampling: Stichproben für Datenströme Stichproben Reservoir Sampling 4 / 74
Reservoir Sampling Berechne eine ohne Ersetzung gleichverteilt gezogenen Stichprobe S { (i, x i ) 1 i n } des Datenstroms (x i i). Stichproben Reservoir Sampling 5 / 74
Reservoir Sampling Berechne eine ohne Ersetzung gleichverteilt gezogenen Stichprobe S { (i, x i ) 1 i n } des Datenstroms (x i i). (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=. Stichproben Reservoir Sampling 5 / 74
Reservoir Sampling Berechne eine ohne Ersetzung gleichverteilt gezogenen Stichprobe S { (i, x i ) 1 i n } des Datenstroms (x i i). (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. Stichproben Reservoir Sampling 5 / 74
Reservoir Sampling Berechne eine ohne Ersetzung gleichverteilt gezogenen Stichprobe S { (i, x i ) 1 i n } des Datenstroms (x i i). (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) t T : Füge den Schlüssel in STICHPROBE ein. Stichproben Reservoir Sampling 5 / 74
Reservoir Sampling Berechne eine ohne Ersetzung gleichverteilt gezogenen Stichprobe S { (i, x i ) 1 i n } des Datenstroms (x i i). (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) t T : Füge den Schlüssel in STICHPROBE ein. (2c) t > T : Werfe eine Münze mit Erfolgswahrscheinlichkeit Stichproben Reservoir Sampling 5 / 74
Reservoir Sampling Berechne eine ohne Ersetzung gleichverteilt gezogenen Stichprobe S { (i, x i ) 1 i n } des Datenstroms (x i i). (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) t T : Füge den Schlüssel in STICHPROBE ein. (2c) t > T : Werfe eine Münze mit Erfolgswahrscheinlichkeit T t. Bei einem Erfolg entferne einen zufällig aus STICHPROBE gewählten Schlüssel; der aktuelle Schlüssel wird eingefügt. Stichproben Reservoir Sampling 5 / 74
Reservoir Sampling Berechne eine ohne Ersetzung gleichverteilt gezogenen Stichprobe S { (i, x i ) 1 i n } des Datenstroms (x i i). (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) t T : Füge den Schlüssel in STICHPROBE ein. (2c) t > T : Werfe eine Münze mit Erfolgswahrscheinlichkeit T t. Bei einem Erfolg entferne einen zufällig aus STICHPROBE gewählten Schlüssel; der aktuelle Schlüssel wird eingefügt. Bei einem Misserfolg wird nichts unternommen. Kommentar: Die Stichprobengröße T bleibt unverändert. Stichproben Reservoir Sampling 5 / 74
Analyse Für alle t T : Jede T -elementige Teilmenge X {(i, x i ) 1 i t} tritt mit Wahrscheinlichkeit 1/ ( t T) als Stichprobe auf. Stichproben Reservoir Sampling 6 / 74
Analyse Für alle t T : Jede T -elementige Teilmenge X {(i, x i ) 1 i t} tritt mit Wahrscheinlichkeit 1/ ( t T) als Stichprobe auf. Beweis durch Induktion nach t: Die Aussage ist für t = T richtig. Stichproben Reservoir Sampling 6 / 74
Analyse Für alle t T : Jede T -elementige Teilmenge X {(i, x i ) 1 i t} tritt mit Wahrscheinlichkeit 1/ ( t T) als Stichprobe auf. Beweis durch Induktion nach t: Die Aussage ist für t = T richtig. Wir nehmen an, dass die Aussage für t 1 richtig ist. Stichproben Reservoir Sampling 6 / 74
Analyse Für alle t T : Jede T -elementige Teilmenge X {(i, x i ) 1 i t} tritt mit Wahrscheinlichkeit 1/ ( t T) als Stichprobe auf. Beweis durch Induktion nach t: Die Aussage ist für t = T richtig. Wir nehmen an, dass die Aussage für t 1 richtig ist. (t, xt ) wird mit Wahrscheinlichkeit p = T t aufgenommen. Stichproben Reservoir Sampling 6 / 74
Analyse Für alle t T : Jede T -elementige Teilmenge X {(i, x i ) 1 i t} tritt mit Wahrscheinlichkeit 1/ ( t T) als Stichprobe auf. Beweis durch Induktion nach t: Die Aussage ist für t = T richtig. Wir nehmen an, dass die Aussage für t 1 richtig ist. (t, xt ) wird mit Wahrscheinlichkeit p = T t aufgenommen. p ist die Wahrscheinlichkeit, dass (t, xt ) in einer zufälligen T -elementigen Teilmenge X {(i, x i 1 i t} enthalten ist, denn ( ) ( ) t 1 t / = T 1 T Stichproben Reservoir Sampling 6 / 74
Analyse Für alle t T : Jede T -elementige Teilmenge X {(i, x i ) 1 i t} tritt mit Wahrscheinlichkeit 1/ ( t T) als Stichprobe auf. Beweis durch Induktion nach t: Die Aussage ist für t = T richtig. Wir nehmen an, dass die Aussage für t 1 richtig ist. (t, xt ) wird mit Wahrscheinlichkeit p = T t aufgenommen. p ist die Wahrscheinlichkeit, dass (t, xt ) in einer zufälligen T -elementigen Teilmenge X {(i, x i 1 i t} enthalten ist, denn ( ) ( ) t 1 t / = T T 1 T t. Stichproben Reservoir Sampling 6 / 74
Analyse Für alle t T : Jede T -elementige Teilmenge X {(i, x i ) 1 i t} tritt mit Wahrscheinlichkeit 1/ ( t T) als Stichprobe auf. Beweis durch Induktion nach t: Die Aussage ist für t = T richtig. Wir nehmen an, dass die Aussage für t 1 richtig ist. (t, xt ) wird mit Wahrscheinlichkeit p = T t aufgenommen. p ist die Wahrscheinlichkeit, dass (t, xt ) in einer zufälligen T -elementigen Teilmenge X {(i, x i 1 i t} enthalten ist, denn ( ) ( ) t 1 t / = T T 1 T t. Wir erhalten eine T -elementige Stichprobe, wenn wir - mit Erfolgswahrscheinlichkeit T t entscheiden, ob (t, x t) gewählt wird. Stichproben Reservoir Sampling 6 / 74
Analyse Für alle t T : Jede T -elementige Teilmenge X {(i, x i ) 1 i t} tritt mit Wahrscheinlichkeit 1/ ( t T) als Stichprobe auf. Beweis durch Induktion nach t: Die Aussage ist für t = T richtig. Wir nehmen an, dass die Aussage für t 1 richtig ist. (t, xt ) wird mit Wahrscheinlichkeit p = T t aufgenommen. p ist die Wahrscheinlichkeit, dass (t, xt ) in einer zufälligen T -elementigen Teilmenge X {(i, x i 1 i t} enthalten ist, denn ( ) ( ) t 1 t / = T T 1 T t. Wir erhalten eine T -elementige Stichprobe, wenn wir - mit Erfolgswahrscheinlichkeit T t entscheiden, ob (t, x t) gewählt wird. - Wenn (t, x t) nicht gewählt wird, dann wähle eine zufällige, T -elementige Stichprobe aus der Menge {(i, x i ) 1 i t 1}: Wende die Induktionshypothese an. Stichproben Reservoir Sampling 6 / 74
Analyse Für alle t T : Jede T -elementige Teilmenge X {(i, x i ) 1 i t} tritt mit Wahrscheinlichkeit 1/ ( t T) als Stichprobe auf. Beweis durch Induktion nach t: Die Aussage ist für t = T richtig. Wir nehmen an, dass die Aussage für t 1 richtig ist. (t, xt ) wird mit Wahrscheinlichkeit p = T t aufgenommen. p ist die Wahrscheinlichkeit, dass (t, xt ) in einer zufälligen T -elementigen Teilmenge X {(i, x i 1 i t} enthalten ist, denn ( ) ( ) t 1 t / = T T 1 T t. Wir erhalten eine T -elementige Stichprobe, wenn wir - mit Erfolgswahrscheinlichkeit T t entscheiden, ob (t, x t) gewählt wird. - Wenn (t, x t) nicht gewählt wird, dann wähle eine zufällige, T -elementige Stichprobe aus der Menge {(i, x i ) 1 i t 1}: Wende die Induktionshypothese an. Und wenn (t, x t ) gewählt wird? Stichproben Reservoir Sampling 6 / 74
Wenn (t, x t ) gewählt wird: Dann ist eine zufällige Stichprobe mit T 1 Elementen aus der Menge {(i, x i ) 1 i t 1} zu wählen. Stichproben Reservoir Sampling 7 / 74
Wenn (t, x t ) gewählt wird: Dann ist eine zufällige Stichprobe mit T 1 Elementen aus der Menge {(i, x i ) 1 i t 1} zu wählen. Was macht Reservoir Sampling? Stichproben Reservoir Sampling 7 / 74
Wenn (t, x t ) gewählt wird: Dann ist eine zufällige Stichprobe mit T 1 Elementen aus der Menge {(i, x i ) 1 i t 1} zu wählen. Was macht Reservoir Sampling? Die alte Stichprobe X ist eine zufällige T -elementige Teilmenge von {(i, x i ) 1 i t 1}. Stichproben Reservoir Sampling 7 / 74
Wenn (t, x t ) gewählt wird: Dann ist eine zufällige Stichprobe mit T 1 Elementen aus der Menge {(i, x i ) 1 i t 1} zu wählen. Was macht Reservoir Sampling? Die alte Stichprobe X ist eine zufällige T -elementige Teilmenge von {(i, x i ) 1 i t 1}. Reservoir Sampling entfernt ein zufälliges Element aus X und erhält damit eine zufällige Stichprobe aus {(i, x i ) 1 i t 1} mit T 1 Elementen. Stichproben Reservoir Sampling 7 / 74
Wenn (t, x t ) gewählt wird: Dann ist eine zufällige Stichprobe mit T 1 Elementen aus der Menge {(i, x i ) 1 i t 1} zu wählen. Was macht Reservoir Sampling? Die alte Stichprobe X ist eine zufällige T -elementige Teilmenge von {(i, x i ) 1 i t 1}. Reservoir Sampling entfernt ein zufälliges Element aus X und erhält damit eine zufällige Stichprobe aus {(i, x i ) 1 i t 1} mit T 1 Elementen. Diese modifizierte Stichprobe wird um (t, x t ) vergrößert und wir erhalten eine zufällige T -elementige Stichprobe X. Stichproben Reservoir Sampling 7 / 74
Wenn (t, x t ) gewählt wird: Dann ist eine zufällige Stichprobe mit T 1 Elementen aus der Menge {(i, x i ) 1 i t 1} zu wählen. Was macht Reservoir Sampling? Die alte Stichprobe X ist eine zufällige T -elementige Teilmenge von {(i, x i ) 1 i t 1}. Reservoir Sampling entfernt ein zufälliges Element aus X und erhält damit eine zufällige Stichprobe aus {(i, x i ) 1 i t 1} mit T 1 Elementen. Diese modifizierte Stichprobe wird um (t, x t ) vergrößert und wir erhalten eine zufällige T -elementige Stichprobe X. Reservoir Sampling funktioniert. Stichproben Reservoir Sampling 7 / 74
Approximative Berechnung des Medians Stichproben Median Berechnung 8 / 74
Berechnung des 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. Stichproben Median Berechnung 9 / 74
Berechnung des 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. - δ, ε [0, 1] seien vorgegeben. Stichproben Median Berechnung 9 / 74
Berechnung des 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. - δ, ε [0, 1] seien vorgegeben. - Arbeite mit einer Stichprobe der Größe s = c 1 ε 2 ln 1 δ für ein hinreichend großes c. Stichproben Median Berechnung 9 / 74
Berechnung des 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. - δ, ε [0, 1] seien vorgegeben. - Arbeite mit einer Stichprobe der Größe s = c 1 ε 2 ln 1 δ für ein hinreichend großes c. Dann liegt der Rang des ausgegebenen Schlüssels mit Wahrscheinlichkeit 1 δ in dem Intervall [ n 2 ε n, n 2 + ε n]. Stichproben Median Berechnung 9 / 74
Analyse x unten (bzw. x oben ) sei der Schlüssel vom Rang ( 1 2 ε) n (bzw. Rang ( 1 2 + ε) n). Wir haben nur Pech, wenn 50% aller Schlüssel der Stichprobe unterhalb von x unten (bzw. oberhalb von x oben ) liegen. Stichproben Median Berechnung 10 / 74
Analyse x unten (bzw. x oben ) sei der Schlüssel vom Rang ( 1 2 ε) n (bzw. Rang ( 1 2 + ε) n). Wir haben nur Pech, wenn 50% aller Schlüssel der Stichprobe unterhalb von x unten (bzw. oberhalb von x oben ) liegen. Ein Schlüssel kleiner als xunten wird mit Wahrscheinlichkeit ( 1 2 ε) gezogen. Die erwartete Anzahl dieser kleinen Schlüssel ist deshalb höchstens ( 1 2 ε) s. Stichproben Median Berechnung 10 / 74
Analyse x unten (bzw. x oben ) sei der Schlüssel vom Rang ( 1 2 ε) n (bzw. Rang ( 1 2 + ε) n). Wir haben nur Pech, wenn 50% aller Schlüssel der Stichprobe unterhalb von x unten (bzw. oberhalb von x oben ) liegen. Ein Schlüssel kleiner als xunten wird mit Wahrscheinlichkeit ( 1 2 ε) gezogen. Die erwartete Anzahl dieser kleinen Schlüssel ist deshalb höchstens ( 1 2 ε) s. Wir haben also nur Pech, wenn sogar 1 2 s = ( 1 ε 2 ε) s (1 + 1/2 ε ) kleine Schlüssel gezogen werden. Stichproben Median Berechnung 10 / 74
Analyse x unten (bzw. x oben ) sei der Schlüssel vom Rang ( 1 2 ε) n (bzw. Rang ( 1 2 + ε) n). Wir haben nur Pech, wenn 50% aller Schlüssel der Stichprobe unterhalb von x unten (bzw. oberhalb von x oben ) liegen. Ein Schlüssel kleiner als xunten wird mit Wahrscheinlichkeit ( 1 2 ε) gezogen. Die erwartete Anzahl dieser kleinen Schlüssel ist deshalb höchstens ( 1 2 ε) s. Wir haben also nur Pech, wenn sogar 1 2 s = ( 1 ε 2 ε) s (1 + 1/2 ε ) kleine Schlüssel gezogen werden. Mit der Chernoff-Schranke passiert dies mit Wahrscheinlichkeit höchstens e Ω(ε2 s). e Ω(ε2 s) δ gilt, falls ε 2 s = Stichproben Median Berechnung 10 / 74
Analyse x unten (bzw. x oben ) sei der Schlüssel vom Rang ( 1 2 ε) n (bzw. Rang ( 1 2 + ε) n). Wir haben nur Pech, wenn 50% aller Schlüssel der Stichprobe unterhalb von x unten (bzw. oberhalb von x oben ) liegen. Ein Schlüssel kleiner als xunten wird mit Wahrscheinlichkeit ( 1 2 ε) gezogen. Die erwartete Anzahl dieser kleinen Schlüssel ist deshalb höchstens ( 1 2 ε) s. Wir haben also nur Pech, wenn sogar 1 2 s = ( 1 ε 2 ε) s (1 + 1/2 ε ) kleine Schlüssel gezogen werden. Mit der Chernoff-Schranke passiert dies mit Wahrscheinlichkeit höchstens e Ω(ε2 s). e Ω(ε2 s) δ gilt, falls ε 2 s = Ω(ln 1 δ ). Stichproben Median Berechnung 10 / 74
Analyse x unten (bzw. x oben ) sei der Schlüssel vom Rang ( 1 2 ε) n (bzw. Rang ( 1 2 + ε) n). Wir haben nur Pech, wenn 50% aller Schlüssel der Stichprobe unterhalb von x unten (bzw. oberhalb von x oben ) liegen. Ein Schlüssel kleiner als xunten wird mit Wahrscheinlichkeit ( 1 2 ε) gezogen. Die erwartete Anzahl dieser kleinen Schlüssel ist deshalb höchstens ( 1 2 ε) s. Wir haben also nur Pech, wenn sogar 1 2 s = ( 1 ε 2 ε) s (1 + 1/2 ε ) kleine Schlüssel gezogen werden. Mit der Chernoff-Schranke passiert dies mit Wahrscheinlichkeit höchstens e Ω(ε2 s). e Ω(ε2 s) δ gilt, falls ε 2 s = Ω(ln 1 δ ). Die Behauptung folgt, da die Anzahl der großen Schlüssel ein analoges Verhalten zeigt. Stichproben Median Berechnung 10 / 74
Clustering Stichproben Clustering 11 / 74
Clustering: Das k-zentren Problem - Ein vollständiger ungerichteter Graph G = (V, E) und eine Metrik d : V 2 R 0 ist gegeben. Stichproben Clustering 12 / 74
Clustering: Das k-zentren Problem - Ein vollständiger ungerichteter Graph G = (V, E) und eine Metrik d : V 2 R 0 ist gegeben. - Für ein fixiertes k bestimme eine Menge Z V von k Knoten, so dass der maximale Abstand zu einem Zentrum, also kleinstmöglich ist. max min v V w Z d(v, w), Stichproben Clustering 12 / 74
Clustering: Das k-zentren Problem - Ein vollständiger ungerichteter Graph G = (V, E) und eine Metrik d : V 2 R 0 ist gegeben. - Für ein fixiertes k bestimme eine Menge Z V von k Knoten, so dass der maximale Abstand zu einem Zentrum, also kleinstmöglich ist. max min v V w Z d(v, w), Minimiere den Radius, also den größten Abstand eines Punktes vom nächstliegenden Cluster-Zentrum. Stichproben Clustering 12 / 74
Clustering: Das k-zentren Problem - Ein vollständiger ungerichteter Graph G = (V, E) und eine Metrik d : V 2 R 0 ist gegeben. - Für ein fixiertes k bestimme eine Menge Z V von k Knoten, so dass der maximale Abstand zu einem Zentrum, also kleinstmöglich ist. max min v V w Z d(v, w), Minimiere den Radius, also den größten Abstand eines Punktes vom nächstliegenden Cluster-Zentrum. Die Sprachenversion des k-zentren Problems ist NP-vollständig. Bestimme eine approximative Lösung! Stichproben Clustering 12 / 74
Clustering für Datenströme 1 Die Zahl k der erlaubten Cluster-Zentren ist gegeben ebenso wie die Metrik d. Die Folge (x j j) bezeichne den Datenstrom. Stichproben Clustering 13 / 74
Clustering für Datenströme 1 Die Zahl k der erlaubten Cluster-Zentren ist gegeben ebenso wie die Metrik d. Die Folge (x j j) bezeichne den Datenstrom. 2 Benutze Reservoir Sampling, um eine Stichprobe S der Größe s zu ziehen. Stichproben Clustering 13 / 74
Clustering für Datenströme 1 Die Zahl k der erlaubten Cluster-Zentren ist gegeben ebenso wie die Metrik d. Die Folge (x j j) bezeichne den Datenstrom. 2 Benutze Reservoir Sampling, um eine Stichprobe S der Größe s zu ziehen. 3 Setze Z = {x j } für einen beliebigen Schlüssel x j S. Stichproben Clustering 13 / 74
Clustering für Datenströme 1 Die Zahl k der erlaubten Cluster-Zentren ist gegeben ebenso wie die Metrik d. Die Folge (x j j) bezeichne den Datenstrom. 2 Benutze Reservoir Sampling, um eine Stichprobe S der Größe s zu ziehen. 3 Setze Z = {x j } für einen beliebigen Schlüssel x j 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 x i in die Menge Z ein. Stichproben Clustering 13 / 74
Clustering für Datenströme 1 Die Zahl k der erlaubten Cluster-Zentren ist gegeben ebenso wie die Metrik d. Die Folge (x j j) bezeichne den Datenstrom. 2 Benutze Reservoir Sampling, um eine Stichprobe S der Größe s zu ziehen. 3 Setze Z = {x j } für einen beliebigen Schlüssel x j 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 x i in die Menge Z ein. 4 Z wird als Menge der Cluster-Zentren ausgegeben. Stichproben Clustering 13 / 74
Analyse Das Clustering ist 2-approximativ auf der Stichprobe. Der optimale Radius sei opt. Angenommen, es gibt einen Punkt p S mit einem Abstand von größer als 2 opt zu allen Punkten in Z. Stichproben Clustering 14 / 74
Analyse Das Clustering ist 2-approximativ auf der Stichprobe. Der optimale Radius sei opt. Angenommen, es gibt einen Punkt p S mit einem Abstand von größer als 2 opt zu allen Punkten in Z. Nach Konstruktion von Z haben je zwei Punkte in Z {p} einen Abstand von größer als 2 opt. Stichproben Clustering 14 / 74
Analyse Das Clustering ist 2-approximativ auf der Stichprobe. Der optimale Radius sei opt. Angenommen, es gibt einen Punkt p S mit einem Abstand von größer als 2 opt zu allen Punkten in Z. Nach Konstruktion von Z haben je zwei Punkte in Z {p} einen Abstand von größer als 2 opt. Die Punkte aus Z {p} gehören zu verschiedenen Clustern der optimalen Lösung: Stichproben Clustering 14 / 74
Analyse Das Clustering ist 2-approximativ auf der Stichprobe. Der optimale Radius sei opt. Angenommen, es gibt einen Punkt p S mit einem Abstand von größer als 2 opt zu allen Punkten in Z. Nach Konstruktion von Z haben je zwei Punkte in Z {p} einen Abstand von größer als 2 opt. Die Punkte aus Z {p} gehören 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. Stichproben Clustering 14 / 74
Analyse Das Clustering ist 2-approximativ auf der Stichprobe. Der optimale Radius sei opt. Angenommen, es gibt einen Punkt p S mit einem Abstand von größer als 2 opt zu allen Punkten in Z. Nach Konstruktion von Z haben je zwei Punkte in Z {p} einen Abstand von größer als 2 opt. Die Punkte aus Z {p} gehören 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. Die optimale Lösung hat nur k Clusterpunkte: Widerspruch. Stichproben Clustering 14 / 74
Der Algorithmus funktioniert für die Stichprobe, aber wie gut ist die Stichprobe? Stichproben Clustering 15 / 74
Das Resultat Ein Datenstrom der Länge n sei gegeben. - Wähle eine Stichprobe der Größe s = k ln n+ln( 1 δ ) ε. Stichproben Clustering 16 / 74
Das Resultat Ein Datenstrom der Länge n sei gegeben. - Wähle eine Stichprobe der Größe s = k ln n+ln( 1 δ ) ε. - Dann ist unser Clustering mit Wahrscheinlichkeit mindestens 1 δ auf einer Teilmenge der Größe (1 ε) n 2-approximativ. Stichproben Clustering 16 / 74
Das Resultat Ein Datenstrom der Länge n sei gegeben. - Wähle eine Stichprobe der Größe s = k ln n+ln( 1 δ ) ε. - Dann ist unser Clustering mit Wahrscheinlichkeit mindestens 1 δ auf einer Teilmenge der Größe (1 ε) n 2-approximativ. Warum müssen wir eine kleine Menge von Punkten ausschließen? Stichproben Clustering 16 / 74
Das Resultat Ein Datenstrom der Länge n sei gegeben. - Wähle eine Stichprobe der Größe s = k ln n+ln( 1 δ ) ε. - Dann ist unser Clustering mit Wahrscheinlichkeit mindestens 1 δ auf einer Teilmenge der Größe (1 ε) n 2-approximativ. Warum müssen wir eine kleine Menge von Punkten ausschließen? Einige wenige Ausreißer gehören hochwahrscheinlich nicht zur Stichprobe. Stichproben Clustering 16 / 74
Die Wahrscheinlichkeit schlechter Zentren - Sei opt der optimale Radius. Stichproben Clustering 17 / 74
Die Wahrscheinlichkeit schlechter Zentren - Sei opt der optimale Radius. - Sei Z eine schlechte Zentrenmenge: Die Menge Weitweg(Z ) = {x i d(x i, 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. Stichproben Clustering 17 / 74
Die Wahrscheinlichkeit schlechter Zentren - Sei opt der optimale Radius. - Sei Z eine schlechte Zentrenmenge: Die Menge Weitweg(Z ) = {x i d(x i, 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. Mit welcher Wahrscheinlichkeit verfehlt die Stichprobe S die Menge Weitweg(Z )? prob[ S Weitweg(Z ) = ] Stichproben Clustering 17 / 74
Die Wahrscheinlichkeit schlechter Zentren - Sei opt der optimale Radius. - Sei Z eine schlechte Zentrenmenge: Die Menge Weitweg(Z ) = {x i d(x i, 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. Mit welcher Wahrscheinlichkeit verfehlt die Stichprobe S die Menge Weitweg(Z )? prob[ S Weitweg(Z ) = ] ( (1 ε)n ) s n Stichproben Clustering 17 / 74
Die Wahrscheinlichkeit schlechter Zentren - Sei opt der optimale Radius. - Sei Z eine schlechte Zentrenmenge: Die Menge Weitweg(Z ) = {x i d(x i, 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. Mit welcher Wahrscheinlichkeit verfehlt die Stichprobe S die Menge Weitweg(Z )? prob[ S Weitweg(Z ) = ] ( (1 ε)n ) s = (1 ε) s n Stichproben Clustering 17 / 74
Die Wahrscheinlichkeit schlechter Zentren - Sei opt der optimale Radius. - Sei Z eine schlechte Zentrenmenge: Die Menge Weitweg(Z ) = {x i d(x i, 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. Mit welcher Wahrscheinlichkeit verfehlt die Stichprobe S die Menge Weitweg(Z )? prob[ S Weitweg(Z ) = ] ( (1 ε)n ) s = (1 ε) s n e ε s Stichproben Clustering 17 / 74
Die Wahrscheinlichkeit schlechter Zentren - Sei opt der optimale Radius. - Sei Z eine schlechte Zentrenmenge: Die Menge Weitweg(Z ) = {x i d(x i, 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. Mit welcher Wahrscheinlichkeit verfehlt die Stichprobe S die Menge Weitweg(Z )? (1 ε)n prob[ S Weitweg(Z ) = ] ( ) s = (1 ε) s n e ε s = e (k ln n+ln( 1 δ )) Stichproben Clustering 17 / 74
Die Wahrscheinlichkeit schlechter Zentren - Sei opt der optimale Radius. - Sei Z eine schlechte Zentrenmenge: Die Menge Weitweg(Z ) = {x i d(x i, 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. Mit welcher Wahrscheinlichkeit verfehlt die Stichprobe S die Menge Weitweg(Z )? prob[ S Weitweg(Z ) = ] (1 ε)n ( ) s = (1 ε) s n e ε s = e (k ln n+ln( 1 δ )) = δ n k Stichproben Clustering 17 / 74
Die Wahrscheinlichkeit schlechter Zentren - Sei opt der optimale Radius. - Sei Z eine schlechte Zentrenmenge: Die Menge Weitweg(Z ) = {x i d(x i, 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. Mit welcher Wahrscheinlichkeit verfehlt die Stichprobe S die Menge Weitweg(Z )? (1 ε)n prob[ S Weitweg(Z ) = ] ( ) s = (1 ε) s n e ε s = e (k ln n+ln( 1 δ )) = δ n ( ) k n δ/. k Stichproben Clustering 17 / 74
Die Wahrscheinlichkeit schlechter Zentren - Sei opt der optimale Radius. - Sei Z eine schlechte Zentrenmenge: Die Menge Weitweg(Z ) = {x i d(x i, 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. Mit welcher Wahrscheinlichkeit verfehlt die Stichprobe S die Menge Weitweg(Z )? (1 ε)n prob[ S Weitweg(Z ) = ] ( ) s = (1 ε) s n e ε s = e (k ln n+ln( 1 δ )) = δ n ( ) k n δ/. k Und wenn Weitweg(Z ) getroffen wird? Stichproben Clustering 17 / 74
Wenn die Stichprobe S die Menge Weitweg(Z ) trifft: - Dann gibt es s S mit d(s, z) > 2opt für alle z Z. Stichproben Clustering 18 / 74
Wenn die Stichprobe S die Menge Weitweg(Z ) trifft: - Dann gibt es s S mit d(s, z) > 2opt für alle z Z. - Aber wir berechnen ein Clustering, das auf Stichprobe S 2-approximativ oder besser ist: Widerspruch zur Definition von opt. Stichproben Clustering 18 / 74
Wenn die Stichprobe S die Menge Weitweg(Z ) trifft: - Dann gibt es s S mit d(s, z) > 2opt für alle z Z. - Aber wir berechnen ein Clustering, das auf Stichprobe S 2-approximativ oder besser ist: Widerspruch zur Definition von opt. Die Wahrscheinlichkeit irgendeine schlechte Zentrenmenge zu wählen, ist somit höchstens ( ) ( ) n n δ/ = δ. k k Stichproben Clustering 18 / 74
Wenn die Stichprobe S die Menge Weitweg(Z ) trifft: - Dann gibt es s S mit d(s, z) > 2opt für alle z Z. - Aber wir berechnen ein Clustering, das auf Stichprobe S 2-approximativ oder besser ist: Widerspruch zur Definition von opt. Die Wahrscheinlichkeit irgendeine schlechte Zentrenmenge zu wählen, ist somit höchstens ( ) ( ) n n δ/ = δ. k k Unser Clustering wird mit Wahrscheinlichkeit mindestens 1 δ eine Zentrenmenge Z mit Weitweg(Z ) ε n bestimmen und das war zu zeigen. Stichproben Clustering 18 / 74
Was können Stichproben nicht? Stichproben Die Grenzen 19 / 74
Die Grenzen der Stichproben-Methode Bestimme die Anzahl verschiedener Schlüssel approximativ. Stichproben Die Grenzen 20 / 74
Die Grenzen der Stichproben-Methode Bestimme die Anzahl verschiedener Schlüssel approximativ. Betrachte alle (deterministischen oder probabilistischen) Algorithmen zur Stichproben-Erstellung, die nur r << n Schlüssel inspizieren. Reservoir Sampling wird erfasst. Stichproben Die Grenzen 20 / 74
Die Grenzen der Stichproben-Methode Bestimme die Anzahl verschiedener Schlüssel approximativ. Betrachte alle (deterministischen oder probabilistischen) Algorithmen zur Stichproben-Erstellung, die nur r << n Schlüssel inspizieren. Reservoir Sampling wird erfasst. Können diese Algorithmen die beiden folgenden Szenarien voneinander 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. Stichproben Die Grenzen 20 / 74
Die Grenzen der Stichproben-Methode Bestimme die Anzahl verschiedener Schlüssel approximativ. Betrachte alle (deterministischen oder probabilistischen) Algorithmen zur Stichproben-Erstellung, die nur r << n Schlüssel inspizieren. Reservoir Sampling wird erfasst. Können diese Algorithmen die beiden folgenden Szenarien voneinander 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. Für eine approximative Bestimmung der Anzahl verschiedener Schlüssel muss ein Algorithmus beide Szenarien voneinander unterscheiden. Stichproben Die Grenzen 20 / 74
Unterscheidung der beiden Szenarien Sei A ein Algorithmus und sei X i die Zufallsvariable, die den iten von A ausgewählten Schlüssel als Wert besitzt. Dann gilt prob[ X i = 1 X 1 = X 2 = = X i 1 = 1 ] = n i k + 1 n i + 1, wenn nur Eingaben des Szenarios 2 auftreten. Stichproben Die Grenzen 21 / 74
Unterscheidung der beiden Szenarien Sei A ein Algorithmus und sei X i die Zufallsvariable, die den iten von A ausgewählten Schlüssel als Wert besitzt. Dann gilt prob[ X i = 1 X 1 = X 2 = = X i 1 = 1 ] = n i k + 1 n i + 1, wenn nur Eingaben des Szenarios 2 auftreten. Wir betrachten Szenario 2. Angenommen, die ersten i 1 inspizierten Schlüssel besitzen sämtlich den Wert 1: Stichproben Die Grenzen 21 / 74
Unterscheidung der beiden Szenarien Sei A ein Algorithmus und sei X i die Zufallsvariable, die den iten von A ausgewählten Schlüssel als Wert besitzt. Dann gilt prob[ X i = 1 X 1 = X 2 = = X i 1 = 1 ] = n i k + 1 n i + 1, wenn nur Eingaben des Szenarios 2 auftreten. Wir betrachten Szenario 2. Angenommen, die ersten i 1 inspizierten Schlüssel besitzen sämtlich den Wert 1: Von den n k Schlüsseln mit Wert 1 verbleiben somit n k (i 1) noch nicht inspizierte Schlüssel mit Wert 1. Stichproben Die Grenzen 21 / 74
Unterscheidung der beiden Szenarien Sei A ein Algorithmus und sei X i die Zufallsvariable, die den iten von A ausgewählten Schlüssel als Wert besitzt. Dann gilt prob[ X i = 1 X 1 = X 2 = = X i 1 = 1 ] = n i k + 1 n i + 1, wenn nur Eingaben des Szenarios 2 auftreten. Wir betrachten Szenario 2. Angenommen, die ersten i 1 inspizierten Schlüssel besitzen sämtlich den Wert 1: Von den n k Schlüsseln mit Wert 1 verbleiben somit n k (i 1) noch nicht inspizierte Schlüssel mit Wert 1. Aber insgesamt n (i 1) Schlüssel wurden noch nicht inspiziert und die Behauptung folgt. Stichproben Die Grenzen 21 / 74
Wie wahrscheinlich sind Stichproben nur mit Einsen? Sei I das Ereignis, dass alle r inspizierten Schlüssel den Wert 1 besitzen. Stichproben Die Grenzen 22 / 74
Wie wahrscheinlich sind Stichproben nur mit Einsen? Sei I das Ereignis, dass alle r inspizierten Schlüssel den Wert 1 besitzen. prob[ I ] = Π r i=1 prob[ X i = 1 X 1 = X 2 = = X i 1 = 1 ] Stichproben Die Grenzen 22 / 74
Wie wahrscheinlich sind Stichproben nur mit Einsen? Sei I das Ereignis, dass alle r inspizierten Schlüssel den Wert 1 besitzen. prob[ I ] = Π r i=1 prob[ X i = 1 X 1 = X 2 = = X i 1 = 1 ] = Π r n i k + 1 i=1 n i + 1 Stichproben Die Grenzen 22 / 74
Wie wahrscheinlich sind Stichproben nur mit Einsen? Sei I das Ereignis, dass alle r inspizierten Schlüssel den Wert 1 besitzen. prob[ I ] = Π r i=1 prob[ X i = 1 X 1 = X 2 = = X i 1 = 1 ] = Π r n i k + 1 i=1 n i + 1 ( ) n r k + 1 r ( ) n r k r n r + 1 n r Stichproben Die Grenzen 22 / 74
Wie wahrscheinlich sind Stichproben nur mit Einsen? Sei I das Ereignis, dass alle r inspizierten Schlüssel den Wert 1 besitzen. prob[ I ] = Π r i=1 prob[ X i = 1 X 1 = X 2 = = X i 1 = 1 ] = Π r n i k + 1 i=1 n i + 1 ( ) n r k + 1 r ( ) n r k r n r + 1 n r ( = 1 k ) r n r Stichproben Die Grenzen 22 / 74
Wie wahrscheinlich sind Stichproben nur mit Einsen? Sei I das Ereignis, dass alle r inspizierten Schlüssel den Wert 1 besitzen. prob[ I ] = Π r i=1 prob[ X i = 1 X 1 = X 2 = = X i 1 = 1 ] = Π r n i k + 1 i=1 n i + 1 ( ) n r k + 1 r ( ) n r k r n r + 1 n r ( = 1 k ) r e 2 k r n r, falls k n r n r 1 2, denn 1 z e 2 z für 0 z 1 2. Stichproben Die Grenzen 22 / 74
Wie wahrscheinlich sind Stichproben nur aus Einsen? Es ist prob[ I ] e 2 k r n r, falls k n r 1 2. Stichproben Die Grenzen 23 / 74
Wie wahrscheinlich sind Stichproben nur aus Einsen? Es ist prob[ I ] e 2 k r n r, falls k n r 1 2. Wir setzen k = n r 2 r ln(2) und prob[ I ] 1 2 folgt. Stichproben Die Grenzen 23 / 74
Wie wahrscheinlich sind Stichproben nur aus Einsen? Es ist prob[ I ] e 2 k r n r, falls k n r 1 2. Wir setzen k = n r 2 r ln(2) und prob[ I ] 1 2 folgt. Es ist für r 2. k n r 1 2 Stichproben Die Grenzen 23 / 74
Wie wahrscheinlich sind Stichproben nur aus Einsen? Es ist prob[ I ] e 2 k r n r, falls k n r 1 2. Wir setzen k = n r 2 r ln(2) und prob[ I ] 1 2 folgt. Es ist für r 2. k n r 1 2 - Es gelte k = n r 2 r ln(2) sowie r 2. - Wenn Algorithmus A nur r Schlüssel inspiziert, dann bestimmt A mit Wahrscheinlichkeit 1/2 eine Stichprobe nur aus Einsen, obwohl der Datenstrom k verschiedene Schlüssel besitzt. Stichproben Die Grenzen 23 / 74
Kommunikation Das 2-Parteien Kommunikationsmodell: - Zwei Parteien, Alice und Bob, besitzen Eingaben x bzw. y, wobei weder Alice noch Bob die Eingabe des Partners kennt. Häufigkeitsmomente Kommunikation 24 / 74
Kommunikation Das 2-Parteien Kommunikationsmodell: - Zwei Parteien, Alice und Bob, besitzen Eingaben x bzw. y, wobei weder Alice noch Bob die Eingabe des Partners kennt. - Alice schickt eine Nachricht message(x) an Bob. Bob muss das Ergebnis nur in Abhängigkeit von seiner Eingabe y und der von Alice geschickten Nachricht berechnen. Häufigkeitsmomente Kommunikation 24 / 74
Kommunikation Das 2-Parteien Kommunikationsmodell: - Zwei Parteien, Alice und Bob, besitzen Eingaben x bzw. y, wobei weder Alice noch Bob die Eingabe des Partners kennt. - Alice schickt eine Nachricht message(x) an Bob. Bob muss das Ergebnis nur in Abhängigkeit von seiner Eingabe y und der von Alice geschickten Nachricht berechnen. - Alice und Bob besitzen, im Rahmen der ihnen zur Verfügung stehenden Informationen, eine unbeschränkte Rechenkraft. Häufigkeitsmomente Kommunikation 24 / 74
Kommunikation Das 2-Parteien Kommunikationsmodell: - Zwei Parteien, Alice und Bob, besitzen Eingaben x bzw. y, wobei weder Alice noch Bob die Eingabe des Partners kennt. - Alice schickt eine Nachricht message(x) an Bob. Bob muss das Ergebnis nur in Abhängigkeit von seiner Eingabe y und der von Alice geschickten Nachricht berechnen. - Alice und Bob besitzen, im Rahmen der ihnen zur Verfügung stehenden Informationen, eine unbeschränkte Rechenkraft. Deterministische oder probabilistische Protokolle bestimmen die Nachricht von Alice und die von Bob berechnete Antwort. Häufigkeitsmomente Kommunikation 24 / 74
Kommunikation Das 2-Parteien Kommunikationsmodell: - Zwei Parteien, Alice und Bob, besitzen Eingaben x bzw. y, wobei weder Alice noch Bob die Eingabe des Partners kennt. - Alice schickt eine Nachricht message(x) an Bob. Bob muss das Ergebnis nur in Abhängigkeit von seiner Eingabe y und der von Alice geschickten Nachricht berechnen. - Alice und Bob besitzen, im Rahmen der ihnen zur Verfügung stehenden Informationen, eine unbeschränkte Rechenkraft. Deterministische oder probabilistische Protokolle bestimmen die Nachricht von Alice und die von Bob berechnete Antwort. Das Ziel: Berechne einen Funktionswert f(x, y) zumindest approximativ. Minimiere die Länge der längsten von Alice geschickten Nachricht. Häufigkeitsmomente Kommunikation 24 / 74
Kommunikation: Ein Beispiel - Alice erhält x {0, 1} n, Bob erhält y {0, 1} n. - Entscheide, ob x = y gilt. Häufigkeitsmomente Kommunikation 25 / 74
Kommunikation: Ein Beispiel - Alice erhält x {0, 1} n, Bob erhält y {0, 1} n. - Entscheide, ob x = y gilt. Deterministische Kommunikation: Häufigkeitsmomente Kommunikation 25 / 74
Kommunikation: Ein Beispiel - Alice erhält x {0, 1} n, Bob erhält y {0, 1} n. - Entscheide, ob x = y gilt. Deterministische Kommunikation: Angenommen, Alice schickt für die beiden Zeichenketten x 1, x 2 {0, 1} n dieselbe Nachricht m. Häufigkeitsmomente Kommunikation 25 / 74
Kommunikation: Ein Beispiel - Alice erhält x {0, 1} n, Bob erhält y {0, 1} n. - Entscheide, ob x = y gilt. Deterministische Kommunikation: Angenommen, Alice schickt für die beiden Zeichenketten x 1, x 2 {0, 1} n dieselbe Nachricht m. Bob weiss nicht, ob Alice die Eingabe x1 oder x 2 besitzt und kann nicht fehlerfrei arbeiten. Häufigkeitsmomente Kommunikation 25 / 74
Kommunikation: Ein Beispiel - Alice erhält x {0, 1} n, Bob erhält y {0, 1} n. - Entscheide, ob x = y gilt. Deterministische Kommunikation: Angenommen, Alice schickt für die beiden Zeichenketten x 1, x 2 {0, 1} n dieselbe Nachricht m. Bob weiss nicht, ob Alice die Eingabe x1 oder x 2 besitzt und kann nicht fehlerfrei arbeiten. Alice wird Nachrichten mit mindestens n Bits verschicken müssen. Häufigkeitsmomente Kommunikation 25 / 74
Kommunikation: Ein Beispiel - Alice erhält x {0, 1} n, Bob erhält y {0, 1} n. - Entscheide, ob x = y gilt. Deterministische Kommunikation: Angenommen, Alice schickt für die beiden Zeichenketten x 1, x 2 {0, 1} n dieselbe Nachricht m. Bob weiss nicht, ob Alice die Eingabe x1 oder x 2 besitzt und kann nicht fehlerfrei arbeiten. Alice wird Nachrichten mit mindestens n Bits verschicken müssen. Probabilistische Kommunikation: Alice und Bob interpretieren ihre Eingaben als Zahlen 0 x, y 2 n 1. Häufigkeitsmomente Kommunikation 25 / 74
Kommunikation: Ein Beispiel - Alice erhält x {0, 1} n, Bob erhält y {0, 1} n. - Entscheide, ob x = y gilt. Deterministische Kommunikation: Angenommen, Alice schickt für die beiden Zeichenketten x 1, x 2 {0, 1} n dieselbe Nachricht m. Bob weiss nicht, ob Alice die Eingabe x1 oder x 2 besitzt und kann nicht fehlerfrei arbeiten. Alice wird Nachrichten mit mindestens n Bits verschicken müssen. Probabilistische Kommunikation: Alice und Bob interpretieren ihre Eingaben als Zahlen 0 x, y 2 n 1. Alice würfelt eine Primzahl p n 2 aus und verschickt das Paar (x mod p, p) mit O(log 2 n) Bits. Häufigkeitsmomente Kommunikation 25 / 74
Kommunikation: Ein Beispiel - Alice erhält x {0, 1} n, Bob erhält y {0, 1} n. - Entscheide, ob x = y gilt. Deterministische Kommunikation: Angenommen, Alice schickt für die beiden Zeichenketten x 1, x 2 {0, 1} n dieselbe Nachricht m. Bob weiss nicht, ob Alice die Eingabe x1 oder x 2 besitzt und kann nicht fehlerfrei arbeiten. Alice wird Nachrichten mit mindestens n Bits verschicken müssen. Probabilistische Kommunikation: Alice und Bob interpretieren ihre Eingaben als Zahlen 0 x, y 2 n 1. Alice würfelt eine Primzahl p n 2 aus und verschickt das Paar (x mod p, p) mit O(log 2 n) Bits. Bob entscheidet auf x y, wenn x mod p y mod p: Kein Fehler. Häufigkeitsmomente Kommunikation 25 / 74
Kommunikation: Ein Beispiel - Alice erhält x {0, 1} n, Bob erhält y {0, 1} n. - Entscheide, ob x = y gilt. Deterministische Kommunikation: Angenommen, Alice schickt für die beiden Zeichenketten x 1, x 2 {0, 1} n dieselbe Nachricht m. Bob weiss nicht, ob Alice die Eingabe x1 oder x 2 besitzt und kann nicht fehlerfrei arbeiten. Alice wird Nachrichten mit mindestens n Bits verschicken müssen. Probabilistische Kommunikation: Alice und Bob interpretieren ihre Eingaben als Zahlen 0 x, y 2 n 1. Alice würfelt eine Primzahl p n 2 aus und verschickt das Paar (x mod p, p) mit O(log 2 n) Bits. Bob entscheidet auf x y, wenn x mod p y mod p: Kein Fehler. Bob entscheidet auf x = y, wenn x mod p = y mod p: Kleiner Fehler. Häufigkeitsmomente Kommunikation 25 / 74
Kommunikation und Streaming Data Warum interessiert uns das Kommunikationsmodell? Häufigkeitsmomente Kommunikation 26 / 74
Kommunikation und Streaming Data Warum interessiert uns das Kommunikationsmodell? Sei A ein Streaming Data Algorithmus, der auf Eingaben x 1 x 2 mit x 1, x 2 {0, 1} n/2 höchstens Speicherplatz s(n) benutzt. Häufigkeitsmomente Kommunikation 26 / 74
Kommunikation und Streaming Data Warum interessiert uns das Kommunikationsmodell? Sei A ein Streaming Data Algorithmus, der auf Eingaben x 1 x 2 mit x 1, x 2 {0, 1} n/2 höchstens Speicherplatz s(n) benutzt. Simuliere die Berechnung von A durch ein Kommunikationsprotokoll: Häufigkeitsmomente Kommunikation 26 / 74
Kommunikation und Streaming Data Warum interessiert uns das Kommunikationsmodell? Sei A ein Streaming Data Algorithmus, der auf Eingaben x 1 x 2 mit x 1, x 2 {0, 1} n/2 höchstens Speicherplatz s(n) benutzt. Simuliere die Berechnung von A durch ein Kommunikationsprotokoll: Alice erhält x 1, Bob erhält x 2. Häufigkeitsmomente Kommunikation 26 / 74
Kommunikation und Streaming Data Warum interessiert uns das Kommunikationsmodell? Sei A ein Streaming Data Algorithmus, der auf Eingaben x 1 x 2 mit x 1, x 2 {0, 1} n/2 höchstens Speicherplatz s(n) benutzt. Simuliere die Berechnung von A durch ein Kommunikationsprotokoll: Alice erhält x 1, Bob erhält x 2. Wenn A die Eingabe x1 abgearbeitet hat, sei w {0, 1} s(n) der Inhalt des Speichers. Häufigkeitsmomente Kommunikation 26 / 74
Kommunikation und Streaming Data Warum interessiert uns das Kommunikationsmodell? Sei A ein Streaming Data Algorithmus, der auf Eingaben x 1 x 2 mit x 1, x 2 {0, 1} n/2 höchstens Speicherplatz s(n) benutzt. Simuliere die Berechnung von A durch ein Kommunikationsprotokoll: Alice erhält x 1, Bob erhält x 2. Wenn A die Eingabe x1 abgearbeitet hat, sei w {0, 1} s(n) der Inhalt des Speichers. Alice kennt w, verschickt w und den gegenwärtigen Zustand an Bob. Bob kann die Berechnung von A erfolgreich zu Ende führen. Häufigkeitsmomente Kommunikation 26 / 74
Kommunikation und Streaming Data Warum interessiert uns das Kommunikationsmodell? Sei A ein Streaming Data Algorithmus, der auf Eingaben x 1 x 2 mit x 1, x 2 {0, 1} n/2 höchstens Speicherplatz s(n) benutzt. Simuliere die Berechnung von A durch ein Kommunikationsprotokoll: Alice erhält x 1, Bob erhält x 2. Wenn A die Eingabe x1 abgearbeitet hat, sei w {0, 1} s(n) der Inhalt des Speichers. Alice kennt w, verschickt w und den gegenwärtigen Zustand an Bob. Bob kann die Berechnung von A erfolgreich zu Ende führen. Nachrichten mit s(n) + O(1) Bits reichen aus. Häufigkeitsmomente Kommunikation 26 / 74
Kommunikation: Ein erstes Fazit Die Funktion f n : {0, 1} n X sei zu berechnen. - Jeder Algorithmus, der f deterministisch oder probabilistisch mit Speichergröße s(n) berechnet, kann durch ein deterministisches oder probabilistisches Kommunikationsprotokoll simuliert werden, Häufigkeitsmomente Kommunikation 27 / 74
Kommunikation: Ein erstes Fazit Die Funktion f n : {0, 1} n X sei zu berechnen. - Jeder Algorithmus, der f deterministisch oder probabilistisch mit Speichergröße s(n) berechnet, kann durch ein deterministisches oder probabilistisches Kommunikationsprotokoll simuliert werden, das Nachrichten mit höchstens s(n) + O(1) Bits verschickt. Häufigkeitsmomente Kommunikation 27 / 74
Kommunikation: Ein erstes Fazit Die Funktion f n : {0, 1} n X sei zu berechnen. - Jeder Algorithmus, der f deterministisch oder probabilistisch mit Speichergröße s(n) berechnet, kann durch ein deterministisches oder probabilistisches Kommunikationsprotokoll simuliert werden, das Nachrichten mit höchstens s(n) + O(1) Bits verschickt. - Wenn Kommunikationsprotokolle mindestens ω(s) Bits benötigen, dann kann es keine Streaming Data Algorithmen mit Speichergröße O(s) geben! Häufigkeitsmomente Kommunikation 27 / 74
Kommunikation: Ein erstes Fazit Die Funktion f n : {0, 1} n X sei zu berechnen. - Jeder Algorithmus, der f deterministisch oder probabilistisch mit Speichergröße s(n) berechnet, kann durch ein deterministisches oder probabilistisches Kommunikationsprotokoll simuliert werden, das Nachrichten mit höchstens s(n) + O(1) Bits verschickt. - Wenn Kommunikationsprotokolle mindestens ω(s) Bits benötigen, dann kann es keine Streaming Data Algorithmen mit Speichergröße O(s) geben! Probabilistische Kommunikation kann sehr viel effizienter als deterministische Kommunikation sein. Häufigkeitsmomente Kommunikation 27 / 74
ε-approximative Berechnungen Für Mengen A und B ist f : A B R zu berechnen. Häufigkeitsmomente Kommunikation 28 / 74
ε-approximative Berechnungen Für Mengen A und B ist f : A B R zu berechnen. (a) Ein deterministisches 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. Häufigkeitsmomente Kommunikation 28 / 74
ε-approximative Berechnungen Für Mengen A und B ist f : A B R zu berechnen. (a) Ein deterministisches 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) C ε (f ) ist die Länge der längsten Nachricht eines besten ε-approximativen deterministischen Protokolls für f. Häufigkeitsmomente Kommunikation 28 / 74
ε-approximative Berechnungen Für Mengen A und B ist f : A B R zu berechnen. (a) Ein deterministisches 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) C ε (f ) ist die Länge der längsten Nachricht eines besten ε-approximativen deterministischen Protokolls für f. (c) Ein probabilistisches Protokoll ist ε-approximativ mit Fehler δ, wenn Bob für alle Eingaben (x, y) mit Wahrscheinlichkeit mindestens 1 δ ein Ergebnis a(x, y) mit (1 ε) f (x, y) a(x, y) (1 + ε) f (x, y) berechnet. Häufigkeitsmomente Kommunikation 28 / 74
ε-approximative Berechnungen Für Mengen A und B ist f : A B R zu berechnen. (a) Ein deterministisches 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) C ε (f ) ist die Länge der längsten Nachricht eines besten ε-approximativen deterministischen Protokolls für f. (c) Ein probabilistisches Protokoll ist ε-approximativ mit Fehler δ, wenn Bob für alle Eingaben (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) Cδ ε (f ) ist die Länge der längsten Nachricht eines besten ε-approximativen probabilistischen Protokolls, das f mit Fehler δ berechnet. Häufigkeitsmomente Kommunikation 28 / 74
Das Disjunktheitsproblem - Im Disjunktheitsproblem der Größe n erhalten Alice und Bob Inzidenzvektoren der Teilmengen x, y {1,..., n}. - Es ist zu entscheiden, ob x y gilt. Häufigkeitsmomente Kommunikation 29 / 74
Das Disjunktheitsproblem - Im Disjunktheitsproblem der Größe n erhalten Alice und Bob Inzidenzvektoren der Teilmengen x, y {1,..., n}. - Es ist zu entscheiden, ob x y gilt. Definiere die Funktion D n durch { 1 x y = D n (x, y) = 0 sonst. Häufigkeitsmomente Kommunikation 29 / 74
Das Disjunktheitsproblem - Im Disjunktheitsproblem der Größe n erhalten Alice und Bob Inzidenzvektoren der Teilmengen x, y {1,..., n}. - Es ist zu entscheiden, ob x y gilt. Definiere die Funktion D n durch { 1 x y = D n (x, y) = 0 sonst. Man kann zeigen: C ε δ (D n) = Ω(n) für alle ε, δ < 1 2 : Eine randomisierte Lösung des Disjunktheitsproblems ist selbst dann schwierig, wenn die Fehlerwahrscheinlichkeit δ eine beliebige Konstante kleiner als 1 2 ist. Häufigkeitsmomente Kommunikation 29 / 74
Das Disjunktheitsproblem - Im Disjunktheitsproblem der Größe n erhalten Alice und Bob Inzidenzvektoren der Teilmengen x, y {1,..., n}. - Es ist zu entscheiden, ob x y gilt. Definiere die Funktion D n durch { 1 x y = D n (x, y) = 0 sonst. Man kann zeigen: C ε δ (D n) = Ω(n) für alle ε, δ < 1 2 : Eine randomisierte Lösung des Disjunktheitsproblems ist selbst dann schwierig, wenn die Fehlerwahrscheinlichkeit δ eine beliebige Konstante kleiner als 1 2 ist. Hat diese negative Aussage zum Beispiel Konsequenzen für die Berechnung der größten Häufigkeit? Häufigkeitsmomente Kommunikation 29 / 74
Bestimmung der größten Häufigkeit - ε, δ < 1 2 seinen beliebig. A sei ein probabilistischer Algorithmus, der die größte Häufigkeit ε-approximativ mit Fehlerwahrscheinlichkeit höchstens δ im Streaming-Data Modell berechnet. - Dann benötigt A die Speichergröße Ω(m), wenn m die Anzahl verschiedener Schlüssel ist. Häufigkeitsmomente Kommunikation 30 / 74
Bestimmung der größten Häufigkeit - ε, δ < 1 2 seinen beliebig. A sei ein probabilistischer Algorithmus, der die größte Häufigkeit ε-approximativ mit Fehlerwahrscheinlichkeit höchstens δ im Streaming-Data Modell berechnet. - Dann benötigt A die Speichergröße Ω(m), wenn m die Anzahl verschiedener Schlüssel ist. Der probabilistische Algorithmus A berechne die Häufigkeit des häufigsten Schlüssels approximativ. Häufigkeitsmomente Kommunikation 30 / 74
Bestimmung der größten Häufigkeit - ε, δ < 1 2 seinen beliebig. A sei ein probabilistischer Algorithmus, der die größte Häufigkeit ε-approximativ mit Fehlerwahrscheinlichkeit höchstens δ im Streaming-Data Modell berechnet. - Dann benötigt A die Speichergröße Ω(m), wenn m die Anzahl verschiedener Schlüssel ist. Der probabilistische Algorithmus A berechne die Häufigkeit des häufigsten Schlüssels approximativ. Wir lösen das Disjunkheitsproblem mit Hilfe von A: Häufigkeitsmomente Kommunikation 30 / 74
Bestimmung der größten Häufigkeit - ε, δ < 1 2 seinen beliebig. A sei ein probabilistischer Algorithmus, der die größte Häufigkeit ε-approximativ mit Fehlerwahrscheinlichkeit höchstens δ im Streaming-Data Modell berechnet. - Dann benötigt A die Speichergröße Ω(m), wenn m die Anzahl verschiedener Schlüssel ist. Der probabilistische Algorithmus A berechne die Häufigkeit des häufigsten Schlüssels approximativ. Wir lösen das Disjunkheitsproblem mit Hilfe von A: Alice und Bob erhalten die Teilmengen x, y {1,..., m}. Häufigkeitsmomente Kommunikation 30 / 74
Bestimmung der größten Häufigkeit - ε, δ < 1 2 seinen beliebig. A sei ein probabilistischer Algorithmus, der die größte Häufigkeit ε-approximativ mit Fehlerwahrscheinlichkeit höchstens δ im Streaming-Data Modell berechnet. - Dann benötigt A die Speichergröße Ω(m), wenn m die Anzahl verschiedener Schlüssel ist. Der probabilistische Algorithmus A berechne die Häufigkeit des häufigsten Schlüssels approximativ. Wir lösen das Disjunkheitsproblem mit Hilfe von A: Alice und Bob erhalten die Teilmengen x, y {1,..., m}. Für die Funktion D m des Disjunkheitsproblems gilt: { 1 1 = größte Häufigkeit für (x, y), D m (x, y) = Häufigkeitsmomente Kommunikation 30 / 74
Bestimmung der größten Häufigkeit - ε, δ < 1 2 seinen beliebig. A sei ein probabilistischer Algorithmus, der die größte Häufigkeit ε-approximativ mit Fehlerwahrscheinlichkeit höchstens δ im Streaming-Data Modell berechnet. - Dann benötigt A die Speichergröße Ω(m), wenn m die Anzahl verschiedener Schlüssel ist. Der probabilistische Algorithmus A berechne die Häufigkeit des häufigsten Schlüssels approximativ. Wir lösen das Disjunkheitsproblem mit Hilfe von A: Alice und Bob erhalten die Teilmengen x, y {1,..., m}. Für die Funktion D m des Disjunkheitsproblems gilt: { 1 1 = größte Häufigkeit für (x, y), D m (x, y) = 0 2 größte Häufigkeit für (x, y) Häufigkeitsmomente Kommunikation 30 / 74
Bestimmung der größten Häufigkeit - ε, δ < 1 2 seinen beliebig. A sei ein probabilistischer Algorithmus, der die größte Häufigkeit ε-approximativ mit Fehlerwahrscheinlichkeit höchstens δ im Streaming-Data Modell berechnet. - Dann benötigt A die Speichergröße Ω(m), wenn m die Anzahl verschiedener Schlüssel ist. Der probabilistische Algorithmus A berechne die Häufigkeit des häufigsten Schlüssels approximativ. Wir lösen das Disjunkheitsproblem mit Hilfe von A: Alice und Bob erhalten die Teilmengen x, y {1,..., m}. Für die Funktion D m des Disjunkheitsproblems gilt: { 1 1 = größte Häufigkeit für (x, y), D m (x, y) = 0 2 größte Häufigkeit für (x, y) Aber es ist C ε δ (D m ) = Ω(m) und die Behauptung folgt. Häufigkeitsmomente Kommunikation 30 / 74
Häufigkeitsmomente - Sei δ < 1 2 beliebig und sei A ein probabilistischer Algorithmus, der H k (für k 1) exakt mit Fehlerwahrscheinlichkeit höchstens δ im Streaming-Data Modell berechnet. - Dann benötigt A Speicherkomplexität mindestens Ω(m), wenn m die Anzahl verschiedener Schlüssel ist. Häufigkeitsmomente Kommunikation 31 / 74
Häufigkeitsmomente - Sei δ < 1 2 beliebig und sei A ein probabilistischer Algorithmus, der H k (für k 1) exakt mit Fehlerwahrscheinlichkeit höchstens δ im Streaming-Data Modell berechnet. - Dann benötigt A Speicherkomplexität mindestens Ω(m), wenn m die Anzahl verschiedener Schlüssel ist. Wir lösen das Disjunktionsproblem mit Hilfe von A. Setze m = x + y und beachte für k = 0 { 1 H0 = m D m (x, y) = 0 H 0 < m, Häufigkeitsmomente Kommunikation 31 / 74
Häufigkeitsmomente - Sei δ < 1 2 beliebig und sei A ein probabilistischer Algorithmus, der H k (für k 1) exakt mit Fehlerwahrscheinlichkeit höchstens δ im Streaming-Data Modell berechnet. - Dann benötigt A Speicherkomplexität mindestens Ω(m), wenn m die Anzahl verschiedener Schlüssel ist. Wir lösen das Disjunktionsproblem mit Hilfe von A. Setze m = x + y und beachte für k = 0 { 1 H0 = m D m (x, y) = 0 H 0 < m, beziehungsweise für k > 1 { 1 Hk = m D m (x, y) = 0 H k > m. Häufigkeitsmomente Kommunikation 31 / 74
Das zweite Häufigkeitsmoment H 2 = u U a 2 u Häufigkeitsmomente H 2 32 / 74
Berechnung von H 2 Das Ziel: Bestimme H 2 = u U a 2 u, wobei a u = {i x i = u} die Häufigkeit des Schlüssels u ist. Häufigkeitsmomente H 2 33 / 74
Berechnung von H 2 Das Ziel: Bestimme H 2 = u U a 2 u, wobei a u = {i x i = u} die Häufigkeit des Schlüssels u ist. Warum ist die Bestimmung des zweiten Häufigkeitsmoments H 2 interessant? Häufigkeitsmomente H 2 33 / 74
Berechnung von H 2 Das Ziel: Bestimme H 2 = u U a 2 u, wobei a u = {i x i = u} die Häufigkeit des Schlüssels u ist. Warum ist die Bestimmung des zweiten Häufigkeitsmoments H 2 interessant? Je größer H 2, umso unregelmäßiger sind die Schlüssel verteilt. H2 misst die Regelmäßigkeit der Schlüsselverteilung. Häufigkeitsmomente H 2 33 / 74
Berechnung von H 2 Das Ziel: Bestimme H 2 = u U a 2 u, wobei a u = {i x i = u} die Häufigkeit des Schlüssels u ist. Warum ist die Bestimmung des zweiten Häufigkeitsmoments H 2 interessant? Je größer H 2, umso unregelmäßiger sind die Schlüssel verteilt. H2 misst die Regelmäßigkeit der Schlüsselverteilung. Eine exakte Berechnung von H 2 gelingt nur, wenn die Menge aller ankommenden Schlüssel klein ist: Vermerke die individuellen Häufigkeiten in einer Hashtabelle. Häufigkeitsmomente H 2 33 / 74
Berechnung von H 2 Das Ziel: Bestimme H 2 = u U a 2 u, wobei a u = {i x i = u} die Häufigkeit des Schlüssels u ist. Warum ist die Bestimmung des zweiten Häufigkeitsmoments H 2 interessant? Je größer H 2, umso unregelmäßiger sind die Schlüssel verteilt. H2 misst die Regelmäßigkeit der Schlüsselverteilung. Eine exakte Berechnung von H 2 gelingt nur, wenn die Menge aller ankommenden Schlüssel klein ist: Vermerke die individuellen Häufigkeiten in einer Hashtabelle. Was tun, wenn zu viele Schlüssel im Spiel sind? Häufigkeitsmomente H 2 33 / 74
Sketching H 2 1 Bestimme eine zufällige Hashfunktion und setze SUMME = 0. h : U { 1, 1} 2 Wiederhole für alle Daten x i Setze SUMME = SUMME +h(x i ). Häufigkeitsmomente H 2 34 / 74
Sketching H 2 1 Bestimme eine zufällige Hashfunktion und setze SUMME = 0. h : U { 1, 1} 2 Wiederhole für alle Daten x i Setze SUMME = SUMME +h(x i ). SUMME 2 ist eine Approximation von H 2. Warum? Häufigkeitsmomente H 2 34 / 74
Der Erwartungswert von SUMME 2 E[ SUMME 2 ] = H 2. m E[ SUMME 2 ] = E[ ( a u h(u)) 2 ] u=1 Häufigkeitsmomente H 2 35 / 74
Der Erwartungswert von SUMME 2 E[ SUMME 2 ] = H 2. m E[ SUMME 2 ] = E[ ( a u h(u)) 2 ] = E[ u=1 m u=1 a 2 u h(u) 2 ] + E[ u v a u a v h(u) h(v) ] Häufigkeitsmomente H 2 35 / 74
Der Erwartungswert von SUMME 2 E[ SUMME 2 ] = H 2. m E[ SUMME 2 ] = E[ ( a u h(u)) 2 ] u=1 m = E[ au 2 h(u) 2 ] + E[ a u a v h(u) h(v) ] u=1 u v m = E[ au 2 ] = u=1 Häufigkeitsmomente H 2 35 / 74
Der Erwartungswert von SUMME 2 E[ SUMME 2 ] = H 2. m E[ SUMME 2 ] = E[ ( a u h(u)) 2 ] u=1 m = E[ au 2 h(u) 2 ] + E[ a u a v h(u) h(v) ] u=1 u v m m = E[ au 2 ] = au 2 = H 2, u=1 u=1 denn h(u) 2 = 1 für jedes u und E[ h(u) h(v) ] = 0 für u v. Häufigkeitsmomente H 2 35 / 74
Wie genau ist die Schätzung? - Die Ungleichung von Tschebyscheff: Große Abweichungen vom Erwartungswert sind unwahrscheinlich, wenn die Varianz klein ist. - Wir müssen die Varianz von SUMME 2 bestimmen! Häufigkeitsmomente H 2 36 / 74
Wie genau ist die Schätzung? - Die Ungleichung von Tschebyscheff: Große Abweichungen vom Erwartungswert sind unwahrscheinlich, wenn die Varianz klein ist. - Wir müssen die Varianz von SUMME 2 bestimmen! V [ SUMME 2 ] = E[ SUMME 4 ] E[ SUMME 2 ] 2. Häufigkeitsmomente H 2 36 / 74
Wie genau ist die Schätzung? - Die Ungleichung von Tschebyscheff: Große Abweichungen vom Erwartungswert sind unwahrscheinlich, wenn die Varianz klein ist. - Wir müssen die Varianz von SUMME 2 bestimmen! V [ SUMME 2 ] = E[ SUMME 4 ] E[ SUMME 2 ] 2. Es ist E[ SUMME 4 ] = E[ ( m u=1 a u h(u)) 4 ]: Häufigkeitsmomente H 2 36 / 74
Wie genau ist die Schätzung? - Die Ungleichung von Tschebyscheff: Große Abweichungen vom Erwartungswert sind unwahrscheinlich, wenn die Varianz klein ist. - Wir müssen die Varianz von SUMME 2 bestimmen! V [ SUMME 2 ] = E[ SUMME 4 ] E[ SUMME 2 ] 2. Es ist E[ SUMME 4 ] = E[ ( m u=1 a u h(u)) 4 ]: Beim Ausmultiplizieren treten Terme der Form E[ h(u 1 ) h(u 2 ) h(u 3 ) h(u 4 ) ] auf. Wir nehmen vierfache Unabhängigkeit an! Häufigkeitsmomente H 2 36 / 74
Wie genau ist die Schätzung? - Die Ungleichung von Tschebyscheff: Große Abweichungen vom Erwartungswert sind unwahrscheinlich, wenn die Varianz klein ist. - Wir müssen die Varianz von SUMME 2 bestimmen! V [ SUMME 2 ] = E[ SUMME 4 ] E[ SUMME 2 ] 2. Es ist E[ SUMME 4 ] = E[ ( m u=1 a u h(u)) 4 ]: Beim Ausmultiplizieren treten Terme der Form E[ h(u 1 ) h(u 2 ) h(u 3 ) h(u 4 ) ] auf. Wir nehmen vierfache Unabhängigkeit an! E[ SUMME 4 ] = E[ m au 4 h(u) 4 ] + u=1 ( ) 4 E[ a 2 ua 2 v 2 h(u) 2 h(v) 2 ] u v Häufigkeitsmomente H 2 36 / 74
Wie genau ist die Schätzung? - Die Ungleichung von Tschebyscheff: Große Abweichungen vom Erwartungswert sind unwahrscheinlich, wenn die Varianz klein ist. - Wir müssen die Varianz von SUMME 2 bestimmen! V [ SUMME 2 ] = E[ SUMME 4 ] E[ SUMME 2 ] 2. Es ist E[ SUMME 4 ] = E[ ( m u=1 a u h(u)) 4 ]: Beim Ausmultiplizieren treten Terme der Form E[ h(u 1 ) h(u 2 ) h(u 3 ) h(u 4 ) ] auf. Wir nehmen vierfache Unabhängigkeit an! E[ SUMME 4 ] = E[ = m au 4 h(u) 4 ] + u=1 m au 4 + 6 au 2 av 2 u=1 u v ( ) 4 E[ a 2 ua 2 v 2 h(u) 2 h(v) 2 ] u v Häufigkeitsmomente H 2 36 / 74
Wie genau ist die Schätzung? E[SUMME 4 ] = m u=1 a4 u + 6 u v a2 u a 2 v. Häufigkeitsmomente H 2 37 / 74
Wie genau ist die Schätzung? E[SUMME 4 ] = m u=1 a4 u + 6 u v a2 u a 2 v. und wir erhalten die Varianz V [ SUMME 2 ] = m au 4 + 6 ( m au 2 av 2 u=1 u v u=1 a 2 u ) 2 Häufigkeitsmomente H 2 37 / 74
Wie genau ist die Schätzung? E[SUMME 4 ] = m u=1 a4 u + 6 u v a2 u a 2 v. und wir erhalten die Varianz m V [ SUMME 2 ] = au 4 + 6 ( m au 2 av 2 u=1 u v = 4 au 2 av 2 2 H2 2. u v u=1 a 2 u ) 2 Häufigkeitsmomente H 2 37 / 74
Wie genau ist die Schätzung? E[SUMME 4 ] = m u=1 a4 u + 6 u v a2 u a 2 v. und wir erhalten die Varianz m V [ SUMME 2 ] = au 4 + 6 ( m au 2 av 2 u=1 u v = 4 au 2 av 2 2 H2 2. u v Als Konsequenz der Tschebyscheff Ungleichung folgt prob[ SUMME 2 H 2 > λ H 2 ] 2 H2 2 λ 2 H 2 2 u=1 a 2 u = 2 λ 2. ) 2 Häufigkeitsmomente H 2 37 / 74
Wie genau ist die Schätzung? E[SUMME 4 ] = m u=1 a4 u + 6 u v a2 u a 2 v. und wir erhalten die Varianz m V [ SUMME 2 ] = au 4 + 6 ( m au 2 av 2 u=1 u v = 4 au 2 av 2 2 H2 2. u v Als Konsequenz der Tschebyscheff Ungleichung folgt prob[ SUMME 2 H 2 > λ H 2 ] 2 H2 2 λ 2 H 2 2 u=1 a 2 u = 2 λ 2. Große Abweichungen haben eine zu hohe Wahrscheinlichkeit! ) 2 Häufigkeitsmomente H 2 37 / 74
Boosting Wähle k Hashfunktionen h 1,..., h k. Häufigkeitsmomente H 2 38 / 74
Boosting Wähle k Hashfunktionen h 1,..., h k. Gib SCHÄTZUNG k = k i=1 SUMME 2 i k aus. Häufigkeitsmomente H 2 38 / 74
Boosting Wähle k Hashfunktionen h 1,..., h k. Gib SCHÄTZUNG k = k i=1 SUMME 2 i aus. k Der Erwartungswert bleibt stabil, aber die Varianz fällt um Faktor k. Häufigkeitsmomente H 2 38 / 74
Boosting Wähle k Hashfunktionen h 1,..., h k. Gib SCHÄTZUNG k = k i=1 SUMME 2 i aus. k Der Erwartungswert bleibt stabil, aber die Varianz fällt um Faktor k. Es ist deshalb prob[ SCHÄTZUNGk H 2 > λ H 2 ] 2. k λ 2 Häufigkeitsmomente H 2 38 / 74
Boosting Wähle k Hashfunktionen h 1,..., h k. Gib SCHÄTZUNG k = k i=1 SUMME 2 i aus. k Der Erwartungswert bleibt stabil, aber die Varianz fällt um Faktor k. Es ist deshalb prob[ SCHÄTZUNGk H 2 > λ H 2 ] 2. k λ 2 Für k = 8 ist die Fehlerwahrscheinlichkeit höchstens 1 λ 2 4. Häufigkeitsmomente H 2 38 / 74
Boosting Wähle k Hashfunktionen h 1,..., h k. Gib SCHÄTZUNG k = k i=1 SUMME 2 i k aus. Der Erwartungswert bleibt stabil, aber die Varianz fällt um Faktor k. Es ist deshalb prob[ SCHÄTZUNGk H 2 > λ H 2 ] 2 k λ 2. Für k = 8 λ 2 ist die Fehlerwahrscheinlichkeit höchstens 1 4. Wiederhole den Sketching Algorithmus k = k s mal. Häufigkeitsmomente H 2 38 / 74
Boosting Wähle k Hashfunktionen h 1,..., h k. Gib SCHÄTZUNG k = k i=1 SUMME 2 i aus. k Der Erwartungswert bleibt stabil, aber die Varianz fällt um Faktor k. Es ist deshalb prob[ SCHÄTZUNGk H 2 > λ H 2 ] 2. k λ 2 Für k = 8 ist die Fehlerwahrscheinlichkeit höchstens 1 λ 2 4. Wiederhole den Sketching Algorithmus k = k s mal. Teile die Summenergebnisse in s Klassen von je k Wiederholungen auf und berechne das Mittel für jede Klasse. Bestimme den Median M der s Schätzungen. Häufigkeitsmomente H 2 38 / 74
Boosting Wähle k Hashfunktionen h 1,..., h k. Gib SCHÄTZUNG k = k i=1 SUMME 2 i aus. k Der Erwartungswert bleibt stabil, aber die Varianz fällt um Faktor k. Es ist deshalb prob[ SCHÄTZUNGk H 2 > λ H 2 ] 2. k λ 2 Für k = 8 ist die Fehlerwahrscheinlichkeit höchstens 1 λ 2 4. Wiederhole den Sketching Algorithmus k = k s mal. Teile die Summenergebnisse in s Klassen von je k Wiederholungen auf und berechne das Mittel für jede Klasse. Bestimme den Median M der s Schätzungen. Es ist M H 2 > λ H 2 mit Wahrscheinlichkeit höchstens 2 Ω(s). - Wenn M H 2 > λ H 2, dann liegt mindestens die Hälfte aller Einzelschätzungen außerhalb. Häufigkeitsmomente H 2 38 / 74
Boosting Wähle k Hashfunktionen h 1,..., h k. Gib SCHÄTZUNG k = k i=1 SUMME 2 i aus. k Der Erwartungswert bleibt stabil, aber die Varianz fällt um Faktor k. Es ist deshalb prob[ SCHÄTZUNGk H 2 > λ H 2 ] 2. k λ 2 Für k = 8 ist die Fehlerwahrscheinlichkeit höchstens 1 λ 2 4. Wiederhole den Sketching Algorithmus k = k s mal. Teile die Summenergebnisse in s Klassen von je k Wiederholungen auf und berechne das Mittel für jede Klasse. Bestimme den Median M der s Schätzungen. Es ist M H 2 > λ H 2 mit Wahrscheinlichkeit höchstens 2 Ω(s). - Wenn M H 2 > λ H 2, dann liegt mindestens die Hälfte aller Einzelschätzungen außerhalb. - Mindestens doppelt so viele Einzelschätzungen wie erwartet liegen außerhalb: Wende die Chernoff-Schranke an. Häufigkeitsmomente H 2 38 / 74
Das Ergebnis - Eine bis auf den Faktor 1 + λ exakte Schätzung von H 2 wird mit Wahrscheinlichkeit mindestens 1 δ erreicht. - Die Speicherplatzkomplexität und die Laufzeit pro Schlüssel ist durch O( 1 log λ 2 2 ( 1 δ )) beschränkt. Häufigkeitsmomente H 2 39 / 74
Das Ergebnis - Eine bis auf den Faktor 1 + λ exakte Schätzung von H 2 wird mit Wahrscheinlichkeit mindestens 1 δ erreicht. - Die Speicherplatzkomplexität und die Laufzeit pro Schlüssel ist durch O( 1 log λ 2 2 ( 1 δ )) beschränkt. Es ist M H 2 > λ H 2 mit Wahrscheinlichkeit höchstens 2 Ω(s). Häufigkeitsmomente H 2 39 / 74
Das Ergebnis - Eine bis auf den Faktor 1 + λ exakte Schätzung von H 2 wird mit Wahrscheinlichkeit mindestens 1 δ erreicht. - Die Speicherplatzkomplexität und die Laufzeit pro Schlüssel ist durch O( 1 log λ 2 2 ( 1 δ )) beschränkt. Es ist M H 2 > λ H 2 mit Wahrscheinlichkeit höchstens 2 Ω(s). Setze s = log 2 ( 1 δ ) und die Fehlerwahrscheinlichkeit ist durch O(δ) beschränkt. Häufigkeitsmomente H 2 39 / 74
Das Ergebnis - Eine bis auf den Faktor 1 + λ exakte Schätzung von H 2 wird mit Wahrscheinlichkeit mindestens 1 δ erreicht. - Die Speicherplatzkomplexität und die Laufzeit pro Schlüssel ist durch O( 1 log λ 2 2 ( 1 δ )) beschränkt. Es ist M H 2 > λ H 2 mit Wahrscheinlichkeit höchstens 2 Ω(s). Setze s = log 2 ( 1 δ ) und die Fehlerwahrscheinlichkeit ist durch O(δ) beschränkt. Es ist k = 8 : Pro Schlüssel müssen O( log 2 ( 1 λ 2 δ ) ) Hashfunktionen λ 2 ausgewertet werden. Häufigkeitsmomente H 2 39 / 74
Das Ergebnis - Eine bis auf den Faktor 1 + λ exakte Schätzung von H 2 wird mit Wahrscheinlichkeit mindestens 1 δ erreicht. - Die Speicherplatzkomplexität und die Laufzeit pro Schlüssel ist durch O( 1 log λ 2 2 ( 1 δ )) beschränkt. Es ist M H 2 > λ H 2 mit Wahrscheinlichkeit höchstens 2 Ω(s). Setze s = log 2 ( 1 δ ) und die Fehlerwahrscheinlichkeit ist durch O(δ) beschränkt. Es ist k = 8 : Pro Schlüssel müssen O( log 2 ( 1 λ 2 δ ) ) Hashfunktionen λ 2 ausgewertet werden. H 2 lässt sich schnell und speichereffizient approximieren, solange keine zu scharfe Approximation verlangt wird. Häufigkeitsmomente H 2 39 / 74
Das nullte Häufigkeitsmoment { u U a u 1 } Häufigkeitsmomente H 0 40 / 74
Die Bestimmung von H 0 Wenn die Hauptspeichergröße mindestens Ω(n) beträgt: Benutze Hashing. Häufigkeitsmomente H 0 41 / 74
Die Bestimmung von H 0 Wenn die Hauptspeichergröße mindestens Ω(n) beträgt: Benutze Hashing. Wenn die Daten in den Sekundärspeicher passen: Lege die Daten im Sekundärspeicher ab und sortiere zum Beispiel mit Mergesort. Häufigkeitsmomente H 0 41 / 74
Die Bestimmung von H 0 Wenn die Hauptspeichergröße mindestens Ω(n) beträgt: Benutze Hashing. Wenn die Daten in den Sekundärspeicher passen: Lege die Daten im Sekundärspeicher ab und sortiere zum Beispiel mit Mergesort. Wenn selbst der Sekundärspeicher überfordert ist: Wir müssen eine approximative Berechnung von H 0 erlauben und benutzen randomisierte Algorithmen. Häufigkeitsmomente H 0 41 / 74
Hashing für die Berechnung von H 0 1 Die Vorbereitungsphase: Wähle eine natürliche Zahl T > 1 und eine zufällige Hashfunktion h : U {1,..., T }. Setze die boolesche Variable GROSS auf falsch. Häufigkeitsmomente H 0 42 / 74
Hashing für die Berechnung von H 0 1 Die Vorbereitungsphase: Wähle eine natürliche Zahl T > 1 und eine zufällige Hashfunktion h : U {1,..., T }. Setze die boolesche Variable GROSS auf falsch. 2 Durchlaufe die Eingabe (x 1,..., x n ): Wenn h(x i ) = T für ein i, dann setze GROSS auf wahr. Häufigkeitsmomente H 0 42 / 74
Hashing für die Berechnung von H 0 1 Die Vorbereitungsphase: Wähle eine natürliche Zahl T > 1 und eine zufällige Hashfunktion h : U {1,..., T }. Setze die boolesche Variable GROSS auf falsch. 2 Durchlaufe die Eingabe (x 1,..., x n ): Wenn h(x i ) = T für ein i, dann setze GROSS auf wahr. 3 Gib die Antwort GROSS aus. Häufigkeitsmomente H 0 42 / 74
Eine Diskussion Die Intuition: Die Wahrscheinlichkeit, dass h(x) = T gilt, ist 1 T. Häufigkeitsmomente H 0 43 / 74
Eine Diskussion Die Intuition: Die Wahrscheinlichkeit, dass h(x) = T gilt, ist 1 T. Wenn der Hashwert T in t Versuchen nicht erreicht wird, dann geschieht dies mit Wahrscheinlichkeit ( T 1 T )t Häufigkeitsmomente H 0 43 / 74
Eine Diskussion Die Intuition: Die Wahrscheinlichkeit, dass h(x) = T gilt, ist 1 T. Wenn der Hashwert T in t Versuchen nicht erreicht wird, dann geschieht dies mit Wahrscheinlichkeit ( T 1 T )t = (1 1 T )t Häufigkeitsmomente H 0 43 / 74
Eine Diskussion Die Intuition: Die Wahrscheinlichkeit, dass h(x) = T gilt, ist 1 T. Wenn der Hashwert T in t Versuchen nicht erreicht wird, dann geschieht dies mit Wahrscheinlichkeit ( T 1 T )t = (1 1 T )t exp t/t, vorausgesetzt, alle t Zahlen sind paarweise verschieden. Häufigkeitsmomente H 0 43 / 74
Eine Diskussion Die Intuition: Die Wahrscheinlichkeit, dass h(x) = T gilt, ist 1 T. Wenn der Hashwert T in t Versuchen nicht erreicht wird, dann geschieht dies mit Wahrscheinlichkeit ( T 1 T )t = (1 1 T )t exp t/t, vorausgesetzt, alle t Zahlen sind paarweise verschieden. Für t T verschiedene Schlüssel wird die Wahrscheinlichkeit eines Treffers beobachtbar kleiner als für t (1 + ε) T Schlüssel sein. Häufigkeitsmomente H 0 43 / 74
Eine Diskussion Die Intuition: Die Wahrscheinlichkeit, dass h(x) = T gilt, ist 1 T. Wenn der Hashwert T in t Versuchen nicht erreicht wird, dann geschieht dies mit Wahrscheinlichkeit ( T 1 T )t = (1 1 T )t exp t/t, vorausgesetzt, alle t Zahlen sind paarweise verschieden. Für t T verschiedene Schlüssel wird die Wahrscheinlichkeit eines Treffers beobachtbar kleiner als für t (1 + ε) T Schlüssel sein. Schätzungen mit Hilfe dieses Verfahrens sind ungenau und besitzen substantielle Fehlerwahrscheinlichkeiten. Häufigkeitsmomente H 0 43 / 74
Eine Diskussion Die Intuition: Die Wahrscheinlichkeit, dass h(x) = T gilt, ist 1 T. Wenn der Hashwert T in t Versuchen nicht erreicht wird, dann geschieht dies mit Wahrscheinlichkeit ( T 1 T )t = (1 1 T )t exp t/t, vorausgesetzt, alle t Zahlen sind paarweise verschieden. Für t T verschiedene Schlüssel wird die Wahrscheinlichkeit eines Treffers beobachtbar kleiner als für t (1 + ε) T Schlüssel sein. Schätzungen mit Hilfe dieses Verfahrens sind ungenau und besitzen substantielle Fehlerwahrscheinlichkeiten. Arbeite mit mehreren, unabhängig von einander ausgewürfelten Hashfunktionen Häufigkeitsmomente H 0 43 / 74
Eine Diskussion Die Intuition: Die Wahrscheinlichkeit, dass h(x) = T gilt, ist 1 T. Wenn der Hashwert T in t Versuchen nicht erreicht wird, dann geschieht dies mit Wahrscheinlichkeit ( T 1 T )t = (1 1 T )t exp t/t, vorausgesetzt, alle t Zahlen sind paarweise verschieden. Für t T verschiedene Schlüssel wird die Wahrscheinlichkeit eines Treffers beobachtbar kleiner als für t (1 + ε) T Schlüssel sein. Schätzungen mit Hilfe dieses Verfahrens sind ungenau und besitzen substantielle Fehlerwahrscheinlichkeiten. Arbeite mit mehreren, unabhängig von einander ausgewürfelten Hashfunktionen und variiere den Schwellenwert T in Potenzen von 1 + ε. Häufigkeitsmomente H 0 43 / 74
Stichproben verschiedener Schlüssel Häufigkeitsmomente H 0 44 / 74
H 0 und Stichproben Eine Stichprobe gleichverteilt gezogener Schlüssel ist ungeeignet. Berechne stattdessen eine Stichprobe verschiedener Schlüssel. Und wenn die Stichprobe überläuft? Häufigkeitsmomente H 0 45 / 74
H 0 und Stichproben Eine Stichprobe gleichverteilt gezogener Schlüssel ist ungeeignet. Berechne stattdessen eine Stichprobe verschiedener Schlüssel. Und wenn die Stichprobe überläuft? Weise jedem Schlüssel eine Priorität zu. Wenn die Stichprobe S alle Schlüssel der Mindestpriorität P enthält und wenn S überläuft, dann setze die Mindestpriorität auf P + 1: Entferne alle Schlüssel der Priorität P aus der Stichprobe. Häufigkeitsmomente H 0 45 / 74
H 0 und Stichproben Eine Stichprobe gleichverteilt gezogener Schlüssel ist ungeeignet. Berechne stattdessen eine Stichprobe verschiedener Schlüssel. Und wenn die Stichprobe überläuft? Weise jedem Schlüssel eine Priorität zu. Wenn die Stichprobe S alle Schlüssel der Mindestpriorität P enthält und wenn S überläuft, dann setze die Mindestpriorität auf P + 1: Entferne alle Schlüssel der Priorität P aus der Stichprobe. - Wie sollten wir Prioritäten berechnen? Häufigkeitsmomente H 0 45 / 74
H 0 und Stichproben Eine Stichprobe gleichverteilt gezogener Schlüssel ist ungeeignet. Berechne stattdessen eine Stichprobe verschiedener Schlüssel. Und wenn die Stichprobe überläuft? Weise jedem Schlüssel eine Priorität zu. Wenn die Stichprobe S alle Schlüssel der Mindestpriorität P enthält und wenn S überläuft, dann setze die Mindestpriorität auf P + 1: Entferne alle Schlüssel der Priorität P aus der Stichprobe. - Wie sollten wir Prioritäten berechnen? - Von der Anzahl verschiedener Schlüssel der Priorität mindestens P müssen wir auf die Anzahl der verschiedenen Schlüssel rückschließen können. Häufigkeitsmomente H 0 45 / 74
H 0 und Stichproben Eine Stichprobe gleichverteilt gezogener Schlüssel ist ungeeignet. Berechne stattdessen eine Stichprobe verschiedener Schlüssel. Und wenn die Stichprobe überläuft? Weise jedem Schlüssel eine Priorität zu. Wenn die Stichprobe S alle Schlüssel der Mindestpriorität P enthält und wenn S überläuft, dann setze die Mindestpriorität auf P + 1: Entferne alle Schlüssel der Priorität P aus der Stichprobe. - Wie sollten wir Prioritäten berechnen? - Von der Anzahl verschiedener Schlüssel der Priorität mindestens P müssen wir auf die Anzahl der verschiedenen Schlüssel rückschließen können. Prioritäten müssen randomisiert berechnet werden. Häufigkeitsmomente H 0 45 / 74
Berechnung der Prioritäten Die Zweierpotenz m sei mindestens so groß wie die Anzahl aller möglichen verschiedenen Schlüssel. - Wähle Parameter A {1,..., m 1} und B {0,..., m 1} zufällig. - Arbeite mit der Hashfunktion h A,B (u) = (A u + B) mod m. Häufigkeitsmomente H 0 46 / 74
Berechnung der Prioritäten Die Zweierpotenz m sei mindestens so groß wie die Anzahl aller möglichen verschiedenen Schlüssel. - Wähle Parameter A {1,..., m 1} und B {0,..., m 1} zufällig. - Arbeite mit der Hashfunktion h A,B (u) = (A u + B) mod m. - Die Prioritätszuweisung: p(u) = die Anzahl der führenden Nullen in der Binärdarstellung von h A,B (u). Die Binärdarstellung von h A,B (u) werde durch führende Nullen auf die exakte Länge log 2 m aufgefüllt. Häufigkeitsmomente H 0 46 / 74
Berechnung der Prioritäten Die Zweierpotenz m sei mindestens so groß wie die Anzahl aller möglichen verschiedenen Schlüssel. - Wähle Parameter A {1,..., m 1} und B {0,..., m 1} zufällig. - Arbeite mit der Hashfunktion h A,B (u) = (A u + B) mod m. - Die Prioritätszuweisung: p(u) = die Anzahl der führenden Nullen in der Binärdarstellung von h A,B (u). Die Binärdarstellung von h A,B (u) werde durch führende Nullen auf die exakte Länge log 2 m aufgefüllt. Der relative Anteil der Schlüssel u mit p(u) k beträgt Häufigkeitsmomente H 0 46 / 74
Berechnung der Prioritäten Die Zweierpotenz m sei mindestens so groß wie die Anzahl aller möglichen verschiedenen Schlüssel. - Wähle Parameter A {1,..., m 1} und B {0,..., m 1} zufällig. - Arbeite mit der Hashfunktion h A,B (u) = (A u + B) mod m. - Die Prioritätszuweisung: p(u) = die Anzahl der führenden Nullen in der Binärdarstellung von h A,B (u). Die Binärdarstellung von h A,B (u) werde durch führende Nullen auf die exakte Länge log 2 m aufgefüllt. Der relative Anteil der Schlüssel u mit p(u) k beträgt 2 k. Häufigkeitsmomente H 0 46 / 74
Der Algorithmus 1 Würfle eine Hashfunktion h A,B aus. Häufigkeitsmomente H 0 47 / 74
Der Algorithmus 1 Würfle eine Hashfunktion h A,B aus. 2 Setze PRIORITÄT= 0 und STICHPROBE=. S sei die Maximalgröße einer Stichprobe. Häufigkeitsmomente H 0 47 / 74
Der Algorithmus 1 Würfle eine Hashfunktion h A,B aus. 2 Setze PRIORITÄT= 0 und STICHPROBE=. S sei die Maximalgröße einer Stichprobe. 3 Wiederhole für i = 1,...,: Füge xi zur Menge STICHPROBE hinzu, falls p(x i ) PRIORITÄT. Häufigkeitsmomente H 0 47 / 74
Der Algorithmus 1 Würfle eine Hashfunktion h A,B aus. 2 Setze PRIORITÄT= 0 und STICHPROBE=. S sei die Maximalgröße einer Stichprobe. 3 Wiederhole für i = 1,...,: Füge xi zur Menge STICHPROBE hinzu, falls p(x i ) PRIORITÄT. 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. Häufigkeitsmomente H 0 47 / 74
Der Algorithmus 1 Würfle eine Hashfunktion h A,B aus. 2 Setze PRIORITÄT= 0 und STICHPROBE=. S sei die Maximalgröße einer Stichprobe. 3 Wiederhole für i = 1,...,: Füge xi zur Menge STICHPROBE hinzu, falls p(x i ) PRIORITÄT. 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. 4 Setze p = PRIORITÄT und gib die Schätzung Häufigkeitsmomente H 0 47 / 74
Der Algorithmus 1 Würfle eine Hashfunktion h A,B aus. 2 Setze PRIORITÄT= 0 und STICHPROBE=. S sei die Maximalgröße einer Stichprobe. 3 Wiederhole für i = 1,...,: Füge xi zur Menge STICHPROBE hinzu, falls p(x i ) PRIORITÄT. 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. 4 Setze p = PRIORITÄT und gib die Schätzung 2 p STICHPROBE aus. Häufigkeitsmomente H 0 47 / 74
Analyse Es ist prob[ p(x) p ] = 2 p. Häufigkeitsmomente H 0 48 / 74
Analyse Es ist prob[ p(x) p ] = 2 p. Wenn p die Priorität am Ende der Berechnung ist, gilt E[ STICHPROBE ] = E[ {x p(x) p, es gibt i mit x = x i } ] Häufigkeitsmomente H 0 48 / 74
Analyse Es ist prob[ p(x) p ] = 2 p. Wenn p die Priorität am Ende der Berechnung ist, gilt E[ STICHPROBE ] = E[ {x p(x) p, es gibt i mit x = x i } ] = prob[ p(x) p ] x ein Schluessel Häufigkeitsmomente H 0 48 / 74
Analyse Es ist prob[ p(x) p ] = 2 p. Wenn p die Priorität am Ende der Berechnung ist, gilt E[ STICHPROBE ] = E[ {x p(x) p, es gibt i mit x = x i } ] = prob[ p(x) p ] x ein Schluessel = 2 p Anzahl verschiedener Schlüssel. Häufigkeitsmomente H 0 48 / 74
Analyse Es ist prob[ p(x) p ] = 2 p. Wenn p die Priorität am Ende der Berechnung ist, gilt E[ STICHPROBE ] = E[ {x p(x) p, es gibt i mit x = x i } ] = prob[ p(x) p ] x ein Schluessel = 2 p Anzahl verschiedener Schlüssel. Also folgt E[ 2 p STICHPROBE ] = Anzahl verschiedener Schlüssel. Häufigkeitsmomente H 0 48 / 74
Analyse Es ist prob[ p(x) p ] = 2 p. Wenn p die Priorität am Ende der Berechnung ist, gilt E[ STICHPROBE ] = E[ {x p(x) p, es gibt i mit x = x i } ] = prob[ p(x) p ] x ein Schluessel = 2 p Anzahl verschiedener Schlüssel. Also folgt E[ 2 p STICHPROBE ] = Anzahl verschiedener Schlüssel. Die Schätzung ist gut, wenn große Abweichungen vom Erwartungswert E[ STICHPROBE ] unwahrscheinlich sind. Häufigkeitsmomente H 0 48 / 74
Die Tschebyscheff Ungleichung V sei die Varianz der Zufallsvariablen X. Dann gilt prob[ X E[X] > t ] V t 2. Häufigkeitsmomente H 0 49 / 74
Die Tschebyscheff Ungleichung V sei die Varianz der Zufallsvariablen X. Dann gilt prob[ X E[X] > t ] V t 2. Übungsaufgabe: var STICHPROBE E[ STICHPROBE ]. Häufigkeitsmomente H 0 49 / 74
Die Tschebyscheff Ungleichung V sei die Varianz der Zufallsvariablen X. Dann gilt prob[ X E[X] > t ] V t 2. Übungsaufgabe: var STICHPROBE E[ STICHPROBE ]. Für E = E[ STICHPROBE ] ist E prob[ E STICHPROBE > ε E ] = O( ε 2 E 2 ) Häufigkeitsmomente H 0 49 / 74
Die Tschebyscheff Ungleichung V sei die Varianz der Zufallsvariablen X. Dann gilt prob[ X E[X] > t ] V t 2. Übungsaufgabe: var STICHPROBE E[ STICHPROBE ]. Für E = E[ STICHPROBE ] ist E prob[ E STICHPROBE > ε E ] = O( ε 2 E 2 ) = O( 1 ε 2 E ). Häufigkeitsmomente H 0 49 / 74
Die Tschebyscheff Ungleichung V sei die Varianz der Zufallsvariablen X. Dann gilt prob[ X E[X] > t ] V t 2. Übungsaufgabe: var STICHPROBE E[ STICHPROBE ]. Für E = E[ STICHPROBE ] ist E prob[ E STICHPROBE > ε E ] = O( ε 2 E 2 ) = O( 1 ε 2 E ). A = 2 p E gilt für die Anzahl A verschiedener Schlüssel: prob[ A 2 p STICHPROBE > ε A ] Häufigkeitsmomente H 0 49 / 74
Die Tschebyscheff Ungleichung V sei die Varianz der Zufallsvariablen X. Dann gilt prob[ X E[X] > t ] V t 2. Übungsaufgabe: var STICHPROBE E[ STICHPROBE ]. Für E = E[ STICHPROBE ] ist E prob[ E STICHPROBE > ε E ] = O( ε 2 E 2 ) = O( 1 ε 2 E ). A = 2 p E gilt für die Anzahl A verschiedener Schlüssel: prob[ A 2 p STICHPROBE > ε A ] = prob[ 2 p E STICHPROBE > ε 2 p E ] Häufigkeitsmomente H 0 49 / 74
Die Tschebyscheff Ungleichung V sei die Varianz der Zufallsvariablen X. Dann gilt prob[ X E[X] > t ] V t 2. Übungsaufgabe: var STICHPROBE E[ STICHPROBE ]. Für E = E[ STICHPROBE ] ist E prob[ E STICHPROBE > ε E ] = O( ε 2 E 2 ) = O( 1 ε 2 E ). A = 2 p E gilt für die Anzahl A verschiedener Schlüssel: prob[ A 2 p STICHPROBE > ε A ] = prob[ 2 p E STICHPROBE > ε 2 p E ] = prob[ E STICHPROBE > ε E ] Häufigkeitsmomente H 0 49 / 74
Die Tschebyscheff Ungleichung V sei die Varianz der Zufallsvariablen X. Dann gilt prob[ X E[X] > t ] V t 2. Übungsaufgabe: var STICHPROBE E[ STICHPROBE ]. Für E = E[ STICHPROBE ] ist E prob[ E STICHPROBE > ε E ] = O( ε 2 E 2 ) = O( 1 ε 2 E ). A = 2 p E gilt für die Anzahl A verschiedener Schlüssel: prob[ A 2 p STICHPROBE > ε A ] = prob[ 2 p E STICHPROBE > ε 2 p E ] 1 = prob[ E STICHPROBE > ε E ] = O( ε 2 E ). Häufigkeitsmomente H 0 49 / 74
Zusammenfassung Mit Wahrscheinlichkeit höchstens O( 1 ) weicht die Schätzung um ε2 E mehr als ε A von der Anzahl A verschiedener Schlüssel ab. Häufigkeitsmomente H 0 50 / 74
Zusammenfassung Mit Wahrscheinlichkeit höchstens O( 1 ) weicht die Schätzung um ε2 E mehr als ε A von der Anzahl A verschiedener Schlüssel ab. Wie lässt sich die Schätzung verbessern? Arbeite mit mehreren, unabhängig voneinander ausgewürfelten Hashfunktionen. Häufigkeitsmomente H 0 50 / 74
Zusammenfassung Mit Wahrscheinlichkeit höchstens O( 1 ) weicht die Schätzung um ε2 E mehr als ε A von der Anzahl A verschiedener Schlüssel ab. Wie lässt sich die Schätzung verbessern? Arbeite mit mehreren, unabhängig voneinander ausgewürfelten Hashfunktionen. Gib den Median der Schätzungen als endgültige Schätzung aus. Warum den Median? Der Einfluss von Ausreissern auf den Median ist nur schwach. Häufigkeitsmomente H 0 50 / 74
Zusammenfassung Mit Wahrscheinlichkeit höchstens O( 1 ) weicht die Schätzung um ε2 E mehr als ε A von der Anzahl A verschiedener Schlüssel ab. Wie lässt sich die Schätzung verbessern? Arbeite mit mehreren, unabhängig voneinander ausgewürfelten Hashfunktionen. Gib den Median der Schätzungen als endgültige Schätzung aus. Warum den Median? Der Einfluss von Ausreissern auf den Median ist nur schwach. Wir benutzen dasselbe Verfahren wie für die Bestimmung von H 2. Häufigkeitsmomente H 0 50 / 74
Heavy Hitter Heavy Hitter: Schlüssel mit großer Häufigkeit 51 / 74
Heavy Hitter: Was geht und was nicht? - Wir wissen: Die Bestimmung eines Schlüssels mit großer Häufigkeit verlangt einen zu großen Speicher. Heavy Hitter: Schlüssel mit großer Häufigkeit Zähleralgorithmus 52 / 74
Heavy Hitter: Was geht und was nicht? - Wir wissen: Die Bestimmung eines Schlüssels mit großer Häufigkeit verlangt einen zu großen Speicher. - Übungsaufgabe: Deterministische Algorithmen benötigen Speichergröße Ω(m) bei m verschiedenen Schlüsseln, wenn der Schlüssel mit Häufigkeit größer als 50% zu bestimmen ist. Heavy Hitter: Schlüssel mit großer Häufigkeit Zähleralgorithmus 52 / 74
Heavy Hitter: Was geht und was nicht? - Wir wissen: Die Bestimmung eines Schlüssels mit großer Häufigkeit verlangt einen zu großen Speicher. - Übungsaufgabe: Deterministische Algorithmen benötigen Speichergröße Ω(m) bei m verschiedenen Schlüsseln, wenn der Schlüssel mit Häufigkeit größer als 50% zu bestimmen ist. Verlange nur, dass eine Menge K von höchstens 1 p Schlüsseln berechnet wird, unter denen sich alle Schlüssel mit Häufigkeit größer als p% befinden. Heavy Hitter: Schlüssel mit großer Häufigkeit Zähleralgorithmus 52 / 74
Heavy Hitter: Was geht und was nicht? - Wir wissen: Die Bestimmung eines Schlüssels mit großer Häufigkeit verlangt einen zu großen Speicher. - Übungsaufgabe: Deterministische Algorithmen benötigen Speichergröße Ω(m) bei m verschiedenen Schlüsseln, wenn der Schlüssel mit Häufigkeit größer als 50% zu bestimmen ist. Verlange nur, dass eine Menge K von höchstens 1 p Schlüsseln berechnet wird, unter denen sich alle Schlüssel mit Häufigkeit größer als p% befinden. Wie bestimmt man einen Schlüssel mit Häufigkeit > 50%? Heavy Hitter: Schlüssel mit großer Häufigkeit Zähleralgorithmus 52 / 74
Heavy Hitter: Was geht und was nicht? - Wir wissen: Die Bestimmung eines Schlüssels mit großer Häufigkeit verlangt einen zu großen Speicher. - Übungsaufgabe: Deterministische Algorithmen benötigen Speichergröße Ω(m) bei m verschiedenen Schlüsseln, wenn der Schlüssel mit Häufigkeit größer als 50% zu bestimmen ist. Verlange nur, dass eine Menge K von höchstens 1 p Schlüsseln berechnet wird, unter denen sich alle Schlüssel mit Häufigkeit größer als p% befinden. Wie bestimmt man einen Schlüssel mit Häufigkeit > 50%? Entferne Paare verschiedener Schlüssel. Der Mehrheitschlüssel verliert nie seine Mehrheitseigenschaft und wird bis zuletzt überleben. Heavy Hitter: Schlüssel mit großer Häufigkeit Zähleralgorithmus 52 / 74
Der Zähleralgorithmus 1 Der Datenstrom bestehe aus dem Vektor x = (x 1, x 2,..., x n ) mit x i {1,..., m}. 2 Die Menge K ist anfänglich leer und das Array Zähler ist auf Null initialisiert. Heavy Hitter: Schlüssel mit großer Häufigkeit Zähleralgorithmus 53 / 74
Der Zähleralgorithmus 1 Der Datenstrom bestehe aus dem Vektor x = (x 1, x 2,..., x n ) mit x i {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 (a) Wenn x i K, dann erhöhe den Zähler von x i um Eins. Heavy Hitter: Schlüssel mit großer Häufigkeit Zähleralgorithmus 53 / 74
Der Zähleralgorithmus 1 Der Datenstrom bestehe aus dem Vektor x = (x 1, x 2,..., x n ) mit x i {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 (a) Wenn x i K, dann erhöhe den Zähler von x i um Eins. (b) Wenn x i K, dann füge x i zu K hinzu und setze den Zähler von x i auf Eins. Wenn K jetzt mehr als 1 Elemente besitzt, dann erniedrige alle p Zähler um Eins und entferne alle Schlüssel mit Zählerstand Null. Heavy Hitter: Schlüssel mit großer Häufigkeit Zähleralgorithmus 53 / 74
Der Zähleralgorithmus 1 Der Datenstrom bestehe aus dem Vektor x = (x 1, x 2,..., x n ) mit x i {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 (a) Wenn x i K, dann erhöhe den Zähler von x i um Eins. (b) Wenn x i K, dann füge x i zu K hinzu und setze den Zähler von x i auf Eins. Wenn K jetzt mehr als 1 Elemente besitzt, dann erniedrige alle p Zähler um Eins und entferne alle Schlüssel mit Zählerstand Null. Übungsaufgabe: Alle Schlüssel mit Häufigkeit größer als p% liegen in K. Der Algorithmus rechnet in Linearzeit und die Menge K besteht aus höchstens 1/p Schlüsseln. Heavy Hitter: Schlüssel mit großer Häufigkeit Zähleralgorithmus 53 / 74
Eine verallgemeinerte Häufigkeitsanfrage - Der Datenstrom habe die Form ((x i, c i ) i) mit c i 0. - H(x) = x k =x c k ist die verallgemeinerte Häufigkeit von x. Wir erhalten die konventionelle Häufigkeit für c i = 1. Heavy Hitter: Schlüssel mit großer Häufigkeit Bloom Filter Sketches 54 / 74
Eine verallgemeinerte Häufigkeitsanfrage - Der Datenstrom habe die Form ((x i, c i ) i) mit c i 0. - H(x) = x k =x c k ist die verallgemeinerte Häufigkeit von x. Wir erhalten die konventionelle Häufigkeit für c i = 1. - Wir möchten H(x) mit einer Ungenauigkeit von höchstens ε und einer Wahrscheinlichkeit von mindestens 1 δ berechnen. Heavy Hitter: Schlüssel mit großer Häufigkeit Bloom Filter Sketches 54 / 74
Eine verallgemeinerte Häufigkeitsanfrage - Der Datenstrom habe die Form ((x i, c i ) i) mit c i 0. - H(x) = x k =x c k ist die verallgemeinerte Häufigkeit von x. Wir erhalten die konventionelle Häufigkeit für c i = 1. - Wir möchten H(x) mit einer Ungenauigkeit von höchstens ε und einer Wahrscheinlichkeit von mindestens 1 δ berechnen. Wir arbeiten mit k = ln( 1 δ ) Hashfunktionen h 1,..., h k : U {1,..., w} für Zellen. w = e ε Heavy Hitter: Schlüssel mit großer Häufigkeit Bloom Filter Sketches 54 / 74
Eine verallgemeinerte Häufigkeitsanfrage - Der Datenstrom habe die Form ((x i, c i ) i) mit c i 0. - H(x) = x k =x c k ist die verallgemeinerte Häufigkeit von x. Wir erhalten die konventionelle Häufigkeit für c i = 1. - Wir möchten H(x) mit einer Ungenauigkeit von höchstens ε und einer Wahrscheinlichkeit von mindestens 1 δ berechnen. Wir arbeiten mit k = ln( 1 δ ) Hashfunktionen h 1,..., h k : U {1,..., w} für w = e ε Zellen. Wir verwenden zählende Bloom-Filter, die den einzelnen Hashfunktionen disjunkte Teilarrays Z 1,..., Z k des Arrays Z = (Z 1,..., Z k ) zuweisen. Jedes Z i besteht aus w Zellen. Heavy Hitter: Schlüssel mit großer Häufigkeit Bloom Filter Sketches 54 / 74
Der Bloom Filter Sketch 1 Die Arrays Z 1,..., Z k sind alle zu Null initialisiert. Heavy Hitter: Schlüssel mit großer Häufigkeit Bloom Filter Sketches 55 / 74
Der Bloom Filter Sketch 1 Die Arrays Z 1,..., Z k sind alle zu Null initialisiert. 2 Wiederhole: Wenn das Paar (x i, c i ) empfangen wird, dann setze für jedes j k Z j [h j (x i )] = Z j [h j (x i )] + c i. Heavy Hitter: Schlüssel mit großer Häufigkeit Bloom Filter Sketches 55 / 74
Der Bloom Filter Sketch 1 Die Arrays Z 1,..., Z k sind alle zu Null initialisiert. 2 Wiederhole: Wenn das Paar (x i, c i ) empfangen wird, dann setze für jedes j k Z j [h j (x i )] = Z j [h j (x i )] + c i. 3 Eine verallgemeinerte Häufigkeitsfrage für Schlüssel x wird mit H (x) = min 1 j k Z j [h j (x)] beantwortet. Heavy Hitter: Schlüssel mit großer Häufigkeit Bloom Filter Sketches 55 / 74
Analyse (1/3) - Es ist stets H(x) Z j [h j (x)] und H(x) H (x) folgt. - Mit welcher Wahrscheinlichkeit wird H (x) zu groß? Heavy Hitter: Schlüssel mit großer Häufigkeit Bloom Filter Sketches 56 / 74
Analyse (1/3) - Es ist stets H(x) Z j [h j (x)] und H(x) H (x) folgt. - Mit welcher Wahrscheinlichkeit wird H (x) zu groß? Definiere die Zufallsvariable K x j = y U mit x y und h j (x)=h j (y) H(y). Heavy Hitter: Schlüssel mit großer Häufigkeit Bloom Filter Sketches 56 / 74
Analyse (1/3) - Es ist stets H(x) Z j [h j (x)] und H(x) H (x) folgt. - Mit welcher Wahrscheinlichkeit wird H (x) zu groß? Definiere die Zufallsvariable K x = y U mit x y und h j (x)=h j (y) H(y). Es ist prob[ H (x) > H(x) + ε y U H(y) ] j Heavy Hitter: Schlüssel mit großer Häufigkeit Bloom Filter Sketches 56 / 74
Analyse (1/3) - Es ist stets H(x) Z j [h j (x)] und H(x) H (x) folgt. - Mit welcher Wahrscheinlichkeit wird H (x) zu groß? Definiere die Zufallsvariable K x = y U mit x y und h j (x)=h j (y) H(y). Es ist prob[ H (x) > H(x) + ε y U H(y) ] j = prob[ j k : Z j [h j (x)] > H(x) + ε H(y) ] y U Heavy Hitter: Schlüssel mit großer Häufigkeit Bloom Filter Sketches 56 / 74
Analyse (1/3) - Es ist stets H(x) Z j [h j (x)] und H(x) H (x) folgt. - Mit welcher Wahrscheinlichkeit wird H (x) zu groß? Definiere die Zufallsvariable K x = y U mit x y und h j (x)=h j (y) H(y). Es ist prob[ H (x) > H(x) + ε y U H(y) ] j = prob[ j k : Z j [h j (x)] > H(x) + ε H(y) ] = prob[ j k : H(x) + K x j y U > H(x) + ε H(y) ] y U Heavy Hitter: Schlüssel mit großer Häufigkeit Bloom Filter Sketches 56 / 74
Analyse (1/3) - Es ist stets H(x) Z j [h j (x)] und H(x) H (x) folgt. - Mit welcher Wahrscheinlichkeit wird H (x) zu groß? Definiere die Zufallsvariable K x = y U mit x y und h j (x)=h j (y) H(y). Es ist prob[ H (x) > H(x) + ε y U H(y) ] j = prob[ j k : Z j [h j (x)] > H(x) + ε H(y) ] = prob[ j k : H(x) + K x j = prob[ j k : K x j y U > H(x) + ε H(y) ] > ε H(y) ] y U y U Heavy Hitter: Schlüssel mit großer Häufigkeit Bloom Filter Sketches 56 / 74
Analyse (1/3) - Es ist stets H(x) Z j [h j (x)] und H(x) H (x) folgt. - Mit welcher Wahrscheinlichkeit wird H (x) zu groß? Definiere die Zufallsvariable K x = y U mit x y und h j (x)=h j (y) H(y). Es ist prob[ H (x) > H(x) + ε y U H(y) ] j = prob[ j k : Z j [h j (x)] > H(x) + ε H(y) ] = prob[ j k : H(x) + K x j = prob[ j k : K x j = (prob[ K x j y U > H(x) + ε H(y) ] > ε H(y) ] y U > ε H(y) ]) k. y U y U Heavy Hitter: Schlüssel mit großer Häufigkeit Bloom Filter Sketches 56 / 74
Analyse (2/3) prob[ H (x) > H(x) + ε y U H(y) ] = (prob[ K x j > ε y U H(y) ])k. Wie groß kann K x j werden? Heavy Hitter: Schlüssel mit großer Häufigkeit Bloom Filter Sketches 57 / 74
Analyse (2/3) prob[ H (x) > H(x) + ε y U H(y) ] = (prob[ K x j > ε y U H(y) ])k. Wie groß kann K x j werden? Die Null-Eins Zufallsvariable K x j (y) nehme genau dann den Wert Eins an, wenn h j (x) = h j (y). Es ist E[K x j (y)] Heavy Hitter: Schlüssel mit großer Häufigkeit Bloom Filter Sketches 57 / 74
Analyse (2/3) prob[ H (x) > H(x) + ε y U H(y) ] = (prob[ K x j > ε y U H(y) ])k. Wie groß kann K x j werden? Die Null-Eins Zufallsvariable K x j (y) nehme genau dann den Wert Eins an, wenn h j (x) = h j (y). Es ist E[K x j (y)] 1/w für x y. Heavy Hitter: Schlüssel mit großer Häufigkeit Bloom Filter Sketches 57 / 74
Analyse (2/3) prob[ H (x) > H(x) + ε y U H(y) ] = (prob[ K x j > ε y U H(y) ])k. Wie groß kann K x j werden? Die Null-Eins Zufallsvariable K x j (y) nehme genau dann den Wert Eins an, wenn h j (x) = h j (y). Es ist E[K x j (y)] 1/w für x y. Wir schätzen den Erwartungswert von K x j ab: E[ K x j ] = E[ y U: x y,h j (x)=h j (y) H(y) ] = Heavy Hitter: Schlüssel mit großer Häufigkeit Bloom Filter Sketches 57 / 74
Analyse (2/3) prob[ H (x) > H(x) + ε y U H(y) ] = (prob[ K x j > ε y U H(y) ])k. Wie groß kann K x j werden? Die Null-Eins Zufallsvariable K x j (y) nehme genau dann den Wert Eins an, wenn h j (x) = h j (y). Es ist E[K x j (y)] 1/w für x y. Wir schätzen den Erwartungswert von K x j ab: E[ K x j ] = E[ y U: x y,h j (x)=h j (y) H(y) ] = y U mit x y H(y) E[ K x j (y) ] Heavy Hitter: Schlüssel mit großer Häufigkeit Bloom Filter Sketches 57 / 74
Analyse (2/3) prob[ H (x) > H(x) + ε y U H(y) ] = (prob[ K x j > ε y U H(y) ])k. Wie groß kann K x j werden? Die Null-Eins Zufallsvariable K x j (y) nehme genau dann den Wert Eins an, wenn h j (x) = h j (y). Es ist E[K x j (y)] 1/w für x y. Wir schätzen den Erwartungswert von K x j ab: E[ K x j ] = E[ y U: x y,h j (x)=h j (y) y U mit x y H(y) w H(y) ] = y U mit x y ε e H(y), denn w = e ε. y U H(y) E[ K x j (y) ] Heavy Hitter: Schlüssel mit großer Häufigkeit Bloom Filter Sketches 57 / 74
Analyse (3/3) Wende die Markoff-Ungleichung pr[ X a ] E[ X ]/a an: prob[ H (x) > H(x) + ε H(y) ] = (prob[ K x j y U > ε H(y) ]) k y U Heavy Hitter: Schlüssel mit großer Häufigkeit Bloom Filter Sketches 58 / 74
Analyse (3/3) Wende die Markoff-Ungleichung pr[ X a ] E[ X ]/a an: prob[ H (x) > H(x) + ε H(y) ] = (prob[ K x j y U > ε H(y) ]) k y U ( ε e H(y) / ε H(y)) k y U y U Heavy Hitter: Schlüssel mit großer Häufigkeit Bloom Filter Sketches 58 / 74
Analyse (3/3) Wende die Markoff-Ungleichung pr[ X a ] E[ X ]/a an: prob[ H (x) > H(x) + ε H(y) ] = (prob[ K x j y U > ε H(y) ]) k y U ( ε e H(y) / ε H(y)) k = e k y U y U Heavy Hitter: Schlüssel mit großer Häufigkeit Bloom Filter Sketches 58 / 74
Analyse (3/3) Wende die Markoff-Ungleichung pr[ X a ] E[ X ]/a an: prob[ H (x) > H(x) + ε H(y) ] = (prob[ K x j y U > ε H(y) ]) k y U ( ε e H(y) / ε H(y)) k = e k δ. y U y U Heavy Hitter: Schlüssel mit großer Häufigkeit Bloom Filter Sketches 58 / 74
Analyse (3/3) Wende die Markoff-Ungleichung pr[ X a ] E[ X ]/a an: prob[ H (x) > H(x) + ε H(y) ] = (prob[ K x j y U > ε H(y) ]) k y U ( ε e H(y) / ε H(y)) k = e k δ. y U y U Für k = ln( 1 δ ) und w = e ε gilt H(x) H (x) H(x) + ε H(y) mit Wahrscheinlichkeit mindestens 1 δ. y U Heavy Hitter: Schlüssel mit großer Häufigkeit Bloom Filter Sketches 58 / 74
Heavy Hitter: Zusammenfassung Der Zähleralgorithmus: Alle Schlüssel mit Häufigkeit größer als p% werden bestimmt; allerdings werden noch weitere, höchstens aber 1 p Schlüssel ausgegeben. Der Algorithmus rechnet in Linearzeit. Heavy Hitter: Schlüssel mit großer Häufigkeit Bloom Filter Sketches 59 / 74
Heavy Hitter: Zusammenfassung Der Zähleralgorithmus: Alle Schlüssel mit Häufigkeit größer als p% werden bestimmt; allerdings werden noch weitere, höchstens aber 1 p Schlüssel ausgegeben. Der Algorithmus rechnet in Linearzeit. Der Bloom Filter Sketch: Für k = ln( 1 δ ) und w = e ε gilt H (x) H(x) + ε H(y) mit Wahrscheinlichkeit mindestens 1 δ. Höchstens O( 1 ε ln( 1 δ )) Zellen werden benutzt und die Laufzeit pro Anfrage ist höchstens O(ln( 1 δ )). y U Heavy Hitter: Schlüssel mit großer Häufigkeit Bloom Filter Sketches 59 / 74
Heavy Hitter: Zusammenfassung Der Zähleralgorithmus: Alle Schlüssel mit Häufigkeit größer als p% werden bestimmt; allerdings werden noch weitere, höchstens aber 1 p Schlüssel ausgegeben. Der Algorithmus rechnet in Linearzeit. Der Bloom Filter Sketch: Für k = ln( 1 δ ) und w = e ε gilt H (x) H(x) + ε H(y) mit Wahrscheinlichkeit mindestens 1 δ. Höchstens O( 1 ε ln( 1 δ )) Zellen werden benutzt und die Laufzeit pro Anfrage ist höchstens O(ln( 1 δ )). y U In Anwendungen muss ε SEHR klein gewählt werden! Heavy Hitter: Schlüssel mit großer Häufigkeit Bloom Filter Sketches 59 / 74
Häufigkeitseigenschaften Eigenschaften 60 / 74
Eigenschaften von Häufigkeiten - Wir interpretieren Teilmengen E n {1,..., n} als Eigenschaften von Häufigkeiten: Schlüssel x hat Eigenschaft E n, falls die Häufigkeit von x unter den ersten n Schlüsseln in E n liegt. Beispiel: E n = {1,..., K } formalisiert die Eigenschaft höchstens K -mal aufzutreten. Eigenschaften 61 / 74
Eigenschaften von Häufigkeiten - Wir interpretieren Teilmengen E n {1,..., n} als Eigenschaften von Häufigkeiten: Schlüssel x hat Eigenschaft E n, falls die Häufigkeit von x unter den ersten n Schlüsseln in E n liegt. Beispiel: E n = {1,..., K } formalisiert die Eigenschaft höchstens K -mal aufzutreten. - E n = {x j j n und x j hat Eigenschaft E n } ist die Menge der Schlüssel mit Eigenschaft E n. Wenn V n die Menge der verschiedenen Schlüssel (unter den ersten n) ist, dann ist p[e n ] = E n V n die Wahrscheinlichkeit von E n. Eigenschaften 61 / 74
Eigenschaften von Häufigkeiten - Wir interpretieren Teilmengen E n {1,..., n} als Eigenschaften von Häufigkeiten: Schlüssel x hat Eigenschaft E n, falls die Häufigkeit von x unter den ersten n Schlüsseln in E n liegt. Beispiel: E n = {1,..., K } formalisiert die Eigenschaft höchstens K -mal aufzutreten. - E n = {x j j n und x j hat Eigenschaft E n } ist die Menge der Schlüssel mit Eigenschaft E n. Wenn V n die Menge der verschiedenen Schlüssel (unter den ersten n) ist, dann ist p[e n ] = E n V n die Wahrscheinlichkeit von E n. Wie scharf kann p[e n ] approximiert werden? Eigenschaften 61 / 74
Der Jaccard Koeffizient Wir erinnern an den Jaccard Koeffizienten J(A, B) = A B A B. Es ist min π (A) = min π (B) mit Wahrscheinlichkeit J(A, B), wobei min(x) = min{π(x) x X}. π Eigenschaften 62 / 74
Der Jaccard Koeffizient Wir erinnern an den Jaccard Koeffizienten J(A, B) = A B A B. Es ist min π (A) = min π (B) mit Wahrscheinlichkeit J(A, B), wobei min(x) = min{π(x) x X}. π Es ist J(E n, V n ) = E n Vn E n V n Eigenschaften 62 / 74
Der Jaccard Koeffizient Wir erinnern an den Jaccard Koeffizienten J(A, B) = A B A B. Es ist min π (A) = min π (B) mit Wahrscheinlichkeit J(A, B), wobei min(x) = min{π(x) x X}. π Es ist J(E n, V n ) = E n Vn E n V n = E n V n Eigenschaften 62 / 74
Der Jaccard Koeffizient Wir erinnern an den Jaccard Koeffizienten J(A, B) = A B A B. Es ist min π (A) = min π (B) mit Wahrscheinlichkeit J(A, B), wobei min(x) = min{π(x) x X}. π Es ist J(E n, V n ) = E n Vn E n V n = E n V n = p[e n ]. Eigenschaften 62 / 74
Der Jaccard Koeffizient Wir erinnern an den Jaccard Koeffizienten J(A, B) = A B A B. Es ist min π (A) = min π (B) mit Wahrscheinlichkeit J(A, B), wobei min(x) = min{π(x) x X}. π Es ist J(E n, V n ) = E n Vn E n V n = E n V n = p[e n ]. Als Konsequenz: prob[min(e π n) = min(v n )] = π Eigenschaften 62 / 74
Der Jaccard Koeffizient Wir erinnern an den Jaccard Koeffizienten J(A, B) = A B A B. Es ist min π (A) = min π (B) mit Wahrscheinlichkeit J(A, B), wobei min(x) = min{π(x) x X}. π Es ist J(E n, V n ) = E n Vn E n V n = E n V n = p[e n ]. Als Konsequenz: prob[min(e π n) = min(v n )] = p[e n ]. π Eigenschaften 62 / 74
Berechnung von p[e n ] 1 Wähle zufällig k Permutationen π 1,..., π k. Setze min j (0) = sowie Zähler j = 0 für alle j k. Eigenschaften 63 / 74
Berechnung von p[e n ] 1 Wähle zufällig k Permutationen π 1,..., π k. Setze min j (0) = sowie Zähler j = 0 für alle j k. 2 Wenn x i+1 zu verarbeiten ist, dann wiederhole für jedes j k (a) Berechne π j (x i+1 ). Eigenschaften 63 / 74
Berechnung von p[e n ] 1 Wähle zufällig k Permutationen π 1,..., π k. Setze min j (0) = sowie Zähler j = 0 für alle j k. 2 Wenn x i+1 zu verarbeiten ist, dann wiederhole für jedes j k (a) Berechne π j (x i+1 ). (b) Wenn π j (x i+1 ) < min j (i), dann setze min j (i + 1) = π j (x i+1 ) und Zähler j = 1. /* Der Schlüssel x i+1 tritt zum ersten Mal auf und sein Zähler wird deshalb auf Eins gesetzt. */ Eigenschaften 63 / 74
Berechnung von p[e n ] 1 Wähle zufällig k Permutationen π 1,..., π k. Setze min j (0) = sowie Zähler j = 0 für alle j k. 2 Wenn x i+1 zu verarbeiten ist, dann wiederhole für jedes j k (a) Berechne π j (x i+1 ). (b) Wenn π j (x i+1 ) < min j (i), dann setze min j (i + 1) = π j (x i+1 ) und Zähler j = 1. /* Der Schlüssel x i+1 tritt zum ersten Mal auf und sein Zähler wird deshalb auf Eins gesetzt. */ (c) Wenn π j (x i+1 ) = min j (i), dann setze Zähler j = Z-ahler j + 1. /* Ein weiteres Vorkommen des minimalen Schlüssels x i+1 für π j : Sein Zähler wird inkrementiert. */ Eigenschaften 63 / 74
Berechnung von p[e n ] 1 Wähle zufällig k Permutationen π 1,..., π k. Setze min j (0) = sowie Zähler j = 0 für alle j k. 2 Wenn x i+1 zu verarbeiten ist, dann wiederhole für jedes j k (a) Berechne π j (x i+1 ). (b) Wenn π j (x i+1 ) < min j (i), dann setze min j (i + 1) = π j (x i+1 ) und Zähler j = 1. /* Der Schlüssel x i+1 tritt zum ersten Mal auf und sein Zähler wird deshalb auf Eins gesetzt. */ (c) Wenn π j (x i+1 ) = min j (i), dann setze Zähler j = Z-ahler j + 1. /* Ein weiteres Vorkommen des minimalen Schlüssels x i+1 für π j : Sein Zähler wird inkrementiert. */ 3 k sei die Anzahl der Schlüssel min j (n) mit Eigenschaft E n : Gib k /k als Schätzung für p[e n ] aus. Eigenschaften 63 / 74
Analyse (1/2) Definiere die Zufallsvariablen { 1 minj (n) E X j = n, 0 sonst. Eigenschaften 64 / 74
Analyse (1/2) Definiere die Zufallsvariablen { 1 minj (n) E X j = n, 0 sonst. E[ k j=1 X j] = k j=1 E[X j] Eigenschaften 64 / 74
Analyse (1/2) Definiere die Zufallsvariablen { 1 minj (n) E X j = n, 0 sonst. E[ k j=1 X j] = k j=1 E[X j] = k p[e n ]. Eigenschaften 64 / 74
Analyse (1/2) Definiere die Zufallsvariablen { 1 minj (n) E X j = n, 0 sonst. E[ k j=1 X j] = k j=1 E[X j] = k p[e n ]. X 1,..., X k sind unabhängig: Die Chernoff-Schranke liefert prob[ k X j k p[e n ] ε k p[e n ] ] 2 e k p[en] ε2 /3. j=1 Eigenschaften 64 / 74
Analyse (1/2) Definiere die Zufallsvariablen { 1 minj (n) E X j = n, 0 sonst. E[ k j=1 X j] = k j=1 E[X j] = k p[e n ]. X 1,..., X k sind unabhängig: Die Chernoff-Schranke liefert prob[ k X j k p[e n ] ε k p[e n ] ] 2 e k p[en] ε2 /3. j=1 Also folgt prob[ k /k p[e n ] ε p[e n ] ] = prob[ k k p[e n ] ε k p[e n ] ] Eigenschaften 64 / 74
Analyse (1/2) Definiere die Zufallsvariablen { 1 minj (n) E X j = n, 0 sonst. E[ k j=1 X j] = k j=1 E[X j] = k p[e n ]. X 1,..., X k sind unabhängig: Die Chernoff-Schranke liefert prob[ k X j k p[e n ] ε k p[e n ] ] 2 e k p[en] ε2 /3. j=1 Also folgt prob[ k /k p[e n ] ε p[e n ] ] = prob[ k k p[e n ] ε k p[e n ] ] 2 e k p[en] ε2 /3. Eigenschaften 64 / 74
Analyse (2/2) prob[ k /k p[e n ] ε p[e n ] ] 2 e k p[en] ε2 /3. Eigenschaften 65 / 74
Analyse (2/2) prob[ k /k p[e n ] ε p[e n ] ] 2 e k p[en] ε2 /3. Für eine ε-approximation mit Fehlerwahrscheinlichkeit höchstens δ fordere 2 e k p[en] ε2 /3 δ. Äquivalent dazu k p[e n ] ε 2 /3 ln( δ 2 ), Eigenschaften 65 / 74
Analyse (2/2) prob[ k /k p[e n ] ε p[e n ] ] 2 e k p[en] ε2 /3. Für eine ε-approximation mit Fehlerwahrscheinlichkeit höchstens δ fordere 2 e k p[en] ε2 /3 δ. Äquivalent dazu k p[e n ] ε 2 /3 ln( δ 2 ), bzw. k 3 ε 2 p[e n] ln( 2 δ ). Eigenschaften 65 / 74
Analyse (2/2) prob[ k /k p[e n ] ε p[e n ] ] 2 e k p[en] ε2 /3. Für eine ε-approximation mit Fehlerwahrscheinlichkeit höchstens δ fordere 2 e k p[en] ε2 /3 δ. Äquivalent dazu k p[e n ] ε 2 /3 ln( δ 2 ), bzw. k 3 ε 2 p[e n] ln( 2 δ ). 1 - Für k = O( ε 2 p[e ln( 1 n] δ )) erreichen wir eine (1 + ε)-approximation von p[e n ] mit Wahrscheinlichkeit mindestens 1 δ. Eigenschaften 65 / 74
Analyse (2/2) prob[ k /k p[e n ] ε p[e n ] ] 2 e k p[en] ε2 /3. Für eine ε-approximation mit Fehlerwahrscheinlichkeit höchstens δ fordere 2 e k p[en] ε2 /3 δ. Äquivalent dazu k p[e n ] ε 2 /3 ln( δ 2 ), bzw. k 3 ε 2 p[e n] ln( 2 δ ). 1 - Für k = O( ε 2 p[e ln( 1 n] δ )) erreichen wir eine (1 + ε)-approximation von p[e n ] mit Wahrscheinlichkeit mindestens 1 δ. - Die Laufzeit pro Schlüssel ist durch O(k) und die Speicherplatzkomplexität durch O(k log 2 n) beschränkt. Eigenschaften 65 / 74
Wahrscheinlichkeit von Eigenschaften - Wir erreichen eine (1 + ε)-approximation von p[e n ] mit Wahrscheinlichkeit mindestens 1 δ für k = O( 1 ε 2 p[e n] ln( 1 δ )). - Die Laufzeit pro Schlüssel ist durch O(k) und die Speicherplatzkomplexität durch O(k log 2 n) beschränkt. Eigenschaften 66 / 74
Wahrscheinlichkeit von Eigenschaften - Wir erreichen eine (1 + ε)-approximation von p[e n ] mit Wahrscheinlichkeit mindestens 1 δ für k = O( 1 ε 2 p[e n] ln( 1 δ )). - Die Laufzeit pro Schlüssel ist durch O(k) und die Speicherplatzkomplexität durch O(k log 2 n) beschränkt. + Eine gute Approximation gelingt mit Min-Hashing relativ schnell und mit kleinem Speicher. Eigenschaften 66 / 74
Wahrscheinlichkeit von Eigenschaften - Wir erreichen eine (1 + ε)-approximation von p[e n ] mit Wahrscheinlichkeit mindestens 1 δ für k = O( 1 ε 2 p[e n] ln( 1 δ )). - Die Laufzeit pro Schlüssel ist durch O(k) und die Speicherplatzkomplexität durch O(k log 2 n) beschränkt. + Eine gute Approximation gelingt mit Min-Hashing relativ schnell und mit kleinem Speicher. - Allerdings darf die Eigenschaft nicht zu unwahrscheinlich sein: Die Laufzeit und die Speichergröße wächst mit 1 p[e n]. Eigenschaften 66 / 74
Wahrscheinlichkeit von Eigenschaften - Wir erreichen eine (1 + ε)-approximation von p[e n ] mit Wahrscheinlichkeit mindestens 1 δ für k = O( 1 ε 2 p[e n] ln( 1 δ )). - Die Laufzeit pro Schlüssel ist durch O(k) und die Speicherplatzkomplexität durch O(k log 2 n) beschränkt. + Eine gute Approximation gelingt mit Min-Hashing relativ schnell und mit kleinem Speicher. - Allerdings darf die Eigenschaft nicht zu unwahrscheinlich sein: Die Laufzeit und die Speichergröße wächst mit 1 p[e n]. - Ein weiterer Wermutstropfen: Wir können nicht alle Schlüssel mit Eigenschaft E n liefern, sondern nur eine kleine Auswahl. Eigenschaften 66 / 74
Zeitfenster Zeitfenster 67 / 74
Zeitfenster 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. Zeitfenster 68 / 74
Zeitfenster 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. - Jeder deterministische Algorithmus, der die Anzahl der Einsen im Zeitfenster der Größe N mit relativem Fehler ε bestimmt, benötigt mindestens Speicherplatz Ω( 1 ε log2 2 εn). - Wir zeigen, dass Speicherplatz O( 1 ε log2 2 N) ausreicht. Zeitfenster 68 / 74
Die Datenstruktur der Körbe Wir arbeiten mit Körben K 1,... K m. Der Korb K i speichert die Anzahl der Einsen in einem sich dynamisch ändernden Zeitintervall Z i. Zeitfenster 69 / 74
Die Datenstruktur der Körbe Wir arbeiten mit Körben K 1,... K m. Der Korb K i speichert die Anzahl der Einsen in einem sich dynamisch ändernden Zeitintervall Z i. Die Zeitintervalle Z 1,..., Z m bilden eine disjunkte Zerlegung eines {1,..., N} umfassenden Zeitraums. Zeitfenster 69 / 74
Die Datenstruktur der Körbe Wir arbeiten mit Körben K 1,... K m. Der Korb K i speichert die Anzahl der Einsen in einem sich dynamisch ändernden Zeitintervall Z i. Die Zeitintervalle Z 1,..., Z m bilden eine disjunkte Zerlegung eines {1,..., N} umfassenden Zeitraums. Die Zeitintervalle sind zeitlich geordnet Z 1 < < Z m, wobei Z 1 den gegenwärtigen Zeitpunkt und Zm den letzten interessanten Zeitpunkt N der Vergangenheit enthält. Zeitfenster 69 / 74
Die Datenstruktur der Körbe Wir arbeiten mit Körben K 1,... K m. Der Korb K i speichert die Anzahl der Einsen in einem sich dynamisch ändernden Zeitintervall Z i. Die Zeitintervalle Z 1,..., Z m bilden eine disjunkte Zerlegung eines {1,..., N} umfassenden Zeitraums. Die Zeitintervalle sind zeitlich geordnet Z 1 < < Z m, wobei Z 1 den gegenwärtigen Zeitpunkt und Zm den letzten interessanten Zeitpunkt N der Vergangenheit enthält. Korb K i speichert den Zeitstempel des Korb, nämlich das Alter der jüngsten erfassten Eins im Zeitintervall Z i und und die Korbgröße Gi, also die Anzahl der Einsen im Zeitintervall Z i. Zeitfenster 69 / 74
Die Datenstruktur der Körbe Wir arbeiten mit Körben K 1,... K m. Der Korb K i speichert die Anzahl der Einsen in einem sich dynamisch ändernden Zeitintervall Z i. Die Zeitintervalle Z 1,..., Z m bilden eine disjunkte Zerlegung eines {1,..., N} umfassenden Zeitraums. Die Zeitintervalle sind zeitlich geordnet Z 1 < < Z m, wobei Z 1 den gegenwärtigen Zeitpunkt und Zm den letzten interessanten Zeitpunkt N der Vergangenheit enthält. Korb K i speichert den Zeitstempel des Korb, nämlich das Alter der jüngsten erfassten Eins im Zeitintervall Z i und und die Korbgröße Gi, also die Anzahl der Einsen im Zeitintervall Z i. Die Korbgrößen G i sind stets Zweierpotenzen und die Körbe K 1..., K m besitzen aufsteigende Korbgrößen. Zeitfenster 69 / 74
Zeitstempel Der Zeitstempel verrät, 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. Zeitfenster 70 / 74
Zeitstempel Der Zeitstempel verrät, 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. Für alle Körbe kennen wir die exakte Anzahl der Einsen ihres Zeitintervalls, nicht aber das Ende des Zeitintervalls. Wenn der letzte Korb K m noch aktuell ist, dann folgt nur m 1 m 1 G i + 1 Exakt G i + G m. i=1 i=1 Zeitfenster 70 / 74
Zeitstempel Der Zeitstempel verrät, 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. Für alle Körbe kennen wir die exakte Anzahl der Einsen ihres Zeitintervalls, nicht aber das Ende des Zeitintervalls. Wenn der letzte Korb K m noch aktuell ist, dann folgt nur m 1 m 1 G i + 1 Exakt G i + G m. i=1 i=1 Wir geben die Schätzung m 1 i=1 G i + Gm 2 ab. Zeitfenster 70 / 74
Zeitstempel Der Zeitstempel verrät, 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. Für alle Körbe kennen wir die exakte Anzahl der Einsen ihres Zeitintervalls, nicht aber das Ende des Zeitintervalls. Wenn der letzte Korb K m noch aktuell ist, dann folgt nur m 1 m 1 G i + 1 Exakt G i + G m. i=1 Wir geben die Schätzung m 1 i=1 G i + Gm 2 ab. Um den relativen Fehler durch 2ε zu beschränken, genügt die Forderung G m /2 m 1 i=1 G 2 ε, i + 1 i=1 Zeitfenster 70 / 74
Zeitstempel Der Zeitstempel verrät, 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. Für alle Körbe kennen wir die exakte Anzahl der Einsen ihres Zeitintervalls, nicht aber das Ende des Zeitintervalls. Wenn der letzte Korb K m noch aktuell ist, dann folgt nur m 1 m 1 G i + 1 Exakt G i + G m. i=1 Wir geben die Schätzung m 1 i=1 G i + Gm 2 ab. Um den relativen Fehler durch 2ε zu beschränken, genügt die Forderung i=1 G m /2 m 1 i=1 G i + 1 2 ε, bzw. stärker (G m 1)/2 m 1 i=1 G i + 1 ε. Zeitfenster 70 / 74
Die Größe des letzten Korbs (1) Die Forderung (Gm 1)/2 m 1 ε soll stets erfüllt sein! i=1 G i +1 Zeitfenster 71 / 74
Die Größe des letzten Korbs (1) Die Forderung (Gm 1)/2 m 1 ε soll stets erfüllt sein! i=1 G i +1 (2) Fordere für k = 1 ε : Wenn 2h die Korbgröße des letzten Korbs K m ist, dann gibt es zu jedem h < h mindestens k 2 und höchstens k 2 + 1 Körbe der Größe 2h. Zeitfenster 71 / 74
Die Größe des letzten Korbs (1) Die Forderung (Gm 1)/2 m 1 ε soll stets erfüllt sein! i=1 G i +1 (2) Fordere für k = 1 ε : Wenn 2h die Korbgröße des letzten Korbs K m ist, dann gibt es zu jedem h < h mindestens k 2 und höchstens k 2 + 1 Körbe der Größe 2h. (1) folgt aus (2): Wenn Korb K m die Korbgröße 2 r besitzt, dann gibt es mindestens k 2 Körbe der Größen 1, 2, 4,..., 2r 1. Zeitfenster 71 / 74
Die Größe des letzten Korbs (1) Die Forderung (Gm 1)/2 m 1 ε soll stets erfüllt sein! i=1 G i +1 (2) Fordere für k = 1 ε : Wenn 2h die Korbgröße des letzten Korbs K m ist, dann gibt es zu jedem h < h mindestens k 2 und höchstens k 2 + 1 Körbe der Größe 2h. (1) folgt aus (2): Wenn Korb K m die Korbgröße 2 r besitzt, dann gibt es mindestens k 2 Körbe der Größen 1, 2, 4,..., 2r 1. Also gilt m 1 i=1 G i + 1 k r 1 2 i=0 2 i Zeitfenster 71 / 74
Die Größe des letzten Korbs (1) Die Forderung (Gm 1)/2 m 1 ε soll stets erfüllt sein! i=1 G i +1 (2) Fordere für k = 1 ε : Wenn 2h die Korbgröße des letzten Korbs K m ist, dann gibt es zu jedem h < h mindestens k 2 und höchstens k 2 + 1 Körbe der Größe 2h. (1) folgt aus (2): Wenn Korb K m die Korbgröße 2 r besitzt, dann gibt es mindestens k 2 Körbe der Größen 1, 2, 4,..., 2r 1. Also gilt m 1 i=1 G i + 1 k r 1 2 2 i = k 2 (2r 1) i=0 Zeitfenster 71 / 74
Die Größe des letzten Korbs (1) Die Forderung (Gm 1)/2 m 1 ε soll stets erfüllt sein! i=1 G i +1 (2) Fordere für k = 1 ε : Wenn 2h die Korbgröße des letzten Korbs K m ist, dann gibt es zu jedem h < h mindestens k 2 und höchstens k 2 + 1 Körbe der Größe 2h. (1) folgt aus (2): Wenn Korb K m die Korbgröße 2 r besitzt, dann gibt es mindestens k 2 Körbe der Größen 1, 2, 4,..., 2r 1. Also gilt m 1 i=1 G i + 1 k r 1 2 i=0 2 i = k 2 (2r 1) 1 ε Gm 1. 2 Zeitfenster 71 / 74
Der Algorithmus 1 Zwei Variablen TOTAL und LETZTER speichern die Gesamtgröße aller Körbe, bzw. den Index des letzten Korbs. Zeitfenster 72 / 74
Der Algorithmus 1 Zwei Variablen TOTAL und LETZTER speichern die Gesamtgröße aller Körbe, bzw. den Index des letzten Korbs. 2 Wenn der letzte Korb nicht aktuell ist, dann entferne ihn und aktualisiere TOTAL und LETZTER. Zeitfenster 72 / 74
Der Algorithmus 1 Zwei Variablen TOTAL und LETZTER speichern die Gesamtgröße aller Körbe, bzw. den Index des letzten Korbs. 2 Wenn der letzte Korb nicht aktuell ist, dann entferne ihn und aktualisiere TOTAL und LETZTER. 3 Wenn das neue Bit eine Null ist, dann wird es ignoriert. Sonst: erzeuge einen neuen Korb mit Korbgröße 1, halte den Zeitpunkt fest und erhöhe TOTAL um eins. Zeitfenster 72 / 74
Der Algorithmus 1 Zwei Variablen TOTAL und LETZTER speichern die Gesamtgröße aller Körbe, bzw. den Index des letzten Korbs. 2 Wenn der letzte Korb nicht aktuell ist, dann entferne ihn und aktualisiere TOTAL und LETZTER. 3 Wenn das neue Bit eine Null ist, dann wird es ignoriert. Sonst: erzeuge einen neuen Korb mit Korbgröße 1, halte den Zeitpunkt fest und erhöhe TOTAL um eins. 4 Gibt es jetzt k 2 + 2 Körbe der Korbgröße 1, dann vereinige die beiden ältesten Körbe zu einem Korb der Größe 2 und bestimme den Zeitstempel des neuen Korbs. Zeitfenster 72 / 74
Der Algorithmus 1 Zwei Variablen TOTAL und LETZTER speichern die Gesamtgröße aller Körbe, bzw. den Index des letzten Korbs. 2 Wenn der letzte Korb nicht aktuell ist, dann entferne ihn und aktualisiere TOTAL und LETZTER. 3 Wenn das neue Bit eine Null ist, dann wird es ignoriert. Sonst: erzeuge einen neuen Korb mit Korbgröße 1, halte den Zeitpunkt fest und erhöhe TOTAL um eins. 4 Gibt es jetzt k 2 + 2 Körbe der Korbgröße 1, dann vereinige die beiden ältesten Körbe zu einem Korb der Größe 2 und bestimme den Zeitstempel des neuen Korbs. Nach Verschmelzung gibt es möglicherweise zu viele Körbe der Größe 2. Zeitfenster 72 / 74
Der Algorithmus 1 Zwei Variablen TOTAL und LETZTER speichern die Gesamtgröße aller Körbe, bzw. den Index des letzten Korbs. 2 Wenn der letzte Korb nicht aktuell ist, dann entferne ihn und aktualisiere TOTAL und LETZTER. 3 Wenn das neue Bit eine Null ist, dann wird es ignoriert. Sonst: erzeuge einen neuen Korb mit Korbgröße 1, halte den Zeitpunkt fest und erhöhe TOTAL um eins. 4 Gibt es jetzt k 2 + 2 Körbe der Korbgröße 1, dann vereinige die beiden ältesten Körbe zu einem Korb der Größe 2 und bestimme den Zeitstempel des neuen Korbs. Nach Verschmelzung gibt es möglicherweise zu viele Körbe der Größe 2. Also setze die Überprüfung für Korbgröße 2 fort... und aktualisiere gegebenenfalls die Variable LETZTER. Zeitfenster 72 / 74
Ein Beispiel Es sei k = 2. Die Korbgrößen seien (1, 1, 2, 4, 4, 8, 8, 16, 32). Wenn eine neue Eins eintrifft, dann Zeitfenster 73 / 74
Ein Beispiel Es sei k = 2. Die Korbgrößen seien (1, 1, 2, 4, 4, 8, 8, 16, 32). Wenn eine neue Eins eintrifft, dann fasse Körbe zusammen, um (1, 2, 2, 4, 4, 8, 8, 16, 32) zu erhalten. Zeitfenster 73 / 74
Ein Beispiel Es sei k = 2. Die Korbgrößen seien (1, 1, 2, 4, 4, 8, 8, 16, 32). Wenn eine neue Eins eintrifft, dann fasse Körbe zusammen, um (1, 2, 2, 4, 4, 8, 8, 16, 32) zu erhalten. Nach zwei weiteren Einsen und der entsprechenden Korbzusammenfassung ergibt sich dann der Vektor Zeitfenster 73 / 74
Ein Beispiel Es sei k = 2. Die Korbgrößen seien (1, 1, 2, 4, 4, 8, 8, 16, 32). Wenn eine neue Eins eintrifft, dann fasse Körbe zusammen, um (1, 2, 2, 4, 4, 8, 8, 16, 32) zu erhalten. Nach zwei weiteren Einsen und der entsprechenden Korbzusammenfassung ergibt sich dann der Vektor (1, 2, 4, 8, 16, 16, 32). Zeitfenster 73 / 74
Ein Beispiel Es sei k = 2. Die Korbgrößen seien (1, 1, 2, 4, 4, 8, 8, 16, 32). Wenn eine neue Eins eintrifft, dann fasse Körbe zusammen, um (1, 2, 2, 4, 4, 8, 8, 16, 32) zu erhalten. Nach zwei weiteren Einsen und der entsprechenden Korbzusammenfassung ergibt sich dann der Vektor (1, 2, 4, 8, 16, 16, 32). Jedes neue Bit verursacht im worst-case O(log 2 N) Operationen, während die durchschnittliche Laufzeit sogar nur konstant ist. Zeitfenster 73 / 74
Das Ergebnis - 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 O(log 2 N) und die amortisierte Laufzeit ist konstant. - Die Speicherplatzkomplexität ist durch O( 1 ε log2 2 N) beschränkt. Zeitfenster 74 / 74
Das Ergebnis - 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 O(log 2 N) und die amortisierte Laufzeit ist konstant. - Die Speicherplatzkomplexität ist durch O( 1 ε log2 2 N) beschränkt. Die Speichergröße: Es gibt bis zu O(k log 2 N) Körbe mit k = 1 ε. Jeder Korb speichert sein Alter mit bis zu O(log 2 N) Bits. Zeitfenster 74 / 74