Biarkan Apakah ada mesin Turing R yang memutuskan (maksud saya tidak mengenali) bahasa L ∅ ?
Tampaknya teknik yang sama digunakan untuk menunjukkan bahwa juga berfungsi di sini.
Biarkan Apakah ada mesin Turing R yang memutuskan (maksud saya tidak mengenali) bahasa L ∅ ?
Tampaknya teknik yang sama digunakan untuk menunjukkan bahwa juga berfungsi di sini.
Jawaban:
Dengan menandai, Anda mungkin berarti analisis keterjangkauan - mencari jalur dari kondisi awal ke kondisi penerimaan. Memang, bahasa DFA kosong jika tidak ada jalan seperti itu.
Mari kita mulai dengan contoh mengapa ini gagal dalam TM. Pertimbangkan TM itu, di , mengabaikan masukan itu, tetapi menulis sebuah rekaman itu, bergerak kepala kanan dan pergi ke negara q 1 , maka dalam q 1 lagi mengabaikan input, menulis sebuah , bergerak kepala kiri dan pergi ke q 2 . Di q 2 , jika berbunyi a , maka ia menulis a , menggerakkan kepala ke kanan dan kembali ke q 1 .
Artinya, mesin hanya menulis dan berganti-ganti antara dua status ( q 1 dan q 2 ) dan selalu memiliki dua huruf ' a ' yang berdekatan pada kaset.
Kami sekarang menambahkan transisi dari yang ketika membaca b pergi ke keadaan menerima dan berhenti.
Bahasa mesin ini kosong. Memang, proses selalu macet di loop , dan tidak akan pernah sampai ke status penerima. Namun, ada jalan negara menuju negara penerima. Jadi apa yang salah?
Secara intuitif, "status" sebuah TM tidak cukup informatif untuk menggambarkan kelanjutan dari proses tersebut. Untuk mendapatkan semua informasi, Anda memerlukan konfigurasi TM, yang mencakup keadaan, posisi kepala, dan isi rekaman itu. Jika Anda menemukan jalur konfigurasi (yang disebut run ) ke konfigurasi penerima, maka memang bahasanya tidak kosong, dan itu adalah kondisi iff.
Masalah dengan menggunakan analisis reachability pada grafik konfigurasi, adalah mungkin tak terhingga. Inilah mengapa memutuskan kekosongan bahasa tidak dapat diputuskan.
Ini juga mengapa bahasa non-kekosongan dapat dikenali - Anda dapat melakukan BFS pada grafik konfigurasi tak terbatas. Jika ada jalan ke negara penerima, Anda akan menemukannya pada akhirnya. Namun, jika tidak ada, maka Anda mungkin terjebak dalam pencarian yang tidak terbatas.
tidak dapat dipastikan karenaTeorema Padi, yang menyatakan bahwa sifat non-sepele dari fungsi parsial tidak dapat ditentukan.
Ini berarti bahwa fungsi-fungsi yang dikomputasi oleh elemen-elemen memiliki sifat non trivial. Oleh karena itu A tidak dapat diputuskan.
dapat ditentukan hanya dengan asumsi bahwa DFA dikodekan dengan cara khusus seperti tabel transisi negara atau lainnya. (Kami tidak dapat memutuskan apakah TM hanya menerima bahasa biasa, karena Teorema Rice!). Dalam hal ini Rice Teorema tidak berlaku karena pengkodean tertentu dari suatu unsur diperlukan untuk memutuskan E . Jadi kami tidak hanya memutuskan fungsi parsial.
(Artinya jika masalahnya adalah, memutuskan apakah TM tertentu adalah DFA - atau DFA yang dapat dihitung - dan bahasa yang diterima olehnya kosong, akan diputuskan melalui Teorema Rice. Perhatikan bahwa dalam hal ini A = E .)
Petunjuk lain: Coba kurangi masalah penghentian ke .
(Petunjuk aslinya adalah menggunakan teorema Rice, tetapi dalam kasus ini bukti langsung juga cukup sederhana.)
Lemma 1 : Jika L tidak dapat ditentukan maka komplemen L.
Kita tahu bahwa masalah penghentian, tidak dapat diputuskan. Oleh karena itu, menurut Lemma 1 komplemen dari masalah penghentian, juga tidak dapat ditentukan.
=
=
=
Asumsikan bahwa dapat dipilih. Kami akan mengurangi untuk - dengan kata lain kita akan menunjukkan bagaimana untuk membangun Turing Machine yang memutuskan menggunakan TM, yang memutuskan . Ini memberi kita kontradiksi, karena kita tahu bahwa tidak dapat diputuskan, dan karenanya tidak bisa ada Kata "mengurangi" berarti memecahkan masalah yang diberikan dengan mengubahnya menjadi masalah lain yang sudah kita ketahui untuk dipecahkan. Jadi, Mesin Turing untuk dapat dibangun sebagai berikut:
= “masukan
1. Buat kode untuk TM, yang melakukan hal berikut:
= "pada input
1. Simulasikan pada .
2. Terima jika berhenti. "
2. Jalankan di
3. Terima jika menerima, tolak sebaliknya. "
Sangat penting untuk memahami bahwa TM tidak pernah benar-benar disimulasikan - simulasi semacam itu bisa menjadi loop tak terbatas. Yang kami lakukan hanyalah membuat kode untuk .
dibangun sehingga pada setiap masukan diberikan untuk itu, itu akan mensimulasikan dengan masukan . dapat menghentikan atau mengulang pada dan karenanya ada dua kasus:
1. menerima semua input jika berhenti di . akan menolak sebagai .
2. Jika loop pada , akan juga loop untuk setiap masukan diberikan untuk itu. Lagi pula, karena adalah aPenentu akan menolak dan berhenti pada input sebagai .
: Sejak selalu perhentian (oleh asumsi kami), juga selalu perhentian. menerima jika menerima, yaitu jika yang terjadi jika loop pada .
menolak jika menolak yaitu yang terjadi jika berhenti pada . Dengan demikian, memutuskan yang merupakan kontradiksi karena tidak dapat ditentukan.
Biarkan R menjadi reduksi dari untuk .
Pengurangan itu memberi:
i)
M loop pada input x IFF bahasa diakui oleh menerima apa-apa
ii)
M perhentian pada input x IFF bahasa diakui oleh menerima sesuatu
Bukti oleh bertentangan , (yang kita tahu adalah diputuskan).
Asumsikan keberadaan , TM yang memutuskan L ∅
Gunakan kemudian dapat menggunakan dalam konstruksi TM S T M , yang merupakan penentu untuk A T M
"Pada masukan ⟨ M , w ⟩ , di mana M adalah pengkodean TM dan w adalah string:
Ubah , dengan mempertimbangkan input w , sehingga M baru (sebut saja M 1 ) menolak semua input yang tidak sama dengan w , di mana w dibangun ke dalam deskripsi. Jika input sama dengan w , maka M 1 menjalankan M pada w dan menghasilkan keluaran M apa pun .
Run dengan masukan ⟨ M 1 , w ⟩
Output kebalikan dari keluaran s."
E = {| M adalah TM dan L (M) = Φ}. Apakah E Turing dapat dikenali?
E adalah bahasa, untuk menerima bahasa E kami membangun Mesin Turing. Misalkan kita membuat Turing EM untuk bahasa E.
EM akan diberikan sebagai input pengkodean dari mesin Turing lain, Jika mesin yang dimasukkan M menerima bahasa kosong maka itu akan menjadi anggota bahasa E, kalau tidak itu bukan anggota bahasa.
Misalkan kita memiliki Mesin Turing M, kita perlu memeriksa apakah ia menerima bahasa kosong. Mesin Turing EM memiliki M dan string eps, a, b, aa, bb, ..... EM akan memeriksa apakah M dapat mencapai keadaan akhir untuk setidaknya pada satu input, dan jika ia menerima setidaknya satu input saja akan dibuang dan tidak termasuk dalam bahasa E. Sekarang, lihat kemungkinan TM M masuk ke loop sehingga M akan terus berjalan dan kami tidak bisa memutuskan apakah itu dapat menerima atau tidak dapat menerima apa pun. Karenanya, bahasa yang diberikan E ini BUKAN RE.
PS: Saya pikir pelengkap Bahasa E yang diberikan ini akan menjadi RE.