GENERACION DE NUMEROS ALEATORIOS

Anuncio
Cabrera Hernández Elizabeth
Ramírez Bustos Fabián
GENERACION DE NUMEROS
ALEATORIOS
NUMEROS ALEATORIOS
 Los números random son un elemento básico en
la simulación de la mayoría de los sistemas
discretos.
 Cada
número random Ri es una muestra
independiente de una distribución uniforme y
continua en el intervalo (0,1).
NÚMEROS ALEATORIOS
La probabilidad de observar un valor en un
particular intervalo es independiente del valor
previo observado.
*
* Todo punto en el rango tiene igual probabilidad
de ser elegido.
* Si el intervalo (0,1) es dividido en n subintervalos de igual longitud, el número esperado
de observaciones en cada intervalo es N/n. (N
número de observaciones totales).
GENERADOR DE NÚMEROS
ALEATORIOS
El objetivo de cualquier esquema de
generación (generador), es producir una
secuencia de números entre 0 y 1 que simule
las propiedades ideales de distribución
uniforme y de independencia.
NÚMEROS PSEUDO-ALEATORIOS
•Los números aleatorios son calculados a partir de
una semilla (seed) y una fórmula.
•El problema es que si el método es conocido,
entonces la secuencia de números random puede ser
replicada.
•En la práctica ninguna función produce datos
aleatorios verdaderos -- las funciones producen
números pseudo-aleatorios.
TÉCNICAS PARA GENERAR
NÚMEROS ALEATORIOS
La mayoría de los métodos (generadores) comienzan
con un número inicial (semilla), a este número se le
aplica un determinado procedimiento y así se
encuentra el primer número random.
Usando este número como entrada, el procedimiento es
repetido para lograr un próximo número random.
Y así siguiendo.
TÉCNICAS PARA GENERAR
NÚMEROS ALEATORIOS
Método Del Cuadrado Medio: comienza con un número inicial
(semilla). Este número es elevado al cuadrado. Se escogen los
dígitos del medio de este nuevo número (según los dígitos que se
deseen) y se colocan después del punto decimal. Este número
conforma el primer número random.
Ejemplo:
X0 = 5497
X02 = (5497)2 = 30,217,009 ===> X1 = 2170
R1 = 0.2170
X12 = (2170)2 = 04,708,900 ===> X2 = 7089
R2 = 0.7089
X22 = (7089)2 = 50,253,921 ===> X3 = 2539
TÉCNICAS PARA GENERAR
NÚMEROS ALEATORIOS
Método De Congruencia Lineal: produce una secuencia de
enteros X1, X2,... entre 0 y m-1 de acuerdo a la siguiente
relación recursiva:
Xi+1= (a * Xi + c) mod m,
i=0,1,2,...
X0 es llamado semilla.
a es llamado el multiplicador constante.
c es el incremento.
m es el módulo.
El número aleatorio se encuentra de la siguiente manera:
R = X /m
TÉCNICAS PARA GENERAR
NÚMEROS ALEATORIOS
Ejemplo: Utilice el método de Congruencia Lineal para generar
números aleatorios con las siguiente constantes:
X0 = 27 , a = 17, c = 43, m = 100
La secuencia de Xi y subsecuentes Ri serían:
X0 = 27
X1 = (17 * 27 + 43) mod 100 = 502 mod 100 = 2
R1 = 2/100 = 0.02
X2 = (17 * 2 + 43) mod 100 = 77 mod 100 = 77
R2 = 77/100 = 0.77
La selección de los parámetros del generador afecta
drásticamente las propiedades ideales y la longitud del ciclo.
TEST PARA EL CHEQUEO DE
UNIFORMIDAD
Test de Kolmogorov-Smirnov: compara
la
distribución de un conjunto de números
generados con una distribución uniforme.
Este test compara:
la función de Probabilidad Acumulada continua
F(x) de una Distribución Uniforme, con
la función de Probabilidad Acumulada empírica
SN(x), de una muestra de N observaciones.
TEST DE KOLMOGOROV-SMIRNOV
Por definición, la Función de Probabilidad Acumulada
(teórica) uniforme entre 0 y 1 tiene:
* F(x) = x,
0<=x<=1
Mientras que una Función de Probabilidad Acumulada
Empírica se encuentra:
* SN(x) = (cantidad de n.r. generados <=x ) /
N
Este test se basa en la mayor desviación absoluta entre F(x)
y SN(x) sobre todo el rango de variable random.
Esto es:
D = max|F(x) - SN(x)|
La distribución de D está tabulada como una función de N.
Ejercitación de Distribución Empírica (SN(x))
Si no se conoce la probabilidad de un fenómeno se debe trabajar con las
distribuciones empíricas ( basadas en frecuencias).
Ejemplo: Que distribución tiene la siguiente secuencia de números?:
3-4-5-3-4-5-3-6-4-3
valor
cantidad
frel.
frelAcum
3
4
4/10=0.4 4/10=0.4
4
3
3/10=0.3 7/10=0.7
5
2
2/10=0.2 9/10=0.9
6
1
1/10=0.1
10/10=1
El test procede de la siguiente manera:
1- Ordena los datos de menor a mayor:
R(1)<=R(2)<=... <= R(N)
(R(i) denota la observación más pequeña.)
2- Computa:
D+ = max { i/N - R(i)},
1<=i<=N
D- = max { R(i)- (i-1)/N},
1<=i<=N
3- Computa D = max (D+,D-).
El test procede de la siguiente manera (continuación):
4- Determina el valor crítico, D para el nivel de significancia alfa y
tamaño de muestra N, (estos valores están tabulados).
5- Si la muestra estadística diferencia ha D es mas grande que el valor
crítico, D, la hipótesis nula es rechazada.
Si D <= D concluye que ninguna diferencia
significativa ha sido detectada entre la verdadera distribución de {R1,R2
..., RN} y la distribución uniforme.
Ejemplo Para Ejecutar Test De Uniformidad
(Kolmogorov - Smirnov)
Suponer que se generaron cinco números random y que
se desea ejecutar el test de K.S. para un nivel de
significancia  = 0.05
Orden cronológico:
R1
R2
R3
R3
R5
0.03
0.58
0.87
0.32
0.95
Orden numérico creciente:
R(1)
R(2)
R(3)
R(3)
R(5)
0.03
0.32
0.58
0.87
0.95
Ejemplo (continuación)
Evaluación:
D.Teórica
F(x) = R(i)
0.03
0.32
0.58
0.87
0.95
D.Empírica
SN(x)= i/N
0.2
0.4
0.6
0.8
1
i/N – R(i)
(D+ :dif. sup.)
0.17
0.08
0.02
0
R(i) - (i-1)/N
(D- :dif. inf.)
0.03
0.12
0.18
0.27
Continuar este ejemplo.....
0.05
0.15
Ejemplo (continuación)
0.6
0.5
0.4
0.3
0.2
0.1
0
0.1 0.2 0.3 0.4 0.5 0.6
0.03
0.32
0.58
Descargar