6. Chomsky Normalform
Thema 7: Chomsky-Normalform (CNF)¶
📌 Definition:¶
Eine Grammatik ist in Chomsky-Normalform (CNF), wenn jede Produktionsregel eine der folgenden Formen hat:
-
Binarregel:
A→BCA \rightarrow BCA→BC - A, B, C: Nichtterminalsymbole (B, C ≠Startsymbol) - Keine Terminals auf der rechten Seite. 2. Terminalregel:
A→aA \rightarrow aA→a - a: Terminalsymbol (z.B.
a,b,c) 3. Leere Produktion (optional):S→εS \rightarrow \varepsilonS→ε - Nur erlaubt, wenn S das Startsymbol ist.
📝 Schritte zur Umwandlung in CNF:¶
-
Eliminiere ε-Produktionen:
- Entferne Regeln der Form
A → ε, außer wennAdas Startsymbol ist. -
Eliminiere unit-Productions:
-
Regeln der Form
A → Bwerden aufgelöst, indemAdie Regeln vonBübernimmt. -
Eliminiere unnötige Symbole:
-
Entferne Nichtterminale, die nicht zur Erzeugung von Terminals fĂĽhren.
-
Reduziere längere Produktionen:
-
Z.B.
A → BCDwird umgewandelt in:A → BX X → CD
- Entferne Regeln der Form
-
Ersetze Terminals in Kombinationen:
-
Z.B.
A → aBwird:A → XB X → a
-
📊 2. CYK-Algorithmus (Cocke-Younger-Kasami)¶
📌 Zweck:¶
PrĂĽft, ob ein Wort von einer Grammatik in CNF erzeugt werden kann.
📝 Voraussetzungen:¶
- Die Grammatik muss in CNF vorliegen.
- Das Wort
ωwird von unten nach oben in einer Tabelle überprüft.
⚙️ Ablauf des CYK-Algorithmus:¶
-
Initialisierung (Basis):
- Erstelle eine Dreiecksmatrix.
- FĂĽlle die unterste Zeile mit den Nichtterminals, die das jeweilige Terminal ableiten.
-
Rekursive Berechnung:
-
Für jedes Teilwort (länger als 1) prüfe, welche Kombination von Nichtterminals möglich ist.
- Nutze die Produktionsregeln der Grammatik.
-
AkzeptanzprĂĽfung:
-
Das Wort wird akzeptiert, wenn das Startsymbol (S) in der oberen Zelle der Matrix steht.
🔍 3. Typische Prüfungsaufgaben¶
✅ Aufgabe 1: Grammatik in CNF umwandeln¶
-
Beispiel:
S → FF | FG F → aHa G → bb H → bHb | ε -
Vorgehen:
- Ersetze Terminals:
aHa → XHYmitX → a,Y → a - Reduziere lange Produktionen:
S → FXmitX → FG - Eliminiere ε-Produktionen:
H → bHb | εwird angepasst.
- Ersetze Terminals:
✅ Aufgabe 2: CYK für cccabb¶
- Erstelle eine Tabelle fĂĽr das Wort
cccabb. - PrĂĽfe jede Kombination mit den Produktionsregeln.
- Akzeptanz: Falls
Sin der oberen Zelle → Wort gehört zur Sprache.
✅ Aufgabe 3: CYK für ababacc¶
- Gleiche Vorgehensweise wie bei Aufgabe 2.
- Grammatik ist bereits in CNF → direkt anwenden.
🎯 4. Zusammenfassung¶
- Chomsky-Normalform: Grammatik in einfache Binärform umwandeln.
- CYK-Algorithmus: Matrixverfahren, um die Ableitbarkeit eines Wortes zu prĂĽfen.
- PrĂĽfung: Immer kontrollieren, ob das Startsymbol
Sin der letzten Matrixzelle steht.