Sunteți pe pagina 1din 36

Anlisis de Algoritmos

Problemas NP-completos
Dra. Elisa Schaeffer
elisa.schaeffer@gmail.com

PISIS / FIME / UANL

Problemas NP-completos p.

Problemas NP-completos

La clase NP contiene numerosos problemas de importancia prctica. Tpicamente el problema tiene que ver con la construccin o existencia de un objeto matemtico que satisface ciertas especicaciones.

Problemas NP-completos p.

Optimizacin versus decisin

La versin de la construccin misma es un problema de optimizaci n, donde la mejor construccin posible es la o solucin deseada.

o En la versin de decisi n, que es la versin que pertenece a la clase NP, la pregunta es si existe por lo menos una conguracin que cumpla con los requisitos del problema.

Problemas NP-completos p.

Demostraciones

Se puede decir que la mayora de los problemas interesantes de computacin en el mundo real pertenecen a la clase NP. La aplicacin cotidiana de la teora de complejidad computacional es el estudio sobre las clases a las cuales un dado problema pertenece: solamente a NP o tambi n a P, o quiz s a ninguna de las dos. e a

Problemas NP-completos p.

Mtodo bsico

Mostrar que el problema de inters sea NP-completo, porque este implicara que el problema es entre los menos probables de pertenecer en la clase P. Si algn problema NP-completo perteneciera a NP, aplicara NP = P.

Problemas NP-completos p.

Nivel de estudio

Si se sube a un nivel sucientemente general, muchos problemas resultan NP-completos. En muchos casos es importante identicar qu requisitos causan que el problema resulte e NP-completo versus polinomial. Una tcnica bsica es estudiar el conjunto de instancias producidas por una reducci n utilizada en la o demostracin de ser NP-completo para capturar otro problema NP-completo.

Problemas NP-completos p.

Diseo de demostraciones

Demostrar NP-completitud para un problema Q:


Jugar con instancias pequeas de Q para desarrollar unos gadgets u otros componentes bsicos para usar en la prueba.

Problemas NP-completos p.

Diseo de demostraciones

Demostrar NP-completitud para un problema Q:


Jugar con instancias pequeas de Q para desarrollar unos gadgets u otros componentes bsicos para usar en la prueba. Buscar por problemas que ya tengan prueba de ser NP-completos que podran servir para la reduccin necesaria.

Problemas NP-completos p.

Diseo de demostraciones

Demostrar NP-completitud para un problema Q:


Jugar con instancias pequeas de Q para desarrollar unos gadgets u otros componentes bsicos para usar en la prueba. Buscar por problemas que ya tengan prueba de ser NP-completos que podran servir para la reduccin necesaria. Construir un reduccin R problema Q.

de un problema P conocido y NP-completo al

Problemas NP-completos p.

Diseo de demostraciones

Demostrar NP-completitud para un problema Q:


Jugar con instancias pequeas de Q para desarrollar unos gadgets u otros componentes bsicos para usar en la prueba. Buscar por problemas que ya tengan prueba de ser NP-completos que podran servir para la reduccin necesaria. Construir un reduccin R problema Q.

de un problema P conocido y NP-completo al

Probar que con la entrada R(x), si la solucin de Q es s que este implica que la solucin de P con x tambin es siempre s.

Problemas NP-completos p.

Diseo de demostraciones

Demostrar NP-completitud para un problema Q:


Jugar con instancias pequeas de Q para desarrollar unos gadgets u otros componentes bsicos para usar en la prueba. Buscar por problemas que ya tengan prueba de ser NP-completos que podran servir para la reduccin necesaria. Construir un reduccin R problema Q.

de un problema P conocido y NP-completo al

Probar que con la entrada R(x), si la solucin de Q es s que este implica que la solucin de P con x tambin es siempre s. Probar que con la entrada x, si la solucin de P es s que este implica que la solucin de Q con R(x) tambin es s.

Problemas NP-completos p.

La dicultad

En la construccin tpicamente se busca por representar las elecciones hechas, la consistencia y restricciones. Lo difcil es cmo expresar la naturaleza del problema P en trminos de Q.

