Вы находитесь на странице: 1из 72

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

Complejidad y Optimizacin: NP Completitud


Las clases P y NP: problemas tratables e intratables

Prof.: Javier Andrs Mena Zapata


Escuela de Ingeniera de Sistemas y Computacin Universidad del Valle

21 de agosto de 2006

Prof.: Javier Andrs Mena Zapata

Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

Esquema
1

Motivacin Qu clase complejidad se estudiar? Objetivo del curso Problemas computacionales fciles y difciles Repaso de complejidad Temporal y espacial Notacin Ejemplos de repaso Ejercicios Presentacin de clases P, NP, NPC NP-Completitud y las clases P y NP Esbozo de cmo demostrar NP-Completitud
Prof.: Javier Andrs Mena Zapata Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

Qu clase complejidad se estudiar? Objetivo del curso Problemas computacionales fciles y difciles

Esquema
1

Motivacin Qu clase complejidad se estudiar? Objetivo del curso Problemas computacionales fciles y difciles Repaso de complejidad Temporal y espacial Notacin Ejemplos de repaso Ejercicios Presentacin de clases P, NP, NPC NP-Completitud y las clases P y NP Esbozo de cmo demostrar NP-Completitud
Prof.: Javier Andrs Mena Zapata Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

Qu clase complejidad se estudiar? Objetivo del curso Problemas computacionales fciles y difciles

Veamos los hechos La situacin actual (2006) es la siguiente: Existen problemas en la vida real, que son fciles y otros que son difciles de solucionar. Existen problemas llamados NP-Completos que actualmente no podemos saber si son fciles o difciles de solucionar. Toda la evidencia actual sugiere que no son fciles, pero no est demostrado. Si lo anterior es cierto, con los computadores basados en mquinas de Turing no podrn nunca, solucionar los problemas NP-Completos.

Prof.: Javier Andrs Mena Zapata

Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

Qu clase complejidad se estudiar? Objetivo del curso Problemas computacionales fciles y difciles

Veamos los hechos La situacin actual (2006) es la siguiente: Existen problemas en la vida real, que son fciles y otros que son difciles de solucionar. Existen problemas llamados NP-Completos que actualmente no podemos saber si son fciles o difciles de solucionar. Toda la evidencia actual sugiere que no son fciles, pero no est demostrado. Si lo anterior es cierto, con los computadores basados en mquinas de Turing no podrn nunca, solucionar los problemas NP-Completos.

Prof.: Javier Andrs Mena Zapata

Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

Qu clase complejidad se estudiar? Objetivo del curso Problemas computacionales fciles y difciles

Veamos los hechos La situacin actual (2006) es la siguiente: Existen problemas en la vida real, que son fciles y otros que son difciles de solucionar. Existen problemas llamados NP-Completos que actualmente no podemos saber si son fciles o difciles de solucionar. Toda la evidencia actual sugiere que no son fciles, pero no est demostrado. Si lo anterior es cierto, con los computadores basados en mquinas de Turing no podrn nunca, solucionar los problemas NP-Completos.

Prof.: Javier Andrs Mena Zapata

Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

Qu clase complejidad se estudiar? Objetivo del curso Problemas computacionales fciles y difciles

Veamos los hechos La situacin actual (2006) es la siguiente: Existen problemas en la vida real, que son fciles y otros que son difciles de solucionar. Existen problemas llamados NP-Completos que actualmente no podemos saber si son fciles o difciles de solucionar. Toda la evidencia actual sugiere que no son fciles, pero no est demostrado. Si lo anterior es cierto, con los computadores basados en mquinas de Turing no podrn nunca, solucionar los problemas NP-Completos.

Prof.: Javier Andrs Mena Zapata

Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

Qu clase complejidad se estudiar? Objetivo del curso Problemas computacionales fciles y difciles

Veamos los hechos La situacin actual (2006) es la siguiente: Existen problemas en la vida real, que son fciles y otros que son difciles de solucionar. Existen problemas llamados NP-Completos que actualmente no podemos saber si son fciles o difciles de solucionar. Toda la evidencia actual sugiere que no son fciles, pero no est demostrado. Si lo anterior es cierto, con los computadores basados en mquinas de Turing no podrn nunca, solucionar los problemas NP-Completos.

Prof.: Javier Andrs Mena Zapata

Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

Qu clase complejidad se estudiar? Objetivo del curso Problemas computacionales fciles y difciles

En dnde est la complejidad de los problemas?


Cuando nos encontramos ante la situacin de solucionar un problema, nos podemos encontrar con diversos obstculos. As, el problema puede tener algunas o todas las siguientes caractersticas: Ser difcil de entender. Es difcil o imposible de solucionar en un computador. La solucin ms eciente es muy difcil de implementar. La solucin ms fcil de entender es muy ineciente. No se encuentra ninguna forma de solucionar el problema ecientemente.

