¿Existe un lenguaje NP-completo que contiene precisamente la mitad de las instancias de n bits?

25

¿Existe un lenguaje NP (preferiblemente natural) completo , de modo que por cada n 1 | L { 0 , 1 } n | = 2 n - 1 retenciones? En otras palabras, L contiene precisamente la mitad de todas las instancias de n bits.L{0,1}n1

|L{0,1}n|=2n1
Ln
Andras Farago
fuente
44
Sería muy sorprendente si no lo hay, pero pensarlo durante unos minutos no pudo encontrar una construcción.
Kaveh
2
FWIW hay una que es NP-hard y en NP / POLY ...L
Neal Young
Para una codificación binaria byectiva de fórmulas CNF, { e ( φ ) 1 | φ satisfactoria } { e ( φ ) 0 | φ insatisfactorio } debería funcionar. e{e(φ)1 | φ}{e(φ)0 | φ}
Klaus Draeger el
44
@KlausDraeger La insatisfacción no es una propiedad NP, a menos que NP = co-NP.
Andras Farago
¿Hay algún oráculo tal que no exista LN P - C o m p l e t e O con esta propiedad? OLNPCompleteO
Erfan Khaniki el

Respuestas:

24

Hice esta pregunta hace unos años y Boaz Barak la respondió positivamente .


La declaración es equivalente a la existencia de un lenguaje NP-completo donde | L n | es computable en tiempo polinómico.L|Ln|

Considere fórmulas booleanas y SAT. Usando relleno y modificando ligeramente la codificación de las fórmulas, podemos asegurarnos de que y ¬ φ tengan la misma longitud.φ¬φ

Deje ser una codificación que 

  • para todas las fórmulas y para todas las asignaciones de verdad τ { 0 , 1 } | φ | , | Phi | = | Phi , tau | .φτ{0,1}|φ||φ|=|φ,τ|
  • es computable en tiempo polinómico.|φ||φ|
  • El número de fórmulas con longitud codificada es computable en tiempo polinómico.n

Considere

L:={φφSAT}{φ,ττφ and σ<τ σφ}

Es fácil ver que es NP-completo.L

Si , el número de asignaciones de verdad que satisfacen τ φ  y  σ < τ σ φ es igual al número de asignaciones de verdad satisfactorias - 1 . Agregando φ mismo, se suma al número de asignaciones de verdad satisfactorias para φ .φSAT

τφ and σ<τ σφ
1φφ

2|φ|τφ¬φφ2(2|φ|+1)φ¬φφ,τ¬φ,ττ{0,1}|φ|2|φ|2|φ|+1+2LnLφn2|φ|

Ryan O'Donnell
fuente
10
Incluso si esta es la solución deseada, esta es una respuesta claramente solo de enlace.
user2943160
para ser claros, no hay nada especial en SAT, esto funcionaría con cualquier predicado verificador para un problema NP-completo.
Kaveh
ϕ¬ϕτ
@Neal, deje que V (x, y) sea un verificador para un problema de NP completo. Considere W (x, b, y): = V (x, y) = b. Todavía está NP-completo y cada y es testigo de x, 0 o x, 1. Sin embargo, no es tan bueno como el SAT.
Kaveh
A={(ϕ,b,τ):(τ satisfies ϕ)b=1}?
B={(ϕ,b):τSATb=1}ABAC={(ϕ,b):τ. [(τ satisfies ϕ)b=1]}
8

Aquí hay una sugerencia de por qué podría ser difícil encontrar un ejemplo de eso, aunque estoy de acuerdo con el comentario de Kaveh de que sería sorprendente si no existiera. [No es una respuesta, pero es demasiado larga para un comentario.]

LL=n:=|L{0,1}n|=2n1L{0,1}n{0,1}nLNPf:{0,1}{0,1}xLf(x)LfNP=coNPfNPcoNP

EXPcoNPNTIME(2(logn)O(1))=:NQPPHNQPPHNQP

L

Por supuesto, este es también el tipo de cosas en las que alguien vendrá con un ejemplo y veremos fácilmente cómo se resuelve esta objeción, pero solo quería lanzar esto para decir cómo cualquier cosa con una biyección lo suficientemente simple puede No funciona (a menos que las creencias ampliamente aceptadas sean falsas).

L

Joshua Grochow
fuente