optiimización de monte carlo uma
Post on 15-Jan-2016
239 Views
Preview:
DESCRIPTION
TRANSCRIPT
Tema 9:
OPTIMIZACIÓN DE MONTE CARLO
Frecuencias relativas del numero de caras en el lanzamiento de una moneda
20 40 60 80 100
0.4
0.5
0.6
0.7
0.8
0.9
1.0
50 100 150 200
0.2
0.4
0.6
0.8
1.0
50 100 150 200 250 300
0.2
0.4
0.6
0.8
1.0
200 400 600 800 1000
0.2
0.4
0.6
0.8
1.0
Índice:
9.1. Generación de números aleatorios (en esta presentación)
9.2. Simulación de variables aleatorias (se verá en las prác=cas)
9.3. Integración de Monte Carlo (se verá en las prác=cas)
9.4. Op=mización de Monte Carlo (se verá en las prác=cas)
Algoritmo de cristalización simulada (simulated annealing)
9.1. GENERACIÓN DE NÚMEROS ALEATORIOS
Lo primero que necesitamos a la hora de simular un fenómeno aleatorio es disponer de algo que podamos considerar realmente debido al azar y, en par:cular, valores que se puedan suponer procedentes de una distribución uniforme en el intervalo (0,1), comúnmente conocidos como números aleatorios.
¿Cómo obtener estos números?
9.1. Generación de números aleatorios
Métodos manuales: monedas, dados, ruletas, cartas, etc. Inconvenientes: Lentos, no permiten almacenar resultados y pueden surgir errores ocasionados por la imperfección de los disposi:vos.
Tablas: TypeR (1927): tabla de 41600 números aleatorios (cifras centrales de la superficie de las parroquias inglesas)
Kendall y Babington Smith (1939): tabla de 100000 números aleatorios (máquina mecánica) Rand Corpora=on (1955): Tabla de un millón de números aleatorios (ruleta electrónica) ERNIE (1957): máquina generadora de números aleatorios usada en la lotería inglesa. Inconvenientes: Falta de rapidez y riesgo de agotar la tabla.
9.1. Generación de números aleatorios
Tabla de la Rand Corporation
ERNIE
Ordenadores: Generación basada en operaciones aritmé:cas.
John Von Neumann (1946): Método de la parte central del cuadrado: tomar el cuadrado del número aleatorio anterior y tomar sus dígitos centrales.
Si estamos generando de 4 cifras y llegamos al 5232, calculamos su cuadrado, 27373824, y el siguiente número que elegimos es el de sus 4 dígitos centrales, 3738.
Inconvenientes: Len:tud, tendencia cíclica y se aparecen ceros pueden surgir problemas que de:enen el método.
9.1. Generación de números aleatorios
Surge una cues:ón lógica:
¿Cómo puede un método determinís=co dar resultados aleatorios?
La respuesta es que no son realmente aleatorios, pero lo parecen, es decir, pueden ser considerados aleatorios en un sen:do estadís:co. De ahí que se llamen números pseudoaleatorios o cuasialeatorios, aunque a menudo se les llama aleatorios, con las lógicas reservas.
9.1. Generación de números aleatorios
Diremos que los números aleatorios generados por cualquier método son “buenos” si:
-‐ están uniformemente distribuidos -‐ son estadís:camente independientes
-‐ son reproducibles en cualquier momento
Además el método debe ser rápido y requerir una mínima can:dad de memoria.
Hoy en día la mayoría de los lenguajes de programación y programas de cálculo incluyen ru:nas de generación de números pseudoaleatorios.
9.1. Generación de números aleatorios
Un buen método es el de generación por congruencias
(Knuth, 1969)
9.1. Generación de números aleatorios
Para cada valor x0, llamado semilla, obtenemos una sucesión de números dis:nta. Obviamente, con este método sólo podemos obtener valores de 0 a m-‐1, por lo que interesa que m sea grande.
Además, todos los xi son enteros, por lo que si queremos obtener números aleatorios en el intervalo unidad tomaremos ui=xi/m.
xi+1 � a · xi + c (mod m) i = 1, 2, . . . , nsiendo a, c y m numeros enteros no negativos
1
9.1. Generación de números aleatorios
La sucesión entrará en un ciclo en, a lo sumo m pasos, es periódica.
Por ejemplo, si tomamos a = c = x0 = 3, m=5 x1 es congruente con 12 módulo 5, es decir, x1= 2 x2 es congruente con 9 módulo 5, es decir, x2= 4 x3 es congruente con 15 módulo 5, es decir, x3= 0 x4 es congruente con 3 módulo 5, es decir, x4=3 La sucesión obtenida es 3,2,4,0, 3,2,4,0,……. m=5 pero el periodo es 4.
Un método por congruencias es de periodo completo si su periodo p es igual a su máximo posible valor, es decir, p=m.
Knuth demostró que la sucesión:
9.1. Generación de números aleatorios
es de periodo completo si y sólo si se verifican las siguientes condiciones:
1. c y m son primos entre sí 2. a es congruente con 1 módulo g para todo g factor primo de m
3. a es congruente con 1 módulo 4 si m es múl:plo de 4
xi+1 � a · xi + c (mod m) i = 1, 2, . . . , nsiendo a, c y m numeros enteros no negativos
1
9.1. Generación de números aleatorios
Se u:lizan:
m=235 a=27+1 c=1 (Rubinstein)
m=232 a=69069 c=1 (Vax) m=232 a=134775813 c=1 (Turbo Pascal)
Mathema:ca u:liza: m=2 305 843 009 213 693 951; a=1283839219676404755; c=0
La semilla se puede elegir arbitrariamente, si el programa corre varias veces, se puede tomar el úl:mo valor de la sucesión anterior, o bien, lo que es más natural, tomar la hora actual (segundos y centésimas de segundo, por ejemplo) o el :empo que lleva funcionando el ordenador.
9.1. Generación de números aleatorios
Histograma correspondiente a 100000 valores de la distribución uniforme en el intervalo (0,1) obtenidos con Mathema:ca.
0.2 0.4 0.6 0.8 1.0
0.2
0.4
0.6
0.8
1.0
9.1. Generación de números aleatorios
50000 valores de la distribución uniforme en el cuadrado (0,1)×(0,1) obtenidos con Mathema:ca.
top related