Problemas NP-completos

Documentos relacionados
Algoritmos pseudo-polinomiales

Análisis de Algoritmos Problemas de grafos

Clases de complejidad

Clases de complejidad computacional: P y NP

Complejidad - Problemas NP-Completos. Algoritmos y Estructuras de Datos III

Estructuras de datos Árboles B

Problemas computacionales, intratabilidad y problemas NP completos. 26 de agosto de Facultad de Ingeniería. Universidad del Valle

Complejidad computacional (Análisis de Algoritmos)

INAPROXIMABILIDAD. Curso: Algoritmos de aproximación Docente: Pablo Romero Estudiante: Daniel La Buonora Octubre de 2016

Análisis y Diseño de Algoritmos

Teoría de la Computación puesta en Práctica

IN34A - Optimización

Estructuras de datos Listas y árboles

Curso: Teoría de la Computación. Unidad 2, Sesión 7: Complejidad computacional

MARITZA HERRERA FLOREZ YUDY MARCELA BOLAÑOS RIVERA

Caminos. Sobre los problemas de encontrar caminos en grafos. Complexity D.Moshkovitz

Problemas computacionales, intratabilidad y problemas NP completos. Febrero Facultad de Ingeniería. Universidad del Valle

Introducción a la complejidad computacional

Complejidad amortizada

Departamento de Tecnologías de la Información. Tema 7. Complejidad temporal. Ciencias de la Computación e Inteligencia Artificial

Tablas de dispersión

Tema 1: Sintaxis y Semántica de la Lógica Proposicional

Coloreo de Grafos. Algoritmos y Estructuras de Datos III

NP-Completeness: Universidad Autónoma de Nuevo León Facultad de Ingeniería Mecánica y Eléctrica División de Posgrado en Ingeniería de Sistemas

CLASIFICACIÓN DE PROBLEMAS

como les va con las practicas?

ALGORITMOS HEURÍSTICOS Y APROXIMADOS. Análisis y diseño de algoritmos II- 2009

Complejidad - Problemas NP-Completos. Algoritmos y Estructuras de Datos III

Capítulo 2 El Método de Resolución

13 Espacio y Tiempo Polinomial

El análisis de los problemas de localización es un área fértil de investigación

Análisis de Algoritmos Teoría de grafos

Resolución Proposicional

Matemática computable

Curso: Teoría de la Computación. Unidad 2, Sesión 8: Complejidad computacional (2)

La dificultad de jugar sudoku

Matemáticas Dicretas LÓGICA MATEMÁTICA

Departamento de Tecnologías de la Información. Tema 5. Decidibilidad. Ciencias de la Computación e Inteligencia Artificial

Programación dinámica p. 1

Algoritmos y Complejidad

OPTIMIZACIÓN EN GRAFOS Y EL PROBLEMA P=NP

Lógica Proposicional IIC1253. IIC1253 Lógica Proposicional 1/64

Teoría de grafos y optimización en redes

RAMIFICAR-ACOTAR Y PLANOS DE CORTE

PLE: Optimización Combinatoria

Aprendizaje Computacional y Extracción de Información

Complejidad computacional. Algoritmos y Estructuras de Datos I. Complejidad computacional. Notación O grande

Algoritmo de Fleury. por. Ramón Espinosa Armenta

La Forma Normal de Chomsky

Estructuras de datos Grafos

Motivación: Problemas de optimización

Hamilton, Euler y Dijkstra

Máquinas de Turing IIC3242. IIC3242 Máquinas de Turing 1 / 45

Teoremas: Condiciones Necesarias, Condiciones Suficientes y Condiciones Necesarias y Suficientes

300CIG007 Computabilidad y Lenguajes Formales: Autómatas Finitos

Introducción a la Complejidad Computacional

Lógica modal computacional

Sintaxis LÓGICA COMPUTACIONAL CÁLCULO DE PROPOSICIONES. Funciones boolenas. Semántica

Máquinas de Turing IIC3242. IIC3242 Máquinas de Turing 1 / 42

Paradigma lógico Lógica proposicional Resolución. Programación Lógica. Eduardo Bonelli. Departamento de Computación FCEyN UBA. 10 de octubre, 2006

Herramientas. 1 FormaLex, Departamento de Computación, FCEyN, Universidad de Buenos Aires, Buenos Aires, Argentina

Grafos. Suponiendo que e = [u, v]. Entonces los nodos u y v se llaman extremos de e y u y v se dice que son nodos adyacentes o vecinos.

Sistema Axiomático para el Cálculo Proposicional

La Jerarquía Polinomial

Backtracking: Esquema General

Semana02[1/23] Conjuntos. 9 de marzo de Conjuntos

MATEMÁTICAS DISCRETAS. UNIDAD 2 Algebras Booleanas y Circuitos Combinatorios

Tema 5: Problemas de Optimización

Computación Cuántica versus MTPs

Recordatorio Basico de Álgebra para Lógica

Contenido. Prólogo... Prólogo a la edición en español Argumentos y proposiciones lógicas Introducción

