Dapat mesin Turing memutuskan bahasa

11

Biarkan Apakah ada mesin Turing R yang memutuskan (maksud saya tidak mengenali) bahasa L ?

L={MM is a Turing Machine and L(M)=}.

L

Tampaknya teknik yang sama digunakan untuk menunjukkan bahwa juga berfungsi di sini.{AA is a DFA and L(A)=}

msn
sumber
1
Apa yang sudah kamu coba? Misalnya, dapatkah Anda memikirkan DFA untuk bahasa kosong? Ingat bahwa DFA dapat dianggap sebagai TM yang sangat terbatas.
Shaull
1
Tentu. Dari keadaan awal, pindah ke keadaan "hentikan penolakan", terlepas dari apa yang ada di rekaman input. Ini secara eksplisit menerima setiap string dalam bahasa dan menolak setiap string yang bukan dalam bahasa.
Patrick87
8
@mahdisaeedi: Yang terakhir adalah pertanyaan yang sama sekali berbeda! Anda bertanya apakah dapat memutuskan apakah TM yang diberikan mengenali bahasa kosong - dan jawabannya tidak, lihat Teorema Rice
Shaull

Jawaban:

9

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 .q0aq1q1aq2q2aaq1

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.aq1q2a

Kami sekarang menambahkan transisi dari yang ketika membaca b pergi ke keadaan menerima dan berhenti.q2b

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?q1q2

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.

Shaull
sumber
Fungsi transisi TM adalah seperti ini: F (Q T) -> (Q T * {L, R}). Bisakah Anda menulis fungsi untuk mengabaikan input?
msn
Iya. Dalam hal ini, , F ( q 1 , a ) = F ( q 1 , b ) = ( q 2 , a , L ) , F ( q 2 , a ) = (F(q0,a)=F(q0,b)=(q1,a,R)F(q1,a)=F(q1,b)=(q2,a,L) , dan F ( q 2 , b ) = ( q a c c , a , L ) (tetapi yang terakhir tidak pernah tercapai). F(q2,a)=(q1,a,R)F(q2,b)=(qacc,a,L)
Shaull
9

tidak dapat dipastikan karenaTeorema Padi, yang menyatakan bahwa sifat non-sepele dari fungsi parsial tidak dapat ditentukan.A

  1. Ada TM yang tidak menerima string apa pun. (Yang langsung menuju ke negara tolak).
  2. Ada TM yang menerima setiap string. (Yang langsung menuju ke negara penerima).

Ini berarti bahwa fungsi-fungsi yang dikomputasi oleh elemen-elemen memiliki sifat non trivial. Oleh karena itu A tidak dapat diputuskan.AA

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.EE

(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 .)EA=E

Saya.
sumber
6

Petunjuk lain: Coba kurangi masalah penghentian ke .L

(Petunjuk aslinya adalah menggunakan teorema Rice, tetapi dalam kasus ini bukti langsung juga cukup sederhana.)

Yuval Filmus
sumber
@Yuval_Filmus Apakah benar mengatakan bahwa bahasa ini bahkan Turing tidak dapat dikenali?
sashas
1
Bagaimana menurut anda? Bisakah Anda membuktikan klaim Anda? Jika demikian, tidak perlu mengajukan pertanyaan.
Yuval Filmus
1

Lemma 1 : Jika L tidak dapat ditentukan maka komplemen L.

Kita tahu bahwa masalah penghentian, HTM tidak dapat diputuskan. Oleh karena itu, menurut Lemma 1 komplemen dari masalah penghentian, HTMc juga tidak dapat ditentukan.

HTM ={M,x M is a TM and M halts on input x }

HTMc ={M,x M is a TM and M loops on input x }

ETM ={M M is a TM and L(M) = }

Asumsikan bahwa ETM dapat dipilih. Kami akan mengurangi HTMc untuk ETM - dengan kata lain kita akan menunjukkan bagaimana untuk membangun Turing Machine MHTMc yang memutuskan HTMc menggunakan TM, METM yang memutuskan ETM . Ini memberi kita kontradiksi, karena kita tahu bahwa HTMc tidak dapat diputuskan, dan karenanya MHTMctidak bisa ada Kata "mengurangi" berarti memecahkan masalah yang diberikan dengan mengubahnya menjadi masalah lain yang sudah kita ketahui untuk dipecahkan. Jadi, Mesin Turing untuk HTMc dapat dibangun sebagai berikut:

MHTMc = “masukanM,x

1. Buat kode untuk TM, M1 yang melakukan hal berikut:

M1 = "pada inputw

1. Simulasikan M pada x .

2. Terima jika M berhenti. "

2. Jalankan METM di M1

3. Terima jika METM menerima, tolak sebaliknya. "

Sangat penting untuk memahami bahwa TM M1 tidak pernah benar-benar disimulasikan - simulasi semacam itu bisa menjadi loop tak terbatas. Yang kami lakukan hanyalah membuat kode untuk M1 .

M1 dibangun sehingga pada setiap masukanw diberikan untuk itu, itu akan mensimulasikanM dengan masukanx . M dapat menghentikan atau mengulang padax dan karenanya ada dua kasus:

1. M1 menerima semua input w jika M berhenti di x . METM akan menolak M1 sebagai L(M1) .

2. Jika M loop pada x , M1 akan juga loop untuk setiap masukan w diberikan untuk itu. Lagi pula, karena METM adalah aPenentu akan menolak dan berhenti pada input M1 sebagai L(M1)= .

Correctness : SejakMETM selalu perhentian (oleh asumsi kami),MHTMc juga selalu perhentian. MHTMc menerima jikaMETM menerima, yaitu jikaL(M1)= yang terjadi jikaM loop padax .
MHTMc menolak jikaMETM menolak yaituL(M1) yang terjadi jikaM berhenti padax . Dengan demikian,MHTMc memutuskanHTMc yang merupakan kontradiksi karenaHTMc tidak dapat ditentukan.


Nb:

Biarkan R menjadi reduksi dari HTMc untuk ETM .

Pengurangan itu memberi:

i) M,xHTMcR(M,x)ETM

