Que es la Teora de la Computacin Sergio

  • Slides: 64
Download presentation
¿Que es la Teoría de la Computación? Sergio Rajsbaum Instituto de Matemáticas, UNAM

¿Que es la Teoría de la Computación? Sergio Rajsbaum Instituto de Matemáticas, UNAM

¿Cómo explicar que es la Teoría de la Computación? • • Definiciones Breve introducción

¿Cómo explicar que es la Teoría de la Computación? • • Definiciones Breve introducción histórica Ejemplos de problemas Lista y clasificación de temas

En pocas palabras ¿Que es la Teoría de la Computación? Los cimientos del edificio

En pocas palabras ¿Que es la Teoría de la Computación? Los cimientos del edificio

El Edificio Ciencia e Ingeniería de la Computación: • conglomerado de disciplinas científicas y

El Edificio Ciencia e Ingeniería de la Computación: • conglomerado de disciplinas científicas y de ingeniería relacionadas -- estudio y aplicación del cómputo. • Desde – mas puras y básicas disciplinas científicas dedicadas a los fundamentos de la computación – hasta las de ingenierías dedicadas a aplicaciones especificas.

La Teoría de la Computación Pretende Entender Estudiando modelos matemáticos relacionados al cómputo

La Teoría de la Computación Pretende Entender Estudiando modelos matemáticos relacionados al cómputo

¿Qué es el cómputo? – El interés por diseñar métodos y dispositivos para cálculos

¿Qué es el cómputo? – El interés por diseñar métodos y dispositivos para cálculos aritméticos y lógicos es antiguo, pero – sin entendimiento de la naturaleza del cómputo en general ¿ método, dispositivo?

10 o Problema de Hilbert (Paris, 1900) “diseñar un método mediante el cual se

10 o Problema de Hilbert (Paris, 1900) “diseñar un método mediante el cual se puede determinar en un número finito de operaciones” si un polinomio tiene una raíz entera

Yuri Matijasevic En 1970 el matemático de Leningrado de 22 años resolvió el problema

Yuri Matijasevic En 1970 el matemático de Leningrado de 22 años resolvió el problema al probar que no existe tal método (basado en trabajo de Davis, Putnam y Robinson) → Lo cual hubiera sido difícil de lograr para los matemáticos de 1900 con su noción intuitiva de algoritmo …

Alan Turing En 1936 con la Máquina de Turing formalizó la noción de algoritmo

Alan Turing En 1936 con la Máquina de Turing formalizó la noción de algoritmo (no tan chico − a la edad de 24 años) Simultáneamente Alonzo Church con la noción equivalente de lambda-cálculo y otros…

Máquina de Turing entrada 2 q 0 = 0 1 0 2 … q

Máquina de Turing entrada 2 q 0 = 0 1 0 2 … q control finito función de transición δ Inicialmente: – en el estado q 0 – con entrada w Operación, según δ(q, x)=(q’, x’, d): – si esta en estado q sobre el simbolo x – cambia a q’, sobre-escribe x’ y se mueve una posición (der. o izq. )

Máquina de Turing Formalmente, no es mas que un conjunto de quintupletas que describen

Máquina de Turing Formalmente, no es mas que un conjunto de quintupletas que describen la función de transición δ

¡La mayoría de las funciones no son computables! El conjunto de Máquinas de Turing

¡La mayoría de las funciones no son computables! El conjunto de Máquinas de Turing es numerable; el de todas las funciones no lo es

Tesis de Church-Turing Noción intuitiva de algoritmo = Máquina de Turing

Tesis de Church-Turing Noción intuitiva de algoritmo = Máquina de Turing

Máquina de Turing Universal Descripción de M 2 0 1 0 2 … q

Máquina de Turing Universal Descripción de M 2 0 1 0 2 … q 0 Simula a una Máquina de Turing M

Máquina de Turing Universal Feynman’s Lectures on Computation

Máquina de Turing Universal Feynman’s Lectures on Computation

El Problema de la Detención no es computable Dada una M y una entrada

