Está en la página 1de 50

Captulo 4

Nmeros
Aleatorios

Simulacin/2002 Hctor Allende


Nmeros Aleatorios

Elemento Central en la Simulacin digital.


Definicin formal controvertida.
Elemento esencial en muchas reas del conocimiento
Ingeniera, Economa, Fsica, Estadstica, etc.
Definicin intuitiva: Una sucesin de nmeros
aleatorios puros, se caracteriza por que no existe
ninguna regla o plan que nos permita conocer sus
valores.
Los nmeros aleatorios obtenidos a travs de
algoritmos recursivos se llaman pseudoaleatorios.

Simulacin/2002 Hctor Allende


Nmeros Aleatorios

Disponer de un buen generador de nmeros


aleatorios es clave en:

Computacin Aleatorizada
Computacin Evolutiva
Algoritmos Aleatorizados
Verificacin de Algoritmos
Validacin de Algoritmos
Criptografa
etc.

Simulacin/2002 Hctor Allende


Nmeros Aleatorios

La gran disponibilidad de generadores de nmeros


aleatorios en muchos entornos y compiladores
puede llevarnos a pensar que para un usuario de
la simulacin no sera necesario estudiar estas
cuestiones.
Una leccin del pasado reciente nos obliga a sacar
lecciones y actuar con mucho cuidado con dichos
generadores (RANDU - IBM).
El Uso progresivo de modelos de simulacin cada
vez ms detallados exige una mayor calidad de los
generadores de nmeros aleatorios.

Simulacin/2002 Hctor Allende


Nmeros Aleatorios

Algunas ideas o propiedades de los generadores


I. Lagarias (1993) public un trabajo titulado Pseudo
Random Numbers en Statistical Science. Donde
estudia algunas propiedades tales como:
Expansividad : Una aplicacin d [0,1]2es expansiva
si | d ' ( x) | 1 x [0,1]
La idea es escoger d como una aplicacin
expansiva de manera que la inestabilidad
computacional proporcione aleatoriedad.

Simulacin/2002 Hctor Allende


Nmeros Aleatorios

No Linealidad: La composicin de aplicaciones no


lineales puede conducir a comportamientos
crecientemente no lineales Ej: d(x) = x2; d(n)(x) = x2n
Complejidad Computacional: La aleatoriedad de
Kolmogorov, tambin denominada incomprensibilidad
computacional. Consiste en constatar si la
aleatoriedad de una sucesin de nmeros es
incomprensible (problema decidible).
Impredecibilidad

Simulacin/2002 Hctor Allende


Nmeros Aleatorios

DEF 1: Kolmogorov (1987) [Complejidad Algortmica]


Una sucesin de nmeros es aleatoria sino puede
producirse eficientemente de una manera ms corta
que la propia serie.
DEF 2: LEcuyer (1990) [Impredicibilidad] Una
sucesin de nmeros es aleatoria si nadie que utilice
recursos computacionales razonables puede distinguir
entre la serie y una sucesin de nmeros
verdaderamente aleatoria de una forma mejor que
tirando una moneda legal para decidir cul es cul.
Obs: Esta definicin conduce a los denominados
generadores PT-perfectos usados en Criptografa.
Simulacin/2002 Hctor Allende
Nmeros Aleatorios
DEF 3: Un Nmero aleatorio es una realizacin 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


generacin de nmeros pseudo-aleatorios es:
u1, u2,..., un : es la uniforme (0 ; 1) ui ~ U(0,1).

DEF 4: Una sucesin de nmeros aleatorios {u1, u2,...,


un} es una sucesin de nmeros U(0;1), si tiene las
mismas propiedades estadsticas relevantes que dicha
sucesin de nmeros aleatorios.
Simulacin/2002 Hctor Allende
Nmeros Aleatorios
DEF 5: Una sucesin de nmeros aleatorios {ui}
es aleatorio si h-plas de nmeros sucesivos no
superpuestos se distribuyen aproximadamente.
como una [0,1]h, con h=1,2,..,n, para n
suficientemente grande.
Obs: h=2 tenemos (ui,ui+1) , i=1,2,..n , se distribuye
como una ley uniforme en [0,1]2.
Existe una gran de mtodos para generar
{ui} U(0,1) : -Uniformente distribuidas
- Independientes
- E[U]= ; V[U]= 1/12
- Perodo largo

Simulacin/2002 Hctor Allende


Nmeros Aleatorios

