19.11.2014 Aufrufe

Inhaltsverzeichnis - Automaten und Formale Sprachen

Inhaltsverzeichnis - Automaten und Formale Sprachen

Inhaltsverzeichnis - Automaten und Formale Sprachen

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!