¿Defecto en mi prueba NP = CoNP?


12

Tengo esta "prueba" muy simple para NP = CoNP y creo que hice algo mal en alguna parte, pero no puedo encontrar lo que está mal. ¿Alguien me puede ayudar?

Sea A un problema en NP, y sea M el decisivo para A. Sea B el complemento, es decir, B está en CoNP. Dado que M es un elemento decisivo, también puede usarlo para decidir B (simplemente voltee la respuesta). ¿No significa eso que resolvemos problemas NP y CoNP con la misma M?

Para decirlo más concretamente.

Deje que A sea un problema NP-completo, y que M sea decisivo para A. Considere cualquier problema B en CoNP. Consideramos su complemento no-B, que está en NP, y luego obtenemos una reducción polinómica a A. Luego ejecutamos nuestro decisor M y volteamos nuestra respuesta. De este modo obtenemos un decisor para B. Esto implica que B también está en NP.

¿Puedo saber qué hay de malo en mi razonamiento?


2
Como las respuestas a continuación explican detalladamente, no está utilizando la noción de "decidir" correctamente. Los problemas en coNP no son aquellos con un "decisor NP invertido". Hay una importante asimetría en los problemas de NP entre aceptar una entrada ("hay opciones no deterministas que conducen a aceptar") y rechazarla ("todas las opciones no deterministas conducen a rechazar"). Su argumento presupone que para NP rechazar una cadena significa ("hay opciones no determinísticas que conducen al rechazo"), y esa es la falla. En otras palabras, tienes tus cuantificadores mezclados.
Andrej Bauer

1
Puede encontrar las respuestas a esta pregunta esclarecedoras.
Raphael

@Raphael ¡Sorprendentemente, esa pregunta no menciona a co-NP en absoluto! (Aunque estoy de acuerdo en que es una lectura útil para alguien que no está seguro de este tipo de cosas).
David Richerby

@DavidRicherby Dado que la respuesta es, básicamente, "usar la definición de NP en lugar de una intuición defectuosa", ¡eso espero!
Raphael

1
Regla general: la construcción de "voltear estados finales" solo funciona para modelos determinísticos. Estudie cómo le falla a la NFA entender por qué. Ver también aquí y aquí .
Raphael

Respuestas:


16

Hay dos posibles errores en esta prueba:

  1. Cuando dices "decisivo", te refieres a una TM determinista. En este caso, la mejor traducción (a nuestro entender) de una máquina NP a una máquina determinista puede producir una máquina que funciona en tiempo exponencial, por lo que después de complementar tendrá un decisor para el complemento en tiempo exponencial, lo que demuestra que (o, después de alguna optimización, ).c o - N P P S P A C EcoNPEXPcoNPPSPACE

  2. Cuando dices "decisivo" te refieres a una TM no determinista. En este caso, cambiar la respuesta no necesariamente complementará el idioma. De hecho, el lenguaje de la máquina invertida será todas las palabras para las cuales existe una ejecución de rechazo de enwMw


No estoy seguro de por qué eso importa. Mi definición de un decisor es que acepto si la entrada está en L y rechazo si la entrada no está en L. Este decisor puede ser determinista o no determinista. Sin embargo, digo que L está en NP y, por lo tanto, si estoy usando una TM no determinista, tomaré tiempo polinómico. Además, puedo saber por qué cambiar el bit no necesariamente complementa el lenguaje. Que yo sepa CoNP = {L | no L \ en NP}. Por lo tanto, si cambio el bit, ¿debería obtener la respuesta?

Deje . Considere una TM no determinista que funciona de la siguiente manera: en una ejecución, siempre genera "rechazo". En otras ejecuciones, reconoce en tiempo polinómico (posible desde ). Considere lo que sucede si voltea el bit: la ejecución de rechazo se vuelve aceptable para cada entrada, por lo que la máquina complementada reconoce , que no es el complemento a menos que . Le sugiero que revise detenidamente las definiciones de no determinismo para comprender esto completamente. L L N P Σ L = LNPLLNPΣL=
Shaull

