24
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. 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

Introducción a la Complejidad Computacionaljabaier.sitios.ing.uc.cl/iic2212/complejidad.pdf · Introducción a la Complejidad Computacional • El an´alisis sobre decidibilidad

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Introducción a la Complejidad Computacionaljabaier.sitios.ing.uc.cl/iic2212/complejidad.pdf · Introducción a la Complejidad Computacional • El an´alisis sobre decidibilidad

Introducción a la Complejidad Computacional

• El analisis sobre decidibilidad que hemos hecho nos permite saber que podemoshacer y que no podemos hacer.

• Pero nada sabemos de que tan difıcil resolver los problemas en terminos decomplejidad computacional.

• Mas que clasificar los problemas en cuanto a su tiempo de ejecucion, nos interesaclasificarlos en terminos de su tratabilidad.

• Diremos que un problema de decision es tratable si se conoce un algoritmopolinomial que lo resuelva, para cada instancia posible del problema.

• Normalmente utilizaremos indistintamente los terminos tratable y eficiente.

• Consideremos el problema de satisfacibilidad de logica proposicional:

Sea ϕ ∈ L(P ), ¿es ϕ satisfactible?

Jorge Baier Aranda, PUC << Atras 250

Page 2: Introducción a la Complejidad Computacionaljabaier.sitios.ing.uc.cl/iic2212/complejidad.pdf · Introducción a la Complejidad Computacional • El an´alisis sobre decidibilidad

• Sabemos que este problema es decidible, pero, en terminos computacionales ¿quetan 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 existeun algoritmo eficiente para resolverlo.

• A continuacion detallaremos un poco mas acerca de la teorıa de complejidad quehay detras de estas afirmaciones.

Jorge Baier Aranda, PUC << Atras 251

Page 3: Introducción a la Complejidad Computacionaljabaier.sitios.ing.uc.cl/iic2212/complejidad.pdf · Introducción a la Complejidad Computacional • El an´alisis sobre decidibilidad

¿Qué es resolver un problema de decisión?

• Llevemos esta pregunta a un ejemplo mas sencillo: ¿que significa determinar siuna formula proposicional ϕ es satisfactible?

significa que debemos encontrar al menos una valuacion σ tal que σ |= ϕ.

• En este caso, la valuacion corresponde a una solucion al problema.

• Una vez encontrada esta valuacion, podemos dar una respuesta.

• Para analizar que tan complejo es resolver un problema de decision deberemospreguntarnos que tan complejo es generar la solucion.

Jorge Baier Aranda, PUC << Atras 252

Page 4: Introducción a la Complejidad Computacionaljabaier.sitios.ing.uc.cl/iic2212/complejidad.pdf · Introducción a la Complejidad Computacional • El an´alisis sobre decidibilidad

Algunos problemas de decisión

• Los siguientes son algunos problemas de decision tıpicos:

1. Dado un grafo (V,E), existe un camino cerrado que recorra a todos los nodosdel grafo (circuito hamiltoniano).

2. Dada una formula en 3-FNC (una formula proposicional con a lo mas tresliterales por clausula), ¿esta satisfactible? (3SAT)

3. La misma pregunta pero para clausulas con a los mas 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?

(Programacion entera)5. Dado un numero N , existen dos factores P y Q distintos de 1 tales que

N = PQ (NUMCOMP).

Jorge Baier Aranda, PUC << Atras 253

Page 5: Introducción a la Complejidad Computacionaljabaier.sitios.ing.uc.cl/iic2212/complejidad.pdf · Introducción a la Complejidad Computacional • El an´alisis sobre decidibilidad

Las clasesP y NP

• Las clases P y NP son clases de problemas de decision.

• Un problema de decision pertenece a la clase P si existe un algoritmodeterminıstico polinomial, en el largo de la entrada, que lo resuelve.

• El algoritmo es polinomial para cualquier entrada.