A las propiedades estadsticas anteriores se deben


agregar otras relativas a la eficiencia computacional:

Velocidad de respuesta
Consumo de memoria
Portabilidad
Parsimonia
Reproducibilidad
Mutabilidad
Perodo

Simulacin/2002 Hctor Allende


Nmeros Aleatorios
Mtodos de Generacin de Nmeros Aleatorios

1.- Mtodo de los cuadrados medios


2.- Mtodos Congruenciales
3.- Mtodo de registros desfasados

[Semilla - Algoritmo - Validacin]


P1 : Obtener semilla (valores iniciales)
P2 : Aplicacin de Algoritmos recursivos
P3 : Validacin del conjunto de datos
generados (Test de Aleatoriedad)

Simulacin/2002 Hctor Allende


Mtodos de los cuadrados Medios

Consiste en que cada nmero de una sucesin es


producido tomando los dgitos medios de un nmero
obtenido mediante la elevacin al cuadrado.
P1 : Obtener semilla (valores iniciales 445)
P2 : Aplicacin de Algoritmos recursivos (elevar
al cuadrado)
P3 : Validacin del conjunto de datos
generados

Simulacin/2002 Hctor Allende


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

Simulacin/2002 Hctor Allende


Generadores Congruenciales
Xn
Xn+1 = (a Xn + b) mod m ; Un
m

Los parmetros del algoritmo se llaman


-a multiplicador
-b sesgo
-m mdulo
- Xo semilla (valor inicial)

Simulacin/2002 Hctor Allende


Generadores Congruenciales

Obs: 1.- Cuando b=0 el generador se denomina


Generador congruencial multiplicativo.
2.- Cuando b0 el generador se denomina
Generador congruencial mixto.
3.- A pesar de la simplicidad una adecuada
eleccin de los parmetros de a, b y m,
permite obtener de manera eficiente una
larga e impredecible sucesin de nmeros
como para considerarse aleatoria.

Simulacin/2002 Hctor Allende


Generadores Congruenciales

Parmetros
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

Simulacin/2002 Hctor Allende


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 seleccin de los
parmetros (ver caso 1) y 3) )
iii) Dentro de selecciones de parmetros que conducen a
la misma longitud, algunas salidas parecen ms
aleatorias que otras.
iv) La representacin de pares (Xi, Xi+1) sugiere que
estos se disponen en un nmero finito de hiperplanos.

Simulacin/2002 Hctor Allende


Generadores Congruenciales

Los resultados tericos que veremos a continuacin


facilitan la eleccin de los parmetros de a y b su
demostracin puede verse en el texto clsico
D. Knuth (1981):
The Art of Computer Programming.
Ed. A. Wesley Vol N2

Simulacin/2002 Hctor Allende


Generadores Congruenciales

Proposicin 2.1
Un generador congruencial tiene su perodo mximo si y slo
si:
i) m.c.d (b, m) = 1 (primos relativos)
ii) a = 1 mod p ; para cada factor primo p de m.
iii) a = 1 mod 4 ; si 4 divide a m.
Puesto que b esta asociado en la prctica con el efecto de
traslacin, inicialmente asumiremos ( b=0), es decir partiremos
estudiando los generador congruencial multiplicativos.
Simulacin/2002 Hctor Allende
Generadores Congruenciales

Dem: Donald Knuth Vol 2 (1981)


Obs: 1) Lo anterior sugiere elegir m lo ms grande
posible, para asegurarnos un perodo largo
(posibles elecciones de m son; m=231 -1, m=216 +1)
2) Sea p el perodo de la secuencia de nmeros
aleatorios, si p=m el generador se llama de perodo
completo.
3) Si m es un nmero primo entonces el mximo
perodo se obtiene ssi a =1

Simulacin/2002 Hctor Allende


Generadores Congruenciales
Proposicin 2.2 Sea un generador multiplicativo (b=0)
[Xn+1 = a Xn mod m] tiene perodo p=(m-1), slo si p es
primo. El periodo divide a (m-1) y es (m-1) si y slo si a
es una raz primitiva de m-1, es decir a(m-1)/p 1 mod m,
para todos los factores primos p de (m-1).
Proposicin 2.3
Si a es un raz primitiva de m, ak mod m, lo es siempre que
k y m-1 sean primos relativos.
Equivalentemente
Si a es una raz primitiva de m, ak mod m lo es siempre
que ; mcd(k,m-1)=1

