Vous êtes sur la page 1sur 49

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.

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.

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.

2
d

[
0
,
1
]
|d'(x)|1
x
[0,1]
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
si

es expansiva

La idea es escoger d como una aplicacin expansiva


de manera que la inestabilidad computacional
proporcione aleatoriedad.

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

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.

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.

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

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

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)

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

Mtodos de los Cuadrados


Medios
Ejemplo: Consideremos la semilla 445

X2

N Aleatorio

445

1| 9802 | 5

0,9802

9802

96| 0792 | 04

0,0792

792

6 | 2726 | 4

0,2726

2726

...............

...............

X
n
U
n
m

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

Los parmetros del algoritmo se llaman


-a

multiplicador

-b

sesgo

-m

mdulo

- Xo

semilla (valor inicial)

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.

Generadores
Congruenciales
Caso
1
2
3
4
5

Caso
1
2
3
4
5

6
5
12
2
7

10
9
8
3
9

a
6
7
5
7
6

8
11
1
10
10

9
12
5
4
5

Parmetros
b
m
0
13
0
13
0
13
0
11
0
11

2
6
12
6
8

xo
1
10
5
5
3

Salidas
12
7
3
8
8
1
9
8
4
2

3
4
5
1
1

5
2
12
7
6

4
1
8
5
3

11
7
1
2
7

1
10
5
3
9

6
5
12
10
10

10
9
8
4
4

Generadores
Congruenciales
Algunas observaciones de
generadores congruenciales:

las

salidas

de

los

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.

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

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.

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

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

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

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.

X
2
31
n

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


un =

Dicho generador se encuentra en las bibliotecas IMSL


y NAG

2X
31
n
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)
un =

Este generador proporciona tripletas consecutivas de


nmeros que caen en 15 planos ! Lo que sugiere cierta
previsiblidad en su salida (Mal Generador)

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

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.

(
a
X
)
m
o
d
(
)

P
(z
u
)
Z
m

a
Z
.
a
k
nn1nini
k1
k

1k

Generadores de Registros
Desfasados

Se basa en Generadores lineales recursivos mltiples

El estudio de este generador se asocia al Polinomio


caracterstico.

sobre un

lgebra finita Fm, con m elementos. [Niederreiter 1992]

k
bn
i1ai*bni m
od2

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

donde ak = 1 ^ ai {0, 1}

0
b

h
nhbnqmod2;bn1nq;hq
bn
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)

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 ; b 1 = b2 = b3 = b4 = b 5 = 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

4i21

Conversin del Generador


Binario
Transformar la sucesin {bi} en un nmero aleatorio U(0,1)
Consideremos {bi}
b1 b2
1
1
.........
.........

b3 b4 b5 b6 b7 b8 b9 b10 b11 b12


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

y
1
5
1

2
6
8
2

1
y
3
3

2
6
1
0
i165,8163,146,2156,916,.

Conversin del Generador


Binario

Consideremos = 4

y1 = b123 + b222 + b321 + b420 = 8 + 4 + 2 + 1 = 15


u1 =

y2 = b523 + b622 + b721 + b820 = 8 + 0 + 0 + 0 = 8


u2 =

y3 = b923 + b1022 + b1121 + b1220 = 8 + 4 + 0 + 1 = 13


u3 =

.... y as sucesivamente

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.

Combinacin
Generadores

de

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.

in1

in

Muchas de las combinaciones propuestas son heursticas


y algunas con resultados bastantes pobres.
Por ejemplo sean
e
dos sucesiones
aleatorias, una sucesin combinada sera :
Zi = Xi

Yi

donde es alguna operacin binaria

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/

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.

Validacin
Validacin de Nos
Aleatorios

1) Test

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)

i
i
j
2
k

fi1
ei
2
2(k
1)
Validacin de Nos
Aleatorios

Efectuando una particin del soporte de X en k


subconjuntos I1, I2, ..., Ik :

asint

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

ei: nmero de observaciones esperadas en Ii bajo Ho

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]

lim
P
(nD
z)L
(z)12
(
1)e

Validacin de Nos
Aleatorios
2) Test de Kolmogorov - Smirnov (Test K-S)

2
i

1
2
i
z
n
n i
1

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

m
x

1inm
xniX
i(i)
1
(i);X
n

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

Dn =

s0
i2n3
X
1
i
i

1
1;6n0
9

Validacin de Nos
Aleatorios

3) Test de Rachas

Dada la sucesin de n observaciones construimos la


sucesin de smbolos binarios definida por

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:

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,

Z = 0.55

V[L]=3.23

Z = (14 -13) / 3.23

comparado con el valor crtico N ( 13 ;3.23)

El supesto de independencia no puede ser rechazado

n2;
1

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:

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.

jn
y
1iV
ik j1,r

12.r;jik

1j1,,22..jkk
jrn
,k22~

1
.r(2rk1)gl
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

usando la estadstica

n2 r2

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

ry
()
n
r ~
2
2
rni
n
2
i1jj (r2
1)gl
Test Serial

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


i = 1,r

j =1,r

Entonces la estadstica

Validacin de Nos
Aleatorios
Otros Test son:
Test de Permutaciones
Test de Poker
Test de Dependencia
Test de longitud de rachas
etc.

Vous aimerez peut-être aussi