La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Analisis deAlgoritmos

Presentaciones similares


Presentación del tema: "Analisis deAlgoritmos"— Transcripción de la presentación:

1 Analisis deAlgoritmos
P vs NP Daniel meza Juan Posada Cesar Solinas David Toca Analisis deAlgoritmos

2 La pregunta P vs NP. Puede la creatividad ser automatizada?

3 PRINCIPIOS BASICOS Maquina de Turing COMPLEJIDAD ALGORITMICA
ALGUNOS CONCEPTOS QUE DEBEMOS TENER CLAROS SON -COMPLEJIDAD ALGORITMICA

4 COMPLEJIDAD ALGORITMICA
Representa los recursos necesarios para resolver un problema, y que determinan su eficiencia respecto a otros algoritmos Son medidas relativas y abstractas, en las que se desprecian cosas como el hardware,lenguaje, compilador, etc, y en cambio, se toma en cuenta los pasos que toma para resolver el algoritmo en términos de la entrada

5 Pasos realizados por el algoritmo
entrada Pasos realizados por el algoritmo Salida Caso promedio Θ(n) Analizamos el algoritmo en términos de la entrada, y los pasos realizados por el algoritmo, teniendo en cuenta los distintos casos en los que puede venir la entrada O (n): Representa la complejidad temporal en el peor de los casos. Ω(n): Representa la complejidad en el mejor de los casos posibles. Θ(n): Expresa la complejidad temporal en el caso promedio. Para su cálculo se suponen que todas las entradas son equiprobables. Peor Caso O (n) Mejor caso Ω(n)

6 Es el tiempo tardado por un algoritmo en resolver un problema, determinado por una funcion polinomica Ej: un tiempo  4n6+7n4-2n2 es polinomico, pero NO un tiempo 2n, PUES es exponencial Tiempo Polinomial

7 CLASE DE COMPLEJIDAD ESPACIO EXP TIEMPO EXP ESPACIO P ESPACION P-COMPLETO NP NP-DIFICIL P Las clases de comejidad, son un conjunto de problemas de decision (si/no) relacionados por su complejidad Definicion “el conjunto de los problemas de decisión que pueden ser resueltos por una máquina M utilizando O(f(n)) del recurso R (donde n es el tamaño de la entrada)”.

8 Maquina de Turing La maquina de turing es un modelo teorico computacional  inventado por alang turing, recibe una informacion de entrada, por medio de una cinta, y en base a esto, la maquina cambia de estados, y por ultimo genera una salida. Una maquina de turing puede correr infinitamente. Esta compuesto por Un conjunto finito de estado Un conjunto finito de simbolos, representando el alfabeto de la entrada Un estado inicial Un simbolo que determinado blanco Un cojunto de estados finales de aceptacion Para lo q nos concierne, una maquina de turing representa un modelo abstracto de un artefacto que puede correr algoritmos

9 TIPOS DE M.T. No Deterministica Deterministica
Secuencial: sigue solo una secuencia de pasos Deterministica : solo sigue un camino computacional Nuestros computados son una m.t. secuencial y deterministica, incluyendo lso computadores en paralelo No Deterministica: (es d cierta forma “adivino”) Siempre elige la transición que eventualmente la llevará a un estado final de aceptación. (eficiente, rapido) * también lo podemos ver como q la maquina se bifurca en varias copias que siguen cada una de las posibles transiciones Esta demostrado que dada una máquina de Turing no determinista existe otra máquina de Turing determinista equivalente, en el sentido de que reconoce el mismo lenguaje, asi que podemos decir que una m.t. deterministica es un caso especial de una m.t. no deterministica, es decir que una m.t. deterministica pertenece a una m.t. no deterministica. No obstante difieren de eficencia, mientras que una m.t. no deterministica reconce una cierta entrada en O(t(n)),  la máquina determinista equivalente reconocerá la palabra en un tiempo O(2t(n)). Es decir, el no determinismo permitirá reducir la complejidad de la solución de los problemas, permitiendo resolver, por ejemplo, problemas de complejidad exponencial en un tiempo polinómico

