Ada (setidaknya) salah satu cara untuk membuktikan unambiguity dari tata bahasa G=(N,T,δ,S) untuk bahasa L . Ini terdiri dari dua langkah:
- Buktikan L⊆L(G) .
- Buktikan [zn]SG(z)=|Ln|.
Langkah pertama cukup jelas: menunjukkan bahwa tata bahasa menghasilkan (setidaknya) kata-kata yang Anda inginkan, itu benar.
Langkah kedua menunjukkan bahwa memiliki banyak pohon sintaks untuk kata-kata dengan panjang seperti memiliki kata-kata dengan panjang - dengan 1. ini mengimplikasikan ketidakjelasan. Ia menggunakan fungsi struktur yang kembali ke Chomsky dan Schützenberger [1], yaitun L n GGnLnG
SG(z)=∑n=0∞tnzn
dengan jumlah pohon sintaks yang dimiliki untuk kata-kata panjang . Tentu saja Anda harus memilikiagar ini bekerja.G n | L n |tn=[zn]SG(z)Gn|Ln|
Yang menyenangkan adalah bahwa (biasanya) mudah diperoleh untuk bahasa bebas konteks, walaupun menemukan bentuk tertutup untuk bisa jadi sulit. Ubah menjadi sistem persamaan fungsi dengan satu variabel per nonterminal:t n GSGtnG
⎡⎣A(z)=∑(A,a0…ak)∈δ ∏i=0k τ(ai) :A∈N⎤⎦ with τ(a)={a(z)z,a∈N,a∈T.
Ini mungkin terlihat menakutkan tetapi sebenarnya hanya transformasi sintaksis seperti yang akan menjadi jelas dalam contoh ini. Idenya adalah bahwa dihasilkan simbol terminal dihitung dalam eksponen dan karena sistem memiliki bentuk yang sama seperti , terjadi sesering dalam penjumlahan sebagai terminal dapat dihasilkan oleh . Periksa Kuich [2] untuk detailnya.G z n n GzGznnG
Memecahkan sistem persamaan ini (aljabar komputer!) Menghasilkan ; sekarang Anda "hanya" harus menarik koefisien (dalam bentuk tertutup, umum). The TCS Cheat Sheet dan komputer aljabar sering dapat melakukannya.S(z)=SG(z)
Contoh
Pertimbangkan tata bahasa sederhana dengan aturanG
S→ a Sa ∣ b Sb ∣ ε .
Jelas bahwa (langkah 1, bukti dengan induksi). Ada palindrom dengan panjang jika adalah genap, sebaliknya.2 nL(G)={wwR∣w∈{a,b}∗} nn02n2nn0
Menyiapkan hasil sistem persamaan
S(z)=2z2S(z)+1
solusi siapa
SG(z)=11−2z2 .
Koefisien bertepatan dengan jumlah palindrom, sehingga tidak ambigu. GSG G
- Teori Aljabar Bahasa Bebas Konteks oleh Chomsky, Schützenberger (1963)
- Tentang entropi bahasa bebas konteks oleh Kuich (1970)