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

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

Complejidad computacional (Análisis de Algoritmos)

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

I. Complejidad de Problemas

CLASIFICACIÓN DE PROBLEMAS

Práctica N o 8 Desigualdades Válidas - Algoritmos de Planos de Corte - Algoritmos Branch & Cut

Teoría de grafos y optimización en redes

Curso: Teoría de la Computación. Unidad 2, Sesión 8: Complejidad computacional (2)

C a l ses P P y y NP C a l se P C a l se N P N P [No N n o -De D te t rmin i i n s i ti t c i Polynomial-tim i e]

Objetivos formativos de Matemática Discreta. Tema 1: Conjuntos, aplicaciones y relaciones

Árboles Filogenéticos. BT7412, CC5702 Bioinformática Diego Arroyuelo. 2 de noviembre de 2010

Algoritmos para determinar Caminos Mínimos en Grafos

UD Trigonometría Ejercicios Resueltos y Propuestos Col La Presentación

Problemas en P y NP. Marcos Kiwi. Semestre Otoño U. Chile

Autómatas Mínimos. Encontrar el autómata mínimo. Universidad de Cantabria. Introducción Minimización de Autómatas Deterministas Resultados Algoritmo

Complejidad de los Algoritmos

Flujos de redes (Network Flows NF)

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

ECUACIONES. Ecuaciones. Indicadores. Contenido ECUACIÓN

13.3. MT para reconocer lenguajes

Clase 1: Primalidad. Matemática Discreta - CC3101 Profesor: Pablo Barceló. P. Barceló Matemática Discreta - Cap. 5: Teoría de números 1 / 32

Grafos. Algoritmos y Estructuras de Datos III

IN Guía de Problemas Resueltos de Geometría de Programación Lineal v1.0

Capítulo 6. Relaciones. Continuar

Introducción a la Teoría de Grafos

CAPITULO III. Determinación de Rutas de Entregas

Espacios Vectoriales Asturias: Red de Universidades Virtuales Iberoamericanas 1

Breve introducción a la Investigación de Operaciones

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

Tipos algebraicos y abstractos. Algoritmos y Estructuras de Datos I. Tipos algebraicos

Guía práctica de estudio 03: Algoritmos

ÍNDICE INTRODUCCIÓN...13

Algebra lineal y conjuntos convexos

Ecuaciones no Algebraicas

Definición 1 Un semigrupo es un conjunto E provisto de una operación binaria asociativa sobre E, se denota por (E, ).

Relaciones. Estructuras Discretas. Relaciones. Relaciones en un Conjunto. Propiedades de Relaciones en A Reflexividad

Diseño de compiladores. Organización de memoria. Organización de memoria. Organización de memoria. Zona de código 04/05/2014 ORGANIZACIÓN DE MEMORIA

Benemérita Universidad Autónoma de Puebla

Ampliación Matemática Discreta. Justo Peralta López

Identidades Trigonométricas

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

2007 Carmen Moreno Valencia

MODELOS DE INVESTIGACION DE OPERACIONES

Unidad 2: Ecuaciones, inecuaciones y sistemas.

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

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

Universidad Nacional Autónoma de Nicaragua UNAN-Managua. Curso de Investigación de Operaciones

Una ecuación puede tener ninguna, una o varias soluciones. Por ejemplo: 5x 9 = 1 es una ecuación con una incógnita con una solución, x = 2

CONCRECIÓN DE LOS CRITERIOS DE EVALUACIÓN Curso: PRIMERO de BACHILLERATO CIENCIAS Asignatura: MATEMÁTICAS I Profesor: ALFONSO BdV

Geometría combinatoria de cuadrados mágicos, latinos, sudokus y otras tablas curiosas

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

Límites y continuidad. Cálculo 1

Esta expresión polinómica puede expresarse como una expresión matricial de la forma; a 11 a 12 a 1n x 1 x 2 q(x 1, x 2,, x n ) = (x 1, x 2,, x n )

Introducción a las RdP. Optimización basada en redes de Petri. Redes de Petri. Son objeto de estudio: RdP. Ejemplos:

Formulación del problema de la ruta más corta en programación lineal

Programación NO Lineal (PNL) Optimización sin restricciones

Algoritmos y programas. Algoritmos y Estructuras de Datos I

INDICE Prologo Capitulo 1. Algoritmos y programas Capitulo 2. La resolución de los problemas con computadoras y las herramientas de programación

