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 2 Teoría de “NP-Completeness” ¡ Diseñada para aplicarse solo a problemas de decisión ¡ 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 Representación de Problemas 3 Dos partes ¡ 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 Π Representación de Problemas 4 Dos partes ¡ 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 5 Este es un problema de decisión muy conocido de la teoría de grafos INSTANCIA: Dos grafos, G1 = (V1, E1) y G2 = (V2, E2) PREGUNTA: ¿Contiene G1 un subgrafo isomorfo a G2, esto es, un subconjunto V’ ⊆ V1 y un subconjunto E’ ⊆ E1 tal que |V’| = |V2|, |E’| = |E2|, y existe una función uno-a-uno f: V2 à V’ que satisface {u, v} ∈ E2 sí y solo si {f(u), f(v)} ∈ E’? Ejemplo: Agente Viajero 6 INSTANCIA: Un conjunto finito C = {c1, c2, …, cm} de “ciudades”, una “distancia” d(ci, cj) ∈ Z+ para cada par de ciudades ci, cj ∈ 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 ⎤ ( ) d c , c ⎢∑ π (i ) π (i +1) ⎥ + d (cπ ( m ) , cπ (1) ) ≤ B ⎣ i =1 ⎦ ? Restricción a Problemas de Decisión 7 Se hace porque tienen una contraparte formal muy natural ¡ Adecuado para estudiar en una teoría matemáticamente precisa de computación ¡ Esta contraparte es llamada “lenguaje” Lenguaje 8 Para cualquier conjunto finito Σ de símbolos, denotamos como Σ* al conjunto de todas las cadenas de símbolos de Σ. 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 10 Esquema de codificación que usamos para especificar instancias del problema cuando queremos calcularlas 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 11 El problema Π y el esquema de codificación e para Π particionan Σ* en tres clases de cadenas ¡ Aquellas que no son codificaciones de instancias de Π ¡ 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: Σ es el alfabeto utilizado por e, y x es la ⎫ ⎧ ∗ L[Π, e] = ⎨ x ∈ Σ : ⎬ codificaci ón bajo e de una instancia I ∈ Y Π ⎩ ⎭ Correspondencia Problema de Decisión-Lenguaje 12 La teoría formal se aplica a problemas de decisión ¡ 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 13 La teoría formal se aplica a problemas de decisión ¡ 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 14 Polinomialmente relacionado ¡ 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] = |V1| + |V2|, donde G1 = (V1, E1) y G2 = (V2, E2) son los grafos que hacen una instancia. Correspondencia Problema de Decisión-Lenguaje 15 Polinomialmente relacionado ¡ Para el problema de decisión del Agente Viajero podemos tomar Length[I] = m + ⎡log2B⎤ + max{⎡log2d(ci,cj)⎤: ci, cj ∈ C} ¡ 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 16 ¡ Esquema de codificación razonable ÷ No hay una definición formal ÷ Significado generalmente aceptado incluye las nociones de: ¢ 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 La Clase P 18 Definición formal ¡ P = { L: hay un programa DTM “M” que se ejecuta en tiempo polinomial para el cual L = LM } ÷ L à Lenguaje La Clase P 19 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. ¡ Decimos que el problema Π pertenece a P. ¡ Computación No-Determinística y la Clase NP 20 Otra clase de lenguajes / problemas de decisión ¡ Dada una instancia del problema, una “solución” se puede verificar en tiempo polinomial. ¡ Ser polinomialmente verificable no implica tener una solución en tiempo polinomial Computación No-Determinística y la Clase NP 21 Definición formal ¡ NP = {L : existe un programa NDTM M que se ejecuta en tiempo polinomial para el cual LM = L} ¡ 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 23 NDTM hace el proceso en dos pasos 1. “guessing stage” a) 2. Escribe una cadena arbitraria de Γ * en la cinta “checking stage” Examina la cadena b) Una ejecución para cada cadena generada en el “guessing Stage” a) Puede ser un número infinito de cadenas a) Diferencia entre DTM y NDTM 24 NDTM hace el proceso en dos pasos 1. Al término de una computación Estado de aceptación qY b) Estado de no aceptación qN c) Todas las demás (“halting” o no) 1. Consideradas como de no aceptación a) Examen para la Casa 25 Examen para Casa 26 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 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