analisis de algoritmos problemas np- completos

36
 Análisis de Algoritmos Problemas  NP-completos Dra. Elisa Schaeffer [email protected] PISIS / FIME / UANL Problemas NP-completos– p. 1

Upload: fermat9

Post on 20-Jul-2015

73 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Analisis de Algoritmos Problemas NP- Completos

5/17/2018 Analisis de Algoritmos Problemas NP- Completos - slidepdf.com

http://slidepdf.com/reader/full/analisis-de-algoritmos-problemas-np-completos 1/36

Análisis de Algoritmos Problemas NP-completos 

Dra. Elisa [email protected]

PISIS / FIME / UANL

Problemas NP-completos– p.

Page 2: Analisis de Algoritmos Problemas NP- Completos

5/17/2018 Analisis de Algoritmos Problemas NP- Completos - slidepdf.com

http://slidepdf.com/reader/full/analisis-de-algoritmos-problemas-np-completos 2/36

Problemas NP-completo 

La clase NP contiene numerosos problemas de

importancia práctica.Típicamente el problema tiene que ver con la construccióno existencia de un objeto matemático que satisface ciertas

especificaciones.

Problemas NP-completos– p.

Page 3: Analisis de Algoritmos Problemas NP- Completos

5/17/2018 Analisis de Algoritmos Problemas NP- Completos - slidepdf.com

http://slidepdf.com/reader/full/analisis-de-algoritmos-problemas-np-completos 3/36

Optimización versus decisión

La versión de la construcción misma es un problema de

optimizacion, donde la mejor construcción posible es lasolución deseada.

En la versión de decision, que es la versión que

pertenece a la clase NP, la pregunta es si existe por lomenos una configuración que cumpla con los requisitosdel problema.

Problemas NP-completos– p.

Page 4: Analisis de Algoritmos Problemas NP- Completos

5/17/2018 Analisis de Algoritmos Problemas NP- Completos - slidepdf.com

http://slidepdf.com/reader/full/analisis-de-algoritmos-problemas-np-completos 4/36

Demostracione 

Se puede decir que la mayoría de los problemas

interesantes de computación en el mundo real pertenecena la clase NP.

La aplicación “cotidiana” de la teoría de complejidad

computacional es el estudio sobre las clases a las cualesun dado problema pertenece: solamente a NP o

tambien a P, o quizas a ninguna de las dos.

Problemas NP-completos– p.

Page 5: Analisis de Algoritmos Problemas NP- Completos

5/17/2018 Analisis de Algoritmos Problemas NP- Completos - slidepdf.com

http://slidepdf.com/reader/full/analisis-de-algoritmos-problemas-np-completos 5/36

Método básic 

Mostrar que el problema de interés sea NP-completo,

porque este implicaría que el problema es entre losmenos probables de pertenecer en la clase P.

Si algún problema NP-completo perteneciera a NP,

aplicaría NP = P.

Problemas NP-completos– p.

Page 6: Analisis de Algoritmos Problemas NP- Completos

5/17/2018 Analisis de Algoritmos Problemas NP- Completos - slidepdf.com

http://slidepdf.com/reader/full/analisis-de-algoritmos-problemas-np-completos 6/36

Nivel de estudi 

Si se sube a un nivel suficientemente general, muchos

problemas resultan NP-completos.En muchos casos es importante identificar

que requisitos causan que el problema resulte

NP-completo versus polinomial.Una técnica básica es estudiar el conjunto de instanciasproducidas por una reduccion utilizada en la

demostración de ser NP-completo para capturar otroproblema NP-completo.

Problemas NP-completos– p.

Page 7: Analisis de Algoritmos Problemas NP- Completos

5/17/2018 Analisis de Algoritmos Problemas NP- Completos - slidepdf.com

http://slidepdf.com/reader/full/analisis-de-algoritmos-problemas-np-completos 7/36

Diseño de demostracione 

Demostrar NP-completitud para un problema Q:

Jugar con instancias pequeñas de Q para desarrollar unos “gadgets” u otros

componentes básicos para usar en la prueba.

Problemas NP-completos– p.

Page 8: Analisis de Algoritmos Problemas NP- Completos

5/17/2018 Analisis de Algoritmos Problemas NP- Completos - slidepdf.com

http://slidepdf.com/reader/full/analisis-de-algoritmos-problemas-np-completos 8/36

Diseño de demostracione 

Demostrar NP-completitud para un problema Q:

Jugar con instancias pequeñas de Q para desarrollar unos “gadgets” u otros