Prof.: Javier Andrs Mena Zapata

Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

Qu clase complejidad se estudiar? Objetivo del curso Problemas computacionales fciles y difciles

En dnde est la complejidad de los problemas?


Cuando nos encontramos ante la situacin de solucionar un problema, nos podemos encontrar con diversos obstculos. As, el problema puede tener algunas o todas las siguientes caractersticas: Ser difcil de entender. Es difcil o imposible de solucionar en un computador. La solucin ms eciente es muy difcil de implementar. La solucin ms fcil de entender es muy ineciente. No se encuentra ninguna forma de solucionar el problema ecientemente.

Prof.: Javier Andrs Mena Zapata

Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

Qu clase complejidad se estudiar? Objetivo del curso Problemas computacionales fciles y difciles

En dnde est la complejidad de los problemas?


Cuando nos encontramos ante la situacin de solucionar un problema, nos podemos encontrar con diversos obstculos. As, el problema puede tener algunas o todas las siguientes caractersticas: Ser difcil de entender. Es difcil o imposible de solucionar en un computador. La solucin ms eciente es muy difcil de implementar. La solucin ms fcil de entender es muy ineciente. No se encuentra ninguna forma de solucionar el problema ecientemente.

Prof.: Javier Andrs Mena Zapata

Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

Qu clase complejidad se estudiar? Objetivo del curso Problemas computacionales fciles y difciles

En dnde est la complejidad de los problemas?


Cuando nos encontramos ante la situacin de solucionar un problema, nos podemos encontrar con diversos obstculos. As, el problema puede tener algunas o todas las siguientes caractersticas: Ser difcil de entender. Es difcil o imposible de solucionar en un computador. La solucin ms eciente es muy difcil de implementar. La solucin ms fcil de entender es muy ineciente. No se encuentra ninguna forma de solucionar el problema ecientemente.

Prof.: Javier Andrs Mena Zapata

Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

Qu clase complejidad se estudiar? Objetivo del curso Problemas computacionales fciles y difciles

En dnde est la complejidad de los problemas?


Cuando nos encontramos ante la situacin de solucionar un problema, nos podemos encontrar con diversos obstculos. As, el problema puede tener algunas o todas las siguientes caractersticas: Ser difcil de entender. Es difcil o imposible de solucionar en un computador. La solucin ms eciente es muy difcil de implementar. La solucin ms fcil de entender es muy ineciente. No se encuentra ninguna forma de solucionar el problema ecientemente.

Prof.: Javier Andrs Mena Zapata

Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

Qu clase complejidad se estudiar? Objetivo del curso Problemas computacionales fciles y difciles

Esquema
1

Motivacin Qu clase complejidad se estudiar? Objetivo del curso Problemas computacionales fciles y difciles Repaso de complejidad Temporal y espacial Notacin Ejemplos de repaso Ejercicios Presentacin de clases P, NP, NPC NP-Completitud y las clases P y NP Esbozo de cmo demostrar NP-Completitud
Prof.: Javier Andrs Mena Zapata Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

Qu clase complejidad se estudiar? Objetivo del curso Problemas computacionales fciles y difciles

Qu se ver en este curso? Estudiaremos cmo estar seguros de que el problema al que nos enfrentamos es difcil y cmo encontrar soluciones prcticas, es decir, ecientes en tiempo de ejecucin.

Prof.: Javier Andrs Mena Zapata

Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

Qu clase complejidad se estudiar? Objetivo del curso Problemas computacionales fciles y difciles

Esquema
1

Motivacin Qu clase complejidad se estudiar? Objetivo del curso Problemas computacionales fciles y difciles Repaso de complejidad Temporal y espacial Notacin Ejemplos de repaso Ejercicios Presentacin de clases P, NP, NPC NP-Completitud y las clases P y NP Esbozo de cmo demostrar NP-Completitud
Prof.: Javier Andrs Mena Zapata Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

Qu clase complejidad se estudiar? Objetivo del curso Problemas computacionales fciles y difciles

Camino ms corto Dado un grafo G = (V , E), dos nodos a, b V y donde cada arista tiene un peso, encontrar el camino ms corto entre a y b. Las aristas pueden incluso tener peso negativo y el grafo puede ser dirigido o no dirigido. Este problema se puede resolver en tiempo O(|V | |E|). Camino simple ms largo Dado un grafo G = (V , E), dos nodos a, b V donde cada arista tiene un peso, encontrar el camino ms largo sin ciclos, entre los a y b. Determinar el camino simple ms largo es un problema NP-Completo, aun si todos los pesos de las aristas es 1.
Prof.: Javier Andrs Mena Zapata Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

Qu clase complejidad se estudiar? Objetivo del curso Problemas computacionales fciles y difciles

