Clases de complejidad computacional: P y NP

Documentos relacionados
Análisis y Diseño de Algoritmos

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

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

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

Motivación: Problemas de optimización

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

La Jerarquía Polinomial

Problemas de Decisión

Coloreo de Grafos. Algoritmos y Estructuras de Datos III

Máquinas de Turing, recordatorio y problemas

Complejidad computacional (Análisis de Algoritmos)

ALGORITMOS DIGITALES II. Ing. Hugo Fdo. Velasco Peña Universidad Nacional 2006

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

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

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

MARITZA HERRERA FLOREZ YUDY MARCELA BOLAÑOS RIVERA

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

Clase práctica 3: Consecuencia Lógica

Modelos Computacionales

Lógica modal computacional

IN34A - Optimización

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

5 Autómatas de pila 5.1 Descripción informal. 5.2 Definiciones

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

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

Máquinas de Turing Definición y descripción

Inducción Matemática Conjuntos Funciones. Matemática Discreta. Agustín G. Bonifacio UNSL. Repaso de Inducción, Conjuntos y Funciones

Autómatas Finitos Deterministicos (DFA)

Introducción a la complejidad computacional

CLASIFICACIÓN DE PROBLEMAS

Autómatas Finitos Deterministicos (DFA)

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

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

Capítulo 9. Introducción a los lenguajes formales. Continuar

Demostraciones por resolución

1. Resolución en lógica proposicional

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

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

Teoría de Autómatas y Compiladores [ICI-445] Capítulo 2: Autómatas Finitos

ALGEBRA y ALGEBRA LINEAL. Primer Semestre CAPITULO I LOGICA Y CONJUNTOS.

Ciencias de la Computación I

Lógicas Modales. Usos de Bisimulaciones

7. Máquinas de Turing.

Introducción a la indecidibilidad

Máquinas de Turing, programas y tesis de Turing-Church

El problema de satisfacción

Algoritmos pseudo-polinomiales

Complejidad Computacional. Andrés Abeliuk Estudiante de Ciencias de la computación U. de Chile

Departamento de Tecnologías de la Información. Tema 4. Máquinas de Turing. Ciencias de la Computación e Inteligencia Artificial

El Autómata con Pila

Grafos Eulerianos y Hamiltonianos. Algoritmos y Estructuras de Datos III

Curso Básico de Computación

Algoritmos y Complejidad

Auxiliar 2: Conjuntos

Introducción a la Lógica Proposicional Seminario de Matemáticas

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

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

Problemas en P y NP. Marcos Kiwi. Semestre Otoño U. Chile

Maquina de Turing. 5. Fundamentos de algoritmos. Turing TURING TURING 10/08/2010. MI Elizabeth Fonseca Chávez

Variantes del problema de coloreo de grafos

Lógica Proposicional Lenguaje Proposicional Implicación semántica

El lenguaje P. Lógica y Computabilidad ( ) símbolos p. Verano convenciones. Lógica Proposicional - clase 1

1. Probar pertenencia a Lenguajes libres de contexto

1. Ejercicios propuestos

Introducción a la Complejidad Computacional

Tema 1: Conjuntos. Miguel Ángel Olalla Acosta Departamento de Álgebra Universidad de Sevilla. Septiembre de 2017

Resolución Proposicional

Lógica de proposiciones

Coordinación de Matemática I (MAT021) 1 er Semestre de 2013 Semana 1: Lunes 11 Viernes 16 de Marzo. Contenidos

Matemática computable

Análisis de Algoritmos Problemas de grafos

La Forma Normal de Chomsky

Máquinas de Turing. 18 de junio de 2015

Departamento de Ingeniería Matemática - Universidad de Chile

Teoría Matemática de la Computación Primer Problemario Prof. Miguel A. Pizaña 22 de Febrero de 2007

Teoría de Modelos Finitos: Motivación

Semántica Operacional para la Programación en Lógica Lógica para Ciencias de la Computación

Lógica - Conjuntos inductivos

Sistemas Deductivos. Sistemas Deductivos

En general, un conjunto A se define seleccionando los elementos de un cierto conjunto U de referencia que cumplen una determinada propiedad.

Introducción a la Computación (Matemática)

IIC2213. IIC2213 Teorías 1 / 42

Capítulo 2. Conjuntos Finitos Funciones

CONJUNTOS. Por ejemplo, el E del ejemplo 2 se escribe.

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

Algoritmo Cuántico de Búsqueda Paralelo

