Mengapa kita tidak dapat membalik jawaban NDTM secara efisien?

11

Saya membaca beberapa kali bahwa tidak mungkin membalik jawaban NDTM secara efisien. Namun, saya tidak mengerti mengapa. Misalnya, mengingat NDTM yang berjalan di , teks ini (bagian 3.3) menyatakan bahwa tidak jelas bagaimana NDTM dapat menentukan dalam waktu cara membalikkan jawabanMO(n)TO(n100)M

Masalah saya adalah sebagai berikut: NDTM menghasilkan jika ada urutan pilihan non-deterministik yang mengarah ke negara penerima. Selain itu, ada NDTM universal yang dapat mensimulasikan setiap NDTM dengan hanya overhead kecil (logaritmik). Jadi mengapa kita tidak dapat membuat T sebagai berikut: Pertama, simulasikan M dengan NDTM universal yang seharusnya dimungkinkan dalam waktu . Kemudian output 1 - jawaban M. Ini berarti bahwa kita dapat membalikkan jawaban setiap NDTM linear dalam waktu .1NUO(nlogn)HAI(ncatatann)

pengguna1494080
sumber
NDTM tidak "mengeluarkan" apa pun. Sesuaikan model mental Anda tentang nondeterminisme.
Raphael

Jawaban:

15

Mesin Turing nondeterministic menerima jika setidaknya satu jalur menerima; itu hanya menolak jika semua jalur menolak. Asimetri ini membuatnya sulit untuk "membalik jawaban".

Misalnya, Anda memiliki mesin Turing nondeterministic  yang memiliki dua jalur untuk input  : satu menerima, yang menolak lainnya.  memiliki setidaknya satu jalur penerimaan untuk  , jadi ia menerima. Misalkan kita ingin menghasilkan mesin yang menerima input persis yang  ditolak olehUpaya pertama yang jelas adalah untuk mengambil  dan membuat negara penerima menolak, dan negara menolak menerima.  memiliki satu jalur penerimaan untuk  dan satu jalur penolakan; mesin baru ini  memiliki satu jalur penolakan dan satu jalur penerima. Jadi masih menerima  , yang seharusnya ditolak!M.wM.wM.M.M.wM.w

Mesin nondeterministic tidak dapat melihat semua jalurnya secara bersamaan dan mengambil tindakan berdasarkan apa yang dilakukan semua jalur itu. Jika Anda suka, Anda bisa menganggapnya sebagai bentuk paralelisme di mana utas dilarang untuk saling berkomunikasi. Ketika semua utas telah selesai, program harus mengajukan sendiri pertanyaan berikut: "Apakah setidaknya salah satu utas saya terima?" Jika jawabannya ya, secara hukum wajib untuk menerima; jika jawabannya tidak, secara hukum wajib menolak. Itu tidak bisa melakukan hal lain.

Ketika Anda mensimulasikan mesin nondeterministic  menggunakan yang lain, , setiap jalur  mensimulasikan satu jalur  dan hanya melihat jalan itu. Tidak bisa mengatakan, "Jika semua jalur lain ditolak, saya akan menerima" karena tidak bisa melihat jalur lain; ia hanya bisa melihat dirinya sendiri. Jadi yang bisa dikatakan adalah hal-hal seperti, "Jika jalur yang saya simulasikan diterima, saya akan menolak" atau "Jika jalur yang saya simulasikan diterima, saya akan menerima juga". Kemudian, pada akhir perhitungan, mesin harus mengatakan, "Jika ada jalur saya yang diterima, saya akan menerimanya juga," yang mengarah ke masalah yang saya jelaskan di atas. Untuk membalikkan perilaku , setiap jalurM.M.M.M.M.M.perlu mengatakan, "Jika jalur yang saya simulasikan diterima, saya tolak; selain itu, saya terima" dan, di akhir perhitungan, mesin perlu mengatakan, "Jika semua jalur saya diterima, saya terima; kalau tidak, saya tolak . " Hal ini karena, jika semua jalur simulator ini diterima, yang berarti semua jalur 's ditolak, sehingga ditolak, sehingga kebutuhan simulator untuk menerima. Tetapi simulator ini bukan mesin Turing nondeterministik yang valid karena tidak menggunakan kriteria penerimaan yang diamanatkan secara hukum. Itu tidak bisa.M.M.

Satu-satunya cara kita tahu untuk mengetahui apakah mesin nondeterministic menolak inputnya adalah dengan mencoba setiap jalur yang mungkin dan memverifikasi bahwa mereka semua menolak. Lagi pula, jika salah satu dari mereka menerima, mesin akan menerima input. Tetapi mencoba setiap jalur yang mungkin secara eksponensial lebih lambat daripada mencoba hanya satu.

David Richerby
sumber
2

Masalahnya adalah bahwa NDTM secara inheren non-simetris: waktu berarti mereka memiliki langkah-langkah O ( n ) untuk menebak jalur penerimaan jika ada, dan akan menolak sebaliknya (jika tidak ada jalur penerima ada).HAI(n)HAI(n)

Masalahnya adalah bahwa jika mesin Anda benar-benar di O ( n l o g ( n ) ) , itu berarti bahwa menebak di n l o g ( n ) langkah saksi yang M menolak input. Ini mungkin tidak mungkin dilakukan, karena tidak ada saksi penolakan M , hanya saksi penerimaan. Penolakan adalah tidak adanya saksi, sehingga tidak mudah untuk membuktikan penolakan dalam waktu singkat.NUHAI(nlHaig(n))nlHaig(n)M.M.

Denis
sumber
-3

=?=?

vzn
sumber
1
Sebenarnya, dia menanyakan sesuatu yang mirip dengan co-NP = NP : sangat mungkin P dan NP berbeda tetapi NDTM dapat dinegasikan secara efisien.
David Richerby