componentes básicos para usar en la prueba.

Buscar por problemas que ya tengan prueba de ser NP-completos que podrían

servir para la reducción necesaria.

Problemas NP-completos– p.

Page 9: Analisis de Algoritmos Problemas NP- Completos

5/17/2018 Analisis de Algoritmos Problemas NP- Completos - slidepdf.com

http://slidepdf.com/reader/full/analisis-de-algoritmos-problemas-np-completos 9/36

Diseño de demostracione 

Demostrar NP-completitud para un problema Q:

Jugar con instancias pequeñas de Q para desarrollar unos “gadgets” u otros

componentes básicos para usar en la prueba.

Buscar por problemas que ya tengan prueba de ser NP-completos que podrían

servir para la reducción necesaria.

Construir un reducción R de un problema P  conocido y NP-completo alproblema Q.

Problemas NP-completos– p.

Page 10: Analisis de Algoritmos Problemas NP- Completos

5/17/2018 Analisis de Algoritmos Problemas NP- Completos - slidepdf.com

http://slidepdf.com/reader/full/analisis-de-algoritmos-problemas-np-completos 10/36

Diseño de demostracione 

Demostrar NP-completitud para un problema Q:

Jugar con instancias pequeñas de Q para desarrollar unos “gadgets” u otros

componentes básicos para usar en la prueba.

Buscar por problemas que ya tengan prueba de ser NP-completos que podrían

servir para la reducción necesaria.

Construir un reducción R de un problema P  conocido y NP-completo alproblema Q.

Probar que con la entrada R(x), si la solución de Q es “sí” que este implica que lasolución de P  con x también es siempre “sí”.

Problemas NP-completos– p.

Page 11: Analisis de Algoritmos Problemas NP- Completos

5/17/2018 Analisis de Algoritmos Problemas NP- Completos - slidepdf.com

http://slidepdf.com/reader/full/analisis-de-algoritmos-problemas-np-completos 11/36

Diseño de demostracione 

Demostrar NP-completitud para un problema Q:

Jugar con instancias pequeñas de Q para desarrollar unos “gadgets” u otros

componentes básicos para usar en la prueba.

Buscar por problemas que ya tengan prueba de ser NP-completos que podrían

servir para la reducción necesaria.

Construir un reducción R de un problema P  conocido y NP-completo alproblema Q.

Probar que con la entrada R(x), si la solución de Q es “sí” que este implica que lasolución de P  con x también es siempre “sí”.

Probar que con la entrada x, si la solución de P  es “sí” que este implica que la

solución de Q con R(x) también es “sí”.

Problemas NP-completos– p.

Page 12: Analisis de Algoritmos Problemas NP- Completos

5/17/2018 Analisis de Algoritmos Problemas NP- Completos - slidepdf.com

http://slidepdf.com/reader/full/analisis-de-algoritmos-problemas-np-completos 12/36

La dificulta 

En la construcción típicamente se busca por representar

las elecciones hechas, la consistencia y restricciones.Lo difícil es cómo expresar la naturaleza del problema P en términos de Q.

Problemas NP-completos– p.

Page 13: Analisis de Algoritmos Problemas NP- Completos

5/17/2018 Analisis de Algoritmos Problemas NP- Completos - slidepdf.com

http://slidepdf.com/reader/full/analisis-de-algoritmos-problemas-np-completos 13/36

Estudios de continuación

Cuando ya está establecido que un problema de interés es

NP-completo, normalmente se dirige el esfuerzo deinvestigación a

estudiar casos especiales

algoritmos de aproximación

análisis asintótica del caso promedio

algoritmos aleatorizados

algoritmos exponenciales para instancias pequeñas

métodos heurísticos de búsqueda local

Problemas NP-completos– p.

Page 14: Analisis de Algoritmos Problemas NP- Completos

5/17/2018 Analisis de Algoritmos Problemas NP- Completos - slidepdf.com

http://slidepdf.com/reader/full/analisis-de-algoritmos-problemas-np-completos 14/36

Relacion polinomialment balanceada

Una relación R ⊆ Σ∗ × Σ∗ se puede decidir en tiempo

polinomial si y sólo si existe una TM determinista quedecide el lenguaje {x; y | (x, y) ∈ R} en tiempo polinomial.

Una relación R está polinomialmente balanceada si

(x, y) ∈ R

→ (∃k ≥ 1 tal que |y| ≤ |x|k).

Problemas NP-completos– p.

Page 15: Analisis de Algoritmos Problemas NP- Completos

