Satu pernyataan teorema Rice diberikan pada halaman 35 dari "Kompleksitas Komputasi: Pendekatan Modern" (Arora-Barak):
Fungsi parsial dari hingga adalah fungsi yang tidak harus didefinisikan pada semua inputnya. Kita mengatakan bahwa TM menghitung fungsi parsial jika untuk setiap di mana didefinisikan, dan untuk setiap di mana tidak didefinisikan masuk ke loop tak terbatas ketika dieksekusi pada input . Jika adalah satu set fungsi parsial, kita mendefinisikan menjadi fungsi boolean yang di masukan output 1 IFF Toedjoe menghitung fungsi parsial di . Teorema Rice mengatakan bahwa untuk setiap nontrivial , fungsi 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.
Apa yang saya lewatkan tentang hubungan antara bahasa ini dan teorema Rice?
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.nn n
sumber
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 , nS M,M′ x,n
sumber
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.LL L
sumber