Apakah ada algoritma / prosedur sistematis untuk menguji apakah suatu bahasa biasa?
Dengan kata lain, diberikan bahasa yang ditentukan dalam bentuk aljabar (pikirkan sesuatu seperti ), uji apakah bahasa itu teratur atau tidak. Bayangkan kita sedang menulis layanan web untuk membantu siswa dengan semua pekerjaan rumah mereka; pengguna menentukan bahasa, dan layanan web merespons dengan "reguler", "tidak teratur", atau "Saya tidak tahu". (Kami ingin layanan web menjawab "Saya tidak tahu" sesering mungkin.) Apakah ada pendekatan yang baik untuk mengotomatisasi ini? Apakah ini bisa ditelusuri? Apakah ini dapat diputuskan (yaitu, apakah mungkin untuk menjamin bahwa kita tidak perlu menjawab "Saya tidak tahu")? Apakah ada algoritma yang cukup efisien untuk menyelesaikan masalah ini, dan dapat memberikan jawaban selain "tidak tahu"
Metode klasik untuk membuktikan bahwa suatu bahasa tidak teratur adalah lemma pemompaan. Namun, sepertinya membutuhkan wawasan manual di beberapa titik (misalnya, untuk memilih kata yang akan dipompa), jadi saya tidak jelas apakah ini dapat diubah menjadi sesuatu yang algoritmik.
Metode klasik untuk membuktikan bahwa suatu bahasa biasa adalah dengan menggunakan teorema Myhill – Nerode untuk mendapatkan otomat kondisi-terbatas. Ini terlihat seperti pendekatan yang menjanjikan, tetapi membutuhkan kemampuan untuk melakukan operasi dasar pada bahasa dalam bentuk aljabar. Tidak jelas bagi saya apakah ada cara sistematis untuk secara simbolis melakukan semua operasi yang mungkin diperlukan, pada bahasa dalam bentuk aljabar.
Untuk membuat pertanyaan ini diajukan dengan baik, kita perlu memutuskan bagaimana pengguna akan menentukan bahasa. Saya terbuka untuk saran, tetapi saya memikirkan sesuatu seperti ini:
di mana adalah ekspresi kata dan adalah sistem ketidaksetaraan linear atas variabel panjang, dengan definisi berikut:S
Setiap adalah ekspresi kata. (Ini mewakili variabel yang dapat mengambil kata apa pun di .)Σ ∗
Setiap adalah ekspresi kata. (Di sini menunjukkan kebalikan dari string .)x r x
Setiap adalah ekspresi kata. (Secara implisit, Σ = { a , b , c , ... } , jadi a , b , c , ... mewakili simbol tunggal dalam alfabet yang mendasarinya.)
Masing-masing adalah kata-ekspresi, jika η adalah panjang-variabel.
Rangkaian ekspresi kata adalah ekspresi kata.
Setiap adalah variabel panjang. (Ini mewakili variabel yang dapat mengambil nomor alami apa pun.)
Masing-masing adalah variabel panjang. (Ini mewakili panjang kata yang sesuai.)
Ini tampaknya cukup luas untuk menangani banyak kasus yang kita lihat dalam latihan buku teks. Tentu saja, Anda dapat mengganti metode tekstual lainnya dalam menentukan bahasa dalam bentuk aljabar, jika Anda memiliki saran yang lebih baik.
Jawaban:
Jawabannya adalah tidak. Memutuskan apakah tata bahasa bebas konteks yang diberikan menghasilkan bahasa reguler adalah masalah yang tidak dapat diputuskan.
Perbarui . Saya memberikan jawaban negatif ini untuk pertanyaan umum
karena bahasa bebas konteks adalah solusi dari persamaan aljabar dalam bahasa: lihat Bab II, Teorema 1.4 dan 1.5 dalam buku J. Berstel Transduksi dan Bahasa Bebas Konteks .
Namun, pertanyaan yang sama dapat ditentukan untuk bahasa bebas konteks deterministik, hasil nontrivial karena Stearns [1] dan ditingkatkan oleh Valiant [2]:
[1] RE Stearns, Tes Keteraturan untuk Mesin Pushdown, Informasi dan Kontrol 11 323- 340 (1967). DOI: 10.1016 / S0019-9958 (67) 90591-8.
[2] LG Valiant. Keteraturan dan masalah terkait untuk deterministic pushdown automata J. ACM 22 (1975), hlm. 1-10.
Ada hasil positif lain, lebih dekat dengan spesifikasi yang diberikan di bagian kedua pertanyaan. Ingat bahwa subset semilinear dari adalah himpunan yang dapat didefinisikan dalam aritmatika Presburger. Ada juga himpunan bagian rasional dari . Secara khusus, himpunan bagian dari didefinisikan oleh persamaan linear adalah rasional. Sekarang, dengan subset rasional dari , dapat diputuskan apakah bahasa teratur. Memang, diketahui [Ginsburg-Spanier] bahwa adalah teratur jika dan hanya jika adalah subset yang dikenali dariN k N k R N k L(R)={ u n 1 1 ⋯ u n k k |( n 1 ,..., N k )∈R}Nk Nk Nk R Nk
S. Ginsburg dan EH Spanier., Semigroup, rumus Presburger, dan bahasa , Pacific J. Math. 16 (1966), 285-296.
S. Ginsburg dan EH Spanier. Set reguler terbatas , Proc. dari Matematika Amerika. Soc. 17 , 1043-1049 (1966).
Ini tidak menyelesaikan bagian kedua dari pertanyaan, yang mungkin tidak dapat dipastikan karena variabel kata, tetapi memberikan fragmen yang masuk akal untuk memulai.
sumber