Presentación del Área de Teoría de la Computación en la UNAM Sergio Rajsbaum Instituto de...

23
Presentación del Área de Teoría de la Computación en la UNAM Sergio Rajsbaum Instituto de Matemáticas, UNAM Enero 29, 2004

Transcript of Presentación del Área de Teoría de la Computación en la UNAM Sergio Rajsbaum Instituto de...

Page 1: Presentación del Área de Teoría de la Computación en la UNAM Sergio Rajsbaum Instituto de Matemáticas, UNAM Enero 29, 2004.

Presentación del Área de Teoría de la Computación en la UNAM

Sergio RajsbaumInstituto de Matemáticas, UNAM

Enero 29, 2004

Page 2: Presentación del Área de Teoría de la Computación en la UNAM Sergio Rajsbaum Instituto de Matemáticas, UNAM Enero 29, 2004.

La Presentación

¿Que es la Teoría de la Computación?

En general– Definición– Ejemplos de Problemas– Lista de Temas

En la UNAM– Tutores, sus temas y sus cursos

Page 3: Presentación del Área de Teoría de la Computación en la UNAM Sergio Rajsbaum Instituto de Matemáticas, UNAM Enero 29, 2004.

En pocas palabras¿Que es la Teoría de la Computación?

Los cimientos del edificio

Entender

Page 4: Presentación del Área de Teoría de la Computación en la UNAM Sergio Rajsbaum Instituto de Matemáticas, UNAM Enero 29, 2004.

Definición de Teoría de la Computación

Oded Goldreich, A Brief Introduction to the Theory of Computation

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.

Page 5: Presentación del Área de Teoría de la Computación en la UNAM Sergio Rajsbaum Instituto de Matemáticas, UNAM Enero 29, 2004.

Se Divide en Dos

I. Teoría de la Programació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

Teoría de la Computación

Page 6: Presentación del Área de Teoría de la Computación en la UNAM Sergio Rajsbaum Instituto de Matemáticas, UNAM Enero 29, 2004.

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

Page 7: Presentación del Área de Teoría de la Computación en la UNAM Sergio Rajsbaum Instituto de Matemáticas, UNAM Enero 29, 2004.

II. Teoría del Cómputo

El estudio de la propiedades generales del cómputo, ya sea

natural, artificial, o imaginario

Page 8: Presentación del Área de Teoría de la Computación en la UNAM Sergio Rajsbaum Instituto de Matemáticas, UNAM Enero 29, 2004.

• 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

Page 9: Presentación del Área de Teoría de la Computación en la UNAM Sergio Rajsbaum Instituto de Matemáticas, UNAM Enero 29, 2004.

Entender mejor el mundo, desde nuestra

perspectiva de computólogos

Page 10: Presentación del Área de Teoría de la Computación en la UNAM Sergio Rajsbaum Instituto de Matemáticas, UNAM Enero 29, 2004.

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 aplicaciones- memoria cache

Page 11: Presentación del Área de Teoría de la Computación en la UNAM Sergio Rajsbaum Instituto de Matemáticas, UNAM Enero 29, 2004.

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

Page 12: Presentación del Área de Teoría de la Computación en la UNAM Sergio Rajsbaum Instituto de Matemáticas, UNAM Enero 29, 2004.

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?

Page 13: Presentación del Área de Teoría de la Computación en la UNAM Sergio Rajsbaum Instituto de Matemáticas, UNAM Enero 29, 2004.

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

Page 14: Presentación del Área de Teoría de la Computación en la UNAM Sergio Rajsbaum Instituto de Matemáticas, UNAM Enero 29, 2004.

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