Problemas NP-completos p.

Estudios de continuacin

Cuando ya est establecido que un problema de inters es NP-completo, normalmente se dirige el esfuerzo de investigacin a estudiar casos especiales algoritmos de aproximacin anlisis asinttica del caso promedio algoritmos aleatorizados algoritmos exponenciales para instancias pequeas mtodos heursticos de bsqueda local
Problemas NP-completos p.

Relacion polinomialmente balanceada

Una relacin R se puede decidir en tiempo polinomial si y slo si existe una TM determinista que decide el lenguaje {x; y | (x, y) R} en tiempo polinomial. Una relacin R est polinomialmente balanceada si (x, y) R (k 1 tal que |y| |x|k ).

Problemas NP-completos p. 1

Conexin con la clase NP

Sea L un lenguaje. Aplica que L NP si y slo si existe una relacin polinomialmente balanceada R que se puede decidir en tiempo polinomial tal que L = {x | (x, y) R para algn y } .

Problemas NP-completos p. 1

Demostracin ()

Suponga que existe tal relacin R. Entonces L est decidida por una mquina Turing no determinista que con la entrada x adivina un valor y con largo mximo |x|k y utiliza la mquina para R para decidir en tiempo polinomial si aplica (x, y) R.

Problemas NP-completos p. 1

Demostracin ()

Suponga que L NP. Esto implica que existe una mquina Turing no determinista N que decide a L en tiempo |x|k para algn valor de k. Denimos (x, y) R si y slo si y es una codicacin de una computacin de N que acepta la entrada x.

Problemas NP-completos p. 1

() continua...

Esta R est polinomialmente balanceada, como cada computacin de N tiene cota polinomial. Adems se puede decidir R en tiempo polinomial, como se puede vericar en tiempo polinomial si o no y es una codicacin de una computacin que acepta a x en N . Como N decide a L, tenemos L = {x | (x, y) R para algn y} , exactamente como queramos.

Problemas NP-completos p. 1

Certicado conciso

Un problema A pertenece a la clase NP si cada instancia con la respuesta s del problema A tiene por lo menos un certicado concisoa y. En los problemas tpicos que tratan de la existencia de un objeto matemtico que cumple con ciertos criterios, el objeto mismo sirve como un certicado.
a

tambi n llamado un testigo polinomial e

Problemas NP-completos p. 1

Problemas kS AT

El lenguaje kS AT, donde k 1 es un entero, es el conjunto de expresiones booleanas S AT (en C NF) en las cuales cada cl usula contiene exactamente k literales. a

3S AT es NP-completo

Problemas NP-completos p. 1

Demostracin

3S AT NP por ser un caso especial de S AT NP. C IRCUITSAT es NP-completo y tenemos una reduccin de C IRCUITSAT a S AT. Vamos a reconsiderar las clusulas producidas en esa reduccin: todas tienen tres literales o menos!

Problemas NP-completos p. 1

Aumento de literales

Como las clusulas son disyunciones, podemos aumentar cada clusula de uno o dos literales a tener tres simplemente por copiar literales. Entonces, tenemos una reduccin de C IRCUITSAT a 3S AT.

Problemas NP-completos p. 1

Transformaciones

A veces es posible aplicar transformaciones que eliminen algunas propiedades de un lenguaje NP-completo as que el hecho que est NP-completo no est afectado. 3S AT es NP-completo an cuando solamente se permite que cada variable aparezca por mximo tres veces en la expresin 3S AT y adems que cada literal aparezca por mximo dos veces en .

Problemas NP-completos p. 1

Demostracin

Una reduccin donde cada instancia 3S AT est transformada a eliminar las propiedades no permitidas. Considera una variable x que aparece k > 3 veces en . Introducimos variables nuevas x1 , . . . , xk y reemplazamos la primera ocurrencia de x en por x1 , la segunda por x2 , etctera.

Problemas NP-completos p. 2

Clusulas auxiliares