5/17/2018 Analisis de Algoritmos Problemas NP- Completos - slidepdf.com

http://slidepdf.com/reader/full/analisis-de-algoritmos-problemas-np-completos 15/36

Conexión con la clase NP

Sea L ⊆ Σ∗ un lenguaje.

Aplica que L ∈ NP si y sólo si existe una relaciónpolinomialmente balanceada R que se puede decidir entiempo polinomial tal que

L = {x ∈ Σ∗ | (x, y) ∈ R para algún y ∈ Σ∗} .

Problemas NP-completos– p.

Page 16: Analisis de Algoritmos Problemas NP- Completos

5/17/2018 Analisis de Algoritmos Problemas NP- Completos - slidepdf.com

http://slidepdf.com/reader/full/analisis-de-algoritmos-problemas-np-completos 16/36

Demostración (⇒)

Suponga que existe tal relación R.

Entonces L está decidida por una máquina Turing nodeterminista que con la entrada x “adivina” un valor y con

largo máximo |x|k y utiliza la máquina para R para decidir

en tiempo polinomial si aplica (x, y) ∈ R.

Problemas NP-completos– p.

Page 17: Analisis de Algoritmos Problemas NP- Completos

5/17/2018 Analisis de Algoritmos Problemas NP- Completos - slidepdf.com

http://slidepdf.com/reader/full/analisis-de-algoritmos-problemas-np-completos 17/36

Demostración (⇐)

Suponga que L ∈ NP.

Esto implica que existe una máquina Turing no

determinista N  que decide a L en tiempo |x|k para algúnvalor de k.

Definimos (x, y) ∈ R si y sólo si y es una codificación deuna computación de N  que acepta la entrada x.

Problemas NP-completos– p.

Page 18: Analisis de Algoritmos Problemas NP- Completos

5/17/2018 Analisis de Algoritmos Problemas NP- Completos - slidepdf.com

http://slidepdf.com/reader/full/analisis-de-algoritmos-problemas-np-completos 18/36

(⇐) continua...

Esta R está polinomialmente balanceada, como cada

computación de N  tiene cota polinomial.Además se puede decidir R en tiempo polinomial, comose puede verificar en tiempo polinomial si o no y es una

codificación de una computación que acepta a x en N .Como N  decide a L, tenemos

L = {x | (x, y) ∈ R para algún y} ,

exactamente como queríamos.

Problemas NP-completos– p.

Page 19: Analisis de Algoritmos Problemas NP- Completos

5/17/2018 Analisis de Algoritmos Problemas NP- Completos - slidepdf.com

http://slidepdf.com/reader/full/analisis-de-algoritmos-problemas-np-completos 19/36

Certificado concis 

Un problema A pertenece a la clase NP si cada instancia

con la respuesta “sí” del problema A tiene por lo menos uncertificado concisoa y.

En los problemas típicos que tratan de la existencia de un

objeto matemático que cumple con ciertos criterios, elobjeto mismo sirve como un certificado.

atambien llamado un testigo polinomial

Problemas NP-completos– p.

Page 20: Analisis de Algoritmos Problemas NP- Completos

5/17/2018 Analisis de Algoritmos Problemas NP- Completos - slidepdf.com

http://slidepdf.com/reader/full/analisis-de-algoritmos-problemas-np-completos 20/36

Problemas kSAT

El lenguaje kSAT, donde k ≥ 1 es un entero, es el conjunto

de expresiones booleanas φ ∈ SAT (en CNF) en las cualescada clausula contiene exactamente k literales.

3SAT es NP-completo

Problemas NP-completos– p.

Page 21: Analisis de Algoritmos Problemas NP- Completos

5/17/2018 Analisis de Algoritmos Problemas NP- Completos - slidepdf.com

http://slidepdf.com/reader/full/analisis-de-algoritmos-problemas-np-completos 21/36

Demostración

3SAT ∈ NP por ser un caso especial de SAT ∈ NP.

CIRCUITSAT es NP-completo y tenemos una reducción deCIRCUITSAT a SAT.

Vamos a reconsiderar las cláusulas producidas en esa

reducción: ¡todas tienen tres literales o menos!

Problemas NP-completos– p.

Page 22: Analisis de Algoritmos Problemas NP- Completos

5/17/2018 Analisis de Algoritmos Problemas NP- Completos - slidepdf.com

http://slidepdf.com/reader/full/analisis-de-algoritmos-problemas-np-completos 22/36

Aumento de literale 

