¿Por qué se usa CNF para SAT y no DNF?


22

No entiendo por qué casi todos los solucionadores de SAT usan CNF en lugar de DNF. Me parece que resolver SAT es más fácil usando DNF. Después de todo, solo tiene que explorar el conjunto de implicantes y verificar si uno de ellos no contiene tanto una variable como su negación. Para CNF, no existe un procedimiento simple como este.


55
No todos los solucionadores de restricciones usan CNF como entrada. Algunos prefieren no hacerlo, porque se preserva la estructura del conjunto de restricciones original.
Dave Clarke

1
Esta pregunta tiene una premisa errónea y no creo que merezca una calificación tan alta como la formulada actualmente. SAT se define como la solución de fórmulas CNF. existe un problema para resolver DNF (incluso podría llamarse encontrar tareas satisfactorias ) pero no se llama / apoda SAT en CS. En mi opinión, esto debería migrarse a cs.se ... otra nota: la conversión de CNF a DNF y viceversa es en realidad muy similar o puede verse como un algoritmo de compresión que falla gravemente en casos particulares (lo que lleva a una explosión exponencial) en tamaño)
vzn

10
@vzn: en realidad, "SAT" se usa a veces para referirse al problema de encontrar una asignación satisfactoria para cualquier fórmula booleana. CNF-SAT es solo el caso especial más interesante, por lo que tendemos a usar "SAT" para referirnos a CNF-SAT en particular como una especie de sinédodo. DNF-SAT, por supuesto, es eficientemente solucionable, de la misma manera que CNF-TAUTOLOGY es eficientemente solucionable. La pregunta parece estar basada en no darse cuenta de eso.
Niel de Beaudrap

Respuestas:


56

La reducción del libro de texto de SAT a 3SAT, debido a Karp, transforma una fórmula booleana arbitraria en una fórmula booleana "equivalente" CNF Φ ' de tamaño polinómico , de modo que Φ es satisfactoria si y solo si Φ es satisfactoria. (Estrictamente hablando, estas dos fórmulas no son equivalentes, porque Φ tiene variables adicionales, pero el valor de Φ ′ en realidad no depende de esas nuevas variables).ΦΦ ΦΦΦΦ

No se conoce una reducción similar de fórmulas booleanas arbitrarias a fórmulas DNF; Todas las transformaciones conocidas aumentan el tamaño de la fórmula exponencialmente. Además, a menos que P = NP, ¡no es posible tal reducción!


afaik la conversión de DNF a CNF y viceversa no es exactamente lo mismo que P vs NP, aunque probablemente se relaciona con algunas separaciones de clase de complejidad importantes (aparentemente para clases "más grandes" que NP) ... el problema es que puede conducir a un aumento exponencial de tamaño ... y en cualquier caso la conversión entre CNF y DNF no es un problema de decisión ... hay varias maneras de convertirlo en un problema de decisión ...
vzn

10
Creo que el punto de JeffE fue que DNF-SAT está en P, por lo que no puede ser NP completo a menos que P = NP.
Luke Mathieson el

2
"todas las transformaciones conocidas" no son correctas dado el conocimiento actual, afaik hay fórmulas / conversiones de DNF <=> CNF que probablemente requieren una explosión espacial exponencial independientemente del algoritmo ... supongo que parece que la discusión sobre la conversión de CNF <=> DNF fue muy relevante a esta pregunta y esta respuesta lo insinúa ... ¿se usa la abreviatura "DNF-SAT" en alguna parte de la literatura? no recuerdo haberlo visto yo mismo ... me parece intrínsecamente confuso ... la satisfacción de DNF es un problema de decisión, la conversión de DNF <-> CNF es un problema de función y la respuesta no deja esa distinción demasiado clara; una gran respuesta sería ...
vzn

@ Jɛ ff E: ¿te importaría aclarar lo que quieres decir con "fórmula booleana arbitraria" aquí? Mirando el artículo de Karp , página 92, la SATISFIABILIDAD se define en las fórmulas CNF. Esto no afecta su respuesta a la pregunta del OP, pero estoy tratando de asegurarme de que no haya resultados más generales para fórmulas booleanas arbitrarias (es decir, fórmulas que no están necesariamente en CNF). Gracias
lyes

