INSTITUTFÜRINFORMATIK - Lehrstuhl für Effiziente Algorithmen ...
INSTITUTFÜRINFORMATIK - Lehrstuhl für Effiziente Algorithmen ...
INSTITUTFÜRINFORMATIK - Lehrstuhl für Effiziente Algorithmen ...
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
22 Kapitel 2. DatenanalyseAlgorithmus:Eingabe:Gesucht:ComputeTransitionsWort s = s 0 ...s m−1eine Menge von Arrays S a für a ∈ Σ, wobei S a [j] =σ s (s 0 ...s j−1 a) gilt1. FOR a ∈ Σ2. B a [0] := −13. B a [1] := 04. l a := 05. FOR j := 2 TO m6. l := l sj−27. FOR a ∈ Σ8. l a := l9. WHILE l a ≥ 0 AND s la ≠ a10. l a := B sla [l a ]11. B a [j] :=l a +112. l a := l a +113. FOR i := 0 TO m − 114. IF a = s i15. S a [i] :=i +116. ELSE17. S a [i] :=B a [i +1]Abbildung 2.9: Algorithmus zur Berechnung der ÜbergangsfunktionZur Berechnung kann deshalb einfach der Algorithmus ComputeBoundaries zur Bestimmungder Ränderlängen beim Algorithmus von Knuth, Morris und Pratt adaptiert werden.Wie dies aussehen kann, ist in Abbildung 2.9 angegeben.Proposition 2.18 Für ein Alphabet Σ und ein Wort s ∈ Σ ∗ der Länge m kann dieÜbergangstabelle für den deterministischen endlichen Automaten M s in Zeit O(‖Σ‖ ·m)berechnet werden.Beweis: Analog zur Analyse von ComputeBoundaries (Lemma 2.5).Im Folgenden geben wir noch eine Idee für die Verallgemeinerung des Ansatzes auf Suchwörters 1 ,...,s k . Exemplarisch seien dazu wiederum das Suchwort s 1 = abacb mit demzugehörigen Automaten M s1 und das Suchwort s 2 = aabac mit dem zugehörgin AutomatenM s2aaba aabacaεaaaaabaabacaSkriptum zu Internet-Algorithmik WS 2006/2007