Como las cláusulas son disyunciones, podemos

“aumentar” cada cláusula de uno o dos literales a tenertres simplemente por copiar literales.

Entonces, tenemos una reducción de CIRCUITSAT a 3SAT.

Problemas NP-completos– p.

Page 23: Analisis de Algoritmos Problemas NP- Completos

5/17/2018 Analisis de Algoritmos Problemas NP- Completos - slidepdf.com

http://slidepdf.com/reader/full/analisis-de-algoritmos-problemas-np-completos 23/36

Transformacione 

A veces es posible aplicar transformaciones que eliminen

algunas propiedades de un lenguaje NP-completo así queel hecho que está NP-completo no está afectado.

3SAT es NP-completo aún cuando solamente se permiteque cada variable aparezca por máximo tres veces en laexpresión φ ∈ 3SAT y además que cada literal aparezcapor máximo dos veces en φ.

Problemas NP-completos– p.

Page 24: Analisis de Algoritmos Problemas NP- Completos

5/17/2018 Analisis de Algoritmos Problemas NP- Completos - slidepdf.com

http://slidepdf.com/reader/full/analisis-de-algoritmos-problemas-np-completos 24/36

Demostración

Una reducción donde cada instancia φ ∈ 3SAT 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,etcétera.

Problemas NP-completos– p.

Page 25: Analisis de Algoritmos Problemas NP- Completos

5/17/2018 Analisis de Algoritmos Problemas NP- Completos - slidepdf.com

http://slidepdf.com/reader/full/analisis-de-algoritmos-problemas-np-completos 25/36

Cláusulas auxiliare 

Para asegurar que las variables nuevas tengan todas el

mismo valor, añademos las cláusulas siguientes en φ:

(¬x1 ∨ x2), (¬x2 ∨ x3), . . . , (¬xk ∨ x1).

Denota por φ

la expresión que resulta cuando cadaocurrencia extra de una variable en φ ha sido procesadade esta manera.

Resulta que φ′ ya cumple con las propiedades deseadas y

que φ es satisfactible si y sólo si φ es satisfactible.

Problemas NP-completos– p.

Page 26: Analisis de Algoritmos Problemas NP- Completos

5/17/2018 Analisis de Algoritmos Problemas NP- Completos - slidepdf.com

http://slidepdf.com/reader/full/analisis-de-algoritmos-problemas-np-completos 26/36

2SAT

Para cada instancia φ de 2SAT, existe un algoritmo

polinomial basado en el problema REACHABILITY en ungrafo G(φ).

Las variables x de φ y sus negaciones ¬x forman el

conjunto de vértices de G(φ).Una arista conecta dos vértices xi y x j si y sólo si existeuna cláusula ¬xi ∨ x j o x j ∨ ¬xi en φ:

{xi, x j} ∈ E ⇔ {¬x j,¬xi} ∈ E 

Problemas NP-completos– p.

Page 27: Analisis de Algoritmos Problemas NP- Completos

5/17/2018 Analisis de Algoritmos Problemas NP- Completos - slidepdf.com

http://slidepdf.com/reader/full/analisis-de-algoritmos-problemas-np-completos 27/36

Demostración

φ no es satisfactible si y sólo si existe una variable x tal

que existen caminos de x a x y viceversa en G(φ).Entonces, sabemos que 2SAT es polinomial.

Problemas NP-completos– p.

Page 28: Analisis de Algoritmos Problemas NP- Completos

5/17/2018 Analisis de Algoritmos Problemas NP- Completos - slidepdf.com

http://slidepdf.com/reader/full/analisis-de-algoritmos-problemas-np-completos 28/36

2SAT ∈ NL

Además, resulta que 2SAT ∈ NL ⊆ P.

Como NL está cerrada bajo el complemento, podemosmostrar que 2SAT Complement ∈ NL.

La existencia del camino de “no satisfiabilidad” del

resultado anterior puede ser verificada en espaciologarítmico por computación no determinista por “adivinar”una variable x y el camino entre x y ¬x.

Problemas NP-completos– p.

Page 29: Analisis de Algoritmos Problemas NP- Completos

5/17/2018 Analisis de Algoritmos Problemas NP- Completos - slidepdf.com

http://slidepdf.com/reader/full/analisis-de-algoritmos-problemas-np-completos 29/36

MAX2SAT

Una generalización de 2SAT:

Dada: una expresión booleana φ en CNF con no más dedos literales por cláusula y un entero k

Pregunta: ¿existe una asignaciones de valores T  que

