Está en la página 1de 34

GENERACIN DE NMEROS ALEATORIOS (RANDOMS)

NUMEROS ALEATORIOS

Los nmeros random son un elemento bsico en la simulacin de la mayora de los sistemas discretos.

Cada nmero random Ri es una muestra independiente de una distribucin uniforme y continua en el intervalo (0,1).

NMEROS ALEATORIOS
f(x) f(x) 1, 0 x 1

1
0, en otro caso

1
F(x)

0, x < 0
F(x) x, 0x 1

1, x<1

NMEROS 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 sub-intervalos de igual longitud, el nmero esperado de observaciones en cada intervalo es N/n. (N nmero de observaciones totales).

GENERADOR DE NMEROS ALEATORIOS


El objetivo de cualquier esquema de generacin (generador), es producir una secuencia de nmeros entre 0 y 1 que simule las propiedades ideales de distribucin uniforme y de independencia.

NMEROS PSEUD0-ALEATORIOS
Los nmeros aleatorios son calculados a partir de una semilla (seed) y una frmula. El problema es que si el mtodo es conocido, entonces la secuencia de nmeros random puede ser replicada. En la prctica ninguna funcin produce datos aleatorios verdaderos -- las funciones producen nmeros pseudo-aleatorios.

TCNICAS PARA GENERAR NMEROS ALEATORIOS


La mayora de los mtodos (generadores) comienzan con un nmero inicial (semilla), a este nmero se le aplica un determinado procedimiento y as se encuentra el primer nmero random.

Usando este nmero como entrada, el procedimiento es repetido para lograr un prximo nmero random. Y as siguiendo.

TCNICAS PARA GENERAR NMEROS ALEATORIOS


Mtodo Del Cuadrado Medio: comienza con un nmero inicial (semilla). Este nmero es elevado al cuadrado. Se escogen los dgitos del medio de este nuevo nmero (segn los dgitos que se deseen) y se colocan despus del punto decimal. Este nmero conforma el primer nmero 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

TCNICAS PARA GENERAR NMEROS ALEATORIOS


Mtodo De Congruencia Lineal: produce una secuencia de enteros X1, X2,... entre 0 y m-1 de acuerdo a la siguiente relacin 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 mdulo.


El nmero aleatorio se encuentra de la siguiente manera: R = X /m

TCNICAS PARA GENERAR NMEROS ALEATORIOS


Ejemplo: Utilice el mtodo de Congruencia Lineal para generar nmeros aleatorios con las siguiente constantes: X0 = 27 , a = 17, c = 43, m = 100 La secuencia de Xi y subsecuentes Ri seran:
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 seleccin de los parmetros del generador afecta drsticamente las propiedades ideales y la longitud del ciclo.

FUNCIONES DE NMEROS (PSEUDO) ALEATORIOS EN LA BIBLIOTECA ESTNDAR.


El conjunto ms simple de funciones es:

int rand(void);
void srand(unsigned int semilla);

Un ejemplo sencillo del uso del tiempo de la fecha es inicializando la semilla a travs de una llamada:

srand( (unsigned int) time( NULL ) );

TEST PARA EL CHEQUEO DE


UNIFORMIDAD
Generador Uniforme
1.25 1 0.75 0.5 0.25 0 -0.251 27 53 79 105 131 157 183 209 235 261 287 -0.5 1.25 1 0.75 0.5 0.25 0 -0.25 0 -0.5

Generador Uniforme

random

Generador Uniforme?
1 0.8 0.6 0.4 0.2 0 0 50 100

random

Durante esta teora le llamaremos:

F(x) a la Probabilidad Acumulada de una Distribucin Terica, y

SN(x) a la Probabilidad Acumulada de una Distribucin Emprica

Suponga que se necesita conocer la distribucin que tiene la siguiente secuencia de nmeros?: 3-4-5-3-4-5-3-6-4-3
Si NO se conoce de antemano la probabilidad de un fenmeno, entonces se debe construir su distribucin emprica (basadas en frecuencias)

Valor Cantidad Frec


3 4 4 3 4/10=0.4 3/10=0.3

SN(x)

4/10=0.4 7/10=0.7

5
6

2
1

2/10=0.2
1/10=0.1

9/10=0.9
10/10=1|

S_N(x) Funcin de Probabilidad Acumulada Emprica


1,2 1 0,8 0,6 0,4 0,2 0 3 4 5 6 SN(x)

TEST PARA EL CHEQUEO DE UNIFORMIDAD


Test de Kolmogorov-Smirnov: compara la distribucin de un conjunto de nmeros generados con una distribucin uniforme.

Este test compara: la funcin de Probabilidad Acumulada continua F(x) de una Distribucin Uniforme, con la funcin de Probabilidad Acumulada emprica SN(x), de una muestra de N observaciones.

TEST DE KOLMOGOROV-SMIRNOV
Por definicin, la Funcin de Probabilidad (o frecuencia) Acumulada (terica) UNIFORME entre 0 y 1 tiene:

* F(x) = x, 0<=x<=1
Mientras que una Funcin de Probabilidad (o frecuencia) Acumulada Emprica se encuentra:

