• No se han encontrado resultados

SAT es NP-completo

In document apunte muy bueno.pdf (página 143-147)

Observaci´on 6.5 En la pr´actica, es bueno conocer un conjunto variado de problemas NP- completos. Eso ayudar´a a intuir que un problema dado es NP-completo, y tambi´en qu´e problema NP-completo conocido se puede reducir a ´el, para probar la NP-completitud. Si un problema es NP-completo, en la pr´actica no es esperable resolverlo eficientemente, por lo que se deber´a recurrir a algoritmos aproximados, probabil´ısticos, o meras heur´ısticas para tratarlo.

6.4

SAT es NP-completo

[AHU74, sec 10.4]

Lo que hemos visto nos entrega herramientas para mostrar que un problema es NP- completo mediante reducir a ´el otro problema que ya sabemos que es NP-completo. Pero, ¿c´omo obtenemos el primer problema NP-completo? No es f´acil, pues debemos demostrar que cualquier problema NP reduce a ´el.

El lenguaje que elegiremos como nuestro primer problema NP-completo se llama sat. Definici´on 6.9 El lenguajesates el de las f´ormulas proposicionales satisfactibles, es decir,

aquellas que es posible hacer verdaderas con alguna asignaci´on de valor de verdad a sus variables. Permitiremos los par´entesis, la disyunci´on , la conjunci´on , y la negaci´on . Los nombres de las variables proposicionales ser´an cadenas sobre alg´un alfabeto de letras, aunque por simplicidad pensaremos en letras individuales (no har´a diferencia). Llamaremos

literales a variables o variables negadas, conjunciones a f´ormulas de la forma P1∧. . .∧Pq

y disyunciones a f´ormulas de la forma P1∨. . .∨Pq.

Observaci´on 6.6 Si una f´ormula P tiene una cantidad peque˜na k de variables proposicionales distintas, se puede probar una a una las 2k combinaciones de valores de

verdad y ver si alguna combinaci´on hace P verdadera. El problema es que k puede ser cercano al largo de P, con lo cual este m´etodo toma tiempo exponencial en el largo de la entrada.

Ejemplo 6.4 Considere la f´ormula

(p ∨ ∼q ∨ r) ∧ (∼p ∨ q ∨ ∼r) ∧ (∼p ∨ ∼q ∨ r) ∧ (p ∨ ∼q ∨ ∼r)

∧ (∼p∨ ∼q ∨ ∼r) ∧ (p ∨ q ∨ r)

¿Es satisfactible? Toma algo de trabajo, pero s´ı lo es, con las asignaciones p= 0, q= 0 y r= 1, o

p= 1,q = 0 yr= 0 (estamos escribiendo 1 para verdadero y 0 para falso).

Para mostrar que sat es NP-completo, debemos comenzar mostrando que sat ∈ N P. Esto es evidente: Una MTND puede adivinar los valores a asignar a las variables y luego evaluar la f´ormula en tiempo polinomial.

La parte compleja es mostrar que todo L ∈ N P reduce a sat. La idea esencial es que, si L ∈ N P, entonces existe una MTND M = (K,Σ,∆, s) que se detiene en tiempo p(|w|)

o menos sii w L, donde p(n) es un polinomio. A partir de M, w y p, construiremos una f´ormula proposicional P que ser´a satisfactible sii M se detiene frente a w en a lo sumo p(n) pasos. Esta construcci´on fM,p(w) = P ser´a nuestra funci´on f, por lo que debemos cuidar que P tenga largo polinomial en |w| y que se pueda escribir en tiempo polinomial.

La f´ormula P debe expresar todo el funcionamiento de una MTND, incluyendo afirmaciones que nosotros mismos hemos obviado por ser intuitivas. Comenzaremos con un par de simplificaciones y observaciones para lo que sigue.