Simulacin/2002 Hctor Allende


Generadores Congruenciales
Dem: B. Ripley (1987) Stochastic SimulationEd. John
Wiley. pp 47
Obs: 1) En general los generadores congruenciales son
de la forma
Xn+1 = g (Xn, Xn-1,.... ,Xn-k ,...) mod m

g (x) = a Xn
g (x) = a Xn + b
g (x) = a Xn2 + b Xn + c

Usando g (x) = (a1 Xn-1 + a2 Xn-2 + ... + ar Xn-r), se obtiene


un generador de Fibonacci retardado. La teora de estos
generadores se puede ver en Marsaglia (1985)]
Simulacin/2002 Hctor Allende
Generadores Congruenciales

2) Una buena eleccin de m, permite obtener un generador


eficiente (ciclo mximo). Pero an se debe estudiar con
ms detalle la eleccin de a y b, pues se tienen muchos
grados de libertad.
3) Un buen generador congruencial debe ser:
i) De mximo perodo
ii) Su salida debe parecer aleatoria
iii) Poder implementar de forma eficiente en aritmtica
de 32 bits.

Simulacin/2002 Hctor Allende


Generadores Congruenciales

Un algoritmo de muy fcil implementacin del tipo


congruencial es m = 231-1
a = 75 (raz primitiva de m)

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


Xn
un = 31
2 1

Dicho generador se encuentra en las bibliotecas IMSL


y NAG

Simulacin/2002 Hctor Allende


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)


Xn
un = 31
2
Este generador proporciona tripletas consecutivas de
nmeros que caen en 15 planos ! Lo que sugiere cierta
previsiblidad en su salida (Mal Generador)

Simulacin/2002 Hctor Allende


Generadores Congruenciales

Barsaglia (1968) demostr que sucesiones consecutivas


no superpuestas de n nmeros aleatorios obtenidos de
generadores multiplicativos caen en, a lo sumo [n! m] 1/n
hiperplanos paralelos.
Algunas cotas de casos representativos
n=3 n=5 n=7 n=9 n=10
m = 216 73 23 16 14 13
m = 232 2953 220 80 48 41
Es decir, en un computador con palabras de 32 bits,
menos de 41 hiperplanos contendrn las 10-plas
Simulacin/2002 Hctor Allende
Generadores Congruenciales

En teora puede conseguirse que un buen generador con


m = 232 produzca 357.913.941 puntos independientes en
un cubo de dimensin 3, siendo el mnimo nmero 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 nmeros caen en 15 planos.

Simulacin/2002 Hctor Allende


Generadores de Registros Desfasados

Se basa en Generadores lineales recursivos mltiples


k
X n ( ai X n i ) mod ( m)
i 1

Xn
un
m
El estudio de este generador se asocia al Polinomio
caracterstico.
P( z ) Z k a1Z k 1... ak sobre un
lgebra finita Fm, con m elementos. [Niederreiter 1992]

Simulacin/2002 Hctor Allende


Generadores de Registros Desfasados

[Niederreiter 1992]

Cuando el polinomio es primitivo el perodo es (mk-1).


Debido a la complejidad del anlisis para m grande,
habitualmente se elige un m pequeo, generalmente 2
obteniendo generadores de bits de la forma

k
bn ai * bn i mod 2
i 1

donde ak = 1 ^ ai {0, 1}
Simulacin/2002 Hctor Allende
Generadores de Registros Desfasados

La adicin mdulo 2 es equivalente al XOR ( exclusivo)


0 XOR 0 = 0 0 XOR 1 = 1
1 XOR 1 = 0 1 XOR 0 = 1
Esto nos permite implementar registros de desplazamiento
Un generador propuesto Tausworthe (1985)

0 bnh bnq
bn bnh bnq mod 2 ; bn ; hq
1 bnh bnq

Simulacin/2002 Hctor Allende


Generadores de Registros Desfasados

En este caso los primeros q bits deben ser especificados,


esto es anlogo a la semilla de los generadores
congruenciales.
Este tipo de generador depende del largo de la palabra
Ejemplo: h = 3 ; q = 5 ; b1 = b2 = b3 = b4 = b5 = 1
b6 = (b3 + b1) mod 2 = 2 mod 2 = 0
b7 = (b4 + b2) mod 2 = 2 mod 2 = 0
b8 = (b5 + b3) mod 2 = 2 mod 2 = 0
b9 = (b6 + b4) mod 2 = 1 mod 2 = 1
b10 = (b7 + b5) mod 2 = 1 mod 2 = 1
...
b42 = (b39 + b37) mod 2 = 2 mod 2 = 0
Simulacin/2002 Hctor Allende
Conversin del Generador Binario

