Académique Documents
Professionnel Documents
Culture Documents
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
es expansiva
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)
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
multiplicador
-b
sesgo
-m
mdulo
- Xo
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
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
Generadores
Congruenciales
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
2X
31
n
Generadores
Congruenciales
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
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
sobre un
k
bn
i1ai*bni m
od2
Generadores de Registros
Desfasados
[Niederreiter 1992]
donde ak = 1 ^ ai {0, 1}
0
b
h
nhbnqmod2;bn1nq;hq
bn
Generadores de Registros
Desfasados
0 XOR 1 = 1
1 XOR 1 = 0
1 XOR 0 = 1
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
4i21
y
1
5
1
2
6
8
2
1
y
3
3
2
6
1
0
i165,8163,146,2156,916,.
Consideremos = 4
.... 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
in1
in
Yi
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
Validacin
Validacin de Nos
Aleatorios
1) Test
i
i
j
2
k
fi1
ei
2
2(k
1)
Validacin de Nos
Aleatorios
asint
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
m
x
1inm
xniX
i(i)
1
(i);X
n
Dn =
s0
i2n3
X
1
i
i
1
1;6n0
9
Validacin de Nos
Aleatorios
3) Test de Rachas
Ejemplo:
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
n2;
1
Test de Rachas
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
usando la estadstica
n2 r2
Test Serial
ry
()
n
r ~
2
2
rni
n
2
i1jj (r2
1)gl
Test Serial
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.