Apa rasio CFG ambigu dengan semua CFG ?
Karena kedua himpunan ini tak terhingga tak terhingga rasionya tidak terdefinisi dengan baik. Tapi bagaimana dengan kepadatan asimptotik :
di mana simbol terminal dan non-terminal berasal dari himpunan yang dapat dihitung tetap.
Ukuran tata bahasa adalah gagasan tentang ukuran untuk tata bahasa, misalnya
- jumlah total kemunculan variabel dan terminal dalam aturan produksi, atau
- jumlah total kemunculan variabel, atau
- jumlah total aturan produksi, atau
- jumlah variabel yang berbeda.
(Saya mengasumsikan definisi ukuran tidak akan mempengaruhi jawabannya.)
fl.formal-languages
grammars
context-free
pengguna18064
sumber
sumber
Jawaban:
Pertanyaannya tergantung pada pengkodean yang tepat. Namun, tampaknya dalam banyak penyandian yang masuk akal, karena panjangnya cenderung tak terhingga, jumlah aturan produksi (untuk interpretasi yang tepat dari simbol awal dan terminal ) akan lebih dari satu dengan probabilitas tinggi; di sini maksud saya terminal yang sama . Jika kita menganggap ini sebagai ambiguitas, maka saya berharap tata bahasa "kebanyakan" akan ambigu. Kami juga dapat menyusun situasi yang serupa seperti aturan dan masing masing muncul setidaknya satu kali.S aS→ a S Sebuah Sebuah S → aS→ S S→ a
Dengan asumsi hipotesis umum ini, bahwa setiap aturan (tetap) yang dapat dipikirkan akan muncul dengan probabilitas tinggi karena panjangnya cenderung tak terhingga, kami menemukan bahwa "sebagian besar" tata bahasa menghasilkan dengan cara yang ambigu.Σ∗
Sebagai contoh, perhatikan pengodean berikut untuk tata bahasa di atas . Alfabet tata bahasa terdiri dari simbol . Non-terminal diindeks oleh string biner dengan panjang minimal 2. Aturan dipisahkan oleh stop penuh. Setiap aturan adalah urutan string biner yang dipisahkan oleh titik koma. String biner pertama adalah non-terminal di sisi kiri, dan sisanya (jika ada) merupakan sisi kanan; jika string biner pertama bukan non-terminal (yaitu, , 0,1), maka non-terminal awal diasumsikan. Awal non-terminal selalu 00.{ 0 , 1 , ; , . } ϵΣ = { 0 , 1 } { 0 , 1 , ; , . } ϵ
Di bawah pengkodean ini, setiap string di Menjelaskan beberapa tata bahasa. Tata bahasa acak akan dengan probabilitas tinggi mengandung banyak salinandan, dan khususnya akan ambigu. .00 ; 00. 0,00 ; 0.{ 0 , 1 , ; , . }∗ 0,00 ; 00 0,00 ; 0.
sumber