Back to IF2224 Teori Bahasa Formal dan Otomata

Topic: Chomsky Normal Form (CNF) & Konversi

Questions/Cues

  • Definisi Formal CNF

  • Motivasi CNF

  • Syarat Produksi

  • Langkah 1: Clean Up

  • Langkah 2: Terminal

  • Langkah 3: Cascade

Reference Points

  • Slide 15_2025: Hal 3 - 15

1. Definisi Chomsky Normal Form (CNF)

Sebuah Tata Bahasa Bebas Konteks (CFG) berada dalam bentuk CNF jika dan hanya jika setiap aturan produksi memenuhi salah satu dari dua format berikut:

  1. : Variabel menurunkan tepat dua variabel.

  2. : Variabel menurunkan tepat satu terminal.

Segala bentuk produksi lain seperti produksi kosong (), produksi unit (), atau campuran terminal-variabel di sisi kanan dilarang.

2. Langkah-Langkah Konversi CFG ke CNF

Proses konversi dilakukan melalui tiga tahapan utama secara berurutan:

Langkah 1: Pembersihan Grammar (Clean Up)

Sebelum konversi, grammar harus dibersihkan dari tiga masalah:

  • Eliminasi Useless Symbols: Menghapus simbol yang tidak bisa menghasilkan terminal string (non-generating) atau tidak bisa dicapai dari start symbol (non-reachable).

  • Eliminasi -productions: Menghapus dengan menduplikasi aturan produksi yang mengandung variabel nullable tersebut.

  • Eliminasi Unit Productions: Menghapus dengan menggantinya dengan semua produksi non-unit yang dimiliki oleh .

Langkah 2: Pemisahan Terminal dalam Produksi Panjang

Masalah: Produksi dengan panjang yang mengandung terminal (contoh: ).

  • Prosedur: Untuk setiap terminal dalam body produksi panjang, buat variabel baru . Ganti dengan dan tambahkan aturan .

Langkah 3: Pemecahan Body Panjang (Cascade) Masalah: Produksi dengan jumlah variabel di sisi kanan (contoh: ).

  • Prosedur: Pecah menjadi rangkaian produksi biner menggunakan variabel pembantu.

  • Misal diubah menjadi:

3. Karakteristik Parse Tree CNF

Dalam format CNF, setiap parse tree akan memiliki struktur pohon biner. Jika string memiliki panjang , maka pohon penurunan tersebut akan memiliki tepat node internal. Struktur yang seragam ini memungkinkan implementasi algoritma parsing yang lebih efisien.

Summary

Chomsky Normal Form (CNF) adalah bentuk standar CFG yang hanya mengizinkan produksi atau . Proses konversi melibatkan pembersihan grammar (hapus , unit, dan useless symbols), pemisahan terminal menggunakan variabel baru pada produksi panjang, serta pemecahan variabel jamak menjadi struktur kaskade biner. Standarisasi ini sangat penting untuk efisiensi algoritma parsing seperti CYK.