You are on page 1of 50

Captulo 4

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.
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 es expansiva
si
La idea es escoger d como una aplicacin
expansiva de manera que la inestabilidad
computacional proporcione aleatoriedad.
] 1 , 0 [ 1 | ) ( ' | e > x x d
2
] 1 , 0 [ e d
Nmeros Aleatorios
No Linealidad: La composicin de aplicaciones no
lineales puede conducir a comportamientos
crecientemente no lineales Ej: d(x) = x
2
; d
(n)
(x) = x
2n
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 (O, 9, P).

Obs: Una particular Ley de Probabilidad base para la
generacin de nmeros pseudo-aleatorios es:
u
1
, u
2
,..., u
n
: es la uniforme (0 ; 1) u
i
~ U(0,1).

DEF 4: Una sucesin de nmeros aleatorios {u
1
, u
2
,...,
u
n
} 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 {u
i
}
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 (u
i
,u
i+1
) , i=1,2,..n , se distribuye
como una ley uniforme en [0,1]
2.


Existe una gran de mtodos para generar
{u
i
} ~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]
P
1
: Obtener semilla (valores iniciales)
P
2
: Aplicacin de Algoritmos recursivos
P
3
: Validacin del conjunto de datos
generados (Test de Aleatoriedad)

Nmeros Aleatorios
Consiste en que cada nmero de una sucesin es
producido tomando los dgitos medios de un nmero
obtenido mediante la elevacin al cuadrado.
P
1
: Obtener semilla (valores iniciales 445)
P
2
: Aplicacin de Algoritmos recursivos (elevar
al cuadrado)
P
3
: Validacin del conjunto de datos
generados
Mtodos de los cuadrados Medios
Ejemplo: Consideremos la semilla 445

X X
2
N Aleatorio
445 1| 9802 | 5 0,9802
9802 96| 0792 | 04 0,0792
792 6 | 2726 | 4 0,2726
2726 ............... ...............

Mtodos de los Cuadrados Medios
X
n+1
= (a X
n
+ b) mod m ;

Los parmetros del algoritmo se llaman
- a multiplicador
- b sesgo
- m mdulo
- X
o
semilla (valor inicial)

