Está en la página 1de 32

Simulacin de Sistemas Semestre 2008 -1

Simulacin de Sistemas

Generacin de Nmeros y Variables Aleatorias
Tomado de Ing. Eduardo Carbajal L.
Agenda
Generacin de nmeros y variables aleatorias
1. Generacin de Nmeros Aleatorios
2. Pruebas de aleatoriedad.
3. Variables aleatorias discretas: Bernoulli, Binomial, Poisson.
4. Variables aleatorias continuos: Exponencial, Triangular, Normal,
Chi Cuadrado, Weibull.
5. Pruebas de bondad de ajuste: Kolmogorov - Smirnov y Chi
cuadrado (_
2
)



Lecturas: Ross, Cap. 3, 4 y 5
Banks, Cap. 8 y 9
Law, Cap. 6
Son la herramienta para generar eventos de tipo probabilstico, se
emplean en modelos que tienen variables estocsticas. En estos
modelos emplearemos nmeros aleatorios uniformemente
distribuidos entre 0 y 1, a los cuales identificaremos como Ri.
Generacin de Nmeros Aleatorios
Nmeros Aleatorios
Ejemplo
Si se quiere simular un sistema de colas es necesario generar el tiempo entre llegadas
de los clientes y el tiempo de servicio. Dichas variables se obtiene a partir de
distribuciones de probabilidad especfica, que para generar/simular un nuevo valor de
la variable emplean nmeros aleatorios en su forma mas simple como input.
tiempo entre llegadas
tiempo de servicio
Exponencial con media 2 minutos
Normal con media de 3 minutos y desviacin
estndar de 0.8 minutos
R1 = 0.42
R2 = 0.25
Expo(2)
Norm(3,0.8)
V2 = 2.46
V1 = 0.78
El tiempo entre llegada es 0.78,
es decir el siguiente cliente
llegar dentro de 0.78 minutos
El tiempo de servicio es 2.46, es
decir el cliente terminar de ser
atendido dentro de 2.46 minutos
cola
servidor
Cundo llega el prximo cliente?
Cundo tiempo durar el servicio?
1. Tienen una distribucin uniforme con parmetros a= 0 y b =1.
Generacin de Nmeros Aleatorios
Caractersticas de los Nmeros Aleatorios
12
) (
) (
2
) (
,
1
) (
2
a b
x VAR
b a
x E
b x a
a b
x f

=
+
=
s s

=
Funcin de densidad:
media:
Distribucin Uniforme
varianza:
2. Estadsticamente independientes
3. Su periodo o ciclo de vida debe ser largo
Entonces como Ri es uniformemente distribuido entre 0 y 1:
media :
varianza :
(0 + 1) / 2 = 1/2
= 1/12 (1 - 0 ) / 12
R1, R2, R3, ., Ri Secuencia de nmeros aleatorios
Periodo o ciclo de vida R1, R2, R3, ., Rn = R1
n : Periodo o ciclo de vida, que equivale al nmero de veces
antes que el primer aleatorio de la secuencia se repita
4. Deben ser generados a travs de un mtodo rpido
Generacin de Nmeros Aleatorios
Caractersticas de los Nmeros Aleatorios
5. Deben ser generados a travs de un mtodo que no requiera
mucho uso de memoria ni almacenamiento.
Para cumplir con estas caractersticas el esquema de
generacin debera producir una secuencia de nmeros
entre uno y cero que simule o imite las propiedades ideales
de la distribucin uniforme y la independencia tan cerca
como sea posible.
Generacin de Nmeros Aleatorios
Errores posibles en la generacin de los Nmeros Aleatorios
Los nmeros generados no estn uniformemente
distribuidos.
Los nmeros generados son discretos en lugar de continuos.
La media de los nmeros generados es muy alta o baja.
La varianza de los nmeros generados es muy alta o baja.
Los nmeros generados exhiben variacin cclica (auto
correlacin entre los nmeros, nmeros sucesivos mucho ms
altos o bajos que el adyacente, varios nmeros sobre la media
seguidos de otros bajo la media).
Provisin Externa
Generacin de Nmeros Aleatorios
Formas de Generacin
Caractersticas
Es un mtodo de generacin rpido.
Es posible determinar una secuencia de
nmeros generada anteriormente.
Depende de una fuente externa que
contengan miles de nmeros
Produce nmeros pseudo aleatorios
Se emplean medios externos para obtener nmeros aleatorios
Generacin Fsica
Generacin de Nmeros Aleatorios
Formas de Generacin
Caractersticas
Es un mtodo de generacin lento.
Imposible reproducir una secuencia de nmeros generada anteriormente.
Podran producir nmeros realmente aleatorios
Se generan nmeros aleatorios empleando algn instrumento fsico
Generacin Matemtica
Generacin de Nmeros Aleatorios
Formas de Generacin
Se emplean algoritmos matemticos para crear relaciones de
recurrencia en la secuencia de nmeros generados
Caractersticas
Es un mtodo de generacin rpido.
Es posible determinar una secuencia de nmeros
generada anteriormente.
Produce nmeros pseudo aleatorios
Revisaremos algunos a continuacin
Mtodo del Medio Cuadrado (Mid Square Method)
Generacin de Nmeros Aleatorios
Formas de Generacin > Generacin Matemtica
En general entonces:
Se eleva al cuadrado el nmero X
i-1
y se extraen los k dgitos medios
para conformar X
i
. Se obtiene el R
i
dividiendo X
i
entre 10 elevado a la
k.
1. Escoger un nmero inicial (Xo) o semilla con k dgitos.
2. Se eleva al cuadrado dicho nmero y se obtiene uno (Xo) que como
mximo tendr 2k dgitos. Si el nmero no llega a 2k dgitos colocarle
ceros a la izquierda

3. Los k dgitos medios de Xo corresponden a X1 y se emplean para
definir el primer nmero aleatorio. Como el aleatorio por definicin debe
ser menor que 1, R1 es entonces X1, que tiene k dgitos, dividido entre
10 elevado a la k

Mtodo del Medio Cuadrado (Mid Square Method)
Generacin de Nmeros Aleatorios
Formas de Generacin > Generacin Matemtica
Ejemplo:
6375
0
=
X
40640625
2
0
=
X

0368 . 0 36 0368 41
2
2
1
2
= =
R
X
X
Semilla
Paso 1:
Tiene 4 dgitos. Por tanto k = 4
Paso 2:

6406 . 0 25 6406 40
1
2
0
1
= =
R
X
X
Tiene 8 dgitos. Por tanto cumple la condicin
de tener 2k dgitos, no es necesario agregar
ceros a la izquierda
Paso 3:
Repitiendo nuevamente los pasos se generaran los
siguientes nmeros pseudo aleatorios
Mtodo del Medio Cuadrado (Mid Square Method)
Generacin de Nmeros Aleatorios
Formas de Generacin > Generacin Matemtica
Caractersticas
Posiblemente el mtodo mas antiguo, propuesto por John
von Newmann.
Mtodo con pobres propiedades estadsticas.
La semilla debe ser escogida cuidadosamente.
Problema: Si en algn momento se obtiene un nmero de
k dgitos, los cuales generan al ser elevados al cuadrado,
un nmero donde los k dgitos medios son cero, la
secuencia de nmeros se degenera.
Mtodo del Medio Producto (Mid Product Method)
Generacin de Nmeros Aleatorios
Formas de Generacin > Generacin Matemtica
En general entonces:
Se multiplican los nmeros X
i-1
y X
i;
y se extraen los k dgitos medios
para formar X
i+1
. Se obtiene el R
i
dividiendo X
i
entre 10 elevado a la k.
1. Escoger dos nmeros iniciales (X'o y Xo) con k dgitos.
2. Se multiplican dichos nmeros y se extraen los k dgitos medios de la
multiplicacin. Los cuales forman el nmero X1. Si el nmero no llega a 2k
dgitos colocarle ceros a la izquierda

3. Como el aleatorio por definicin debe ser menor que 1, R1 es entonces X1,
que tiene k dgitos, dividido entre 10 elevado a la k Para generar el
siguiente aleatorio se repite el algoritmo multiplicando esta vez
Xo por X1

Mtodo del Medio Producto (Mid Product Method)
Generacin de Nmeros Aleatorios
Formas de Generacin > Generacin Matemtica
Ejemplo:
6375
0
=
X
Semilla
Paso 1: Tienen 4 dgitos. Por tanto k = 4
Paso 2:
Tiene 8 dgitos. Por tanto cumple la
condicin de tener 2k dgitos, no es
necesario agregar ceros a la izquierda
Paso 3:
Repitiendo nuevamente los pasos se generaran los
siguientes nmeros pseudo aleatorios
3721
'
0
=
X

8395 . 0 73 8395 26
2 1 0
2
= =
R
X
X X

75 7213 23
1
0
'
0
X
X X
=
Semilla
adicional

7213 . 0 75 7213 23
1 0
'
0
1
= =
R
X
X X
Mtodo del Medio Producto (Mid Product Method)
Generacin de Nmeros Aleatorios
Formas de Generacin > Generacin Matemtica
Caractersticas
Bastante similar al mtodo del Medio Cuadrado
Mtodo con pobres propiedades estadsticas.
La semilla debe ser escogida cuidadosamente.
Problema: Si en algn momento se obtiene un nmero de
k dgitos, los cuales generan al ser elevados al cuadrado,
un nmero donde los k dgitos medios son cero, la
secuencia de nmeros se degenera.
Tcnica de multiplicacin por una Constante (Constant
Multiplier Method)
Generacin de Nmeros Aleatorios
Formas de Generacin > Generacin Matemtica
En general entonces:
Se multiplica cada nmero X
i
por la constante C y se extraen los k dgitos medios
para formar X
i+1

1. Escoger dos nmeros iniciales: una semilla Xo con k dgito y una
constante C.
2. Se multiplican dichos nmeros y se extraen los k dgitos medios de la
multiplicacin. Los cuales forman el nmero X1. Si el nmero no llega a 2k
dgitos colocarle ceros a la izquierda

3. Como el aleatorio por definicin debe ser menor que 1, R1 es entonces X1,
que tiene k dgitos, dividido entre 10 elevado a la k Para generar el
siguiente aleatorio se repite el algoritmo multiplicando esta vez
X1 por C

Generacin de Nmeros Aleatorios
Formas de Generacin > Generacin Matemtica
Ejemplo:
6375
0
=
X
Semilla
Paso 1: La semilla tiene 4 dgitos. Por tanto k = 4
Paso 2:
Tiene 8 dgitos. Por tanto cumple la
condicin de tener 2k dgitos, no es
necesario agregar ceros a la izquierda
Paso 3:
Repitiendo nuevamente los pasos se generaran los
siguientes nmeros pseudo aleatorios
Constante
Tcnica de multiplicacin por una Constante (Constant
Multiplier Method)
3721 = C

8395 . 0 73 8395 26
2 1
2
= =
R
X
CX

7213 . 0 75 7213 23
1 0
1
= =
R
X
CX

75 7213 23
1
0
X
CX
=
Generacin de Nmeros Aleatorios
Formas de Generacin > Generacin Matemtica
Caractersticas
Bastante similar al mtodo del Medio Cuadrado
Mtodo con pobres propiedades estadsticas.
La semilla debe ser escogida cuidadosamente.
Problema: Si en algn momento se obtiene un nmero de
k dgitos, los cuales generan al ser elevados al cuadrado,
un nmero donde los k dgitos medios son cero, la
secuencia de nmeros se degenera.
Tcnica de multiplicacin por una Constante (Constant
Multiplier Method)
Generador Congruencial Lineal(Lineal Congruential Generator)
Generacin de Nmeros Aleatorios
Formas de Generacin > Generacin Matemtica
OBSERVACIN:
mod es la funcin residuo, es decir Zi+1 es el residuo que se obtiene al
dividir (aZi+c) entre m
Emplea la frmula recursiva siguiente:
1 ,......., 2 , 1 , 0 , mod ) (
1
= + =
+
m i m c a
Z Z
i i
Donde:
m = mdulo, a = multiplicador, c = incremento, Z
0
= semilla
No son aleatorios, es una serie
Son racionales
Estos cuatro parmetros deben ser enteros no negativos y adems:
m > 0, m > a, m > c, m > Z
0
Para obtener los aleatorios Ri se divide Zi entre m

Generacin de Nmeros Aleatorios
Formas de Generacin > Generacin Matemtica
Caractersticas
Es el generador ms utilizado.
Produce una secuencia peridica o cclica de nmeros
aleatorios.
Se deben generar secuencias de perodo completo.
Se deben de escoger las constantes a, c y m, de modo
que generen secuencias de perodo completo.
Generador Congruencial Lineal(Lineal Congruential Generator)
Generacin de Nmeros Aleatorios
Formas de Generacin > Generacin Matemtica
Ejemplo 1:
mdulo = m = 8
multiplicador = a = 5
incremento = c = 7
semilla = Zo = 4
Parmetros:
Generamos entonces aleatorios empleando el GCL:
Generador Congruencial Lineal(Lineal Congruential Generator)
Generador CL:
Zi+1 = (5 Zi + 7 ) mod 8
n (5 Zi + 7 ) Zi+1 = (5 Zi + 7 ) mod 8 Ri
1 5*4+7 = 27 27 mod 8 = 3 3/8= 0.375
2
3
4
5
6
5*3+7 = 22 22 mod 8 = 6 6/8= 0.750
5*6+7 = 37 37 mod 8 = 5 5/8= 0.675
5*5+7 = 32 32 mod 8 = 0 0/8= 0
5*0+7 = 7 7 mod 8 = 7 7/8= 0.875
5*7+7 = 42 42 mod 8 = 2 2/8= 0.250
7 5*2+7 = 17 17 mod 8 = 1 1/8= 0.125
8 5*1+7 = 12 12 mod 8 = 4 4/8= 0.500
9 5*4+7 = 27 27 mod 8 = 3 3/8= 0.375
Este GCL permite generar 8 nmeros aleatorios
antes de repetir el primero. Su periodo es 8 y es
igual al mdulo m = 8, se le llama generador de
periodo completo
Generacin de Nmeros Aleatorios
Formas de Generacin > Generacin Matemtica
Ejemplo 2:
mdulo = m = 10
multiplicador = a = 7
incremento = c = 7
semilla = Zo = 7
Parmetros:
Generamos entonces aleatorios empleando el GCL:
Generador Congruencial Lineal(Lineal Congruential Generator)
Generador CL:
Zi+1 = (7 Zi + 7 ) mod 10
n (5 Zi + 7 ) Zi+1 = (5 Zi + 7 ) mod 8 Ri
1 7*7+7 = 56 56 mod 10 = 6 6/10= 0.60
2
3
4
5
7*6+7 = 49 49 mod 10 = 9 9/10= 0.90
7*9+7 = 70 70 mod 10 = 0 0/10= 0
7*0+7 = 7 7 mod 10 = 7 7/10= 0.70
7*7+7 = 56 56 mod 10 = 6 6/10= 0.60
Este GCL permite generar 4 nmeros aleatorios
antes de repetir el primero. Su periodo es 4 y es
DIFERENTE al mdulo m = 10, por tanto no es de
periodo completo
Generacin de Nmeros Aleatorios
Formas de Generacin > Generacin Matemtica
Teorema de Hull y Dobell para GCL que asegure el mayor periodo:
Generador Congruencial Lineal(Lineal Congruential Generator)

El nico entero positivo que divide exactamente m y c es 1
(primos relativos).
Si q es un nmero primo (divisible slo entre si mismo y 1)
que divide m, entonces q debe dividir a -1.
Si 4 divide a m, entonces 4 divide a 1.

En resumen que buscamos: Periodo largo, buenas propiedades
estadsticas, eficiencia computacional y de almacenaje y
reproductibilidad.
Generacin de Nmeros Aleatorios
Formas de Generacin > Generacin Matemtica
OBSERVACIN:
El Generador Congruencial Multiplicativo es en realidad un caso especfico
del Generador Congruencial Lineal cuando el incremento ( c ) es igual a
cero. Podemos observar que en el caso de los generadores
congruenciales multiplicativos no es posible aplicar el Teorema de
Hull y Dubell
Emplea la frmula recursiva siguiente:
1 ,......., 2 , 1 , 0 , mod ) (
1
= =
+
m i m a
Z Z
i i
Donde:
m = mdulo, a = multiplicador, Z
0
= semilla
Estos cuatro parmetros deben ser enteros no negativos y adems:
m > 0, m > a, m > Z
0
Para obtener los aleatorios Ri se divide Zi
entre m

Generador Congruencial Multiplicativo ( Multiplicative
Congruential Generator)
Generacin de Nmeros Aleatorios
Formas de Generacin > Generacin Matemtica
Teoremas para Determinacin de parmetros de un GC


Sea: x
i+1
= (a x
i
+ c ) mod 2
n

Teorema: Generador con mdulo igual a una potencia de 2
Por ejemplo:
n = 8 m = 2
n
= 2
8
= 256
c impar c = 7
= P
k = 2 a = 1+4k = 1 + 4(2) = 9
Zi+1 = (9 Zi + 7 ) mod 256
Un generador donde c > 0, n > 1, si c es impar y el factor a es de la
forma a = 4k+1

, entonces es de perodo mximo igual P = 2
n

Las pruebas de aleatoriedad son pruebas diseadas para asegurar
que se cumplan las propiedades de uniformidad e independencia
deseadas. Algunas son:
Pruebas de Aleatoriedad
Tipos de Pruebas
Prueba de corridas o rachas (runs test):
Se utiliza para determinar la presencia anormal de grupos de nmeros ascendentes,
descendentes, por encima del promedio, o por debajo del promedio.
Prueba de frecuencia:
Usa el mtodo de Kolmogorov-Smirnov o el mtodo Chi-cuadrado para comparar
una distribucin uniforme con la secuencia generada.
Prueba de autocorrelacin:
Compara la correlacin existente entre los elementos de una secuencia con la
correlacin nula esperada.
Prueba de huecos (gap test):
Cuenta los nmeros de dgitos entre dos sucesivas repeticiones y utiliza la prueba
de Kolmogorov-Smirnov para comparar esta cantidad con el valor esperado.
Prueba de poker:
Controla que la frecuencia de aparicin de dgitos en una serie de nmeros sea la
esperada.
Existen dos:
Pruebas de Aleatoriedad
Pruebas de corridas
Prueba de corridas ARRIBA Y ABAJO
Prueba de corridas ARRIBA Y DEBAJO DE LA MEDIA
Se verifica la aleatoriedad de los nmeros, comprobando que el nmero de
corridas sea una variable aleatoria distribuida normalmente. Para eso se
emplea una prueba de hiptesis del tipo:
Uniformidad
H
0
: Ri ~ U (0,1)
H
1
: Ri U (0,1)
Independencia
H
0
: Ri ~ independiente
H
1
: Ri independiente
Para ambas pruebas se debe especificar un nivel de significancia
(Rechazar hiptesis nula dado que es verdadera 0.01 o 0.05)
Nmero de corridas
Pruebas de Aleatoriedad
Pruebas de corridas
Corrida: sucesin de eventos similares precedidos y seguidos
por un evento diferente.
Corridas:
Sello(S)
Ejemplo: Tirando una moneda - Cuntos eventos hay?
Cara (C)
Si se lanza una moneda 10 veces y se obtienen los resultados siguientes:
C S S C C S S S C S
1 2 3 4 5 6
Nmero de corridas = 6
Definicin
Pruebas de Aleatoriedad
Pruebas de corridas Arriba y Abajo
Esta prueba comprueba si el nmero total de corridas en la secuencia
de nmeros aleatorios puede ser considerada como tpica o no.
Procedimiento:
1. Se genera una secuencia de nmeros pseudoaleatorios.
2. Si a un nmero le sigue otro mayor se le asigna un + , si el
siguiente es menor se le asigna un -.
3. Se calcula a = nmero de corridas, cuya longitud est dada por el
nmero de signos iguales que contiene
4. Siendo N la cantidad de nmeros en la secuencia, la media y la
varianza estn dadas por:

3
1 2
=
N

90
29 16 2
=
N
o
6. Se calcula la longitud de corrida a, como la cantidad de grupos de
signos asociados a la secuencia de aleatorios. Para N >30 , a se
puede aproximar mediante una distribucin normal . El estadstico
de prueba ser:











7. Si |Z
0
| > Z
1-o/2
entonces

no existe evidencia suficiente para
decir que los nmeros son aleatorios.
Pruebas de Aleatoriedad
Pruebas de corridas Arriba y Abajo
Procedimiento:
o

=
a
Z
0
Definicin
Pruebas de Aleatoriedad
Pruebas de corridas Arriba y Debajo de la media
Esta prueba nos permite verificar que los datos sigan una distribucin
uniforme alrededor de la media terica de 0.5, de forma aleatoria
Procedimiento:
1. Se genera una secuencia de nmeros pseudoaleatorios.
2. Si un nmero est por encima de la media se le asigna un + , si
est por debajo se le asigna un -.
3. Se calcula n
1
y n
2
, donde n
1
es el nmero de observaciones por
encima de la media y n
2
el nmero de observaciones por debajo de
la media
4. Siendo N la cantidad de nmeros en la secuencia, la media y la
varianza estn dadas por:





) 1 (
) 2 ( 2
2
2 1 2 1
2


=
N
N
N
n n n n
o
2
1
2
2 1
+ =
N
n n

6. Se calcula la longitud de corrida b, como la cantidad de grupos de


signos asociados a la secuencia de aleatorios. Para N >30 , b se
puede aproximar mediante una distribucin normal . El estadstico
de prueba ser:








7. Si |Z
0
| > Z
1-o/2
entonces

no existe evidencia suficiente para
decir que los nmeros son aleatorios.
Pruebas de Aleatoriedad
Pruebas de corridas Arriba y Debajo de la media
Procedimiento:
o

=
b
Z
0

También podría gustarte