satisfecha por lo menos k cláusulas de φ?

MAX2SAT es NP-completo

Problemas NP-completos– p.

Page 30: Analisis de Algoritmos Problemas NP- Completos

5/17/2018 Analisis de Algoritmos Problemas NP- Completos - slidepdf.com

http://slidepdf.com/reader/full/analisis-de-algoritmos-problemas-np-completos 30/36

NAESAT

El lenguaje NAESAT⊂ 3SAT contiene las expresiones

booleanas φ para las cuales existe una asignación devalores T  tal que en ninguna cláusula de φ, todas lasliterales tengan el mismo valor ⊤ o ⊥.

NAESAT es NP-completo

Problemas NP-completos– p.

Page 31: Analisis de Algoritmos Problemas NP- Completos

5/17/2018 Analisis de Algoritmos Problemas NP- Completos - slidepdf.com

http://slidepdf.com/reader/full/analisis-de-algoritmos-problemas-np-completos 31/36

Demostración

CIRCUITSAT es NP-completo. Además para todo circuito C ,

tenemos que C ∈ CIRCUITSAT si y sólo si R(C ) ∈SAT.Primero aumentamos todas las clausulas de la reduccióna contener exactamente tres literales por añadir uno o dosduplicados de un literal z donde hace falta.

Vamos a mostrar que para la expresión booleana Rz(C ) enCNF de tipo 3SAT aplica que Rz(C ) ∈NAESAT⇔ C ∈CIRCUITSAT.

Problemas NP-completos– p.

Page 32: Analisis de Algoritmos Problemas NP- Completos

5/17/2018 Analisis de Algoritmos Problemas NP- Completos - slidepdf.com

http://slidepdf.com/reader/full/analisis-de-algoritmos-problemas-np-completos 32/36

La dirección ( ⇒

Si T  satisface a R(C ) en el sentido de NAESAT, también la

asignación complementaria T  lo satisface por la condiciónNAESAT.

En una de las dos asignaciones asigna ⊥ al literal z, por lo

cual todas las cláusulas originales están satisfechas enesta asignación.

Entonces, por la reducción de CIRCUITSAT a SAT, existeuna asignación que satisface el circuito.

Problemas NP-completos– p.

Page 33: Analisis de Algoritmos Problemas NP- Completos

5/17/2018 Analisis de Algoritmos Problemas NP- Completos - slidepdf.com

http://slidepdf.com/reader/full/analisis-de-algoritmos-problemas-np-completos 33/36

La dirección ( ⇐

Si C  es satisfactible, existe una T  que satisface a Rz(C ).

Extendemos T  para Rz(C ) por asignar T (z) = ⊥.

En ninguna cláusula de Rz(C ) es permitido que todos losliterales tengan el valor ⊤ (y tampoco que todos tengan el

valor ⊥).

Problemas NP-completos– p.

Page 34: Analisis de Algoritmos Problemas NP- Completos

5/17/2018 Analisis de Algoritmos Problemas NP- Completos - slidepdf.com

http://slidepdf.com/reader/full/analisis-de-algoritmos-problemas-np-completos 34/36

Análisis de T 

Cada cláusula que corresponde a una puerta tipo ⊤, ⊥, ¬

o variable tenía originalmente dos literales o menos, por locual contienen z y T (z) = ⊥.

Sin embargo, todas las cláusulas están satisfechas por T ,por lo cual algún literal es necesariamente asignado elvalor ⊤ en T  para cada cláusula.

Problemas NP-completos– p.

Page 35: Analisis de Algoritmos Problemas NP- Completos

5/17/2018 Analisis de Algoritmos Problemas NP- Completos - slidepdf.com

http://slidepdf.com/reader/full/analisis-de-algoritmos-problemas-np-completos 35/36

Puertas ∧ y ∨

En el caso de ∧, las cláusulas 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.

Page 36: Analisis de Algoritmos Problemas NP- Completos

5/17/2018 Analisis de Algoritmos Problemas NP- Completos - slidepdf.com

http://slidepdf.com/reader/full/analisis-de-algoritmos-problemas-np-completos 36/36

Tarea para entregar el marte 

El problema SAT trata de una expresión booleana φ en

CNF y es NP-completo.¿Qué podemos deducir sobre la complejidad del problemade satisfacción de expresiones en DNF?

Después, busca en la literatura o en línea la definición dela clase de complejidad #P y vuelve a analizar la preguntaanterior considerando en especial la clase #P.

Problemas NP-completos– p.