Para asegurar que las variables nuevas tengan todas el mismo valor, aademos las clusulas siguientes en : (x1 x2 ), (x2 x3 ), . . . , (xk x1 ). Denota por la expresin que resulta cuando cada ocurrencia extra de una variable en ha sido procesada de esta manera. Resulta que ya cumple con las propiedades deseadas y que es satisfactible si y slo si es satisfactible.

Problemas NP-completos p. 2

2S AT

Para cada instancia de 2S AT, existe un algoritmo polinomial basado en el problema R EACHABILITY en un grafo G(). Las variables x de y sus negaciones x forman el conjunto de vrtices de G(). Una arista conecta dos vrtices xi y xj si y slo si existe una clusula xi xj o xj xi en : {xi , xj } E {xj , xi } E

Problemas NP-completos p. 2

Demostracin

no es satisfactible si y slo si existe una variable x tal que existen caminos de x a x y viceversa en G(). Entonces, sabemos que 2S AT es polinomial.

Problemas NP-completos p. 2

2S AT NL

Adems, resulta que 2S AT NL P. Como NL est cerrada bajo el complemento, podemos mostrar que 2S AT Complement NL. La existencia del camino de no satisabilidad del resultado anterior puede ser vericada en espacio logartmico por computacin no determinista por adivinar una variable x y el camino entre x y x.

Problemas NP-completos p. 2

M AX 2S AT

Una generalizacin de 2S AT:

Dada: una expresin booleana en C NF con no ms de


dos literales por clusula y un entero k

Pregunta: existe una asignaciones de valores T que


satisfecha por lo menos k clusulas de ?

M AX 2S AT es NP-completo

Problemas NP-completos p. 2

NAESAT

El lenguaje NAESAT 3S AT contiene las expresiones booleanas para las cuales existe una asignacin de valores T tal que en ninguna clusula de , todas las literales tengan el mismo valor o .

NAESAT es NP-completo

Problemas NP-completos p. 2

Demostracin

C IRCUITSAT es NP-completo. Adems para todo circuito C, tenemos que C C IRCUITSAT si y slo si R(C) S AT. Primero aumentamos todas las clausulas de la reduccin a contener exactamente tres literales por aadir uno o dos duplicados de un literal z donde hace falta. Vamos a mostrar que para la expresin booleana Rz (C) en C NF de tipo 3S AT aplica que Rz (C) NAESAT C C IRCUITSAT.

Problemas NP-completos p. 2

La direccin ()

Si T satisface a R(C) en el sentido de NAESAT, tambin la asignacin complementaria T lo satisface por la condicin NAESAT. En una de las dos asignaciones asigna al literal z, por lo cual todas las clusulas originales estn satisfechas en esta asignacin. Entonces, por la reduccin de C IRCUITSAT a S AT, existe una asignacin que satisface el circuito.

Problemas NP-completos p. 2

La direccin ()

Si C es satisfactible, existe una T que satisface a Rz (C). Extendemos T para Rz (C) por asignar T (z) = . En ninguna clusula de Rz (C) es permitido que todos los literales tengan el valor (y tampoco que todos tengan el valor ).

Problemas NP-completos p. 2

Anlisis de T

Cada clusula que corresponde a una puerta tipo , , o variable tena originalmente dos literales o menos, por lo cual contienen z y T (z) = . Sin embargo, todas las clusulas estn satisfechas por T , por lo cual algn literal es necesariamente asignado el valor en T para cada clusula.

Problemas NP-completos p. 3

Puertas y

En el caso de , las clusulas tienen la forma (g h z), (g h z), (g h h ), donde las primeras dos tienen z con su valor . En la tercera, no todas las tres pueden tener el valor porque as no es posible satisfacer a las dos primeras. El caso de es parecido.

Problemas NP-completos p. 3

Tarea para entregar el martes

El problema S AT trata de una expresin booleana en C NF y es NP-completo. Qu podemos deducir sobre la complejidad del problema de satisfaccin de expresiones en D NF? Despus, busca en la literatura o en lnea la denicin de la clase de complejidad #P y vuelve a analizar la pregunta anterior considerando en especial la clase #P.

Problemas NP-completos p. 3

S-ar putea să vă placă și