¿Encontrar una solución de un problema de satisfacción es más difícil que decidir la satisfacción?

11

¿Es el problema de determinar si una expresión booleana dada es satisfactoriamente computacionalmente distinta de encontrar realmente una solución a la expresión?

En otras palabras, ¿hay otra forma de encontrar que una expresión dada es satisfactoria sin determinar explícitamente la 'configuración correcta' para las variables booleanas? ¿O todas las pruebas posibles se reducen en tiempo polinómico a la 'configuración correcta'?

Perdona mi ignorancia, solo soy un estudiante de ingeniería. Wikipedia parece implicar que el acto de solo encontrar SAT o UNSAT es NP-completo.

Jason
fuente
8
Respuesta corta: el problema de encontrar una tarea satisfactoria es computacionalmente tan difícil como decidir si existe. La idea es que, dado un algoritmo que decide la satisfacción, puede usarse para construir eficientemente una tarea satisfactoria. Echa un vistazo a en.wikipedia.org/wiki/…
John D.
2
¿Pensé que UNSAT estaba completo?
G. Bach

Respuestas:

15

Como se menciona en un comentario, cualquier método para determinar la satisfacción de una fórmula booleana se puede convertir fácilmente en un método para encontrar la asignación variable satisfactoria. Esto se debe a que todos los problemas de NP completo son auto reductibles hacia abajo.

De Wikipedia :

Auto-reducibilidad

El problema SAT es auto-reducible, es decir, cada algoritmo que responde correctamente si una instancia de SAT es solucionable puede usarse para encontrar una asignación satisfactoria. Primero, se hace la pregunta sobre la fórmula dada . Si la respuesta es "no", la fórmula no es satisfactoria. De lo contrario, la pregunta se formula en la fórmula parcialmente instanciada , es decir, con la primera variable reemplazada por y simplificada en consecuencia. Si la respuesta es "sí", entonces , de lo contrario . Los valores de otras variables se pueden encontrar posteriormente de la misma manera. En total, se requieren ejecuciones del algoritmo, dondeΦΦ{x1=TRUE}Φx1TRUEx1=TRUEx1=FALSEn+1n es el número de variables distintas en .Φ

Kyle Jones
fuente
-4

La respuesta correcta es que la determinación de si existe una solución y la determinación de una solución son computacionalmente distintas. No todos los métodos para determinar si existe una solución pueden producir una solución. Existe una solución al problema de la Ruta Hamiltoniana que puede determinar si existe una ruta pero no puede producirla. Dicho esto, la pregunta es discutible por arxiv.org/abs/cs/0205064.

Jorge
fuente