Está en la página 1de 32

Simulación de Sistemas

Generación de Números y Variables Aleatorias


Simulación de Sistemas – Semestre 2008 -1
Tomado de Ing. Eduardo Carbajal L.
Agenda

Generación de números y variables aleatorias


1. Generación de Números 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
Generación de Números Aleatorios
Números Aleatorios
Son la herramienta para generar eventos de tipo probabilístico, se
emplean en modelos que tienen variables estocásticas. En estos
modelos emplearemos números aleatorios uniformemente
distribuidos entre 0 y 1, a los cuales identificaremos como Ri.
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 específica, que para generar/simular un nuevo valor de
la variable emplean números 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 desviación
estándar de 0.8 minutos
R1 = 0.42 Expo(2) V1 = 0.78 Norm(3,0.8)
R2 = 0.25 V2 = 2.46
¿Cuándo llega el próximo cliente?
servidor ¿Cuándo tiempo durará el servicio?
El tiempo entre llegada es 0.78,
El tiempo de servicio es 2.46, es
es decir el siguiente cliente
decir el cliente terminará de ser
llegará dentro de 0.78 minutos
atendido dentro de 2.46 minutos

cola
Generación de Números Aleatorios
Características de los Números Aleatorios
1. Tienen una distribución uniforme con parámetros a= 0 y b =1.
Distribución Uniforme
1
Función de densidad: f ( x)  , a  x  b
b  a
a  b
media: E ( x) 
2
(b  a ) 2
varianza: VAR( x) 
12

Entonces como Ri es uniformemente distribuido entre 0 y 1:

media : (0 + 1) / 2 = 1/2

varianza : (1 - 0 ) ² / 12 = 1/12

2. Estadísticamente independientes
3. Su periodo o ciclo de vida debe ser largo
Secuencia de números aleatorios R1, R2, R3, …………., Ri
Periodo o ciclo de vida R1, R2, R3, …………., Rn = R1

n : Periodo o ciclo de vida, que equivale al número de veces


antes que el primer aleatorio de la secuencia se repita
Generación de Números Aleatorios
Características de los Números Aleatorios

4. Deben ser generados a través de un método rápido

5. Deben ser generados a través de un método que no requiera


mucho uso de memoria ni almacenamiento.

Para cumplir con estas características el esquema de


generación debería producir una secuencia de números
entre uno y cero que simule o imite las propiedades ideales
de la distribución uniforme y la independencia tan cerca
como sea posible.
Generación de Números Aleatorios
Errores posibles en la generación de los Números Aleatorios

 Los números generados no están uniformemente


distribuidos.
 Los números generados son discretos en lugar de continuos.
 La media de los números generados es muy alta o baja.
 La varianza de los números generados es muy alta o baja.
 Los números generados exhiben variación cíclica (auto
correlación entre los números, números sucesivos mucho más
altos o bajos que el adyacente, varios números sobre la media
seguidos de otros bajo la media).
Generación de Números Aleatorios
Formas de Generación
Provisión Externa
Se emplean medios externos para obtener números aleatorios

Características
Es un método de generación rápido.
Es posible determinar una secuencia de
números generada anteriormente.
Depende de una fuente externa que
contengan miles de números
Produce números pseudo aleatorios
Generación de Números Aleatorios
Formas de Generación
Generación Física
Se generan números aleatorios empleando algún instrumento físico

Características
Es un método de generación lento.
Imposible reproducir una secuencia de números generada anteriormente.
Podrían producir números realmente aleatorios
Generación de Números Aleatorios
Formas de Generación
Generación Matemática
Se emplean algoritmos matemáticos para crear relaciones de
recurrencia en la secuencia de números generados

Características
Es un método de generación rápido.
Es posible determinar una secuencia de números
generada anteriormente.
Produce números pseudo aleatorios

Revisaremos algunos a continuación


Generación de Números Aleatorios
Formas de Generación > Generación Matemática
Método del Medio Cuadrado (Mid Square Method)
1. Escoger un número inicial (Xo) o semilla con k dígitos.
2. Se eleva al cuadrado dicho número y se obtiene uno (Xo²) que como
máximo tendrá 2k dígitos. Si el número no llega a 2k dígitos colocarle
ceros a la izquierda
3. Los k dígitos medios de Xo² corresponden a X1 y se emplean para
definir el primer número aleatorio. Como el aleatorio por definición debe
ser menor que 1, R1 es entonces X1, que tiene k dígitos, dividido entre
10 elevado a la k

