Đây là một câu hỏi rất thú vị.
Đầu tiên, một nhận xét làm rõ. Lưu ý rằng "giới hạn trên về số lượng nhân chứng" không phải là một tính chất của một vấn đề tính toán trên mỗi se, nhưng của một trình xác minh cụ thể được sử dụng để quyết định một vấn đề N P , giống như "giới hạn trên về số lượng trạng thái" sẽ không phải là một tài sản của một vấn đề nhưng của một máy Turing quyết định nó. Vì vậy, nói " Vấn đề N P với giới hạn trên về số lượng giải pháp" không hoàn toàn chính xác và nếu P = N P thì mọi vấn đề N P đều có một trình xác minh với bất kỳ số lượng giải pháp mong muốn nào (bao gồm 0 và bao gồm tất cả các chuỗi có thể) .NPNPP=NPNP
Vì vậy, chúng tôi phải đưa ra một định nghĩa, để giải quyết câu hỏi của bạn. Đối với s : N → N , giả sử một vấn đề N P L "có nhiều nhất các giải pháp s ( n ) " nếu với một số hằng số c có một trình xác minh thời gian O ( n c ) V sao cho, với mọi độ dài đầu vào n và cho mỗi x ∈ L có độ dài n , có biệt y 1 , ... , y s ( ns:N→NNPLs(n)cO(nc)Vnx∈Ln) có độ dài n c sao choV(x, y i )chấp nhận cho tất cảivàV(x,y)từ chối tất cảykháccó độ dài n c .y1,…,ys(n)ncV(x,yi)iV(x,y)ync
Tất cả những gì tôi nghĩ tôi có thể nói lúc này là:
- Mỗi N P -complete vấn đề tôi biết (được xác định bởi một số người xác minh tự nhiên) có tương ứng rõ ràng # P phiên bản đếm -complete (với cùng một người xác minh).NP#P
- Đối với bất kỳ vấn đề N P -complete nào được xác định với trình xác minh có nhiều giải pháp p o l y ( n ) (hoặc thậm chí 2 n o ( 1 ) ), phiên bản đếm tương ứng có thể không phải là # P -complete.NPpoly(n)2no(1)#P
Thêm chi tiết: Giả sử L là N P -complete, với trình xác minh V có nhiều nhất các giải pháp O ( n c ) . Sau đó, phiên bản "quyết định" đếm tự nhiên của L , mà chúng tôi xác định làLNPVO(nc)L
C o u n t L ( x ) : = số lượng y sao cho V ( x , y ) chấp nhậnCountL(x):=the number of y such that V(x,y) accepts
là tính toán trong F P N P [ O ( log n ) ] , có nghĩa là, một chức năng polytime với O ( log n ) truy vấn để N P . Đó là bởi vì quyết định xem số lượng giải pháp cho x có nhiều nhất là k trong N P hay không : nhân chứng, nếu nó tồn tại, chỉ đơn giản là số lượng y tôi làm cho V chấp nhận, mà chúng ta biết là nhiều nhất là O ( n c )FPNP[O(logn)]O(logn)NPxkNPyiVO(nc). Sau đó, chúng ta có thể tìm kiếm nhị phân sử dụng này N P vấn đề để tính toán chính xác số lượng các giải pháp để L .NPL
Vì vậy, một N P vấn đề -complete của loại hình này không thể kéo dài đến một # P vấn đề -complete theo cách thông thường, trừ khi # P ⊆ F P N P [ O ( log n ) ] . Điều này có vẻ không ổn; toàn bộ hệ thống phân cấp thời gian đa thức về cơ bản sẽ sụp đổ thành P N P [ O ( log n ) ] .NP#P#P⊆FPNP[O(logn)]PNP[O(logn)]
Nếu bạn giả sử s ( n ) = 2 n o ( 1 ) ở trên, bạn vẫn sẽ nhận được một hậu quả không thể xảy ra. Bạn sẽ chỉ ra rằng # P có thể được tính trong 2 n o ( 1 ) thời gian với một lời tiên tri N P. Đó là quá đủ để chứng minh, ví dụ, rằng E X P N P ≠ P P và sau đó E X P N P ⊄ P / p o l ys(n)=2no(1)#P2no(1)NPEXPNP≠PPEXPNP⊄P/poly. Không phải là những sự tách biệt đó là không thể, nhưng có vẻ như chúng sẽ không được chứng minh bằng cách đưa ra thuật toán N P -orory thời gian phụ cho Vĩnh viễn.NP
Nhân tiện, tôi đã nói không có gì quá sâu sắc ở đây. Gần như chắc chắn có một lập luận như thế này trong tài liệu.