Tour de Euler Un Tour de Euler de un grafo conexo, dirigido, G = (V , E) es un ciclo que recorre cada eje de G exactamente una vez, aunque puede visitar un vrtice ms de una vez. Se puede determinar cundo un grafo tiene un Tour de Euler en tiempo O(|E|) y, de hecho, se pueden encontrar los vrtices del Tour en tiempo O(|E|). Ciclo Hamiltoniano Un Ciclo Hamiltoniano de un grafo dirigido, G = (V , E) es un ciclo simple que contiene cada vrtice de V . Determinar si un grafo tiene un ciclo hamiltoniano es NP-Completo.

Prof.: Javier Andrs Mena Zapata

Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

Temporal y espacial Notacin Ejemplos de repaso Ejercicios

Esquema
1

Motivacin Qu clase complejidad se estudiar? Objetivo del curso Problemas computacionales fciles y difciles Repaso de complejidad Temporal y espacial Notacin Ejemplos de repaso Ejercicios Presentacin de clases P, NP, NPC NP-Completitud y las clases P y NP Esbozo de cmo demostrar NP-Completitud
Prof.: Javier Andrs Mena Zapata Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

Temporal y espacial Notacin Ejemplos de repaso Ejercicios

Complejidad Existen diversas formas de medir la complejidad de un algoritmo. La complejidad se mide en funcin del tamao de la entrada. La complejidad temporal se reere al tiempo que se demora en ejecutarse un algoritmo, la complejidad espacial se reere a la cantidad de memoria que ocupa un algoritmo. Nota En general cuando no se especique explcitamente, se referir a la complejidad temporal. Ejemplo: El algoritmo X tiene complejidad O(2n ), quiere decir que la complejidad temporal es O(2n ).

Prof.: Javier Andrs Mena Zapata

Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

Temporal y espacial Notacin Ejemplos de repaso Ejercicios

Complejidad Existen diversas formas de medir la complejidad de un algoritmo. La complejidad se mide en funcin del tamao de la entrada. La complejidad temporal se reere al tiempo que se demora en ejecutarse un algoritmo, la complejidad espacial se reere a la cantidad de memoria que ocupa un algoritmo. Nota En general cuando no se especique explcitamente, se referir a la complejidad temporal. Ejemplo: El algoritmo X tiene complejidad O(2n ), quiere decir que la complejidad temporal es O(2n ).

Prof.: Javier Andrs Mena Zapata

Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

Temporal y espacial Notacin Ejemplos de repaso Ejercicios

Complejidad Existen diversas formas de medir la complejidad de un algoritmo. La complejidad se mide en funcin del tamao de la entrada. La complejidad temporal se reere al tiempo que se demora en ejecutarse un algoritmo, la complejidad espacial se reere a la cantidad de memoria que ocupa un algoritmo. Nota En general cuando no se especique explcitamente, se referir a la complejidad temporal. Ejemplo: El algoritmo X tiene complejidad O(2n ), quiere decir que la complejidad temporal es O(2n ).

Prof.: Javier Andrs Mena Zapata

Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

Temporal y espacial Notacin Ejemplos de repaso Ejercicios

Ejemplo Algoritmo de ordenamiento: Ordenar n elementos tiene una complejidad temporal de (n log n), cuando se utilizan comparaciones y si la complejidad de copiar y comparar dos elementos cualquiera es O(1). Buscar elementos: En un arbol binario con n elementos tiene una complejidad en tiempo de O(h), donde h es la altura del rbol. Si el rbol es rojinegro entonces h 2 log(n).

Prof.: Javier Andrs Mena Zapata

Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

Temporal y espacial Notacin Ejemplos de repaso Ejercicios

Ejemplo Algoritmo de ordenamiento: Ordenar n elementos tiene una complejidad temporal de (n log n), cuando se utilizan comparaciones y si la complejidad de copiar y comparar dos elementos cualquiera es O(1). Buscar elementos: En un arbol binario con n elementos tiene una complejidad en tiempo de O(h), donde h es la altura del rbol. Si el rbol es rojinegro entonces h 2 log(n).

Prof.: Javier Andrs Mena Zapata

Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

Temporal y espacial Notacin Ejemplos de repaso Ejercicios

Ejemplo Algoritmo de ordenamiento: Ordenar n elementos tiene una complejidad temporal de (n log n), cuando se utilizan comparaciones y si la complejidad de copiar y comparar dos elementos cualquiera es O(1). Buscar elementos: En un arbol binario con n elementos tiene una complejidad en tiempo de O(h), donde h es la altura del rbol. Si el rbol es rojinegro entonces h 2 log(n).

Prof.: Javier Andrs Mena Zapata

Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

Temporal y espacial Notacin Ejemplos de repaso Ejercicios

Esquema
1

Motivacin Qu clase complejidad se estudiar? Objetivo del curso Problemas computacionales fciles y difciles Repaso de complejidad Temporal y espacial Notacin Ejemplos de repaso Ejercicios Presentacin de clases P, NP, NPC NP-Completitud y las clases P y NP Esbozo de cmo demostrar NP-Completitud
Prof.: Javier Andrs Mena Zapata Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

