34

Teoría de los números Pseudo-Aleatorios (Congruencia lineal, Cuadrado medio)

Embed Size (px)

DESCRIPTION

Un poco de teoría sobre como se generan los números pseudo-aleatorios usando métodos como "el cuadrado medio" y"congruencia lineal"

Citation preview

Page 1: Teoría de los números Pseudo-Aleatorios (Congruencia lineal, Cuadrado medio)
Page 2: Teoría de los números Pseudo-Aleatorios (Congruencia lineal, Cuadrado medio)

GENERACIÓN DE NÚMEROS ALEATORIOS

(RANDOMS)

Page 3: Teoría de los números Pseudo-Aleatorios (Congruencia lineal, Cuadrado medio)

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).

Page 4: Teoría de los números Pseudo-Aleatorios (Congruencia lineal, Cuadrado medio)

NÚMEROS ALEATORIOS

0, x < 0

F(x) x, 0 x 1

1, x<1

1

F(x)

1

1, 0 x 1

f(x)

0, en otro caso

1

f(x)

1

Page 5: Teoría de los números Pseudo-Aleatorios (Congruencia lineal, Cuadrado medio)

NÚMEROS ALEATORIOS

* La probabilidad de observar un valor en un particularintervalo es independiente del valor previo observado.

* Todo punto en el rango tiene igual probabilidad de serelegido.

* Si el intervalo (0,1) es dividido en n sub-intervalos deigual longitud, el número esperado de observaciones encada intervalo es N/n. (N número de observacionestotales).

Page 6: Teoría de los números Pseudo-Aleatorios (Congruencia lineal, Cuadrado medio)

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.

GENERADOR DE NÚMEROS

ALEATORIOS

Page 7: Teoría de los números Pseudo-Aleatorios (Congruencia lineal, Cuadrado medio)

NÚMEROS PSEUD0-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.

Page 8: Teoría de los números Pseudo-Aleatorios (Congruencia lineal, Cuadrado medio)

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

Page 9: Teoría de los números Pseudo-Aleatorios (Congruencia lineal, Cuadrado medio)

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

Page 10: Teoría de los números Pseudo-Aleatorios (Congruencia lineal, Cuadrado medio)

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

Page 11: Teoría de los números Pseudo-Aleatorios (Congruencia lineal, Cuadrado medio)

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.

TÉCNICAS PARA GENERAR NÚMEROS ALEATORIOS

Page 12: Teoría de los números Pseudo-Aleatorios (Congruencia lineal, Cuadrado medio)

FUNCIONES DE NÚMEROS (PSEUDO) ALEATORIOS EN LA BIBLIOTECA

ESTÁNDAR.

El conjunto más 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 través de una llamada:

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

Page 13: Teoría de los números Pseudo-Aleatorios (Congruencia lineal, Cuadrado medio)

Generador Uniforme

-0.5

-0.25

0

0.25

0.5

0.75

1

1.25

1 27 53 79105 131157 183209 235 261287

ran

do

m

Generador Uniforme

-0.5

-0.25

0

0.25

0.5

0.75

1

1.25

0

ran

do

m

Generador Uniforme?

0

0.2

0.4

0.6

0.8

1

0 50 100

TEST PARA EL CHEQUEO DE

UNIFORMIDAD

Page 14: Teoría de los números Pseudo-Aleatorios (Congruencia lineal, Cuadrado medio)

Durante esta teoría le llamaremos:

F(x) a la Probabilidad Acumulada de una

Distribución Teórica, y

SN(x) a la Probabilidad Acumulada de una

Distribución Empírica

Page 15: Teoría de los números Pseudo-Aleatorios (Congruencia lineal, Cuadrado medio)

Valor Cantidad Frec SN(x)

Suponga que se necesita conocer la distribución que tiene la

siguiente secuencia de números?:

3-4-5-3-4-5-3-6-4-3

Si NO se conoce de antemano la probabilidad de un

fenómeno, entonces se debe construir su distribución

empírica (basadas en frecuencias)

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|

Page 16: Teoría de los números Pseudo-Aleatorios (Congruencia lineal, Cuadrado medio)

S_N(x) Función de Probabilidad Acumulada Empírica

0

0,2

0,4

0,6

0,8

1

1,2

3 4 5 6

SN(x)

Page 17: Teoría de los números Pseudo-Aleatorios (Congruencia lineal, Cuadrado medio)

TEST PARA EL CHEQUEO DE

UNIFORMIDAD

Test de Kolmogorov-Smirnov: compara la distribuciónde un conjunto de números generados con unadistribución uniforme.

Este test compara:

la función de Probabilidad Acumulada continua F(x) deuna Distribución Uniforme, con

la función de Probabilidad Acumulada empírica SN(x),de una muestra de N observaciones.

Page 18: Teoría de los números Pseudo-Aleatorios (Congruencia lineal, Cuadrado medio)

TEST DE KOLMOGOROV-SMIRNOV

Por definición, la Función de Probabilidad (o frecuencia)Acumulada (teórica) UNIFORME entre 0 y 1 tiene:

* F(x) = x, 0<=x<=1Mientras que una Función de Probabilidad (o frecuencia)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) ySN(x) sobre todo el rango de la variable random.

Esto es: D = max|F(x) - SN(x)|

La distribución de D está tabulada como una función de N.

Page 19: Teoría de los números Pseudo-Aleatorios (Congruencia lineal, Cuadrado medio)

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-).

Page 20: Teoría de los números Pseudo-Aleatorios (Congruencia lineal, Cuadrado medio)

El test procede de la siguiente manera (continuación):