• ¿que es un algoritmo determinıstico?

Es esencialmente una maquina de Turing como la que hemos visto hasta ahora.

• Algunos ejemplos de problemas de decision 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 numeros L, ¿es la lista L′ una ordenacion ascendente de L?

• Un problema pertenece a la clase NP si es que es posible generar una solucioncon una maquina no determinıstica y luego verificarla en tiempo polinomial.

Jorge Baier Aranda, PUC << Atras 254

Page 6: Introducción a la Complejidad Computacionaljabaier.sitios.ing.uc.cl/iic2212/complejidad.pdf · Introducción a la Complejidad Computacional • El an´alisis sobre decidibilidad

• La N de NP viene de la generacion no determinıstica y la P de la verificacionpolinomial.

• El proceso de generacion y verificacion puede ser aclarado con el siguienteesquema:

Instancia del

problemaAlgoritmo Adivinador

(no determinístico)

de la solución

Algoritmo Verificador(determinístico y polinomial)

No

Jorge Baier Aranda, PUC << Atras 255

Page 7: Introducción a la Complejidad Computacionaljabaier.sitios.ing.uc.cl/iic2212/complejidad.pdf · Introducción a la Complejidad Computacional • El an´alisis sobre decidibilidad

Algoritmos no determinísticos

• Ası como relacionabamos los algoritmos con las Maquinas de Turing,relacionaremos los algoritmos no determinısticos con las maquinas de Turingno determinısticas.

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

• En la siguiente figura se muestran distintas alternativas de ejecucion.

Jorge Baier Aranda, PUC << Atras 256

Page 8: Introducción a la Complejidad Computacionaljabaier.sitios.ing.uc.cl/iic2212/complejidad.pdf · Introducción a la Complejidad Computacional • El an´alisis sobre decidibilidad

... ... .........

......

estado palabra en la cinta

(q0, w)

(p, w1)

(qf , y) (qf , y′)

(r1, x1) (r2, x2) (r3, x3)

(qf , y′′)

(qf , y′′′)

• En esta figura representa un arbol de ejecucion, en el cual cada nodo (q, w) es unpar que contiene el estado de la maquina y el string que contiene la cinta. Cadaflecha corresponde a una transicion. En el estado p, la maquina podrıa tomar

Jorge Baier Aranda, PUC << Atras 257

Page 9: Introducción a la Complejidad Computacionaljabaier.sitios.ing.uc.cl/iic2212/complejidad.pdf · Introducción a la Complejidad Computacional • El an´alisis sobre decidibilidad

cualquiera de las alternativas r1, r2 o r3

• Las hojas del arbol contienen los estados en los que la maquina se detiene juntocon la solucion al problema, representada por la palabra en la cinta.

• Es importante notar que algunas de las ramas pueden ser infinitas.

• Decimos que la maquina ha resuelto el problema para una instancia w si almenos una hoja del arbol construido a partir de (q0, w) (con q0 el estado inicialde la maquina) contiene una hoja (p, wF ) tal que wF representa una solucionpara el problema.

• Podemos decir que el tiempo que toma el algoritmo en llegar a una solucion esproporcional al largo de la rama hasta la hoja que la representa.

• Una forma alternativa de definir la pertenencia de un problema P a la claseNP es que, para toda instancia w de P existe una rama del arbol de ejecucionacotada por un polinomio y que tiene como hoja a una solucion para el problema.

Jorge Baier Aranda, PUC << Atras 258

Page 10: Introducción a la Complejidad Computacionaljabaier.sitios.ing.uc.cl/iic2212/complejidad.pdf · Introducción a la Complejidad Computacional • El an´alisis sobre decidibilidad

Reducción Polinomial

• Dentro de la clase de problemas NP existen algunos problemas que son masdifıciles que otros.

