Você está na página 1de 30

Simulación de Procesos

Industriales

Clase Nº 4:
“Números Aleatorios”

16 de Mayo de 2003
Números Aleatorios

• Elemento Central en la Simulación digital.


• Definición formal controvertida.
• Elemento esencial en muchas áreas del conocimiento Ingeniería,
Economía, Física, Estadística, etc.
• Definición intuitiva: Una sucesión de números aleatorios puros,
se caracteriza por que no existe ninguna regla o plan que nos
permita conocer sus valores.
• Los números aleatorios obtenidos a través de algoritmos
recursivos se llaman pseudoaleatorios.
Números Aleatorios

• Simulación requiere obtener números aleatorios en cierto sentido


– M/M/S requiere generar variables aleatorias desde una Poisson y
exponencial

• Búsqueda de métodos computacionales

• Conectar máquina que genere números (no son reproducibles)


• Leer una tabla (tiempo de acceso lento)
• Métodos numéricos
Números Aleatorios

• La gran disponibilidad de generadores de números aleatorios


en muchos entornos y compiladores puede llevarnos a
pensar que para un usuario de la simulación no sería
necesario estudiar estas cuestiones.

• Una lección del pasado reciente nos obliga a sacar lecciones


y actuar con mucho cuidado con dichos generadores.

• El uso progresivo de modelos de simulación cada vez más


detallados exige una mayor calidad de los generadores de
números aleatorios.
Números Aleatorios

• DEF 1: Kolmogorov (1987) [Complejidad Algorítmica] Una


sucesión de números es aleatoria sino puede producirse
eficientemente de una manera más corta que la propia serie.

• DEF 2: L’Ecuyer (1990) [Impredicibilidad] Una sucesión de


números es aleatoria si nadie que utilice recursos
computacionales razonables puede distinguir entre la serie y una
sucesión de números verdaderamente aleatoria de una forma
mejor que tirando una moneda legal para decidir cuál es cuál.
Números Aleatorios

 DEF 3: Un Número aleatorio es una realización de una variable


aleatoria que tiene asociada una ley de probabilidades F, en un
espacio o modelo de Probabilidades (Ω , ℜ, P).

Obs: Una particular Ley de Probabilidad base para la


generación de números pseudo-aleatorios es:
u1, u2,..., un : es la uniforme (0 ; 1) ui ~ U(0,1).

 DEF 4: Una sucesión de números aleatorios {u1, u2,..., un} es una


sucesión de números U(0;1), si tiene las mismas propiedades
estadísticas relevantes que dicha sucesión de números aleatorios.
Números Aleatorios

• Existe una gran cantidad de métodos para generar


{ui} ≈ U(0,1) :

- Uniformente distribuidas
- Independientes
- E[U]= ½ ; V[U]= 1/12
- Período largo
Propiedades de un
Buen Generador
 Números producidos deben ser U(0,1) y no deben exhibir
correlación con ningún otro
 Generador debe ser rápido y debe evitar la necesidad de
mucho almacenamieno

 En simulación, se debe ser capaz de reproducir una


corriente de números exatamente para :

 Hacer más fácil el debugging


 Para simular diferentes sistemas y obtener una

comparación precisa
 Provisión de producir varias “Corrientes” de números

separados. Utilizar una corriente particulta a una fuente


particular de aleatoriedad en la simulación
Propiedades de un
Buen Generador
A las propiedades estadísticas anteriores se deben
agregar otras relativas a la eficiencia computacional:

• Velocidad de respuesta
• Consumo de memoria
• Portabilidad
• Parsimonia
• Reproducibilidad
• Mutabilidad
• Período
Métodos de Generación
de Números Aleatorios
Principalmente se estudiarán dos métodos:

1.- Método de los cuadrados medios


2.- Métodos Congruenciales
Métodos de los cuadrados
Medios
Consiste en que cada número de una sucesión es producido
tomando los dígitos medios de un número obtenido mediante la
elevación al cuadrado.
P1 : Obtener semilla (valores iniciales 445)
P2 : Aplicación de Algoritmos recursivos (elevar al
cuadrado)
P3 : Validación del conjunto de datos generados
Métodos de los Cuadrados
Medios

Ejemplo: Consideremos la semilla 445