En general entonces:
Se eleva al cuadrado el número Xi-1 y se extraen los k dígitos medios
para conformar Xi. Se obtiene el Ri dividiendo Xi entre 10 elevado a la
k.
Generación de Números Aleatorios
Formas de Generación > Generación Matemática
Método del Medio Cuadrado (Mid Square Method)

Ejemplo:
Paso 1:
Semilla X 0  6375 Tiene 4 dígitos. Por tanto k = 4

Paso 2:
Tiene 8 dígitos. Por tanto cumple la condición
X  40640625
2
0 de tener 2k dígitos, no es necesario agregar
ceros a la izquierda
Paso 3:

X 0  406406  R1  0.6406
2
25
X1
Repitiendo nuevamente los pasos se generarían los
siguientes números pseudo aleatorios

X 1  410368  R2  0.0368
2
36
X2
Generación de Números Aleatorios
Formas de Generación > Generación Matemática
Método del Medio Cuadrado (Mid Square Method)
Características

 Posiblemente el método mas antiguo, propuesto por John


von Newmann.
 Método con pobres propiedades estadísticas.
 La “semilla” debe ser escogida cuidadosamente.
 Problema: Si en algún momento se obtiene un número de
“k” dígitos, los cuales generan al ser elevados al cuadrado,
un número donde los “k” dígitos medios son cero, la
secuencia de números se degenera.
Generación de Números Aleatorios
Formas de Generación > Generación Matemática
Método del Medio Producto (Mid Product Method)

