Un millon de numeros aleatorios

informacion — EwS @ 12:28 am

RAND Corporation es un think tank dedicado a la investigación y analisis en materia de defensa, algo asi como las Faes -Falange Español- de vuestro querido Aznar pero “en serio”. Emplea a unas 1600 personas aqui en California entre las cuales ha habido “figuras” como Condy Ricce, Donald Rumsfeld, Paul Baran (creador del sistema de rutado de paquetes que aun se usa en Internet), Francis Tukuyama (un tio muy curioso del que hablare en otra ocasion, ya que tuve ocasion de verlo hace unos pocos dias), John Nash o Von Neumann. Pese a lo hiperfacha de su cartera de representantes y de ser uno de los pilares del pensamiento neocoservador cualquiera que tenga un minimo interes en matematicas y en teoria de juegos o redes habra babeado de placer al leer la alucinante colección de artículos y libros online que RAND ha puesto disponibles para decarga, entre los cuales personalmente destaco “Networks y Netwar” (especialmente los capitulos sobre hacktivismo y el movimiento zapatista), o cualquiera de los libros que han publicado sobre teoria de juegos. The Trap, el estupendisimo documental de Adam Curtis (el mismo que hizo la fabulosa The Power Of Nightmares) hizo en tres episodios para la BBC el pasado Marzo tiene una parte dedicada a como los analistas de Rand probaron secretamente las teorias de juego desarrolladas para modelar comportamientos ajenos en materia de politica exterior usando secretarias de la fundacion sin que estas lo supieran (y como estas secretarias, contrariamente a lo que se esperara, decidieron colaborar entre si). Suyas son muchas teorias sobre programación dinámica, programacion lineal, juegos de guerra, el desarrollo mismo de la tabla de windsurf , el modelo del puente de control la Enterprise en Star Trek y muchos de los desarrollos teóricos en los que se baso el desarrollo inicial de Internet. Pero pese a todo lo publicado desde su creación durante la segunda guerra mundial, su trabajo más vendido y referenciado de lejos es un libro que simplemente contiene páginas y páginas de dígitos aleatorios.

A Million Random Digits with 100,000 normal deviates” se empezó a escribir en 1947 y se terminó en 1955, siendo la primera tabla de números aleatorios creada por métodos mecánicos desde que Karl Pearson publicó la primera en 1927. El método que Rand usó para determinar la serie de números aleatorios fue usa una ruleta de casino conectada a un ordenador de la época cuyos resultados fueron filtrados y probados cuando presentaban resultados no conformes con las teorías de la probabilidad para evitar posibles cambios debidos a inclinaciones de la mesa o desgaste de los objetos usados. La ruleta fue “alimentada” así mismo de un generador aleatorio de pulsos ya que una máquina que diese siempre la misma fuerza de lanzamiento generaría por pura leyes de física resultados más que predecibles (por cierto nadie sabe a ciencia cierta que usaron para esto, aunque la sabiduría popular asegura que fué una fuente de radiación junto con un contador geiger para su análisis).  Fue el primer ebook también, ya que desde su publicación uno podia pedirlo en forma de tarjetas perforadas y hasta la actualidad, el libro ha sido usado para modelar y estudiar resultados de experimentos cientificos, comprobar la cantidad de información filtrada por algoritmos criptográficos o simulación de sistemas físicos o matemáticos (como en método monte carlo para calculo integral). El libro ha estado vigente hasta la actualidad en el 2001 hubo una nueva edición con prefacio del presidente de Rand, que puede descargarse en formato zip de poco mas de 300k desde la página de la fundación (sería curioso estudiar el ratio de compresión para un cuerpo totalmente aleatorio como este, por cierto….). Existen también variaciones de la obra y mirando por internet hay muchos investigadores que han generado sus propias tablas de un millón de dígitos aleatorios usando otros métodos (como el /dev/random detodalavida)  y comprobando la entropía contra el libro original, curisamente con quejas de Rand ya que segun ellos la propiedad intelectual de esos digitos les pertenece.

