Wikipedia memberikan contoh masalah di mana versi penghitungannya sulit, sedangkan versi keputusannya mudah. Beberapa di antaranya menghitung kecocokan sempurna, menghitung jumlah solusi untuk -SAT dan jumlah penyortiran topologi.
Apakah ada kelas penting lainnya (misalnya contoh dalam kisi, pohon, teori bilangan dan sebagainya)? Apakah ada ringkasan masalah seperti itu?
Ada banyak jenis masalah dalam yang memiliki versi penghitungan yang sulit.# P
Apakah ada versi masalah alami dalam yang lebih sepenuhnya dipahami atau lebih sederhana daripada pencocokan sempurna bipartit umum (harap sertakan detail mengapa lebih sederhana seperti terbukti di kelas terendah dari hierarki dan sebagainya) di beberapa area lainnya (seperti teori bilangan, kisi-kisi) atau paling tidak untuk grafik bipartit sederhana tertentu, yang versi hitungnya ?# P
Contoh dari kisi, polytopes, penghitungan titik, teori bilangan akan dihargai .
Jawaban:
Inilah contoh yang sangat bagus (saya mungkin bias).
Diberikan seperangkat yang dipesan sebagian:
a) apakah ia memiliki ekstensi linier (yaitu, pesanan total yang kompatibel dengan pesanan parsial)? Sepele: Semua poset memiliki setidaknya satu ekstensi linier
b) Berapa banyak yang dimilikinya? # P-lengkapi untuk menentukan ini (Brightwell dan Winkler, Counting Linear Extensions , Order, 1991)
c) Bisakah kita menghasilkan semuanya dengan cepat? Ya, dalam waktu diamortisasi konstan (Pruesse dan Ruskey, Menghasilkan Ekstensi Linear Cepat , SIAM J Comp 1994)
sumber
Salah satu contoh menarik dari teori bilangan adalah menyatakan bilangan bulat positif sebagai jumlah empat kotak. Ini dapat dilakukan dengan relatif mudah dalam waktu polinomial acak (lihat artikel 1986 saya dengan Rabin di https://dx.doi.org/10.1002%2Fcpa.3160390713 ), dan jika saya ingat dengan benar, sekarang bahkan ada polinomial deterministik-waktu larutan. Tetapi menghitung jumlah representasi seperti itu akan memungkinkan Anda untuk menghitung fungsi jumlah pembagi , yang merupakan waktu polinomial acak yang setara dengan anjak piutang n . Jadi masalah penghitungan mungkin sulit.σ( n ) n
sumber
Contoh yang sangat bagus dan sederhana dari Graph Theory adalah menghitung jumlah sirkuit Eularian dalam grafik yang tidak terarah.
Versi keputusannya mudah (... dan masalah Seven Bridges of Königsberg tidak memiliki solusi :-)
Versi penghitungannya adalah # P-hard: Graham R. Brightwell, Peter Winkler: Menghitung Sirkuit Euler adalah # P-Lengkap . ALENEX / ANALCO 2005: 259-262
sumber
Mengenai pertanyaan kedua Anda, masalah-masalah seperti Monoton-2-SAT (memutuskan kepuasaan formula-CNF memiliki paling banyak 2 literal positif berdasarkan klausa) benar-benar sepele (Anda hanya perlu memeriksa apakah formula Anda kosong atau tidak) tetapi masalah penghitungannya adalah # P-hard. Bahkan perkiraan jumlah penugasan yang memuaskan dari formula semacam itu sulit (lihat On hardness of approximate reasoning, Dan Roth, Artificial Intelligence, 1996).
sumber
Dari [Kayal, CCC 2009] : Secara eksplisit mengevaluasi pemusnahan polinomial di beberapa titik
Dari abstrak: `` Ini adalah satu-satunya masalah komputasi alami di mana menentukan keberadaan suatu objek (polinomial pemusnahan dalam kasus kami) dapat dilakukan secara efisien tetapi perhitungan aktual dari objek tersebut terbukti sulit. ''
Mari menjadi bidang dan → f = ( f 1 , . . . , F k ) ∈ F [ x 1 , . . . , X n ] menjadi satu set k -banyak degree- d n -variate polinomial atas F . Sebuah → f -annihilating polinomial yaitu apapun (non-sepele) A st A ( f 1 , . .F f⃗ =(f1,...,fk)∈F[x1,...,xn] k d n F. f⃗ A A(f1,...,fk)=0.
Keputusan mudah: Selama setiap bidang, dan untuk setiap polinomial ( f 1 , . . . , F k ) - jika k ≥ n + 1 , ada yang menghancurkan seperti A untuk ( f 1 , . . . , F k ) . ((Melalui argumen penghitungan dimensi.))k (f1,...,fk) k≥n+1, A (f1,...,fk)
Menghitung sulit: Tentukan memusnahkan-Tarahan sebagai masalah fungsional mengevaluasi polinomial yang menghancurkan pada beberapa titik : Mengingat perdana dan satu set ( f 1 , . . . , F k ) ∈ Z [ x 1 , . . . , X n ] yang memiliki minimal monic yang menghancurkan A ( t 1 , . . . , T k ) ∈ Zp, (f1,...,fk)∈Z[x1,...,xn] output bilangan bulat A ( 0 , . . . , 0 ) mod p .A(t1,...,tk)∈Z[t1,...,tk], A(0,...,0)modp.
ANNIHILATING-EVAL adalah -hard. Selain itu, yang menghancurkan polinomial A ( t 1 , . . . , T k ) tidak memiliki representasi sirkuit kecil kecuali P H runtuh.#P A(t1,...,tk) PH
sumber