4- Determina el valor crítico, D para el nivel designificancia alfa y tamaño de muestra N, (estos valoresestán tabulados).

5- Si la muestra estadística diferencia ha D es masgrande que el valor crítico, D, la hipótesis nula esrechazada.Si D <= D concluye que ninguna diferenciasignificativa ha sido detectada entre la verdaderadistribución de {R1,R2 ..., RN} y la distribuciónuniforme.

Page 21: Teoría de los números Pseudo-Aleatorios (Congruencia lineal, Cuadrado medio)

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:

Orden numérico creciente:

R1 R2 R3 R3 R5

0.03 0.58 0.87 0.32 0.95

R(1) R(2) R(3) R(3) R(5)

0.03 0.32 0.58 0.87 0.95

Page 22: Teoría de los números Pseudo-Aleatorios (Congruencia lineal, Cuadrado medio)

Ejemplo (continuación)

0.1 0.2 0.3 0.4 0.5 0.6

0.6

0.5

0.4

0.3

0.2

0.1

0

0.03 0.32 0.58

Page 23: Teoría de los números Pseudo-Aleatorios (Congruencia lineal, Cuadrado medio)

0

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.05

R(i) - (i-1)/N

(D- :dif. inf.)

0.03 0.12 0.18 0.27 0.15

Evaluación:

Ejemplo (continuación)

Continuar este ejemplo.....

Page 24: Teoría de los números Pseudo-Aleatorios (Congruencia lineal, Cuadrado medio)

GENERACIÓN DE VARIABLES ALEATORIAS

(1era. Parte)

Page 25: Teoría de los números Pseudo-Aleatorios (Congruencia lineal, Cuadrado medio)

GENERACIÓN DE VARIABLES ALEATORIAS EMPÍRICAS DISCRETAS

Variable Probabilidad Acumulada

20 grs. 0.3 0.3

19 grs. 0.4 0.7

18 grs. 0.3 1

Suponga que un determinado fenómeno aleatorio

tiene la siguiente distribución de probabilidad:

Page 26: Teoría de los números Pseudo-Aleatorios (Congruencia lineal, Cuadrado medio)

0

0.2

0.4

0.6

0.8

1

20 19 18

gramos

pro

b.a

cu

mu

lad

a

0.33

0.91

TÉCNICA DE LA TRANSFORMADA INVERSA (Generalización de Montecarlo)

Page 27: Teoría de los números Pseudo-Aleatorios (Congruencia lineal, Cuadrado medio)

0

0.2

0.4

0.6

0.8

1

20 19 18

gramos

pro

b.a

cu

mu

lad

a

TECNICA DE LA TRANSFORMADA INVERSA (Generalización de Montecarlo)

Page 28: Teoría de los números Pseudo-Aleatorios (Congruencia lineal, Cuadrado medio)

Variable Probabilidad Acumulada

20 grs. 0.3 0.3

19 grs. 0.4 0.7

18 grs. 0.3 1

0 R 0.3 entonces x = 20 grs.

0.3 < R 0.7 entonces x = 19 grs.

0.7 < R 1 entonces x = 18 grs.

TECNICA DE LA TRANSFORMADA INVERSA (Generalización de Montecarlo)

Page 29: Teoría de los números Pseudo-Aleatorios (Congruencia lineal, Cuadrado medio)

Transformada Inversa Distribuciones Empíricas Continuas

Suponga que se han coleccionado 100

tiempos de reparación de un elemento

intev.(hs) frecuencia frec.relativa frec.acumulda

0.0-0.5 31 0.31 0.31

0.5-1.0 10 0.10 0.41

1.0-1.5 25 0.25 0.66

1.5-2.0 34 0.34 1

Page 30: Teoría de los números Pseudo-Aleatorios (Congruencia lineal, Cuadrado medio)

Transformada Inversa Distribuciones Contínuas

distribución empírica

0

0.310.41

0.66

1

0

0.2

0.4

0.6

0.8

1

0.5 1 1.5 2

tiempos de reparación

pro

ba

bil

ida

d

ac

um

ula

da

F(x)

)(ˆ xF

Page 31: Teoría de los números Pseudo-Aleatorios (Congruencia lineal, Cuadrado medio)

Transformada Inversa

Gráficamente

distribución empírica

0

0.31

0.41

0.66

1

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

0.5 1 1.5 2

Generamos

Ri= 0.83

vamos hasta

la curva y

encontramos

Xi

Xi iRFX 1

1

Page 32: Teoría de los números Pseudo-Aleatorios (Congruencia lineal, Cuadrado medio)

Transformada Inversa

Algebraicamente:

distribución empírica

0

0.31

0.41

0.66

1

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

0.5 1 1.5 2

Dado Ri= 0.83

(entre 0.66 y 1),

Xi es computado

por una

interpolación

lineal entre

1.5 y 2

5.1266.01

66.05.1

i

i

RX

Page 33: Teoría de los números Pseudo-Aleatorios (Congruencia lineal, Cuadrado medio)

Transformada Inversa

Algebraicamente:

distribución empírica

0

0.31

0.41

0.66

1

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

0.5 1 1.5 2

Dado Ri= 0.83

(entre 0.66 y 1),

Xi es computado

por una

interpolación

lineal entre

1.5 y 2

1.75

0.83

5.1266.01

66.083.05.175.1

Page 34: Teoría de los números Pseudo-Aleatorios (Congruencia lineal, Cuadrado medio)

GENERACIÓN DE VARIABLES ALEATORIAS

(2da. Parte)

Empírica Discreta (Monte Carlo) OK

Empírica Contínua (Interpolación) OK

Teórica Discreta: Poisson

Teórica Contínua: Uniforme, Exponencial, Normal