X X2 N° Aleatorio
445 1| 9802 | 5 0,9802
9802 96| 0792 | 04 0,0792
792 6 | 2726 | 4 0,2726
2726 ............... ...............
Métodos de los Cuadrados
Medios

Problemas
•Tendencia a degenerar a cero

•Método no es aleatorio pues es predecible: si conocemos un


número el siguiente está determinado

•Numeros Pseudoaleatorios.
Generadores
Congruenciales

Una secuencia de números enteros Z1 , Z2 , Z3….. es definido por la


fórmula recursiva.
Zn
Zi = (a Zi-1 + b) (mod m) Un =
m
m = modulo;
a= multiplicador

b = sesgo :

Z = semilla o valor inicial


c

Todos enteros no negativos.

Además 0 < m, a < m, b < m, Z0 < m.


Para obtener Zi, dividir a Zi-1 + b por m, y dejar que Zi sea el resto de
esta división
Generadores
Congruenciales
Obs:
1.- Cuando b=0 el generador se denomina Generador
congruencial multiplicativo.

2.- Cuando b≠ 0 el generador se denomina Generador


congruencial mixto.

3.- A pesar de la simplicidad una adecuada elección de los


parámetros de “a, b y m”, permite obtener de manera eficiente
una larga e impredecible sucesión de números como para
considerarse “aleatoria”.
Ejemplo Generadores
Congruenciales
m= 16 i Zi Ui
a= 5 0 7
c= 3 1 6 0.375
Zo = 7 2 1 0.0625
3 8 0.5
4 11 0.6875
5 10 0.625
6 5 0.3125
7 12 0.75
8 15 0.9375
9 14 0.875
10 9 0.5625
11 0 0
12 3 0.1875
13 2 0.125
14 13 0.8125
15 4 0.25
16 7 0.4375
17 6 0.375
18 1 0.0625
19 8 0.5
20 11 0.6875
Generadores
Congruenciales
Parámetros
Caso a b m xo
1 6 0 13 1
2 7 0 13 10
3 5 0 13 5
4 7 0 11 5
5 6 0 11 3

Caso Salidas
1 6 10 8 9 2 12 7 3 5 4 11 1 6 10
2 5 9 11 12 6 3 8 4 2 1 7 10 5 9
3 12 8 1 5 12 8 1 5 12 8 1 5 12 8
4 2 3 10 4 6 9 8 1 7 5 2 3 10 4
5 7 9 10 5 8 4 2 1 6 3 7 9 10 4
Generadores
Congruenciales

Algunas observaciones de las salidas de los generadores


congruenciales:
i) Un generador congruencial tiene ciclos

iI) La longitud del ciclo depende de la selección de los parámetros


(ver caso 1) y 3) )

iii) Dentro de selecciones de parámetros que conducen a la


misma longitud, algunas salidas parecen más aleatorias que
otras.
Generadores
Congruenciales

Los resultados teóricos que veremos a continuación facilitan la


elección de los parámetros de “a y b” su demostración puede
verse en el texto clásico
D. Knuth (1981):
“The Art of Computer Programming”.
Ed. A. Wesley Vol N°2
¿Cómo escoger m?

m = 2b, en que b es el número de bits en una palabra


- IBM palabra de 32 bits. b = 31.
m = 231 > 2.1 billones.
Al tomar m = 2b permite evitar la división explícita al aprovechar el
overflow entero.
El mayor entero que se puede representar es 2b – 1, y cualquier
intento de almacenar un entero W (con h > b dígitos binarios)
resulta en una pérdida de los dígitos de la izquierda más
significativos h – b de este entero sobredimensionado.
Lo que queda en los b bits que se retienen es precisamente
W (mod 2b).
Generadores
Congruenciales

2) Una buena elección de “m”, permite obtener un generador eficiente


(ciclo máximo). Pero aún se debe estudiar con más detalle la
elección de a y b, pues se tienen muchos grados de libertad.
3) Un buen generador congruencial debe ser:
i) De máximo período
ii) Su salida debe parecer aleatoria
iii) Poder implementar de forma eficiente en aritmética
de 32 bits.
Generadores
Congruenciales
Un algoritmo de muy fácil implementación del tipo congruencial es
m = 231 -1
a = 75 (raíz primitiva de m)