El Problema de la Detención no es computable Dada una M y una entrada w, M se detiene con entrada w? La idea: ¿ Qué pasa si a una M le damos como entrada a ella misma ? ! • No es mas que una diagonalización a la Cantor

Reducciones P 1 ≤ P 2 • Problema P 2 es al menos tan

Reducciones P 1 ≤ P 2 • Problema P 2 es al menos tan difícil como P 1 • si P 1 se puede resolver con P 2 como oráculo

≤ induce clases de equivalencia Jerarquía infinita de problemas no computables Problemas equivalentes a

≤ induce clases de equivalencia Jerarquía infinita de problemas no computables Problemas equivalentes a este Problema de la detención

El mundo de los problemas computables 1900 noción formal de cómputo ? … 1936

El mundo de los problemas computables 1900 noción formal de cómputo ? … 1936 Máquina de Turing … 1965 complejidad

Medir tiempo y espacio como una función del tamaño de la entrada ‘ 65

Medir tiempo y espacio como una función del tamaño de la entrada ‘ 65 Juris Hartmanis, Cornell Richard Stearns, U. Albany Dado mas tiempo o espacio se pueden computar mas cosas

Clases de Complejidad Tiempo o Espacio Jerarquía infinita de problemas computables Ø Utilizando reducciones

Clases de Complejidad Tiempo o Espacio Jerarquía infinita de problemas computables Ø Utilizando reducciones

Eficiente = Polinomial Para que una solución sea útil – Su costo en tiempo/espacio

Eficiente = Polinomial Para que una solución sea útil – Su costo en tiempo/espacio debe crecer polinomialmente con respecto al tamaño de la entrada

Razón de crecimiento de funciones típicas n n 2 n 3 2 n 3

Razón de crecimiento de funciones típicas n n 2 n 3 2 n 3 n 10. 00001. 059 20. 00002. 0004. 008 1. 0 58 m 30. 00003. 0009. 027 17. 9 m 6. 5 a 50. 00005. 0025. 125 35. 7 d 2*108 s 60. 00006. 0036. 216 366 s 1. 3*1013 s todas las entradas en segundos [GJ] excepto m=min, d=dias, a=años, s=siglos (Función en micro-segundos)

El Mundo de la Computación Jerarquía infinita de problemas no computables Jerarquía infinita de

El Mundo de la Computación Jerarquía infinita de problemas no computables Jerarquía infinita de problemas computables polinomiales clase P

La Clase NP • Para el final de los 60’s, se sabía de una

La Clase NP • Para el final de los 60’s, se sabía de una variedad de problemas prácticos para los cuales no había solución polinomial • Todos tienen un espacio exponencial de soluciones posibles • Todos se pueden verificar en tiempo polinomial • Ejem: Encontrar un ciclo que pase por todos los vértices de una gráfica

¿ P = NP ? EXP Una de las 7 preguntas del Premio del

¿ P = NP ? EXP Una de las 7 preguntas del Premio del Milenio del Clay Mathematics Institute con $1, 000 NP P

Resulta que los problemas prácticos mencionados, son los mas difíciles dentro de NP EXP

Resulta que los problemas prácticos mencionados, son los mas difíciles dentro de NP EXP NP-completos NP P

El er 1 problema NP-completo SAT: Si un predicado booleano se puede satisfacer Stephen

El er 1 problema NP-completo SAT: Si un predicado booleano se puede satisfacer Stephen Cook, Toronto Probado en 1971 Leonid Levin, BU Probado en 1973

En ‘ 73 ocho problemas centrales en combinatoria probados NP-completos • • Reducciones: Si

En ‘ 73 ocho problemas centrales en combinatoria probados NP-completos • • Reducciones: Si P es NP-completo, P’ es NP y P ≤ P’ ent. P’ tambien Richard Karp

Y Karp mencionó tres en NP sin lograr probarlos NP-completos • Isomorfismo de gráficas

Y Karp mencionó tres en NP sin lograr probarlos NP-completos • Isomorfismo de gráficas • Primalidad • Programación lineal ? P ≠ NP => num. ∞ de clases, inclusive algunas no comparables entre si EXP NP-completos NP P

