Siguiente: Otros problemas completos-NP en
Un nivel arriba: Formas proposicionales y el
Anterior: Formas booleanas
- Problema SAT
- Consiste en decidir si acaso una forma proposicional dada es satisfactible.
Formalmente el problema se especifica como sigue:
Instancia:
Solución:
Toda instancia
de SAT puede verse como una palabra sobre el alfabeto
de n0+7 símbolos. Si la longitud de esta palabra es n tenemos que
- 1.
- hay a lo sumo
apariciones de variables,
- 2.
- la cadena se codifica como una palabra de longitud
sobre el alfabeto .
En efecto,
- (a)
- a cada variable Xj la codificamos por la palabra formada por un símbolo x seguido de la representación de j en base 2. Digamos,
.
- (b)
- codifiquemos a cada uno de los símbolos en uso actual como se indica en la Tabla 7.1.
Table 7.1:
Codificación de símbolos.
Símbolo |
Código |
Símbolo |
Código |
( |
1 |
|
110 |
) |
10 |
|
111 |
|
11 |
x |
1000 |
|
100 |
0 |
1001 |
|
101 |
1 |
1010 |
|
- (c)
- cada cadena en el lenguaje proposicional se transcribe como una cadena de cadenas de 0's y 1's. V.gr,:
- (d)
- A una cadena de cadenas de 0's y 1's. la representamos, mediante una sola cadena de 0's y 1's, cambiando cada 1 por 10, cada 0 por 0 mismo y cada ``,'' por 11. V.gr,:
- 3.
- Consecuentemente, respecto a reducciones en espacio logarítmico es irrelevante utilizar el alfabeto
o el alfabeto
pues
Lo mismo vale respecto a reducciones polinomiales.
Teorema 3.1 (Cook, 1971)
SAT es completo-NP.
Demostración: Veamos primeramente que
.
Dada una instancia
,
se genera una asignación
de manera no determinista. La evaluación de F sobre
requiere un tiempo proporcional al número de conectivos que aparecen en F el cual está limitado por la propia longitud de F.
Veamos ahora que
es difícil-
.
Para esto, hay que ver que cualquier problema en NP se reduce a SAT, para lo cual veremos que para cualquier máquina de Turing no-determinista M, acotada en tiempo por un polinomio p(n), podemos construir un traductor logarítmico
de manera que
Consideremos una computación terminal en M, correspondiente a una entrada
de longitud n. Esta es una sucesión finita de descripciones instantáneas cuya longitud es O(p(n)). Escribámosla
Cada
involucra del orden de p(n) símbolos. De hecho, podemos confundir a la pareja qiai como un solo símbolo (nuevo) qiaimi, donde mi indica al movimiento que hace M estando en el estado qi y encontrando el símbolo ai.
Así, se puede escribir la computación
como una palabra de longitud
(p(n)+1)2 sobre un cierto alfabeto A'.
Consideremos el conjunto de variables proposicionales
La intención de cada una de estas variables es
La construcción de
se hará teniendo en mente lo siguiente:
- 1.
- Para cada i existe un único a tal que Xia es verdadero.
- 2.
- La descripción inicial
es de la forma
.
- 3.
- La última descripción
es terminal.
- 4.
- Cada descripción
se sigue de su anterior
según las transiciones de la máquina M.
De acuerdo con el punto 1 anterior definamos
|
(16) |
De acuerdo con el punto 2 anterior consideremos lo siguiente:
- La descripción inicial
,
como cualquier otra, va entre dos ``'''s. Sea
|
(17) |
- El primer símbolo de
corresponde al símbolo compuesto formado por el estado inicial q0 de M y el símbolo inicial x1 de
.
Sea
|
(18) |
- Los siguientes n-1 símbolos de
corresponden a los símbolos xi que conforman a
.
Sea
|
(19) |
- El resto de
se llena con blancos. Sea
|
(20) |
Tomemos pues a la conjunción de las fórmulas en las ecuaciones 7.2-7.5:
|
(21) |
De acuerdo con el punto 3 anterior definamos
|
(22) |
Finalmente, para expresar la necesidad de que dos descripciones contiguas
y
se ajustan a las transiciones de M, observamos que tales dos descripciones han de coincidir en todas partes salvo en las posiciones vecinas a los símbolos compuestos correspondientes a estados. Definamos entonces un predicado
tal que
Con
podemos simular efectivamente las transiciones de M.
Sea entonces
|
(23) |
La forma proposicional a construir es entonces la conjunción de las fórmulas 7.1, 7.6, 7.7 y 7.8:
|
(24) |
De su misma construcción tenemos que toda computación terminal, con inicio en
,
determina una asignación que satisface a la fórmula
y, viceversa, toda asignación que satisfaga a esta fórmula determina también a una computación terminal a partir de
.
Siguiente: Otros problemas completos-NP en
Un nivel arriba: Formas proposicionales y el
Anterior: Formas booleanas
Guillermo Morales-Luna
2000-07-10