Apakah ada tugas yang dapat dipecahkan dalam waktu polinomial tetapi tidak dapat diverifikasi dalam waktu polinomial?

34

Seorang kolega saya dan saya baru saja menekan beberapa catatan dari salah satu profesor kami. Catatan menyatakan bahwa ada tugas-tugas yang mungkin diselesaikan dalam waktu polinomial (berada dalam kelas PF) tetapi yang TIDAK dapat diverifikasi dalam waktu polinomial (TIDAK dalam kelas NPF).

Untuk menguraikan tentang kelas-kelas ini: Kami mendapatkan beberapa input X dan menghasilkan beberapa output Y sedemikian rupa sehingga (X, Y) berhubungan dengan R yang mewakili tugas kami. Jika dimungkinkan untuk mendapatkan Y untuk X dalam waktu polinomial, tugas itu termasuk kelas PF. Jika dimungkinkan untuk memverifikasi sertifikat panjang polinomial Z yang membuktikan tupel (X, Y) dalam kaitannya dengan R dalam waktu polinomial, maka tugas tersebut termasuk dalam kelas NPF.

Kami tidak berbicara tentang masalah keputusan, di mana jawabannya hanya YA atau TIDAK (lebih formal jika beberapa string milik beberapa bahasa). Untuk masalah keputusan, tampaknya PF adalah subset NPF yang tepat. Namun, untuk tugas lain mungkin berbeda.

Apakah Anda mengetahui tugas yang dapat diselesaikan dalam waktu polinomial tetapi tidak diverifikasi dalam waktu polinomial?

Drozi
sumber
8
Mungkin saya salah paham, tetapi mengapa berikut ini bukan algoritma verifikasi polinomial-waktu? Diberikan , hitung sendiri fungsi , menggunakan algoritma polinomial-waktu, dan kembalikan "benar" jika . Mungkinkah Anda salah membaca atau profesor salah bicara dan sebaliknya bermaksud mengatakan bahwa ada masalah yang dapat diverifikasi dalam waktu polinomial tetapi tidak dapat dipecahkan dalam waktu polinomial? (x,y)f(x)f(x)=y
Lieuwe Vinkhuijzen
1
@LieuweVinkhuijzen "untuk mengatakan bahwa ada masalah yang dapat diverifikasi dalam waktu polinomial tetapi tidak dapat dipecahkan dalam waktu polinomial?" [ref. dibutuhkan]
T. Verron
@ T. Verron Haha ya, saya juga akan sangat senang melihat bukti profesor untuk klaim ini;)
Lieuwe Vinkhuijzen

Jawaban:

44

Ini hanya mungkin jika ada banyak keluaran yang dapat diterima untuk input yang diberikan. Yaitu, ketika hubungan bukan fungsi karena melanggar keunikan.R

Misalnya, pertimbangkan masalah ini:

