Page 1

Introducción a la Complejidad Computacional • El an´alisis sobre decidibilidad que hemos hecho nos permite saber qu´e podemos hacer y qu´e no podemos hacer. • Pero nada sabemos de qu´e tan dif´ıcil resolver los problemas en t´erminos de complejidad computacional. • M´as que clasificar los problemas en cuanto a su tiempo de ejecuci´ on, nos interesa clasificarlos en t´erminos de su tratabilidad. • Diremos que un problema de decisi´ on es tratable si se conoce un algoritmo polinomial que lo resuelva, para cada instancia posible del problema. • Normalmente utilizaremos indistintamente los t´erminos tratable y eficiente. • Consideremos el problema de satisfacibilidad de l´ ogica proposicional: Sea ϕ ∈ L(P ), ¿es ϕ satisfactible? Jorge Baier Aranda, PUC

<< Atr´as

250


• Sabemos que este problema es decidible, pero, en t´erminos computacionales ¿qu´e tan dif´ıcil es resolverlo? • Lamentablemente, para este problema no se conoce un algoritmo polinomial (eficiente)... • Pero tampoco se ha demostrado que no exista. • Sin embargo, existe suficiente evidencia para creer que efectivamente no existe un algoritmo eficiente para resolverlo. • A continuaci´ on detallaremos un poco m´as acerca de la teor´ıa de complejidad que hay detr´as de estas afirmaciones.

Jorge Baier Aranda, PUC

<< Atr´as

251


¿Qué es resolver un problema de decisión? • Llevemos esta pregunta a un ejemplo m´as sencillo: ¿qu´e significa determinar si una f´ ormula proposicional ϕ es satisfactible? significa que debemos encontrar al menos una valuaci´ on σ tal que σ |= ϕ. • En este caso, la valuaci´ on corresponde a una soluci´ on al problema. • Una vez encontrada esta valuaci´ on, podemos dar una respuesta. • Para analizar qu´e tan complejo es resolver un problema de decisi´ on deberemos preguntarnos qu´e tan complejo es generar la soluci´ on.

Jorge Baier Aranda, PUC

<< Atr´as

252


Algunos problemas de decisión • Los siguientes son algunos problemas de decisi´ on t´ıpicos: 1. Dado un grafo (V, E), existe un camino cerrado que recorra a todos los nodos del grafo (circuito hamiltoniano). 2. Dada una f´ ormula en 3-FNC (una f´ ormula proposicional con a lo m´as tres literales por cl´ausula), ¿esta satisfactible? (3SAT) 3. La misma pregunta pero para cl´ausulas con a los m´as 2 literales. (2SAT) 4. Dado un conjunto de enteros a0, a1, . . . , an y un entero b, ¿existe un conjunto de enteros x0, x1, . . . , xn? tales que a0x0 + a1x1 + · · · + anxn ≤ b? (Programaci´ on entera) 5. Dado un n´ umero N , existen dos factores P y Q distintos de 1 tales que N = P Q (NUMCOMP).

Jorge Baier Aranda, PUC

<< Atr´as

253


Las clases P y N P • Las clases P y N P son clases de problemas de decisi´ on. • Un problema de decisi´ on pertenece a la clase P si existe un algoritmo determin´ıstico polinomial, en el largo de la entrada, que lo resuelve. • El algoritmo es polinomial para cualquier entrada. • ¿qu´e es un algoritmo determin´ıstico? Es esencialmente una m´aquina de Turing como la que hemos visto hasta ahora. • Algunos ejemplos de problemas de decisi´ on en la clase P: – dado un grafo (V, E), ¿es d la distancia m´ınima entre el nodo v1 y el nodo v2 (v1, v2 ∈ V )? – dada una lista de n´ umeros L, ¿es la lista L0 una ordenaci´ on ascendente de L? • Un problema pertenece a la clase N P si es que es posible generar una soluci´ on con una m´aquina no determin´ıstica y luego verificarla en tiempo polinomial. Jorge Baier Aranda, PUC

<< Atr´as

254


• La N de N P viene de la generaci´ on no determin´ıstica y la P de la verificaci´ on polinomial. • El proceso de generaci´ on y verificaci´ on puede ser aclarado con el siguiente esquema: Instancia del problema

Algoritmo Adivinador de la solución (no determinístico)

Jorge Baier Aranda, PUC

Algoritmo Verificador (determinístico y polinomial)

No

<< Atr´as

255