MÁQUINAS DE TURING CIENCIAS DE LA COMPUTACION I 2009

El sistema deductivo de Hilbert

Eliminación de cuantificadores

Traductores Push Down

Sea Σ un alfabeto y L el lenguaje de los palíndromos sobre Σ. Sean a, b dos elementos de Σ. Se demuestra por reducción al absurdo que L no es regular:

Conjuntos finitos y conjuntos numerables

Semántica del Cálculo Proposicional

Tema 1: Conjuntos. Miguel Ángel Olalla Acosta Departamento de Álgebra Universidad de Sevilla. Septiembre de 2016

Matemáticas Dicretas LÓGICA MATEMÁTICA

Ejercicio. Usando la formulación del principio de inducción mostrada en la transparencia anterior, demuestre que: 2 2 n 1esdivisiblepor3. =2 n.

como les va con las practicas?

Algoritmos para determinar Caminos Mínimos en Grafos

Tipos de datos en S. Lógica y Computabilidad. Codificación de variables y etiquetas de S. Codificación de programas en S

Una (muy) breve introducción a la teoría de la computación

Transcripción:

1er cuatrimestre 2006

La teoría de Se aplica a problemas de decisión, o sea problemas que tienen como respuesta SI o NO (aunque es sencillo ver que sus implicancias pueden extenderse a problemas de optimización). En el caso del problema de TSP, la variante de decisión se podría formular como: existe un circuito Hamiltoniano de longitud menor o igual a k? Un problema de decisión π consiste entonces de un conjunto D π de instancias y un subconjunto Y π D π de instancias cuya respuesta es SI.

: DTM Máquina de Turing Determinística Máquina de Turing No Determinística Recordemos la noción de Máquina de Turing Determinística (DTM) Consiste de un control, una cabeza lecto-escritora y una cinta con el siguiente esquema. Σ finito, el alfabeto; Γ = Σ { }; Q finito, el conjunto de estados; q 0 Q, estado inicial; Q f Q, estados finales (q si y q no para problemas de decisión)

: DTM Máquina de Turing Determinística Máquina de Turing No Determinística Sobre la cinta tengo escrito el input que es un string de símbolos de Σ a partir de la celda 1, y el resto de las celdas tiene (blancos). Definimos un programa S como un conjunto de quíntuplas S Q Γ Q Γ M, donde M = {+1, 1} son los movimientos de la cabeza a derecha o izquierda. Para todo par (q i, s j ), existe exactamente una quíntupla que comienza con ese par (máquina determinística).

: DTM Máquina de Turing Determinística Máquina de Turing No Determinística Qué significa la quíntupla (q i, s h, q j, s k, +1)? Significa que si estando en el estado q i la cabeza lee s h, entonces escribe s k, se mueve a la derecha y pasa al estado q j. La complejidad de una DTM está dada por la cantidad de movimientos de la cabeza en función del tamaño de la entrada. Un problema está en P si existe una DTM de complejidad polinomial que lo resuelve. Existen otros modelos de computadoras determinísticas (máquina de Turing con varias cintas, Random Access Machines, etc.) pero puede probarse que son equivalentes en términos de la polinomialidad de los problemas a la DTM.

: NDTM Máquina de Turing Determinística Máquina de Turing No Determinística Máquinas de Turing No Determinísticas (NDTM) No se pide unicidad de la quíntupla que comienza con cualquier par (q i, s j ). En caso de que hubiera más de una quíntupla, la máquina se replica continuando cada una por una rama distinta. Decimos que una NDTM resuelve el problema π si para toda instancia de Y π existe una rama que llega a un estado final q si y para toda instancia en D π \ Y π ninguna rama llega a un estado final q si.

: NDTM Máquina de Turing Determinística Máquina de Turing No Determinística Una NDTM es polinomial para π cuando existe una función polinomial T (n) de manera que para toda instancia de Y π de tamaño n, alguna de las ramas termina en estado q si en a lo sumo T (n) pasos. Un problema π NP si existe una NDTM polinomial que resuelve π. Equivalentemente, un problema π NP si para toda instancia en Y π, existe un certificado que puede ser verificado en tiempo polinomial. En el caso de TSP, el certificado consiste en un circuito Hamiltoniano de longitud k. Es fácil ver que puede verificarse en tiempo polinomial si es un circuito Hamiltoniano y si su longitud es k. Claramente, P NP. Conjetura: P NP.