1. Escoger dos números iniciales (X'o y Xo) con k dígitos.


2. Se multiplican dichos números y se extraen los k dígitos medios de la
multiplicación. Los cuales forman el número X1. Si el número no llega a 2k
dígitos colocarle ceros a la izquierda
3. Como el aleatorio por definición debe ser menor que 1, R1 es entonces X1,
que tiene k dígitos, dividido entre 10 elevado a la k Para generar el
siguiente aleatorio se repite el algoritmo multiplicando esta vez
Xo por X1

En general entonces:
Se multiplican los números Xi-1 y Xi; y se extraen los k dígitos medios
para formar Xi+1. Se obtiene el Ri dividiendo Xi entre 10 elevado a la k.
Generación de Números Aleatorios
Formas de Generación > Generación Matemática
Método del Medio Producto (Mid Product Method)

Ejemplo:
Paso 1: Tienen 4 dígitos. Por tanto k = 4
Semilla Semilla
X 0  6375 adicional X 0  3721
'

Paso 2:

X 0 X 0  237213 Tiene 8 dígitos. Por tanto cumple la


'
75 condición de tener 2k dígitos, no es
Paso 3: X1 necesario agregar ceros a la izquierda

X 0 X 0  237213  R1  0.7213
'
75
X1
Repitiendo nuevamente los pasos se generarían los
siguientes números pseudo aleatorios
X 0 X 1  268395
73  R2  0.8395
X2
Generación de Números Aleatorios
Formas de Generación > Generación Matemática
Método del Medio Producto (Mid Product Method)
Características

 Bastante similar al método del Medio Cuadrado


 Método con pobres propiedades estadísticas.
 La “semilla” debe ser escogida cuidadosamente.
 Problema: Si en algún momento se obtiene un número de
“k” dígitos, los cuales generan al ser elevados al cuadrado,
un número donde los “k” dígitos medios son cero, la
secuencia de números se degenera.
Generación de Números Aleatorios
Formas de Generación > Generación Matemática
Técnica de multiplicación por una Constante (Constant
Multiplier Method)

1. Escoger dos números iniciales: una semilla Xo con k dígito y una


constante C.
2. Se multiplican dichos números y se extraen los k dígitos medios de la
multiplicación. Los cuales forman el número X1. Si el número no llega a 2k
dígitos colocarle ceros a la izquierda
3. Como el aleatorio por definición debe ser menor que 1, R1 es entonces X1,
que tiene k dígitos, dividido entre 10 elevado a la k Para generar el
siguiente aleatorio se repite el algoritmo multiplicando esta vez
X1 por C

En general entonces:
Se multiplica cada número Xi por la constante C y se extraen los k dígitos medios
para formar Xi+1
Generación de Números Aleatorios
Formas de Generación > Generación Matemática
Técnica de multiplicación por una Constante (Constant
Multiplier Method)

Ejemplo:
Paso 1: La semilla tiene 4 dígitos. Por tanto k = 4
Semilla X 0  6375 Constante C  3721
Paso 2:

CX 0  237213
75 Tiene 8 dígitos. Por tanto cumple
condición de tener 2k dígitos, no
la
es
Paso 3: X1 necesario agregar ceros a la izquierda

CX 0  237213
75  R1  0.7213
X1
Repitiendo nuevamente los pasos se generarían los
siguientes números pseudo aleatorios

CX 1  268395
73  R2  0.8395
X2
Generación de Números Aleatorios
Formas de Generación > Generación Matemática
Técnica de multiplicación por una Constante (Constant
Multiplier Method)
Características

 Bastante similar al método del Medio Cuadrado


 Método con pobres propiedades estadísticas.
 La “semilla” debe ser escogida cuidadosamente.
 Problema: Si en algún momento se obtiene un número de
“k” dígitos, los cuales generan al ser elevados al cuadrado,
un número donde los “k” dígitos medios son cero, la
secuencia de números se degenera.
Generación de Números Aleatorios
Formas de Generación > Generación Matemática
Generador Congruencial Lineal(Lineal Congruential Generator)

Emplea la fórmula recursiva siguiente:

Z i 1
 (a Z i  c) mod m, i  0,1,2,......., m  1
Donde:
m = módulo, a = multiplicador, c = incremento, Z0 = semilla
Estos cuatro parámetros deben ser enteros no negativos y además:
m > 0, m > a, m > c, m > Z0
Para obtener los aleatorios Ri se divide Zi entre m
OBSERVACIÓN:
mod es la función residuo, es decir Zi+1 es el residuo que se obtiene al
dividir (aZi+c) entre m
 No son aleatorios, es una serie
 Son racionales
Generación de Números Aleatorios
Formas de Generación > Generación Matemática
Generador Congruencial Lineal(Lineal Congruential Generator)
Características

 Es el generador más utilizado.


 Produce una secuencia periódica o cíclica de números
aleatorios.
 Se deben generar secuencias de período completo.
 Se deben de escoger las constantes a, c y m, de modo
que generen secuencias de período completo.
Generación de Números Aleatorios
Formas de Generación > Generación Matemática
Generador Congruencial Lineal(Lineal Congruential Generator)
Ejemplo 1: módulo = m = 8 Generador CL:
Parámetros: multiplicador = a = 5 Zi+1 = (5 Zi + 7 ) mod 8
incremento = c = 7 Generamos entonces aleatorios empleando el GCL:
semilla = Zo = 4
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 5*3+7 = 22 22 mod 8 = 6 6/8= 0.750

3 5*6+7 = 37 37 mod 8 = 5 5/8= 0.675


Este GCL permite generar 8 números aleatorios
4 5*5+7 = 32 32 mod antes
8 = 0 de repetir el primero.
0/8= 0 Su periodo es 8 y es

5 5*0+7 = 7 7 mod 8igual


= 7 al módulo m7/8=
= 8,0.875
se le llama generador de
periodo completo
6 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


Generación de Números Aleatorios
Formas de Generación > Generación Matemática
Generador Congruencial Lineal(Lineal Congruential Generator)
Ejemplo 2: módulo = m = 10
Generador CL:
multiplicador = a = 7
Parámetros: incremento = c = 7 Zi+1 = (7 Zi + 7 ) mod 10
semilla = Zo = 7 Generamos entonces aleatorios empleando el GCL:
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 7*6+7 = 49 49 mod 10 = 9 9/10= 0.90

3 7*9+7 = 70 70 mod 10 = 0 0/10= 0

4 7*0+7 = 7 7 mod 10 = 7 7/10= 0.70

5 7*7+7 = 56 56 mod 10 = 6 6/10= 0.60

Este GCL permite generar 4 números aleatorios


antes de repetir el primero. Su periodo es 4 y es
DIFERENTE al módulo m = 10, por tanto no es de
periodo completo
Generación de Números Aleatorios
Formas de Generación > Generación Matemática
Generador Congruencial Lineal(Lineal Congruential Generator)
Teorema de Hull y Dobell para GCL que asegure el mayor periodo:
 El único entero positivo que divide exactamente m y c es 1
(primos relativos).
 Si q es un número primo (divisible sólo 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


estadísticas, eficiencia computacional y de almacenaje y
reproductibilidad.
Generación de Números Aleatorios
Formas de Generación > Generación Matemática
Generador Congruencial Multiplicativo ( Multiplicative
Congruential Generator)

Emplea la fórmula recursiva siguiente:

Z i 1
 (a Z i ) mod m, i  0,1,2,......., m  1
Donde:
m = módulo, a = multiplicador, Z0 = semilla
Estos cuatro parámetros deben ser enteros no negativos y además:
Para obtener los aleatorios Ri se divide Zi
m > 0, m > a, m > Z0
entre m

OBSERVACIÓN:
El Generador Congruencial Multiplicativo es en realidad un caso específico
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
Generación de Números Aleatorios
Formas de Generación > Generación Matemática
Teoremas para Determinación de parámetros de un GC
Teorema: Generador con módulo igual a una potencia de 2
Sea: x i+1 = (a x i + c ) mod 2 n

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 período máximo igual P = 2n

Por ejemplo:
n=8 m = 2n = 28 = 256 =P
k=2 a = 1+4k = 1 + 4(2) = 9
c impar c=7

Zi+1 = (9 Zi + 7 ) mod 256


Pruebas de Aleatoriedad
Tipos de Pruebas
Las pruebas de aleatoriedad son pruebas diseñadas para asegurar
que se cumplan las propiedades de uniformidad e independencia
deseadas. Algunas son:
Prueba de corridas o rachas (runs test):
Se utiliza para determinar la presencia anormal de grupos de números ascendentes,
descendentes, por encima del promedio, o por debajo del promedio.
Prueba de frecuencia:
Usa el método de Kolmogorov-Smirnov o el método Chi-cuadrado para comparar
una distribución uniforme con la secuencia generada.
Prueba de autocorrelación:
Compara la correlación existente entre los elementos de una secuencia con la
correlación nula esperada.
Prueba de huecos (gap test):
Cuenta los números de dígitos 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 aparición de dígitos en una serie de números sea la
esperada.
Pruebas de Aleatoriedad
Pruebas de corridas
Existen dos:
Prueba de corridas ARRIBA Y ABAJO
Prueba de corridas ARRIBA Y DEBAJO DE LA MEDIA

Se verifica la aleatoriedad de los números, comprobando que el número de


corridas sea una variable aleatoria distribuida normalmente. Para eso se
emplea una prueba de hipótesis del tipo:

Independencia Uniformidad

H0 : Ri ~ independiente H0 : Ri ~ U (0,1)

H1 : Ri ≠ independiente H1 : Ri ≠ U (0,1)

Para ambas pruebas se debe especificar un nivel de significancia α


(Rechazar hipótesis nula dado que es verdadera – 0.01 o 0.05)
Pruebas de Aleatoriedad
Pruebas de corridas
Número de corridas
Corrida: sucesión de eventos similares precedidos y seguidos
por un evento diferente.

Ejemplo: Tirando una moneda - ¿Cuántos eventos hay?

Cara (C) Sello(S)


Si se lanza una moneda 10 veces y se obtienen los resultados siguientes:

C S S C C S S S C S

Corridas: 1 2 3 4 5 6

Número de corridas = 6
Pruebas de Aleatoriedad
Pruebas de corridas Arriba y Abajo
Definición
Esta prueba comprueba si el número total de corridas en la secuencia
de números aleatorios puede ser considerada como típica o no.
Procedimiento:
1. Se genera una secuencia de números pseudoaleatorios.
2. Si a un número le sigue otro mayor se le asigna un “+” , si el
siguiente es menor se le asigna un “-”.
3. Se calcula a = número de corridas, cuya longitud está dada por el
número de signos iguales que contiene
4. Siendo N la cantidad de números en la secuencia, la media y la
varianza están dadas por:
2N 1 16 N  29
  
2

3 90
Pruebas de Aleatoriedad
Pruebas de corridas Arriba y Abajo

Procedimiento:
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 distribución normal . El estadístico
de prueba será:

a
Z 
0

7. Si |Z0| > Z1-/2 entonces no existe evidencia suficiente para


decir que los números son aleatorios.
Pruebas de Aleatoriedad
Pruebas de corridas Arriba y Debajo de la media
Definición
Esta prueba nos permite verificar que los datos sigan una distribución
uniforme alrededor de la media teórica de 0.5, de forma aleatoria
Procedimiento:
1. Se genera una secuencia de números pseudoaleatorios.
2. Si un número está por encima de la media se le asigna un “+” , si
está por debajo se le asigna un “-”.
3. Se calcula n1 y n2, donde n1 es el número de observaciones por
encima de la media y n2 el número de observaciones por debajo de
la media
4. Siendo N la cantidad de números en la secuencia, la media y la
varianza están dadas por:
2 n1 n2 (2 n1 n2  N )
2 n1 n2
 
2
1
 
( N  1)
2
N 2 N
Pruebas de Aleatoriedad
Pruebas de corridas Arriba y Debajo de la media

Procedimiento:
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 distribución normal . El estadístico
de prueba será:
b
Z 
0

7. Si |Z0| > Z1-/2 entonces no existe evidencia suficiente para
decir que los números son aleatorios.

También podría gustarte