这是一个非常有趣的问题。
首先,澄清一下。请注意,“证人数量的上限”本身并不是计算问题的属性,而是用于决定问题的特定验证程序的属性,就像“ 证人数量的上限”不会是问题的性质,但由图灵机决定。因此说“ 解决方案数量上限的N P问题”不是很准确,如果P = N P,则每个N P问题都有一个带有任意数量所需解(包括零,并包括所有可能的字符串)的验证器。 。NPNPP=NPNP
因此,我们必须做出定义,以解决您的问题。对于,如果对于某个常数c,存在一个O (n c)时间验证器V,使得对于每个输入长度n和n,N P问题L “最多具有s (n )个解” 。每个X ∈ 大号长度的ñ,有不同ÿ 1,... ,ÿ 小号(ñs:N→NNPLs(n)cO(nc)Vnx∈Ln的长度为 n c,使得V(x, y i)接受所有i,而V(x,y)拒绝所有其他y的长度 n c。y1,…,ys(n)ncV(x,yi)iV(x,y)ync
我现在只能说的是:
- 我知道的每个问题(由某些自然验证者定义)都有一个明显的对应的#P-完整计数版本(具有相同的验证者)。NP#P
- 对于任何与验证者至多具有限定-complete问题p ø 升ý (Ñ )解决方案(或甚至2 Ñ ø (1 )的解决方案)中相应的计数版本可能不是#P -complete。NPpoly(n)2no(1)#P
更多详细信息:假设是N P-完全的,且验证者V最多具有O (n c)个解。然后是L的自然计数“决策”版本,我们将其定义为LNPVO(nc)L
CountL(x):=the number of y such that V(x,y) accepts
可在,也就是说,具有O (log n )查询N P的多时函数。这是因为决定解决方案,以数量是否X最多ķ在ñ P:证人,如果存在的话,仅仅是数量Ÿ 我的制作V接受,我们知道是在最Ø (ñ c)FPNP[O(logn)]O(logn)NPxkNPyiVO(nc)。然后,我们可以使用该问题进行二分搜索,以计算L的精确解数。NPL
因此,这种-complete问题不能被扩展到#P以通常的方式-complete问题,除非#P ⊆ ˚F P Ñ P [ ø (日志Ñ )]。这看起来不太可能;整个多项式时间层次基本上会崩溃为P N P [ O (log n )]。NP#P#P⊆FPNP[O(logn)]PNP[O(logn)]
如果您在上面假设,您仍然会得到不太可能的结果。你将表明#P可以在被计算2 Ñ ø (1 )的时间与一Ñ P预言。这是超过足以证明,例如,该Ë X P Ñ P ≠ P P并随后Ë X P Ñ P ⊄ P / p ö 升ÿs(n)=2no(1)#P2no(1)NPEXPNP≠PPEXPNP⊄P/poly。并不是说这些分离是不可能的,但是似乎不可能通过给Permanent提供一个subexp time -oracle算法来证明。NP
顺便说一句,我在这里没有说什么很有见地的。文献中几乎肯定有这样的论点。