Variables Uniformes. Generadores de variables aleatorias uniformes. Propiedades buscadas. Para qué se utilizan?

Texto completo

(1)

Generadores de variables aleatorias

uniformes

Patricia Kisbye

FaMAF

27 de marzo, 2008

¿Para qué se utilizan?

Simulación. Muestreo. Análisis numérico. Testeo de programas. Juegos de azar. Toma de decisiones.

Variables Uniformes

En simulación se utilizan: en forma directa,

para generar distribuciones discretas y continuas, para generar conjuntos de variables aleatorias dependientes (procesos estocásticos y/o distribuciones multivariadas).

Propiedades buscadas

Una secuencia de númerosU1,U2, . . . ,UN es una

muestra de tamañoN deU(0,1)si:

1 son independientes. 2 son uniformes.

Un generador de v.a. uniformes debe cumplir: 1 ”repetibilidad” y ”portabilidad”, y

(2)

Un poco de historia

Procedimientos físicos (monedas, dados, bolilleros, . . . ).

(1927) Tipett: tabla de 40000 dígitos aleatorios (no uniformes).

(1939) Kendall y Babbington: dispositivo mecánico. Tabla de 100.000 números aleatorios.

(1955) Rand Corporation: ruido electrónico. Tabla de 1 millón de números aleatorios.

Principios generales

La secuencia generada debe ser intuitivamente aleatoria.

Esa aleatoriedad debe ser establecida teóricamente o, al menos, debe pasar ciertos tests de

aleatoriedad. La aleatoriedad de una secuencia jamás debe ser asumida sin esas verificaciones. Debe conocerse algo sobre las propiedades teóricas del generador.

Un ejemplo

Secuencia de von Neumann (1946): 1 X0: número de 5 dígitos. (03001) 2 X2

i : escrito con diez dígitos. (0009006001) 3 Xi +1: 5 dígitos centrales. (09006) 4 Volver a 2 3001,9006,81108,78507,63349,13095,71479,92474,51440 21000,41000,81000,61000,21000. . . con 4 dígitos: 3792,3792,3792,3792, . . .

Generador congruencial lineal

yi = (ayi1+c) mod M, 1≤i, xi = yi M, secuencia en el[0,1). y0: semilla a: multiplicador c: incremento M: módulo generadormixto: c"=0 generadormultiplicativo:c=0.

(3)

Propiedades

Secuencia con período de longitud máxima acotada porM oM 1. Repetibilidad. ¿Portabilidad? Elección apropiada dea,cyM. El generador multiplicativo: c =0 Elección dea,cyM

Cota paraM: representación de enteros en la computadora.

Longitud de la secuencia: números primos, raíces primitivas.

c=0: longitud máximaM 1. c"=0: longitud máximaM.

M =2k: longitud máxima 2k−2. (semilla impar) M =2k: fenómeno de no aleatoriedad en dígitos

menos significativos.

Un ejemplo con

M

primo

M =2311 a=16807

M 1=2312=2·32·7·11·31·151·331,

M: es un primo de Mersenne.

7: raíz primitiva,(5,M−1) =1, implica que

75 =16807 es raíz primitiva.

secuencia de longitud máximaM 1=2147483646.

M

=

2

k

,

c

=

0

yj =ajy0 mod (M)

secuencia de longitud máxima = 2k−2, paraaraíz primitiva.

facilita cálculos (desplazamiento de bits). no aleatoriedad en bits menos significativos. RANDU:M =231,a=216+3=65539.

(4)

Hiperplanos de dimensión

k

(yj,yj+1, . . . ,yj+k−1)

Cota máxima: (k!M)1/k: Estructura de red

Generador RANDU: Ternas ubicadas en 15 planos paralelos.

Generadores congruenciales, m=256

Generadores congruenciales

(5)

Algoritmos de Registro de Desplazamiento

Ejemplo: 1 Semilla: (1,1,1,1,1): 2 Desplazar 2 a la izquierda: (1,1,1,0,0). 3 Sumar: (0,0,0,1,1). 4 Desplazar 3 a la derecha: (0,0,0,0,0). 5 Nuevo vector: (0,0,0,1,1).

Generador de Fibonacci

ξi =ξi−r $ξi−s para todoi max(r,s) +1. 1 ξ ={0,1, . . . ,M1},M 2 entero y$es la suma,

la multiplicación o la resta móduloM.

2 χ={0,1}n, conn2 entero y$es la suma, la multiplicación, la resta, o el ”or” (inclusivo o

exclusivo) entre vectores de bitsn- dimensionales. 3 χ= [0,1]y$es la suma o la resta módulo 1.

Generadores portables

Numerical Recipes in C: The Art of Scientific Computing yj+1 =ayj mod M