Generar numeros aleatorios con base mecanica (algo que no sea tirar un dado no trucado a mano) es una tarea extremadamente dificil ya que no hay metodo secuencial y determinista (o no determinista para el caso) que genere un numero totalmente aleatorio (por definicion, algo aleatorio no puede ser obtenido siguiendo regla alguna). Los sistemas que usamos en los ordenadores actuales se basan en una semilla de base aleatoria (mover el raton sin sentido mientras se realiza el calculo) a la cual se le aplican unas transformaciones fijas. El estado de esta semilla determina lo grande que será el número que obtendremos (tipicamente para una entrada n tendremos una salida 2^n). Este tipo de relación determina la seguridad del sistema ya que a partir del número límite, los algoritmos comienzan a dar la misma serie indefinidamente y aun dentro de la serie encontramos que los valores estan distribuidos de manera anomala. Ha habido hackeos de muchos sistemas de generacion pseudoaleatoria de números siendo la mas notoria el analisis de RANDU, uno de los algoritmos más usados durante decadas y que incluso viene explicado en el volumen 2 de The Art of Computer Programming (o el libro de cabecera de cualquier ingeniero de software) Aunque sin alarmismo, romper este tipo de algoritmos supone poder (en teoria) romper este tipo se secuencias supone partir las claves criptográficas que se hayan creado con las mismas y ya sabe uno que la debilidad de una cadena es igual a la del mas debil de sus eslabones… El mismo John Von Neuman ya avisó en 1951 que cualquiera que considerara generar números aleatorios de forma algoritmica estaba “en grave pecado”.

Ha habido varias formas creativas de general números aleatorios de forma totalmente automática, una de las más creativas fue un sistema de SGI (silicon graphics para los amigos) consistentes en una lampara de lava y una webcam apuntando a la misma que digitalizaba lo que veia y creaba secuencias a partir del contenido de la imágen, el generador aleatorio estaba en web (en una difunta direcciony en donde siempre). SGI tenian la fama de ser las oficinas mas chulas y coloridas de todo Silicon Valley, aunque desde 2003 esten subalquiladas a otra compañía también amante de las lamparas de lava que las rebautizo como Googleplex…. Quitando este sistema tan poco científico, una de las formas conocidas para generar numeros aleatorios es bajar hacia la fisica cuantica y observar fenomenos a ese nivel aumentados lo suficiente para que podamos tomar muestras desde el numero atomico. Hay dos fenómenos físicos que son interesantes por su comportamiento aleatorio, la fisica cuantica en si y el ruido térmico cuyo orígen es tambien cuántico. Varios ejemplos para conseguir medir aleatoriedad cuantica es usar (de nuevo) un medidor geiger hacia cualquier fuente de radioactividad (un detector de humo moderno, por ejemplo) o un foton viajando a traves de un espejo semi transparente que nos da 0 o 1 dependiendo si hay transmision o reflexion. Esos sistemas son extremadamente caros y limitados para centros de investigación y universidades Usando este último método hoy aparece la noticia en slashdot de la aparicion de un servicio de creación de bits aleatorios online con varios clientes para Matlab, C/C++ o en linea de comandos (todo sobre SSL para garantizar la confidencialidad del bit) que soluciona los problemas expuestos arriba. Esta página complementa a las mucho menos glamourosas y antiguas RandomNumers.info y Random.org que usan métodos tales como en analisis del ruido atmosfético para la generacion de tan preciados datos.

Links (ademas de los de arriba)

  • LavaRnd, un programa libre de uno de los creadores de LavaLamp para generar numeros aleatorios

2 Comments »

  1. Una entrada muy completa e interesante.
    Lo que más me sorprende de los números aleatorios es que se emplean para obtener números con nombre y apellidos, como Pi.

    Una de las técnicas más eficientes para obtener decimales de pi es dibujar una circunferencia inscrita en un cuadrado. Se van sacando números aleatorios dentro del cuadrado (pares de números) y en función de cuántos quedan dentro del círculo y cuántos fuera se puede establecer una proporción entre el área de la esfera y la del cuadrado.

    Este sistema es increíblemente eficaz y con pocos números aleatorios se obtiene muy pronto una aproximación excelente de los decimales de pi, casi la mejor de todas las posibles.

    Comment by marmolillo — July 20, 2007 @ 10:54 am
  2. 12 5203015

    Comment by sandra — May 2, 2008 @ 2:46 pm

RSS feed for comments on this post. TrackBack URI

Leave a comment

This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.