• Tal como en el caso de los algoritmos de decision, diremos que un problema dedecision P1 (con un lenguaje asociado L1) es reducible a un problema de decisionP2 (con un lenguaje asociado L2

12) si es que es posible encontrar un funcion detransformacion f tal que

w ∈ L1 ssi f(w) ∈ L2

• En este caso decimos que L1 ≤ L2.

• Ahora, si la funcion f es computable en un tiempo polinomial dependiente dellargo de la entrada, diremos que

L1 ≤pol L2

12En el futuro, designaremos los problemas de decision solo por su lenguaje.

Jorge Baier Aranda, PUC << Atras 259

Page 11: Introducción a la Complejidad Computacionaljabaier.sitios.ing.uc.cl/iic2212/complejidad.pdf · Introducción a la Complejidad Computacional • El an´alisis sobre decidibilidad

• ¿Para que puede servir ahora el concepto de reduccion?

• Por el momento, si sabemos que L es un problema que pertenece a la clase P ydemostramos que

L′ ≤pol L

entonces habremos demostrado que el problema L′ tambien pertenece a la claseP

¿Por que?

Porque en tiempo polinomial transformamos una instancia del problema L′ a unproblema de L y luego usamos el algoritmo de decision para L (polinomial) pararesolver el problema.

Jorge Baier Aranda, PUC << Atras 260

Page 12: Introducción a la Complejidad Computacionaljabaier.sitios.ing.uc.cl/iic2212/complejidad.pdf · Introducción a la Complejidad Computacional • El an´alisis sobre decidibilidad

Problemas NP-completos

• Los problemas NP-completos son los mas difıciles de la clase NP. Ya veremos porque...

• Definicion 30. Un problema de decision L es NP-completo ssi:

– L ∈ NP– Para todo lenguaje L′ ∈ NP es posible demostrar que

L′ ≤pol L

• En terminos practicos esto significa que si encontramos un algoritmo eficientepara resolver un problema NP-completo, podremos resolver eficientemente todoslos problemas de la clase NP.

• Teorema 8. [de Cook] El problema de decision asociado al siguiente lenguaje:

SAT = {ϕ | es formula proposicional en FNC satisfactible}

Es NP-completo.

Jorge Baier Aranda, PUC << Atras 261

Page 13: Introducción a la Complejidad Computacionaljabaier.sitios.ing.uc.cl/iic2212/complejidad.pdf · Introducción a la Complejidad Computacional • El an´alisis sobre decidibilidad

¿Como podemos demostrar esto?

Sabemos que si un problema esta en la clase NP, entonces este es resueltopor una MT no determinıstica cuyo tiempo de ejecucion esta acotado por unpolinomio en el largo de la entrada.

En terminos resumidos, la idea es que para toda MT no determinıstica cuyotiempo de ejecucion esta acotado por un polinomio p en el largo de la entrada,es posible construir una formula proposicional, en forma normal conjuntiva, quedescribe el estado de la maquina y el estado de la cinta en todo momento de lacomputacion de la solucion.

La formula construida es satisfactible ssi la maquina acepta.

• Esto significa que cualquier problema de la clase NP puede ser reducido a SAT.

• Esto implica que basta con resolver SAT eficientemente, para resolvereficientemente todos los problemas de la clase NP.

• Una vez que se establecio que SAT es NP-completo, se demostro que muchosotros problemas tambien son NP-completos:

Jorge Baier Aranda, PUC << Atras 262

Page 14: Introducción a la Complejidad Computacionaljabaier.sitios.ing.uc.cl/iic2212/complejidad.pdf · Introducción a la Complejidad Computacional • El an´alisis sobre decidibilidad

– Circuito Hamiltoniano.– 3-SAT.– Progamacion entera.– Matching de expresiones regulares de Perl.– Buscaminas (!)

• Sin embargo, hay otros problemas que pertenecen a la clase NP, pero que aunno se demuestra si son NP-completos:

– NUMCOMP (problema de encontrar los factores no triviales de un numeronatural).