MÉTODO DE VARIACIÓN DE PARÁMETROS

CONTINUIDAD Y DERIVABILIDAD. DERIVADAS

PROGRAMA INSTRUCCIONAL AUTOMATAS Y LENGUAJES FORMALES

PROGRAMA DE LA MATERIA: Investigación Operativa Módulos semanales 3 Días de dictado: L M M J V S 3

Unidad 1: Espacio de Probabilidad

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

EL PROBLEMA GENERAL DE OPTIMIZACION

4.1. Polinomios y teoría de ecuaciones

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

Año Académico 2009 INGENIERÍA INDUSTRIAL E INGENIERÍA DE SISTEMAS

Caminos y Flujos optimales. Introducción a la Investigación de Operaciones 2007

METODO DE LOS COEFICIENTES INDETERMINADOS 1 METODO DE COEFICIENTES INDETERMINADOS

UNIVERSIDAD MAYOR DE SAN SIMÓN FACULTAD DE CIENCIAS Y TECNOLOGÍA INGENIERÍA DE SISTEMAS BÚSQUEDA PRIMERO EL MEJOR

CURSO CERO DE MATEMATICAS. Apuntes elaborados por Domingo Pestana Galván. y José Manuel Rodríguez García

Matemáticas. Si un error simple ha llevado a un problema más sencillo se disminuirá la puntuación.

Unidad 1: SISTEMAS DE ECUACIONES. MÉTODO DE GAUSS

b 11 cm y la hipotenusa

Guía práctica de estudio 03: Algoritmos

A1.- Determina a y b sabiendo que el sistema de ecuaciones. x + 3y +z = 1 -x + y +2z = -1 ax + by + z = 4 tiene, al menos, dos soluciones distintas.

2. Ecuaciones de primer grado: (sencillas, con paréntesis, con denominadores).

Prof. Pérez Rivas Lisbeth Carolina

Diagnóstico de fallas en circuitos digitales

Máximos y mínimos. Mínimo global Máximo global máximo relativo mínimo relativo

7. Conclusiones. 7.1 Resultados

Notación Asintótica 2

1. Dada la siguiente grafica. 3. Determine la grafica de Donde A) B) Determine la grafica de A) B) 4 C) D) C) D) 4. Dada la grafica de

PROGRAMA INSTRUCCIONAL

4.2 Números primos grandes. MATE 3041 Profa. Milena R. Salcedo Villanueva

TEORÍA DE GRAFOS Ingeniería de Sistemas

Asignatura: Horas: Total (horas): Obligatoria X Teóricas 4.0 Semana 4.0 Optativa Prácticas 0 16 Semanas 64.0

Coordinación de Matemática I (MAT021) 1 er Semestre de 2013 Semana 1: Lunes 11 Viernes 16 de Marzo. Contenidos

Objetivos formativos de Álgebra

May 4, 2012 CAPÍTULO 5: OPTIMIZACIÓN

Grupos libres. Presentaciones.

PAIEP. Complemento Ortogonal

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE ESTUDIOS SUPERIORES ACATLÁN LICENCIATURA EN MATEMÁTICAS APLICADAS Y COMPUTACIÓN

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

Criterios de divisibilidad y Congruencias

Programación entera: Ejemplos, resolución gráfica, relajaciones lineales. Investigación Operativa, Grado en Estadística y Empresa, 2011/12

CONTENIDOS. 1. Procesos Estocásticos y de Markov. 2. Cadenas de Markov en Tiempo Discreto (CMTD) 3. Comportamiento de Transición de las CMTD

Modelos Estocásticos I Tercer Examen Parcial Respuestas

2 = 1 0,5 + = 0,5 c) 3 + = = 2

Transcripción:

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

Teoría de Complejidad Un algoritmo eficiente es un algoritmo de complejidad polinomial. Un problema está bien resuelto si se conocen algoritmos eficientes para resolverlo. El objetivo es clasificar los problemas según su complejidad. Un problema de decisión es un problema cuya respuesta es sí o no. La clasificación y el estudio de teoría de complejidad se hace para problemas de decisión.

Distintas versiones de un problema de optimización Π Dada una instancia I del problema Π: Versión de evaluación: Determinar el valor de una solución óptima de Π para I. Versión de optimización: Encontrar una solución óptima del problema Π para I (de valor mínimo o máximo). Versión de decisión: Dado un número k, existe una solución factible de Π para I tal que c(s) k si el problema es de minimización (o c(s) k si el problema es de maximización)? Versión de localización: Dado un número k, determinar una solución factible de Π para I tal que c(s) k.

