Академический Документы
Профессиональный Документы
Культура Документы
21 de agosto de 2006
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
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
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.
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.
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.
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.
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.
Qu clase complejidad se estudiar? Objetivo del curso Problemas computacionales fciles y difciles
Qu clase complejidad se estudiar? Objetivo del curso Problemas computacionales fciles y difciles
Qu clase complejidad se estudiar? Objetivo del curso Problemas computacionales fciles y difciles
Qu clase complejidad se estudiar? Objetivo del curso Problemas computacionales fciles y difciles
Qu clase complejidad se estudiar? Objetivo del curso Problemas computacionales fciles y difciles
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
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.
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
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
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.
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
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 ).
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 ).
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 ).
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).
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).
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).
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
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.
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.
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)
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
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)
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
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)
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:
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.
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
2 3
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
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.
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.
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.
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.
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
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
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
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
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.
Ejemplo Ejemplo problemas de decisin vs. problemas de optimizacin: Camino ms corto Ciclo Hamiltoniano?
Ejemplo Ejemplo problemas de decisin vs. problemas de optimizacin: Camino ms corto Ciclo Hamiltoniano?
Ejemplo Ejemplo problemas de decisin vs. problemas de optimizacin: Camino ms corto Ciclo Hamiltoniano?
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.
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.
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.
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.
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.
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.
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 .
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 .
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 .
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 .