Análisis y Diseño de Algoritmos Teoría NP-Completeness DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE
Problemas de Decisión Teoría de NP-Completeness Diseñada para aplicarse solo a problemas de decisión 2 Dos posible soluciones Sí o No Un problema de decisión Π consiste de un conjunto de instancias D Π y un subconjunto Y Π D Π de instanciassí. La mayoría de los problemas de decisión reales de interés poseen una cantidad considerable de estructura adicional
Dos partes Representación de Problemas 3 Primera: Especificar una instancia genérica del problema en términos de varios componentes Conjuntos, grafos, funciones, números, etc. Segunda: Expresar una pregunta sí-no en términos de la instancia genérica Debe ser evidente la especificación de Y Π y D Π
Dos partes Representación de Problemas 4 Una instancia pertenece a D Π sí y solo si se puede obtener a partir de la instancia genérica sustituyendo objetos particulares de los tipos especificados para todos los componentes genéricos La instancia pertenece a Y Π sí y solo si la respuesta a la pregunta expresada, al particularizarla a la instancia, es Sí.
Ejemplo: Subgrafo Isomorfo Este es un problema de decisión muy conocido de la teoría de grafos 5 INSTANCIA: Dos grafos, G 1 = (V 1, E 1 ) y G 2 = (V 2, E 2 ) PREGUNTA: Contiene G 1 un subgrafo isomorfo a G 2, esto es, un subconjunto V V 1 y un subconjunto E E 1 tal que V = V 2, E = E 2, y existe una función uno-a-uno f: V 2 à V que satisface {u, v} E 2 sí y solo si {f(u), f(v)} E?
Ejemplo: Agente Viajero 6 INSTANCIA: Un conjunto finito C = {c 1, c 2,, c m } de ciudades, una distancia d(c i, c j ) Z + para cada par de ciudades c i, c j C, y un límite B Z + (donde Z + denota los enteros positivos). PREGUNTA: Habrá un circuito de todas las ciudades en C teniendo longitud total no mayor que B, esto es, un ordenamiento <c π(1), c π(2),, c π(m) > de C tal que m 1 i= 1 d ( c c ) d( c, c B π ( i), π ( i+ 1) π ( m) π (1) ) +?
Restricción a Problemas de Decisión Se hace porque tienen una contraparte formal muy natural 7 Adecuado para estudiar en una teoría matemáticamente precisa de computación Esta contraparte es llamada lenguaje
Lenguaje Para cualquier conjunto finito Σ de símbolos, denotamos como Σ * al conjunto de todas las cadenas de símbolos de Σ. 8 Si Σ={0, 1}, entonces Σ * consiste de la cadena vacía, las cadenas 0, 1, 00, 01, 10, 11, 000, 001, y todas las otras cadenas finitas de 0 s y 1 s. Si L es un subconjunto de Σ *, decimos que L es un lenguaje sobre el alfabeto Σ. Entonces {01, 001, 111, 1101010} es un lenguaje sobre {0, 1}, también lo es el conjunto de todas las representaciones binarias de enteros que son cuadrados perfectos, como lo es el conjunto {0, 1} *.
Lenguaje 9 Si Σ={0, 1}, entonces Σ * consiste de la cadena vacía, las cadenas 0, 1, 00, 01, 10, 11, 000, 001, y todas las otras cadenas finitas de 0 s y 1 s. Si L es un subconjunto de Σ *, decimos que L es un lenguaje sobre el alfabeto Σ. Entonces {01, 001, 111, 1101010} es un lenguaje sobre {0, 1}, también lo es el conjunto de todas las representaciones binarias de enteros que son cuadrados perfectos, como lo es el conjunto {0, 1} *.
Correspondencia Problema de Decisión-Lenguaje Esquema de codificación que usamos para especificar instancias del problema cuando queremos calcularlas 10 Un esquema de codificación e para un problema Π provee una manera de describir cada instancia de Π con una cadena apropiada de símbolos sobre algún alfabeto fijo Σ.
Correspondencia Problema de Decisión-Lenguaje El problema Π y el esquema de codificación e para Π particionan Σ * en tres clases de cadenas Aquellas que no son codificaciones de instancias de Π 11 Las que codifican instancias de Π para las que la respuesta es no Las que codifican instancias de Π para las que la respuesta es sí El lenguaje que asociamos con Π y e: L, = x Σ [ Π e] Σ es el alfabeto utilizado por e, y x es la : codificación bajo e de una instancia I Y Π
Correspondencia Problema de Decisión-Lenguaje La teoría formal se aplica a problemas de decisión 12 Decimos que si un resultado se mantiene para el lenguaje L[Π, e], entonces también se mantiene para el problema Π bajo el esquema de codificación e.
Correspondencia Problema de Decisión-Lenguaje La teoría formal se aplica a problemas de decisión 13 Si tenemos dos esquemas de codificación razonables e y e para el problema Π, entonces la propiedad se mantiene o para L[Π, e] y L[Π, e ] o para ninguno. Permite decir, informalmente, que la propiedad se mantiene (o no) para el problema Π, sin especificar ningún esquema de codificación Se pierde la noción precisa del tamaño de la entrada Necesario asociar una función: Length: D Π à Z + que está polinomialmente relacionada a las longitudes de entrada que obtendremos de un esquema de codificación razonable
Correspondencia Problema de Decisión-Lenguaje Polinomialmente relacionado 14 Para cualquier esquema de codificación razonable e para Π, existen dos polinomios p y p tal que si I D Π y x es una cadena que codifica la instancia I bajo e, entonces Length[I] p( x ) y x p (Length[I]), donde x denota la longitud de la cadena x. Para el problema de Subgrafo Isomorfo: Length[I] = V 1 + V 2, donde G 1 = (V 1, E 1 ) y G 2 = (V 2, E 2 ) son los grafos que hacen una instancia.
Correspondencia Problema de Decisión-Lenguaje Polinomialmente relacionado Para el problema de decisión del Agente Viajero podemos tomar Length[I] = m + log 2 B + max{ log 2 d(c i,c j ) : c i, c j C} 15 Dos esquemas de codificación razonables para un problema Π llevarán a longitudes de entrada polinomialmente relacionadas Hay una amplia variedad de posibilidades de funciones de longitud (Length) para Π.
Correspondencia Problema de Decisión-Lenguaje Esquema de codificación razonable No hay una definición formal Significado generalmente aceptado incluye las nociones de: 16 Conciso Instancias de un problema deben describirse con la brevedad natural que usaríamos en una especificación de las mismas para una computadora Decodificable Dado un componente particular de una instancia genérica, deberíamos ser capaces de especificar un algoritmo en tiempo polinomial que sea capaz de extraer una descripción del componente para cualquier instancia codificada dada.
Máquina de Turing Determinística y la Clase P 17 Necesitamos un modelo para formalizar la noción de algoritmo Máquina de turing determinística con una cinta
Definición formal La Clase P 18 P = { L: hay un programa DTM M que se ejecuta en tiempo polinomial para el cual L = L M } L à Lenguaje
La Clase P El problema de decisión Π pertenece a P bajo el esquema de codificación e si L[Π, e] P. Hay una DTM que resuelve Π en tiempo polinomial bajo el esquema de codificación e. 19 Decimos que el problema Π pertenece a P.
Computación No-Determinística y la Clase NP Otra clase de lenguajes / problemas de decisión Dada una instancia del problema, una solución se puede verificar en tiempo polinomial. 20 Ser polinomialmente verificable no implica tener una solución en tiempo polinomial
Computación No-Determinística y la Clase NP Definición formal NP = {L : existe un programa NDTM M que se ejecuta en tiempo polinomial para el cual L M = L} 21 El problema de decisión: Π pertenece a NP bajo el esquema de codificación e si L[Π, e] NP. Decimos que el problema Π pertenece a NP.
Computación No-Determinística y la Clase NP 22
Diferencia entre DTM y NDTM NDTM hace el proceso en dos pasos 1. guessing stage a) Escribe una cadena arbitraria de Γ * en la cinta 23 2. checking stage a) Examina la cadena b) Una ejecución para cada cadena generada en el guessing Stage a) Puede ser un número infinito de cadenas
Diferencia entre DTM y NDTM NDTM hace el proceso en dos pasos 1. Al término de una computación a) Estado de aceptación q Y 24 b) Estado de no aceptación q N c) Todas las demás ( halting o no) 1. Consideradas como de no aceptación
Examen para la Casa 25
Examen para Casa Describir lo que entienden (no copiar del libro) La relación entre P y NP (no las diferencias) Cual es la diferencia entre las clases P, NP y NP-complete? Describir el teorema de Cook 26 Entrega: 28-Nov-2012 hasta la media noche Deberán: Convencerme de que entienden el tema Escribir respuestas lo más concisas posible Utilizar ejemplos
Alfabeto Griego 27