Suponiendo que P NP, los problemas de NP completo son "difíciles de resolver, pero tienen respuestas que son fáciles de verificar". ¿Tiene algún sentido considerar lo contrario, es decir, problemas para los cuales es fácil calcular una respuesta correcta, pero difícil de verificar una supuesta solución arbitraria?
Creo que tal problema implicaría:
Exponencialmente muchas respuestas "correctas" para cualquier entrada dada, porque de lo contrario la verificación podría llevarse a cabo simplemente calculando todas las respuestas correctas.
Algunas respuestas "correctas" son fáciles de calcular, pero otras son difíciles de encontrar.
complexity-theory
rphv
fuente
fuente
Respuestas:
Si está bien con problemas artificiales, puede hacer muchos de ellos. Aquí hay algunos:
Dar una fórmula 3CNF satisfactoria es fácil, pero decidir si una fórmula 3CNF dada es satisfactoria o no es 3SAT, un problema NP-completo bien conocido.
Dar una máquina de Turing de este tipo es fácil, pero no se puede determinar si una máquina de Turing se detiene o no.
Agregado : Por cierto, no creo que lo que escribiste en el último párrafo tenga:
Si el problema tiene una solución, entonces verificar una respuesta no es más difícil que calcular la solución correcta. Sin embargo, si el problema tiene una solución fácil y una solución difícil, entonces no puede calcular todas las soluciones de manera eficiente. Aquí hay uno de esos problemas (que es muy artificial):
Dar una solución es fácil : siempre puede elegir " M es una máquina de Turing". Sin embargo, si una respuesta dada es correcta o no es indecidible. Tenga en cuenta que en este problema, solo hay dos soluciones para cada instancia.
fuente
Aunque la respuesta de Tsuyoshi Ito cubre la respuesta "principal", había dos notas más sutiles que quería agregar.
Incluso cuando la solución es difícil de verificar, verificar la solución sigue siendo fácil de verificar con una cadena de prueba corta. Es decir, al extender la solución un poco con información adicional, se vuelve fácilmente comprobable; la verificación siempre está en NP. Una forma de ver esto es que el agente que calcula una solución puede registrar todos los bits aleatorios que usa, y luego el verificador puede usar esa misma cadena aleatoria para ejecutar el mismo cálculo. (El probador debe usar bits aleatorios, de lo contrario, siempre emiten la misma respuesta, y el verificador siempre puede verificar fácilmente calculando una respuesta con el mismo método).
Para las computadoras cuánticas, esta es una pregunta muy abierta. Para las computadoras clásicas, el verificador siempre puede hacer algo como simular el probador y verificar que obtengan la misma respuesta. Es completamente posible que para algún problema complicado, exista un algoritmo cuántico que produzca una distribución uniforme en todas las soluciones (exponencialmente muchas), que son difíciles de verificar. No puede volver a ejecutar el probador, porque lo más probable es que obtenga una respuesta diferente cada vez.
Como ejemplo de un tipo similar de problema, el problema de Deutsch-Jozsa sufre un poco de esto. Si un oráculo no es una función equilibrada, entonces una computadora cuántica puede determinar rápidamente que este es el caso, pero no hay pruebas cortas que permitan que una computadora clásica verifique esto. (Esto es solo un problema "similar" porque todavía puede ser verificado por otra computadora cuántica, y la verificación también está en BPP clásico, incluso si no está en P.)
fuente