Esta es una pregunta muy interesante.
Primero, un comentario aclaratorio. Tenga en cuenta que el "límite superior en el número de testigos" no es una propiedad de un problema computacional per se, sino de un verificador particular utilizado para decidir un problema N P , así como un "límite superior en el número de estados" no sería un propiedad de un problema pero de una máquina de Turing que lo decide. Por lo tanto, decir " Problema N P con límite superior en el número de soluciones" no es del todo exacto, y si P = N P, entonces cada problema N P tiene un verificador con cualquier número de soluciones deseadas (incluyendo cero e incluyendo todas las cadenas posibles) .NPNPP=NPNP
Entonces tenemos que hacer una definición, para abordar su pregunta. Para s : N → N , supongamos que un problema N P L "tiene como máximo soluciones s ( n ) " si para alguna constante c hay un verificador de tiempo O ( n c ) V tal que, para cada longitud de entrada n y para cada x ∈ L de longitud n , hay distintos y 1 , ... , y s ( ns : N → NnortePAGLs ( n )CO ( nC)Vnortex ∈ Lnorte) de longitud n c de modo queV(x, y i )acepte todoi, yV(x,y)rechace todos los demásyde longitud n c .y1, ... , ys ( n )norteCV( x , yyo)yoV( x , y)ynorteC
Todo lo que creo que puedo decir en este momento es esto:
- Cada problema de N P -completo que conozco (definido por algún verificador natural) tiene una versión de recuento completa # P- obvia correspondiente (con el mismo verificador).nortePAG# #P
- Para cualquier problema N P- completo definido con un verificador que tenga como máximo soluciones p o l y ( n ) (o incluso 2 n o ( 1 ) soluciones) la versión de conteo correspondiente probablemente no sea # P -complete.nortePAGp o l y( n )2norteo ( 1 )# P
Más detalles: Suponga que L es N P -completo, con un verificador V que tiene como máximo O ( n c ) soluciones. Luego, la versión de "decisión" de conteo natural de L , que definimos comoLNPVO ( nC)L
C o u n t L ( x ) : = el número de y tal que V ( x , y ) aceptaCo u n tL( x ) : = el número de y tal que V( x , y) acepta
es computable en F P N P [ O ( log n ) ] , es decir, una función polytime con O ( log n ) consultas a N P . Esto se debe a que decidir si el número de soluciones para x es como máximo k está en N P : el testigo, si existe, es simplemente el número de y estoy haciendo que V acepte, que sabemos que es como máximo O ( n c )FPAGnortePAG[ O ( logn ) ]O ( logn )nortePAGXknortePAGyyoVO ( nC). Entonces podemos búsqueda binaria utilizando este N P problema para calcular el número exacto de soluciones a L .nortePAGL
Por lo tanto, un problema completo de N P de este tipo no puede extenderse a un problema completo de # P de la manera habitual, a menos que # P ⊆ F P N P [ O ( log n ) ] . Esto parece poco probable; toda la jerarquía de tiempo polinomial básicamente colapsaría a P N P [ O ( log n ) ] .nortePAG# P# P⊆FPNP[O(logn)]PNP[O(logn)]
Si asume s ( n ) = 2 n o ( 1 ) en lo anterior, aún obtendría una consecuencia poco probable. Se podría demostrar que # P puede calcularse de 2 n O ( 1 ) tiempo con una N P oráculo. Eso es más que suficiente para demostrar, por ejemplo, que E X P N P ≠ P P y posteriormente E X P N P ⊄ P / p o l ys(n)=2no(1)#P2no(1)NPEXPNP≠PPEXPNP⊄P/poly. No es que estas separaciones son poco probables, pero parece poco probable que estarían probaron dando un tiempo subexp N P algoritmo -oracle para la Permanente.NP
Por cierto, no he dicho nada demasiado perspicaz aquí. Es casi seguro que hay un argumento como este en la literatura.