• Como la MTND arranca en la configuraci´on (s,#w#), enp(|w|) pasos s´olo puede llegar a la celda n´umerop′(w) = |w|+ 2 +p(|w|), el cual tambi´en es un polinomio en|w|.

• Modificaremos la MTNDM para que, si llega al estadoh en un paso anterior ap(|w|), se mantenga en ese estado de ah´ı en adelante. De este modo w ∈ L sii M est´a en el estado h en el paso p(|w|). No es dif´ıcil de hacer esta modificaci´on: basta agregar las reglas (h, a, h, a) a ∆, para todoa∈Σ (notar que esto no est´a realmente permitido en el formalismo, pero lo podemos hacer).

Utilizaremos las siguientes variables proposicionales en P. De ahora en adelante llamaremos n=|w|, y renombraremos Σ = {1, 2, . . . , |Σ|} y K ={1, 2, . . . , |K|}.

• C(i, j, t), para cada 1≤i≤p′(n), 1j ≤ |Σ|, 0tp(n), se interpretar´a como que

en la celda i, en el pasot, est´a el car´acter j.

• H(i, t), para cada 1ip′(n), 0tp(n), se interpretar´a como que el cabezal est´a

en la celda i en el paso t.

• S(k, t), para cada 1k≤ |K|, 0tp(n), se interpretar´a como que la MTND est´a en el estado k en el paso t.

La cantidad de variables proposicionales esO(p′(n)2) (puesKy Σ son constantes, siempre

nos referimos al largo de w). Como tenemos que usar un alfabeto fijo para los nombres de variables, realmente los largos que reportamos a continuaci´on deben multiplicarse por algo del tipo logp′(n) =O(logn), lo cual no afecta su polinomialidad.

La f´ormula P tiene siete partes:

P = A B C D E F G

cada una de las cuales fija un aspecto de la computaci´on:

A: El cabezal est´a exactamente en un lugar en cada paso de una computaci´on.

A = ^

0≤t≤p(n)

6.4. SAT ES NP-COMPLETO 145

Hemos usado la notaci´on U para indicar que uno y s´olo uno de los argumentos debe ser verdadero, es decir,

U(x1, x2, . . . , xr) = _ 1≤m≤r xm ! ∧ ^ 1≤m<m′r ∼(xmxm′) ! .

Como el largo de U es O(r2), el largo deA esO(p(n)3).

B: Cada celda contiene exactamente un s´ımbolo en cada paso de una computaci´on.

B = ^

1≤i≤p′(n)

0≤t≤p(n)

U(C(i,1, t), C(i,2, t), . . . , C(i,|Σ|, t)),

cuyo largo es O(p′(n)2).

C: La MTND est´a exactamente en un estado en cada paso de una computaci´on.

C = ^

0≤t≤p(n)

U(S(1, t), S(2, t), . . . , S(|K|, t)),

cuyo largo es O(p′(n)).

D: La ´unica celda que puede cambiar entre un paso y el siguiente es aquella donde est´a el cabezal. D = ^ 1≤i≤p′(n) 1≤j≤|Σ| 0≤t<p(n) (H(i, t) (C(i, j, t)C(i, j, t+ 1)),

donde hemos abreviado x y para decir (x y) ( x ∧ ∼ y). El largo de D es

O(p′(n)2).

E: Reci´en aqu´ı empezamos a considerar la M espec´ıfica, pues lo anterior es general para toda MT. En E se especifica lo que ocurre con la posici´on del cabezal y el contenido de la cinta en esa posici´on en el siguiente instante de tiempo, seg´un las opciones que d´e el ∆ de M. E = ^ 1≤i≤p′(n) 1≤j≤|Σ| 1≤k≤|K| 0≤t<p(n) (C(i, j, t) H(i, t) S(k, t)) = W (k,j,kℓ,bℓ)∈∆(C(i, jℓ, t+ 1) ∧ H(iℓ, t+ 1) ∧ S(kℓ, t+ 1)),

• Sibℓ Σ, iℓ =i y jℓ =bℓ.

• Sibℓ =, iℓ =i1 y jℓ =j Esta regla se agrega s´olo sii >1.

• Sibℓ =, iℓ =i+ 1 y jℓ =j.

El tama˜no de E es O(p′(n)2). N´otese c´omo aparece el no determinismo aqu´ı. Dada

una P que afirma algo para cierto t, para el tiempo t+ 1 vale la disyunci´on de varias posibilidades, seg´un la MTND.

F: Establece las condiciones en que comienza la computaci´on.

F = S(s,0)H(n+2,0)C(1,#,0) ^ 2≤i≤n+1 C(i, wi−1,0)∧ ^ n+1<i≤p′(n) C(i,#,0),

donde recordemos que s, # y los wi son todos n´umeros.

G: Establece, finalmente, que M est´a en el estado h en el instante p(n).

G = S(h, p(n)).

Teorema 6.1 sat es NP-completo.

Prueba: Vimos que sat ∈ N P. Luego, mostramos c´omo reducir polinomialmente cualquier

L ∈ N P a sat: Describimos la construcci´on de una f´ormula proposicional P =fM,p(w) que dice

que existe una computaci´on deM que empieza en la configuraci´on (s,#w#) y llega al estadoh en el paso p(n). Es posible hacer verdadera P (es decir, P sat) siiM acepta w (es decir, wL). Asignar los valores de las variables proposicionales C(i, j, t), H(i, t) y S(k, t) equivale a decir qu´e computaci´on elegiremos que sea v´alida y termine en el estadoh. Si|w|=n,|P|=O(p′(n)3logn), es decir polinomial en |w|, y puede construirse f´acilmente en tiempo polinomial. 2

Observaci´on 6.7 Esto significa que, si hall´aramos un m´etodo determin´ıstico de tiempo polinomial para resolver sat, inmediatamente podr´ıamos resolver en tiempo polinomial cualquier problema en N P. Basta construir una MTND M que lo resuelva, hallar el polinomiop(n)que acota el tiempo en que operar´a, construir laP correspondiente a partir de

M, p y la cadenaw que nos interesa saber si est´a en L, y finalmente determinar en tiempo polinomial si P es satisfactible.

Definici´on 6.10 Una f´ormula proposicional est´a en forma normal conjuntiva (FNC) si es una conjunci´on de disyunciones de literales. sat-fnc es el lenguaje de las f´ormulas

satisfactibles que est´an en forma normal conjuntiva. Lema 6.9 sat-fnc es NP-completo.

Prueba: Determinar si una f´ormula est´a en FNC es simple, de modo que el verdadero problema es saber si es satisfactible. Ya sabemos que sat es NP-completo, pero podr´ıa ser que este caso particular fuera m´as f´acil. No lo es. La f´ormulaP que se construye parasatest´a pr´acticamente en FNC, s´olo hay que redistribuir algunas f´ormulas de tama˜no constante enDyE. Por ejemplo, enD, debemos convertirx∨(y≡z), es decir,x∨(y∧z)∨(∼y∧ ∼z), en (x∨y∨ ∼z)∧(x∨ ∼y∨z). En el caso deE la f´ormula tambi´en es de largo constante (independiente den). 2

In document apunte muy bueno.pdf (página 143-147)