Temporal y espacial Notacin Ejemplos de repaso Ejercicios

Notacin asinttica
Notacin O-grande Sean f y g funciones con respecto a n. Se dice que: f (n) = O(g(n)) (1)

Si existen constantes positivas c y n0 tal que 0 f (n) cg(n) para toda n n0 . A veces se dice que f est superiormente (o por encima) por g. Importante! La notacin f (n) = O(g(n)) NO es una igualdad.

Prof.: Javier Andrs Mena Zapata

Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

Temporal y espacial Notacin Ejemplos de repaso Ejercicios

Notacin asinttica (cont.)


Notacin Sean f y g funciones con respecto a n. Se dice que: f (n) = (g(n)) (2)

Si existen constantes positivas c y n0 tal que 0 cg(n) f (n) para toda n n0 . A veces se dice que f est inferiormente (o por debajo) por g. Importante! La notacin f (n) = (g(n)) NO es una igualdad.

Prof.: Javier Andrs Mena Zapata

Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

Temporal y espacial Notacin Ejemplos de repaso Ejercicios

Notacin asinttica (cont.)

Notacin Sean f y g funciones con respecto a n. Se dice que: f (n) = (g(n)) Si f (n) = (g(n)) y f (n) = O(g(n)). Importante! La notacin f (n) = (g(n)) NO es una igualdad. (3)

Prof.: Javier Andrs Mena Zapata

Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

Temporal y espacial Notacin Ejemplos de repaso Ejercicios

Notacin asinttica, en espaol


De forma simple Una funcin f (n) es O(g(n)) si despus de algn punto n0 . La funcin g(n) siempre supera proporcionalmente a f (n). Algo similar ocurre cuando f (n) es (g(n)) Para qu sirve? La notacin sirve para saber cuanto crece una funcin con respecto a otra. Cmo a algunos algoritmos se pueden medir por su complejidad respecto al tamao de la entrada, se pueden hacer ciertas comparaciones con respecto al mejor algoritmo.

Prof.: Javier Andrs Mena Zapata

Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

Temporal y espacial Notacin Ejemplos de repaso Ejercicios

Notacin asinttica, en espaol


De forma simple Una funcin f (n) es O(g(n)) si despus de algn punto n0 . La funcin g(n) siempre supera proporcionalmente a f (n). Algo similar ocurre cuando f (n) es (g(n)) Para qu sirve? La notacin sirve para saber cuanto crece una funcin con respecto a otra. Cmo a algunos algoritmos se pueden medir por su complejidad respecto al tamao de la entrada, se pueden hacer ciertas comparaciones con respecto al mejor algoritmo.

Prof.: Javier Andrs Mena Zapata

Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

Temporal y espacial Notacin Ejemplos de repaso Ejercicios

Complejidad polinomial y no polinomial


Denicin Por cuestiones prcticas para este curso, necesitamos una deniciones sencillas, suponiendo que tenemos un algoritmo llamado A. Complejidad polinomial Se dice que A es polinomial si existe una constante k de forma tal que la complejidad de A sea O(nk ). Complejidad no polinomial Si no existe esa constante k entonces se dice que el algoritmo no tiene complejidad polinomial.
Prof.: Javier Andrs Mena Zapata Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

Temporal y espacial Notacin Ejemplos de repaso Ejercicios

Complejidad polinomial y no polinomial


Denicin Por cuestiones prcticas para este curso, necesitamos una deniciones sencillas, suponiendo que tenemos un algoritmo llamado A. Complejidad polinomial Se dice que A es polinomial si existe una constante k de forma tal que la complejidad de A sea O(nk ). Complejidad no polinomial Si no existe esa constante k entonces se dice que el algoritmo no tiene complejidad polinomial.
Prof.: Javier Andrs Mena Zapata Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

Temporal y espacial Notacin Ejemplos de repaso Ejercicios

Complejidad polinomial y no polinomial


Denicin Por cuestiones prcticas para este curso, necesitamos una deniciones sencillas, suponiendo que tenemos un algoritmo llamado A. Complejidad polinomial Se dice que A es polinomial si existe una constante k de forma tal que la complejidad de A sea O(nk ). Complejidad no polinomial Si no existe esa constante k entonces se dice que el algoritmo no tiene complejidad polinomial.
Prof.: Javier Andrs Mena Zapata Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

Temporal y espacial Notacin Ejemplos de repaso Ejercicios

Esquema
1

Motivacin Qu clase complejidad se estudiar? Objetivo del curso Problemas computacionales fciles y difciles Repaso de complejidad Temporal y espacial Notacin Ejemplos de repaso Ejercicios Presentacin de clases P, NP, NPC NP-Completitud y las clases P y NP Esbozo de cmo demostrar NP-Completitud
Prof.: Javier Andrs Mena Zapata Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