rajsbaum
Google is a play on the word googol, which was coined by Milton Sirotta, nephew of American mathematician Edward Kasner, to refer to the number represented by the numeral 1 followed by 100 zeros. A googol is a very large number. There isn't a googol of anything in the universe. Not stars, not dust particles, not atoms. Google's use of the term reflects the company's mission to organize the immense, seemingly infinite amount of information available on the web.
rajsbaum
PageRank Technology - PageRank performs an objective measurement of the importance of web pages by solving an equation of more than 500 million variables and 2 billion terms. Instead of counting direct links, PageRank interprets a link from Page A to Page B as a vote for Page B by Page A. PageRank then assesses a page's importance by the number of votes it receives.PageRank also considers the importance of each page that casts a vote, as votes from some pages are considered to have greater value, thus giving the linked page greater value. Important pages receive a higher PageRank and appear at the top of the search results. Google's technology uses the collective intelligence of the web to determine a page's importance. There is no human involvement or manipulation of results, which is why users have come to trust Google as a source of objective information untainted by paid placement.
Page 15: Presentación del Área de Teoría de la Computación en la UNAM Sergio Rajsbaum Instituto de Matemáticas, UNAM Enero 29, 2004.

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

Page 16: Presentación del Área de Teoría de la Computación en la UNAM Sergio Rajsbaum Instituto de Matemáticas, UNAM Enero 29, 2004.

Teoría de la Computaciónen la

UNAM

Page 17: Presentación del Área de Teoría de la Computación en la UNAM Sergio Rajsbaum Instituto de Matemáticas, UNAM Enero 29, 2004.

Tutores

• Francisco Hernández Quiroz semántica de lenguajes

• Julio Peralta lenguajes, prolog, autómatas

• Sergio Rajsbaum computo distribuido, algoritmos

• David Rosenblueth lenguajes, inteligencia artificial, Prolog

• Jorge Urrutia geometría computacional, algoritmos

• Carlos Velarde combinatoria, lenguajes, etc.

