En relación con el hilo Probar que la conversión de CNF a DNF es NP-Hard (y un hilo matemático relacionado ):
¿Qué tal la otra dirección, de DNF a CNF? ¿Es fácil o difícil?
En la página 2 de este documento , parecen insinuar que ambas direcciones son igualmente difíciles cuando dicen " Estamos interesados en el aumento de tamaño máximo al cambiar de la representación CNF a la representación DNF (o viceversa) ".
Pero DNF-SAT está en P y CNF-SAT es NP- completo. Así que dada una expresión DNF , debe haber una equisatisfiable CNF expresión cuya longitud es polinomio en la longitud de . Y la se puede hacer en tiempo poli. ¿Es esto correcto?
Editar: se cambió el equivalente a equisatisfiable (es decir, se permiten variables adicionales en ).
complexity-theory
logic
satisfiability
normal-forms
Martin Seymour
fuente
fuente
Respuestas:
Si está dispuesto a introducir variables adicionales, puede convertir de DNF a CNF en tiempo polinomial utilizando la transformación Tseitin . La fórmula CNF resultante será equivalente a la fórmula DNF original: la fórmula CNF será satisfactoria si y solo si la fórmula DNF original fuera satisfactoria. Ver también https://en.wikipedia.org/wiki/Conjunctive_normal_form#Conversion_into_CNF .
Si no desea permitir la introducción de variables adicionales, la conversión de DNF a CNF es muy difícil. En particular, probar si una fórmula de DNF es una tautología es co-NP-hard. Sin embargo, probar si una fórmula CNF es una tautología se puede hacer en tiempo polinomial (solo verifica por separado si cada cláusula es una tautología, lo cual es fácil ya que cada cláusula es una disyunción de literales). Por lo tanto, si pudiera convertir la forma DNF a la forma CNF en tiempo polinómico, sin introducir nuevas variables, entonces obtendría un algoritmo de tiempo polinómico para probar si una fórmula DNF es una tautología, algo que parece poco probable, dado que esperamos P no es igual a co-NP. O, para decirlo de otra manera, la conversión de DNF a CNF sin introducir variables adicionales es co-NP-hard.
Esta es la diferencia entre equivalencia vs equisatisfabilidad . La equivalencia requiere que las dos fórmulas tengan el mismo conjunto de soluciones (y, por lo tanto, no permite la introducción de variables adicionales). La falta de satisfacción solo requiere que ambas fórmulas sean satisfactorias o ambas no lo sean (y, por lo tanto, permite introducir variables adicionales).
fuente