Ini pertanyaan yang sangat menarik.
Pertama, komentar klarifikasi. Perhatikan bahwa "batas atas jumlah saksi" bukanlah properti dari masalah komputasi semata, tetapi dari verifier tertentu yang digunakan untuk memutuskan N PNP , sama seperti "batas atas jumlah negara" tidak akan menjadi milik masalah tetapi dari mesin Turing yang memutuskannya. Jadi mengatakan " N P masalah dengan batas atas jumlah solusi" tidak cukup akurat, dan jika P = N P maka setiap N P masalah memiliki verifier dengan sejumlah solusi yang diinginkan (termasuk nol, dan termasuk semua string mungkin) .NPP=NPNP
Jadi kami harus membuat definisi, untuk menjawab pertanyaan Anda. Untuk s : N → N , katakanlah N P masalah L "memiliki paling s ( n ) solusi" jika untuk beberapa konstan c ada O ( n c ) waktu verifier V seperti itu, untuk setiap panjang input n dan untuk setiap x ∈ L dengan panjang n , ada yang berbeda y 1 , … , y s ( ns:N→NNPLs(n)cO(nc)Vnx∈Ln) dengan panjang n c sehinggaV(x, y i )menerima untuk semuai, danV(x,y)menolak semuaydengan panjang n c .y1,…,ys(n)ncV(x,yi)iV(x,y)ync
Yang saya pikir bisa saya katakan saat ini adalah ini:
- Setiap N P- masalah lengkap yang saya tahu (didefinisikan oleh beberapa verifier alami) memiliki versi penghitungan # P -complete yang jelas (dengan verifier yang sama ).NP#P
- Untuk masalah N P -lengkap yang didefinisikan dengan verifier yang memiliki paling banyak solusi p o l y ( n ) (atau bahkan 2 n o ( 1 ) ) versi penghitungan yang sesuai mungkin bukan # P -lengkap.NPpoly(n)2no(1)#P
Lebih detail: Misalkan L adalah N P -complete, dengan verifier V yang memiliki paling banyak solusi O ( n c ) . Kemudian menghitung "keputusan" versi L , yang kami definisikan sebagaiLNPVO(nc)L
C o u n t L ( x ) : = jumlah y sehingga V ( x , y ) menerimaCountL(x):=the number of y such that V(x,y) accepts
adalah dihitung di F P N P [ O ( log n ) ] , yaitu, fungsi polytime dengan O ( log n ) query ke N P . Itu karena memutuskan apakah jumlah solusi untuk x paling banyak k adalah dalam N P : saksi, jika ada, hanyalah jumlah y i yang membuat V menerima, yang kita tahu paling banyak O ( n c )FPNP[O(logn)]O(logn)NPxkNPyiVO(nc). Kemudian kita dapat Binary Search menggunakan ini N P masalah untuk menghitung jumlah pasti solusi untuk L .NPL
Oleh karena itu, masalah N P -lengkap seperti ini tidak dapat diperluas ke masalah # P -lengkap dengan cara biasa, kecuali # P ⊆ F P N P [ O ( log n ) ] . Ini terlihat tidak mungkin; seluruh hierarki waktu polinomial pada dasarnya akan runtuh ke P N P [ O ( log n ) ] .NP#P#P⊆FPNP[O(logn)]PNP[O(logn)]
Jika Anda menganggap s ( n ) = 2 n o ( 1 ) di atas, Anda masih akan mendapatkan konsekuensi yang tidak mungkin. Anda akan menunjukkan bahwa # P dapat dihitung dalam 2 n o ( 1 ) kali dengan oracle N P. Itu lebih dari cukup untuk membuktikan, misalnya, bahwa E X P N P ≠ P P dan selanjutnya E X P N P ⊄ P / p o l ys(n)=2no(1)#P2no(1)NPEXPNP≠PP. Not that those separations are unlikely, but it seems unlikely they'd be proved by giving a subexp time NP-oracle algorithm for the Permanent.
By the way, I have said nothing too insightful here. There is almost certainly an argument like this in the literature.