Untuk sementara saya ingin tahu tentang Mesin Turing dengan tepat satu pita dan tepat 3 status (yaitu status awal , status terima , dan status tolak ). Perhatikan bahwa saya membolehkan abjad pita yang terbatas (terbatas) (yaitu, alfabet pita tidak terbatas sama dengan alfabet masukan).q a c c e p t q r e j e c t
Untuk kenyamanan, hubungi kelas bahasa yang dikenali oleh TM . Saya punya beberapa pertanyaan tentang kelas ini:
- Apakah sebelumnya telah dipelajari?
- Apakah diketahui setara dengan kelas minat / kompleksitas / lainnya?
- Apakah kelas kuat untuk perubahan dalam model. Misalnya, jika TM yang digunakan dibiarkan tetap di tempatnya selama satu transisi (sebagai lawan untuk selalu bergerak ke kiri atau kanan) atau jika pita dibuat menjadi tak terbatas di kedua arah, bukan hanya ke kanan, apakah kelas bahasa yang dikenali oleh perubahan 3-pita 1-pita 3-negara?
- Bagaimana dengan kelas bahasa reguler, ? (Secara khusus, apakah setiap bahasa reguler di ?) R e g u l a r C 3
Pencarian (agak sepintas) hanya memunculkan posting cs.stackexchange ini yang relevan tetapi tidak menjawab pertanyaan saya dan makalah ini , yang saya belum baca secara cukup detail untuk memastikan bahwa itu berkaitan dengan kelas tepatnya daripada kelas kelas serupa tetapi berbeda (makalah ini mengklaim untuk membuktikan bahwa (1) setiap bahasa dalam dapat dipilih dan (2) bahwa dan adalah kelas yang berbeda dengan persimpangan yang tidak kosong). Seperti yang ditunjukkan dalam komentar dari pos pertukaran cs.stackexchange, jenis TM ini dapat dianggap sebagai automata seluler yang sangat khusus, jadi mungkin seseorang yang mengetahui literatur tentang teori otomat seluler dapat membantu.C 3 C 3 R e g u l a r
sumber
Jawaban:
Binatang itu sangat kuat , misalnya kita dapat membangun TM yang menerima setiap string bentukM
dan menolak setiap string formulir
Idenya adalah untuk mengubah pertama menjadi R dan kemudian membiarkan kepala mencapai tengah string kemudian melakukan "stateless" zig-zag; jika mencapai A sebelum R maka ia menerima.r R A R
Deskripsi informal:
Contoh:
Teknik zig-zag ini digunakan dalam mesin Universal Turing 2-negara terkecil (memiliki 18 simbol) yang dibangun oleh Rogozhin (Rogozhin 1996. TCS, 168 (2): 215-240)).
Beberapa perhatian harus diberikan untuk membuktikan bahwa berhenti pada semua input (perlu diketahui bahwa ia menolak pada input kosong dan semua simbol yang tidak berhenti "konvergen" ke < atau > yang tidak dapat mengarah ke loop tak terbatas).M. < >
Seperti dikomentari oleh DavidG, bahasa dikenali oleh M adalah superset dari L Y (yaitu L Y ⊂ L ( M ) ) tetapi tidak mengandung string apa pun dari L N (yaitu L ( M ) ∩ L N = ∅ ) dan - seperti yang dikomentari oleh MikhailRudoy - ini cukup untuk membuktikan bahwa L ( M ) tidak teratur.L ( M) M. L.Y L.Y⊂ L ( M) L.N L ( M) ∩ LN= ∅ L ( M)
Memang jika teratur maka juga L ( M ) ∩ { r 0 ∗ 1 ∗ A } = L Y = { r 0 n 1 m A ∣ m ≤ n } akan menjadi biasa (yang bukan oleh aplikasi sederhana dari lemma pemompaan); mengarah ke kontradiksi.L ( M) L ( M) ∩ { r 0∗1∗A}=LY={r0n1mA ∣ m ≤ n }
Jadi tidak teratur .L ( M)
... Tapi seperti semua superhero memiliki sebuah tumit Achille: itu bahkan tidak bisa mengenali biasa:C3
Informal dapat menggunakan hanya yang paling kiri ( b adalah simbol kosong) atau orang kanan 1 b . . . sebagai pengait dan "mengembang" ke arah yang lain; tetapi Penerimaan akhir atau Tolak tidak dapat berada pada simbol kosong dari sisi yang berlawanan, sehingga hal itu dapat dilakukan hanya pada bagian dalam dari 1 detik dan mulai dari input yang cukup lama dapat "dipalsukan" dengan membukanya dengan satu.b 1 . . . b 1b... 1
Akhirnya - setelah membaca koran - saya dapat mengkonfirmasi bahwa satu-negara TM yang dijelaskan di dalamnya cocok dengan kelas ... (jadi tidak ada yang baru di sini :-) ... dan bahasa yang digunakan oleh penulis untuk membuktikan bahwa ia mengandung bahasa non-reguler sangat mirip dengan bahasa saya.C3
sumber
Saya meremehkan kekuatan ... sebenarnya itu tidak terlalu jauh dari perhitungan Hyper !C3
(Saya memposting ini sebagai jawaban terpisah untuk kejelasan yang lebih baik)
Kita dapat membangun satu mesin Turing negara yang menerima string dari bentuk:M
dan menolak string dari formulir:
Gagasan dan konstruksinya mirip dengan yang ada di jawaban sebelumnya: ubah pertama menjadi A , biarkan kepala mencapai tengah string kemudian lakukan zig-zag "stateless", tetapi transisi "implement" a "binary counter" "pada paruh pertama dengan cara ini: pada Z (Nol) memantulkan kepala kembali ke kanan , dan mengubah Z menjadi S (Satu) saat berikutnya kepala mencapai S , mengubahnya menjadi a ) dan biarkan kepala bergerak ke kiri; ketika kepala mencapai yang ) mengubahnya ke Z . Bagian kedua dari string berperilaku seperti penghitung unary.a A Z Z S S ) ) Z
Transisinya adalah:
Contoh:
Perhatian harus diberikan untuk membuktikan bahwa berhenti pada semua input (perlu diketahui bahwa ia menolak pada input kosong dan semua simbol "siklus" tanpa henti melalui ( , S , Z atau < , > yang tidak dapat mengarah ke loop tak terhingga) ).M (,S,Z <,>
Bahasa adalah superset dari L Y ( L Y ⊂ L ( M ) ) dan tidak mengandung string dari L N ( L ( M ) ∩ L N = ∅ ).L(M) LY LY⊂L(M) LN L(M)∩LN=∅
Misalkan adalah Context Free , maka - dengan properti penutupan CFL, memotongnya dengan bahasa biasa { r 0 ∗ 1 ∗ A } menghasilkan bahasa CF:L(M) {r0∗1∗A}
Tetapi dengan aplikasi sederhana dari Ogden's Lemma untuk CFL kita dapat membuktikan bahwa : cukup pilih s yang cukup panjang ∈ L Y dan tandai semua 0 s; setidaknya satu nol dapat dipompa dan berapapun jumlah 1 s dalam string pemompaan, pertumbuhan eksponensial 2 n mengarah ke string ∉ L Y ).LY∉CFL s∈LY 0 1s 2n ∉LY
Jadi bukan Gratis Konteks .L(M)
... sekarang saya bertanya-tanya apakah ini jawaban "reinventing the wheel" yang lain, atau ini adalah hasil (kecil) yang baru.
sumber
Dalam jawaban ini diasumsikan bahwa mesin Turing memiliki kaset infinite dua arah. Klaim tidak berlaku untuk rekaman tak terbatas satu arah.
Pertama-tama, saya mendefinisikan kelas bahasa sebagai kelas semua bahasa yang dapat dipilih oleh mesin Turing satu-pita dengan 3 status ( C 3 didefinisikan sebagai kelas bahasa yang dikenali oleh mesin Turing satu-tape dengan 3 negara). Saya memperkenalkan kelas C ′ 3 karena dalam jawaban asli saya, saya secara tidak sadar menukar kelas C 3 dan C ′ 3 (saya hanya mempertimbangkan kelas C ′ 3 ).C′3 C3 C′3 C3 C′3 C′3
Jawaban ini lebih melengkapi jawaban @MarzioDeBiasi. Dia menunjukkan bahwa kelas dan C ' 3 tidak terkandung dalam CFL dan dengan demikian mengandung bahasa cukup menarik. Namun, seperti yang akan saya tunjukkan dalam posting ini, setiap bahasa L dalam C ′ 3 memiliki properti yang diset { 1 n ; n ∈ N ∖ { 0 } } adalah baik dalam L atau yang pelengkap L C . Jadi C ′ 3C3 C′3 L C′3 {1n;n∈N∖{0}} L LC C′3 juga sangat membatasi, misalnya. itu hanya berisi bahasa unary sepele , { ε } , { 1 n ; n ∈ N } dan { 1 n ; n ∈ N ∖ { 0 } } . Kelas C 3 berisi sedikit lebih banyak bahasa unary. Namun, ia berpendapat bahwa jika L ∈ C 3 dan 1 n ∈ L untuk n ≥ 1 , maka 1{} {ε} {1n;n∈N} {1n;n∈N∖{0}} C3 L∈C3 1n∈L n≥1 untuk semua m ≥ n . 1m∈L m≥n Akibat wajar sederhana adalah bahwa tidak semua bahasa reguler berada di atau di C ′ 3 . Juga bahasa{1}tidak dalam C 3 atau dalam C ′ 3 .C3 C′3 {1} C3 C′3
Untuk klaim (dalam huruf tebal) tentang , cukup membuktikan bahwa mesin Turing satu-pita M dengan 3 status yang selalu berhenti menerima atau menolak semua string dari { 1 n ; n ∈ N ∖ { 0 } } . Misalkan string dari bentuk 1 n , n ∈ N ∖ { 0 } , diberikan kepada M . Ada tiga kasus:C′3 M {1n;n∈N∖{0}} 1n n∈N∖{0} M
1) Ketika membaca 1, ia menerima atau menolak.M
2) Ketika membaca 1, ia menggerakkan kepala ke kiri.M Jika kita ingin menghentikan input ini, ia harus menerima, menolak atau bergerak ke kanan pada simbol kosong. Karenanya, ia tidak pernah mengunjungi sel di sebelah kanan sel awal rekaman itu. Jika mau, itu akan berjalan selamanya pada input 1.M
3) Ketika membaca 1, ia menggerakkan kepala ke kanan.M Maka setelah langkah, isi rekaman adalah A n di mana A adalah beberapa simbol dari alfabet tape dan kepala M adalah pada simbol paling kiri kosong di sebelah kanan A terakhir . Jika kita ingin M menghentikan input ini, ia harus menerima, menolak atau bergerak ke kiri pada simbol kosong. Seperti dalam kasus 2), kepala M sekarang tidak akan pernah mengunjungi sel langsung di sebelah kiri paling kanan A . Jika ya, maka M akan berjalan selamanya pada input 1.n An A M A M M A M
Jelas bahwa dalam ketiga kasus menerima semua string dari set { 1 n ; n ∈ N ∖ { 0 } } atau menolak semuanya.M {1n;n∈N∖{0}}
Bukti klaim (dicetak tebal) tentang mengikuti baris yang sama seperti di atas. Kami mengambil mesin Turing satu-pita 3-negara M yang menerima string 1 n untuk beberapa n ≥ 1 . Misalkan M diberi input 1 m untuk m ≥ n . Kita harus membuktikan bahwa M menerima input ini. Kami memiliki 3 kasus:C3 M 1n n≥1 M 1m m≥n M
1) Ketika membaca 1, ia menerima.M
2) Ketika membaca 1, ia menggerakkan kepala ke kiri.M Karena menerima input 1 n , ia harus menerima atau bergerak ke kanan pada simbol kosong. Oleh karena itu, tidak pernah kunjungan yang n th sel di sebelah kanan sel awal. Jika mau, itu akan berjalan selamanya pada input 1 n .M 1n n 1n
3) Ketika membaca 1, ia menggerakkan kepala ke kanan.M Oleh karena itu setelah langkah , isi rekaman adalah A m di mana A adalah beberapa simbol dari alfabet tape dan kepala M adalah pada simbol paling kiri kosong di sebelah kanan A terakhir . Karena M menerima input 1 n , ia harus menerima atau bergerak ke kiri pada simbol kosong. Seperti dalam kasus 2), kepala M sekarang tidak akan pernah mengunjungi sel ke- n di sebelah kiri A paling kanan . Ini karena pada input 1 n , Mm Am A M A M 1n M n A 1n M tidak mengunjungi sel langsung di sebelah kiri sel awal, karena mengandung simbol kosong dan jika akan membacanya, itu akan berjalan selamanya.
Jelas bahwa dalam ketiga kasus menerima semua string dari set { 1 m ; m ≥ n } .M {1m;m≥n}
sumber