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

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

60 Kapitel 2. DatenanalyseAlgorithmus: ComputeHeightEingabe: azyklischer DP k A M =(Σ,Q,δ,q 0 ,F), Zustand q ∈ QAufgabe: h(q) (gespeichert in globalem Array)1. visited(q) :=true2. IF q ∈ F 13. h(q) :=04. ELSE5. h(q) :=16. FOR a ∈ Σ7. IF NOT (visited(δ(q,a)))8. h(δ(q,a)) := ComputeHeight(M,δ(q,a))9. h(q) :=max(h(q), 1+h(δ(q,a)))Abbildung 2.18: Der Algorithmus ComputeHeightLemma 2.47 Es sei M =(Σ,Q,δ,q 0 ,F) ein DP k A ohne unerreichbaren Zustände. M isgenau dann azyklisch, wenn h(q) =0für alle nicht-azyklischen Zustände q ∈ Q gilt.Beweis: Wir zeigen beide Richtungen der Aussage separat.(⇒) Sei M azyklisch. Es sei q ∈ Q ein Zustand mit ˆδ(q,w) =q für ein geeignetes Wortw ∈ Σ + . Angenommen ‖W (q)‖ > 0. Somit gibt es ein Wort v ∈ W (q). Dann giltW (q) ⊇{w i v | i ∈ IN }. Mithinist‖W (q)‖ = ∞. Daq jedoch von q 0 aus erreichbarist, folgt h(q 0 )=∞ nach Proposition 2.46. Dies ist ein Widerspruch zur Azyklizität.Also ist ‖W (q)‖ = 0 und folglich ist h(q) =0.(⇐) Der Beweis der Aussage geht über die Kontraposition. Sei M also nicht azyklisch,d.h. ‖W (q 0 ‖ = ∞. Dann gibt es ein q ∈ Q \ F 1 mit ‖{w ∈ Σ ∗ |ˆδ(q 0 ,w)=q}‖ = ∞.Sei w ∈ Σ ∗ ein Wort mit |w| > ‖Q‖. Somit gibt es Wörter x, y, z ∈ Σ ∗ mit |y| > 0, sodass xyz = w und ˆδ(q 0 ,x)=ˆδ(q 0 ,xy). Es folgt ˆδ(ˆδ(q 0 ,x),y)=ˆδ(q 0 ,xy)=ˆδ(q 0 ,x).Damit ist der Zustand ˆδ(q 0 ,x) azyklisch und q ist erreichbar von ˆδ(q 0 ,x). Außerdemgilt ‖W (ˆδ(q 0 ,x))‖ = ∞. Folglich ist h(ˆδ(q 0 ,x)) > 0.Damit ist das Lemma bewiesen.Der Algorithmus ComputeHeight (siehe Abbildung 2.18) bestimmt die Höhen in einemazyklischen Automaten in der Zeit O(‖Σ‖·‖Q‖).Proposition 2.48 Es sei M =(Σ,Q,δ,q 0 ,F) ein azyklischer DP k A. Es seien p, q ∈ Q.1. Ist h(p) =h(q) =0,sogiltp ≡ M q.2. Ist h(p) ≠ h(q), sogiltp ≢ M q.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!