Me he encontrado con el algoritmo polinómico que resuelve 2SAT. Me ha parecido sorprendente que 2SAT esté en P, donde todas (o muchas otras) de las instancias de SAT son NP-Complete. ¿Qué hace que este problema sea diferente? ¿Qué lo hace tan fácil (NL-Complete, incluso más fácil que P)?
55
Respuestas:
Aquí hay una explicación más intuitiva y sin pretensiones en la línea de la respuesta de MGwynne.
Con -SAT, solo puede expresar implicaciones de la forma , donde y son literales. Más precisamente, cada cláusula l_1 puede entenderse como un par de implicaciones: y . Si se establece true, debe ser cierto también. Si establece en falso, debe ser falso. Tales implicaciones son sencillas: no hay elección, solo tiene2 a⇒b a b 2 l1∨l2 ¬l1⇒l2 ¬l2⇒l1 a b b a 1 posibilidad, no hay espacio para la multiplicación de casos. Que sólo puede seguir todas las posibles implicaciones de la cadena, y ver si alguna vez deriva tanto de y de : si lo hace por alguna , entonces la fórmula 2-SAT es insaciable, de lo contrario es satisfiable. Es el caso de que el número de posibles cadenas de implicación está polinómicamente limitado en el tamaño de la fórmula de entrada.¬l l l ¬l l
Con -SAT, se puede expresar implicaciones de la forma , donde , y son literales. Ahora usted está en problemas: si se establece true, entonces o bien o debe ser cierto, pero ¿cuál? Tienes que elegir: tienes 2 posibilidades. Aquí es donde la multiplicación de casos se hace posible, y donde surge la explosión combinatoria.3 a⇒b∨c a b c a b c
En otras palabras, -SAT puede expresar la presencia de más de una posibilidad, mientras que -SAT no tiene esa capacidad. Es precisamente esa presencia de más de una posibilidad ( posibilidades en el caso de -SAT, posibilidades en el caso de -SAT) lo que causa la explosión combinatoria típica de problemas NP-completos.3 2 2 3 k−1 k
fuente
Considere la resolución en una fórmula 2-SAT. Cualquier resolución es de tamaño máximo 2 (tenga en cuenta que si para cláusulas de longitud y resp). El número de cláusulas de tamaño 2 es cuadrático en el número de variables. Por lo tanto, el algoritmo de resolución está en P.n+m−2≤2 n,m≤2 n m
Una vez que llegue a 3-SAT, puede obtener solventes cada vez más grandes, por lo que todo tiene forma de pera :).
Intenta traducir un problema a 2-SAT. Como no puede tener cláusulas de tamaño 3, no puede (en general) codificar implicaciones que involucren 3 variables o más, por ejemplo, que una variable es el resultado de una operación binaria en otras dos. Esta es una gran restricción.
fuente
Como dice Walter, las cláusulas de 2-SAT tienen una forma especial. Esto puede ser explotado para encontrar soluciones rápidamente.
En realidad, hay varias clases de instancias SAT que se pueden decidir en tiempo polinómico, y 2-SAT es solo una de estas clases manejables . Hay tres tipos generales de razones para la trazabilidad:
(Trazabilidad estructural) Cualquier clase de instancias SAT en las que las variables interactúen en forma de árbol se puede resolver en tiempo polinómico. El grado del polinomio depende del ancho máximo de instancias en la clase, donde el ancho mide qué tan lejos está una instancia de ser un árbol. Más precisamente, Marx demostró que si las instancias tienen un ancho submodular limitado, entonces la clase se puede decidir en tiempo polinomial utilizando un enfoque de divide y vencerás.
(Trazabilidad del lenguaje) Cualquier clase de instancias SAT donde el patrón de variables verdadero-falso es "agradable", puede resolverse en tiempo polinómico. Más precisamente, el patrón de literales define un lenguaje de relaciones, y Schaefer clasificó los seis idiomas que conducen a la trazabilidad, cada uno con su propio algoritmo. 2-SAT forma una de las seis clases de Schaefer.
(Trazabilidad híbrida) También hay algunas clases de instancias que no se incluyen en las otras dos categorías, pero que pueden resolverse en tiempo polinómico por otras razones.
fuente
Si comprende el algoritmo para 2SAT, ya sabe por qué está en P: esto es precisamente lo que demuestra el algoritmo. Creo que este cómic ilustra mi punto. Como ya sabe por qué 2SAT está en P, lo que probablemente quiera saber es por qué 2SAT no es NP-hard.
Para comprender por qué 2SAT no es NP-hard, debe tener en cuenta lo fácil que es reducir otros problemas en NP. Para obtener una comprensión intuitiva de esto, observe cómo SAT puede reducirse a 3SAT e intente aplicar las mismas técnicas para reducir SAT a 2SAT. 2SAT no es tan expresivo como 3SAT y otras variantes de SAT.
fuente