64
¿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?

Embed Size (px)

DESCRIPTION

¿ 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 histórica Ejemplos de problemas Lista y clasificación de temas. - PowerPoint PPT Presentation

Citation preview

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

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

Sergio RajsbaumInstituto de Matemáticas, UNAM

rajsbaum
Preparada para el Coloquio del IMate de Febrero 10, 2004 a las 12:00
Page 2: ¿ Que es la Teoría de la Computació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

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

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

Los cimientos del edificio

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

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.

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

La Teoría de la Computación Pretende

Entender

Estudiando modelos matemáticos relacionados al cómputo

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

¿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?

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

10o Problema de Hilbert(Paris, 1900)

un método mediante el cual se puede determinar en un número finito de operaciones”

“diseñar

si un polinomio tiene unaraíz entera

Sergio Rajsbaum
http://babbage.clarku.edu/~djoyce/hilbert/
Sergio Rajsbaum
Traduccion literal del aleman, del libro de Sipser
Page 8: ¿ Que es la Teoría de la Computación?

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áticosde 1900 con su noción intuitiva de algoritmo …

Yuri Matijasevic

Sergio Rajsbaum
http://logic.pdmi.ras.ru/Hilbert10/Yuri Matiyasevich home page:http://logic.pdmi.ras.ru/~yumat/index.html
Page 9: ¿ Que es la Teoría de la Computación?

Alan Turing

En 1936 con la Máquina de Turingformalizó 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…

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

Máquina de Turing

Inicialmente:– en el estado q0

– 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.)

q

0 01 22

entrada

control finitofunción de transición δ

q0 =

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

Máquina de Turing

Formalmente, no es mas que un conjuntode quintupletas que describen la funciónde transición δ

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

¡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

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

Tesis de Church-Turing

Noción intuitivade algoritmo

= Máquina de Turing

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

Máquina de Turing Universal

q0

0 01 22

Descripción de M

Simula a una Máquina de Turing M

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

Máquina de Turing Universal

Feynman’sLectures on Computation

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

El Problema de la Detención no es computable

La idea:

¿ Qué pasa si a una M le damos como entradaa ella misma ?!

• No es mas que una diagonalización a la Cantor

Dada una M y una entrada w, M se detiene con entrada w?

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

Reducciones

P1 ≤ P2

• Problema P2 es al menos tan difícil como P1

• si P1 se puede resolver con P2 como oráculo

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

≤ induce clases de equivalencia

Problema de ladetención

Problemasequivalentesa este

Jerarquíainfinita deproblemasno computables

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

El mundo de los problemas computables

1900 … 1936 … 1965

noción formalde cómputo ?

Máquina deTuring

complejidad

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

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

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

Clases de ComplejidadTiempo o Espacio

Jerarquíainfinita deproblemascomputables

Utilizando reducciones

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

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

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

Razón de crecimiento de funciones típicas 10 20 30 50 60

n .00001 .00002 .00003 .00005 .00006n2 .0001 .0004 .0009 .0025 .0036n3 .001 .008 .027 .125 .2162n .001 1.0 17.9 m 35.7 d 366 s3n .059 58 m 6.5 a 2*108 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)

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

El Mundo de la Computación

Jerarquíainfinita deproblemasno computables

Jerarquíainfinita deproblemascomputables

polinomiales

clase P

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

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

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

¿ P = NP ?

EXP

NP

P

Una de las 7 preguntasdel Premio del Milenio del Clay Mathematics Institutecon $1,000,000

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

EXP

NP

P

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

NP-completos

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

El 1er problema NP-completo

Stephen Cook, TorontoProbado en 1971

Leonid Levin, BUProbado en 1973

SAT:Si un predicado booleano se puede satisfacer

)()()( 43132141 xxxxxxxx ∨∨¬∧¬∨¬∨∧∨

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

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

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

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

• Isomorfismo de gráficas • Primalidad• Programación lineal

EXP

NP

P

NP-completos

?

P ≠ NP =>num. ∞ de clases, inclusivealgunas no comparables entre si

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

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

Narendra KarmarkarNitin Saxena Neeraj KayalManinda Agarwal(der a izq)

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

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

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

Ejemplos clásicosP 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(preserva conectividad entre todo u,v)

Subgráfica equivalente 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

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

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

Pero volvamos a nuestra pregunta original

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

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– Y el objeto del cómputo, la

información

Teoría de la Computación

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

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 37: ¿ Que es la Teoría de la Computación?

II. Teoría del Cómputo

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

natural, artificial, o imaginario

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

• ¿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 01010101010101010 vs. 00101111000101100

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

Entender mejor el mundo, desde nuestra

perspectiva de computólogos

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

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 41: ¿ Que es la Teoría de la Computación?

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 42: ¿ Que es la Teoría de la Computación?

Y mas Ejemplos:

• Pruebas holográficas– Forma en la cual 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 log2 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

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

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

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

Computación Distribuida

Ejecuciones

Las ejecuciones de un algoritmo distribuido preservanLa topología de las entradas posibles, dependiendo del nivel de tolerancia a fallas del sistema

Entradas

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

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

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

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 47: ¿ Que es la Teoría de la Computación?

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
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.
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.
Page 48: ¿ Que es la Teoría de la Computación?

• 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

Referencias

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

• 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

Libros

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

Conclusiones

• De una Máquina de Turing a muchas

• ¿Para que la Teoría de la Computación ?

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

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

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

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

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

Gottfried LeibnizLeipzig, 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

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

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

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

El Entusiasmo del sueño de la comunicación

• Por 1era 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

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

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

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

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”

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

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

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

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

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

• Problemas matemáticos interesantes• Mejorar aplicaciones

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

When you want to build a ship,then do not drum the men togetherin order to procure wood,to give instructions or to distribute the workbut teach them longing for the wide endless

sea.A. de Saint-Exupéry

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

Para qué estudiarTeorí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 …

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

Autoexamen de Conciencia (lenguajes)

¿Hay cosas programables en unos lenguajes pero no en otros?

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

Autoexamen de Conciencia (computadoras)

¿Hay cosas que unas computadoras pueden hacer pero no otras?

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

F I N

Gracias por su atención