Back to IF2224 Teori Bahasa Formal dan Otomata

Topic: Decision Properties & CYK Algorithm

Questions/Cues

  • Decidable vs Undecidable

  • Masalah Emptiness

  • Masalah Membership

  • Masalah Equivalence

  • Apa itu CYK?

  • Kompleksitas CYK

  • Syarat Utama CYK

  • Struktur Tabel CYK

  • Langkah Basis

  • Langkah Induksi

  • Syarat Diterima

Reference Points

  • Slide-15_2025_CNF.pdf (Hal 28-42) - Penjelasan CYK Visual

  • Bab 7 Sifat2 CFG.pdf (Hal 40-58) - Contoh Detail

  • Slide-13_2025_Properti CFL.pdf (Hal 25)

1. Decision Properties (Apa yang Bisa Dijawab?)

Dalam teori komputasi, kita membedakan masalah menjadi dua kelas:

A. Decidable (Bisa Dipecahkan)

Ada algoritma pasti yang berhenti dalam waktu berhingga untuk menjawab “Ya/Tidak”.

  1. Emptiness (?): Apakah grammar ini “mandul” atau bisa menghasilkan setidaknya satu string?

    • Algoritma: Gunakan algoritma pencarian Generating Symbols. Jika Start Symbol tidak masuk himpunan generating, maka bahasanya kosong.

    • Kompleksitas: (sangat cepat).

  2. Membership (?): Apakah string valid menurut tata bahasa ?

    • Algoritma: CYK Algorithm (Cocke-Younger-Kasami).

    • Kompleksitas: (Polynomial).

  3. Finiteness: Apakah bahasa ini berhingga atau tak hingga?

    • Algoritma: Cek graf ketergantungan variabel. Jika ada cycle (perulangan) yang melibatkan simbol generating & reachable, maka bahasanya tak hingga.

B. Undecidable (Mustahil Dipecahkan)

Tidak ada (dan tidak akan pernah ada) algoritma umum yang bisa menjawab ini untuk SEMBARANG CFL.

  1. Equivalence (?): Apakah dua grammar berbeda menghasilkan bahasa yang persis sama? (Ini decidable untuk Regular Language, tapi undecidable untuk CFL).

  2. Subset (?): Apakah bahasa satu merupakan himpunan bagian dari bahasa lain?

  3. Disjointness: Apakah irisan dua bahasa kosong?

  4. Universality: Apakah grammar menghasilkan semua string yang mungkin ()?

2. Algoritma CYK (Cocke-Younger-Kasami)

Ini adalah algoritma parsing standar emas untuk CFG. Algoritma ini menggunakan pendekatan Dynamic Programming (memecah masalah besar menjadi sub-masalah kecil yang disimpan di tabel).

Prasyarat Mutlak: Grammar HARUS sudah dalam bentuk Chomsky Normal Form (CNF) ( atau ).

Struktur Tabel

Tabel berbentuk segitiga (atau matriks persegi yang diisi separuh atas).

  • Input: String .

  • Sel : Berisi himpunan variabel yang bisa menurunkan substring dari indeks sampai ().

  • Target: Cek apakah Start Symbol ada di sel puncak (seluruh string).

Langkah Pengerjaan

Langkah 1: Basis (Baris Terbawah/Diagonal Utama)

Isi sel (substring panjang 1).

  • Untuk setiap huruf input , cari aturan produksi .

  • Masukkan ke dalam sel .

Langkah 2: Induksi (Naik ke Atas)

Isi sel untuk substring panjang .

  • Substring dipecah menjadi dua bagian di titik (split point).

  • Bagian kiri: (diwakili sel ).

  • Bagian kanan: (diwakili sel ).

  • Cari aturan produksi dimana dan .

  • Lakukan untuk semua kemungkinan titik potong (dari sampai ).

3. Studi Kasus: Simulasi CYK

Grammar (CNF):

Input: ().

Tahap 1: Basis (Panjang 1)

  • : . Isi .

  • : . Isi .

  • : . Isi .

  • : . Isi .

  • : . Isi .

Tahap 2: Panjang 2 (Contoh substring “ba”)

  • Split hanya bisa di tengah: .

  • Cari kombinasi .

  • Pasangan: dan .

  • Cek Grammar:

    • ? Ada! (Simpan A).

    • Ada aturan ? Ada ! (Simpan S).

  • Hasil .

Tahap 3: Panjang 3 (Contoh substring “aab”)

  • Split 1: ().

  • Split 2: ().

  • Gabungkan semua hasil temuan variabel.

Tahap Akhir:

Cek sel (seluruh string “baaba”).

Jika himpunan di memuat , maka string DITERIMA.

Summary

Decision Properties memetakan batas kemampuan komputasi pada CFL. Masalah dasar seperti Emptiness () dan Membership () bersifat decidable, sedangkan masalah perbandingan antar bahasa seperti Equivalence dan Subset bersifat undecidable. Algoritma CYK adalah metode standar untuk uji membership dengan pendekatan dynamic programming pada grammar bentuk CNF. CYK bekerja secara bottom-up, mengisi tabel dari substring terpendek (panjang 1) hingga terpanjang, dengan kompleksitas waktu kubik yang efisien dibandingkan pencarian brute-force.