Jorge Baier Aranda, PUC << Atras 263

Page 15: Introducción a la Complejidad Computacionaljabaier.sitios.ing.uc.cl/iic2212/complejidad.pdf · Introducción a la Complejidad Computacional • El an´alisis sobre decidibilidad

¿Cómo demostramos queL es NP-completo?

• Lo que hay que demostrar son dos cosas:

1. Que el problema pertenece a la clase NP. Para demostrar esto, basta que seaposible verificar en tiempo polinomial una solucion para el problema.

2. Que todos los problemas de la clase NP se pueden reducir a L.Para hacer esto basta reducir cualquier problema NP-completo a L.La idea es que, dada tal reduccion, inmediatamente sabemos que todos losproblemas de NP se pueden reducir a L.En el siguiente esquema se muestra esta idea en forma grafica lo que sucedesi reducimos SAT a L.

SAT

CLIQUE

3−SAT

MINESWEEPER

CH

...

L

NP

Jorge Baier Aranda, PUC << Atras 264

Page 16: Introducción a la Complejidad Computacionaljabaier.sitios.ing.uc.cl/iic2212/complejidad.pdf · Introducción a la Complejidad Computacional • El an´alisis sobre decidibilidad

3-SAT es NP-completo

• La demostracion de este hecho la haremos reduciendo SAT a 3-SAT.

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

• Supongamos que tenemos una formula arbitrara ϕ ∈ L(P ) en FNC.

• La funcion de transformacion la podemos definir de la siguiente manera:

Jorge Baier Aranda, PUC << Atras 265

Page 17: Introducción a la Complejidad Computacionaljabaier.sitios.ing.uc.cl/iic2212/complejidad.pdf · Introducción a la Complejidad Computacional • El an´alisis sobre decidibilidad

Reemplazar cada clausula 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 clausula original es satisfecha si y solo si estenuevo conjunto es satisfecho.

Nuevamente, estas transformaciones estan acotadas por un polinomio en el largode la clausula.

Jorge Baier Aranda, PUC << Atras 266

Page 18: Introducción a la Complejidad Computacionaljabaier.sitios.ing.uc.cl/iic2212/complejidad.pdf · Introducción a la Complejidad Computacional • El an´alisis sobre decidibilidad

• Finalmente, podemos concluir que

SAT ≤pol 3-SAT

por lo que 3-SAT es NP-completo.

Jorge Baier Aranda, PUC << Atras 267

Page 19: Introducción a la Complejidad Computacionaljabaier.sitios.ing.uc.cl/iic2212/complejidad.pdf · Introducción a la Complejidad Computacional • El an´alisis sobre decidibilidad

CLIQUE es NP-completo

• Denominamos CLIQUE al siguiente problema:

Dado un grafo G y un entero k, ¿es posible encontrar un subgrafo de G completode tamano k?13

• Claramente CLIQUE pertenece a NP.

• Ahora deberemos hacer una reduccion de SAT a NP.

• Supongamos que tenemos una formula en FNC:

C1 ∨ C2 ∨ . . . ∨ Ck

con n variables proposicionales.

Formaremos un grafo G con un nodo por cada literal que aparece en cadaclausula. Cada nodo esta etiquetado con el literal que le dio origen.

13Un grafo completo es aquel en el que todos los nodos estan conectados entre sı.

Jorge Baier Aranda, PUC << Atras 268

Page 20: Introducción a la Complejidad Computacionaljabaier.sitios.ing.uc.cl/iic2212/complejidad.pdf · Introducción a la Complejidad Computacional • El an´alisis sobre decidibilidad

Agregaremos un arco entre un nodo etiquetado con l y un nodo etiquetado conl′ si y solo si:

– l y l′ estan en clausulas distintas.– l no es el literal complementario de l.

Supongamos la siguiente formula:

(x1 ∨ x2 ∨ ¬x3) ∧ (¬x1 ∨ ¬x3) ∧ (x3 ∨ x2)

