Dada una instancia tautológica de DNF-SAT, ¿se conserva la tautología después de agregar un nuevo literal [math] v [/ math] o [math] \ bar {v} [/ math] a una cláusula que se sabe que está en PTIME?

Este problema es co-NP-completo. Está en co-NP porque un DNF tautológico es solo la negación de un CNF insatisfactorio y co-3SAT es un problema co-NP-completo que determina si un CNF es insatisfactorio.

Aquí hay una reducción de co-3SAT para mostrar que es co-NP-hard. Comience con una instancia de co-3SAT. Agregue dos nuevas cláusulas, [math] x [/ math] y [math] \ bar {x} [/ math] donde [math] x [/ math] es una nueva variable que no está en la instancia original. Esto definitivamente es insatisfactorio, por lo que su negación es un DNF tautológico. Si agregamos una nueva variable [math] v [/ math] a la cláusula que contiene solo [math] x [/ math], las últimas dos cláusulas se convierten en [math] x \ wedge v [/ math] y [math] \ bar {x} [/ matemáticas].

Estas cláusulas satisfacen la fórmula si [math] x [/ math] es falso o [math] v [/ math] es verdadero, dejando solo el caso donde [math] x [/ math] es verdadero y [math] v [/ matemáticas] es falso. Como [math] x [/ math] y [math] v [/ math] no aparecen en el resto del DNF, todos estos casos son satisfactorios si y solo si el DNF restante es una tautología, que es equivalente a la El CNF original es insatisfactorio. Por lo tanto, el DNF que producimos sigue siendo una tautología si y solo si la instancia original de co-3SAT no era satisfactoria. Esto finaliza la prueba de que este problema es co-3SAT-complete.

Debido a que esto es co-3SAT-complete, saber que está en PTIME implicaría que P = NP. Por lo tanto, no sabemos si está en PTIME y la mayoría de la gente cree que no está en PTIME.

More Interesting

Cómo hacer un programa en c ++ que pueda factorizar un número de 10 dígitos

¿Cuál es el límite y cómo puedo probar: [math] \ lim_ {n \ rightarrow \ infty} {n ^ dn ^ c} [/ math] cuando [math] 0 \ leq c <d [/ math]?

¿Cuál es la diferencia entre la lógica temporal y el cálculo del proceso?

¿Qué tan avanzada es la criptografía NSA en relación con la criptografía académica?

¿Cómo se puede escribir un programa Java que imprima un conjunto completo de las primeras cuatro tablas de multiplicación (hasta 12) organizadas en columnas?

¿Es importante tener una excelente comprensión de la informática teórica para convertirse en un mejor programador?

¿De cuántas maneras podemos dividir una cadena de 10 caracteres en más de 2 subcadenas consecutivas no vacías?

¿Existe un número distinto de cero para el cual su representación doble y larga es equivalente en bits?

¿Cuál es la forma más sencilla de entender las máquinas de Turing y el problema del castor ocupado?

Para alguien que no sabe nada de informática, ¿por qué el conocimiento de las matemáticas es tan importante para ser un buen programador?

¿Cómo determina esta función si hay una superposición entre dos rangos?

¿Existe, por casualidad, alguna interconexión entre la teoría de la complejidad computacional y el aprendizaje profundo?

¿P = NP?

¿Existe un tipo de conjunto que se define al tener un elemento de tipo 'otro' para el resto del conjunto?

¿De qué manera aprender matemáticas avanzadas me haría un mejor programador?