M loop pada input x IFF bahasa diakui oleh R(M,x) menerima apa-apa

ii) M,xHTMcR(M,x)ETM

M perhentian pada input x IFF bahasa diakui oleh R(M,x) menerima sesuatu

Nabhan Abdulla
sumber
0

Bukti oleh bertentangan , (yang kita tahu adalah diputuskan).ATM={M,wM is a Turing Machine which accepts w}

Asumsikan keberadaan , TM yang memutuskan L RTML

Gunakan kemudian dapat menggunakan dalam konstruksi TM S T M , yang merupakan penentu untuk A T MRTMSTMATM

"Pada masukanM , w , di mana M adalah pengkodean TM dan w adalah string:STM=definitionM,wMw

  1. 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 .MwMM1wwwM1MwM

  2. Run dengan masukan M 1 , w RTMM1,w

  3. Output kebalikan dari keluaran s."RTM

LATM

Pétur Ingi Egilsson
sumber
RTMwRTMM1,w
-2

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.

Manu Thakur
sumber
Sayangnya, argumen intuitif ini bukan merupakan bukti. Mungkin ada cara berbeda untuk memutuskan E, dan ini tidak dikesampingkan oleh argumen Anda.
Yuval Filmus
ya benar, tetapi cara saya menjelaskan dapat membuat seseorang mengerti dalam bahasa awam.
Manu Thakur
Situs ini bukan untuk orang awam. Ini untuk ilmu komputer teoretis tingkat akademik.
Yuval Filmus
2
Yang telah Anda lakukan adalah memberikan argumen intuitif tentang mengapa teknik komputasi tertentu tampaknya gagal untuk menyelesaikan masalah ini. Tetapi pertanyaannya adalah meminta bukti bahwa tidak ada teknik yang mungkin berhasil.
David Richerby