10 CLASE P Si existe un algoritmo (por ejemplo una máquina de Turing) que es capaz de entregar la respuesta correcta para toda cadena de datos de longitud n en a lo sumo pasos, donde k y c son constantes independientes del conjunto de datos, entonces se dice que el problema puede ser resuelto en tiempo polinómico y lo clasificamos como perteneciente a la clase P. El conjunto de complejidad de todos los problemas de decisión para los cuales un algoritmo puede ser ejecutado por una maquina deterministica de turing en tiempo polinomial  En forma intuitiva, consideramos que los problemas contenidos en P son aquellos que pueden ser resueltos en forma razonablemente rápida. P suele ser la clase de problemas computacionales que son “eficientemente resolubles” o “tratables”, aunque haya clases potencialmente más grandes que también se consideran tratables, como RP Y BPP. Aunque también existen problemas en P que no son tratables en términos prácticos; por ejemplo, unos requieren al menos n^ operaciones.

11 En forma intuitiva, consideramos que los problemas contenidos en P son aquellos que pueden ser resueltos en forma razonable. P es conocido por contener muchos problemas naturales, incluyendo las versiones de decisión de programa lineal, cálculo del máximo común divisor, y encontrar una correspondencia máxima.

12 Ejemplo Si un problema nos pide que comprobemos si un número determinado X es la raíz cuadrada de Z podríamos resolverlo de dos formas: Calculando la raíz de Z y comparando con X (proceso lento y engorroso) O bien, elevando al cuadrado a X y comparando con Z (simple multiplicación X·X) La conclusión que sacamos de éste sencillo ejemplo es que en algunos problemas comprobar la solución es más eficiente que calcularla. La complejidad de la función “elevar al cuadrado” es más simple que calcular la raíz cuadrada.

13 Clase NP NP(tiempo polinomial no determinado)
se define como el conjunto de todos los problemas de decisión para el cual existe un algoritmos de búsqueda y de optimización que pueden ser llevada a cabo por una máquina de Turing no determinista en tiempo polinómico, para saber si existe una solución o si existe una mejor solución que las conocidas. NP-completo Es el subconjunto de los problemas de decisión en NP tal que todo problema en NP se puede reducir en cada uno de los problemas de NP-completo. Los problemas de NP-completo son los problemas más difíciles de NP y muy probablemente no formen parte de la clase de complejidad P. NP-hard Es el conjunto de los problemas de decisión que contiene los problemas H tales que todo problema L en NP puede ser transformado polinomialmente en H. Es el conjunto de problemas que pueden ser resueltos en tiempo polinómico por una máquina de Turing no determinista. De forma intuitiva podemos pensar en problemas dificiles de resolver, pero faciles de comprobar  En esta clase están el problema del viajante (también llamado "problema del agente de ventas" o "problema del agente viajero") donde se quiere saber si existe una ruta óptima que pasa por todos los nodos en un cierto grafo y el problema de satisfacibilidad booleana en donde se desea saber si una cierta fórmula de lógica proposicional puede ser cierta para algún conjunto de valores booleanos para las variables. El primer problema natural que se demostró que es completo NP fue el problema de satisfacibilidad booleana. Este resultado fue demostrado por Stephen Cook en 1971, y se lo llamó el teorema de Cook. La demostración de Cook de que la satisfacibilidad es un problema NP-completo es muy complicada. Sin embargo, después de que este problema se demostrara que es NP-Completo, es fácil demostrar que muchos otros problemas pertenecen a esta clase. Por lo tanto, una amplia clase de problemas en principio inconexos son reducibles unos a otros, y por lo tanto resultan en "el mismo problema" -- un resultado profundo e inesperado.

