La teoría de la involución

El siguiente gráfico (avistado en el interesante blog Pictures of Numbers) muestra los resultados de una encuesta realizada en 2005 sobre la aceptación de la teoría de la evolución en varios países.


Tertulias

Acabo de añadir a Entropía un chat o tablón mensajes (basado en Shoutmix) por si a alguien le apetece dejar comentarios o intercambiar opiniones en directo con otros lectores del blog. Podéis encontrar un enlace en el menú superior de la pantalla.


Nerd Valentine


Diseñando el azar

Cualquiera que considere métodos aritméticos para producir dígitos aleatorios está, por supuesto, en estado de pecado.(John von Neumann)

¿Qué tiene de especial el siguiente número?

6065038420

Antes de que acudáis al todopoderoso Google en busca de la respuesta, os pediría que continuarais la lectura de este artículo, pues al final se aclarará el pequeño misterio.

Aleatoriedad aparente

En realidad, la cuestión que quiero tratar también podría plantearse de otra forma: ¿cuál de las siguientes secuencias de ceros y unos creéis que es más aleatoria?

A) 10011101101010100111010011101100011011101001101010

B) 10110101101011010110101101011010110101101011010110

C) 11111111111111111111111111111111111111111111111111

La inmediata intuición nos llevaría a juzgar que la primera es algo más aleatoria que la segunda, que a su vez es claramente más aleatoria que la tercera. Pero... ¿es realmente así?

Imaginemos que cada una de estas secuencias de 50 dígitos está asociada al resultado de lanzar una moneda al aire otras tantas veces, anotando un 0 cuando sale cara y un 1 cuando sale cruz, por ejemplo. En tal caso, nos es fácil intuir lo difícil que es obtener siempre cruz al lanzar 50 veces una moneda al aire.

Pero resulta que, como ya reconoció Andrey Kolmogorov en la década de 1930, es igual de difícil obtener exactamente la secuencia de caras y cruces representada por la serie A o por la serie B. Los tres posibles sucesos son equiprobables (concretamente, con una probabilidad de ocurrencia de 1 entre 250).

Probabilísticamente, por tanto, las series son igual de aleatorias, pero sugestivamente apreciamos más azar en la secuencia A que en la C; entre otras cosas porque esta última se corresponde con la mínima entropía posible.

Aleatoriedad computacional

Consciente de esta aparente paradoja, el propio Kolmogorov introdujo hacia 1965 un nuevo concepto de aleatoriedad desde el punto de vista de la complejidad computacional.

De forma resumida, lo que vino a decir es que una secuencia de ceros y unos es más aleatoria conforme el mínimo programa de computadora que produce la secuencia (es decir: la descripción formal de la misma) se hace más largo y complejo. Según este concepto, podríamos definir (o "programar" en pseudocódigo) las tres series de nuestro ejemplo de la siguiente manera:

A) Repetir una vez la cadena "10011101101010100111010011101100011011101001101010"

B) Repetir cinco veces la cadena "10110"

C) Repetir cincuenta veces la cadena "1"

Si las analizamos en orden inverso, comprobamos que la definición C es trivial, porque sólo hemos de copiar el mismo valor para todos los dígitos de la serie. En el caso B, la serie no es homogénea, pero hemos reconocido un patrón repetitivo de 5 dígitos. Por último, para definir la secuencia A no nos ha quedado más remedio que usar la propia serie entera (hardcodearla, en términos informáticos), sin encontrar ninguna otra definición corta y sencilla capaz de reproducirla. Como ésta, toda otra secuencia "autodescriptiva", cuya definición más simple posible sea ella misma, se considera puramente aleatoria en el sentido computacional de Kolmogorov.

El azar y el tiempo

