Inhaltsverzeichnis - Automaten und Formale Sprachen
Inhaltsverzeichnis - Automaten und Formale Sprachen
Inhaltsverzeichnis - Automaten und Formale Sprachen
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