m
X
U
n
n
=
Generadores Congruenciales
Obs: 1.- Cuando b=0 el generador se denomina
Generador congruencial multiplicativo.
2.- Cuando b=0 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
Parmetros
a b m xo
6 0 13 1
7 0 13 10
5 0 13 5
7 0 11 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
5
Caso
1
2
3
4
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 (X
i
, X
i+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=2
31
-1, m=2
16
+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)
[X
n+1
= a X
n
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, a
k
mod m, lo es siempre que
k y m-1 sean primos relativos.
Equivalentemente
Si a es una raz primitiva de m, a
k
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
X
n+1
= g (X
n
, X
n-1
,.... ,X
n-k
,...) mod m

g (x) = a X
n

g (x) = a X
n
+ b
g (x) = a X
n
2
+ b X
n
+ c

Usando g (x) = (a
1
X
n-1
+ a
2
X
n-2
+ ... + a
r
X
n-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.
Generadores Congruenciales
Un algoritmo de muy fcil implementacin del tipo
congruencial es m = 2
31
-1
a = 7
5
(raz primitiva de m)
X
n
= 7
5
X
n-1
mod (2
31
-1)
u
n
=

Dicho generador se encuentra en las bibliotecas IMSL
y NAG
|
.
|

\
|
1 2
31
n
X
Generadores Congruenciales
La rutina RANDU, que IBM proporcionaba para sus
equipos consideraba un modelo congruencial
multiplicativo con m = 2
31
; a = 65539 ; b = 0
X
n
= 65539 X
n-1
mod (2
31
)
u
n
=

Este generador proporciona tripletas consecutivas de
nmeros que caen en 15 planos ! Lo que sugiere cierta
previsiblidad en su salida (Mal Generador)
|
.
|

\
|
31
2
n
X
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 = 2
16
73 23 16 14 13
m = 2
32
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 = 2
32
produzca 357.913.941 puntos independientes en
un cubo de dimensin 3, siendo el mnimo nmero de
hiperplanos que contiene estos puntos 10
8
, en contraste
con los 2953.
Para la famosa rutina RANDU de IBM,
X
n
= 65539 X
n
mod (2
31
)
las tripletas consecutivas de nmeros caen en 15 planos.
Generadores Congruenciales
Se basa en Generadores lineales recursivos mltiples




El estudio de este generador se asocia al Polinomio
caracterstico.
sobre un
lgebra finita F
m
, con m elementos. [Niederreiter 1992]
|
.
|

\
|
=
=

=

m
X
u
m X a X
n
n
k
i
i n i n
) ( mod ) (
1
k
k k
a Z a Z z P =

... ) (
1
1
Generadores de Registros Desfasados
[Niederreiter 1992]

Cuando el polinomio es primitivo el perodo es (m
k
-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 a
k
= 1 ^ a
i
e {0, 1}

2 mod *
1
|
.
|

\
|
=

=

k
i
i n i n
b a b
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)


( ) q h
b b
b b
b b b b
q n h n
q n h n
n q n h n n
<

=
=
= + =



;
1
0
; 2 mod
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
= b
2
= b
3
= b
4
= b
5
= 1
b
6
= (b
3
+ b
1
) mod 2 = 2 mod 2 = 0
b
7
= (b
4
+ b
2
) mod 2 = 2 mod 2 = 0
b
8
= (b
5
+ b
3
) mod 2 = 2 mod 2 = 0
b
9
= (b
6
+ b
4
) mod 2 = 1 mod 2 = 1
b
10
= (b
7
+ b
5
) mod 2 = 1 mod 2 = 1
...
b
42
= (b
39
+ b
37
) mod 2 = 2 mod 2 = 0
Generadores de Registros Desfasados
Transformar la sucesin {b
i
} en un nmero aleatorio U(0,1)

Consideremos {b
i
}

b
1
b
2
b
3
b
4
b
5
b
6
b
7
b
8
b
9
b
10
b
11
b
12

1 1 1 1 1 0 0 0 1 1 0 1
......... b
41
b
42

......... 1 0

1
42
= i
Conversin del Generador Binario
Consideremos l = 4
y
1
= b
1
2
3
+ b
2
2
2
+ b
3
2
1
+ b
4
2
0
= 8 + 4 + 2 + 1 = 15
u
1
=
y
2
= b
5
2
3
+ b
6
2
2
+ b
7
2
1
+ b
8
2
0
= 8 + 0 + 0 + 0 = 8
u
2
=
y
3
= b
9
2
3
+ b
10
2
2
+ b
11
2
1
+ b
12
2
0
= 8 + 4 + 0 + 1 = 13
u
3
= .... y as sucesivamente
16
15
2
1
=
l
y
16
8
2
2
=
l
y
16
13
2
3
=
l
y
{ } =
=
10
1 i
i
u
)
`

,...
16
1
,
16
9
,
16
5
,
16
2
,
16
4
,
16
13
,
16
13
,
16
8
,
16
15
Conversin del Generador Binario
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.
Generadores no Lineales
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.
Por ejemplo sean e dos sucesiones
aleatorias, una sucesin combinada sera :
Z
i
= X
i
Y
i

donde es alguna operacin binaria
{ }
n
i
i
X
1 =
{ }
n
i
i
Y
1 =
Combinacin de Generadores
V
V
Generadores Paralelos de nmeros aleatorios.
Sincronizacin; reproductibilidad; gasto transicin ]
Generadores de Fibonacci retardados
[ Sincronizacin; reproductibilidad; gasto transicin ]
Generadores Comerciales:
IMSL Generador congruencial multiplicativo m = 2
31
- 1
a = 16807; 397204094; 950706376
http://www.stat.cmu.edu/
Otros Generadores
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 de Generadores
Congruenciales
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 X
1
, X
2
, ..., X
n
de una F
x
(x)
desconocida. Se desea contrastar.
H
o
: F
x
(x) = F
o
(x) v/s H
1
: F
x
(x) = F
o
(x)

2
_
Validacin de N
os
Aleatorios
Efectuando una particin del soporte de X en k
subconjuntos I
1
, I
2
, ..., I
k
:



f
i
: frecuencia absoluta del subconjunto i-simo (I
i
)
e
i
: nmero de observaciones esperadas en I
i
bajo H
o
| = . =
j i i
I I X I
( )
) 1 (
2
1
2
2


=
k
k
i
i
i i
e
e f
_ _ ~
asint
Validacin de N
os
Aleatorios
Obs: 1) Este Test considera aleatoridad de F
o
= U(0,1)
2) Este Test tambin permite contrastar la uniformidad
S-dimensional de
X
1
= (u
1
, u
2
, ..., u
s
);
X
2
= (u
s+1
, u
s+2
, ..., u
2s
);
...
X
n
= (u
(n-1)s+1
, ..., u
ns
)

en F
o
= [0,1]
s
[Distribucin uniforme en el hipercubo]
Validacin de N
os
Aleatorios
2) Test de Kolmogorov - Smirnov (Test K-S)
Sea F
o
una funcin de distribucin continua y sea F
n
la funcin
de distribucin emprica de la muestra.
Bajo H
o
: F
x
(x) = F
o
(x) se espera que F
n
se aproxime a F
o

D
n
= Sup | F
n
(x) - F
o
(x) |

La distribucin exacta de D
n
est tabulada para valores n s 40
y distintos niveles de significacin o.
Para muestras grandes se utiliza la distribucin asinttica de
D
n
dada por


x e R
lim
n

=

= = s
1
2 1
2
) 1 ( 2 1 ) ( ) (
i
z i i
n
e z L z D n P
Validacin de N
os
Aleatorios
Obs: En el caso particular de aleatoridad se considera
X
(1)
< X
(2)
< .... < X
(n)

estadsticos de orden F
o
(X
(i)
) = X
(i)
^ F
n
(X
(i)
) = i/n


D
n
=
mx
1 n is s
)

|
.
|

\
|


n
i
X X
n
i
i i
1
; mx
) ( ) (
Test de Kolmogorov - Smirnov
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:

>
<
+
+
1
1
0
1
i i
i i
X X si
X X si
|
.
|

\
|

90
9 16
;
3
1 2 n n
N
Validacin de N
os
Aleatorios
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) / 23 . 3
Z = 0.55 comparado con el valor crtico N ( 13 ;3.23)
El supesto de independencia no puede ser rechazado
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:
|
.
|

\
|
+
2
;
2
1
n n
N
Test de Rachas
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
X
1
= (u
1
, ..., u
k
) X
2
= (u
k+1
, ..., u
2k
) ... X
n
= (u
(n-1)k+1
,..., u
nk
)

Consideremos la n (k-plas). Se desea contrastar que X
1
,
X
2
, ..., X
n
son v.a.i.i.d. uniformemente distribuidas en el
hipercubo k-dimensional unitario.
Test Serial
Dividiendo el hipercubo r
k
en hipercubos elementales de
volumen 1/r
k
y sea V
j1, j2, ..., jk
el nmero de k-plas que
caen dentro del elemento




usando la estadstica
r j k i
r
j
r
j
i i
,..., 2 , 1 ,..., 2 , 1 ;
1
= =
|
.
|

\
|

_
2
) 1 (
2
1 ,..., ,
,..., ,
~
2 1
2 1
gl r
r
j j j
k
j j j
k
k
k
k
r
n
V
n
r
y

=

|
.
|

\
|
=
Test Serial
Caso Especial (k=2)
X
1
= (u
1
, u
2
) X
2
= (u
3
, u
4
) ... X
n/2
= (u
(n-1)
, u
n
)

Particularmente el eje X e Y en r subintervalos de igual
longitud, generando r
2
-cubos del mismo tamao. El
nmero de pares esperado por cubo es

2
2
r
n
|
.
|

\
|
Test Serial
Entonces la estadstica
_
2
) 1 (
2
1 1
2
2
2
2
2
~
) (
gl r
r
i
r
j
n
ij
n
r
n
r
y

= =

|
.
|

\
|
=
Sea n
ij
: el nmero de pares en el cuadrado (i, j)
i = 1,r j =1,r
Test Serial
Otros Test son:
Test de Permutaciones
Test de Poker
Test de Dependencia
Test de longitud de rachas
etc.
Validacin de N
os
Aleatorios

You might also like