Xn = 75 Xn-1 mod (231 -1)

un =  X 
 31
n

 2 −1 

Dicho generador se encuentra en las bibliotecas IMSL y NAG


Generadores
Congruenciales

La rutina RANDU, que IBM proporcionaba para sus equipos


consideraba un modelo congruencial multiplicativo con m = 231 ; a =
65539 ; b = 0

Xn = 65539 Xn-1 mod (231 )

un =  Xn 
 31 
2 
¡ Este generador proporciona tripletas consecutivas de números que
caen en 15 planos ! Lo que sugiere cierta previsiblidad en su salida
(Mal Generador)
Generadores
Congruenciales

En teoría puede conseguirse que un buen generador con m = 232


produzca 357.913.941 puntos independientes en un cubo de
dimensión 3, siendo el mínimo número de hiperplanos que contiene
estos puntos 108, en contraste con los 2953.
Para la famosa rutina RANDU de IBM,
Xn = 65539 Xn mod (231 )
las tripletas consecutivas de números caen en 15 planos.
Validación de
Generadores
Congruenciales
Finalmente la fase de validación se basa en ciertas propiedades
estadísticas que deben cumplirse a la salida de los generadores de
n° aleatorios .
Los Test empíricos que veremos a continuación son genéricos y
pueden usarse en la evaluación de generadores de n° aleatorios,
en generadores de variables aleatorias y en la modelación de
entradas de modelos de simulación.
La mayoría de los Test se encuentran disponibles en paquetes
estadísticos comerciales. SAS, Statistica, etc.
Validación de Nos
Aleatorios
1) Chequeo de Uniformidad
Test χ2
Este es un test de Bondad de Ajuste. Es poco potente, por lo que
permite justificar el rechazo de una hipótesis, pero proporciona
escaso apoyo en la aceptación.
Dada una muestra X1, X2, ..., Xn de una Fx(x) desconocida. Se
desea contrastar.

Ho : Fx(x) = Fo(x) v/s H1 : Fx(x) ≠ Fo(x)


Validación de Nos
Aleatorios

Efectuando una partición del soporte de X en k subconjuntos I1,


I2, ..., Ik : I i = X ∧ I i  I j ≠ φ

χ =∑
2
k
( f i − ei ) 2 distribuye asintχ 2 ( k −1)
i =1 ei

fi : frecuencia absoluta del subconjunto i-ésimo (Ii)


ei: número de observaciones esperadas en Ii bajo Ho
Validación de Nos
Aleatorios
Aplicacion Test Chi- Cuadrado
Dividir [0,1] en K subintervalos de igual longitud. K debiera ser al
menos 100 y n / k al menos 5.
Generar U1, U2, U3, ….., Un
Para j = 1, 2,….., k, sea fj el número de Ui que caen en el j – ésimo
subintervalo, y sea
χ 2
= (k / n) Σ 1
k
(fj – n / k)
con χ 2
distribulle chi-cuadrado con k – 1 grados de libertad
H0 = Ui son IID U (0,1).
Se rechaza al nivel α si χ 2
> χ 2
k-1,1- α
Validación de Nos
Aleatorios
2) Chequeo de Independencia
Para realizar el test de Autocorrelación se utiliza el siguiente
procedimiento:
Definir Lags de 1 a l
− Para cada lags, de 1 a l se calcula el coeficiente de correlación de la
ˆ
siguiente manera: ρ~ j = C j
Cˆ o
Donde:
n
n− j

∑( X (
− X ( n) ) X i+ j − X ( n) ) ∑X
Cˆ o = Var ( X i )
i

X ( n) =
i i =1
i =1
Cˆ j = n
n− j

− A cada ro j se le calculó la varianza mediante: ( )


Var ρˆ j =
13h + 7
( h + 1) 2

 ( n − 1) 
h=  −1
Con  j 
Validación de Nos Aleatorios

ρˆ j
Para cada lag j se determinó el test estadístico: Aj =
( )
Var ρˆ j

A
Finalmente se compara cada j con z1−α 2 para analizar si se rechaza o
no la hipótesis nula H0. ( coef de correlación igual a cero) La condición
para rechazar es:
A j > z1−α
2

Você também pode gostar