Temporal y espacial Notacin Ejemplos de repaso Ejercicios

Ejemplo Sea f (n) = 1 n2 3n. Entonces f (n) = (n2 ). 2 Demostracin.

Prof.: Javier Andrs Mena Zapata

Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

Temporal y espacial Notacin Ejemplos de repaso Ejercicios

Ejemplo Sea f (n) = 1 n2 3n. Entonces f (n) = (n2 ). 2 Demostracin. Debemos encontrar dos constantes positivas c1 , c2 y n0 tal que: c1 n2 Para todo n n0 . 1 2 n 3n c2 n2 2 (4)

Prof.: Javier Andrs Mena Zapata

Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

Temporal y espacial Notacin Ejemplos de repaso Ejercicios

Ejemplo Sea f (n) = 1 n2 3n. Entonces f (n) = (n2 ). 2 Demostracin. Dividiendo por n2 se obtiene 1 3 c2 (5) 2 n La inecuacin derecha se mantiene para n 1, escogiendo 1 c2 2 . De la misma forma la inecuacin izquierda se mantiene 1 para n 7 escogiendo c1 14 . 1 1 As, escogiendo c1 = 14 , c2 = 2 y n0 = 7 se verica que f (n) = (n2 ) c1

Prof.: Javier Andrs Mena Zapata

Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

Temporal y espacial Notacin Ejemplos de repaso Ejercicios

Ejemplo Sea f (n) = 2n . Entonces f (n) es no polinomial. Demostracin.

Prof.: Javier Andrs Mena Zapata

Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

Temporal y espacial Notacin Ejemplos de repaso Ejercicios

Ejemplo Sea f (n) = 2n . Entonces f (n) es no polinomial. Demostracin. Se demuestra por contradiccin. Supongamos que f (n) = O(nk ), entonces existen constantes positivas c y n0 tal que: 2n cnk Para todo n n0 y alguna constante k . (6)

Prof.: Javier Andrs Mena Zapata

Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

Temporal y espacial Notacin Ejemplos de repaso Ejercicios

Ejemplo Sea f (n) = 2n . Entonces f (n) es no polinomial. Demostracin. Aplicando logaritmo a ambos lados tenemos que la inecuacin anterior se cumple, si:

n log c + k log n n log c k log n n log c k log n

(7) (8) (9)

Prof.: Javier Andrs Mena Zapata

Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

Temporal y espacial Notacin Ejemplos de repaso Ejercicios

Ejemplo Sea f (n) = 2n . Entonces f (n) es no polinomial. Demostracin. k n log c log n (10)

Como n log c crece ms rpido que log n entonces no existe tal constante k . Por tanto f (n) es no polinomial.

Prof.: Javier Andrs Mena Zapata

Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

Temporal y espacial Notacin Ejemplos de repaso Ejercicios

Esquema
1

Motivacin Qu clase complejidad se estudiar? Objetivo del curso Problemas computacionales fciles y difciles Repaso de complejidad Temporal y espacial Notacin Ejemplos de repaso Ejercicios Presentacin de clases P, NP, NPC NP-Completitud y las clases P y NP Esbozo de cmo demostrar NP-Completitud
Prof.: Javier Andrs Mena Zapata Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

Temporal y espacial Notacin Ejemplos de repaso Ejercicios

Ejercicios de adecuacin y repaso


Ejercicio
1

Sea f (n) = n3 3n + 5. Demuestre:


1 2 3 4

f (n) = O(n4 ) f (n) = O(n3 ) f (n) = (n3 ) f (n) = (n3 )

2 3

Es nlog n polinomial o no? Demustrelo. D un ejemplo de un algoritmo para cada caso:


1 2 3

(1) (n3 ) (2n )

Prof.: Javier Andrs Mena Zapata

Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

Temporal y espacial Notacin Ejemplos de repaso Ejercicios

Complejidad polinomial vs. no polinomial

Prof.: Javier Andrs Mena Zapata

Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

NP-Completitud y las clases P y NP Esbozo de cmo demostrar NP-Completitud

Esquema
1

Motivacin Qu clase complejidad se estudiar? Objetivo del curso Problemas computacionales fciles y difciles Repaso de complejidad Temporal y espacial Notacin Ejemplos de repaso Ejercicios Presentacin de clases P, NP, NPC NP-Completitud y las clases P y NP Esbozo de cmo demostrar NP-Completitud
Prof.: Javier Andrs Mena Zapata Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

NP-Completitud y las clases P y NP Esbozo de cmo demostrar NP-Completitud

La clase P La clase P consiste en aquellos problemas que son solucionables en tiempo polinomial. Existen muchos problemas que pertenecen a la clase P. La clase NP La clase NP es aquella cuyos problemas son vericables en tiempo polinomial. Lo que se quiere decir es que si se tuviera alguna clase de certicado de una solucin, entonces, es posible vericar en tiempo polinomial que el certicado es correcto, respecto al tamao de la entrada.