Y Karp mencionó tres en NP sin lograr probarlos NP-completos • • • Ø

Y Karp mencionó tres en NP sin lograr probarlos NP-completos • • • Ø Isomorfismo de gráficas Primalidad Programación lineal Siguieron abiertos hasta ’ 79 cuando aparece el libro de Garey-Johnson Ø PL en P ’ 84, por Karmarkar Ø Prim en P ’ 02, por Agarwal y estudiantes Saxena, Kayal Nitin Saxena Narendra Karmarkar Neeraj Kayal Maninda Agarwal (der a izq)

Isomorfismo de Gráficas Sigue Abierto • Probablemente no en P • Probablemente no sea

Isomorfismo de Gráficas Sigue Abierto • Probablemente no en P • Probablemente no sea NP-completo ─ es sensitivo localmente: si existe un isomorfismo, y se cambia un poquito la gráfica, deja de haberlo ─ si lo fuera se colapsa la jerarquía polinomial

Ejemplos clásicos P NP-completo Camino mas corto entre u, v Camino mas largo entre

Ejemplos clásicos P NP-completo Camino mas corto entre u, v Camino mas largo entre u, v Cubrir vértices con el menor número de aristas Cubrir aristas con el menor número de vértices Apareamiento de aristas Apareamiento de 3 -aristas Digráfica equivalente mínima Subgráfica equivalente (preserva conectividad entre todo u, v) mínima ¿G es k-coloreable? G de comparabilidad; G de grado ≤ 3 G arbitraria: Para toda 3≤k fija; para k=3 en gráficas planas

Pero volvamos a nuestra pregunta original ¿Que es la Teoría de la Computación?

Pero volvamos a nuestra pregunta original ¿Que es la Teoría de la Computación?

Se Divide en Dos I. Teoría de la Programación Teoría de la Computación –

Se Divide en Dos I. Teoría de la Programación Teoría de la Computación – Estudiar los lenguajes para implementar los cómputos II. Teoría del Cómputo – Entender la naturaleza del cómputo, sus posibilidades y limitaciones – Y el objeto del cómputo, la información

I. Teoría de la Programación • • Modelos de cómputo Lenguajes de programación Semántica

I. Teoría de la Programación • • Modelos de cómputo Lenguajes de programación Semántica de lenguajes Estilos de programación- Lógica, funcional… Concurrencia Especificación y verificación Lógica y computación Representación del conocimiento, bases de datos

II. Teoría del Cómputo El estudio de la propiedades generales del cómputo, ya sea

II. Teoría del Cómputo El estudio de la propiedades generales del cómputo, ya sea natural, artificial, o imaginario

 • ¿Qué es un dispositivo de cómputo? – Secuencial, paralelo, distribuido, biológico, quántico

• ¿Qué es un dispositivo de cómputo? – Secuencial, paralelo, distribuido, biológico, quántico • ¿Cuál es el costo de un cómputo? – Tiempo, espacio, comunicación, tamaño del programa • ¿ Qué se puede computar eficientemente y que no? – Ciclo mas corto vs. ciclo mas largo • ¿ Como clasificar a todos los problemas de acuerdo a su dificultad? – Una jerarquía infinita y densa de clases de complejidad • ¿ Qué no se puede computar? – Si un programa es correcto o no • ¿ Qué es la información? – Como se mide, como se comprime y que tanto, – cual es la información de 010101010 vs. 00101111000101100

Entender mejor el mundo, desde nuestra perspectiva de computólogos

Entender mejor el mundo, desde nuestra perspectiva de computólogos

El Dilema del Esquiador No sabe cuantos días va a querer esquiar. ¿Comprar o

El Dilema del Esquiador No sabe cuantos días va a querer esquiar. ¿Comprar o Rentar? • Renta de esquís cuesta $1 por día. Comprarlos $10. • Lo óptimo es rentar hasta el día 10, y luego comprar Análisis de Algoritmos En-Linea ¿donde estuvo la computadora? Pero hay aplicacionesmemoria cache