Computabilidad y Lenguajes Formales: Teoría de la Computabilidad: Máquinas de Turing

Problemas: formulación, ejemplos, representación de soluciones y estructuras de entorno

Cálculo diferencial e integral I. Eleonora Catsigeras

Ejercicios de Lógica Proposicional *

Introducción a la indecidibilidad

Lógicas Modales. Usos de Bisimulaciones

Sea NxN = {(0,0), (0,1), (1,0), (0,2), (1,1), (2,0),... } el conjunto de pares de naturales,

El problema de satisfacción

INDICE INTRODUCCION1 DESARROLLO2 GRAFOS (CONCEPTO).2 ARISTAS...2 VERTICES2 CAMINOS.3 CLASIFICACION DE GRAFOS...3 GRAFOS EULERIANOS.

Curso: Métodos de Monte Carlo Unidad 3, Sesión 7: Problemas de conteo

Equivalencia Entre PDA y CFL

Demostraciones por resolución

4 horas. 96 horas. Competencias Especificas: Construye algoritmos analizando su complejidad mediante técnicas y métodos documentados.

Formulando con modelos lineales enteros

Tema 10: Conceptos Metalógicos

Hacia las Gramáticas Propias II

Nuestro objetivo es demostrar que autómata = lógica Qué significa esto? Queremos encontrar una lógica que defina a los lenguajes regulares

Lógica proposicional. Ivan Olmos Pineda

Escuela de algoritmos de aproximación

Grafos. AMD Grado en Ingeniería Informática. AMD Grado en Ingeniería Informática (UM) Grafos 1 / 30

En la fig. 1 se representa el grafo, G=(V,A) donde: V = {1, 2, 3, 4, 5, 6} A = { {1,2}, {1,3}, {1,5}, {3}, {3,4}, {4,5}, {5,6} }

puede no servir si hay arcos con costo negativo. Justifique.

Análisis y síntesis de sistemas digitales combinacionales

Lenguaje de programación S (Davis/Sigal/Weyuker) Lógica y Computabilidad. Ejemplo 1. Ejemplo 2

Inteligencia en Redes de Comunicaciones. Razonamiento lógico. Julio Villena Román.

LógicaS Modales. Ricardo Oscar Rodríguez Departamento de Computación, Fac. Ciencias Exactas y Naturales, Universidad de Buenos Aires, Argentina.

Variantes del problema de coloreo de grafos

Teoría de Modelos Finitos: Motivación

Gramáticas independientes del contexto TEORÍA DE LA COMPUTACIÓN LENGUAJES INDEPENDIENTES DEL CONTEXTO Y AUTÓMATAS DE PILA. Otras definiciones I

Transcripción:

Análisis de Algoritmos Problemas NP-completos Dra. Elisa Schaeffer elisa.schaeffer@gmail.com PISIS / FIME / UANL Problemas NP-completos p. 1

Problemas NP-completos La clase NP contiene numerosos problemas de importancia práctica. Típicamente el problema tiene que ver con la construcción o existencia de un objeto matemático que satisface ciertas especificaciones. Problemas NP-completos p. 2

Optimización versus decisión La versión de la construcción misma es un problema de optimización, donde la mejor construcción posible es la solución deseada. En la versión de decisión, que es la versión que pertenece a la clase NP, la pregunta es si existe por lo menos una configuración que cumpla con los requisitos del problema. Problemas NP-completos p. 3

Demostraciones Se puede decir que la mayoría de los problemas interesantes de computación en el mundo real pertenecen a la clase NP. La aplicación cotidiana de la teoría 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. Problemas NP-completos p. 4

Método básico Mostrar que el problema de interés sea NP-completo, porque este implicaría que el problema es entre los menos 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

Nivel de estudio Si se sube a un nivel suficientemente general, muchos problemas resultan NP-completos. En muchos casos es importante identificar qué requisitos causan que el problema resulte NP-completo versus polinomial. Una técnica básica es estudiar el conjunto de instancias producidas por una reducción utilizada en la demostración de ser NP-completo para capturar otro problema NP-completo. Problemas NP-completos p. 6

Diseño de demostraciones 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. 7

Diseño de demostraciones 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. 7

Diseño de demostraciones 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 al problema Q. Problemas NP-completos p. 7

Diseño de demostraciones 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 al problema Q. Probar que con la entrada R(x), si la solución de Q es sí que este implica que la solución de P con x también es siempre sí. Problemas NP-completos p. 7

Diseño de demostraciones 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 al problema Q. Probar que con la entrada R(x), si la solución de Q es sí que este implica que la solució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. 7

La dificultad 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. 8

Estudios de continuación Cuando ya está establecido que un problema de interés es NP-completo, normalmente se dirige el esfuerzo de investigació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. 9

Relacion polinomialmente balanceada Una relación R Σ Σ se puede decidir en tiempo polinomial si y sólo si existe una TM determinista que decide 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. 10