Prof.: Javier Andrs Mena Zapata

Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

NP-Completitud y las clases P y NP Esbozo de cmo demostrar NP-Completitud

La clase P La clase P consiste en aquellos problemas que son solucionables en tiempo polinomial. Existen muchos problemas que pertenecen a la clase P. La clase NP La clase NP es aquella cuyos problemas son vericables en tiempo polinomial. Lo que se quiere decir es que si se tuviera alguna clase de certicado de una solucin, entonces, es posible vericar en tiempo polinomial que el certicado es correcto, respecto al tamao de la entrada.

Prof.: Javier Andrs Mena Zapata

Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

NP-Completitud y las clases P y NP Esbozo de cmo demostrar NP-Completitud

NP-Completitud y las clases P y NP (cont.)


Ejemplo Para el problema de ciclo hamiltoniano, dado una grafo G = (V , E), un certicado podra ser una secuencia v1 , v2 , v3 , . . . , v|V | de |V| vrtices. Vericar que esta secuencia es un ciclo hamiltoniano es muy fcil. por qu? La clase NP (cont.) Un hecho importante es que cualquier problema en P, se encuentra tambin en NP. por qu?. Por ahora, un concepto importante: P NP. La pregunta abierta es saber si NP P o no.
Prof.: Javier Andrs Mena Zapata Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

NP-Completitud y las clases P y NP Esbozo de cmo demostrar NP-Completitud

NP-Completitud y las clases P y NP (cont.)


Ejemplo Para el problema de ciclo hamiltoniano, dado una grafo G = (V , E), un certicado podra ser una secuencia v1 , v2 , v3 , . . . , v|V | de |V| vrtices. Vericar que esta secuencia es un ciclo hamiltoniano es muy fcil. por qu? La clase NP (cont.) Un hecho importante es que cualquier problema en P, se encuentra tambin en NP. por qu?. Por ahora, un concepto importante: P NP. La pregunta abierta es saber si NP P o no.
Prof.: Javier Andrs Mena Zapata Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

NP-Completitud y las clases P y NP Esbozo de cmo demostrar NP-Completitud

NP-Completitud y las clases P y NP (cont.)


La clase NPC Informalmente, la clase NPC (que llamaremos la clase NP-Completo) se compone de todos los problemas que son tan fciles (o difciles) como todos los dems que pertenecen a esta misma clase. Ms all Es acerca de los problemas de esta clase de la que hablaremos de aqu en adelante, y se mostrar una resultado muy importante: si es posible solucionar algn problema que sea NPC en tiempo polinomial, entonces se podr solucionar cualquier otro problema de esta clase en tiempo polinomial.
Prof.: Javier Andrs Mena Zapata Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

NP-Completitud y las clases P y NP Esbozo de cmo demostrar NP-Completitud

NP-Completitud y las clases P y NP (cont.)


La clase NPC Informalmente, la clase NPC (que llamaremos la clase NP-Completo) se compone de todos los problemas que son tan fciles (o difciles) como todos los dems que pertenecen a esta misma clase. Ms all Es acerca de los problemas de esta clase de la que hablaremos de aqu en adelante, y se mostrar una resultado muy importante: si es posible solucionar algn problema que sea NPC en tiempo polinomial, entonces se podr solucionar cualquier otro problema de esta clase en tiempo polinomial.
Prof.: Javier Andrs Mena Zapata Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

NP-Completitud y las clases P y NP Esbozo de cmo demostrar NP-Completitud

Para qu estudiar esto? Para ser un buen diseador de algoritmos, usted debe entender las base de la teora de la complititud-NP. Si usted se da cuenta de que un problema es NP-Completo, entonces, tiene bastante evidencia acerca de la intratabilidad del problema. En la prctica Como ingeniero(a), sera mejor invertir tiempo en una aproximacin a la solucin o solucionar un caso especial, en lugar de buscar EL algoritmo que solucione el problema.

Prof.: Javier Andrs Mena Zapata

Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

NP-Completitud y las clases P y NP Esbozo de cmo demostrar NP-Completitud

Para qu estudiar esto? Para ser un buen diseador de algoritmos, usted debe entender las base de la teora de la complititud-NP. Si usted se da cuenta de que un problema es NP-Completo, entonces, tiene bastante evidencia acerca de la intratabilidad del problema. En la prctica Como ingeniero(a), sera mejor invertir tiempo en una aproximacin a la solucin o solucionar un caso especial, en lugar de buscar EL algoritmo que solucione el problema.

Prof.: Javier Andrs Mena Zapata

Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

NP-Completitud y las clases P y NP Esbozo de cmo demostrar NP-Completitud

Esquema
1

