Generador de números pseudoaleatorios


Un generador de números pseudoaleatorios ( PRNG ), también conocido como generador de bits aleatorios deterministas ( DRBG ), [1] es un algoritmo para generar una secuencia de números cuyas propiedades se aproximan a las propiedades de las secuencias de números aleatorios . La secuencia generada por PRNG no es verdaderamente aleatoria , porque está completamente determinada por un valor inicial, llamado semilla de PRNG (que puede incluir valores verdaderamente aleatorios). Aunque las secuencias que están más cerca de ser verdaderamente aleatorias pueden generarse utilizando generadores de números aleatorios de hardware , pseudoaleatoriosLos generadores de números son importantes en la práctica por su velocidad en la generación de números y su reproducibilidad. [2]

Los PRNG son fundamentales en aplicaciones como simulaciones (p. ej., para el método Monte Carlo ), juegos electrónicos (p. ej., para la generación de procedimientos ) y criptografía . Las aplicaciones criptográficas requieren que la salida no sea predecible a partir de salidas anteriores, y se necesitan algoritmos más elaborados , que no heredan la linealidad de los PRNG más simples.

Las buenas propiedades estadísticas son un requisito central para la salida de un PRNG. En general, se requiere un análisis matemático cuidadoso para tener la certeza de que un PRNG genera números lo suficientemente cercanos a la aleatoriedad para adaptarse al uso previsto. John von Neumann advirtió sobre la mala interpretación de un PRNG como un generador verdaderamente aleatorio y bromeó diciendo que "cualquiera que considere métodos aritméticos para producir dígitos aleatorios está, por supuesto, en un estado de pecado". [3]

En la práctica, la salida de muchos PRNG comunes exhibe artefactos que hacen que no pasen las pruebas estadísticas de detección de patrones. Éstos incluyen:

Los defectos exhibidos por los PRNG defectuosos van desde imperceptibles (y desconocidos) hasta muy obvios. Un ejemplo fue el algoritmo de números aleatorios RANDU utilizado durante décadas en las computadoras centrales . Tenía serias fallas, pero su inadecuación pasó desapercibida durante mucho tiempo.

En muchos campos, el trabajo de investigación anterior al siglo XXI que se basaba en la selección aleatoria o en simulaciones de Monte Carlo , o de otras formas en los PRNG, era mucho menos confiable que lo ideal como resultado del uso de PRNG de mala calidad. [4] Incluso hoy en día, a veces se requiere precaución, como lo ilustra la siguiente advertencia en la Enciclopedia Internacional de Ciencias Estadísticas (2010). [5]