No quiero decir que cambie el bit de cada ruta de cálculo. Lo que quiero decir es que si mi TM acepta, entonces esto significa que existe una ruta de cálculo que alcanza un estado de aceptación. Esto significa que L está en NP, lo que significa que el complemento está en coNP. Si mi TM rechaza, entonces esto significa que cada ruta computacional rechaza. Esto significa que el complemento está en NP, lo que significa que L está en CoNP.

44
@simpleton: ¿Sabe que una NTM no tiene acceso a todas las rutas a la vez, solo a una? Piensas como alguien que analiza de manera determinista el comportamiento de la NTM desde afuera.
frafl

77
Creo que el OP podría beneficiarse al buscar la definición de NP con más cuidado.
MCH

15

Aquí hay otra forma de ver el punto que Shaull hace con respecto a los "decisores".

Un problema está en NP si y solo si hay un algoritmo tal queV:{0,1}n×{0,1}poly(n){0,1}

  • para cada instancia SÍ , hay un certificado p { 0 , 1 } p o l y ( n ) tal que V ( x , p ) = 1 ; yx{0,1}np{0,1}poly(n)V(x,p)=1

  • para cada instancia de NO , tenemos V ( x , p ) = 0 para todas las p { 0 , 1 } p o l y ( n ) .x{0,1}nV(x,p)=0p{0,1}poly(n)

Por lo general, se describen como las condiciones de integridad y solidez para el algoritmo de verificación NP : la condición de "integridad" dice que cada instancia de SÍ tiene un certificado, y la condición de "solidez" dice que el algoritmo nunca es engañado por una instancia de NO. Para coNP es al revés: hay un algoritmo verificador que aceptará al menos un certificado para cualquier instancia de NO, pero que nunca puede ser engañado por una instancia de YES.

Si desea mostrar que NPcoNP , debe mostrar que cada problema de NP tiene un verificador de tipo coNP , que puede certificar NO instancias en lugar de instancias YES. No puede hacer esto con una máquina de Turing no determinista: no hay forma de que sepamos, por ejemplo, de mapear eficientemente las instancias de SAT entre sí, de tal manera que todas las fórmulas insatisfactorias se asignen a otras satisfactorias, y viceversa.. (Negar el resultado de la fórmula no es suficiente, por ejemplo: una fórmula que es satisfactoria pero no una tautología simplemente se mapearía a una fórmula diferente que fuera satisfactoria pero no una tautología, cuando en su lugar requeriríamos una fórmula insatisfactoria). Simplemente no sabemos cómo engañar a una máquina no determinista para que detecte algo así como que todos sus caminos sean rechazados.

Puede preguntar: "¿No sabe la máquina de Turing no determinista qué resultado obtiene?" La respuesta sería no , no lo hace. El funcionamiento de la máquina no determinista no le da acceso a ninguna información sobre más de una ruta computacional a la vez: puede pensar que funciona en muchas rutas en paralelo, pero dentro de cada ruta solo conoce esa ruta. Si intenta equiparlo con la capacidad de "darse cuenta" de si hay alguna solución o no en algún momento, en su lugar, está describiendo una máquina con un oráculo NP , que es más (¡potencialmente!) Poderoso que una simple máquina de Turing no determinista.

  • Por ejemplo, si usted equipa un (determinista) máquina de Turing con un NP oráculo, entonces los problemas que pueden ser resueltos en tiempo polinómico en esa máquina se llama , que a menudo se escribe P N P . El "oráculo" le permite a la máquina simplemente recibir respuestas a problemas completos de NP en un solo paso, por lo que P N P obviamente contiene P ; y debido a que puede negar respuestas, obviamente también contiene coNP . Pero no sabemos si las contenciones inversas se mantienen, exactamente porque no sabemos cómo engañar a las máquinas de Turing no deterministas para que no detecten respuestas.Δ2PPNPPNP

  • Σ2PNPNPPNPno tiene respuesta debido al oráculo, pero aún estaría atascado a operar dentro de una de sus propias ramas computacionales (bastante poderosas), de modo que no podría saber si todas sus propias ramas computacionales estaban rechazando.