Transformar la sucesin {bi} en un nmero aleatorio U(0,1)


42
Consideremos {bi}i 1

b1 b2 b3 b4 b5 b6 b7 b8 b9 b10 b11 b12


1 1 1 1 1 0 0 0 1 1 0 1
......... b41 b42
......... 1 0

Simulacin/2002 Hctor Allende


Conversin del Generador Binario

Consideremos l = 4
y1 = b123 + b222 + b321 + b420 = 8 + 4 + 2 + 1 = 15
y 15
u1 = 1l
2 16
y2 = b523 + b622 + b721 + b820 = 8 + 0 + 0 + 0 = 8
y2 8
u2 = l
2 16
y3 = b923 + b1022 + b1121 + b1220 = 8 + 4 + 0 + 1 = 13
y 13
u3 = l3 .... y as sucesivamente
2 16

u 10
i i 1 15 8 13 13 4 2 5 9 1
, , , , , , , , ,...
16 16 16 16 16 16 16 16 16
Simulacin/2002 Hctor Allende
Generadores no Lineales

Dada la estructura reticular de los generadores lineales,


algunos autores sugirieron utilizar generadores no
lineales. (Ver Niederreiter (1992))
Usar un generador con funcin de transicin lineal,
produciendo una transformacin no lineal del estado en su
salida.
Usar un generador con funcin de transicin no lineal.

Simulacin/2002 Hctor Allende


Combinacin de Generadores

Una forma de incrementar el periodo e intentar evitar


regularidades que muestren los generadores lineales es
combinar (mezclar) diferentes generadores para obtener
generadores hbridos de mejor calidad que los
generadores originales.
Muchas de las combinaciones propuestas son heursticas
y algunas con resultados bastantes pobres.
X i in1 Yi in1
Por ejemplo sean e dos sucesiones
aleatorias, una sucesin combinada sera :
Zi = Xi Yi
donde es alguna operacin binaria
Simulacin/2002 Hctor Allende
Otros Generadores

Generadores Paralelos de nmeros aleatorios.


Sincronizacin; reproductibilidad; gasto transicin ]
Generadores de Fibonacci retardados
[ Sincronizacin; reproductibilidad; gasto transicin ]
Generadores Comerciales:
IMSL Generador congruencial multiplicativo m = 231 - 1
a = 16807; 397204094; 950706376
http://www.stat.cmu.edu/

Simulacin/2002 Hctor Allende


Validacin de Generadores
Congruenciales
Finalmente la fase de validacin se basa en ciertas
propiedades estadsticas que deben cumplirse a la
salida de los generadores de n aleatorios .
Los Test empricos que veremos a continuacin son
genricos y pueden usarse en la evaluacin de
generadores de n aleatorios, en generadores de
variables aleatorias y en la modelacin de entradas de
modelos de simulacin.
La mayora de los Test se encuentran disponibles en
paquetes estadsticos comerciales. SAS, Statistica, etc.

Simulacin/2002 Hctor Allende


Validacin de Nos Aleatorios

1) Test 2
Este es un test de Bondad de Ajuste. Es poco potente,
por lo que permite justificar el rechazo de una hiptesis,
pero proporciona escaso apoyo en la aceptacin.
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)

Simulacin/2002 Hctor Allende


Validacin de Nos Aleatorios

Efectuando una particin del soporte de X en k


subconjuntos I1, I2, ..., Ik : I i X I i I j

2 f i ei
k 2
~ ( k 1)
2
asint
i 1 ei

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


ei: nmero de observaciones esperadas en Ii bajo Ho

Simulacin/2002 Hctor Allende


Validacin de Nos Aleatorios

Obs: 1) Este Test considera aleatoridad de Fo = U(0,1)


2) Este Test tambin permite contrastar la uniformidad
S-dimensional de
X1 = (u1, u2, ..., us);
X2 = (us+1, us+2, ..., u2s);
...
Xn = (u(n-1)s+1, ..., uns)
en Fo = [0,1]s [Distribucin uniforme en el hipercubo]

Simulacin/2002 Hctor Allende


