analisis de algoritmos problemas np- completos
TRANSCRIPT
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.