Ejemplo: Problema del viajante de comercio Dado un grafo G con longitudes asignadas a sus aristas: Versión de evaluación: Determinar el valor de una solución óptima, o sea la longitud de un circuito hamiltoniano de G de longitud mínima. Versión de optimización: Determinar un circuito hamiltoniano de G de longitud mínima. Versión de decisión: Dado un número k, existe un circuito hamiltoniano de G de longitud menor o igual a k? Versión de localización: Dado un número k, determinar un circuito hamiltoniano de G de longitud menor o igual a k.

Distintas versiones de un problema de optimización Π Qué relación hay en la dificultad de resolver las distintas versiones de un mismo problema? Si resolvemos el problema de decisión, podemos: Resolver el problema de evaluación usando búsqueda binaria sobre el parámetro k. Resolver el problema de localización resolviendo el problema de decisión para el parámetro k para una versión reducida de la instancia. Resolver el problema de optimización resolviendo el problema de decisión para el valor óptimo para una versión reducida de la instancia.

Problemas intratables Definición: Un problema es intratable si no puede ser resuelto por algún algoritmo eficiente. Un problema puede ser intratable por distintos motivos: 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: problema de la parada). El problema es decidible pero no se conocen algoritmos polinomiales que lo resuelvan.

Las clases P y NP Definiciones: Un problema de decisión pertenece a la clase P (polinomial) si existe un algoritmo polinomial para resolverlo. Un problema de decisión pertenece a la clase NP (polinomial no-determinísticamente) si dada una instancia de SI y evidencia de la misma, puede ser verificada en tiempo polinomial. Relaciones entre las clases: P NP Problema abierto: Es P = NP? (problema abierto más importante de teoría de la computación)

Ejemplos de problemas en NP Suma de enteros. Multipliación de enteros. Árbol generador mínimo. Clique máxima. Camino mínimo entre un par de nodos. Problema del viajante de comercio. Conjunto independiente de cardinal máximo. Problema de satisfabilidad (SAT): Dado un conjunto de claúsulas C 1,..., C m formadas por literales basados en las variables booleanas X = {x 1,..., x n }, determinar si hay una asignación de valores de verdad a las variables de X tal que la expresión C 1 C 2... C m sea verdadera.

Máquinas de Turing no-determinísticas (MTND) Una MTND tiene los mismos componentes que vimos para una MTD, pero las instrucciones dejan de ser quíntuplas para pasar a ser un mapeo multivaluado. Un programa correspondiente en una MTND es una tabla que mapea un par (q i, t i ) a un conjunto de ternas (q f, t f, {0, +1, 1}). Una MTND se puede interpretar como una generalizaicón de una MTD, permitiendo la ejecución en paralelo de las distintas alternativas, abriéndose en k copias si se encutra con k alternativas. Una MTND resuelve un problema de decisión si alguna de las copias para en un estado de aceptación cuando se ejecuta sobre una instancia de SI y ninguna copia lo hace para instancias de NO. La complejidad temporal de una MTND se define como el máximo número de pasos que toma reconocer una entrada aceptable en función de su tamaño.

Clase NP - Otra caracterización Un problema de decisión está en la clase NP si las instancias de SI son reconocidas por una máquina de Turing no-determinística polinomial. La clase NP se puede definir como el conjunto de problemas de decisión que se pueden resolver por un algoritmo polinomial no-determinístico. Lema: Si Π es un problema de decisión que pertence a la clase NP, entonces Π puede ser resuelto por un algoritmo determinístico en tiempo exponencial respecto del tamaño de la entrada.

Algoritmo no-determinístico - Conj. Independiente Máximo Dado un grafo G = (V, X ), tiene G un conjunto independiente de tamaño mayor o igual a k? Selecc(S): función multivaluada que retorna un elemento de S y crea S copias del algoritmo, una para cada elemento de S. Falla: hace que la copia que se está ejecutando pare. Exito: retorna VERDADERO y hace que todas las copias paren. I := mientras S hacer v := Selecc(S) S := S \ {v} si Γ(v) I = entonces I := I {v} si I k entonces Exito fin mientras Falla

