Streaming Data: Das Modell

Größe: px
Ab Seite anzeigen:

Download "Streaming Data: Das Modell"

Transkript

1 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

2 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

3 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

4 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

5 Reservoir Sampling: Stichproben für Datenströme Stichproben Reservoir Sampling 4 / 74

6 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

7 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

8 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

9 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

10 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

11 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

12 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

13 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

14 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

15 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

16 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

17 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

18 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

19 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

20 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

21 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

22 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

23 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

24 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

25 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

26 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

27 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

28 Approximative Berechnung des Medians Stichproben Median Berechnung 8 / 74

29 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

30 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

31 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

32 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

33 Analyse x unten (bzw. x oben ) sei der Schlüssel vom Rang ( 1 2 ε) n (bzw. Rang ( ε) 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

34 Analyse x unten (bzw. x oben ) sei der Schlüssel vom Rang ( 1 2 ε) n (bzw. Rang ( ε) 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

35 Analyse x unten (bzw. x oben ) sei der Schlüssel vom Rang ( 1 2 ε) n (bzw. Rang ( ε) 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

36 Analyse x unten (bzw. x oben ) sei der Schlüssel vom Rang ( 1 2 ε) n (bzw. Rang ( ε) 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

37 Analyse x unten (bzw. x oben ) sei der Schlüssel vom Rang ( 1 2 ε) n (bzw. Rang ( ε) 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

38 Analyse x unten (bzw. x oben ) sei der Schlüssel vom Rang ( 1 2 ε) n (bzw. Rang ( ε) 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

39 Clustering Stichproben Clustering 11 / 74

40 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

41 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

42 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

43 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

44 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

45 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

46 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

47 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

48 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

49 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

50 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

51 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

52 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

53 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

54 Der Algorithmus funktioniert für die Stichprobe, aber wie gut ist die Stichprobe? Stichproben Clustering 15 / 74

55 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

56 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

57 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

58 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

59 Die Wahrscheinlichkeit schlechter Zentren - Sei opt der optimale Radius. Stichproben Clustering 17 / 74

60 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

61 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

62 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

63 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

64 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

65 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

66 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

67 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

68 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

69 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

70 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

71 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

72 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

73 Was können Stichproben nicht? Stichproben Die Grenzen 19 / 74

74 Die Grenzen der Stichproben-Methode Bestimme die Anzahl verschiedener Schlüssel approximativ. Stichproben Die Grenzen 20 / 74

75 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

76 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

77 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

78 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

79 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

80 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

81 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

82 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

83 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

84 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

85 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

86 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

87 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

88 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

89 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

90 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

91 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 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

92 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

93 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

94 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

95 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

96 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

97 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

98 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

99 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

100 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

101 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

102 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

103 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

104 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

105 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

106 Kommunikation und Streaming Data Warum interessiert uns das Kommunikationsmodell? Häufigkeitsmomente Kommunikation 26 / 74

107 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

108 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

109 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

110 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

111 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

112 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

113 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

114 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

115 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

116 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

117 ε-approximative Berechnungen Für Mengen A und B ist f : A B R zu berechnen. Häufigkeitsmomente Kommunikation 28 / 74

118 ε-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

119 ε-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

120 ε-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

121 ε-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

122 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

123 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

124 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

125 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

126 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

127 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

128 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

129 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

130 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

131 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

132 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

133 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

134 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

135 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

136 Das zweite Häufigkeitsmoment H 2 = u U a 2 u Häufigkeitsmomente H 2 32 / 74

137 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

138 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

139 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

140 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

141 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

142 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

143 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

144 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

145 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

146 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

147 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

148 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

149 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

150 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

151 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

152 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

153 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 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

154 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

155 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 ( m au 2 av 2 u=1 u v u=1 a 2 u ) 2 Häufigkeitsmomente H 2 37 / 74

156 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 ( 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

157 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 ( 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

158 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 ( 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

159 Boosting Wähle k Hashfunktionen h 1,..., h k. Häufigkeitsmomente H 2 38 / 74

160 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

161 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

162 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

163 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

164 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

165 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

166 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

167 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

168 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

169 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

170 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

171 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

172 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

173 Das nullte Häufigkeitsmoment { u U a u 1 } Häufigkeitsmomente H 0 40 / 74

174 Die Bestimmung von H 0 Wenn die Hauptspeichergröße mindestens Ω(n) beträgt: Benutze Hashing. Häufigkeitsmomente H 0 41 / 74

175 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

176 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

177 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

178 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

179 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

180 Eine Diskussion Die Intuition: Die Wahrscheinlichkeit, dass h(x) = T gilt, ist 1 T. Häufigkeitsmomente H 0 43 / 74

181 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

182 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

183 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

184 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

185 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

186 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

187 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

188 Stichproben verschiedener Schlüssel Häufigkeitsmomente H 0 44 / 74

189 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

190 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

191 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

192 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

193 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

194 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

195 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

196 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

197 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

198 Der Algorithmus 1 Würfle eine Hashfunktion h A,B aus. Häufigkeitsmomente H 0 47 / 74

199 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

200 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

201 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

202 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

203 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

204 Analyse Es ist prob[ p(x) p ] = 2 p. Häufigkeitsmomente H 0 48 / 74

205 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

206 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

207 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

208 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

209 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

210 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

211 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

212 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

213 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

214 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

215 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

216 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

217 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

218 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

219 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

220 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

221 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

222 Heavy Hitter Heavy Hitter: Schlüssel mit großer Häufigkeit 51 / 74

223 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

224 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

225 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

226 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

227 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

228 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

229 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

230 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

231 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

232 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

233 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

234 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

235 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

236 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

237 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

238 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

239 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

240 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

241 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

242 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

243 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

244 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

245 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

246 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

247 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

248 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

249 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

250 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

251 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

252 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

253 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

254 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

255 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

256 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

257 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

258 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

259 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

260 Häufigkeitseigenschaften Eigenschaften 60 / 74

261 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

262 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

263 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

264 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

265 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

266 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

267 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

268 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

269 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

270 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

271 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

272 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

273 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

274 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

275 Analyse (1/2) Definiere die Zufallsvariablen { 1 minj (n) E X j = n, 0 sonst. Eigenschaften 64 / 74

276 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

277 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

278 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

279 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

280 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

281 Analyse (2/2) prob[ k /k p[e n ] ε p[e n ] ] 2 e k p[en] ε2 /3. Eigenschaften 65 / 74

282 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

283 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

284 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

285 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

286 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

287 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

288 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

289 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

290 Zeitfenster Zeitfenster 67 / 74

291 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

292 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

293 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

294 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

295 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

296 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

297 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

298 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

299 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

300 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

301 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

302 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 ε, bzw. stärker (G m 1)/2 m 1 i=1 G i + 1 ε. Zeitfenster 70 / 74

303 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

304 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 Körbe der Größe 2h. Zeitfenster 71 / 74

305 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 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

306 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 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

307 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 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 i = k 2 (2r 1) i=0 Zeitfenster 71 / 74

308 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 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

309 Der Algorithmus 1 Zwei Variablen TOTAL und LETZTER speichern die Gesamtgröße aller Körbe, bzw. den Index des letzten Korbs. Zeitfenster 72 / 74

310 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

311 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

312 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 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

313 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 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

314 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 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

315 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

316 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

317 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

318 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

319 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

320 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

321 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

Deterministische Kommunikation. Deterministische Kommunikation 1 / 32

Deterministische Kommunikation. Deterministische Kommunikation 1 / 32 Deterministische Kommunikation Deterministische Kommunikation 1 / 32 Das Kommunikationsproblem Alice und Bob möchten die Funktion f : X Y Z durch den Austausch binärer Nachrichten mit minimaler Gesamtlänge

Mehr

Datenströme. Prof. Dr. Nicole Schweikardt. Arbeitsgruppe Logik in der Informatik Humboldt-Universität zu Berlin

Datenströme. Prof. Dr. Nicole Schweikardt. Arbeitsgruppe Logik in der Informatik Humboldt-Universität zu Berlin Datenströme Prof. Dr. Nicole Schweikardt Arbeitsgruppe Logik in der Informatik Humboldt-Universität zu Berlin Vorlesung Big Data Analytics in Theorie und Praxis Datenströme Situation: riesige Mengen von

Mehr

Approximationsalgorithmen. 19. Dezember / 28

Approximationsalgorithmen. 19. Dezember / 28 Approximationsalgorithmen 19. Dezember 2017 1 / 28 Optimierungsprobleme Das Ziel: Bearbeite schwierige Optimierungsprobleme der Form opt y f (x, y) so dass L(x, y). Die Zielfunktion f (x, y) ist zu minimieren

Mehr

Seminar über Algorithmen Übersicht über streaming (Datenstrom-)Algorithmen

Seminar über Algorithmen Übersicht über streaming (Datenstrom-)Algorithmen Seminar über Algorithmen Übersicht über streaming (Datenstrom-)Algorithmen von Roman Guilbourd Inhalt Was sind Datenströme Eigenschaften der Datenstromalgorithmen Anwendungen Einführungsbeispiel Mathematische

Mehr

4.4.1 Statisches perfektes Hashing. des Bildbereichs {0, 1,..., n 1} der Hashfunktionen und S U, S = m n, eine Menge von Schlüsseln.

4.4.1 Statisches perfektes Hashing. des Bildbereichs {0, 1,..., n 1} der Hashfunktionen und S U, S = m n, eine Menge von Schlüsseln. 4.4 Perfektes Hashing Das Ziel des perfekten Hashings ist es, für eine Schlüsselmenge eine Hashfunktion zu finden, so dass keine Kollisionen auftreten. Die Größe der Hashtabelle soll dabei natürlich möglichst

Mehr

9.2 Die Klassen QP und BQP

9.2 Die Klassen QP und BQP Definition (r-universell): sei R eine Menge von reversieblen booleschen Funktionen, die auf einer konstanten Anzahl von Bits operieren. R heißt r-universell, falls jede reversible Funktion als Verknüpfung

Mehr

Randomisierte Algorithmen 2. Erste Beispiele

Randomisierte Algorithmen 2. Erste Beispiele Randomisierte Algorithmen Randomisierte Algorithmen 2. Erste Beispiele Thomas Worsch Fakultät für Informatik Karlsruher Institut für Technologie Wintersemester 2016/2017 1 / 35 Randomisierter Identitätstest

Mehr

5. Clusteranalyse Vorbemerkungen. 5. Clusteranalyse. Grundlegende Algorithmen der Clusteranalyse kennen, ihre Eigenschaften

5. Clusteranalyse Vorbemerkungen. 5. Clusteranalyse. Grundlegende Algorithmen der Clusteranalyse kennen, ihre Eigenschaften 5. Clusteranalyse Vorbemerkungen 5. Clusteranalyse Lernziele: Grundlegende Algorithmen der Clusteranalyse kennen, ihre Eigenschaften benennen und anwenden können, einen Test auf das Vorhandensein einer

Mehr

13. Woche: NP-Vollständigkeit Satz von Cook-Levin Anwendungen in der Kryptographie

13. Woche: NP-Vollständigkeit Satz von Cook-Levin Anwendungen in der Kryptographie 13 Woche: NP-Vollständigkeit Satz von Cook-Levin Anwendungen in der Kryptographie 13 Woche: NP-Vollständigkeit, Satz von Cook-Levin, Anwendungen 276/ 333 N P-Vollständigkeit Ḋefinition NP-vollständig Sei

Mehr

Definition 77 Sei n N. Der Median (das mittlere Element) einer total geordneten Menge von n Elementen ist deren i-kleinstes Element, wobei n i =.

Definition 77 Sei n N. Der Median (das mittlere Element) einer total geordneten Menge von n Elementen ist deren i-kleinstes Element, wobei n i =. 2. Der Blum-Floyd-Pratt-Rivest-Tarjan Selektions-Algorithmus Definition 77 Sei n N. Der Median (das mittlere Element) einer total geordneten Menge von n Elementen ist deren i-kleinstes Element, wobei n

Mehr

3: Primzahlen. 111 S. Lucks Diskr Strukt. (WS 18/19) 3: Primzahlen

3: Primzahlen. 111 S. Lucks Diskr Strukt. (WS 18/19) 3: Primzahlen 3: Primzahlen 111 S. Lucks Diskr Strukt. (WS 18/19) 3: Primzahlen Definition 40 (Teiler, Vielfache, Primzahlen, zusammengesetzte Zahlen) Seien a, b N. a ist ein Teiler von b ( a b ), falls es ein k N gibt

Mehr

2.7 Der Shannon-Fano-Elias Code

2.7 Der Shannon-Fano-Elias Code 2.7 Der Shannon-Fano-Elias Code Die Huffman-Codierung ist ein asymptotisch optimales Verfahren. Wir haben auch gesehen, dass sich die Huffman-Codierung gut berechnen und dann auch gut decodieren lassen.

Mehr

3: Zahlentheorie / Primzahlen

3: Zahlentheorie / Primzahlen Stefan Lucks Diskrete Strukturen (WS 2009/10) 96 3: Zahlentheorie / Primzahlen 3: Zahlentheorie / Primzahlen Stefan Lucks Diskrete Strukturen (WS 2009/10) 97 Definition 37 (Teiler, Vielfache, Primzahlen,

Mehr

1.8 Shift-And-Algorithmus

1.8 Shift-And-Algorithmus .8 Shift-And-Algorithmus nutzt durch Bitoperationen mögliche Parallelisierung Theoretischer Hintergrund: Nichtdeterministischer endlicher Automat Laufzeit: Θ(n), falls die Länge des Suchwortes nicht größer

Mehr

5. Clusteranalyse. Lernziele: Grundlegende Algorithmen der Clusteranalyse kennen, ihre Eigenschaften

5. Clusteranalyse. Lernziele: Grundlegende Algorithmen der Clusteranalyse kennen, ihre Eigenschaften 5. Clusteranalyse Lernziele: Grundlegende Algorithmen der Clusteranalyse kennen, ihre Eigenschaften benennen und anwenden können, einen Test auf das Vorhandensein einer Clusterstruktur kennen, verschiedene

Mehr

4 Probabilistische Analyse und randomisierte Algorithmen

4 Probabilistische Analyse und randomisierte Algorithmen Algorithmen und Datenstrukturen 96 4 Probabilistische Analyse und randomisierte Algorithmen Bei der Algorithmenanalyse ist es sehr hilfreich, Aspekte berücksichtigen zu können, die vom Zufall abhängen.

Mehr

1. Welche Eigenschaften sollte ein Pseudo-Random Generator haben?

1. Welche Eigenschaften sollte ein Pseudo-Random Generator haben? Die Themen 1. Welche Eigenschaften sollte ein Pseudo-Random Generator haben? Er sollte von wirklichen Zufallsgeneratoren nicht unterscheidbar sein?! Eine viel zu starke Forderung: Stattdessen sollte ein

Mehr

2. November Gradfolgen Zusammenhang Kürzeste Wege. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 37

2. November Gradfolgen Zusammenhang Kürzeste Wege. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 37 2. November 2011 Gradfolgen Zusammenhang Kürzeste Wege H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 37 Satz von Erdős und Gallai Eine Partition einer natürlichen Zahl ist genau dann die Gradfolge

Mehr

SCHNITTERHALTUNG (SPEKTRALE APPROXIMATION)

SCHNITTERHALTUNG (SPEKTRALE APPROXIMATION) Vorlesung 12 AUSDÜNNUNG VON GRAPHEN SCHNITTERHALTUNG (SPEKTRALE APPROXIMATION) 387 Wiederholung: Approximative Schnitterhaltung Ziel: Approximationsalgorithmus: A(S(G)) Ziele bei Eingabe eines dichten

Mehr

Einführung in die Wahrscheinlichkeitstheorie Lösungsvorschläge zu Übungsblatt 4

Einführung in die Wahrscheinlichkeitstheorie Lösungsvorschläge zu Übungsblatt 4 TUM, Zentrum Mathematik Lehrstuhl für Mathematische Physik WS 3/4 Prof. Dr. Silke Rolles Thomas Höfelsauer Felizitas Weidner Tutoraufgaben: Einführung in die Wahrscheinlichkeitstheorie Lösungsvorschläge

Mehr

Ein sortiertes Feld kann in O(log n) durchsucht werden, z.b. mit Binärsuche. Der Algorithmus 1 gibt den Pseudocode der binären Suche an.

Ein sortiertes Feld kann in O(log n) durchsucht werden, z.b. mit Binärsuche. Der Algorithmus 1 gibt den Pseudocode der binären Suche an. 2.5 Suchen Eine Menge S will nach einem Element durchsucht werden. Die Menge S ist statisch und S = n. S ist Teilmenge eines Universums auf dem eine lineare Ordnung definiert ist und soll so gespeichert

Mehr

Seminar Gewöhnliche Differentialgleichungen

Seminar Gewöhnliche Differentialgleichungen Seminar Gewöhnliche Differentialgleichungen Dynamische Systeme I 1 Einleitung 1.1 Nichtlineare Systeme In den vorigen Vorträgen haben wir uns mit linearen Differentialgleichungen beschäftigt. Nun werden

Mehr

Typischerweise sind randomisierte Algorithmen einfacher zu beschreiben und zu implementieren als deterministische Algorithmen.

Typischerweise sind randomisierte Algorithmen einfacher zu beschreiben und zu implementieren als deterministische Algorithmen. Kapitel Randomisierte Algorithmen Einleitung Definition: Ein Algorithmus, der im Laufe seiner Ausführung gewisse Entscheidungen zufällig trifft, heisst randomisierter Algorithmus. Beispiel: Bei der randomisierten

Mehr

Probabilistische Primzahltests

Probabilistische Primzahltests 23.01.2006 Motivation und Überblick Grundsätzliches Vorgehen Motivation und Überblick Als Primzahltest bezeichnet man ein mathematisches Verfahren, mit dem ermittelt wird, ob eine gegebene Zahl eine Primzahl

Mehr

Heute. Die Binomialverteilung. Poissonverteilung. Approximation der Binomialverteilung durch die Normalverteilung

Heute. Die Binomialverteilung. Poissonverteilung. Approximation der Binomialverteilung durch die Normalverteilung Heute Die Binomialverteilung Poissonverteilung Approximation der Binomialverteilung durch die Normalverteilung Arbeiten mit Wahrscheinlichkeitsverteilungen Die Binomialverteilung Man werfe eine Münze n

Mehr

3.3 Optimale binäre Suchbäume

3.3 Optimale binäre Suchbäume 3.3 Optimale binäre Suchbäume Problem 3.3.1. Sei S eine Menge von Schlüsseln aus einem endlichen, linear geordneten Universum U, S = {a 1,,...,a n } U und S = n N. Wir wollen S in einem binären Suchbaum

Mehr

Informatik II, SS 2016

Informatik II, SS 2016 Informatik II - SS 2016 (Algorithmen & Datenstrukturen) Vorlesung 8 (13.5.2016) Hashtabellen I Algorithmen und Komplexität Dictionary mit sortiertem Array Laufzeiten: create: O(1) insert: O(n) find: O(log

Mehr

Cauchy-Folgen und Kompaktheit. 1 Cauchy-Folgen und Beschränktheit

Cauchy-Folgen und Kompaktheit. 1 Cauchy-Folgen und Beschränktheit Vortrag zum Seminar zur Analysis, 10.05.2010 Michael Engeländer, Jonathan Fell Dieser Vortrag stellt als erstes einige Sätze zu Cauchy-Folgen auf allgemeinen metrischen Räumen vor. Speziell wird auch das

Mehr

Graphentheorie. Zufallsgraphen. Zufallsgraphen. Zufallsgraphen. Rainer Schrader. 23. Januar 2008

Graphentheorie. Zufallsgraphen. Zufallsgraphen. Zufallsgraphen. Rainer Schrader. 23. Januar 2008 Graphentheorie Rainer Schrader Zentrum für Angewandte Informatik Köln 3. Januar 008 1 / 45 / 45 Gliederung man könnte vermuten, dass ein Graph mit großer chromatischer Zahl einen dichten Teilgraphen enthalten

Mehr

15. Elementare Graphalgorithmen

15. Elementare Graphalgorithmen Graphen sind eine der wichtigste Modellierungskonzepte der Informatik Graphalgorithmen bilden die Grundlage vieler Algorithmen in der Praxis Zunächst kurze Wiederholung von Graphen. Dann Darstellungen

Mehr

Der komplexitätstheoretische Zugang zur Kryptographie

Der komplexitätstheoretische Zugang zur Kryptographie Der komplexitätstheoretische Zugang zur Kryptographie Claus Diem Im Wintersemester 2017 / 18 Literatur Oded Goldreich: Foundations of Cryptography Jonathan Katz & Yeduda Lindell: Intoduction to Modern

Mehr

Kürzeste-Wege-Algorithmen und Datenstrukturen

Kürzeste-Wege-Algorithmen und Datenstrukturen Kürzeste-Wege-Algorithmen und Datenstrukturen Institut für Informatik Universität zu Köln SS 2009 Teil 1 Inhaltsverzeichnis 1 Kürzeste Wege 2 1.1 Voraussetzungen................................ 2 1.2

Mehr

1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit ** i=1

1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit ** i=1 Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 05/06 ITI Wagner. Musterlösung Problem : Average-case-Laufzeit vs. Worst-case-Laufzeit ** (a) Im schlimmsten Fall werden für jedes Element

Mehr

Übungen zu Wahrscheinlichkeitstheorie Judith Kloas, Wolfgang Woess, Jonas Ziefle SS 2016

Übungen zu Wahrscheinlichkeitstheorie Judith Kloas, Wolfgang Woess, Jonas Ziefle SS 2016 Übungen zu Wahrscheinlichkeitstheorie Judith Kloas, Wolfgang Woess, Jonas Ziefle SS 2016 43) [3 Punkte] Sei φ(t) die charakteristische Funktion der Verteilungsfunktion F (x). Zeigen Sie, dass für jedes

Mehr

Algorithmik WS 07/ Vorlesung, Andreas Jakoby Universität zu Lübeck. 10 Matching-Probleme

Algorithmik WS 07/ Vorlesung, Andreas Jakoby Universität zu Lübeck. 10 Matching-Probleme 10 Matching-Probleme 10.1 Definition von Matching-Probleme Definition 21 [2-dimensionales Matching] Sei G = (V, E) ein ungerichteter Graph und E E. E ist ein Matching, wenn für alle Kantenpaare e 1, e

Mehr

1.5.4 Quantile und Modi. Bem [Quantil, Modus]

1.5.4 Quantile und Modi. Bem [Quantil, Modus] 1.5.4 Quantile und Modi 1.5 Erwartungswert und Varianz Bem. 1.73. [Quantil, Modus] und Vertei- Analog zu Statistik I kann man auch Quantile und Modi definieren. Gegeben sei eine Zufallsvariable X mit Wahrscheinlichkeitsverteilung

Mehr

Theorie Parameterschätzung Ausblick. Schätzung. Raimar Sandner. Studentenseminar "Statistische Methoden in der Physik"

Theorie Parameterschätzung Ausblick. Schätzung. Raimar Sandner. Studentenseminar Statistische Methoden in der Physik Studentenseminar "Statistische Methoden in der Physik" Gliederung 1 2 3 Worum geht es hier? Gliederung 1 2 3 Stichproben Gegeben eine Beobachtungsreihe x = (x 1, x 2,..., x n ): Realisierung der n-dimensionalen

Mehr

13 Mehrdimensionale Zufallsvariablen Zufallsvektoren

13 Mehrdimensionale Zufallsvariablen Zufallsvektoren 3 Mehrdimensionale Zufallsvariablen Zufallsvektoren Bisher haben wir uns ausschließlich mit Zufallsexperimenten beschäftigt, bei denen die Beobachtung eines einzigen Merkmals im Vordergrund stand. In diesem

Mehr

8. Woche Quadratische Reste und Anwendungen. 8. Woche: Quadratische Reste und Anwendungen 163/ 238

8. Woche Quadratische Reste und Anwendungen. 8. Woche: Quadratische Reste und Anwendungen 163/ 238 8 Woche Quadratische Reste und Anwendungen 8 Woche: Quadratische Reste und Anwendungen 163/ 238 Quadratische Reste Ḋefinition Quadratischer Rest Sei n N Ein Element a Z n heißt quadratischer Rest in Z

Mehr

Hybride Verschlüsselungsverfahren

Hybride Verschlüsselungsverfahren Hybride Verschlüsselungsverfahren Ziel: Flexibilität von asym. Verfahren und Effizienz von sym. Verfahren. Szenario: Sei Π = (Gen, Enc, Dec) ein PK-Verschlüsselungsverfahren und Π = (Gen, Enc, Dec ) ein

Mehr

Grundlagen: Algorithmen und Datenstrukturen

Grundlagen: Algorithmen und Datenstrukturen Technische Universität München Fakultät für Informatik Lehrstuhl für Effiziente Algorithmen Dr. Hanjo Täubig Tobias Lieber Sommersemester 011 Übungsblatt 30. Mai 011 Grundlagen: Algorithmen und Datenstrukturen

Mehr

Effiziente Algorithmen (SS2015)

Effiziente Algorithmen (SS2015) Effiziente Algorithmen (SS205) Kapitel 5 Approximation II Walter Unger Lehrstuhl für Informatik 2.06.205 07:59 5 Inhaltsverzeichnis < > Walter Unger 5.7.205 :3 SS205 Z Inhalt I Set Cover Einleitung Approximation

Mehr

Klausur zur Vorlesung Grundbegriffe der Informatik 5. März 2014

Klausur zur Vorlesung Grundbegriffe der Informatik 5. März 2014 Klausur zur Vorlesung Grundbegriffe der Informatik 5. März 2014 Klausurnummer Nachname: Vorname: Matr.-Nr.: Aufgabe 1 2 3 4 5 6 7 max. Punkte 6 8 4 7 5 6 8 tats. Punkte Gesamtpunktzahl: Note: Punkte Aufgabe

Mehr

Mehrfachintegrale 1-E1. Ma 2 Lubov Vassilevskaya

Mehrfachintegrale 1-E1. Ma 2 Lubov Vassilevskaya Mehrfachintegrale 1-E1 1-E2 Mehrfachintegrale c Die Erweiterung des Integralbegriffs führt zu den Mehrfachintegralen, die in den naturwissenschaftlich-technischen Anwendungen u.a. bei der Berechnung der

Mehr

Das Suchproblem 4. Suchen Das Auswahlproblem Suche in Array

Das Suchproblem 4. Suchen Das Auswahlproblem Suche in Array Das Suchproblem Gegeben. Suchen Lineare Suche, Binäre Suche, Interpolationssuche, Untere Schranken [Ottman/Widmayer, Kap. 3.2, Cormen et al, Kap. 2: Problems 2.-3,2.2-3,2.3-] Menge von Datensätzen. Beispiele

Mehr

Wichtige Definitionen und Aussagen

Wichtige Definitionen und Aussagen Wichtige Definitionen und Aussagen Zufallsexperiment, Ergebnis, Ereignis: Unter einem Zufallsexperiment verstehen wir einen Vorgang, dessen Ausgänge sich nicht vorhersagen lassen Die möglichen Ausgänge

Mehr

6: Diskrete Wahrscheinlichkeit

6: Diskrete Wahrscheinlichkeit Stefan Lucks Diskrete Strukturen (WS 2009/10) 219 6: Diskrete Wahrscheinlichkeit 6: Diskrete Wahrscheinlichkeit Stefan Lucks Diskrete Strukturen (WS 2009/10) 220 Wahrscheinlichkeitsrechnung Eines der wichtigsten

Mehr

Von schwachen zu starken Lernern

Von schwachen zu starken Lernern Von schwachen zu starken Lernern Wir nehmen an, dass ein schwacher Lernalgorithmus L mit vielen Beispielen, aber großem Fehler ε = 1 2 θ gegeben ist. - Wie lässt sich der Verallgemeinerungsfehler ε von

Mehr

Einwegfunktionen. Problemseminar. Komplexitätstheorie und Kryptographie. Martin Huschenbett. 30. Oktober 2008

Einwegfunktionen. Problemseminar. Komplexitätstheorie und Kryptographie. Martin Huschenbett. 30. Oktober 2008 Problemseminar Komplexitätstheorie und Kryptographie Martin Huschenbett Student am Institut für Informatik an der Universität Leipzig 30. Oktober 2008 1 / 33 Gliederung 1 Randomisierte Algorithmen und

Mehr

Klausur Algorithmentheorie

Klausur Algorithmentheorie Prof. Dr. G. Schnitger Frankfurt, den 24.02.2011 M. Poloczek Klausur Algorithmentheorie WS 2010/2011 Name: Vorname: Geburtsdatum: Studiengang: BITTE GENAU LESEN Die Klausur besteht aus 4 Aufgaben, in denen

Mehr

3. Kombinatorik und Wahrscheinlichkeit

3. Kombinatorik und Wahrscheinlichkeit 3. Kombinatorik und Wahrscheinlichkeit Es geht hier um die Bestimmung der Kardinalität endlicher Mengen. Erinnerung: Seien A, B, A 1,..., A n endliche Mengen. Dann gilt A = B ϕ: A B bijektiv Summenregel:

Mehr

Das Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle

Das Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle 122 4. Suchen Lineare Suche, Binäre Suche, Interpolationssuche, Untere Schranken [Ottman/Widmayer, Kap. 3.2, Cormen et al, Kap. 2: Problems 2.1-3,2.2-3,2.3-5] 123 Das Suchproblem Gegeben Menge von Datensätzen.

Mehr

Das Rucksackproblem. Definition Sprache Rucksack. Satz

Das Rucksackproblem. Definition Sprache Rucksack. Satz Das Rucksackproblem Definition Sprache Rucksack Gegeben sind n Gegenstände mit Gewichten W = {w 1,...,w n } N und Profiten P = {p 1,...,p n } N. Seien ferner b, k N. RUCKSACK:= {(W, P, b, k) I [n] : i

Mehr

MafI I: Logik & Diskrete Mathematik (F. Hoffmann)

MafI I: Logik & Diskrete Mathematik (F. Hoffmann) Lösungen zum 14. und letzten Aufgabenblatt zur Vorlesung MafI I: Logik & Diskrete Mathematik (F. Hoffmann) 1. Ungerichtete Graphen (a) Beschreiben Sie einen Algorithmus, der algorithmisch feststellt, ob

Mehr

Seminar: Data Mining. Referat: Andere Möglichkeiten des Data Mining in verteilten Systemen. Ein Vortrag von Mathias Rohde. 11.

Seminar: Data Mining. Referat: Andere Möglichkeiten des Data Mining in verteilten Systemen. Ein Vortrag von Mathias Rohde. 11. Referat: Andere Möglichkeiten des Data Mining in verteilten Systemen 11. Juni 2009 Gliederung 1 Problemstellung 2 Vektorprodukt Approximationen Samplesammlung 3 Schritte Lokalität und Nachrichtenkomplexität

Mehr

Mathematik II für Studierende der Informatik (Analysis und lineare Algebra) im Sommersemester 2018

Mathematik II für Studierende der Informatik (Analysis und lineare Algebra) im Sommersemester 2018 (Analysis und lineare Algebra) im Sommersemester 2018 2. Juli 2018 1/1 Wir geben einige wesentliche Sätze über bestimmte Integrale an, deren Beweise man in den Standardlehrbüchern der Analysis findet.

Mehr

Aufgaben. d) Seien X und Y Poissonverteilt mit Parameter µ, X, Y P(µ). 2. Dann ist die Summe auch Poissonverteilt mit (X + Y ) P(2µ).

Aufgaben. d) Seien X und Y Poissonverteilt mit Parameter µ, X, Y P(µ). 2. Dann ist die Summe auch Poissonverteilt mit (X + Y ) P(2µ). Aufgaben 1. Bei den folgenden 10 Fragen ist jeweils genau eine Antwort richtig. Es gibt pro richtig beantwortete Frage 1 Punkt und pro falsche Antwort 1/2 Punkt Abzug. Minimal erhält man für die gesamte

Mehr

DWT 2.1 Maximum-Likelihood-Prinzip zur Konstruktion von Schätzvariablen 330/467 Ernst W. Mayr

DWT 2.1 Maximum-Likelihood-Prinzip zur Konstruktion von Schätzvariablen 330/467 Ernst W. Mayr 2.1 Maximum-Likelihood-Prinzip zur Konstruktion von Schätzvariablen Wir betrachten nun ein Verfahren zur Konstruktion von Schätzvariablen für Parameter von Verteilungen. Sei X = (X 1,..., X n ). Bei X

Mehr

Algorithmische Techniken für Geometrische Probleme

Algorithmische Techniken für Geometrische Probleme Algorithmische Techniken für Geometrische Probleme Berthold Vöcking 14. Juni 2007 Inhaltsverzeichnis 1 Die Sweepline-Technik 2 1.1 Schnitte orthogonaler Liniensegmente............... 2 1.2 Schnitte beliebiger

Mehr

Übungsblatt 5. Vorlesung Theoretische Grundlagen der Informatik im WS 17/18

Übungsblatt 5. Vorlesung Theoretische Grundlagen der Informatik im WS 17/18 Institut für Theoretische Informatik Lehrstuhl Prof. Dr. D. Wagner Übungsblatt 5 Vorlesung Theoretische Grundlagen der Informatik im WS 17/18 Ausgabe 20. Dezember 2017 Abgabe 16. Januar 2018, 11:00 Uhr

Mehr

68 Abschätzungen für Abweichungen vom Erwartungswert

68 Abschätzungen für Abweichungen vom Erwartungswert 68 Abschätzungen für Abweichungen vom Erwartungswert 68.1 Motivation Mit der Varianz bzw. Standardabweichungen kennen wir bereits ein Maß für die Fluktuation einer Zufallsvariablen um ihren Erwartungswert.

Mehr

Der Branching-Operator B

Der Branching-Operator B Branching 1 / 17 Der Branching-Operator B Unser Ziel: Löse das allgemeine Minimierungsproblem minimiere f (x), so dass Lösung(x). B zerlegt eine Menge von Lösungen in disjunkte Teilmengen. Die wiederholte

Mehr

Prinzipien der modernen Kryptographie Sicherheit

Prinzipien der modernen Kryptographie Sicherheit Prinzipien der modernen Kryptographie Sicherheit Prinzip 1 Sicherheitsziel Die Sicherheitsziele müssen präzise definiert werden. Beispiele für ungenügende Definitionen von Sicherheit Kein Angreifer kann

Mehr

Statt Turingmaschinen anzugeben, genügt die Angabe eines C++ Programms oder die Angabe eines Pseudocodes.

Statt Turingmaschinen anzugeben, genügt die Angabe eines C++ Programms oder die Angabe eines Pseudocodes. Turingmaschinen Wir haben Turingmaschinen eingeführt. Bis auf einen polynomiellen Anstieg der Rechenzeit haben Turingmaschinen die Rechenkraft von parallelen Supercomputern! Statt Turingmaschinen anzugeben,

Mehr

Universität Potsdam Institut für Informatik Lehrstuhl Maschinelles Lernen. Clusteranalyse. Tobias Scheffer Thomas Vanck

Universität Potsdam Institut für Informatik Lehrstuhl Maschinelles Lernen. Clusteranalyse. Tobias Scheffer Thomas Vanck Universität Potsdam Institut für Informatik Lehrstuhl Maschinelles Lernen Clusteranalyse Tobias Scheffer Thomas Vanck Überblick Problemstellung/Motivation Deterministischer Ansatz: K-Means Probabilistischer

Mehr

Beispiel 37. Wir werfen eine Münze so lange, bis zum ersten Mal

Beispiel 37. Wir werfen eine Münze so lange, bis zum ersten Mal Beispiel 37 Wir werfen eine Münze so lange, bis zum ersten Mal Kopf erscheint. Dies geschehe in jedem Wurf unabhängig mit Wahrscheinlichkeit p. Wir definieren dazu die Zufallsvariable X := Anzahl der Würfe.

Mehr

Elliptic Curve Cryptography

Elliptic Curve Cryptography Elliptic Curve Cryptography Institut für Informatik Humboldt-Universität zu Berlin 10. November 2013 ECC 1 Aufbau 1 Asymmetrische Verschlüsselung im Allgemeinen 2 Elliptische Kurven über den reellen Zahlen

Mehr

9. Einführung in die Kryptographie

9. Einführung in die Kryptographie 9. Einführung in die Kryptographie Grundidee: A sendet Nachricht nach B über unsicheren Kanal. Es soll verhindert werden, dass ein Unbefugter Kenntnis von der übermittelten Nachricht erhält. Grundbegriffe:

Mehr

DWT 1.4 Rechnen mit kontinuierlichen Zufallsvariablen 234/467 Ernst W. Mayr

DWT 1.4 Rechnen mit kontinuierlichen Zufallsvariablen 234/467 Ernst W. Mayr 1.4.2 Kontinuierliche Zufallsvariablen als Grenzwerte diskreter Zufallsvariablen Sei X eine kontinuierliche Zufallsvariable. Wir können aus X leicht eine diskrete Zufallsvariable konstruieren, indem wir

Mehr

Mathematik I für Studierende der Geophysik/Ozeanographie, Meteorologie und Physik Vorlesungsskript

Mathematik I für Studierende der Geophysik/Ozeanographie, Meteorologie und Physik Vorlesungsskript Mathematik I für Studierende der Geophysik/Ozeanographie, Meteorologie und Physik Vorlesungsskript Janko Latschev Fachbereich Mathematik Universität Hamburg www.math.uni-hamburg.de/home/latschev Hamburg,

Mehr

Stochastik I. Vorlesungsmitschrift

Stochastik I. Vorlesungsmitschrift Stochastik I Vorlesungsmitschrift Ulrich Horst Institut für Mathematik Humboldt-Universität zu Berlin Inhaltsverzeichnis 1 Grundbegriffe 1 1.1 Wahrscheinlichkeitsräume..................................

Mehr

Klassifikation von Daten Einleitung

Klassifikation von Daten Einleitung Klassifikation von Daten Einleitung Lehrstuhl für Künstliche Intelligenz Institut für Informatik Friedrich-Alexander-Universität Erlangen-Nürnberg (Lehrstuhl Informatik 8) Klassifikation von Daten Einleitung

Mehr

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS)

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS) Dominating Set 59 Literatur Dominating Set Grundlagen 60 Dominating Set (DS) M. V. Marathe, H. Breu, H.B. Hunt III, S. S. Ravi, and D. J. Rosenkrantz: Simple Heuristics for Unit Disk Graphs. Networks 25,

Mehr

Erwartungswert, Umgebungswahrscheinlichkeiten und die Normalverteilung

Erwartungswert, Umgebungswahrscheinlichkeiten und die Normalverteilung R. Brinkmann http://brinkmann-du.de Seite 5.05.0 Erwartungswert, Umgebungswahrscheinlichkeiten und die Normalverteilung Erwartungswert binomialverteilter Zufallsgrößen Wird ein Bernoulli- Versuch, bei

Mehr