Mas Ejemplos: • Aparentemente hay funciones fáciles de calcular pero difíciles de invertir (cripto)

Mas Ejemplos: • Aparentemente hay funciones fáciles de calcular pero difíciles de invertir (cripto) – e. g. multiplicar vs. factorizar • Aparentemente hay problemas mucho mas fáciles de verificar que de resolver (P vs NP) – e. g. partir un conjunto de pesas en dos subconjuntos que pesen lo mismo • La aleatoriedad puede ser expandida arbitrariamente – usar una semilla chica para generar números pseudoaleatorios • Una prueba de un enunciado puede no enseñarte nada mas que la validez del enunciado – e. g este mapa se puede colorear con k colores

Y mas Ejemplos: • Pruebas holográficas – Forma en la cualquier prueba puede ponerse,

Y mas Ejemplos: • Pruebas holográficas – Forma en la cualquier prueba puede ponerse, tal que cualquier error se puede detectar (probabilisticamente) viendo solo una fracción pequeña de ella – Pruebas tradicionales tiempo cuadrático (en su tamaño); estas toman tiempo polilogarítmico – El log 2 del numero de átomos en el universo es < 300 ! • Robótica – Un agente sin memoria puede moverse sobre una gráfica y detectar su conexidad Jorge Urrutia

Computación molecular: • Solución de problemas NP completos – usando paralelismo masivo con DNA

Computación molecular: • Solución de problemas NP completos – usando paralelismo masivo con DNA • Diseño de drogas inteligentes – midiendo y corrigiendo la expresión genética Ricardo Strausz

Computación Distribuida Entradas Ejecuciones Las ejecuciones de un algoritmo distribuido preservan La topología de

Computación Distribuida Entradas Ejecuciones Las ejecuciones de un algoritmo distribuido preservan La topología de las entradas posibles, dependiendo del nivel de tolerancia a fallas del sistema

Ejemplos muy prácticos • El dilema de la memoria cache – Se tiene una

Ejemplos muy prácticos • El dilema de la memoria cache – Se tiene una cache (rápida pero cara) para k páginas – Se va llenando con páginas del disco (lento pero barato) – Una vez llena, cuando se pide una página que no esta en el cache ¿cual sacar? Ø La que haya estado en la memoria mas tiempo

Cache en el Web • Poner copias de páginas usadas en lugares estratégicos de

Cache en el Web • Poner copias de páginas usadas en lugares estratégicos de la Red • caches en diversas partes de Internet • Akamai, compañía fundada por un profesor de teoría de MIT T. Leighton y su alumno

Google • Búsqueda basada en la importancia de una página: una liga de A

Google • Búsqueda basada en la importancia de una página: una liga de A a B se interpreta como un voto de A a B. Se obtiene la importancia de la página resolviendo una ecuación de + 500 millones de variables y 200 millones de términos • Más de 60 doctores, además de asesores como R. Motwani, J. Ullman, profesores de teoría de Stanford • “Google bombing” » NYT January 22, 2004

Referencias • En el Web: “Theoretical Computer Science On The Web” • Handbook of

Referencias • En el Web: “Theoretical Computer Science On The Web” • Handbook of Theoretical Computer Science – Vol. A: Algorithms and Complexity – Vol. B: Formal Models and Semantics • Revistas: Journal of the ACM • Congresos: ACM STOC, IEEE FOCS, ICALP • Artículos: – Goldreich, A Brief Introduction to the Theory of Computation

Libros • • • Sipser, Intro. Theory of Computation Garey-Johnson, Computers and Intractability Schoning,

Libros • • • Sipser, Intro. Theory of Computation Garey-Johnson, Computers and Intractability Schoning, Pruim, Gems of Theoretical CS Hromkovic, Theoretical CS Kozen, Theory of Computation Goldreich, Computational Complexity: a Conceptual Perspective

Conclusiones • De una Máquina de Turing a muchas • ¿Para que la Teoría

Conclusiones • De una Máquina de Turing a muchas • ¿Para que la Teoría de la Computación ?

