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?
sumber
Jawaban:
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:
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.M n n
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,N N n,M L(M)=L(N) #N>n N
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) n G n n,G n
sumber
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:
Anda sebelumnya telah membuktikan (secara matematis) bahwa output algoritma adalah solusi untuk masalah, dalam hal ini, langkah-langkah algoritma itu sendiri membentuk bukti kebenaran.
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.
sumber