Optiimización de Monte Carlo UMA

17
Tema 9: OPTIMIZACIÓN DE MONTE CARLO

description

Tema 9 Optimización UMA

Transcript of Optiimización de Monte Carlo UMA

Page 1: Optiimización de Monte Carlo UMA

Tema 9:

OPTIMIZACIÓN DE MONTE CARLO

Page 2: Optiimización de Monte Carlo UMA

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

Page 3: Optiimización de Monte Carlo UMA

Í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)    

Page 4: Optiimización de Monte Carlo UMA

9.1.  GENERACIÓN  DE  NÚMEROS  ALEATORIOS  

Page 5: Optiimización de Monte Carlo UMA

       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

Page 6: Optiimización de Monte Carlo UMA

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

Page 7: Optiimización de Monte Carlo UMA

Tabla de la Rand Corporation

Page 8: Optiimización de Monte Carlo UMA

ERNIE

Page 9: Optiimización de Monte Carlo UMA

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

Page 10: Optiimización de Monte Carlo UMA

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

Page 11: Optiimización de Monte Carlo UMA

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

Page 12: Optiimización de Monte Carlo UMA

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

Page 13: Optiimización de Monte Carlo UMA

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.  

Page 14: Optiimización de Monte Carlo UMA

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

Page 15: Optiimización de Monte Carlo UMA

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.  

Page 16: Optiimización de Monte Carlo UMA

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

Page 17: Optiimización de Monte Carlo UMA

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.