a=75 =16807, M =2311=2147483647

"Buen generador".

Las multiplicaciones superan el rango de 32 bits. Algoritmo de Schrage.

Algoritmo de Schrage

M =aq+r q= [M/a], r =M mod a r <q, 0<z<M 1 0 a(z mod q), r[z/q]M 1 az mod M = ! a(z mod q)r[z/q] si es 0 a(z mod q)−r[z/q] +M c.c.

(6)

El generador ran0

yj+1 =ayj mod M

a=75 =16807, M =2311=2147483647

Schrage: se utilizaq =127773 yr =2836

Desventajas:

Sucesiones de números muy pequeños.

Inconvenientes en el plano: (yi,yi+1): el test χ2 falla paraN O(107)M2

Shuffling

Se ”almacenan” los últimos valores generados en una tabla, y la salida se obtiene eligiendo aleatoriamente un elemento de dicha tabla y reponiéndolo por un nuevo valor generado. El generador ran1. a=75 =16807,M =2311=2147483647 Tabla de 32 posiciones.

El generador ran1

RAN SALIDA 1 y v0 v31 2 3

Combinación de generadores

Theorem

Sean W1,W2, . . . ,Wn variables aleatorias discretas, tales

que w1 ∼U([0,d1]). Entonces W = ( n " j=1 Wj) mod d

es una v.a. uniforme discreta en[0,d−1].

(7)

Combinación de congruenciales

Combinar secuencias de generadores congruenciales. Sugerencia: restar.

Se obtiene un generador de v.a. uniformes. La longitud de la secuencia es mayor = mínimo común múltiplo de los generadores.

xn =40014xn1 mod 23185 yn =40692yn1 mod 231249 El 2 es el único factor común.

Período 2.3×1018

Combinación de congruenciales

El generador ran2

Utiliza 2 generadores congruenciales de enteros de 32 bits.

G1 )→(xi), (M1),G2 )→(yi), (M2).

Tabla de 32 posiciones:shuffling. Salida = combinación dex ey. xn =40014xn1 mod 23185 yn =40692yn1 mod 231249

ran2

y G1 G2 2 4 v31 v0 SALIDA=vj!y 1 3 vj

(8)

El generador ran3

Ver en Knuth,Seminumerical Algorithms, sección 3.2.1. Se construye inicialmente una tabla de 55

posiciones, con números aleatorios.

i yj recorren cíclicamente la tabla, separados por 24 posiciones.

Salida: diferencia entre los elementosi yj, que reemplaza a su vez el lugari.

El ciclo que se obtiene es de longitud 232.

ran3

SALIDA=vi!vj j vj vi i 1 2 3 j!i= 24 (55) j!>j!1 i!>i!1

Marsaglia - Zaman

Some portable very-long-period random number generators, George Marsaglia and Arif Zaman. Algunas consideraciones:

Comentarios sobre ran2

Sugerencias sobre otros generadores. El generador mzran

Consideraciones sobre ran2

La combinación de generadores produce mejoras. Sin embargo, conviene combinar estructuras diferentes.

Obtenerj mediante un ”and 31”.

Shuffling y otros generadores con secuencias más largas usando tablas.

Utilizar módulo 32 bits en lugar de 31 bits. Utilizar ”primos seguros” (safeprimes), con a=2k +α.

23169 231535 232

(9)

Consideraciones sobre ran2

Sólo puede ser ejecutado desde el programa principal.

¿Por qué no un rango de enteros?

Una subrutina iran2( ) que genere enteros: UNI( )=.5+.232830e-9*iran2()

VNI( )=.4656613e-9*iran2()

El generador mzran( )

Combina los generadores:

xn =69069xn1+1013904243 mod 232 Período: 232 yn =yn−3−yn−1 mod 23169 Período: 294 El período es mayor a 294, o 1028.

El generador mzran13( )

Combina los generadores:

xn =69069xn−1+1013904243 mod 232 Período: 232

yn =yn2−yn−3−c" mod 23218 Período: 295

El período es del orden de 2125, o 1036.

Bibliografía

Numerical Recipes. http://www.nr.com

George Marsaglia and Arif Zaman,Some portable very-long-period random number generators, Computers in Physics,(8)1, 117 (1994). P. L’Ecuyer: Efficient and Random Number

Generators. Commun. ACM 31(6), 742-774, (1988) Bustos, O.H. y Frery, A. C.,Simulação Estocástica: Teoria e Algoritmos (Versão Completa). Monografias de Matemática No. 49, IMPA, Rio de Janeiro, Brasil, ISBN 85-244-0053-6. 1992.

(10)

Cátedra I Modelos y Simulación

Figure

Actualización...

Related subjects :