Validacin de Nos Aleatorios
2) Test de Kolmogorov - Smirnov (Test K-S)
Sea Fo una funcin de distribucin continua y sea Fn la funcin
de distribucin emprica de la muestra.
Bajo Ho: Fx(x) = Fo(x) se espera que Fn se aproxime a Fo
Dn = Sup | Fn(x) - Fo(x) |
xR

La distribucin exacta de Dn est tabulada para valores n 40


y distintos niveles de significacin .
Para muestras grandes se utiliza la distribucin asinttica de
Dn dada por

lim
n
P( n Dn z ) L( z ) 1 2 (1) e
i 1 2 i 2 z

i 1
Simulacin/2002 Hctor Allende
Test de Kolmogorov - Smirnov

Obs: En el caso particular de aleatoridad se considera


X(1) < X(2) < .... < X(n)

estadsticos de orden Fo(X(i)) = X(i) ^ Fn (X(i)) = i/n

i i 1
Dn = mx mx X (i ) ; X (i )
1i n n n

Simulacin/2002 Hctor Allende


Validacin de Nos Aleatorios
3) Test de Rachas
Dada la sucesin de n observaciones construimos la
sucesin de smbolos binarios definida por
1 si X i X i 1

0 si X i X i 1
Definimos racha creciente (decreciente) de longitud L a
un grupo seguido de L nmeros 1(+) nmeros 0(-).
Contando el nmero de rachas. Bajo aleatoridad de la
muestra se espera que su distribucin asinttica sea
normal:
2n 1 16n 9
N
3
;
90


Simulacin/2002 Hctor Allende
Ejemplo: Considere la siguiente secuencia de 20 nmeros
aleatrorios

0.43 0.28 0.33 0.27 0.12


0.31 0.42 0.01 0.32 0.45
0.98 0.79 0.99 0.55 0.67
0.74 0.16 0.20 0.12 0.58

- + - - + + - + + + - + -+ + - + - +
L=14 E[L]= 13, V[L]=3.23 Z = (14 -13) / 3.23

Z = 0.55 comparado con el valor crtico N ( 13 ;3.23)


El supesto de independencia no puede ser rechazado

Simulacin/2002 Hctor Allende


Test de Rachas

Test de Rachas por encima y debajo de la mediana.

Se cuentan el nmero de observaciones que se sitan a


un mismo lado de la mediana. La distribucin asinttica
del nmero de rachas bajo aleatoridad es normal:

n n
N 1 ;
2 2

Simulacin/2002 Hctor Allende


Test Serial

4) Test Serial
Este Test se usa para contrastar el grado de aleatoriedad
entre nmeros aleatorios sucesivos de una secuencia.
[Extensin del test Chi-Cuadrado]

Sea
X1 = (u1, ..., uk) X2 = (uk+1, ..., u2k) ... Xn = (u(n-1)k+1,..., unk)

Consideremos la n (k-plas). Se desea contrastar que X1,


X2, ..., Xn son v.a.i.i.d. uniformemente distribuidas en el
hipercubo k-dimensional unitario.

Simulacin/2002 Hctor Allende


Test Serial

Dividiendo el hipercubo rk en hipercubos elementales de


volumen 1/rk y sea Vj1, j2, ..., jk el nmero de k-plas que
caen dentro del elemento

ji 1 ji
; i 1,2,..., k j 1,2,..., r
r r
usando la estadstica
2
n
k


r
r

2
y V j1 , j2 ,..., jk k ~
j1 , j2 ,..., jk 1 r
n ( r k 1) gl

Simulacin/2002 Hctor Allende


Test Serial

Caso Especial (k=2)


X1 = (u1, u2) X2 = (u3, u4) ... Xn/2 = (u(n-1), un)

Particularmente el eje X e Y en r subintervalos de igual


longitud, generando r2-cubos del mismo tamao. El
nmero de pares esperado por cubo es

n 2
r
2
Simulacin/2002 Hctor Allende
Test Serial

Sea nij : el nmero de pares en el cuadrado (i, j)


i = 1,r j =1,r

Entonces la estadstica

2
2
2


r r
r n
y n nij 2 ~
2

( 2 ) i 1 j 1 r ( r 2 1) gl

Simulacin/2002 Hctor Allende


Validacin de Nos Aleatorios

Otros Test son:


Test de Permutaciones
Test de Poker
Test de Dependencia
Test de longitud de rachas
etc.

Simulacin/2002 Hctor Allende

También podría gustarte