Pada bagian pertama, kami menunjukkan algoritma eksponensial untuk menentukan sirkularitas. Pada bagian kedua, kami menunjukkan bahwa masalahnya adalah coNP-hard. Pada bagian ketiga, kami menunjukkan bahwa setiap bahasa melingkar adalah penyatuan bahasa bentuk (di sini rr+r bisa menjadi regexp kosong); serikat tidak harus terputus-putus. Pada bagian keempat, kami menunjukkan bahasa melingkar yang tidak dapat ditulis sebagai jumlah terpisah .∑r+i
Sunting: Menyertakan beberapa koreksi mengikuti komentar Mark. Secara khusus, klaim saya sebelumnya bahwa edaran telah lengkap atau NP-keras diperbaiki.
Sunting: Bentuk normal yang dikoreksi dari ke ∑ r + i . Memperlihatkan bahasa "inheren ambigu".∑r∗i∑r+i
Melanjutkan komentar Peter Taylor, berikut ini cara memutuskan (sangat tidak efisien) apakah suatu bahasa melingkar mengingat DFA-nya. Bangun DFA baru yang negaranya adalah -tupel dari state lama. DFA baru ini menjalankan n salinan DFA lama secara paralel.nn
Jika bahasa tidak melingkar maka ada kata sehingga jika kita menjalankannya melalui DFA berulang kali, dimulai dengan keadaan awal s 0 , maka kita mendapatkan status s 1 , ... , s n sehingga s 1 menerima tetapi satu dari yang lain tidak menerima (jika semua dari mereka yang menerima maka maka urutan s 0 , ... , s n keharusan siklus sehingga w * selalu dalam bahasa). Dengan kata lain, kita memiliki jalur dari s 0 , ... , s nws0s1,…,sns1s0,…,snw∗ ke s 1 ,…, s n di mana s 1 menerima tetapi yang lain tidak menerima. Sebaliknya, jika bahasanya melingkar maka itu tidak bisa terjadi.s0,…,sn−1s1,…,sns1
Jadi kami telah mengurangi masalah menjadi tes keterjangkauan yang diarahkan sederhana (cukup periksa semua kemungkinan "buruk" -tupel).n
Masalah sirkularitas adalah coNP-keras. Misalkan kita diberi contoh 3SAT dengan variabel → x dan m klausa C 1 , ... , C m . Kita dapat mengasumsikan bahwa n = m (tambahkan variabel dummy) dan n itunx⃗ mC1,…,Cmn=mn adalah bilangan prima (jika tidak temukan bilangan prima antara dan 2 n menggunakan pengujian primitif AKS, dan tambahkan variabel dummy dan klausa).n2n
Pertimbangkan bahasa berikut: "input bukan dari bentuk mana → x i adalah tugas yang memuaskan untuk C i ". Mudah untuk membuat DFA O ( n 2 ) untuk bahasa ini. Jika bahasa tidak melingkar maka ada kata w dalam bahasa, beberapa kekuatan yang tidak ada dalam bahasa. Karena satu-satunya kata yang tidak dalam bahasa memiliki panjang n 2 , w harus dengan panjang 1 atau n . Jika panjangnyax⃗ 1⋯x⃗ nx⃗ iCiO(n2)wn2w1n , pertimbangkan w n1wn sebagai gantinya (masih dalam bahasa), sehingga adalah dalam bahasa dan w n tidak dalam bahasa. Fakta bahwa w n tidak dalam bahasa berarti bahwa w adalah tugas yang memuaskan.wwnwnw
Sebaliknya, setiap tugas memuaskan diterjemahkan ke kata membuktikan non-bundar dari bahasa: memuaskan tugas milik bahasa tetapi w n tidak. Jadi bahasanya melingkar jika instance 3SAT tidak memuaskan.wwn
Pada bagian ini, kita membahas bentuk normal untuk bahasa sirkuler. Mempertimbangkan beberapa DFA untuk bahasa melingkar . Urutan C = C 0 , ... adalah nyata jika C 0 = s (keadaan awal), semua negara lainnya menerima, dan C i = C j menyiratkan C i + 1LC=C0,…C0=sCi=Cj . Dengan demikian setiap urutan nyata pada akhirnya bersifat periodik, dan hanya ada banyak urutan nyata (karena DFA memiliki banyak negara).Ci+1=Cj+1
Kami mengatakan bahwa kata berperilaku sesuai dengan C jika kata mengambil DFA dari negara untuk negara c i + 1 , untuk semua i . Himpunan semua kata seperti itu E ( C ) teratur (argumennya mirip dengan bagian pertama dari jawaban ini). Perhatikan bahwa E ( C ) adalah bagian dari L .cici+1iE(C)E(C)L
Mengingat nyata urutan , mendefinisikan C k menjadi urutan C k ( t ) = C ( k t ) . Urutan C k juga nyata. Karena hanya ada finitely banyak urutan yang berbeda C k , bahasa D ( C ) yang merupakan gabungan dari semua E ( C k ) juga biasa.CCkCk(t)=C(kt)CkCkD(C)E(Ck)
Kami mengklaim bahwa memiliki sifat bahwa jika x , y ∈ D ( C ) maka x y ∈ D ( C ) . Memang, anggaplah bahwa x ∈ C k dan y ∈ C l . Kemudian x y ∈ C k + l . Jadi D ( C ) = DD(C)x,y∈D(C)xy∈D(C)x∈Cky∈Clxy∈Ck+l dapat ditulis dalam bentuk rD(C)=D(C)+ untuk beberapa ekspresi reguler r .r+r
Setiap kata dalam bahasa sesuai dengan beberapa urutan C nyata , yaitu ada urutan C nyata yang sesuai dengan w . Jadi L adalah gabungan dari D ( C ) atas semua urut nyata C . Oleh karena itu setiap bahasa sirkuler memiliki representasi bentuk ∑ r +wCCwLD(C)C . Sebaliknya, setiap bahasa seperti itu melingkar (sepele).∑r+i
Pertimbangkan bahasa sirkular dari semua kata di atas a , b yang mengandung angka genap atau a atau bilangan genap b (atau keduanya). Kami menunjukkan bahwa itu tidak dapat ditulis sebagai jumlah yang terpisah ∑ r + i ; oleh "disjoint" yang kami maksud adalah r + i ∩ r + j = ∅ .La,bab∑r+ir+i∩r+j=∅
Biarkan menjadi ukuran beberapa DFA untuk r + i , dan N > maks N i menjadi bilangan bulat ganjil . Pertimbangkan x = a N b N ! . Karena x ∈ L , x ∈ r + i untuk beberapa i . Oleh lemma memompa, kita dapat memompa awalan dari x panjang paling N . Jadi r + i menghasilkan z = a N !Nir+iN>maxNix=aNbN!x∈Lx∈r+iixNr+i. Demikian pula, ∉ L . Dengan demikian representasi tidak dapat dipisahkan.z=aN!bN! dihasilkan oleh beberapa r + j , yang juga menghasilkan z . Perhatikan bahwa saya ≠ j sejak x yy=aN!bNr+jzi≠jxy∉L