Algoritmos no determinísticos

• As´ı como relacion´abamos los algoritmos con las M´aquinas de Turing, relacionaremos los algoritmos no determin´ısticos con las m´aquinas de Turing no determin´ısticas.

• Las MT’s no determin´ısticas, bajo una misma entrada, pueden tener distintas posibles ejecuciones.

• En la siguiente figura se muestran distintas alternativas de ejecuci´ on. Jorge Baier Aranda, PUC

<< Atr´as

256


estado

palabra en la cinta

(q0 , w)

(p, w1 )

(r1 , x1 )

...

...

(r2 , x2 )

(r3 , x3 )

...

...

... (qf , y )

...

...

(qf , y 0 )

(qf , y 000 ) (qf , y 00 )

• En esta figura representa un ´arbol de ejecuci´ on, en el cual cada nodo (q, w) es un par que contiene el estado de la m´aquina y el string que contiene la cinta. Cada flecha corresponde a una transici´ on. En el estado p, la m´aquina podr´ıa tomar Jorge Baier Aranda, PUC

<< Atr´as

257


cualquiera de las alternativas r1, r2 o r3 • Las hojas del ´arbol contienen los estados en los que la m´aquina se detiene junto con la soluci´ on al problema, representada por la palabra en la cinta. • Es importante notar que algunas de las ramas pueden ser infinitas. • Decimos que la m´aquina ha resuelto el problema para una instancia w si al menos una hoja del ´arbol construido a partir de (q0, w) (con q0 el estado inicial de la m´aquina) contiene una hoja (p, wF ) tal que wF representa una soluci´ on para el problema. • Podemos decir que el tiempo que toma el algoritmo en llegar a una soluci´ on es proporcional al largo de la rama hasta la hoja que la representa. • Una forma alternativa de definir la pertenencia de un problema P a la clase N P es que, para toda instancia w de P existe una rama del arbol de ejecuci´ on acotada por un polinomio y que tiene como hoja a una soluci´ on para el problema.

Jorge Baier Aranda, PUC

<< Atr´as

258


Reducción Polinomial • Dentro de la clase de problemas N P existen algunos problemas que son m´as dif´ıciles que otros. • Tal como en el caso de los algoritmos de decisi´ on, diremos que un problema de decisi´ on P1 (con un lenguaje asociado L1) es reducible a un problema de decisi´ on P2 (con un lenguaje asociado L2 12) si es que es posible encontrar un funci´ on de transformaci´ on f tal que w ∈ L1 ssi f (w) ∈ L2 • En este caso decimos que L1 ≤ L2. • Ahora, si la funci´ on f es computable en un tiempo polinomial dependiente del largo de la entrada, diremos que L1 ≤pol L2 12

En el futuro, designaremos los problemas de decisi´ on s´ olo por su lenguaje.

Jorge Baier Aranda, PUC

<< Atr´as

259


• ¿Para qu´e puede servir ahora el concepto de reducci´ on? • Por el momento, si sabemos que L es un problema que pertenece a la clase P y demostramos que L0 ≤pol L entonces habremos demostrado que el problema L0 tambi´en pertenece a la clase P ¿Por qu´e? Porque en tiempo polinomial transformamos una instancia del problema L0 a un problema de L y luego usamos el algoritmo de decisi´ on para L (polinomial) para resolver el problema.

Jorge Baier Aranda, PUC

<< Atr´as

260


Problemas NP-completos • Los problemas NP-completos son los m´as dif´ıciles de la clase NP. Ya veremos por qu´e... • Definici´ on 30. Un problema de decisi´ on L es NP-completo ssi: – L ∈ NP – Para todo lenguaje L0 ∈ N P es posible demostrar que L0 ≤pol L • En t´erminos pr´acticos esto significa que si encontramos un algoritmo eficiente para resolver un problema NP-completo, podremos resolver eficientemente todos los problemas de la clase NP. • Teorema 8. [de Cook] El problema de decisi´ on asociado al siguiente lenguaje: SAT = {ϕ | es f´ ormula proposicional en FNC satisfactible} Es NP-completo. Jorge Baier Aranda, PUC

<< Atr´as

261