El grafo resultante queda como:

¬x3

¬x3¬x1

x1 x2

x2 x3

Jorge Baier Aranda, PUC << Atras 269

Page 21: Introducción a la Complejidad Computacionaljabaier.sitios.ing.uc.cl/iic2212/complejidad.pdf · Introducción a la Complejidad Computacional • El an´alisis sobre decidibilidad

Ahora deberemos demostrar que G tiene un subgrafo completo de tamano k ssiϕ es satisfactible.

⇒. Como todos los miembros del subgrafo pertenecen a clausulas distintas,cualquier valuacion σ que hace verdadero a todo literal en el subgrafo haceverdadera a la formula. (recordemos que dos literales complementarios nopueden estar en un subgrafo completo)

⇐. Si la formula ϕ es satisfecha, debe existir una valuacion σ que haga verdaderosa al menos un literal en cada clausula. Sean l1 ∈ C1, l2 ∈ C2, . . . , lk ∈ Ck estosliterales. Notemos que no es posible que existan dos literales complementariosli y lj (1 ≤ i < j ≤ k). Necesariamente, entonces, podemos construir arcosentre cada par de nodos en donde aparecen dichos literales siguiendo las reglasde construccion del grafo.

Jorge Baier Aranda, PUC << Atras 270

Page 22: Introducción a la Complejidad Computacionaljabaier.sitios.ing.uc.cl/iic2212/complejidad.pdf · Introducción a la Complejidad Computacional • El an´alisis sobre decidibilidad

2-SAT está enP

• Recordemos que 2SAT es el problema de satisfacer formulas en 2-FNC (conexactamente dos literales por clausula).

• Una formula 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 enun 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 etiquetadocon ¬p.

Jorge Baier Aranda, PUC << Atras 271

Page 23: Introducción a la Complejidad Computacionaljabaier.sitios.ing.uc.cl/iic2212/complejidad.pdf · Introducción a la Complejidad Computacional • El an´alisis sobre decidibilidad

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 disyuncion como una implicacion).

Proposicion: El grafo construido contiene un ciclo ` → . . . → ` → . . . → ` si ysolo 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 cuales una contradiccion.

– σ(`) = 0. Lleva a una contradiccion, igual que en el caso anterior.

⇐ Si no hay un ciclo de este estilo, es posible siempre construir una valuacion σtal que σ |= ϕ de la siguiente manera:

1. Para cada literal ` sin un valor de verdad asignado, le asignamos valor deverdad verdadero.

2. Asignamos valor de verdad verdadero a todos los nodos que son alcanzablesdesde `.

3. Asignamos valor de verdad falso a las negaciones de cada uno de los nodosasignados.

Jorge Baier Aranda, PUC << Atras 272

Page 24: Introducción a la Complejidad Computacionaljabaier.sitios.ing.uc.cl/iic2212/complejidad.pdf · Introducción a la Complejidad Computacional • El an´alisis sobre decidibilidad

4. Si aun existen nodos sin valor de verdad asignado, volver al paso 1.

Este algoritmo siempre producira valuaciones consistentes, ya que nunca esposible que se asigne al mismo tiempo valor de verdad 1 y valor de verdad 0 aun mismo nodo (no hay ciclos). Por otra parte, con esta asignacion se satisfacentodos las disyunciones de la formula que estan representadas a traves de los arcosdel grafo.

Importante: Este grafo se puede construir en tiempo polinomial en el largo dela formula.

• Una vez demostrado este teorema, para chequear la satisfactibilidad de.ϕ, bastacon revisar si existe un camino ` → . . . → ` → . . . → ` en el grafo.

• ¡Este problema es polinomial! Existe un algoritmo O(n3) que encuentra lasdistancias entre todo par de nodos de un grafo de n nodos.

Jorge Baier Aranda, PUC << Atras 273