Motivacin Qu clase complejidad se estudiar? Objetivo del curso Problemas computacionales fciles y difciles Repaso de complejidad Temporal y espacial Notacin Ejemplos de repaso Ejercicios Presentacin de clases P, NP, NPC NP-Completitud y las clases P y NP Esbozo de cmo demostrar NP-Completitud
Prof.: Javier Andrs Mena Zapata Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

NP-Completitud y las clases P y NP Esbozo de cmo demostrar NP-Completitud

Diferencia fundamental Existe una diferencia fundamental entre la solucin de problemas cotidianos y la demostracin de que algn problema pertenece a NPC. Problemas cotidianos Cotidianamente se trata de ver las particularidades de un problema y utilizar varios algoritmos conocidos para solucionar partes de l. Demostraciones NPC Para demostrar que un problema es NPC, se debe demostrar qu tan difcil (o fcil) es el problema?. No se probar la existencia de un algoritmo eciente, sino que se demostrar que no existe tal algoritmo.
Prof.: Javier Andrs Mena Zapata Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

NP-Completitud y las clases P y NP Esbozo de cmo demostrar NP-Completitud

Diferencia fundamental Existe una diferencia fundamental entre la solucin de problemas cotidianos y la demostracin de que algn problema pertenece a NPC. Problemas cotidianos Cotidianamente se trata de ver las particularidades de un problema y utilizar varios algoritmos conocidos para solucionar partes de l. Demostraciones NPC Para demostrar que un problema es NPC, se debe demostrar qu tan difcil (o fcil) es el problema?. No se probar la existencia de un algoritmo eciente, sino que se demostrar que no existe tal algoritmo.
Prof.: Javier Andrs Mena Zapata Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

NP-Completitud y las clases P y NP Esbozo de cmo demostrar NP-Completitud

Diferencia fundamental Existe una diferencia fundamental entre la solucin de problemas cotidianos y la demostracin de que algn problema pertenece a NPC. Problemas cotidianos Cotidianamente se trata de ver las particularidades de un problema y utilizar varios algoritmos conocidos para solucionar partes de l. Demostraciones NPC Para demostrar que un problema es NPC, se debe demostrar qu tan difcil (o fcil) es el problema?. No se probar la existencia de un algoritmo eciente, sino que se demostrar que no existe tal algoritmo.
Prof.: Javier Andrs Mena Zapata Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

NP-Completitud y las clases P y NP Esbozo de cmo demostrar NP-Completitud

Problemas de decisin vs. problemas de optimizacin Para el propsito, es ms fcil hablar de problema de decisin que de problemas de optimizacin, dado que, que general, se demostrar de que un problema es o no, tan duro como los dems. La mayora de problemas de optimizacin se pueden convertir a problemas de decisin de forma simple.

Prof.: Javier Andrs Mena Zapata

Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

NP-Completitud y las clases P y NP Esbozo de cmo demostrar NP-Completitud

Ejemplo Ejemplo problemas de decisin vs. problemas de optimizacin: Camino ms corto Ciclo Hamiltoniano?

Prof.: Javier Andrs Mena Zapata

Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

NP-Completitud y las clases P y NP Esbozo de cmo demostrar NP-Completitud

Ejemplo Ejemplo problemas de decisin vs. problemas de optimizacin: Camino ms corto Ciclo Hamiltoniano?

Prof.: Javier Andrs Mena Zapata

Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

NP-Completitud y las clases P y NP Esbozo de cmo demostrar NP-Completitud

Ejemplo Ejemplo problemas de decisin vs. problemas de optimizacin: Camino ms corto Ciclo Hamiltoniano?

Prof.: Javier Andrs Mena Zapata

Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

NP-Completitud y las clases P y NP Esbozo de cmo demostrar NP-Completitud

Reducciones o transformaciones Muchas veces tranformamos un problema en otro. Una reduccin es una transformacin especial que se utiliza para demostrar la NP-Completitud de un problema. Llamaremos a entrada de un problema en particular, una instancia de ese problema.

Prof.: Javier Andrs Mena Zapata

Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

NP-Completitud y las clases P y NP Esbozo de cmo demostrar NP-Completitud

Ejemplo Supongamos que se tiene un problema de decisin A que queremos solucionar en tiempo polinomial. Suponga tambin que tenemos un problema de decisin diferente, llamado B que ya sabemos cmo solucionar en tiempo polinomial. Por ltimo, supongamos que tenemos un procedimiento que transforma cualquier instancia de A en alguna instancia de B y que tiene las siguientes caractersticas:
1 2

La transformacin se hace en tiempo polinomial. Las respuestas son las mismas. Es decir, la respuesta de es s, si y solo si la respuesta de es tambin s.

Prof.: Javier Andrs Mena Zapata

Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

NP-Completitud y las clases P y NP Esbozo de cmo demostrar NP-Completitud

