Generacin de nmeros pseudo aleatorios Propiedades deseadas de buenos generadores El mtodo ms comn es generar el siguiente nmero a partir de los ltimos nmeros generados
Algoritmos de cuadrados medios Propuesto por Von Neumann y Metropolis. 1. Seleccionar una semilla (Xo) con D dgitos (D>3) 2. Sea Yo= resultado de elevar Xo al cuadrado, sea X1= los D dgitos del centro, y sea ri=0.D dgitos del centro. 3. Sea Yi=resultado de elevar Xi al cuadrado; sea Xi+1=los D dgitos del centro, y sea ri=0.D dgitos del centro para toda i=1,2,3,n. 4. Repetir el paso 3 hasta obtener los n nmeros ri, deseados.
Ejemplo: Generar los primeros 5 nmeros ri, a partir de una semilla Xo=6736, de donde se puede observar que D=4 dgitos
Algoritmos de productos medios 1. Seleccionar una semilla (Xo) con D dgitos (D>3) 2. Seleccionar una semilla (X1) con D dgitos (D>3) 3. Sea Yo= Xo * X1, sea X2= los D dgitos del centro, y sea r1=0.D dgitos del centro. 4. Sea Yi= Xi * Xi+1; sea Xi+2=los D dgitos del centro, y sea ri+1 = 0.D dgitos del centro para toda i=1,2,3,n. 5. Repetir el paso 4 hasta obtener los n nmeros ri, deseados.
Ejemplo: Generar los primeros 5 nmeros ri, a partir de una semilla Xo=5015 y X1=5734; observe que ambas semillas tienen D=4 dgitos.
Algoritmo de multiplicador constante 1. Seleccionar una semilla (Xo) con D dgitos (D>3) 2. Seleccionar una constante (a) con D dgitos (D>3) 3. Sea Yo= a * X0, sea X1= los D dgitos del centro, y sea r1=0.D dgitos del centro. 4. Sea Yi= a *Xi; sea Xi+1 = los D dgitos del centro, y sea ri+1 = 0.D dgitos del centro para toda i=1,2,3,n. 5. Repetir el paso 4 hasta obtener los n nmeros ri, deseados.
Ejemplo: Generar los primeros 5 nmeros ri, a partir de una semilla Xo = 9803 y con la constante a = 6915. Algoritmo lineal Algoritmo congruencial propuesto por D.H. Lehmer en 1951. Xi+1=(aXi + c) mod (m) i=0,1,2,3,.,n. ri = Xi+1 / (m-1) i = 1,2,3,,n.
Ejemplo: Generar 5 nmeros entre 0 y 1 con los siguientes parmetros: Xo=37, a=19, c=33 y m=100.
Donde: Xo= semilla a= constante multiplicativa c= constante aditiva m = modulo Algoritmo lineal Para lograr un mximo periodo de vida n. Banks,Carson, Nelson y Nicol sugiere: m=2^g a = 1+4k Donde: k y g debe ser entero C relativamente primo a m. Bajo estas condiciones el periodo de vida mximo: N = m = 2^g
Ejemplo: Generar nmeros entre 0 y 1 con los parmetros Xo=6, k=3, g=3 y c=7, hasta encontrar el periodo mximo (N) a= 1+4(3)=13 y m = 2^3=8 Algoritmo lineal a= 1+4(3)=13 y m=2^3=8
Xi+1=(a *Xi + c)mod(m) i=0,1,2,3,.,n. ri=Xi/m-1 i=0,1,2,3,,n. Algoritmo congruencial multiplicativo Surge del algoritmo congruencial lineal cuando c=0. entonces la ecuacin recursiva es: Xi+1=(aXi) mod (m) i=0,1,2,3,.,n. ri=Xi/(m-1) De acuerdo con Banks,Carson, Nelson y Nicol sugieren lo siguiente: m = 2^g a = 3+8k a=5+8k
A partir de estas condiciones se logra un periodo de vida mximo N = m/4 = 2^(g-2)
K=0,1,2,3,. Xo debe ser impar g debe ser entero Algoritmo congruencial multiplicativo Ejemplo: Generar los suficientes nmeros entre 0 y 1 con los siguientes parmetros: Xo=17, k=2 y g=5, hasta encontrar el periodo o ciclo de vida.
Xi+1=(aXi)mod(m) i=0,1,2,3,.,n. ri=Xi/(m-1) N=m/4=2^(g-2) m=2^g a = 3+8k a=5+8k Algoritmo congruencial aditivo Este algoritmo requiere una secuencia previa de n nmeros enteros X1, X2,,Xn para generar una nueva secuencia de nmeros enteros que empieza en Xn+1, Xn+2,..
Su ecuacin recursiva es: Xi=(Xi-1 + Xi-n) mod (m) i=n+1, n+2, n+3,., N Los nmeros ri = Xi / (m-1) Algoritmo congruencial aditivo Ejemplo: Generar 7 nmeros pseudo aleatorios entre cero y uno a partir de la siguiente secuencia de nmeros enteros: 65, 89, 98, 03, 69. m=100 Xi=(Xi-1 + Xi-n) mod (m) i=n+1, n+2, n+3,., N Algoritmo congruencial cuadrtico
Xi+1=(a*(Xi)^2 + b*Xi +c) mod (m) i=0,1,2,,N ri=Xi/(m-1) De acuerdo con LEcuyer las condiciones que debe cumplir los parmetros m,a,b y c para alcanzar un periodo mximo de N=m son: m=2^g
Donde: a= debe ser numero par c= debe ser numero impar g debe ser entero (b-1)mod 4 = 1 Algoritmo congruencial cuadratico
Ejemplo: Generar, a partir del algoritmo congruencial cuadrtico, suficientes nmeros enteros hasta alcanzar el periodo de vida, considerando los parmetros Xo=13, m=8, a=26, b=27 y c=27 Xi+1=(a*(Xi)^2 + b*Xi +c) mod(m) i=0,1,2,,N ri=Xi/(m-1)