Muchos de los procesos y consecuencias para los que se estudian y aplican las teorías del azar tienen implicaciones y dependencias fuertemente temporales, como en el ejemplo de un preso al que se le promete la libertad cuando consiga obtener 100 cruces seguidas lanzando una moneda al aire. Aunque la teoría garantiza que eventualmente terminaría saliendo de la cárcel, en la práctica, la limitación temporal le obligaría a invertir varios billones de años en el intento, aún siendo el más ágil e impenitente lanzador de monedas.

Así pues, el azar debe su existencia al tiempo. En cualquier interpretación probabilística, el tiempo juega un papel importante y, además, los eventos raros son causa de sorpresa sólo si el tiempo es el adecuado. Un ejemplo cercano del efecto sugestivo del tiempo en la percepción de la probabilidad es el de valorar que a una persona sea agraciada en un sorteo de lotería más de una vez.

Dejando a un lado las acientíficas apreciaciones sobre la dicha o la fortuna, y salvo que se sea ex-concejal de Madrid o diputado de Castellón, lo razonable es suponer que todos los boletos de un sorteo parten con la misma probabilidad de ganar. Llamémosla p, por simplificar, asumiendo que tendrá un valor de 1 entre N (siendo N la diversidad de números o papeletas emitidas). Antes de ningún sorteo, la probabilidad de ser premiado dos veces será de p × p = . Pero si ya hemos sido afortunados en algún sorteo, entonces una de las probabilidades futura se transforma en probabilidad pasada e igual a 1, por lo que las posibilidades de recibir un nuevo premio se igualan a las del resto de participantes. Es el efecto del antes y el después sobre el azar.

Generadores aleatorios

Todas estas vueltas desembocan en la cuestión original, que a su vez tiene que ver con la pregunta de si es posible generar números verdaderamente aleatorios mediante un algoritmo diseñado a tal efecto.

En un clásico —aunque algo anticuado— estudio de 1981, Donald Knuth exponía un ingenuo intento de construir un generador de números aleatorios basado en una oscura maraña de subrutinas. La inescrutabilidad del algoritmo, supuso Knuth, sería la fuente necesaria de azar... Pero se equivocaba. Su algoritmo tomó una semilla particular (un valor inicial para alimentar el programa) y por alguna extraña convergencia el generador acabó repitiéndola hasta la saciedad. La semilla era precisamente 6065038420.

Ante tales resultados, Knuth concluyó que: "La moraleja de esta historia es que los números aleatorios no deben ser generados con un método elegido al azar. Debe usarse alguna teoría". La generación de aleatoriedad, por tanto, involucra pensamiento y diseño.

En la informática práctica actual, el enfoque sobre el azar es fundamentalmente probabilístico, y para ello se han desarrollado diversos métodos y algoritmos que recurren a ciertas técnicas como el álgebra lineal de congruencias (esa misma que justifica muchos de esos trucos matemáticos infantiles que te adivinan la edad o el año de nacimiento). Los números obtenidos, no obstante, no son puramente casuales, sino pseudo-aleatorios, lo que no les resta utilidad en buena parte de los usos prácticos.

Como la aleatoriedad está también relacionada con campos como la criptografía, en ocasiones sí puede ser importante o deseable garantizar el azar real. Actualmente existen generadores de verdaderos números aleatorios que insuflan en sus mecanismos el azar tomándolo prestado de procesos externos naturales como el ruido atmosférico o la física cuántica.

Después de todo, parece que ni el azar es puro azar, y que la cosa no es tan sencilla como el jocoso código de la función de cierto chiste popular entre el gremio informático, que apareció reflejada en xkcd:

Si alguien está interesado en el tema, le recomiendo la lectura del paper "Aleatoriedad por Diseño", de William_A._Dembski (al que, por esta vez, perdonaremos sus teorías sobre el diseño inteligente). En él se debate en mayor profundidad el concepto y los paradigmas del azar desde el punto de vista estadístico, informático y filosófico.


Estadísticamente hablando

Si metes los pies en la nevera y la cabeza en el horno, tu cuerpo estará a una temperatura media idónea.(Al hilo de este otro corolario)