Chomsky Normalform bilden?

1 Antwort

Man muss eigentlich im ersten Schritt nicht produzierende und nicht erreichbare Variabeln entfernen. Danach wird jedes Terminal, was auf einer rechten Regelseite auftaucht durch eine zusätzliche Variable ersetzt. Zum Beispiel S -> A1 wird zu S -> AW_1 und W_1 -> 1.

Danach trimmt man die rechten Regelseiten auf höchstens Länge 2 herunter und benutzt dabei wenn nötig (mehrere) Hilfsvariablen. Zum Beispiel S -> CW_aC wird zu S -> CS_1 und S_1 -> W_aC.

Dann werden jetzt die Epsilon-Regeln entfernt. Dabei muss man alle Variabeln betrachten, die zu Epsilon werden können (auch durch mehrere Schritte). Hier kann man dann D ganz entfernen, da es keine Ableitung mehr hat.

danach müssen noch einheitsregeln Entfernt werden. (X -> Y) und wenn Epsilon in der Sprache enthalten ist das noch hinzufügen aber das ist hier glaube ich nicht der Fall.

Woher ich das weiß:Studium / Ausbildung