Apa perbedaan antara "Keputusan" dan "Verifikasi" dalam teori kompleksitas?

16

Dalam Teori Komputasi Michael Sipser di halaman 270 ia menulis:

P = kelas bahasa yang keanggotaannya dapat diputuskan dengan cepat.
NP = kelas bahasa yang keanggotaannya dapat diverifikasi dengan cepat.

Apa perbedaan antara "memutuskan" dan "diverifikasi"?

BrotherJack
sumber
1
Ngomong-ngomong, saya yakin bahwa pices tanda kutip bukan definisi formal dari penggunaan P dan NP Sipser. Definisi (atau beberapa hasil pertama) harus menjawab pertanyaan.
Raphael

Jawaban:

12

Tugas menentukan keanggotaan adalah: diberikan input x , tentukan apakah xL. , yaitu hitung fungsi berikut:

χL.(x)={1xL.0xL.

Di sisi lain, tugas verifikasi keanggotaan adalah: diberikan setiap masukan dan (diusulkan) bukti (atau saksi ) dari keanggotaan, periksa cepat cuaca x L oleh bukti bahwa ¹.xxL.

Sebagai contoh, pertimbangkan factorisation prima. Dengan , hitung semua faktor prima dari n . Di sisi lain, diberikan ( n , { i 1 , ... , i k } ) , verifikasi bahwa k j = 1 i j = n . Mana yang lebih mudah?nNn(n,{saya1,...,sayak})j=1ksayaj=n

Contoh lain: Diberikan grafik berbobot , tentukan apakah ada lingkaran Hamilton (yang mengunjungi semua node) dengan bobot paling banyak k . Di sisi lain, diberikan ( G , ( v 1 , ... , v n ) ) , verifikasi apakah jalan v 1v n mengunjungi semua node tepat sekali dan memiliki bobot paling banyak k . Mana yang lebih sulit?G=(V,E)k(G,(v1,...,vn))v1vnk


  1. Jadi Anda akan mengatakan "tidak" jika tetapi buktinya salah. Namun, itu baik-baik saja, ketika kita mempertimbangkan mesin nondeterministik dalam konteks ini; hanya penting bahwa kita dapat menebak bukti yang benar dan memverifikasinya (dengan cepat).xL.
Raphael
sumber
Sebenarnya, jika Anda dapat memverifikasi keanggotaan dalam waktu polinomial dengan mesin Turing M deterministik, cukup mudah untuk membangun TM M 'non-deterministik yang memutuskan keanggotaan: hanya menghitung secara non-deterministik semua input yang mungkin dan kemudian menulis dengan M.
Romuald
8

Jika kita mengabaikan masalah efisiensi, ada contoh lain yang menggambarkan perbedaan dengan analogi. Kita tahu bahwa masalah penghentian tidak dapat ditentukan: diberikan kode untuk mesin Turing, tidak ada cara yang efektif untuk menentukan apakah mesin berhenti jika dijalankan tanpa input.e

Tapi jika mesin tidak berhenti, tidak sulit untuk membuktikan kepada orang lain: hanya memberitahu mereka berapa banyak langkah mesin berjalan sebelum berhenti. Mereka dapat menjalankan mesin untuk banyak langkah dan tahu jika Anda mengatakan yang sebenarnya (tentu saja mengabaikan efisiensi).

Jadi set mesin Turing menghentikan tidak decidable, tetapi diverifikasi. Perhatikan bahwa tidak ada bukti harus diberikan untuk mesin yang tidak berhenti. Verifikasi asimetris dalam arti bahwa hanya keanggotaan di set memiliki diverifikasi, keanggotaan keluar dari himpunan tidak.

Situasi dengan P dan NP analog. Sebuah bahasa dalam NP jika ada sistem bukti sehingga setiap objek yang ada di bahasa memiliki bukti singkat (dibatasi oleh polinomial dalam ukuran objek) yang dapat diverifikasi secara efisien (dengan sejumlah langkah yang dibatasi oleh polinomial dalam ukuran input).

Di sisi lain, bahasa dalam P jika ada cara untuk mengetahui apakah objek yang arbitrer dalam atau tidak dalam bahasa menggunakan sejumlah langkah yang dibatasi oleh polinomial dalam ukuran objek. Sekarang kita perlu khawatir tentang masukan sewenang-wenang, tidak hanya objek dalam bahasa. Tapi masalah ini adalah simetris: jika suatu bahasa adalah di P kemudian jadi adalah pelengkap nya. Pertanyaan apakah komplemen dari setiap bahasa NP juga merupakan bahasa NP adalah belum terpecahkan.

(Analogi ini menunjukkan bahwa masalah NP adalah masalah P seperti set ulang adalah set yang dapat dikomputasi. Itu agak benar, tetapi bisa menyesatkan. Ini adalah fakta dasar bahwa set yang kembali dan yang kembali dapat dihitung, sementara tidak diketahui apakah setiap set yang NP dan Co-NP dalam P).

Carl Mummert
sumber