Está en la página 1de 15

Para generar una simulacin se requiere

numeros aleatorios en el intervalo de [0,1]


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


Una de estas funciones es:


Si comenzamos con xo

= 5, los primeros 32
nmeros generados son: 10, 3, 0, 1, 6, 15, 12,
13, 2, 11, 8, 9, 14, 7, 4, 5, 10, 3, 0, 1, 6, 15, 12,
13, 2, 11, 8, 9, 14, 7, 4, 5
Propiedades deseadas de buenos
generadores
Los nmeros generados: 10, 3, 0, 1, 6, 15, 12,
13, 2, 11, 8, 9, 14, 7, 4, 5, 10, 3, 0, 1, 6, 15,
12, 13, 2, 11, 8, 9, 14, 7, 4, 5

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

Xo=6
X1=(13*6 +7)mod 8 = 5 r1=5/7=0.714
X2=(13*5 +7)mod 8 = 0 r2=0/7=0.000
X3=(13*0 +7)mod 8 = 7 r3=7/7=1.000
X4=(13*7 +7)mod 8 = 2 r4=2/7=0.285
X5=(13*2 +7)mod 8 = 1 r5=1/7=0.142
X6=(13*1 +7)mod 8 = 4 r6=4/7=0.571
X7=(13*4 +7)mod 8 = 3 r7=3/7=0.428
X8=(13*3 +7)mod 8 = 6 r8=6/7=0.857

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)