Mengapa NP di EXPTIME?

11

Apakah ada cara mudah untuk melihat mengapa NP ada di EXPTIME? Menurut saya apriori dapat dibayangkan bahwa mungkin ada masalah yang membutuhkan waktu super-eksponensial untuk diselesaikan, tetapi solusinya dapat diverifikasi dalam waktu polinomial.

Tparker
sumber
Bahkan, NP PSPACE.
Selamat Datang di Ilmu Komputer! Apa yang sudah kamu coba? Di mana Anda terjebak? Kami tidak ingin hanya melakukan pekerjaan (rumah) Anda untuk Anda; kami ingin Anda mendapatkan pemahaman. Namun, karena kami tidak tahu apa masalah mendasar Anda, jadi kami tidak dapat mulai membantu. Lihat di sini untuk diskusi yang relevan. Jika Anda tidak yakin bagaimana meningkatkan pertanyaan Anda, mengapa tidak bertanya-tanya dalam Obrolan Ilmu Komputer ? Anda mungkin juga ingin memeriksa pertanyaan referensi kami .
Raphael

Jawaban:

17

Setiap masalah dalam NP ada di EXPTIME karena Anda dapat menggunakan waktu eksponensial untuk mencoba semua sertifikat yang mungkin atau untuk menyebutkan semua kemungkinan jalur komputasi dari mesin nondeterministic.

Secara lebih formal, ada dua definisi utama NP . Salah satunya adalah bahwa bahasa  dalam NP jika ada hubungan  R sedemikian rupaLR

  • ada polinomial sedemikian rupa sehingga, untuk semua ( x , y ) R , | y | p ( | x | ) ,p(x,y)R|y|p(|x|)
  • diberikan string , kita dapat menentukan dalam waktu polinomial dalam | x # y | apakah ( x , y ) R , danx#y|x#y|(x,y)R
  • .L={x(x,y)R}

Jadi, jika kita memiliki waktu yang eksponensial dan kita ingin tahu apakah , kita bisa mencoba semua | Σ | p ( n ) nilai yang mungkin untuk ~ y dan lihat apakah ( x , y ) R untuk semua itu. Itu membutuhkan waktu 2 O ( p ( n ) ) , jadi L xL|Σ|p(n)y(x,y)R2O(p(n))LKECUALI .

Atau, kita dapat mendefinisikan NP sebagai set bahasa yang diputuskan oleh mesin Turing nondeterministic waktu polinomial. Dalam hal ini, anggaplah bahwa  ditentukan oleh mesin  M dalam waktu p ( n ) untuk beberapa polinomial  p , untuk input panjang  n . Kemudian M  membuat paling p ( | x | ) pilihan nondeterministic sementara menentukan apakah x L . Dengan memeriksa fungsi transisi M , kita dapat menemukan konstanta  k sedemikian rupa sehingga M  memiliki paling banyakLMp(n)pnMp(|x|)xLMkM  pilihan nondeterministic pada setiap langkah dari perhitungan (independen dari input), sehingga memiliki paling banyak k p ( | x | ) = 2 O ( p ( | x | ) ) urutan yang berbeda dari pilihan nondeterministic saat membaca masukan  x . Dengan waktu yang eksponensial, kami dapat mensimulasikan setiap kemungkinan ini satu demi satu dan melihat apakah ada di antara mereka yang menerimanya.kkp(|x|)=2O(p(|x|))x

David Richerby
sumber
2
Sebenarnya, polinomial dalam peluru kedua perlu dipilih sekali dan untuk semua, itu tidak dapat bergantung pada dan y . ;)xy
Martin Berger
Apa sebenarnya definisi EXPTIME? Saya ingat sebagai , tapi jawaban Anda tampaknya mengasumsikan O ( k p ( | x | ) ) . Tidak jelas bahwa polinomial tambahan dapat dimasukkan tanpa membuatnya menjadi kelas kompleksitas yang berbeda. O(k|x|)O(kp(|x|))
kasperd
3
O(kp(|x|))