Métodos de generación de números pseudoaleatorios Introducción Se llama números pseudoaleatorios a una sucesión determinística de números en el intervalo [0,1] que tiene las mismas propiedades estadísticas que una sucesión de números aleatorios. Una forma general de obtener números pseudoaleatorios es partir de una semilla semill a de p números
y aplicar una función d de modo que
Por ejemplo, el fallido método del cuadrado medio es como sigue: se parte de un número de cuatro cifras y se eleva al cuadrado. De este número de ocho cifras que se obtiene, nos quedamos con las cuatro centrales y repetimos el pr oceso las veces que necesitemos. El problema de este método es que puede dar ciclos muy cortos (en cualquier caso, aspiramos a lo sumo a una longitud de diez mil):
A partir de aquí siempre se obtiene el valor cero. A la vista de este ejemplo, nos planteamos unas propiedades mínimas que deberán satisfacer los números pseudoaleatorios: y y
y y y y
y
y
Ajustarse a una distribución U (0,1). (0,1). Ser estadísticamente independientes independientes (no debe deducirse un número conociendo c onociendo otros ya generados). Ser reproducibles (la misma semilla debe dar la misma sucesión). Ciclo repetitivo muy largo. Facilidad de obtención. Ocupar poca memoria.
Métodos congruenciales Se define el siguiente método congruencial : congruencial : Se genera y
y
y
a partir de una semilla X 0, con
y y
y
y y
y
Entonces se toma y
y
y
Ejemplo: M=1000, a=7, c=501, X 0=0.
. . Y así sucesivamente. Si X i = X i+k por vez primera, entonces k se denomina período del generador. Si c=0 el método se dice multiplicativo. A continuación, enunciamos dos resultados relacionados con congruencias cuya demostración se omite. Condición necesaria para que un generador multiplicativo tenga un período de longitud M-1 es que M sea primo. Si M es primo, el período divide a M-1. En este caso, el período es M-1 si, y sólo si, y y
y
y y y
Sea . Un generador congruencial tiene período M si, y sólo si, se cumplen las tres condiciones siguientes: 1. mcd (c, M )=1. 2. factor primo de M.
y y
y y
y
3.
si M es múltiplo de 4. A continuación se presenta el generador implementado en los IBM 380 en 1970. Este método resultó tener un gran problema: hay quince planos paralelos en el cubo [0,1]3 que contienen todos los puntos que se obtienen tomando tres valores X i , X i +1, X i +2 cualesquiera. 3 Ejemplo: c=0, a=216+3, M =2 1 Los ci que se utilizan a continuación representan enteros. Su valor exacto se omite pues no tiene interés. X i+1=(216+3) X i + 231 c0 y
y
y
y y
y y
=(6 (216+3)-9) X i + 231 c4 = 6 (216+3) X i - 9 X i + 231 c4 = 6 X i+1 -9 X i + 231 c5
y
y
Así y
y
y
y
Como
ui, ui+1, y , enonces todas las ternas (ui,ui+1,ui+2) están concentradas en quince planos. Un generador recomendado es
. Es decir,
y
Otros
métodos de generación de números pseudoaleatorios Sean
,
dos sucesiones de números pseudoaleatorios, generados
congruencialmente, con respectivos p eríodos c1 y c2. La sucesión tiene período mcm(c1,c2). Sean U 1, U 2 variables aleotorias independientes con distribución U(0,1). La variable Z = frac(U 1+U 2) sigue también una distribución U(0,1). Demostración: Como U 1, U 2 son independientes, entonces la variable bidimensional (U 1,U 2 ) sigue una distribución uniforme en el cuadrado
Sean
.
La distribución marginal es
Por otra parte,
Así, para
, se tiene
Q.E.D. Generadores
binarios de cambio de registro Representemos por bi el bit i-ésimo.
Partiendo de una semilla una combinación lineal de los anteriores:
, se obtiene el bit i-ésimo a partir de
Los ciclos serán de longitud 2d -1 a lo sumo (suponiendo ad =1). Si se obtiene d veces consecutivas el valor 0, entonces el algoritmo degenera generando siempre este valor. Usualmente se procede como sigue: se toma p>q y se hace
El ciclo así generado tendrá una longitud de a lo sumo
p
2
-1 bits.
Si se quiere generar números pseudoaleatorios con precisión
- L
2
, se toma
Con
el fin de ahorrar esfuerzo de cálculo se suele tomar (método sugerido por Taustworthe)
donde t se denomina decimación. Así se tiene que el período máximo se alcanza cuando se cumple mcd (t ,2 p-1)=1. Los valores más habituales son
Numeros
Pseudoaleatorios
Un número pseudo-aleatorio es un número generado en un proceso que parece producir números al azar, pero no lo hace realmente. Las secuencias de números pseudoaleatorios no muestran ningún patrón o regularidad aparente desde un punto de vista estadístico, a pesar de haber sido generadas por un algoritmo completamente determinista, en el que las mismas condiciones iniciales producen siempre el mismo resultado. Los mecanismos de generación de números aleatorios que se utilizan en la mayoría de los sistemas informáticos son en realidad procesos pseudo-aleatorios. Una Sucesión de números pseudoaleatorios es una sucesión de números que ha sido obtenida mediante un proceso aritmético definido, pero que es una secuencia de números aleatorios efectiva para el propósito para el que se la requiere. Si bien una sucesión de números pseudoaleatorios parece generalmente no obedecer a ningún patrón o ley de formación, todo generador de números pseudoaleatorios con un estado interior finito, se repetirá luego de una larga sucesión de números. Es posible demostrar esto mediante el principio del palomar.