Documente Academic
Documente Profesional
Documente Cultură
Santiago Figueira
Universidad de Buenos Aires Facultad de Ciencias Exactas y Naturales Departamento de Computaci on
Primera parte
Computabilidad
Historia de la Computabilidad
David Hilbert, 1900: Ac a les dejo 23 problemas. Es la matem atica completa? Es decir, puede ser demostrada o refutada cualquier sentencia matem atica? y es la matem atica consistente? Adem as, son las matem aticas decidibles?
Historia de la Computabilidad
David Hilbert, 1900: Ac a les dejo 23 problemas. Es la matem atica completa? Es decir, puede ser demostrada o refutada cualquier sentencia matem atica? y es la matem atica consistente? Adem as, son las matem aticas decidibles? Kurt G odel, 1931: Cualquier sistema formal sucientemente potente es inconsistente o incompleto. Adem as, si un sistema de axiomas es consistente, esta consistencia no puede demostrarse dentro del sistema formal.
Historia de la Computabilidad
David Hilbert, 1900: Ac a les dejo 23 problemas. Es la matem atica completa? Es decir, puede ser demostrada o refutada cualquier sentencia matem atica? y es la matem atica consistente? Adem as, son las matem aticas decidibles? Kurt G odel, 1931: Cualquier sistema formal sucientemente potente es inconsistente o incompleto. Adem as, si un sistema de axiomas es consistente, esta consistencia no puede demostrarse dentro del sistema formal.
Alan Turing, 1936: Hola, yo soy Alan. Constru un modelo formal de c omputo, la M aquina de Turing, y demostr e que hay problemas que esta m aquina no puede resolver.
Alan Turing, 1936: Hola, yo soy Alan. Constru un modelo formal de c omputo, la M aquina de Turing, y demostr e que hay problemas que esta m aquina no puede resolver. Alonzo Church, 1936: Yo hice lo mismo pero por un camino totalmente distinto. Me bas e en una notaci on formal, que denomin e c alculo lambda.
Alan Turing, 1936: Hola, yo soy Alan. Constru un modelo formal de c omputo, la M aquina de Turing, y demostr e que hay problemas que esta m aquina no puede resolver. Alonzo Church, 1936: Yo hice lo mismo pero por un camino totalmente distinto. Me bas e en una notaci on formal, que denomin e c alculo lambda. Stephen Kleene: Formul e la noci on de funci on computable de otra manera. Estudi e los grados de computabilidad de los conjuntos, la jerarqu a aritm etica, etc. Emil Post: Trabaj e en conjuntos recursivamente enumerables, reducibilidades y grados de computabilidad, etc.
Las funciones primitivas recursivas coinciden con los programas que no usan while pero s pueden usar for:
funci on factorial(n) r := 1 for i:=1 to n r := r*i return r
Se puede denir cualquier funci on computable (total) usando programas for? O sea: cualquier funci on (total) que programemos en una computadora es una funci on primitiva recursiva?
La funci on de Ackermann
si m = 0 n + 1 A(m, n) = A(m 1, 1) si m > 0 y n = 0 A(m 1, A(m, n 1)) si m > 0 y n > 0
La funci on de Ackermann
si m = 0 n + 1 A(m, n) = A(m 1, 1) si m > 0 y n = 0 A(m 1, A(m, n 1)) si m > 0 y n > 0 Para valores chicos de m, como 1, 2, o 3, A crece relativamente lento con respecto a n (a lo sumo exponencialmente). Para m 4, crece m as r apido: A(4, 2) 2 1019728 A(4, 3) > cantidad de part culas del universo
La funci on de Ackermann
si m = 0 n + 1 A(m, n) = A(m 1, 1) si m > 0 y n = 0 A(m 1, A(m, n 1)) si m > 0 y n > 0 Para valores chicos de m, como 1, 2, o 3, A crece relativamente lento con respecto a n (a lo sumo exponencialmente). Para m 4, crece m as r apido: A(4, 2) 2 1019728 A(4, 3) > cantidad de part culas del universo h(n) = A(n, n) crece m as que la funci on exponencial, el factorial... h crece m as que cualquier funci on primitiva recursiva!
2 3 No es esencial:
mientras hace la cuenta est a tomando un caf e? escribe con l apiz o lapicera? importa el tama no del papel? Lo importante es que: hace marcas en un papel para saber qu e escribir en cada paso, le presta atenci on a lo que escribi o antes
En cada paso de la computaci on s olo un peque no n umero de s mbolos reciben atenci on (en el ejemplo, 2) La acci on que se toma en cada paso depende s olo de los s mbolos que est an recibiendo atenci on y del estado actual de quien est a haciendo el c alculo (en el ejemplo, la se norita est a en estado multiplicando o sumando)
Resultado b asico de Teor a de la Computabilidad: Son equivalentes: f es programable en alg un lenguaje de programaci on (Java, C, etc.) f es computable por una m aquina de Turing f es recursiva parcial (como primitivas recursivas pero con minimizaci on, no lo vimos) f es denible en -c alculo (esto no lo vimos)
Un conjunto A N es recursivamente enumerable (r.e.) cuando hay una funci on computable f tal que A = {f (n) : n N}
Un conjunto A N es recursivamente enumerable (r.e.) cuando hay una funci on computable f tal que A = {f (n) : n N} Cada programa tiene un n umero que lo identica. K = {e : el e - esimo programa evaluado en e termina} Es un conjunto r.e. pero no es computable. Este es el famoso halting problem: el problema de saber si un programa arbitrario termina no es computable.
Funciones computables
Un programa con or aculo para K es capaz de resolver el halting problem. Pero hay otros problemas que no se pueden resolver con la ayuda del or aculo K. Decimos B T C cuando podemos computar B con un or aculo para C . T se llama reducibilidad de Turing. Problema de Post: Hay un conjunto X r.e. tal que <T X <T K?
Segunda parte
Aleatoriedad
(despi ertense)
Aleatoriedad
Experimento: tirar una moneda 40 veces. Anotar 1 cara 0 ceca Cu ales de estas secuencias parecen la salida de este experimento?
Aleatoriedad
Experimento: tirar una moneda 40 veces. Anotar 1 cara 0 ceca Cu ales de estas secuencias parecen la salida de este experimento?
P (A) = P (B ) = P (C ) = 240
Aleatoriedad = igual probabilidad para el 0 que para el 1. Eliminamos la posibilidad A = 0000000000000000000000000000000000000000 pero la secuencia B = 1010101010101010101010101010101010101010 ser a aleatoria. Demasiado d ebil.
no nos llama tanto la atenci on. Posibles ataques a la noci on de ausencia de patrones. Hay muchos, nosotros vamos a ver dos: 1. relacionado con juegos de azar, como la ruleta 2. relacionado con la compresi on de datos
Martingalas
Supongamos una ruleta (sin el cero). Anotamos 0 rojo 1 negro Idea: una secuencia (innita) S no es aleatoria cuando hay formas de ganar en una ruleta en la que sale la secuencia de colores S . Es f acil ganar en una ruleta que va sacando los colores: A = 0000000000000000000000000000000000000000 . . . B = 1010101010101010101010101010101010101010 . . .
Esas secuencias no son aleatorias porque hay estrategias computables para apostar y ganar tanta plata como uno quiera.
Una secuencia S es aleatoria cuando no existe ninguna martingala computable de esas caracter sticas.
Paradoja de Berry
Los n umeros pueden ser descriptos con oraciones: 235 = doscientos treinta y cinco 1048576 = un mill on cuarenta y ocho mil quinientos setenta y seis; dos a la veinte 3628800 = tres millones seiscientos veintiocho mil ochocientos; factorial de diez Como en castellano hay una cantidad nita de palabras, tiene que haber una cantidad nita de oraciones de menos de 15 palabras. Algunas de estas describen n umeros y otras no. el menor n umero que no puede ser descripto con menos de quince palabras. Por denici on, no hay ninguna oraci on de menos de 15 palabras que lo describa. Pero la oraci on de arriba lo describe y tiene 13 palabras!
Incompresibilidad
Idea: las secuencias aleatorias son dif ciles de comprimir. La secuencia innita S es aleatoria cuando no hay programas cortos que describan a los prejos de S .
Es f acil comprimir segmentos iniciales de A y B . Lo u nico que se me ocurre para describir los primeros 10 y 20 bits de C es codicar return "1100010100" return "11000101001100110100" la informaci on textual adentro del programa:
Aleatorio = incompre(n)sible
Aleatorio = incompre(n)sible
Una secuencia S no es aleatoria cuando puedo comprimir mucho los prejos de S (por medio de programas).
Si sale negro, negro, negro, negro, ya perd $1 + $2 + $4 + $8 = $15 Apuesto $16 al rojo. Si sale rojo, gano $16. Como hab a perdido $15, mi ganancia es de $1. Entonces, cada vez que sale rojo tengo $1 m as.
Si sale negro, negro, negro, negro, ya perd $1 + $2 + $4 + $8 = $15 Apuesto $16 al rojo. Si sale rojo, gano $16. Como hab a perdido $15, mi ganancia es de $1. Entonces, cada vez que sale rojo tengo $1 m as. Les juro que esto funciona! (mi hermano lo hizo y con la plata que gan o se compr o una bicicleta) Por qu e no es una martingala de las que vimos antes?
Si sale negro, negro, negro, negro, ya perd $1 + $2 + $4 + $8 = $15 Apuesto $16 al rojo. Si sale rojo, gano $16. Como hab a perdido $15, mi ganancia es de $1. Entonces, cada vez que sale rojo tengo $1 m as. Les juro que esto funciona! (mi hermano lo hizo y con la plata que gan o se compr o una bicicleta) Por qu e no es una martingala de las que vimos antes? Porque no hay l mite en la cantidad de plata que puedo perder en el medio. No hay garant as de que no me quede seco en la mitad del juego (mi hermano tuvo suerte...).