INSTITUTFÜRINFORMATIK - Lehrstuhl für Effiziente Algorithmen ...
INSTITUTFÜRINFORMATIK - Lehrstuhl für Effiziente Algorithmen ...
INSTITUTFÜRINFORMATIK - Lehrstuhl für Effiziente Algorithmen ...
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
20 Kapitel 2. DatenanalyseDer einzige Unterschied zum Beweis von Satz 2.9 ist der dritte Term der rechten Seiteder Abschätzung von V ′ (n, m, r). Dieser ist jedoch leicht einzusehen, da innerhalbeines Clusters jede Position von t nur ein einziges Mal verglichen wird. Das ergibtgerade n ′ 1 − n 1 Vergleiche. Unter Abschwächung der Ungleichung erhalten wir eineRekursionsungleichung, die bis auf die Interpretation von r identisch mit der imBeweis von Satz 2.9 ist. Wir schätzen wie folgt ab:V ′ (n, m, r) ≤ 3(n ′ 1 − 1) + V ′ (n − n ′ 1 + m − 1,m,r− 1) ≤ 3n − 4rm − 6r.Außerdem wissen wir bereits, dass es für periodische Suchwörter maximal 2n m Clustergibt. Damit erhalten wirDamit ist der Satz bewiesen.V ′ (n, m, r) ≤ 3n +4rm ≤ 3n +8n =11n.2.1.6 Der Algorithmus von Aho und CorasickEs ist unter Umständen wünschenswert, einen gegebenen Text nach den Vorkommen verschiedenerSuchwörter abzusuchen. Ein Algorithmus, der in einem Text t das Vorkommeneines der Suchwörter s 1 ,...,s k in Zeit O(|t| + ∑ ki=1 |s i|) finden kann, ist der Algorithmusvon Alfred V. Aho und Margaret J. Corasick. Dieser Algorithmus basiert auf der altenIdee, das Suchproblem automatentheoretisch aufzufassen.Wir präsentieren hier nur die Ideen für den Algorithmus.Es sei s ein Suchwort. Wir definieren die Sprache L s wie folgt:L s = def { t ∈ Σ ∗ | s kommt in t vor }Zwei Probleme treten auf:1. Ist L s regulär? Wenn ja, dann gibt es einen deterministischen endlichen AutomatenM s ,derL s akzeptiert, d.h. gegeben M s kann die Suche in t für |t| = n in Zeit O(n)durch geführt werden.2. Kann ein solcher endliche Automat M s in Zeit O(m) mitm = |s| berechnet werden?Aus den Lösungen für beide Probleme ergibt sich ein Algorithmus mit Laufzeit O(n + m).Wir betrachten zunächst das erste Problem. Ein Beispiel für einen Automaten zur Akzeptierungeiner Sprache L s ist der folgende:aaεaababaabacabacbabacbbaSkriptum zu Internet-Algorithmik WS 2006/2007