Apa set panjang kata yang mungkin dalam bahasa biasa?

15

Diberi bahasa , tentukan panjang himpunan L sebagai himpunan panjang kata dalam L : L S ( L ) = { | kamu | u L }LLL

LS(L)={|u|uL}

Set bilangan bulat mana yang dapat menjadi set panjang bahasa reguler?

Gilles 'SANGAT berhenti menjadi jahat'
sumber

Jawaban:

14

Pertama, pengamatan yang tidak penting tetapi nyaman: himpunan S himpunan bilangan bulat yang merupakan LS(L) untuk beberapa bahasa reguler L pada alfabet non-kosong A tidak bergantung pada pilihan alfabet. Untuk melihat itu, pertimbangkan otomat terbatas yang mengenali L ; panjang kata-kata yang ada di L 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 a dan mendapatkan bahasa reguler dengan panjang yang sama yang ditetapkan pada alfabet {a} . Sebaliknya, jikaL 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: L.S(L.)={nNSebuahnL.} . Bahasa seperti itu disebut bahasa unary.

Biarkan L. menjadi bahasa biasa, dan mempertimbangkan robot yang terbatas deterministik (DFA) yang mengakui L. . Himpunan panjang kata-kata L. 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 0 hingga h mengikuti urutan daftar; jika melingkar, beri nomor negara dari 0 sampai h mengikuti kepala daftar, dan h ke h+r sepanjang loop.

automata berbentuk daftar

Misalkan F adalah himpunan indeks keadaan terima hingga h , dan G adalah himpunan indeks keadaan terima dari h ke h+r . Kemudian

L.S(L.)=F{kr+xxG,kN}

Sebaliknya, misalkan h dan r menjadi dua bilangan bulat dan F dan G menjadi dua set bilangan bulat yang terbatas sehingga xF,xh danxG,hxh+r . Kemudian setL.F,G,r={Sebuahkr+xxG,kN}adalah bahasa biasa: itu adalah bahasa yang dikenali oleh DFA yang dijelaskan di atas. Sebuah ekspresi reguler yang menjelaskan bahasa ini adalahSebuahFSebuahG(Sebuahr) .

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 N{fSebuahlse,trkamue} yang kita angkat ke fungsiZ{fSebuahlse,trkamue} ) periodik. Berkala di atas nilai tertentu berarti bahwa fungsi yang dibatasi pada[h,+[ dapat diperpanjang menjadi fungsi periodik.

Gilles 'SANGAT berhenti menjadi jahat'
sumber
Pengamatan Anda tentang relevansi alfabet menunjukkan bahwa teorema Parikh dapat diterapkan. Secara khusus, Anda menunjukkan bahwa LS (L) = LS (L ') di mana dalam L' semua huruf diciutkan menjadi satu alfabet tunggal. Tetapi LS (L ') adalah pemetaan bahasa Parikh dari bahasa L, yang dikenal sebagai semilinear untuk bahasa biasa.
Suresh
Pendekatan yang bagus! 1) Saya pikir paragraf pertama dapat diganti dengan mencatat bahwa bahasa biasa ditutup terhadap string homomorfisme. 2) Untuk kejelasan, Anda harus mempertimbangkan memberikan bagian kedua sebagai { h + kL.S(L.) , modulo off-by-one-error. 3) Apa yang dimaksud dengan himpunan bilangan bulat "periodik"? {h+kr+(x-h)...}
Raphael
1
@ Suresh, Raphael (1): Saya lebih suka menyatakan buktinya dengan cara dasar, baik homomorfisme maupun pemetaan Parikh tidak disebutkan dalam kelas CS 102 saya.
Gilles 'SANGAT berhenti menjadi jahat'
@Raphael (2) Di mana Anda mulai dalam pengindeksan tidak masalah, saya bisa menghapus kondisi h G , karena F dapat menyerap elemen kecil sebanyak yang kita inginkan. (3) Himpunan yang periodik di atas nilai tertentu adalah himpunan yang dapat dimasukkan dalam formulir yang ditampilkan di atas. GhGF
Gilles 'SANGAT berhenti menjadi jahat'
5

Setiap himpunan bagian terbatas dapat menjadi lenght-set bahasa L biasa , karena Anda dapat mengambil alfabet unary { 0 } dan mendefinisikan L sebagai {{1,...,n}NL.{0}L. (ini termasuk bahasa kosong dan { ε } ).{01,...,0n}{ε}

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,r2L.1L.2

  • .L.S(L.(r1+r2))=L.S(L.1L.2)=L.S(L.1)L.S(L.2)
  • . Ini dilambangkan L S ( L 1 ) + L S ( LL.S(L.(r1r2))=L.S(L.1L.2)={1+2:1L.S(L.1),2L.S(L.2)} .L.S(L.1)+L.S(L.2)
  • L.S(L.(r1))={0}n1{saya=1nsaya:(1,...,n)(L.S(L.1))n}.

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 NNS1,S2N 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

Janoma
sumber
Saya tidak melihat jawaban akhir. (Apakah Anda bermaksud untuk menyelesaikan jawaban Anda nanti?) Saya berharap untuk deskripsi sederhana dari set yang mungkin, dan koneksi dengan automata.
Gilles 'SO- stop being evil'
Jawaban akhirnya ada di sana: "Jadi, set bilangan bulat yang mungkin ...". Itu memang deskripsi sederhana, meskipun terhubung dengan ekspresi reguler, bukan automata.
Janoma
Ada deskripsi yang lebih sederhana yang tidak melibatkan pengambilan fixpoint. Mungkin pertanyaan ini tidak mendasar seperti yang saya pikirkan!
Gilles 'SO- stop being evil'
Saya tidak berpikir Anda bisa menghindari aturan terakhir, karena itu adalah operator bintang yang dapat menghasilkan set panjang tak terbatas, sama seperti ia menghasilkan bahasa tak terbatas.
Janoma
@Gilles Jadi Anda ingin bentuk tertutup dari titik terendah terkecil dari solusi induktif yang disediakan Janoma?
Raphael
2

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 Lnxn

x=kamuvw
|kamuv|<n
|v|>0
kamuvkwL.

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 vnmv ), 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

{Sebuah+bn|nN}S
Sebuah,bNSN ).

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; itubnSebuah 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.

Patrick87
sumber
1
{Sebuah+bnSebuah,b,nN}SN
1
Analisis untuk komplemen dari set panjang mungkin agak rumit. Jika atas alfabet Σ = {L.=L.(Sebuah)Σ={Sebuah,b}L.NL.¯N+
@Gilles Tapi himpunan semua bilangan asli adalah panjang yang valid, bukan? Saya tidak membuat semua himpunan bagian bilangan asli, bukan? Saya setuju itu akan bermasalah. Sunting: oh tunggu, saya mengerti apa yang Anda katakan. Ya kau benar. Akan diperbaiki ketika kembali ke komputer.
Patrick87
@ Janoma Poin yang sangat baik, perlu mempertimbangkan bagaimana hal itu dapat mengubah set hal-hal yang saya mendefinisikan ...
Patrick87