Está en la página 1de 50

Captulo 4

Nmeros
Aleatorios

Simulacin/2002

Hctor

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

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

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

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

La idea es escoger d como una aplicacin expansiva


de manera que la inestabilidad computacional
proporcione aleatoriedad.
Simulacin/2002

Hctor

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

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

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 {u 1, 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

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

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

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

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

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

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

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

Simulacin/2002

Hctor

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

Xn
Un
m

Los parmetros del algoritmo se llaman


-a

multiplicador

-b

sesgo

-m

mdulo

- Xo

semilla (valor inicial)

Simulacin/2002

Hctor

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

Generadores
Congruenciales
Caso
1
2
3
4
5

Caso
1
2
3
4
5

6
5
12
2
7

10
9
8
3
9

Simulacin/2002

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

Hctor

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.
Simulacin/2002

Hctor

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

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

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

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

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

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

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 =

Xn

31
2 1

Dicho generador se encuentra en las bibliotecas IMSL


y NAG

Simulacin/2002

Hctor

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 = 231

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

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

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

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

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

bn

a *b
i 1

n i

donde ak = 1 ^ ai {0, 1}
Simulacin/2002

mod 2

Hctor

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)

bn bn h bn q mod 2

Simulacin/2002

0 bn h bn q
bn
; hq
1 bn h bn q
Hctor

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 = b 4 = 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

Conversin del Generador


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

42
{bi}i 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

Simulacin/2002

Hctor

Conversin del Generador


Binario
Consideremos = 4
y1 = b123 + b222 + b321 + b420 = 8 + 4 + 2 + 1 = 15
y1 15
u1 =
2 16

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


y2 8

u2 = 2 16

2
1
0
y3 = b923 + b10
2
+
b
2
+
b
2
= 8 + 4 + 0 + 1 = 13
11
12
y 13

u3 = 2

10
i i 1

Simulacin/2002

16 .... y as sucesivamente
15 8 13 13 4 2 5 9 1
, , , , , , , , ,...

16 16 16 16 16 16 16 16 16

Hctor

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

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.
Muchas de las combinaciones propuestas son heursticas
y algunas con resultados bastantes pobres.

Yi in1

X i in1

Por ejemplo sean


e
dos sucesiones
aleatorias, una sucesin combinada sera :
Zi = Xi

Yi

donde es alguna operacin binaria


Simulacin/2002

Hctor

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

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

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)

Simulacin/2002

v/s H1 : Fx(x) Fo(x)

Hctor

Validacin de Nos
Aleatorios
Efectuando una particin del soporte de X en k
subconjuntos I1, I2, ..., Ik : I i X I i I j
k

i 1

f i ei
ei

2 ( k 1)

asint

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


ei: nmero de observaciones esperadas en Ii bajo Ho
Simulacin/2002

Hctor

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

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

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

Simulacin/2002

Hctor

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

mx
Dn =

1i n

Simulacin/2002

i
i 1

mx X (i ) ; X (i )

n
n

Hctor

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:

N
Simulacin/2002

2n 1 16n 9
;

3
90

Hctor

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

Simulacin/2002

Hctor

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
Simulacin/2002

n n
1

2 2

Hctor

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

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
;

r r

i 1,2,..., k j 1,2,..., r

usando la estadstica
k

r
y
n

j1 , j2 ,..., jk 1

Simulacin/2002

V j1 , j2 ,..., jk

n
k
r

2
( r k 1) gl

Hctor

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
Simulacin/2002

Hctor

Test Serial

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


i = 1,r

j =1,r

Entonces la estadstica
2

2
y n nij 2
( 2 ) i 1 j 1
r
r

Simulacin/2002

2
( r 2 1) gl

Hctor

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

También podría gustarte