Diberikan (diwakili dalam unary) dan TM , menghasilkan TM lainnya sehingganNMNL(M)=L(N) dan (di mana # N adalah singkatan dari penyandian (nomor Gödel ) dari N menjadi bilangan asli)#N>n#NN

Memecahkan ini sepele: terus tambahkan beberapa status redundan ke TM , mungkin dengan beberapa transisi dummy di antara mereka, sampai pengkodeannya melebihi n . Ini adalah aplikasi dasar yang diulang dari Padding Lemma pada TM. Ini akan membutuhkan n bantalan, yang masing-masing dapat menambahkan satu negara, maka itu dapat dilakukan dalam waktu polinomial.Mnn

Di sisi lain, mengingat adalah diputuskan untuk memeriksa apakah N adalah output yang benar untuk input n , M . Memang, memeriksa L ( M ) = L ( N ) tidak dapat ditentukan (menerapkan teorema Padi), dan kendala # N > n hanya membuang banyak N dari mereka secara terbatas . Karena kami menghapus sejumlah elemen hingga dari masalah yang tidak dapat ditentukan, kami masih mendapatkan masalah yang tidak dapat ditentukan.n,M,NNn,ML(M)=L(N)#N>nN

Anda juga dapat mengganti properti yang tidak dapat ditentukan untuk mendapatkan variasi yang masih dapat dihitung tetapi NP sulit / lengkap. Misalkan diberikan n (dalam unary) itu sepele untuk menghitung grafik G yang memiliki n -clique di dalamnya. Tetapi mengingat n , G sulit untuk memeriksa apakah n -clique ada.L(M)=L(N)nGnn,Gn

chi
sumber
1
Diharapkan ini tidak menjadi masalah. Jawaban bagus!
Filip Haglund
7
Ini tidak menjawab pertanyaan. OP secara khusus meminta masalah yang tidak dapat diverifikasi dalam arti biasa, di mana, selain input dan jawaban yang diduga, kami mendapatkan sertifikat yang menyatakan kebenaran jawaban tersebut. Dalam kasus Anda, sertifikat adalah bit yang digunakan untuk secara nondeterministis menghasilkan Mesin Turing setara baru. Mengingat M , N dan z , mudah untuk memeriksa apakah z memberikan mesin M . Tanpa z , pertanyaannya adalah apakah mudah untuk menghasilkan contoh instans dari bahasa (NPC), yang hanya berlaku di Minicrypt dan Cryptomania. zM,NzzMz
Lieuwe Vinkhuijzen
2
@chi Tidak semua pasangan dapat disertifikasi, tetapi pasangan M , N yang dihasilkan oleh algoritme Anda dapat disertifikasi. Sertifikat adalah transkrip algoritma Anda yang menghasilkan N dari M (mis. "Mulai dengan M , lalu tambahkan status ini, dan tambahkan transisi ini, lalu ... dan voilà, N !"). Secara umum, jika T adalah algoritma nondeterministic yang, diberikan x , selalu menghitung y yang dapat diterima , maka transkrip dari jalur komputasi T ( x ) adalah sertifikat yang diberikan y dapat diterima.M,NM,NNMMNTxyT(x)y
Lieuwe Vinkhuijzen
3
@ Ya Ada sedikit nuansa dalam pertanyaan: Untuk hubungan arbitrer , ada kemungkinan bahwa tidak semua y dapat diterima dapat disertifikasi, dan Anda memberikan contoh yang elegan. Namun, pertanyaannya tidak menanyakan apakah ada hubungan yang dapat diterima tetapi tidak dapat disertifikasi (jawabannya adalah ya , dengan contoh Anda), melainkan menanyakan apakah kita dapat memiliki algoritme yang menghasilkan keluaran yang dapat diterima dan tidak dapat disertifikasi. Jawabannya, di sini, harus tidak , karena argumen di atas. Ry
Lieuwe Vinkhuijzen
2
@ Ya, saya tidak tahu apa yang ingin ditanyakan oleh OP, tapi saya menemukan jawaban Anda sangat jelas, saya belajar sesuatu! imo pertanyaannya dapat dibaca dengan cara Anda lakukan, atau sama masuk akal sebagai " apakah fungsi satu arah ada? " (mungkin) atau " adalah contoh sulit dari masalah NP mudah untuk menghasilkan? " (Saya harap demikian untuk RSA), atau, cara saya membacanya, sebagai " Is ?NPP " (no).
Lieuwe Vinkhuijzen
1

Ini hanyalah penjabaran dari kalimat pertama dari jawaban @ chi, karena saya tidak menemukannya dengan jelas.

Idenya adalah, jika Anda memiliki algoritma yang menemukan jawaban untuk beberapa masalah dalam waktu polinomial, maka ada dua kemungkinan:

  1. Anda sebelumnya telah membuktikan (secara matematis) bahwa output algoritma adalah solusi untuk masalah, dalam hal ini, langkah-langkah algoritma itu sendiri membentuk bukti kebenaran.

  2. Anda memiliki algoritme yang berbeda untuk memeriksa bahwa output memang merupakan solusi, dalam hal ini Anda harus menjalankan algoritme ini (jika tidak, Anda akan jatuh dalam kasus # 1), yang menyiratkan Anda melakukannya dalam waktu polinomial.

Karena itu, tidak ada masalah seperti itu.

Mehrdad
sumber
Saya tidak mengerti # 2. Apa yang menyiratkan bahwa algoritma yang berbeda berjalan dalam waktu polinomial?
Albert Hendriks
@AlbertHendriks: Jika verifier tidak berjalan dalam waktu polinomial maka pemecah asli tidak bisa mengklaim telah menemukan solusi yang benar dalam waktu polinomial, karena itu perlu menjalankan verifier untuk memastikan solusinya benar.
Mehrdad