R-IV - inf.utfsm.clhallende/bajadas/RIV-numeros-aleatorios... · Simulación/2005 Héctor Allende 1...
Transcript of R-IV - inf.utfsm.clhallende/bajadas/RIV-numeros-aleatorios... · Simulación/2005 Héctor Allende 1...
Simulación/2005 Héctor Allende 1
R-IVNúmeros Aleatorios
Método de Monte- Carlo
Simulación/2005 Héctor Allende 2
• Elemento Central en la Simulación digital.• Definición formal controvertida.• Elemento esencial en muchas áreas del conocimiento
Ingeniería, Economía, Física, Estadística, etc.• Definición intuitiva: Una sucesión de números
aleatorios puros, se caracteriza por que no existe ninguna regla o plan que nos permita conocer sus valores.
• Los números aleatorios obtenidos a través de algoritmos recursivos se llaman pseudo-aleatorios.
Números Aleatorios
Simulación/2005 Héctor Allende 3
Disponer de un buen generador de números aleatorios es clave en:
• Computación Aleatorizada• Computación Evolutiva• Algoritmos Aleatorizados• Verificación de Algoritmos• Validación de Algoritmos• Criptografía• etc.
Números Aleatorios
Simulación/2005 Héctor Allende 4
! " # $%& '( ( ) '*
+(( ' &'!( *,) ( ( - *
./0
Simulación/2005 Héctor Allende 5
, & ( 0 ( &*, 1 + ( *, & & * , & 2 !3 !3 4 * 5 &' / 6) # +4 77! &( 1 )
Simulación/2005 Héctor Allende 6
8 -
+( !( 4 &( !1*
+ *5 1'9:;$::%$<9=;<>92(!$%<=? ( 9* / 9;?$9 9;?$; *
( ) ! *
@0 & ( ' *
# ! ! ( ) *
Simulación/2005 Héctor Allende 7
!
+ * A2 ( ) " B<'$C* +2 0 & *
* , D 2 ! (22!( 0 *
Simulación/2005 Héctor Allende 8
!
5 2"* ) ! ! ( ' ! 4 & &' ( ! / * 2" ) ! *
@ * " & & &( *+2'4 1 & / & 4 *
Simulación/2005 Héctor Allende 9
!
4* 5* A ! ( 4 2 & * 4 ! & !( 1*
Simulación/2005 Héctor Allende 10
!
! ( ! ! 4 !0( 4 () 2 !3' *
5 & ( ' ' ( 2 &
( *
Simulación/2005 Héctor Allende 11
• La gran disponibilidad de generadores de números aleatorios en muchos entornos y compiladores puede llevarnos a pensar que para un usuario de la simulación no sería necesario estudiar estas cuestiones.
• Una lección del pasado reciente nos obliga a sacar lecciones y actuar con mucho cuidado con dichos generadores (RANDU - IBM).
• El Uso progresivo de modelos de simulación cada vez más detallados exige una mayor calidad de los generadores de números aleatorios.
Números Aleatorios
Simulación/2005 Héctor Allende 12
+A8
( +A8 ?<EF.& (
+ &
=+
Simulación/2005 Héctor Allende 13
+A8
( ( ' $<<<)*
Simulación/2005 Héctor Allende 14
+A8
&)'9-A
Simulación/2005 Héctor Allende 15
# +A8
&;-A
Simulación/2005 Héctor Allende 16
# +A8
&;-A
# ( )$G
Simulación/2005 Héctor Allende 17
• DEF 1: Kolmogorov (1987) [Complejidad Algorítmica] Una sucesión de números es aleatoria sino puede producirse eficientemente de una manera más corta que la propia serie.
• DEF 2: L’Ecuyer (1990) [Impredicibilidad] Una sucesión de números es aleatoria si nadie que utilice recursos computacionales razonables puede distinguir entre la serie y una sucesión de números verdaderamente aleatoria de una forma mejor que tirando una moneda legal para decidir cuál es cuál.Esta definición conduce a los denominados generadores PT-perfectos usados en Criptografía.
Números Aleatorios
Simulación/2005 Héctor Allende 18
• DEF 3: Un Número aleatorio es una realización de una variable aleatoria que tiene asociada una ley de probabilidades F, en un espacio o modelo de Probabilidades Ω ℜ .
Obs: Una particular Ley de Probabilidad base para lageneración de números pseudo-aleatorios es:u1, u2,..., un : es la uniforme (0 ; 1) ui ~ U(0,1).
• DEF 4: Una sucesión de números aleatorios u1, u2,..., un es una sucesión de números U(0;1), si tiene las mismas propiedades estadísticas relevantes que dicha sucesión de números aleatorios.
Números Aleatorios
Simulación/2005 Héctor Allende 19
• DEF 5: Una sucesión de números aleatorios ui es aleatorio si h-úplas de números 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 métodos para generar ui ≈U(0,1) : -Uniformente distribuidas
- Independientes- E[U]= ½ ; V[U]= 1/12- Período largo
Números Aleatorios
Simulación/2005 Héctor Allende 20
A las propiedades estadísticas anteriores se debenagregar otras relativas a la eficiencia computacional:
• Velocidad de respuesta
• Consumo de memoria
• Portabilidad
• Parsimonia
• Reproducibilidad
• Mutabilidad
• Período
Números Aleatorios
Simulación/2005 Héctor Allende 21
Métodos de Generación de Números Aleatorios
1.- Método de los cuadrados medios2.- Métodos Congruenciales3.- Método de registros desfasados
[Semilla - Algoritmo - Validación]
P1 : Obtener semilla (valores iniciales)
P2 : Aplicación de Algoritmos recursivos
P3 : Validación del conjunto de datos generados (Test de Aleatoriedad)
Números Aleatorios
Simulación/2005 Héctor Allende 22
Consiste en que cada número de una sucesión es producido tomando los dígitos medios de un número obtenido mediante la elevación al cuadrado.
P1 : Obtener semilla (valores iniciales 445)
P2 : Aplicación de Algoritmos recursivos (elevar al cuadrado)
P3 : Validación del conjunto de datos generados
Métodos de los cuadrados Medios
Simulación/2005 Héctor Allende 23
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 ............... ...............
Métodos de los Cuadrados Medios
Simulación/2005 Héctor Allende 24
n+1 = (a n + b) mod m ;
Los parámetros del algoritmo se llaman
- a multiplicador
- b sesgo
- m módulo
- o semilla (valor inicial)
=
Generadores Congruenciales
Simulación/2005 Héctor Allende 25
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 adecuadaelección de los parámetros de “a, b y m”, permite obtener de manera eficiente una larga e impredecible sucesión de números como para considerarse “aleatoria”.
Generadores Congruenciales
Simulación/2005 Héctor Allende 26
Parámetrosa b m xo6 0 13 17 0 13 105 0 13 57 0 11 56 0 11 3
Caso Salidas1 6 10 8 9 2 12 7 3 5 4 11 1 6 102 5 9 11 12 6 3 8 4 2 1 7 10 5 93 12 8 1 5 12 8 1 5 12 8 1 5 12 84 2 3 10 4 6 9 8 1 7 5 2 3 10 45 7 9 10 5 8 4 2 1 6 3 7 9 10 4
5
Caso1234
Generadores Congruenciales
Simulación/2005 Héctor Allende 27
Algunas observaciones de las salidas de los generadores congruenciales:
i) Un generador congruencial tiene ciclos
iI) La longitud del ciclo depende de la selección de los parámetros (ver caso 1) y 3) )
iii) Dentro de selecciones de parámetros que conducen a la misma longitud, algunas salidas parecen más aleatorias que otras.
iv) La representación de pares (i, i+1) sugiere que estos se disponen en un número finito de hiperplanos.
Generadores Congruenciales
Simulación/2005 Héctor Allende 28
Los resultados teóricos que veremos a continuación facilitan la elección de los parámetros de “a y b” su demostración puede verse en el texto clásico
D. Knuth (1981):
“The Art of Computer Programming”. Ed. A. Wesley Vol N°2
Generadores Congruenciales
Simulación/2005 Héctor Allende 29
Proposición 2.1
Un generador congruencial tiene su período máximo si y sólo 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 práctica con el efecto de traslación, inicialmente asumiremos ( b=0), es decir partiremos estudiando los generador congruencial multiplicativos.
Generadores Congruenciales
Simulación/2005 Héctor Allende 30
Dem: Donald Knuth Vol 2 (1981)
Obs: 1) Lo anterior sugiere elegir “m” lo más grande posible, para asegurarnos un período largo (posibles elecciones de m son; m=231 -1, m=216 +1)
2) Sea p el período de la secuencia de números aleatorios, si p=m el generador se llama de período completo.
3) Si m es un número primo entonces el máximoperíodo se obtiene ssi a =1
Generadores Congruenciales
Simulación/2005 Héctor Allende 31
Proposición 2.2 Sea un generador multiplicativo (b=0) [Xn+1 = a Xn mod m] tiene período p=(m-1), sólo si “p” es primo. El periodo divide a (m-1) y es (m-1) si y sólo si “a”es una raíz primitiva de m-1, es decir a(m-1)/p ≠ 1 mod m, para todos los factores primos p de (m-1).
Proposición 2.3
Si a es un raíz primitiva de m, ak mod m, lo es siempre que k y m-1 sean primos relativos.
Equivalentemente
Si a es una raíz primitiva de m, ak mod m lo es siempre que ; mcd(k,m-1)=1
Generadores Congruenciales
Simulación/2005 Héctor Allende 32
Dem: B. Ripley (1987) “Stochastic Simulation”Ed. JohnWiley. pp 47Obs: 1) En general los generadores congruenciales son de la forma
n+1 = g (n, n-1,.... ,n-k ,...) mod m
g (x) = a ng (x) = a n + bg (x) = a n
2 + b n + c
Usando g (x) = (a1 n-1 + a2 n-2 + ... + ar n-r), se obtieneun generador de Fibonacci retardado. La teoría de estos generadores se puede ver en Marsaglia (1985)]
Generadores Congruenciales
Simulación/2005 Héctor Allende 33
2) Una buena elección de “m”, permite obtener un generador eficiente (ciclo máximo). Pero aún se debe estudiar con más detalle la elección de a y b, pues se tienen muchos grados de libertad.
3) Un buen generador congruencial debe ser:
i) De máximo período
ii) Su salida debe parecer aleatoria
iii) Poder implementar de forma eficiente en aritmética de 32 bits.
Generadores Congruenciales
Simulación/2005 Héctor Allende 34
Un algoritmo de muy fácil implementación del tipo congruencial es m = 231-1
a = 75 (raíz primitiva de m)
Xn = 75 Xn-1 mod (231-1)
un =
Dicho generador se encuentra en las bibliotecas IMSL y NAG
−
Generadores Congruenciales
Simulación/2005 Héctor Allende 35
La rutina RANDU, que IBM proporcionaba para sus equipos consideraba un modelo congruencialmultiplicativo con m = 231 ; a = 65539 ; b = 0
Xn = 65539 Xn-1 mod (231)
un =
¡ Este generador proporciona tripletas consecutivas de números que caen en 15 planos ! Lo que sugiere cierta previsiblidad en su salida (Mal Generador)
Generadores Congruenciales
Simulación/2005 Héctor Allende 36
Barsaglia (1968) demostró que sucesiones consecutivas no superpuestas de n números 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 contendrán las 10-úplas
Generadores Congruenciales
Simulación/2005 Héctor Allende 37
En teoría puede conseguirse que un buen generador con m = 232 produzca 357.913.941 puntos independientes en un cubo de dimensión 3, siendo el mínimo número 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 números caen en 15 planos.
Generadores Congruenciales
Simulación/2005 Héctor Allende 38
Se basa en Generadores lineales recursivos múltiples
El estudio de este generador se asocia al Polinomio característico.
sobre un
álgebra finita Fm, con m elementos. [Niederreiter 1992]
=
= =
−
−−= −
Generadores de Registros Desfasados
Simulación/2005 Héctor Allende 39
[Niederreiter 1992]
Cuando el polinomio es primitivo el período es (mk-1). Debido a la complejidad del análisis para m grande, habitualmente se elige un m pequeño, generalmente 2 obteniendo generadores de bits de la forma
donde ak = 1 ^ ai ∈ 0, 1
= =
−
Generadores de Registros Desfasados
Simulación/2005 Héctor Allende 40
La adición módulo 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
Simulación/2005 Héctor Allende 41
En este caso los primeros q bits deben ser especificados, esto es análogo 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 = 0b7 = (b4 + b2) mod 2 = 2 mod 2 = 0b8 = (b5 + b3) mod 2 = 2 mod 2 = 0b9 = (b6 + b4) mod 2 = 1 mod 2 = 1b10 = (b7 + b5) mod 2 = 1 mod 2 = 1...b42 = (b39 + b37) mod 2 = 2 mod 2 = 0
Generadores de Registros Desfasados
Simulación/2005 Héctor Allende 42
Transformar la sucesión bi en un número aleatorio (0,1)
Consideremos bi
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
=
Conversión del Generador Binario
Simulación/2005 Héctor Allende 43
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
=
=
=
==
Conversión del Generador Binario
Simulación/2005 Héctor Allende 44
Dada la estructura reticular de los generadores lineales, algunos autores sugirieron utilizar generadores no lineales. (Ver Niederreiter (1992))
• Usar un generador con función de transición lineal, produciendo una transformación no lineal del estado en su salida.
•Usar un generador con función de transición no lineal.
Generadores no Lineales
Simulación/2005 Héctor Allende 45
Una forma de incrementar el periodo e intentar evitar regularidades que muestren los generadores lineales es combinar (mezclar) diferentes generadores para obtener generadores híbridos de mejor calidad que los generadores originales.
Muchas de las combinaciones propuestas son heurísticas y algunas con resultados bastantes pobres.
Por ejemplo sean e dos sucesiones aleatorias, una sucesión combinada sería :
i = i i
donde “ ” es alguna operación binaria
=
=
Combinación de Generadores
∇
∇
Simulación/2005 Héctor Allende 46
• Generadores Paralelos de números aleatorios.
• Sincronización; reproductibilidad; gasto transición ]
•Generadores de Fibonacci retardados
•[ Sincronización; reproductibilidad; gasto transición ]
•Generadores Comerciales: IMSL Generador congruencial multiplicativo m = 231 - 1 a = 16807; 397204094; 950706376
http://www.stat.cmu.edu/
Otros Generadores
Simulación/2005 Héctor Allende 47
Finalmente la fase de validación se basa en ciertas propiedades estadísticas que deben cumplirse a la salida de los generadores de n°aleatorios .
Los Test empíricos que veremos a continuación son genéricos y pueden usarse en la evaluación de generadores de n° aleatorios, en generadores de variables aleatorias y en la modelación de entradas de modelos de simulación.
La mayoría de los Test se encuentran disponibles en paquetes estadísticos comerciales. SAS, Statistica, etc.
Validación de Generadores Congruenciales
Simulación/2005 Héctor Allende 48
1) Test
Este es un test de Bondad de Ajuste. Es poco potente, por lo que permite justificar el rechazo de una hipótesis, pero proporciona escaso apoyo en la aceptación.
Dada una muestra 1, 2, ..., n de una Fx() desconocida. Se desea contrastar.
Ho : Fx() = Fo() v/s H1 : Fx() ≠ Fo()
χ
Validación de Nos Aleatorios
Simulación/2005 Héctor Allende 49
Efectuando una partición del soporte de X en k subconjuntos 1, 2, ..., k :
fi : frecuencia absoluta del subconjunto i-ésimo (i)
ei: número de observaciones esperadas en i bajo Ho
φ≠∧=
( )
−
=
−=
χχ ~asint
Validación de Nos Aleatorios
Simulación/2005 Héctor Allende 50
Obs: 1) Este Test considera aleatoridad de Fo = U(0,1)
2) Este Test también permite contrastar la uniformidad S-dimensional de
1 = (u1, u2, ..., us); 2 = (us+1, us+2, ..., u2s); ... n = (u(n-1)s+1, ..., uns)
en Fo = [0,1]s [Distribución uniforme en el hipercubo]
Validación de Nos Aleatorios
Simulación/2005 Héctor Allende 51
2) Test de Kolmogorov - Smirnov (Test K-S)Sea Fo una función de distribución continua y sea Fn la función de distribución empírica de la muestra.
Bajo Ho: Fx(x) = Fo(x) se espera que Fn se aproxime a Fo
Dn = Sup | Fn(x) - Fo(x) |
La distribución exacta de Dn está tabulada para valores n ≤ 40 y distintos niveles de significación α.Para muestras grandes se utiliza la distribución asintótica de Dn dada por
x ∈ R
∞→
∞
=
−−−−==≤
Validación de Nos Aleatorios
Simulación/2005 Héctor Allende 52
Obs: En el caso particular de aleatoridad se considera
X(1) < X(2) < .... < X(n)
estadísticos de orden Fo(X(i)) = X(i) ^ Fn (X(i)) = /
Dn = ≤≤
−−−
Test de Kolmogorov - Smirnov
Simulación/2005 Héctor Allende 53
! ) ***8<'$*" !) ( *
& ! ( 1 ' * H & ( ! *+1'3 ! ( !,#*
Simulación/2005 Héctor Allende 54
0& 6 **8<'$ I* 4 ( *
Simulación/2005 Héctor Allende 55
Otros Test son:
• Test de Rachas
• Test Serial
• Test de Permutaciones
• Test de Poker
• Test de Dependencia
• Test de longitud de rachas
• etc
Validación de Nos Aleatorios
Simulación/2005 Héctor Allende 56
./.
./ & '' &*
8 / !0 4 & / 4 & / AJA5! ()& 2' . ' ' *
Simulación/2005 Héctor Allende 57
.#- 51&
$*A3 &(&9* *
;*E *%*. G*# () &(
?*0
:*J &
>*# '
Simulación/2005 Héctor Allende 58
.#- #
K && , 2 A5
K ) @ )
K & & //
K / & 4 / & & &.
5 4 & 4 & (! !( / . ! 4
Simulación/2005 Héctor Allende 59
Idea : Es la aproximación a la solución de un problema por medio del muestreo de un proceso al azar.
Esto no ayuda mucho lo que es el Método de Monte Carlopero podemos familiarizarnos por la vía de ejemplos:
Caso 1
x
y
=
π
≤+∧ℜ∈=
Método de Monte Carlo
Simulación/2005 Héctor Allende 60
Caso 2:
Sea g(x) una función y supongamos que deseamos conocer
Problema determinista
Sea u ~ (0,1) y sea x = uEntonces
E[g(u)] =
siendo
=
θ
( ) === −
Método de Monte Carlo
Simulación/2005 Héctor Allende 61
Luego
E[g(u)] =
Entonces transformamos la estimación de por el cálculo E[g(u)] por la vía de la ley de los grandes números.
=
θ
θ
∞→=
θ !
∞→→>− "" εθ
Método de Monte Carlo
Simulación/2005 Héctor Allende 62
Es decir podemos resolver un problema determinístico por medio del cálculo del valor esperado de una muestra grande.Algoritmo Valores iniciales, S1=0 ; S2 = 0
1.- Generar ui ((0,1))2.- Calcular g(ui)3.- Calcular4.- Repetir el cálculo k-veces
5.- Calcular ;
6.- Calcular el !
±=
∧θθ
S1 = S1 + g(ui)S2 = S2 + [g(ui)]2
=∧θ
!
−−⋅=
!
Método de Monte Carlo
Simulación/2005 Héctor Allende 63
Caso 3 : Para
Sea
Entonces
donde
Luego podemos estimar mediante el cálculo de E[h(y)]
≤≤= θ
−=
−−=
=
−⋅−+=
!
θ
θ
−+⋅−=
Método de Monte Carlo
Simulación/2005 Héctor Allende 64
Caso 4 :
θ puede ser calculado mediante
donde 1, 2, ..., n sucesiones v.a.i.i.d. (0,1)
=
θ
=
∧=
θ
! =∧θ
Método de Monte Carlo
Simulación/2005 Héctor Allende 65
Caso 5 : Para
Sea
Entonces
Luego siendo
∞
=
θ
−=+
−=+
=
≤≤−
=
θ
!
−=
=θ
Método de Monte Carlo
Simulación/2005 Héctor Allende 66
#$%&$
1.- Construir RGN, tipo congruencial Mixto y un RGN, regristro defasado. Verificar a lo menos 3 test de Aleatoriedad
2.- Derive un método aproximado para resolver este problema de integración, vía Simulación de Monte Carlo yproponga un Algoritmo
∞
∞−
= θ