* SN(x) = (cantidad de n.r. generados <=x ) / N


Este test se basa en la mayor desviacin absoluta entre F(x) y SN(x) sobre todo el rango de la variable random. Esto es: D = max|F(x) - SN(x)| La distribucin de D est tabulada como una funcin de N.

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 observacin ms pequea.) 2- Computa: D+ = max { i/N - R(i)}, 1<=i<=N

D- = max { R(i)- (i-1)/N},


3- Computa D = max (D+,D-).

1<=i<=N

El test procede de la siguiente manera (continuacin):

4- Determina el valor crtico, D para el nivel de significancia alfa y tamao de muestra N, (estos valores estn tabulados). 5- Si la muestra estadstica diferencia ha D es mas grande que el valor crtico, D, la hiptesis nula es rechazada. Si D <= D concluye que ninguna diferencia significativa ha sido detectada entre la verdadera distribucin de {R1,R2 ..., RN} y la distribucin uniforme.

Ejemplo Para Ejecutar Test De Uniformidad (Kolmogorov - Smirnov)


Suponer que se generaron cinco nmeros random y que se desea ejecutar el test de K.S. para un nivel de significancia = 0.05 R1 R2 R3 R3 R5 Orden cronolgico:
0.03 0.58 0.87 0.32 0.95

Orden numrico creciente:


R(1) 0.03 R(2) 0.32 R(3) 0.58 R(3) 0.87 R(5) 0.95

Ejemplo (continuacin)

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

Ejemplo (continuacin)
Evaluacin:
D.Terica F(x) = R(i)
0.03 0.32 0.58 0.87 0.95

D.Emprica SN(x)= i/N i/N R(i) (D+ :dif. sup.) R(i) - (i-1)/N (D- :dif. inf.)

0.2

0.4

0.6

0.8

0.17
0.03

0.08

0.02

0.05

0.12

0.18

0.27

0.15

Continuar este ejemplo.....

GENERACIN DE VARIABLES ALEATORIAS

(1era. Parte)

GENERACIN DE VARIABLES ALEATORIAS EMPRICAS DISCRETAS


Suponga que un determinado fenmeno aleatorio tiene la siguiente distribucin de probabilidad:
Variable Probabilidad Acumulada

20 grs. 19 grs. 18 grs.

0.3 0.4 0.3

0.3 0.7 1

TCNICA DE LA TRANSFORMADA INVERSA (Generalizacin de Montecarlo)


prob.acumulada

0.91

1 0.8 0.6 0.4 0.2 0 20 19 gramos 18

0.33

TECNICA DE LA TRANSFORMADA INVERSA (Generalizacin de Montecarlo)


1
prob.acumulada

0.8 0.6 0.4 0.2 0 20 19 gramos 18

TECNICA DE LA TRANSFORMADA INVERSA (Generalizacin de Montecarlo)


Variable Probabilidad Acumulada

20 grs. 19 grs. 18 grs.

0.3 0.4 0.3

0.3 0.7 1

R 0.3 entonces

x = 20 grs.

0.3 < R 0.7 entonces


0.7 < R 1 entonces

x = 19 grs.
x = 18 grs.

Transformada Inversa Distribuciones Empricas Continuas

Suponga que se han coleccionado 100 tiempos de reparacin de un elemento


intev.(hs) 0.0-0.5 0.5-1.0 1.0-1.5 1.5-2.0 frecuencia frec.relativa frec.acumulda 31 0.31 0.31 10 0.10 0.41 25 0.25 0.66 34 0.34 1

Transformada Inversa Distribuciones Contnuas


distribucin emprica
1

F ( x)
1 0.66

probabilidad acumulada

F(x)

0.8 0.6 0.4 0.2 0 0 0.5 1 1.5 2 tiempos de reparacin 0.31 0.41

Transformada Inversa
Grficamente
distribucin emprica
1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 1

Generamos Ri= 0.83 vamos hasta la curva y encontramos Xi

0.66

0.41 0.31

0 0.5 1 1.5 2

X1 F

Ri

Xi

Transformada Inversa
Algebraicamente:
distribucin emprica
1

Dado Ri= 0.83 1 (entre 0.66 y 1), 0.9 0.8 Xi es computado 0.7 0.6 por una interpolacin 0.5 0.4 lineal entre 0.3 0.2 1.5 y 2
0.1 0

0.66

0.41 0.31

0 0.5 1 1.5 2

Ri 0.66 X i 1.5 2 1.5 1 0.66

Transformada Inversa
Algebraicamente:
distribucin emprica
1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 1

Dado Ri= 0.83 (entre 0.66 y 1), Xi es computado por una interpolacin lineal entre 1.5 y 2

0.83
0.66

0.41 0.31

0 0.5 1 1.5 2

0.83 0.66 1.75 1.5 2 1.5 1 0.66

1.75

GENERACIN DE VARIABLES ALEATORIAS


(2da. Parte)
Emprica Discreta (Monte Carlo) Emprica Contnua (Interpolacin)
Terica Discreta: Poisson Terica Contnua: Uniforme, Exponencial, Normal

OK OK