Diberi bahasa , tentukan panjang himpunan L sebagai himpunan panjang kata dalam L : L S ( L ) = { | kamu | ∣ u ∈ L }
Set bilangan bulat mana yang dapat menjadi set panjang bahasa reguler?
sumber
Diberi bahasa , tentukan panjang himpunan L sebagai himpunan panjang kata dalam L : L S ( L ) = { | kamu | ∣ u ∈ L }
Set bilangan bulat mana yang dapat menjadi set panjang bahasa reguler?
Pertama, pengamatan yang tidak penting tetapi nyaman: himpunan himpunan bilangan bulat yang merupakan untuk beberapa bahasa reguler pada alfabet non-kosong tidak bergantung pada pilihan alfabet. Untuk melihat itu, pertimbangkan otomat terbatas yang mengenali ; panjang kata-kata yang ada di adalah panjang jalur pada otomat yang dilihat sebagai grafik yang tidak berlabel dari keadaan mulai ke keadaan terima apa pun. Secara khusus, Anda dapat menandai ulang setiap panah ke dan mendapatkan bahasa reguler dengan panjang yang sama yang ditetapkan pada alfabet . Sebaliknya, jika adalah bahasa biasa di atas alfabet satu elemen, itu bisa disuntikkan ke dalam alfabet yang lebih kecil, dan hasilnya masih bahasa biasa.
Oleh karena itu kami mencari set panjang kata yang mungkin untuk alfabet tunggal. Pada alfabet tunggal, bahasa adalah panjang yang ditetapkan ditulis dalam unary: . Bahasa seperti itu disebut bahasa unary.
Biarkan menjadi bahasa biasa, dan mempertimbangkan robot yang terbatas deterministik (DFA) yang mengakui . Himpunan panjang kata-kata adalah himpunan panjang lintasan dalam DFA yang dilihat sebagai grafik berarah yang dimulai pada keadaan awal dan berakhir di salah satu negara terima. DFA pada alfabet satu elemen cukup jinak (NFA akan lebih liar): itu adalah daftar terbatas atau daftar bundar. Jika daftar terbatas, beri nomor status dari hingga mengikuti urutan daftar; jika melingkar, beri nomor negara dari sampai mengikuti kepala daftar, dan ke sepanjang loop.
Misalkan adalah himpunan indeks keadaan terima hingga , dan adalah himpunan indeks keadaan terima dari ke . Kemudian
Sebaliknya, misalkan dan menjadi dua bilangan bulat dan dan menjadi dua set bilangan bulat yang terbatas sehingga dan . Kemudian setadalah bahasa biasa: itu adalah bahasa yang dikenali oleh DFA yang dijelaskan di atas. Sebuah ekspresi reguler yang menjelaskan bahasa ini adalah .
Untuk meringkas dalam bahasa Inggris, set panjang bahasa reguler adalah set integer yang periodik¹ di atas nilai tertentu .
¹ Untuk berpegang pada gagasan yang mapan , periodik berarti fungsi karakteristik set (yang merupakan fungsi yang kita angkat ke fungsi ) periodik. Berkala di atas nilai tertentu berarti bahwa fungsi yang dibatasi pada dapat diperpanjang menjadi fungsi periodik.
Setiap himpunan bagian terbatas dapat menjadi lenght-set bahasa L biasa , karena Anda dapat mengambil alfabet unary { 0 } dan mendefinisikan L sebagai {{ℓ1,…,ℓn}⊂N L {0} L (ini termasuk bahasa kosong dan { ε } ).{0ℓ1,…,0ℓn} {ε}
Sekarang untuk set yang tak terbatas. Saya akan memberikan analisis singkat, meskipun jawaban akhirnya mungkin tidak cukup eksplisit. Saya tidak akan menguraikan kecuali Anda meminta saya untuk, karena saya pikir itu intuitif dan karena saya tidak punya banyak waktu sekarang.
Mari menjadi ekspresi reguler yang menghasilkan bahasa L 1 dan L 2 , masing-masing. Sangat mudah untuk melihatnyar1,r2 L1 L2
Dengan demikian, himpunan bilangan bulat yang mungkin dapat menjadi himpunan-panjang dari bahasa reguler adalah yang merupakan himpunan himpunan terbatas atau yang dapat dibangun dengan mengambil himpunan himpunan terbatas S 1 , S 2 dari NN S1, S2 N dan menggunakan rumus-rumus sebelumnya hingga. berkali-kali.
Di sini, kami menggunakan bahasa reguler yang dibangun, menurut definisi, dengan menerapkan aturan untuk membangun ekspresi reguler beberapa kali. Perhatikan bahwa kita dapat mulai dengan subset terbatas hingga , meskipun dalam ekspresi reguler kita mulai dengan kata-kata dengan panjang 0 dan 1 hanya sebagai basis huruf. Ini mudah dibenarkan oleh fakta bahwa semua kata (terbatas) adalah gabungan dari simbol alfabet.N
sumber
Menurut lemma pemompaan untuk bahasa reguler, ada sehingga string x dengan panjang setidaknya sama dengan n dapat ditulis dalam bentuk berikut: x = u v w Dimana tiga kondisi berikut berlaku: | kamu v | < n | v | > 0 u v k w ∈ Ln x n
Ini memberi kita satu pengujian untuk set: suatu set tidak dapat menjadi set panjang dari bahasa reguler kecuali semua elemennya dapat dinyatakan sebagai beberapa set integer acak tidak lebih dari tetap , ditambah beberapa kelipatan dari nilai yang tidak ditentukan m (panjang dari vn m v ), ditambah beberapa nilai terbatas yang berubah-ubah.
Dengan kata lain, sepertinya set panjang bahasa yang mungkin untuk bahasa reguler adalah penutupan sehubungan dengan set union (seperti yang dibahas di bawah EDIT dan EDIT2, terima kasih kepada komentator) dari set yang dijelaskan sebagai berikut: Untuk memperbaiki a , b ∈ N dan semua himpunan terbatas S , oleh lemma pemompaan untuk bahasa reguler (terima kasih kepada Gilles karena menunjukkan kesalahan konyol dalam versi asli saya, di mana saya mendefinisikan set N
EDIT: Sedikit diskusi lagi. Tentu saja semua himpunan bilangan bulat terbatas adalah himpunan panjang. Juga, penyatuan dua himpunan panjang juga harus merupakan himpunan panjang, sebagaimana harus menjadi pelengkap dari himpunan panjang apa pun (karenanya persimpangan, maka perbedaan). Alasan untuk ini adalah bahwa bahasa reguler ditutup di bawah operasi ini. Oleh karena itu, jawaban yang saya berikan di atas (mungkin) tidak lengkap; pada kenyataannya, setiap penyatuan dari set tersebut juga merupakan set panjang dari beberapa bahasa reguler (perhatikan bahwa saya telah meninggalkan yang membutuhkan persimpangan, komplemen, perbedaan, dll., karena ini tercakup oleh fakta bahwa bahasa biasa ditutup di bawah properti ini, seperti dibahas dalam EDIT3; Saya pikir hanya persatuan yang benar-benar diperlukan, bahkan jika yang lain benar, yang mungkin tidak demikian).
EDIT2: Diskusi lebih lanjut. Jawaban yang saya berikan pada dasarnya adalah di mana Anda akan berakhir jika Anda mengambil jawaban Janoma sedikit lebih jauh; itub n Sebuah berasal dari gabungan, dan pembahasan union, intersection, perbedaan dan komplemen berasal dari + ekspresi reguler (serta sifat penutupan lain dari bahasa biasa) dapat dibuktikan mulai dari automata) .
EDIT3: Sehubungan dengan komentar Janoma, mari kita lupakan sifat penutupan set panjang bahasa yang saya bahas dalam EDIT pertama. Karena bahasa reguler memiliki properti penutup ini, dan karena setiap bahasa reguler memiliki DFA, maka bahasa yang digunakan untuk bahasa biasa berlaku untuk semua serikat pekerja, persimpangan, pelengkap, dan perbedaan bahasa biasa, dan kami akan membiarkannya begitu saja ; bahkan tidak perlu mempertimbangkan semua ini, kecuali penyatuan, yang menurut saya masih perlu untuk membuat yang asli (dimodifikasi, terima kasih atas masukan dari Gilles) yang benar. Jadi, jawaban terakhir saya adalah ini: apa yang saya katakan di versi asli, ditambah penutupan set panjang bahasa sehubungan dengan set union.
sumber