Análisis y Diseño de Algoritmos

Documentos relacionados
Complejidad computacional (Análisis de Algoritmos)

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

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

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

El Autómata con Pila

Autómatas Finitos Deterministicos (DFA)

Expresiones Regulares y Derivadas Formales

Tema 2: El grupo de las permutaciones

Procesadores de Lenguaje

Computabilidad y Lenguajes Formales: Autómatas Finitos

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

13.3. MT para reconocer lenguajes

NOCIONES PRELIMINARES (*) 1

Inecuaciones Intervalo Intervalo Abierto Intervalo Cerrado

MODELOS DE COMPUTACION I Preguntas Tipo Test. 1. El lema de bombeo puede usarse para demostrar que un lenguaje determinado es regular.

Temas. Objetivo. Que el estudiante logre: 1) Identificar conceptos constructivos de la Teoría de la Computabilidad. 2) Definir autómatas de pila.

En matemáticas el concepto de conjunto es considerado primitivo y no se da una definición de este, por lo tanto la palabra CONJUNTO debe aceptarse

Tema: Autómata de Pila

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

En la fig. 1 se representa el grafo, G=(V,A) donde: V = {1, 2, 3, 4, 5, 6} A = { {1,2}, {1,3}, {1,5}, {3}, {3,4}, {4,5}, {5,6} }

Problemas indecidibles

Algebra Lineal. Gustavo Rodríguez Gómez. Verano 2011 INAOE. Gustavo Rodríguez Gómez (INAOE) Algebra Lineal Verano / 21

Pregunta 1 Es correcta esta definición? Por qué?

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

Teoría de Conjuntos y Conjuntos Numéricos

TEORÍA DE CONJUNTOS.

Algebra lineal y conjuntos convexos

TEMA 2: TEORÍA DE CONJUNTOS Y CONJUNTOS NUMÉRICOS.

Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo

Ejemplo, generación de #s aleatorios

Notas del cursos. Basadas en los prontuarios de MATE 3001 y MATE 3023

Conjuntos Los conjuntos se emplean en muchas áreas de las matemáticas, de modo que es importante una comprensión de los conjuntos y de su notación.

Un grafo G = (V, E) se dice finito si V es un conjunto finito.

PROGRAMACION CONCURRENTE Y DISTRIBUIDA

520142: ALGEBRA y ALGEBRA LINEAL

Texto: Hopcroft, J. E., Motwani, R., Ullman, J.D., Introduction to Automata Theory, Languajes, and Computation. 3rd Edition. Addison Wesley, 2007.

Algoritmos y programas. Algoritmos y Estructuras de Datos I

Equivalencia Entre PDA y CFL

Grafos. Algoritmos y Estructuras de Datos III

SISTEMA DE NUMEROS REALES

1. (F, +) es un grupo abeliano, denominado el grupo aditivo del campo.

MATEMÁTICAS II CICLO COMÚN INBAC UNIDAD DIDÁCTICA #5

En una recta numérica el punto que representa el cero recibe el nombre de origen.

Probabilidad y Estadística Descripción de Datos

3 Polinomios y funciones racionales

Álgebra y Trigonometría Clase 2 Ecuaciones, desigualdades y Funciones

Introducción a la Teoría de Grafos

Introducción. El uso de los símbolos en matemáticas.

Introducción a los Sistemas Digitales. Conceptos básicos de matemática aplicada a los sistemas digitales

TEMA 1 LOS NÚMEROS REALES

R no es enumerable. Por contradicción, supongamos que existe una biyección f : N! R. diagonalización de Cantor. Para cada i 2 N:

Convertir un AFND a un AFD

Inducción en definiciones y demostraciones AUTÓMATAS Y LENGUAJES FORMALES PRELIMINARES MATEMÁTICOS. Números naturales. Inducción matemática

CONJUNTO Y TIPOS DE CONJUNTOS

Espacios Vectoriales

Computabilidad y Lenguajes Formales: Autómatas de Pila

Grafos. AMD Grado en Ingeniería Informática. AMD Grado en Ingeniería Informática (UM) Grafos 1 / 30

AMPLIACIÓN DE MATEMÁTICAS

CLASIFICACIÓN DE PROBLEMAS

Teoría de Conjuntos y Conjuntos Numéricos

1 Conjuntos y propiedades de los números naturales

Tema II: Metodología para la construcción de programas

1. Computadores y programación

1. Sucesiones y redes.

Capítulo 6. Relaciones. Continuar

Teoría Matemática de la Computación Primer Problemario Prof. Miguel A. Pizaña 11 de Octubre de 2006

Modelos Computacionales

Distribuciones de Probabilidad

De los números naturales a los números enteros. Exposición de contenidos matemáticos. Sobre el número cardinal

un conjunto cuyos elementos denominaremos vectores y denotaremos por es un espacio vectorial si verifica las siguientes propiedades:

Teoría de Lenguajes y Autómatas Conceptos y teoremas fundamentales

Probabilidad y Estadística

y cualquier par (x, y) puede escalarse, multiplicarse por un número real s, para obtener otro vector (sx, sy).

Ruta más Corta con una sóla Fuente de Inicio (Single-Source Shortest Paths) DR. JESÚS A. GONZÁLEZ BERNAL CIENCIAS COMPUTACIONALES INAOE

Maestría Enseñanza Aprendizaje de las Ciencias Básicas. Dr. Gilberto Paredes

NOTACIÓN O GRANDE. El análisis de algoritmos estima el consumo de recursos de un algoritmo.

Aritmética de Enteros

Unidad II. Conjuntos. 2.1 Características de los conjuntos.

Máquinas Secuenciales, Autómatas y Lenguajes. Tema 3.1: Autómatas Finitos Deterministas

PROGRAMACIÓN. UNIDAD II. ALGORITMO PROFA : HAU MOY

Introducción a la Teoría de Automátas

LA FORMA TRIGONOMETRICA DE LOS NUMEROS COMPLEJOS Y EL TEOREMA DE MOIVRE. Capítulo 7 Sec. 7.5 y 7.6

Tema II: Metodología para la construcción de programas. Profesora: Nelly García Mora

Análisis y Diseño de Algoritmos

Límites y continuidad de funciones reales de variable real

Análisis de Algoritmos

Probabilidad y Estadística

CÁLCULO DIFERENCIAL Muestras de examen

Autómatas de Pila. Descripciones instantáneas o IDs. El Lenguaje de PDA. Equivalencia entre PDAs y CFGs INAOE (INAOE) 1 / 50

ÍNDICE. 1 Conjuntos y lógica Prologo,... ix

ESCUELA: UNIVERSIDAD DEL ISTMO

TEMA 3 POTENCIAS Y RAÍCES

4. FUNCIONES COMO MODELO MATEMÁTICO

Lenguajes y Gramáticas

Alfredo González. Beatriz Rodríguez Pautt. Carlos Alfaro

Tema 2. Fundamentos de la Teoría de Lenguajes Formales

UNIDAD II: TEORÍA DE CONJUNTOS 2.1. INTRODUCCIÓN

Cálculo Diferencial: Enero 2016

Transcripción:

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