Ramon Llull Mallorca, 1232 -1316 • Ars Magna, para automatizar todo el razonamiento If

Ramon Llull Mallorca, 1232 -1316 • Ars Magna, para automatizar todo el razonamiento If understanding followed no rule at all, there would be no good in the understanding nor in the matter understood, and to remain in ignorance would be the greatest good The Hundred Names of God

Ramon Llull Mallorca, 1232 -1316 • En realidad, con el Ars Magna, pretendía apoyar

Ramon Llull Mallorca, 1232 -1316 • En realidad, con el Ars Magna, pretendía apoyar la comunicación intercultural entre cristianos, judíos y musulmanes • Una herramienta para discusión mediante comunicación, en lugar de mediante la fuerza • La verdad no puede ser hallada mediante cómputo, sino mediante comunicación

Gottfried Leibniz Leipzig, 1646 -1716 • Descubrió el sistema binario • Buscaba un alfabeto

Gottfried Leibniz Leipzig, 1646 -1716 • Descubrió el sistema binario • Buscaba un alfabeto para todo el pensamiento humano y un cálculo para manipular estos símbolos Compartió el sueño de Llull la coexistencia pacifica entre personas de diferentes culturas, religiones y nacionalidades

Lo ambicioso del plan de la formalización de todo el razonamiento humano Si resultara

Lo ambicioso del plan de la formalización de todo el razonamiento humano Si resultara que la lógica básica de una máquina diseñada para la solución numérica de ecuaciones diferenciales coincidiera con la lógica de una máquina para sacar cuentas de una tienda comercial, me parecería esto la coincidencia más sorprendente que jamás me haya encontrado Howard Aiken, 1956

El Entusiasmo del sueño de la comunicación • Por 1 era vez, las redes

El Entusiasmo del sueño de la comunicación • Por 1 era vez, las redes telegráficas de Europa y Norteamérica se conectaron, mediante un cable submarino agosto 5, 1858 “A Thread Across the Ocean” Steele

El Entusiasmo del sueño de la comunicación • Celebraciones al borde de la histeria

El Entusiasmo del sueño de la comunicación • Celebraciones al borde de la histeria It is impossible that old prejudices and hostilities should longer exist, while such an instrument has been created for the exchange of thought between all the nations of the world Briggs, Maverick 1858

Y el Entusiasmo Continua • Michael Dertouzos cuando fuera jefe del LCS de MIT

Y el Entusiasmo Continua • Michael Dertouzos cuando fuera jefe del LCS de MIT en 1997 A common bond reached through electronic proximity may help stave off future flareups of ethnic hatred and national breakups Libro “What Will Be”

¿ Para qué estudiar Teoría de la Computación?

¿ Para qué estudiar Teoría de la Computación?

¿ Para qué estudiar Teoría de la Computación? • Una formación más sólida, un

¿ Para qué estudiar Teoría de la Computación? • Una formación más sólida, un computólogo más profesional • Problemas matemáticos interesantes • Mejorar aplicaciones

When you want to build a ship, then do not drum the men together

When you want to build a ship, then do not drum the men together in order to procure wood, to give instructions or to distribute the work but teach them longing for the wide endless sea. A. de Saint-Exupéry

Para qué estudiar Teoría de la Computación? • Una formación más sólida, un computólogo

Para qué estudiar Teoría de la Computación? • Una formación más sólida, un computólogo más profesional • Desarrollo y uso de herramientas complejas • Seguir adelante a un doctorado • Dedicarse a la teoría de la computación en investigación y docencia • Evitar vergüenzas …

Autoexamen de Conciencia (lenguajes) ¿Hay cosas programables en unos lenguajes pero no en otros?

Autoexamen de Conciencia (lenguajes) ¿Hay cosas programables en unos lenguajes pero no en otros?

Autoexamen de Conciencia (computadoras) ¿Hay cosas que unas computadoras pueden hacer pero no otras?

Autoexamen de Conciencia (computadoras) ¿Hay cosas que unas computadoras pueden hacer pero no otras?

FIN Gracias por su atención

FIN Gracias por su atención