GENERALIDADES
DE LOS NÚMEROS PSEUDO ALEATORIOS
- Algoritmo de cuadrados medios
Este algoritmo no
congruencial fue propuesto en la década de los cuarenta del siglo XX por Von
Neumann y Metrópolis. Requiere un número entero detonador con D dígitos, el
cual es elevado al cuadrado para seleccionar del resultado los D dígitos del
centro; el primer número se determina simplemente anteponiendo el “0.” a esos
dígitos. Para obtener el segundo número se sigue el mismo procedimiento, solo
que ahora se eleva al cuadrado los D dígitos del centro que se seleccionaron
para obtener el primer número.
Este método se repite
hasta obtener n números. A continuación se presentan con más detalle los pasos
para generar números con el algoritmo de cuadrados medios.
1. Seleccionar la
semilla ( ) X0 con D dígitos (D > 3).
2. Sea Y0= resultado de
elevar X0 al cuadrado; sea X1 = los D dígitos del centro y sea r1 = 0.D dígitos
del centro.
3. Sea Yi = resultado de
elevar Xi al cuadrado; sea Xi+1 = los D dígitos del centro y sea ri+1 = 0.D
dígitos del centro para toda i =1, 2, 3,..., n.
4. Repetir el paso 3
hasta obtener los n números ir deseados.
- Algoritmo de productos medios
El algoritmo de
productos medios requiere dos semillas, ambas con D dígitos; además, las
semillas se multiplican y del producto se seleccionan los D dígitos del centro,
los cuales formarán el primer número pseudo aleatorio ri = 0.D. Después se
elimina una semilla y la otra se multiplica por el primer número de D dígitos,
para luego seleccionar del producto los D dígitos que conformarán un segundo
número ir.
Entonces se elimina la
segunda semilla y se multiplican el primer número de D dígitos por el segundo
número de D dígitos; del producto se obtiene el tercer número ir. Siempre se
irá eliminando el número más antiguo, y el procedimiento se repetirá hasta
generar los n números pseudo aleatorios. A continuación se presentan con más
detalle los pasos del método para generar números con el algoritmo de productos
medios.
1. Seleccionar una
semilla ( ) X0 con D dígitos.
2. Seleccionar una
semilla ( ) X1 con D dígitos.
3. Sea Y0 = X0 * X; sea
X2 = los D dígitos del centro y sea r1 = 0.D dígitos del centro.
4. Sea Yi = Xi Xi+1: sea
Xi+2 = los D dígitos del centro y sea ri+1 = 0.D dígitos del centro para toda i
=1, 2, 3,..., n.
5. Repetir el paso 4
hasta obtener los n números ir deseados.
- Algoritmo de multiplicador constante
Este algoritmo no
congruencial es similar al algoritmo de productos medios. Los siguientes son
los pasos necesarios para generar números pseudo aleatorios con el algoritmo de
multiplicador constante.
1. Selecciona una
semilla ( ) X0 con D dígitos (D > 3).
2. Seleccionar una
constante (a) con D dígitos (D > 3).
3. Sea Y0 = a*X0; sea X1
= los D dígitos del centro y sea r1 = 0.D dígitos del centro.
4. Sea Yi = a*Xi; sea
Xi+1 = los D dígitos del centro y sea ri+1 = 0.D dígitos del centro para toda i
=1, 2, 3,..., n.
5. Repetir el paso 4
hasta obtener los n números ir deseados.
- Algoritmo Lineal
El
algoritmo congruencial lineal genera una secuencia de números enteros por medio
de la siguiente ecuación recursiva:
Xi+1
= (a Xi + c) mod (m)
Con
i =1, 2, 3,..., n
Donde X0 es la semilla, a es la
constante multiplicativa, c es una constante aditiva y m es el módulo: X0 >
0, a > 0, c > 0 y m > 0 deben ser números enteros. La operación “mod
m” significa multiplicar Xi por a, sumar c y dividir el resultado entre m para
obtener el residuo Xi+1. Es importante señalar que la ecuación recursiva del
algoritmo congruencial lineal genera una secuencia de números enteros y que
para obtener números pseudo aleatorios en el intervalo (0, 1) se requiere de la
siguiente ecuación:
Ri
= Xi / m-1
Con
i =1, 2, 3,..., n
Para
que el algoritmo sea capaz de lograr el máximo período de vida n, es preciso
que los parámetros X0, a, y m cumplan con ciertas condiciones. Banks, Carson,
Nelson y Nicol sugieren lo siguiente: m debe ser múltiplo de g 2, donde g debe
ser entero, a =1+ 4k, donde k debe ser entero y c debe ser relativamente primo
a m. Bajo estas condiciones se obtiene un período de vida máximo: g N = m = 2.
- Algoritmo congruencial multiplicativo
El
algoritmo congruencial multiplicativo surge del algoritmo lineal cuando c = 0.
Entonces la ecuación recursiva es:
Xi+1
= (a Xi + c) mod (m)
Con
i = 0,1, 2, 3,..., n.
En comparación con el algoritmo
congruencial lineal, la ventaja del algoritmo multiplicativo es que implica una
operación menos a realizar. Los parámetros de arranque de este algoritmo son
X0, a y m, los cuales deben ser enteros y mayores que cero. Para transformar
los números Xi en el intervalo (0, 1) se usa la ecuación:
Ri
= Xi / m-1
Con
i = 0,1, 2, 3,..., n.
Las condiciones que deben cumplir los
parámetros para que el algoritmo congruencial multiplicativo alcance su máximo
período son:
m debe ser múltiplo de g 2, donde g
debe ser entero, a = 3+8k , donde k = 0,1, 2, 3,... , X0 debe ser un número
impar. Bajo estas condiciones se logra un período de vida máximo: 2 /4 2 − = =
g N k.
- Algoritmo Congruencial aditivo
Este algoritmo requiere una secuencia
previa de n números aleatorios X X X X Xn , , , ,... 1 2 3 4 para generar una
secuencia de números enteros que empiezan en , , , ,... Xn+1 Xn+2 Xn+3 Xn+4 Su
ecuación recursiva es:
Xi
= (X i-1 + X i+1)
mod (m)
Con i = n+1, n+ 2, n+ 3,..., N
Ri
= Xi / m-1
- Algoritmo congruencial cuadrático.
Xi+1 = (a Xi2 + b X i + c) mod (m)
Con i = 0,1, 2, 3,..., n.
En este caso, los
números ir pueden ser generados por la ecuación:
Ri
= Xi / m-1
Me parecen muy completas tu publicaciones, muy bien Ing
ResponderEliminarMUY COMPLETOS Y BUENOS LOS APUNTES
ResponderEliminar