22

Se dijeron la mayoría de las cosas importantes, pero me gustaría enfatizar algunos puntos.

  1. La satisfacción de una fórmula de DNF es P
  2. La satisfacción de una fórmula CNF es NP
  3. probar si una fórmula CNF es una tautología es P
  4. probar si una fórmula de DNF es una tautología es coNP
  5. negar el DNF produce CNF y viceversa

Por lo tanto, los solucionadores SAT usan CNF porque apuntan a la satisfacción y cualquier fórmula puede traducirse a un CNF mientras se conserva la satisfacción en el tiempo lineal.



1
@TayfunPay lo hacen. Por ejemplo, . Si no permite cláusulas que contienen la misma variable dos veces, entonces hay una única representación de una tautología, que es el conjunto vacío de cláusulas. {{¬xx}}
Mikolas

3
@Tayfun, aunque estoy de acuerdo en que las definiciones normalmente no permiten variables repetidas en las cláusulas, no creo que haya visto una definición que rechace el conjunto vacío de cláusulas. (Y no me queda claro por qué querrías hacer eso)
Mikolas

2
@Tayfun 1) ¿podría señalarme una publicación que diga que no hay tautologías en CNF o que el conjunto vacío de cláusulas no es CNF? 2) si no permite el conjunto vacío de cláusulas, entonces también debe rechazar la cláusula vacía y tampoco puede representar falso 3) si no permite verdadero y / o falso en CNF, está perdiendo la propiedad de poder representar todas las funciones booleanas, ¿por qué querrías hacer eso?
Mikolas

1
"no debería haber repetición de variables ni literales en ninguna cláusula dada". --- eso no permite fórmulas o cláusulas vacías. Por cierto, si no permite la cláusula vacía, ya no puede hacer pruebas de refutación de resolución, que constituyen una parte bastante importante del razonamiento automatizado.
Mikolas

18

Los solucionadores de SAT no "usan" el CNF: a menudo reciben CNF como entradas y hacen todo lo posible para resolver el CNF que reciben. Como su pregunta señala, la representación lo es todo: es mucho más fácil saber si una DNF es satisfactoria que una CNF del mismo tamaño.

Esto lleva a la pregunta de por qué los solucionadores de SAT no pueden simplemente convertir su CNF dado en un DNF y resolver el DNF resultante, e intentar este es un buen ejercicio para comprender los problemas de representación.


11

7 º de septiembre de 2013: Además añadió respuesta, verificación final de la página


Básicamente, una fórmula de DNF es una disyunción de las cláusulas , donde cada cláusula c i = l i , 1. . . l i , k es una conjunción de literales. Llamemos a una cláusula c i conflictiva si y solo si contiene tanto un literal l como su negación ¬ l . Es fácil ver que cada cláusula no conflictiva solo codifica 2 n - kc1...cmci=li,1...li,kcil¬l2nksoluciones de la fórmula. Entonces, todo el DNF es solo una enumeración de soluciones. Una fórmula puede tener exponencialmente muchas soluciones, por lo que la fórmula DNF correspondiente puede tener exponencialmente muchas cláusulas. Intenta convertir esta fórmula CNF:

l1l2l3l4

l5l6l7l8

l9l10l11l12

l13l14l15l16

l17l18l19l20

a su fórmula DNF correspondiente: obtendrá demasiadas cláusulas. En una palabra: CNF es compacto, mientras que DNF no lo es; CNF es implícito, mientras que DNF es explícito.

El siguiente problema es NP-complete: dada una instancia de DNF, ¿hay una asignación de variables que falsifique todas las cláusulas?


44
Para obtener el formato correcto de LaTeX, reemplace \ yy \ o con \ land y \ lor (o \ wedge y \ vee).
Jeffε

2
No hay nada inherentemente más compacto sobre una transformación al CNF regular, la clave real de la pregunta OP es el hecho de que puede crear esas funciones CNF "equisatisfacibles" con variables auxiliares. Probablemente haya una aproximación similar que puede hacer con el DNF para resolver un problema diferente en lugar de probar la capacidad de satisfacción. (funciones equi-insatisfabilidad? ...)
dividebyzero

