Análisis y Diseño de Algoritmos - Ciencias Computacionales

Anuncio
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
Descargar