Bisakah ditentukan jika bahasa L terletak di NP?

15

Diberi bahasa L yang didefinisikan oleh Turing Machine yang memutuskannya, apakah mungkin menentukan secara algoritmik apakah L terletak pada NP?

txwikinger
sumber
Retagged ke teori kompleksitas. Tidak yakin apa hubungannya dengan NP-Completeness.
Aryabhata
1
FWIW, meskipun ada suara di situs proposal, saya pikir pertanyaan ini lebih pada lingkup daripada yang di anjak justru karena pertanyaan tentang anjak akan dibahas dalam sebagian besar kursus kompleksitas intro, tetapi yang ini bahkan tidak dibahas di banyak tingkat pascasarjana kursus kompleksitas.
Joshua Grochow
1
Bukankah ini tercakup dalam kursus intro tentang komputasi sebagai aplikasi khas teorema Rice?
Moritz
3
Moritz - walaupun jawaban ya / tidak untuk pertanyaan ini dicakup oleh Teorema Rice, lihat jawaban saya di bawah ini untuk hasil yang lebih menarik. Mungkin, txwikinger, Anda harus mengubah pertanyaan menjadi "Apa kerumitan himpunan {i: L (M_i) dalam NP}?"?
Joshua Grochow
Saya akan kedua jawaban Joshua di sini. Jawabannya mungkin jelas ketika bahasa tersebut ditentukan oleh Mesin Turing, tetapi jawabannya adalah sama (dan mungkin tidak begitu jelas) jika kita membiarkan bahasa tersebut ditentukan dalam beberapa format sewenang-wenang.
Anand Kulkarni

Jawaban:

24

Tidak. Pertama, oleh Teorema Rice, ini adalah properti dari TM yang hanya bergantung pada bahasa yang mereka hitung, sehingga tidak dapat dihitung.

Tapi, lebih dari itu, diketahui bahwa indeks set (yaitu, himpunan TM yang bahasa komputasi di N P ) adalah Σ 0 3 -Lengkap ( Σ 0 3 di aritmatika hirarki computability, bukan hierarki polinomial).NPNPΣ30Σ30

Pertanyaan seperti ini pertama kali diselidiki oleh Hajek . Untuk lebih lanjut, lihat misalnya artikel ini oleh Ken Regan.

Beberapa nugget hebat dari koran Hajek:

  • Kumpulan indeks adalah Σ 0 3 -lengkap.PΣ30
  • adalah Π 0 2 -lengkap{i:PL(Mi)NPL(Mi)}Π20
  • Ada mesin Turing total (berhenti pada semua input) sedemikian rupa sehingga P L i = N P L i tetapi pernyataan " P L i = N P L i " adalah independen (di mana L i = L ( M i ) ) . Demikian pula untuk relativizations mana P N P .MiPLi=NPLiPLi=NPLiLi=L(Mi)PNP
Joshua Grochow
sumber
1
Di sini pertanyaannya tampaknya merupakan masalah keputusan yang dijanjikan (bahasa yang diberikan dijanjikan akan diputuskan oleh TM, tidak hanya diakui) sebagai lawan dari masalah keputusan total. Akankah Teorema Rice masih berlaku di sini? Ingat bahwa bukti dari Teorema Padi menggunakan keraguan untuk berhenti, jadi keraguan di sini sangat penting.
Zeyu
2
Dalam pertanyaan yang diajukan, bahasa L "diberikan oleh mesin yang memutuskannya." Jadi itu benar-benar: diberi mesin Turing M, dapatkah ditentukan jika L (M) dalam NP. Jika bahasa L tidak ditentukan oleh TM, tetapi hanya diberikan sebagai himpunan bagian dari bilangan asli, apa artinya memutuskan secara algoritmik jika L berada dalam NP? Secara khusus, bagaimana kita bisa menganggap L sebagai input ke suatu algoritma ketika L itu sendiri tidak diberikan oleh deskripsi yang terbatas?
Joshua Grochow
1
Ya saya tahu. Tetapi dalam Teorema Rice adalah mungkin bahwa TM tidak memutuskan suatu bahasa, yaitu, ia tidak menghitung fungsi total.
Zeyu
2
Ini adalah heuristik umum bahwa, mengingat properti semantik dari mesin Turing, seperti "M mendefinisikan bahasa NP", orang pertama-tama harus mencoba untuk mengekspresikan properti ini dalam logika tingkat pertama. Ini menempatkan properti di tingkat Hirarki Aritmatika; heuristiknya adalah bahwa properti biasanya lengkap untuk tingkat hierarki tersebut. Saya ingin bertanya apakah ada contoh tandingan untuk heuristik ini.
Andy Drucker
2
Menurunkan ke Hirarki Polinomial, hal-hal cenderung berperilaku demikian baik. Sebagai contoh, pertimbangkan properti "C adalah sirkuit Boolean dengan ukuran minimal (untuk fungsi yang dihitungnya)". Masalah ini NP-keras dan dapat ditempatkan di Hirarki Polinomial, tetapi terbuka apakah itu lengkap untuk tingkat di mana ia berada. (hasil seperti itu diketahui untuk beberapa kelas rangkaian terbatas, misalnya DNF; lihat survei 2 bagian "Kelengkapan dalam Hirarki Polinomial" oleh Schaefer dan Umans.)
Andy Drucker
5

Jawaban untuk pertanyaan literal Anda adalah tidak, seperti yang ditunjukkan Joshua Grochow.

