¿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.
¿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.
Respuestas:
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.
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
Considere
Es fácil ver que es NP-completo.
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 φ .
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.]
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).