13.07.2015 Aufrufe

INSTITUTFÜRINFORMATIK - Lehrstuhl für Effiziente Algorithmen ...

INSTITUTFÜRINFORMATIK - Lehrstuhl für Effiziente Algorithmen ...

INSTITUTFÜRINFORMATIK - Lehrstuhl für Effiziente Algorithmen ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

26 Kapitel 2. DatenanalyseDie Menge H(s, ϑ) heißtHot-List von s bezüglich ϑ.Proposition 2.20 Es gibt einen Ein-Pass-Algorithmus, der die Hot-List H(s, ϑ) für einenDatenstrom s der Länge N mit O(n · log N) Speicherplatz berechnet.Beweis: Für jedes a ∈ Σzähle Vorkommen in s in einem Binärzähler.Im Folgenden wollen wir zeigen: Mit einem Pass geht es nicht wesentlich besser als inProposition 2.20 angegeben.Theorem 2.21 Jeder Online-Algorithmus zur Bestimmung der Menge H(s, ϑ) für einenDatenstrom s benötigt im schlechtesten Fall Ω(n log N n ) Speicherplatz.Beweis: Es sei N>4n > 16 ϑ.EsseiA ein Ein-Pass-Algorithmus, der die Hot-List H(s, ϑ)bestimmt. Wir betrachten den Zustand von A in dem Moment, wenn das Element s M mitM = ⌊ N 2⌋ gelesen wird. Da A nicht mehr die Möglichkeit hat, auf die Datenstromelementes i mit i ≤ M zuzugreifen, muss der Algorithmus A alle Datenstrompräfixe mitverschiedenen Elementhäufigkeiten unterscheiden können, d.h. alle s ′ =(s ′ 1 ,...,s′ M ) unds ′′ =(s ′′1 ,...,s′′ M )mit|s′ | a ≠ |s ′′ | a für irgendein a ∈ Σ. Anderenfalls könnten die zweitenHälften der Datenströme mit u =(u M+1 ,...,u N )ergänzt werden, so dass a ∈ H(s ′ u, ϑ)und a /∈ H(s ′′ u, ϑ) gilt, aber A für beide Datenströme entweder a ausgibt oder a nichtausgibt. In beiden Fällen wäre A nicht korrekt. Dieses Argument funktioniert jedoch nur,wenn |s ′ | a ≤ ϑ·N und |s ′′ | a ≤ ϑ·N für alle a ∈ Σ gilt. Die Menge dieser Datenstrompräfixelässt sich durch die folgende Menge K N repräsentieren:K N = def {(k 1 ,...,k n ) ∈ IN n | k i ≤ ϑ · N, ∑ nj=1 k j = ⌊ N 2 ⌋}.Der Algorithmus A benötigt deshalb mindestens log ‖K N ‖ Bits als Speicherplatz. Wirmüssen nun also ‖K N ‖ nach unten abschätzen.Wenn wir ⌊ N 2⌋ wie folgt auffassen⌊ ⌋ N=1+···+12 } {{ }+1+···+1} {{ }+ ···+1+···+1} {{ }k 1 k 2k n,so lässt sich jedes Tupel aus K N interpretieren als ein Tupel (b 0 ,b 1 ,...,b n ) mit den Eigenschaften0 = b 0 ≤ b 1 ≤ ··· ≤ b n = ⌊ N 2 ⌋ + n und k i = b i − b i−1 − 1für alle 1 ≤ i ≤ n. DieWerte b i sind nichts anderes als die Nummer der +-Zeichen zwischen den zu k i−1 und k igehörenden Blöcken, d.h. die Positionen der Grenzen zwischen den Blöcken i − 1 und i.Wir betrachten nun die MengeK ′ N = def { (k 1 ,...,k n ) ∈ IN n ) | für alle i gilt k i = ⌊ N 2n ⌋ oder k i = ⌈ N 2n ⌉}Skriptum zu Internet-Algorithmik WS 2006/2007

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!