Namun, seperti yang dinyatakan Holger, adalah mungkin untuk memeriksa dalam waktu linier apakah mesin Turing nondeterministic (NTM) "jam itu sendiri" dan berhenti setelah langkah n ^ k untuk beberapa konstanta k, melalui beberapa cara standar mensimulasikan jam (seperti kode di bawah ini). Seringkali ketika sebuah makalah atau buku akan menyarankan (secara tidak benar) bahwa adalah mungkin untuk menentukan apakah suatu NTM adalah waktu polinomial, inilah yang sesungguhnya mereka maksudkan. Mungkin ini sebabnya Anda mengajukan pertanyaan? (Saya memiliki pertanyaan yang sama ketika saya pertama kali mempelajari teori kompleksitas dan di suatu tempat melihat pernyataan bahwa adalah mungkin untuk memeriksa apakah TM adalah pol waktu). Pertanyaan sebenarnya adalah mengapa orang mungkin ingin melakukan ini, yang saya bahas di bawah setelah menjelaskan bagaimana .

Ada banyak cara untuk menambahkan fitur jam seperti itu. Sebagai contoh, bayangkan pada input x panjang n, secara bergantian mengeksekusi satu pernyataan dari "algoritma primer" yang di-clock, dan kemudian satu pernyataan dari algoritma berikut ini, yang diakhiri dengan (sesuatu yang dekat dengan) langkah-langkah n ^ k:

untuk i_1 = 1 ke n
  untuk i_2 = 1 ke n
...
        untuk i_k = 1 ke n
          tanpa op;
kembali;

Jika kode di atas kembali sebelum algoritma utama berhenti, maka hentikan seluruh perhitungan (katakanlah, dengan penolakan).

Algoritma yang memutuskan apakah suatu NTM dalam bentuk ini, jika ditafsirkan sebagai upaya algoritma untuk memutuskan apakah inputnya adalah NTM waktu-poli, akan melaporkan beberapa negatif palsu: beberapa NTM dijamin akan berhenti dalam waktu polinomial, meskipun mereka tidak bergantian menjalankan satu pernyataan dari suatu algoritma dengan satu pernyataan dari jam seperti kode di atas (karenanya akan ditolak meskipun menjadi waktu-poli).

Tetapi tidak ada positif palsu. Jika NTM lulus tes, maka pasti berhenti dalam waktu polinomial, maka itu mendefinisikan beberapa bahasa NP. Namun, mungkin perilaku algoritma primer yang mendasarinya diubah, jika jam kadang-kadang habis sebelum algoritma primer berhenti, menyebabkan perhitungan ditolak meskipun algoritma utama mungkin telah diterima jika diberi waktu yang cukup untuk menyelesaikannya. Oleh karena itu bahasa yang diputuskan mungkin berbeda dari algoritma utama. Tapi, dan ini adalah kunci, jika algoritma utama yang dieksekusi sebenarnya adalah algoritma polinomial-waktu yang berjalan dalam waktu p (n), dan jika konstanta k dalam jam cukup besar sehingga n ^ k> p (n), maka algoritma utama akan selalu berhenti sebelum jam habis. Dalam hal ini, jawaban dari algoritma primer tidak diubah, sehingga algoritma primer dan simulasi clock NTM karenanya memutuskan bahasa NP yang sama.

Mengapa ini penting? Ini berarti bahwa adalah mungkin untuk "menghitung semua bahasa NP" (yang seperti yang saya katakan dalam literatur sering tidak akurat dinyatakan sebagai "memutuskan apakah NTM yang diberikan adalah waktu-poli" atau "menyebutkan semua NTM waktu-poli"). Lebih tepatnya, dimungkinkan untuk menyebutkan daftar tak terbatas M_1 M_2 NTM, ..., dengan properti yang

  1. Setiap M_k berjalan dalam waktu polinomial (misalnya, dengan melampirkan jam ^ k-time ke M_k), maka memutuskan beberapa bahasa NP, dan
  2. Setiap bahasa NP adalah bahasa yang ditentukan oleh beberapa M_i dalam daftar.

Apa yang tidak terjadi adalah bahwa setiap NTM polinomial-waktu ada dalam daftar. Tetapi setiap bahasa NP memiliki jumlah NTM yang tak terbatas yang mewakilinya. Dengan demikian, setiap bahasa NP dijamin memiliki setidaknya beberapa perwakilan NTM dalam daftar, khususnya semua NTM pada indeks k yang cukup besar yang n ^ k melebihi waktu berjalan M_k.

Ini berguna untuk melakukan trik seperti diagonalisasi, yang membutuhkan penghitungan algoritme yang tidak terbatas (atau tidak terbatas) dari semua bahasa NP. Dan tentu saja, seluruh diskusi ini berlaku untuk banyak jenis mesin selain NTM waktu-poli, seperti TM-waktu deterministik poli-waktu.

Dave Doty
sumber
3

Saya ingin berkomentar bahwa jawabannya adalah ya jika Anda menganggap inputnya sebagai mesin Turing yang memiliki jam, yaitu, ada jam yang memungkinkan mesin Turing melakukan hal(n)langkah-langkah dan kemudian menerima / menolak. Sekarang memeriksa apakah bahasa yang diputuskan oleh mesin dalam NP adalah properti sintaksis yang bermuara untuk memutuskan apakah mesin tersebut adalah mesin Turing nondeterministic yang terbentuk dengan baik dengan jam polinomial.

Holger
sumber
2
Itu hanya bekerja jika itu adalah TM nondeterministic clock . Jika saya hanya memberi Anda TM clock (bahkan yang berjalan dalam waktu eksponensial), masih belum diputuskan apakah bahasa yang diputuskannya adalah dalam NP. Namun, jika N_1, N_2, ... adalah enumerasi TM dengan jam eksponensial, himpunan {i: L (N_i) dalam NP} mungkin tidak lagi lengkap dengan Sigma_3, karena Anda sudah dijamin bahwa N_i adalah total, tetapi masih tentu tidak dapat dihitung.
Joshua Grochow