Ejemplo Supongamos que se tiene un problema de decisin A que queremos solucionar en tiempo polinomial. Suponga tambin que tenemos un problema de decisin diferente, llamado B que ya sabemos cmo solucionar en tiempo polinomial. Por ltimo, supongamos que tenemos un procedimiento que transforma cualquier instancia de A en alguna instancia de B y que tiene las siguientes caractersticas:
1 2

La transformacin se hace en tiempo polinomial. Las respuestas son las mismas. Es decir, la respuesta de es s, si y solo si la respuesta de es tambin s.

Prof.: Javier Andrs Mena Zapata

Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

NP-Completitud y las clases P y NP Esbozo de cmo demostrar NP-Completitud

Ejemplo Supongamos que se tiene un problema de decisin A que queremos solucionar en tiempo polinomial. Suponga tambin que tenemos un problema de decisin diferente, llamado B que ya sabemos cmo solucionar en tiempo polinomial. Por ltimo, supongamos que tenemos un procedimiento que transforma cualquier instancia de A en alguna instancia de B y que tiene las siguientes caractersticas:
1 2

La transformacin se hace en tiempo polinomial. Las respuestas son las mismas. Es decir, la respuesta de es s, si y solo si la respuesta de es tambin s.

Prof.: Javier Andrs Mena Zapata

Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

NP-Completitud y las clases P y NP Esbozo de cmo demostrar NP-Completitud

Ejemplo Supongamos que se tiene un problema de decisin A que queremos solucionar en tiempo polinomial. Suponga tambin que tenemos un problema de decisin diferente, llamado B que ya sabemos cmo solucionar en tiempo polinomial. Por ltimo, supongamos que tenemos un procedimiento que transforma cualquier instancia de A en alguna instancia de B y que tiene las siguientes caractersticas:
1 2

La transformacin se hace en tiempo polinomial. Las respuestas son las mismas. Es decir, la respuesta de es s, si y solo si la respuesta de es tambin s.

Prof.: Javier Andrs Mena Zapata

Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

NP-Completitud y las clases P y NP Esbozo de cmo demostrar NP-Completitud

Ejemplo Supongamos que se tiene un problema de decisin A que queremos solucionar en tiempo polinomial. Suponga tambin que tenemos un problema de decisin diferente, llamado B que ya sabemos cmo solucionar en tiempo polinomial. Por ltimo, supongamos que tenemos un procedimiento que transforma cualquier instancia de A en alguna instancia de B y que tiene las siguientes caractersticas:
1 2

La transformacin se hace en tiempo polinomial. Las respuestas son las mismas. Es decir, la respuesta de es s, si y solo si la respuesta de es tambin s.

Prof.: Javier Andrs Mena Zapata

Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

NP-Completitud y las clases P y NP Esbozo de cmo demostrar NP-Completitud

Ejemplo Con esta informacin podemos realizar los siguientes pasos para lograr el objetivo:
1

Dada una una instancia del problema A, usar un algoritmo de tiempo polinomial de reduccin para transformarla en una instancia del problema B. Ejecutar algoritmo de tiempo polinomial B con la instancia . Usar la respuesta de la ejecucin anterior para dar respuesta .

Prof.: Javier Andrs Mena Zapata

Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

NP-Completitud y las clases P y NP Esbozo de cmo demostrar NP-Completitud

Ejemplo Con esta informacin podemos realizar los siguientes pasos para lograr el objetivo:
1

Dada una una instancia del problema A, usar un algoritmo de tiempo polinomial de reduccin para transformarla en una instancia del problema B. Ejecutar algoritmo de tiempo polinomial B con la instancia . Usar la respuesta de la ejecucin anterior para dar respuesta .

Prof.: Javier Andrs Mena Zapata

Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

NP-Completitud y las clases P y NP Esbozo de cmo demostrar NP-Completitud

Ejemplo Con esta informacin podemos realizar los siguientes pasos para lograr el objetivo:
1

Dada una una instancia del problema A, usar un algoritmo de tiempo polinomial de reduccin para transformarla en una instancia del problema B. Ejecutar algoritmo de tiempo polinomial B con la instancia . Usar la respuesta de la ejecucin anterior para dar respuesta .

Prof.: Javier Andrs Mena Zapata

Complejidad y Optimizacin: NP Completitud

Motivacin Repaso de complejidad Presentacin de clases P, NP, NPC

NP-Completitud y las clases P y NP Esbozo de cmo demostrar NP-Completitud

Ejemplo Con esta informacin podemos realizar los siguientes pasos para lograr el objetivo:
1

Dada una una instancia del problema A, usar un algoritmo de tiempo polinomial de reduccin para transformarla en una instancia del problema B. Ejecutar algoritmo de tiempo polinomial B con la instancia . Usar la respuesta de la ejecucin anterior para dar respuesta .

Prof.: Javier Andrs Mena Zapata

Complejidad y Optimizacin: NP Completitud

Вам также может понравиться