¿C´ omo podemos demostrar esto? Sabemos que si un problema est´a en la clase N P, entonces ´este es resuelto por una MT no determin´ıstica cuyo tiempo de ejecuci´ on est´a acotado por un polinomio en el largo de la entrada. En t´erminos resumidos, la idea es que para toda MT no determin´ıstica cuyo tiempo de ejecuci´ on est´a acotado por un polinomio p en el largo de la entrada, es posible construir una f´ ormula proposicional, en forma normal conjuntiva, que describe el estado de la m´aquina y el estado de la cinta en todo momento de la computaci´ on de la soluci´ on. La f´ ormula construida es satisfactible ssi la m´aquina acepta. • Esto significa que cualquier problema de la clase N P puede ser reducido a SAT. • Esto implica que basta con resolver SAT eficientemente, para resolver eficientemente todos los problemas de la clase N P. • Una vez que se estableci´ o que SAT es NP-completo, se demostr´ o que muchos otros problemas tambi´en son NP-completos: Jorge Baier Aranda, PUC

<< Atr´as

262


– – – – –

Circuito Hamiltoniano. 3-SAT. Progamaci´ on entera. Matching de expresiones regulares de Perl. Buscaminas (!)

• Sin embargo, hay otros problemas que pertenecen a la clase NP, pero que a´ un no se demuestra si son NP-completos: – NUMCOMP (problema de encontrar los factores no triviales de un n´ umero natural).

Jorge Baier Aranda, PUC

<< Atr´as

263


¿Cómo demostramos que L es NP-completo? • Lo que hay que demostrar son dos cosas: 1. Que el problema pertenece a la clase N P. Para demostrar esto, basta que sea posible verificar en tiempo polinomial una soluci´ on para el problema. 2. Que todos los problemas de la clase N P se pueden reducir a L. Para hacer esto basta reducir cualquier problema NP-completo a L. La idea es que, dada tal reducci´ on, inmediatamente sabemos que todos los problemas de N P se pueden reducir a L. En el siguiente esquema se muestra esta idea en forma gr´afica lo que sucede si reducimos SAT a L. NP CLIQUE

MINESWEEPER

SAT

L

CH 3−SAT ...

Jorge Baier Aranda, PUC

<< Atr´as

264


3-SAT es NP-completo

• La demostraci´ on de este hecho la haremos reduciendo SAT a 3-SAT.

• Debemos demostrar que cualquier problema de SAT lo podemos reducir a un problema 3-SAT.

• Supongamos que tenemos una f´ ormula arbitrara ϕ ∈ L(P ) en FNC.

• La funci´ on de transformaci´ on la podemos definir de la siguiente manera: Jorge Baier Aranda, PUC

<< Atr´as

265


Reemplazar cada cl´ausula l1 ∨ l2 ∨ l3 ∨ . . . ∨ ln Por: (l1 ∨ l2 ∨ z1)∧ (¬z1 ∨ l3 ∨ z2)∧ ... (¬zk−2 ∨ lk ∨ zk−1)∧ ... (¬zn−4 ∨ ln−2 ∨ zn−3)∧ ... (¬zn−3 ∨ ln−1 ∨ ln) donde n ≥ 4. Es sencillo darse cuenta que la cl´ausula original es satisfecha si y s´ olo si este nuevo conjunto es satisfecho. Nuevamente, estas transformaciones est´an acotadas por un polinomio en el largo de la cl´ausula. Jorge Baier Aranda, PUC

<< Atr´as

266


• Finalmente, podemos concluir que SAT ≤pol 3-SAT por lo que 3-SAT es NP-completo.

Jorge Baier Aranda, PUC

<< Atr´as

267


CLIQUE es NP-completo • Denominamos CLIQUE al siguiente problema: Dado un grafo G y un entero k, ¿es posible encontrar un subgrafo de G completo de tama˜ no k?13 • Claramente CLIQUE pertenece a N P. • Ahora deberemos hacer una reducci´ on de SAT a N P. • Supongamos que tenemos una f´ ormula en FNC: C1 ∨ C2 ∨ . . . ∨ Ck con n variables proposicionales. Formaremos un grafo G con un nodo por cada literal que aparece en cada cl´ausula. Cada nodo est´a etiquetado con el literal que le dio origen. 13

Un grafo completo es aquel en el que todos los nodos est´an conectados entre s´ı.

Jorge Baier Aranda, PUC

<< Atr´as

268


Agregaremos un arco entre un nodo etiquetado con l y un nodo etiquetado con l0 si y solo si: – l y l0 est´an en cl´ausulas distintas. – l no es el literal complementario de l. Supongamos la siguiente f´ ormula: (x1 ∨ x2 ∨ ¬x3) ∧ (¬x1 ∨ ¬x3) ∧ (x3 ∨ x2) El grafo resultante queda como: x1