14 Clase NP Imaginen que una persona tiene que visitar 5 ciudades en un viaje de negocios. Se conocen todas las distancias. ¿Cuál es el viaje más corto que puedes hacer volviendo al punto de partida? ,la solución mas obvia es comprobar todas las posibilidades. Si se hace de esta forma llevaría un tiempo t=n! Digamos que el programa pudiera resolver el problema de 20 ciudades en 1 segundo, entonces 21 ciudades llevarían unos 21 segundos. Y 22 ciudades llevarían unos 462 segundos (más de 7 minutos), y 30 ciudades llevarían 3 millones de años. Ahora dividimos el problema en subproblemas, pero aun así la mejor necesita un tiempo t = 2n Así, un programa que resolviera el problema de 20 ciudades en 1 segundo tardaría unos 10 minutos en resolver el de 30 ciudades y para 60 ciudades tardaría 35,000 años. Es el conjunto de problemas que pueden ser resueltos en tiempo polinómico por una máquina de Turing no determinista. De forma intuitiva podemos pensar en problemas dificiles de resolver, pero faciles de comprobar  En esta clase están el problema del viajante (también llamado "problema del agente de ventas" o "problema del agente viajero") donde se quiere saber si existe una ruta óptima que pasa por todos los nodos en un cierto grafo y el problema de satisfacibilidad booleana en donde se desea saber si una cierta fórmula de lógica proposicional puede ser cierta para algún conjunto de valores booleanos para las variables. El primer problema natural que se demostró que es completo NP fue el problema de satisfacibilidad booleana. Este resultado fue demostrado por Stephen Cook en 1971, y se lo llamó el teorema de Cook. La demostración de Cook de que la satisfacibilidad es un problema NP-completo es muy complicada. Sin embargo, después de que este problema se demostrara que es NP-Completo, es fácil demostrar que muchos otros problemas pertenecen a esta clase. Por lo tanto, una amplia clase de problemas en principio inconexos son reducibles unos a otros, y por lo tanto resultan en "el mismo problema" -- un resultado profundo e inesperado.

15 Problema Existen problemas en los cuales una respuesta es imposible de generar a través de una computadora, pero si se da una respuesta, puede ser probada fácilmente?

16 Supongamos que queremos organizar los cuartos de dormitorio de un grupo de 400 estudiantes. El espacio es limitado y solo 100 de los estudiantes recibirá lugares en el dormitorio. Para complicar las cosas el decano ha dado una lista de parejas de estudiantes incompatibles, y ha pedido que ninguna pareja de esta lista aparezca en la opción final.

17 El número total de caminos de escoger 100 estudiantes de 400 aplicantes es mucho más grande que el número de átomos en el universo conocido. Por esto ninguna civilización futura podría nunca tener la esperanza de construir una supercomputadora capaz de resolver el problema por fuerza bruta; esto es, tratando de chequear cualquier posible combinación de 100 estudiantes.

18 Uno de los problemas más impactantes en la ciencia de la computación es la forma de determinar si existen preguntas cuyas respuestas puedan ser fácilmente chequeadas, pero que requieran un tiempo demasiado largo para resolverlas por cualquier procedimiento directo.

19 IMPORTANCIA DEL PROBLEMA
Prácticamente cualquier problema puede representarse mediante un grafo, y su estudio trasciende a las diversas áreas de las ciencias exactas y las ciencias sociales. Desde un punto de vista práctico, los grafos permiten estudiar las interrelaciones entre unidades que interactúan unas con otras. Por ejemplo, una red de computadoras puede representarse y estudiarse mediante un grafo, en el cual los vértices representan terminales y las aristas representan conexiones

20 AVANCES En los comienzos de agosto de 2010, Vinay Deolalikar anuncio una prueba de que P no es igual a NP. El escribió. “La prueba requiere unir las piezas desde múltiples áreas de las matemáticas. El mayor esfuerzo en construir esta prueba fue descubriendo una cadena de enlaces conceptuales entre distintos campos y observándolos a través de lentes normales.”

21 ¿Porque es dificil de probar?

22 Si se desea probar que P=NP se debe probar a su vez que:
Existe un set de problemas, pertenecientes a NP, tales que exista un algoritmo en el cual una MTND(Maquina de turing no deterministica) pueda resolver en un X-tiempo polinomial Existe un set de problemas, no pertenecientes a P, tales que no exista un algoritmo en el cual una MTD (Maquina de turing deterministica) pueda resolver en un X tiempo polinomial Comúnmente se piensa que P!=NP, pero hasta que no esté comprobado, no se puede estar totalmente seguro.


Descargar ppt "Analisis deAlgoritmos"

Presentaciones similares


Anuncios Google