Inhaltsverzeichnis - Automaten und Formale Sprachen
Inhaltsverzeichnis - Automaten und Formale Sprachen
Inhaltsverzeichnis - Automaten und Formale Sprachen
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
3.2.6 Satz (Chomsky-Normalform)<br />
(a) Ist G = (V, Σ, S, P ) kontextfreie Grammatik, so gibt es eine kontextfreie Grammatik<br />
G ′ = (V ′ , Σ, S, P ′ ) mit L(G ′ ) = L(G) − {ε}, derart daß P ′ nur Produktionen der Form<br />
(∗ ∗ ∗)<br />
{ A → BC mit A, B, C ∈ V ,<br />
A → a mit A ∈ V, a ∈ Σ<br />
hat. (Technisch: P ′ ⊆ V × (V 2 ∪ Σ).)<br />
(b) Es gibt einen effizienten Algorithmus, der G ′ aus G berechnet.<br />
Beweis Auf beliebiges G wenden wir zunächst 3.2.1 <strong>und</strong> 3.2.3 an. Daher können wir<br />
o. B. d. A. annehmen, daß G nur Produktionen der Form (∗∗) aus 3.2.3 enthält. Wir eliminieren<br />
die Regeln der Form A → B im wesentlichen in zwei Phasen.<br />
Vorbereitung: Lasse alle Produktionen A → A, mit A ∈ V , weg. (Das ist harmlos.)<br />
Phase 1: Betrachte die Produktionsmenge<br />
P 1 := {(A, B) ∈ V 2 | A → B in P }.<br />
Suche einen Kreis in P 1 , mittels eines geeigneten Graphalgorithmus. Falls kein Kreis gef<strong>und</strong>en<br />
wird, gehe zu Phase 2. Falls ein Kreis<br />
A 1 → A 2 → · · · → A r → A 1 , r ≥ 2,<br />
in P 1 gef<strong>und</strong>en wurde, so ersetze in allen Produktionen in P , egal ob auf der linken<br />
oder der rechten Seite, jede der Variablen A 2 , . . . , A r durch A 1 . (Kommt S im Kreis vor,<br />
so ist o. B. d. A. S = A 1 .) Man überlegt sich leicht, daß sich die erzeugte Sprache nicht<br />
ändert. Dafür werden Ableitungsfolgen aus Kettenregeln im Kreis kurzgeschlossen“ <strong>und</strong><br />
”<br />
umgekehrt kurzgeschlossene“ Ableitungsschritte expandiert:<br />
”<br />
... ...<br />
A 2<br />
A 1<br />
A 3<br />
B<br />
C<br />
D<br />
A 4<br />
B<br />
C<br />
D<br />
(vorher)<br />
(nachher)<br />
90