1
Esta idea de Giorgio Camerani no es buena. El mismo aumento exponencial en el número de cláusulas puede ocurrir si convierte algo a CNF. Elija este mismo ejemplo y reemplace "y" s con "o" s. La conversión de esta pequeña expresión de DNF a CNF será enorme de todos modos. Tienen una pequeña relación de ying y yang con ellos.
dividebyzero

@dividebyzero: He dedicado una respuesta separada para abordar sus comentarios.
Giorgio Camerani

6

Me acabo de dar cuenta de una cosa más, que con suerte merece una respuesta por separado. La presunción de la pregunta no es del todo cierto. Un diagrama de decisión binario (BDD) podría verse como una representación compacta / refinada de DNF. Ha habido algunos solucionadores de SAT que usan BDD, pero creo que ya no aparecen.

Hay un bonito artículo de Darwiche y Marquis que estudia diferentes propiedades de varias representaciones de funciones booleanas.


4

Esta respuesta adicional se entiende como una retroalimentación al comentario de dividebyzero a mi respuesta anterior.

Como dice dividebyzero, es cierto que CNF y DNF son dos caras de la misma moneda.

PNPcomplete

PNPcomplete

En un extremo tenemos contradicciones, es decir, fórmulas insatisfactorias. En el extremo opuesto tenemos Tautologías, es decir, fórmulas imposibles de verificar. En el medio, tenemos fórmulas que son tanto satisfactorias como falsificables.

nk2nk

nk2nk

k=02nNPcomplete

k=02nNPcomplete

2n

2n

Bajo esta luz, queda más claro por qué la Satisfabilidad CNF y la Falsificabilidad DNF son equivalentes en términos de dureza computacional. Porque en realidad son el mismo problema, ya que la tarea subyacente es exactamente la misma: saber si la unión de varios conjuntos es igual al espacio de todas las posibilidades . Dicha tarea nos lleva al ámbito más amplio de contar, que es, en mi humilde opinión, una de esas vías a explorar fervientemente para tener la esperanza de lograr un progreso no despreciable en estos problemas (dudo que se realicen más investigaciones sobre solucionadores basados ​​en resolución eventualmente puede traer avances teóricos innovadores, mientras que ciertamente continúa trayendo avances prácticos sorprendentes).

La dificultad de tal tarea es que esos conjuntos se superponen enormemente, en una forma de inclusión - exclusión.

La presencia de tal superposición es precisamente donde reside la dureza de contar. Además, el hecho de que dejemos que esos conjuntos se superpongan es la razón que nos permite tener fórmulas compactas cuyo espacio de solución es, sin embargo, exponencialmente grande.


4

He decidido convertir todas estas respuestas en este hilo (especialmente la respuesta de Giorgio Camerani) en una buena tabla para que la dualidad sea visible de un solo vistazo:

DNFCNFtautology/unfalsifiabilitycoNP-completeP(each clause has a pair of P and ¬P)satisfiabilityP(sat. assignments are explicit)NP-completefalsifiabilityNP-completeP(fals. assignments are explicit)unsatisfiabilityP(each clause has a pair of P and ¬P)coNP-completeconversion to normal form, retaining equivalence()()conversion to normal form, retaining satisfiability()FPconversion to normal form, retaining falsiabilityFP()

()

()()FPNP[1]

La respuesta más corta a la pregunta: mostrar satisfacción (resolver SAT) a través de DNF solo se puede hacer en tiempo exponencial de acuerdo con la tabla anterior.


1
¿Qué es una "fórmula PL" y qué significa "NF"?
Joshua Grochow

44
Hay algunos problemas aquí. (1) Creo que por "no falsabilidad" te refieres a "tautología". (2) KNF debe ser CNF.
Huck Bennett

2
A(φ)φφA(φ)φA(φ)

1
(1) "lógica predicativa" debe ser "lógica proposicional". (2) Las conversiones a formas normales no son problemas de decisión, sino problemas de función (o más bien, problemas de búsqueda, ya que las "formas normales" no son únicas). Entonces, las clases de decisión dadas en la tabla son inapropiadas.
Emil Jeřábek apoya a Monica el

1
Δ3P
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.