Teoría de NP Problemas de grafos y Tratabilidad Computacional1 Máquina de Turing(1937, Alan...

26
Teoría de NP Problemas de grafos y Tra tabilidad Computacional 1 Máquina de Turing(1937, Alan Turing): es un modelo formal para expresar cualquier algoritmo. Máquinas de Acceso Random (RAM)(1974, Aho,Hopcroft and Ullman) Modelos de Máquinas

Transcript of Teoría de NP Problemas de grafos y Tratabilidad Computacional1 Máquina de Turing(1937, Alan...

Page 1: Teoría de NP Problemas de grafos y Tratabilidad Computacional1  Máquina de Turing(1937, Alan Turing): es un modelo formal para expresar cualquier algoritmo.

Teoría de NP Problemas de grafos y Tratabilidad Computacional

1

Máquina de Turing(1937, Alan Turing): es un modelo formal para expresar cualquier algoritmo.

Máquinas de Acceso Random (RAM)(1974, Aho,Hopcroft and Ullman)

Modelos de MáquinasModelos de Máquinas

Page 2: Teoría de NP Problemas de grafos y Tratabilidad Computacional1  Máquina de Turing(1937, Alan Turing): es un modelo formal para expresar cualquier algoritmo.

Teoría de NP Problemas de grafos y Tratabilidad Computacional

2

Unidad de Controlguía la operatoria.puede estar en alguno de los estados Q.puede escribir un caracter de un alfabeto finito A por vez en la cinta.puede mover una posición la lectora a izquierda derecha o inmóvil.utiliza una tabla de Turing para determinar qué acciones tomar (cambiar a otro estado, escribir un carácter, mover la lectora) de acuerdo al estado actual y el carácter leído.

Máquina de TuringMáquina de Turing

Page 3: Teoría de NP Problemas de grafos y Tratabilidad Computacional1  Máquina de Turing(1937, Alan Turing): es un modelo formal para expresar cualquier algoritmo.

Teoría de NP Problemas de grafos y Tratabilidad Computacional

3

Unidad de almacenamientocinta semi-infinita para lectura y escritura, secuencias de celdas.cada celda puede almacenar un caracter de A.

Tabla de Turinges el “programa” de la máquinamapea QA a QA{}{0,+1,-1}

Máquina de TuringMáquina de Turing

Page 4: Teoría de NP Problemas de grafos y Tratabilidad Computacional1  Máquina de Turing(1937, Alan Turing): es un modelo formal para expresar cualquier algoritmo.

Teoría de NP Problemas de grafos y Tratabilidad Computacional

4

Arranque posicionado en el estado distinguido q0, el estado inicial.

string de input precargada en las primeras n posiciones de la cinta y la lectora ubicada en el comienzo de la cinta.

Terminacióncuando no se puede inferir nuevas acciones para seguir.Si el estado final es de aceptación, entonces acepta el input. Caso contrario lo rechaza.

Máquina de TuringMáquina de Turing

Page 5: Teoría de NP Problemas de grafos y Tratabilidad Computacional1  Máquina de Turing(1937, Alan Turing): es un modelo formal para expresar cualquier algoritmo.

Teoría de NP Problemas de grafos y Tratabilidad Computacional

5

Máquina de TuringMáquina de Turing

Page 6: Teoría de NP Problemas de grafos y Tratabilidad Computacional1  Máquina de Turing(1937, Alan Turing): es un modelo formal para expresar cualquier algoritmo.

Teoría de NP Problemas de grafos y Tratabilidad Computacional

6

Máquina de TuringMáquina de Turing

Page 7: Teoría de NP Problemas de grafos y Tratabilidad Computacional1  Máquina de Turing(1937, Alan Turing): es un modelo formal para expresar cualquier algoritmo.

Teoría de NP Problemas de grafos y Tratabilidad Computacional

7

Complejidad Temporal cantidad de transiciones realizadas.

Complejidad Espacialcantidad de celdas utilizadas.

Determinismosi la tabla de Turing siempre devuelve una o ninguna acción para cualquier combinación de estados con caracteres.Caso contrario, la máquina sería no determinística.

Capaz de implementar cualquier algoritmo arbitrario (Church´s Thesis)

Máquina de TuringMáquina de Turing

Page 8: Teoría de NP Problemas de grafos y Tratabilidad Computacional1  Máquina de Turing(1937, Alan Turing): es un modelo formal para expresar cualquier algoritmo.

Teoría de NP Problemas de grafos y Tratabilidad Computacional

8

Dispositivo capaz de procesar un programa RAM que es

una secuencia finitas de instrucciones.Manipula un arreglo de registros

almacenan enteros arbitrariamente grandes.Contador de programa

indica el siguiente instrucción a ejecutar.se incrementa automáticamente con instrucciones normales.existen instrucciones especiales para manejar el contador. combinación de estados con caracteres.

Máquinas de Acceso Random (RAM)Máquinas de Acceso Random (RAM)

Page 9: Teoría de NP Problemas de grafos y Tratabilidad Computacional1  Máquina de Turing(1937, Alan Turing): es un modelo formal para expresar cualquier algoritmo.

Teoría de NP Problemas de grafos y Tratabilidad Computacional

9

Tipos de instruccionesleer entrada con direccionamiento directo/indirecto.escribir en registros con direccionamiento directo/indirecto.realizar aritméticas

Son similares a lenguajes assembler.Complejidad Temporal

cantidad de instrucciones ejecutadas.Complejidad Espacial

cantidad de registros utilizados.

Máquinas de Acceso Random (RAM)Máquinas de Acceso Random (RAM)

Page 10: Teoría de NP Problemas de grafos y Tratabilidad Computacional1  Máquina de Turing(1937, Alan Turing): es un modelo formal para expresar cualquier algoritmo.

Teoría de NP Problemas de grafos y Tratabilidad Computacional

10

Los dos modelos presentados son polinomialmente equivalente.

se puede simular uno a otro con un costo polinomial.

Modelos de MáquinasModelos de Máquinas

Page 11: Teoría de NP Problemas de grafos y Tratabilidad Computacional1  Máquina de Turing(1937, Alan Turing): es un modelo formal para expresar cualquier algoritmo.

Teoría de NP Problemas de grafos y Tratabilidad Computacional

11

Complejidad Temporal de ProblemasComplejidad Temporal de Problemas Es la complejidad de mejor algoritmo que

resuelve el problema.ejemplo de sorting.

Dificultad conceptual complejidadejemplos de grafo planar, coloreo, circuitos hamiltoniano, euleriano, vertex cover, edge cover y cartero chino.

Existencia de problemas que no se saben si son polinomiales o exponenciales.

Page 12: Teoría de NP Problemas de grafos y Tratabilidad Computacional1  Máquina de Turing(1937, Alan Turing): es un modelo formal para expresar cualquier algoritmo.

Teoría de NP Problemas de grafos y Tratabilidad Computacional

12

Transformaciones o ReducciónTransformaciones o Reducción Técnica para reaprovechar experiencias

adquiridasvida cotidianaproblemas algorítmicos

Un problema A se transforma o se reduce a otro problema B (se denota AB) si existe

un algoritmo que transforma cada instancia de A en una de B y es capaz de traducir la solución de la instancia transformada de B a la solución que corresponda a la instancia original de A.

Page 13: Teoría de NP Problemas de grafos y Tratabilidad Computacional1  Máquina de Turing(1937, Alan Turing): es un modelo formal para expresar cualquier algoritmo.

Teoría de NP Problemas de grafos y Tratabilidad Computacional

13

Transformaciones o ReducciónTransformaciones o Reducción Se obtiene un algoritmo que resuelve el

problema A que es la composición del algoritmo de transformación + el mejor algoritmo que resuelve B.

Si el algoritmo de transformación es polinomial entonces se llama transformación o reducción polinomial (se denota ApB).

Page 14: Teoría de NP Problemas de grafos y Tratabilidad Computacional1  Máquina de Turing(1937, Alan Turing): es un modelo formal para expresar cualquier algoritmo.

Teoría de NP Problemas de grafos y Tratabilidad Computacional

14

Problemas de DecisiónProblemas de Decisión Se define 3 tipos de formulación de problemas:

Problema de Decisión: ¿Existe una estructura S que satisface una propiedad P?

Problema de Localización: Encontrar una estructura S que satisface una propiedad P.

Problema de Optimización: Encontrar una estructura S que satisface criterios de optimización.

Page 15: Teoría de NP Problemas de grafos y Tratabilidad Computacional1  Máquina de Turing(1937, Alan Turing): es un modelo formal para expresar cualquier algoritmo.

Teoría de NP Problemas de grafos y Tratabilidad Computacional

15

Problemas de DecisiónProblemas de Decisión Aplicado al problema de Viajante:

Dado un grafo G y un entero k>0. Verificar si en G existe un circuito Hamiltoniano con longitud k.

Dado un grafo G y un entero k>0. Encontrar en G un circuito Hamiltoniano con longitud k.

Dado un grafo G y un entero k>0. Encontrar en G un circuito Hamiltoniano con longitud mínima.

Los 3 problemas anteriores son polinomialmente equivalentes.

Page 16: Teoría de NP Problemas de grafos y Tratabilidad Computacional1  Máquina de Turing(1937, Alan Turing): es un modelo formal para expresar cualquier algoritmo.

Teoría de NP Problemas de grafos y Tratabilidad Computacional

16

Problemas de DecisiónProblemas de Decisión Con el propósito de unificar y simplificar, en la

Teoría de Complejidad muchas veces considera únicamente problemas de decisión.

Como ocurre con el problema anterior, en la práctica, las 3 versiones de formulaciones son polinomialmente equivalentes en la mayoría de los problemas.

Page 17: Teoría de NP Problemas de grafos y Tratabilidad Computacional1  Máquina de Turing(1937, Alan Turing): es un modelo formal para expresar cualquier algoritmo.

Teoría de NP Problemas de grafos y Tratabilidad Computacional

17

Problemas intratables y Problemas NPProblemas intratables y Problemas NP Un problema es intratable puede estar motivado:

el problema requiere una repuesta de longitud exponencial (ejemplo: pedir todos los circuitos hamiltonianos de longitud a lo sumo k).el problema es indecidible (ejemplo: un algoritmo con un input dado, termina o no)el problema es decidible pero no se conoce algoritmos polinomiales que lo resuelvan.

Page 18: Teoría de NP Problemas de grafos y Tratabilidad Computacional1  Máquina de Turing(1937, Alan Turing): es un modelo formal para expresar cualquier algoritmo.

Teoría de NP Problemas de grafos y Tratabilidad Computacional

18

Problemas intratables y Problemas NPProblemas intratables y Problemas NP Muchos de los problemas del último ítem son

llamados NP. (ejemplo: Viajante) Primera definición de un problema de decisión

es llamado NP:Si para todas las instancias que tienen una respuesta afirmativa y acompañada de una evidencia o justificación, esta puede ser verificada en tiempo polinomial.

Page 19: Teoría de NP Problemas de grafos y Tratabilidad Computacional1  Máquina de Turing(1937, Alan Turing): es un modelo formal para expresar cualquier algoritmo.

Teoría de NP Problemas de grafos y Tratabilidad Computacional

19

Otra definición de NP usando Máquina de TuringOtra definición de NP usando Máquina de Turing Son problemas de decisión cuyas instancias de

“SI” son aceptadas por una máquina de Turing No Determinística en tiempo polinomial.

Definición 1 de un problema de decisión es llamado NP:

Si para todas las instancias que tienen una respuesta afirmativa y acompañada de una evidencia o justificación, esta puede ser verificada en tiempo polinomial.

Page 20: Teoría de NP Problemas de grafos y Tratabilidad Computacional1  Máquina de Turing(1937, Alan Turing): es un modelo formal para expresar cualquier algoritmo.

Teoría de NP Problemas de grafos y Tratabilidad Computacional

20

Los problemas Co-NP y los problemas PLos problemas Co-NP y los problemas P Un problema de decisión es Co-NP:

Si para todas las instancias que tienen una respuesta negativa esta puede ser verificada en tiempo polinomial.Ejemplo: problema de Primalidad.

Definición de un problema complemento. La clase de los problemas polinomiales (P):

está contenido en NP y en Co-NP, porque siempre se puede verificar su respuesta en tiempo polinomial.

Page 21: Teoría de NP Problemas de grafos y Tratabilidad Computacional1  Máquina de Turing(1937, Alan Turing): es un modelo formal para expresar cualquier algoritmo.

Los problemas NP-CompletoLos problemas NP-Completo Un problema es NP-Completo si verifica

las siguientes condiciones:NP

Para todo problema ’NP, ’PLos problemas que verifican la segunda

condición son llamados NP-Hard o NP-Díficil.

El primer problema NP-Completo es de Satisfactibilidad (SAT)

probado por Cook en 1971

Page 22: Teoría de NP Problemas de grafos y Tratabilidad Computacional1  Máquina de Turing(1937, Alan Turing): es un modelo formal para expresar cualquier algoritmo.

Teoría de NP Problemas de grafos y Tratabilidad Computacional

22

Los problemas NP-CompletoLos problemas NP-Completo

Mapa de NP-Completo

N P-C o m p le to

N P-Ha rd N P

Page 23: Teoría de NP Problemas de grafos y Tratabilidad Computacional1  Máquina de Turing(1937, Alan Turing): es un modelo formal para expresar cualquier algoritmo.

Teoría de NP Problemas de grafos y Tratabilidad Computacional

23

Los problemas NP-CompletoLos problemas NP-Completo Se puede reemplazar la segunda condición de

la definición de NP-Completo por la siguiente utilizando un problema NP-Completo ’ conocido:

’P

Algunos problemas NP-Completos conocidos:3-SAT, Viajante,Clique Máxima, Mochila,Conjunto Independiente, Vertex Cover, Isomorfismo de Subgrafos,Partción Mínimo, Número Cromático, Programación Entera.

Page 24: Teoría de NP Problemas de grafos y Tratabilidad Computacional1  Máquina de Turing(1937, Alan Turing): es un modelo formal para expresar cualquier algoritmo.

Teoría de NP Problemas de grafos y Tratabilidad Computacional

24

Las incógnitas de Teoría NPLas incógnitas de Teoría NP ¿P=NP? ¿Co-NP=NP? ¿P=Co-NPNP?

Page 25: Teoría de NP Problemas de grafos y Tratabilidad Computacional1  Máquina de Turing(1937, Alan Turing): es un modelo formal para expresar cualquier algoritmo.

Teoría de NP Problemas de grafos y Tratabilidad Computacional

25

Las incógnitas de Teoría NPLas incógnitas de Teoría NP

Tres mapas posibles de NP

N P-C o m p le to

P

NP

N P-C o m p le to

P

P= N P(= N P-C o m p le to )

NP NP

(a ) (b ) (c )

N P-In te rm e d io

Page 26: Teoría de NP Problemas de grafos y Tratabilidad Computacional1  Máquina de Turing(1937, Alan Turing): es un modelo formal para expresar cualquier algoritmo.

Teoría de NP Problemas de grafos y Tratabilidad Computacional

26

Las incógnitas de Teoría NPLas incógnitas de Teoría NP

El mundo de NP y vecindad (PNP, NPCo-NP, PCo-NPNP)

P

C o -N P-C o m p le to N P-C o m p le to

C o -N P N P