Masalah penghentian yang dibatasi dapat dipilih. Mengapa ini tidak bertentangan dengan teorema Rice?

9

Satu pernyataan teorema Rice diberikan pada halaman 35 dari "Kompleksitas Komputasi: Pendekatan Modern" (Arora-Barak):

Fungsi parsial dari {0,1} hingga {0,1} adalah fungsi yang tidak harus didefinisikan pada semua inputnya. Kita mengatakan bahwa TM M menghitung fungsi parsial f jika untuk setiap x di mana f didefinisikan, M(x)=f(x) dan untuk setiap x di mana f tidak didefinisikan M masuk ke loop tak terbatas ketika dieksekusi pada input x . Jika Sadalah satu set fungsi parsial, kita mendefinisikan fS menjadi fungsi boolean yang di masukan α output 1 IFF Mα Toedjoe menghitung fungsi parsial di S . Teorema Rice mengatakan bahwa untuk setiap nontrivial S, fungsi fS tidak dapat dihitung.

Wikipedia menyatakan bahwa bahasa mesin turing waktu terbatas sudah EKSPTIM lengkap. Saya berharap bahasa ini terlihat seperti menerima x kurang dari n langkah } . Jadi biarkan M menjadi beberapa DTM yang memutuskan bahasa terikat ini dalam waktu eksponensial. Sepertinya DTM ini memutuskan beberapa properti untuk SEMUA mesin turing, jadi intuisi saya mengatakan bahwa teorema Rice menghalangi keputusan semacam itu. Tapi jelas M menghitung fungsi total.{(α,x,n):Mαxn}MM

Apa yang saya lewatkan tentang hubungan antara bahasa ini dan teorema Rice?

ttbo
sumber

Jawaban:

13

Bahasa

{(α,x,n):Mα accepts x in less than n steps}

bukan kumpulan indeks, itu bukan dari formulir

LP={MM is TM, fP. fM=f}

untuk beberapa set (parsial rekursif) fungsi , dengan fungsi (parsial) dihitung dengan TM . Teorema Rice membuat pernyataan hanya sekitar seperti ; banyak gambar ulang "intuitif" tidak membantu. Lihat juga di sini .f M M L PPfMMLP

Perhatikan bahwa ini bukan hanya detail teknis di sini. Teorema Rice tidak berlaku untuk

L={MM accepts M in less than M steps} ,

antara. Bisakah kamu melihat mengapa?

Untuk setiap mesin di Anda dapat dengan mudah membangun banyak mesin yang menerima bahasa yang sama tetapi berjalan selama lebih dari langkah, dan dengan demikian tidak dalam . Jadi, bukan kumpulan indeks.M L LLMLL

L adalah decidable, menggunakan argumen yang sama dengan bahasa asli yang kita diskusikan.

Raphael
sumber
+1. Terutama untuk hyperlink yang mungkin berlaku di sini juga. Namun, saya mencoba menyumbangkan analisis "intuitif" sebagai jawaban alternatif.
Jirka Hanika
6

Teorema Padi mengatakan bahwa Anda tidak dapat memberi tahu apa pun tentang perilaku utama suatu program ketika dibiarkan berjalan hingga tak terbatas - tidak peduli bagaimana Anda mengklasifikasikan program, akan ada dua program yang akan menyatu dengan perilaku utama yang sama (fungsi yang dikomputasi) ) meskipun Anda mengklasifikasikannya secara berbeda.

Tetapi membiarkan program berjalan hingga tak terbatas sangat penting. Untuk mengetahui apa yang mereka lakukan di langkah pertama , Anda bisa mensimulasikannya untuk langkah pertama dan kemudian mengakhiri memberikan vonis Anda tentang bagaimana program berperilaku. Simulasi serupa hingga tak terbatas tidak berfungsi karena jika program simulasi tidak pernah berhenti pada input yang disimulasikan, classifier Anda akan berbeda juga, alih-alih memberikan klasifikasi.nnn

Jirka Hanika
sumber
5

Pertama, kata-kata dalam bahasa Anda bukan penyandian mesin, kata-kata itu mengandung lebih banyak informasi, sehingga Anda tidak dapat langsung menerapkan teorema Padi. Yang mengatakan, teorema Rice berbicara tentang ketidakmungkinan penalaran tentang fungsi yang dihitung oleh mesin Turing (yaitu, apakah itu terletak pada beberapa set ). Ini tidak terjadi di sini, karena seperti yang disebutkan Raphael, ada dua mesin yang menghitung fungsi yang sama, tetapi satu terletak pada bahasa Anda dan yang lainnya tidak (di sini saya mengabaikan masalah sintaksis, dan melupakan fakta bahwa adalah bagian dari input). Intinya adalah bahwa properti yang Anda lihat di sini adalah mekanis, dan bukan semantik (mesin dapat menghitung fungsi yang sama, tetapi dengan cara yang berbeda).M , M x , nSM,Mx,n

Ariel
sumber
Argumen pertama adalah formalistik tetapi benar. Argumen kedua membingungkan saya (saya tidak yakin bahwa saya dapat mendefinisikan lokalitas / globalitas secara ketat; dan saya tidak tahu apa artinya menghitung fungsi "dari serangkaian fungsi").
Jirka Hanika
Argumen pertama memang hanya sintaksis, seperti yang disebutkan Raphael dalam jawabannya. Masalah lokal / global dimaksudkan untuk menunjukkan perbedaan antara alasan tentang hasil pada input tunggal vs semua input (saya tidak bermaksud dalam arti formal, itu mungkin berarti sesuatu yang lain dalam konteks yang berbeda). Komputasi fungsi dari himpunan hanya berarti bahwa Anda bertanya apakah fungsi dihitung dengan adalah di . SMαS
Ariel
Teorema Padi TIDAK mengharuskan seseorang untuk menjelaskan tentang perilaku mesin pada semua input. Misalnya, tidak mungkin untuk mengklasifikasikan program berdasarkan pada apakah mereka akan menerima ketika dijalankan pada input "5". Atau lebih tepatnya, Anda dapat mendefinisikan klasifikasi yang mengabaikan perilaku pada sebagian besar input, tetapi klasifikasi tersebut masih belum rekursif.
Jirka Hanika
Ini memang membingungkan, karena seseorang dapat mendefinisikan sebagai himpunan fungsi yang menghasilkan pada beberapa input tetap. Terima kasih telah mengemukakan masalah ini. 1S1
Ariel
3

Teorema Rice mengatakan bahwa, untuk setiap set nontrivial bahasa, set mesin Turing yang mengenali bahasa dalam  tidak dapat diputuskan. Wikipedia mengatakan bahwa bahasa tertentu dapat dipilih. Jadi tidak ada kontradiksi.LLL

David Richerby
sumber