rajsbaum
From [email protected] Fri Jan 23 18:12:10 2004Date: Fri, 23 Jan 2004 15:10:11 -0600 (CST)From: David Rosenblueth <[email protected]>To: "Sergio Rajsbaum (107)" <[email protected]>Subject: Re: presentacion del area de teoriaHola Sergio,aqui esta una descripcion de lo que hago.Transformaci'on de programas----------------------------Desde la invenci'on de los lenguajes de alto nivel, no ha habido ning'unavance importante en nuestra manera de programar computadoras.La transformaci'on de programas pretende realizar una contribuci'onsimilar a la de los lenguajes de alto nivel a trav'es de un c'alculo deprogramas que establece una transformaci'on de una "especificaci'on"(ineficiente o inclusive no ejecutable) a una "implementaci'on" eficiente.Dicho proceso emplea reglas previamente verificadas, de manera que laimplementaci'on sea correcta con respecto a la especificaci'on.Evidentemente como programadores deseamos que la transfomaci'on mencionadase realice en forma autom'atica, lo que implica que la computadoraefect'ue una b'usqueda en un espacio de programas.As'i, la tranformaci'on de programas est'a relacionada con t'ecnicas deb'usqueda, y m'as ampliamente puede verse como una rama de la inteligenciaartificial.cursos------1. Programaci'on L'ogicaLa programaci'on l'ogica parte de la tesis de que la l'ogica matem'aticasimplifica no solo la programaci'on de computadoras, sino la construcci'onde agentes "inteligentes".As'i, esta 'area est'a relacionada tanto con programaci'on como coninteligencia artificial.A fin de ser eficiente, la programaci'on l'ogica se limita a un fragmentode la l'ogica de primer orden.El lenguaje de programaci'on m'as representativo dise~nado con estas ideases Prolog, que no solo es eficientemente ejecutable, sino que posee unasem'antica elegante y bien estudiada.En este curso se ven las principales caracter'isticas de Prolog yaplicaciones tanto a programaci'on como a inteligencia artificial.2. Programaci'on Funcional y L'ogicaLa programaci'on funcional y la programaci'on l'ogica navegan en el mismobarco: la programaci'on declarativa.Ambos paradigmas tratan de simplificar la programaci'on y las t'ecnicaspara demostrar que un programa est'a correcto.En este curso cubrimos los elementos b'asicos de Haskell (programaci'onfuncional) y Prolog (programaci'on l'ogica).Adem'as, estudiamos diferentes conexiones entre ambos paradigmas.URL: http://leibniz.iimas.unam.mx/~drosenbl/Cualquier duda, preguntame por favor.Un saludo,David
rajsbaum
From [email protected] Mon Jan 26 15:48:19 2004Date: Mon, 26 Jan 2004 15:28:53 -0600 (CST)From: Julio Cesar Peralta Estrada <[email protected]>To: "Sergio Rajsbaum (107)" <[email protected]>Subject: Re: presentacion del area de teoriaHola Sergio,Perdon por ponerte en esta situacion.Te mando el URL de mi pagina:http://leibniz.iimas.unam.mx/~jperaltaNo me queda mucho tiempo y solo esto te puedo mandar.Explicarte bien lo que hago es demaisado, y lamentablemente notengo el tiempo.Espero que el siguiente intento sea de utilidad:Ahora mismo trabajo en la implementacion de un widening paraautomatas deterministicos arriba-abajo sobre arboles.El widening se usa paragarantizar terminacion de analisis y especializacion de programas logicos(con restricciones), sobre este dominio.Los automatas mencionados los uso para describir la forma (shape) dealgunas estructuras construidas (en el heap) por programas logicos (conrestricciones).Adicionalmente sirven para razonar en terminos de conjuntos acerca de losposibles valores de las variables de un programa logico (conrestricciones).Me falta probar terminacion de mi implementacion!Adicionalmente trabajo en construir conexiones entre programas logicos(con restricciones) y programas imperativos (como C, Pascal, Java) con elfin de poder aplicar/transferir estos resultados en analisis yespecializacion de programas logicos (con restricciones) a programasimperativos.Para este proposito utilizo interpretes de lenguajes imperativos escritosen programas logicos (con restricciones). Estos interpretes estan basadosen descripciones de la semantica operacional del lenguaje imperativoseleccionado. Tambien se investigan semanticas de lenguajes imperativos...En caso de duda aqui estoy (email),JulioP.D. No explique en que consiste la especializacion de programas porque esun poco largo... Una primera aproximacion es construir 'compiladores' queademas del programa de entrada toman parte de la entrada con la que seejecutara el programa. La idea es tratar deevaluar/computar-por-adelantado (ademas de compilar) lo mas que se puedacon la parte de la entrada que se conoce en tiempo de compilacion. Poresta razon a especializacion se le confunde con evaluacion parcial (encontraste con evaluacion total del uso cotidiano en llamadas asubrutinas, etc.).From [email protected] Mon Jan 26 16:05:02 2004Date: Mon, 26 Jan 2004 15:51:43 -0600 (CST)From: Julio Cesar Peralta Estrada <[email protected]>To: "Sergio Rajsbaum (107)" <[email protected]>Subject: CursosMi experiencia dando cursos ha sido bastante desagradable.Los cursos que di (se mencionan en mi pagina) son dos versiones del mismo:Conceptos de Lenguages de Programacionen los semestres que empezaron en sept del 2002 y sept del 2003.Acabo de terminar uno.Todavia no se si voy a dar el mismo el anio que viene.Mas me gustaria dar un curso avanzado sobre analisis de programas, ocompiladores.David Rosenblueth me invito a colaborar con el en Inteligencia Artificial,asi que puede que demos juntos un seminario sobre temas de inteligenciaartificial (el frame problem) o sobre temas avanzados de programacionlogica (abduccion, negacion, semantica).Como ves no esta muy claro. No se si sirva que tu lo menciones.Posiblemente les llegue un mensaje de 'dejadez' a los estudiantes.Lo que me paso con los estudiantes de primer ingreso es que son muy flojosy reprobe a muchos. Como consecuencia me escribieron una carta al comiteacademico. Es una historia larga....posiblemente fui demasiado duro,posiblemente no entendieron el mensaje,....Los que aprobaron hubo desdediez hasta seis.JulioFrom [email protected] Mon Jan 26 16:36:53 2004Date: Mon, 26 Jan 2004 16:24:12 -0600 (CST)From: Julio Cesar Peralta Estrada <[email protected]>To: "Sergio Rajsbaum (107)" <[email protected]>Subject: Breve descripcionHola de nuevo,Me di cuenta que no mancione nada acerca del contenido del curso.Bien, aqui va:Se inicia con algunos conceptos de computabilidad (el problema del alto,decidibilidad de propiedades de programas), calculo lambda.Luego usando como ejemplos dos lenguajes funcionales (Lisp primero y MLdespues) se introducen conceptos como recoleccion de basura, diseniominimalista de un lenguaje (la propuesta de Lisp), algo de semanticadenotativa, interpretacion abstracta. Siempre comparando con lenguajesimperativos (como C).Luego se ve inferencia de tipos en ML, asignacion destructiva,manejo de la pila, funciones de orden superior, polimorfismo, excepcionesy continuaciones. Todo viene con un poquito de historia.(concurrencia se discute en los ejercicios, pero no alcanza el semestrepara llegar a esa parte, lamentablemente).La idea del curso es dar conceptos (ejemplificados con algunos lenguajes)de lenguajes de programacion, a diferencia de darles un tour por algunoslenguajes de programacion (C,Lisp,Prolog,Java, etc.).El objetivo es que conozcan los conceptos y no que aprendan a escribirprogramas sencillos en muchos lenguajes.Este curso alguien (John Mitchell) lo armo en Stanford y a mi me pareciomuy bueno, por eso lo adopte.Julio
rajsbaum
http://www.fciencias.unam.mx/~fhq/espanol.html
Page 18: Presentación del Área de Teoría de la Computación en la UNAM Sergio Rajsbaum Instituto de Matemáticas, UNAM Enero 29, 2004.

Cursos (negritas este semestre)

• Teoría de la complejidad• Algoritmos y estructuras de datos• Teoría de la computación• Geometría computacional• Cómputo distribuido• Teoría de la información• Lenguajes formales y autómatas• Especificación formal• Programación lógica• Programación funcional

Teoría delcómputo

Teoría deprogramación

Page 19: Presentación del Área de Teoría de la Computación en la UNAM Sergio Rajsbaum Instituto de Matemáticas, UNAM Enero 29, 2004.

Cursos Relacionados (negritas este semestre, rojo otras partes de la UNAM)

• Matemáticas: – lógica, lógica borrosa, probabilidad, estadística,

categorías, teoría de gráficas, combinatoria, álgebra,…

• Procesamiento de señales:– Reconocimiento de patrones, proc. digital de

imágenes (2), proc. señales, sistemas adaptables

• Redes neuronales y sistemas adaptables (5)• Modelación matemática y cómp. científico (4)

Page 20: Presentación del Área de Teoría de la Computación en la UNAM Sergio Rajsbaum Instituto de Matemáticas, UNAM Enero 29, 2004.

Conclusiones

Page 21: Presentación del Área de Teoría de la Computación en la UNAM Sergio Rajsbaum Instituto de Matemáticas, UNAM Enero 29, 2004.

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

• Una formación más sólida, un computólogo más profesional

• Seguir adelante a un doctorado

• Dedicarse a la teoría de la computación en investigación y docencia

Page 22: Presentación del Área de Teoría de la Computación en la UNAM Sergio Rajsbaum Instituto de Matemáticas, UNAM Enero 29, 2004.

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

Page 23: Presentación del Área de Teoría de la Computación en la UNAM Sergio Rajsbaum Instituto de Matemáticas, UNAM Enero 29, 2004.

F I N

Gracias por su atención