Conexión con la clase NP Sea L Σ un lenguaje. Aplica que L NP si y sólo si existe una relación polinomialmente balanceada R que se puede decidir en tiempo polinomial tal que L = {x Σ (x,y) R para algún y Σ }. Problemas NP-completos p. 11

Demostración ( ) Suponga que existe tal relación R. Entonces L está decidida por una máquina Turing no determinista 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. 12

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ún valor de k. Definimos (x,y) R si y sólo si y es una codificación de una computación de N que acepta la entrada x. Problemas NP-completos p. 13

( ) continua... Esta R está polinomialmente balanceada, como cada computación de N tiene cota polinomial. Además se puede decidir R en tiempo polinomial, como se 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. 14

Certificado conciso Un problema A pertenece a la clase NP si cada instancia con la respuesta sí del problema A tiene por lo menos un certificado conciso a y. En los problemas típicos que tratan de la existencia de un objeto matemático que cumple con ciertos criterios, el objeto mismo sirve como un certificado. a también llamado un testigo polinomial Problemas NP-completos p. 15

Problemas ksat El lenguaje ksat, donde k 1 es un entero, es el conjunto de expresiones booleanas φ SAT (en CNF) en las cuales cada cláusula contiene exactamentek literales. 3SAT es NP-completo Problemas NP-completos p. 16

Demostración 3SAT NP por ser un caso especial de SAT NP. CIRCUITSAT es NP-completo y tenemos una reducción de CIRCUITSAT a SAT. Vamos a reconsiderar las cláusulas producidas en esa reducción: todas tienen tres literales o menos! Problemas NP-completos p. 17

Aumento de literales Como las cláusulas son disyunciones, podemos aumentar cada cláusula de uno o dos literales a tener tres simplemente por copiar literales. Entonces, tenemos una reducción de CIRCUITSAT a 3SAT. Problemas NP-completos p. 18

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. 3SAT es NP-completo aún cuando solamente se permite que cada variable aparezca por máximo tres veces en la expresión φ 3SAT y además que cada literal aparezca por máximo dos veces en φ. Problemas NP-completos p. 19

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 x 1,...,x k y reemplazamos la primera ocurrencia de x en φ por x 1, la segunda por x 2, etcétera. Problemas NP-completos p. 20

Cláusulas auxiliares Para asegurar que las variables nuevas tengan todas el mismo valor, añademos las cláusulas siguientes en φ: ( x 1 x 2 ),( x 2 x 3 ),...,( x k x 1 ). Denota por φ la expresión 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 sólo si φ es satisfactible. Problemas NP-completos p. 21

2SAT Para cada instancia φ de 2SAT, existe un algoritmo polinomial basado en el problema REACHABILITY en un grafo G(φ). Las variables x de φ y sus negaciones x forman el conjunto de vértices de G(φ). Una arista conecta dos vértices x i y x j si y sólo si existe una cláusula x i x j o x j x i en φ: {x i,x j } E { x j, x i } E Problemas NP-completos p. 22

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

2SAT NL Además, resulta que 2SAT NL P. Como NL está cerrada bajo el complemento, podemos mostrar que 2SAT Complement NL. La existencia del camino de no satisfiabilidad del resultado anterior puede ser verificada en espacio logarítmico por computación no determinista por adivinar una variable x y el camino entre x y x. Problemas NP-completos p. 24

MAX2SAT Una generalización de 2SAT: Dada: una expresión booleana φ en CNF con no más de dos 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. 25

NAESAT El lenguaje NAESAT 3SAT contiene las expresiones booleanas φ para las cuales existe una asignación de valores T tal que en ninguna cláusula de φ, todas las literales tengan el mismo valor o. NAESAT es NP-completo Problemas NP-completos p. 26

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ón a contener exactamente tres literales por añadir uno o dos duplicados de un literal z donde hace falta. Vamos a mostrar que para la expresión booleana R z (C) en CNF de tipo 3SAT aplica que R z (C) NAESAT C CIRCUITSAT. Problemas NP-completos p. 27

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ón NAESAT. En una de las dos asignaciones asigna al literal z, por lo cual todas las cláusulas originales están satisfechas en esta asignación. Entonces, por la reducción de CIRCUITSAT a SAT, existe una asignación que satisface el circuito. Problemas NP-completos p. 28

La dirección ( ) Si C es satisfactible, existe una T que satisface a R z (C). Extendemos T para R z (C) por asignar T(z) =. En ninguna cláusula de R z (C) es permitido que todos los literales tengan el valor (y tampoco que todos tengan el valor ). Problemas NP-completos p. 29

Análisis de T Cada cláusula que corresponde a una puerta tipo,, o variable tenía originalmente dos literales o menos, por lo cual 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 el valor en T para cada cláusula. Problemas NP-completos p. 30

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

Tarea para entregar el martes El problema SAT trata de una expresión booleana φ en CNF y es NP-completo. Qué podemos deducir sobre la complejidad del problema de satisfacción de expresiones en DNF? Después, busca en la literatura o en línea la definición de la clase de complejidad #P y vuelve a analizar la pregunta anterior considerando en especial la clase #P. Problemas NP-completos p. 32