Transformaciones polinomiales Deficiones: Una transformación o reducción polinomial de un problema de decisión Π 1 a uno Π 2 es una función polinomial que transforma una instancia I 1 de Π 1 en una instancia I 2 de Π 2 tal que I 1 tiene respuesta SI para Π 1 si y sólo si I 2 tiene respuesta SI para Π 2. El problema de decisión Π 1 se reduce polinomialmente a otro problema de decisión Π 2, Π 1 p Π 2, si existe una transformación polinomial de Π 1 a Π 2. Las reducciones polinomiales son transitivas, es decir, si Π 1 p Π 2 y Π 2 p Π 3, entonces Π 1 p Π 3.

Problemas NP-Completos Definición: Un problema de decisión Π es NP-completo si: 1. Π NP 2. Π NP, Π p Π Teorema de Cook (1971): SAT es NP-completo.

Problemas NP-Completos Usando la transitividad de las reducciones polinomiales, a partir de este primer resultado podemos probar que otros problemas son NP-Completos. Si Π es un problema de decisión, podemos probar que Π NP-completo encontrando otro problema Π 1 que ya sabemos que es NP-completo y demostrando que: 1. Π NP. 2. Π 1 p Π Desde 1971, se ha probado la NP-completitud de muchos problemas usando este método.

Problemas NP-Completos CLIQUE (dado un grafo G = (V, X ) y un entero positivo k, G tiene una clique de tamaño mayor o igual a k?) es NP-Completo. Para demostrar que CLIQUE es NP-Completo, alcanza con probar que: 1. CLIQUE NP. 2. Para algún problema Π NP-Completo, Π p CLIQUE. Conjunto independiente (dado un grafo G y un entero positivo k, G tiene un conjunto independiente de tamaño mayor o igual a k?) es NP-Completo. Recubrimiento de aristas (dado un grafo G y un entero positivo k, G tiene un recubrimiento de aristas de tamaño menor o igual a k?) es NP-Completo.

La clase NP-Difícil Definición: Un problema de decisión Π es NP-difícil si todo otro problema de NP se puede transformar polinomialmente a Π. (En la práctica esta definición a veces se usa por un abuso de lenguaje también para problemas que no son de decisión y cuya versión de decisión es NP-completa.)

La clase Co-NP Un problema de decisión pertenece a la clase Co-NP si dada una instancia de NO y evidencia de la misma, puede ser verificada en tiempo polinomial. El problema complemento de un problema de decisión Π, Π c, es el problema de decisión que responde al complemento de la decisión de Π. Ejemplo: problema de primalidad y problema de número compuesto. El problema complemento tiene respuesta NO si y sólo si Π tiene respuesta SI. La clase CO-NP es la clase de los problemas complemento de los problemas de la clase NP. La clase de los problemas polinomiales (P), está contenida también en Co-NP.

Problemas abiertos de Teoría de Complejidad Con estas nuevas definiciones tenemos los siguientes problemas abiertos: Es P=NP? Es Co-NP=NP? Es P=Co-NP NP?

Las incógnitas... NP NP NP NP-Completo NP-Intermedio P NP-Completo P P = NP = NP-Completo Tres mapas posibles para las clases de complejidad

Las incógnitas... Co-NP NP Co-NP-Completo NP-Completo P Situación si se probara que P NP, NP Co NP, P Co NP NP

Extensión de un problema Definición: El problema Π es una restricción de un problema Π si el dominio de Π está incluído en el de Π. Se dice que Π es una extensión de Π. Si Π NP-Completo, entonces Π NP-Difícil. Ejemplos: Isomorfismo de subgrafos es una extensión de CLIQUE. Viajante de comercio es una extensión de Circuito Hamiltoniano. 3-SAT es una restricción de SAT. Sabiendo que SAT es NP-completo, podemos sacar de esto una conclusión sobre la complejidad de 3-SAT?

Algoritmos Pseudopolinomiales Definición: Un algoritmo para resolver un problema Π es pseudopolinomial si la complejidad del mismo es polinomial en función del valor de la entrada. Ejemplos: Primalidad. El problema de la mochila es NP-Completo, sin embargo, existe un algoritmo de complejidad O(nB) que lo resuelve, donde n es la cantidad de objetos y B el peso máximo que se puede cargar en la mochila.

Teoría de Complejidad Qué hacer ante un problema del que no sabemos en que clase está? Qué importancia tiene saber si un problema está en P o no, desde el punto de vista teórico?. Qué importancia tiene la misma pregunta desde el punto de vista práctico, o sea ante una aplicación real que se quiere resolver? Qué hacemos si el problema que tenemos en la práctica sabemos que es NP-completo?