x2

¬x1

¬x3

x2

Jorge Baier Aranda, PUC

¬x3

x3

<< Atr´as

269


Ahora deberemos demostrar que G tiene un subgrafo completo de tama˜ no k ssi ϕ es satisfactible. ⇒. Como todos los miembros del subgrafo pertenecen a cl´ausulas distintas, cualquier valuaci´ on σ que hace verdadero a todo literal en el subgrafo hace verdadera a la f´ ormula. (recordemos que dos literales complementarios no pueden estar en un subgrafo completo) ⇐. Si la f´ ormula ϕ es satisfecha, debe existir una valuaci´ on σ que haga verdaderos a al menos un literal en cada cl´ausula. Sean l1 ∈ C1, l2 ∈ C2, . . . , lk ∈ Ck estos literales. Notemos que no es posible que existan dos literales complementarios li y lj (1 ≤ i < j ≤ k). Necesariamente, entonces, podemos construir arcos entre cada par de nodos en donde aparecen dichos literales siguiendo las reglas de construcci´ on del grafo.

Jorge Baier Aranda, PUC

<< Atr´as

270


2-SAT está en P • Recordemos que 2SAT es el problema de satisfacer f´ ormulas en 2-FNC (con exactamente dos literales por cl´ausula). • Una f´ ormula en 2-FNC se ve de la siguiente manera: ϕ = (l1 ∨ m1) ∧ (l2 ∨ m2) ∧ . . . ∧ (ln ∨ mn), donde li, lj son literales que corresponden a un conjunto de variables P . • Reduciremos este problema a encontrar un camino con ciertas caracter´ısticas en un grafo formado a partir de las variables en P . • Se construye un grafo G = (V, E) en el cual V = {`|` ∈ P o ` ∈ P }, es decir, para cada variable p ∈ P hay un nodo etiquetado con p y otro etiquetado con ¬p. Jorge Baier Aranda, PUC

<< Atr´as

271


Por otro lado, por cada li ∨ mi, agregamos una arista entre ¬li y mi y entre ¬mi y li (estos arcos provienen de considerar la disyunci´ on como una implicaci´ on). Proposici´ on: El grafo construido contiene un ciclo ` → . . . → ` → . . . → ` si y solo si ϕ es insatisfactible. ⇒ Supongamos que G contiene un ciclo de ese estilo y que ϕ es satisfactible. En ese caso sabemos que existe un σ tal que σ |= ϕ. Hay dos casos: – σ(`) = 1. Debido a la estructura del ciclo esto obliga a que σ(`) = 1, lo cual es una contradicci´ on. – σ(`) = 0. Lleva a una contradicci´ on, igual que en el caso anterior. ⇐ Si no hay un ciclo de este estilo, es posible siempre construir una valuaci´ on σ tal que σ |= ϕ de la siguiente manera: 1. Para cada literal ` sin un valor de verdad asignado, le asignamos valor de verdad verdadero. 2. Asignamos valor de verdad verdadero a todos los nodos que son alcanzables desde `. 3. Asignamos valor de verdad falso a las negaciones de cada uno de los nodos asignados. Jorge Baier Aranda, PUC

<< Atr´as

272


4. Si a´ un existen nodos sin valor de verdad asignado, volver al paso 1. Este algoritmo siempre producir´a valuaciones consistentes, ya que nunca es posible que se asigne al mismo tiempo valor de verdad 1 y valor de verdad 0 a un mismo nodo (no hay ciclos). Por otra parte, con esta asignaci´ on se satisfacen todos las disyunciones de la f´ ormula que est´an representadas a trav´es de los arcos del grafo. Importante: Este grafo se puede construir en tiempo polinomial en el largo de la f´ ormula. • Una vez demostrado este teorema, para chequear la satisfactibilidad de.ϕ, basta con revisar si existe un camino ` → . . . → ` → . . . → ` en el grafo. • ¡Este problema es polinomial! Existe un algoritmo O(n3) que encuentra las distancias entre todo par de nodos de un grafo de n nodos.

Jorge Baier Aranda, PUC

<< Atr´as

273

complejidad  

•M´ a squeclasificarlosproblemasencuantoasutiempodeejecuci´ o n,nosinteresa clasificarlosent´ e rminosdesutratabilidad. •Diremos que un proble...