19.11.2014 Aufrufe

Inhaltsverzeichnis - Automaten und Formale Sprachen

Inhaltsverzeichnis - Automaten und Formale Sprachen

Inhaltsverzeichnis - Automaten und Formale Sprachen

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.

Methode:<br />

1. U[1, i] := {A | A → a i ist Produktion }, für 1 ≤ i ≤ n.<br />

2. for d := 2 to n do<br />

for i := 1 to n − d + 1 do<br />

for d ′ := 1 to d − 1 do<br />

U[d, i] := U[d, i] ∪ {A ∈ V | ∃ Produktion A → CD<br />

<strong>und</strong> C ∈ U[d ′ , i], D ∈ U[d − d ′ , i + d ′ ]} .<br />

3. Falls S ∈ U[n, 1], gib JA“ aus, sonst NEIN“.<br />

” ”<br />

Die Korrektheit des Algorithmus folgt aus den vorher angestellten Überlegungen. Die<br />

Laufzeit ist O(n 3 ) — dabei geht die Größe der Grammatik G in die in dem ”<br />

O“ versteckte<br />

Konstante ein.<br />

Oft illustriert man die Arbeitsweise dieses Algorithmus mit einem dreieckigen Schema, in<br />

dem die relevanten Einträge des Arrays U aufgeführt sind.<br />

w=<br />

i=<br />

a 1<br />

1<br />

a 2<br />

2<br />

.<br />

.<br />

.<br />

.<br />

.<br />

.<br />

a n<br />

n<br />

d=1<br />

2<br />

...<br />

n<br />

Die Zelle in Zeile d, Spalte i, enthält die Menge U d,i . Die Einträge werden zeilenweise<br />

berechnet. Die Einträge in Zeile d = 1 ergeben sich direkt aus den Produktionen der<br />

Form A → a. Um die Variablen in Zelle (d, i) für d > 1 zu berechnen, betrachtet man<br />

Paare von schon ausgefüllten Zellen nach folgendem Muster, etwa für d = 5:<br />

102

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!