NPNPNP

Entonces, no, no hay una máquina (determinista o no) que pueda simplemente "decidir" que un problema es una instancia SÍ o NO de manera eficiente, a menos que usemos oráculos; pero incluso con tal oráculo, terminamos con una máquina que es (probablemente) más poderosa que NP o coNP , no una que muestre que son iguales.


Hola, gracias a ti y a Shauli por los comentarios. ¿Está diciendo que una NTM puede reconocer un idioma NP en polytime, pero no puede decidir un idioma NP en polytime? Creo que eso es lo que estoy asumiendo cuando digo que tengo un factor decisivo para los problemas de NP.
simpleton

2
PNPNPPNPCoNPPNPUNSATNP

55
La dureza NP se define con reducciones de muchos, no reducciones de oráculo.
Yuval Filmus

6

Su razonamiento implica que RE = coRE, pero esto es demostrablemente falso. Podría intentar descubrir una prueba de eso y luego ver dónde falla su reducción.

{x:P halts on input x}{x:(x,w)L for some w}L

L={x:p halts on input x}L={(x,w):p halts on input x in w steps}LL={x:(x,w)L for some w}

L={x:(x,w)L for some w}LP(x,w)Q(x)wP(x,w)wP(x,w)wQL={x:Q halts on input x}

L={(P,x):P halts on input x}PxHH(P,x)(P,x)LGG(x)=H(x,x)(G,G)LGGH(G,G)(G,G)L(G,G)LGGH(G,G)(G,G)LH

H


2

Aquí hay una versión TL; DR; También publiqué una respuesta más larga a una pregunta similar.

AMxAMxMx. Si simplemente invierte los estados de aceptación y rechazo, pasará de una máquina que tenía algunas rutas de aceptación y algunas de rechazo a una máquina que tiene algunas rutas de rechazo y algunas de aceptación. En otras palabras, todavía tiene caminos de aceptación, por lo que todavía acepta. Voltear los estados de aceptar y rechazar de una máquina no determinista, en general, no hace que acepte el lenguaje complementario.

Es esta asimetría de definición (aceptar si alguna ruta acepta; rechazar solo si todas las rutas rechazan) lo que dificulta el problema NP vs co-NP .


-2

De hecho, estoy de acuerdo en que su máquina no determinista M puede decidir si una cadena de entrada dada está en B. Sin embargo, "decide" de forma ligeramente diferente a la forma en que decide si una entrada dada está en A. En el último caso, lo hace por ( no determinista) encontrar un estado de aceptación. En el primer caso, lo hace al no encontrar ningún estado de aceptación. ¿Por qué importa esta diferencia? Veamos:

Al preguntar M "¿Está la cadena en el idioma A?"

M alcanza un estado de aceptación. Esto, usted puede probar (ver, por ejemplo, el teorema del libro de Sipser 7.20) implica que hay una máquina determinista que verifica que la cadena está en A en tiempo polinómico

Al preguntar M "¿Está la cadena en el idioma B?"

M alcanza estados de rechazo en todas las ramas de su cálculo no determinista. Si piensa en cómo funciona la prueba del verificador anterior, verá que no se puede lograr en esta situación. Esto se debe aproximadamente a que el verificador utiliza la ruta que M toma a través de su espacio de estado como "prueba". En este caso, no hay una ruta de ese tipo.

Conclusión:

Si considera que la existencia de un verificador determinista de tiempo polinómico para un lenguaje es la definición de un lenguaje NP (que debería), la existencia de M no prueba que B esté en NP.


1
MBBM
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.