Máquina de Turing Determinística Máquina de Turing No Determinística : NDTM Dado un problema π, se define su problema complemento π como aquel tal que D π = D π e Y π = D π \ Y π. Ejemplo: π = Es p primo?; π = Es p compuesto?. Un problema π co-np si π NP. Claramente, P co-np.

Introducción P NP? Problemas NP-completos Reducción polinomial: Sean π y π dos problemas de decisión. Decimos que f : D π D π es una reducción polinomial de π en π si f se computa en tiempo polinomial y para todo d D π, d Y π f (d) Y π. Notación: π π. Notemos que si π π y π π entonces π π, ya que la composición de dos reducciones polinomiales es una reducción polinomial. Un problema π es NP-completo si: 1. π NP. 2. Para todo π NP, π π. Si un problema π verifica la condición 2., π es NP-Hard (es al menos tan difícil como todos los problemas de NP).

P NP? Problemas NP-completos P NP? La pregunta del millón... Si existe un problema en NP-c P, entonces P=NP. Si π NP-c P, existe un algoritmo polinomial que resuelve π, por estar π en P. Por otro lado, como π es NP-completo, para todo π NP, π π. Sea π NP. Apliquemos la reducción polinomial que transforma instancias de π en instancias de π y luego el algoritmo polinomial que resuelve π. Por definición de reducción polinomial, es fácil ver que lo que se obtiene es un algoritmo polinomial que resuelve π. Hasta el momento no se conoce ningún problema en NP-c P, así como tampoco se ha demostrado que un problema esté en NP \ P. En ese caso, obviamente, se probaría que P NP.

Esquema de clases Introducción P NP? Problemas NP-completos NP-c NP NP-c NP P P si P=NP... si P=NP...

P NP? Problemas NP-completos Cómo se prueba que un problema es NP-completo? El problema SAT consiste en decidir si, dada una fórmula lógica ϕ expresada como conjunción de disyunciones (ej: ϕ = x 1 (x 2 x 1 ) (x 3 x 4 x 1 )), existe una valuación de sus variables que haga verdadera ϕ. Es fácil ver que SAT NP. El certificado en este caso sería una valuación que satisfaga ϕ. Evaluar una fórmula es polinomial. Teorema de Cook (1971): SAT es NP-completo. La demostración de Cook es directa: considera un problema genérico π NP y una instancia genérica d D π. A partir de la hipotética NDTM que resuelve π, genera en tiempo polinomial una fórmula lógica ϕ π,d en forma normal (conjunción de disyunciones) tal que d Y π si y sólo si ϕ π,d es satisfactible.

P NP? Problemas NP-completos Cómo se prueba que un problema es NP-completo? A partir del Teorema de Cook, la técnica standard para probar que un problema π es NP-completo aprovecha la transitividad de, y consiste en lo siguiente: 1. Mostrar que π está en NP. 2. Elegir un problema π apropiado que se sepa que es NP-completo. 3. Construir una reducción polinomial f de π en π. La segunda condición en la definición de problema NP-completo sale usando la transitividad: sea π un problema cualquiera de NP. Como π es NP-completo, π π. Como probamos que π π, resulta π π.

Reducción de SAT a 3-SAT P NP? Problemas NP-completos El problema 3-SAT es una variante del problema SAT, en el cual cada cláusula tiene exactamente tres literales. Como es una restricción del dominio de SAT, está en NP, y en principio es no más difícil que SAT. Para probar que 3-SAT es NP-completo, vamos entonces a reducir SAT a 3-SAT. Tomemos una instancia genérica de SAT ϕ = C 1 C m. Vamos a reemplazar cada C i por una conjunción de disyunciones ϕ i, donde cada disyunción tenga tres literales, y de manera que ϕ sea satisfactible si y sólo si ϕ 1 ϕ m lo es.

P NP? Problemas NP-completos Reducción de SAT a 3-SAT Si C i tiene tres literales, queda como está. C i tiene menos de tres literales, agregamos nuevas variables como en el ejemplo: (x 1 x 2 ) (x 1 x 2 y) (x 1 x 2 y) Si C i tiene cuatro o más literales, agregamos nuevas variables como en el ejemplo: (x 1 x 2 x 3 x 4 x 5 ) (x 1 x 2 y 1 ) ( y 1 x 3 y 2 ) ( y 2 x 4 x 5 ) Queda como ejercicio escribir formalmente la reducción y demostrar que es una reducción polinomial de SAT a 3-SAT.