Sie sind auf Seite 1von 17

Tema 9:

OPTIMIZACIN
DE MONTE CARLO

Frecuencias relativas del numero

de caras en el lanzamiento de una moneda


1.0

1.0

0.9
0.8

0.8
0.7

0.6

0.6
0.4
0.5
0.4

0.2
20

40

60

80

100
50

100

150

200

1.0

0.8

1.0

0.6

0.8

0.4

0.6

0.2

0.4

50

100

150

200

250

300

0.2

200

400

600

800

1000

ndice:
9.1. Generacin de nmeros aleatorios (en esta presentacin)
9.2. Simulacin de variables aleatorias (se ver en las prc=cas)
9.3. Integracin de Monte Carlo (se ver en las prc=cas)
9.4. Op=mizacin de Monte Carlo (se ver en las prc=cas)

Algoritmo de cristalizacin simulada (simulated annealing)

9.1. GENERACIN DE NMEROS


ALEATORIOS

9.1. Generacin de nmeros aleatorios


Lo primero que necesitamos a la hora de simular un fenmeno
aleatorio es disponer de algo que podamos considerar
realmente debido al azar y, en par:cular, valores que se
puedan suponer procedentes de una distribucin uniforme en
el intervalo (0,1), comnmente conocidos como nmeros
aleatorios.
Cmo obtener estos nmeros?

9.1. Generacin de nmeros aleatorios


Mtodos manuales: monedas, dados, ruletas, cartas, etc.

Inconvenientes: Lentos, no permiten almacenar resultados y pueden


surgir errores ocasionados por la imperfeccin de los disposi:vos.

Tablas:

TypeR (1927): tabla de 41600 nmeros aleatorios


(cifras centrales de la supercie de las parroquias inglesas)

Kendall y Babington Smith (1939): tabla de 100000




nmeros aleatorios (mquina mecnica)


Rand Corpora=on (1955): Tabla de un milln de


nmeros aleatorios (ruleta electrnica)


ERNIE (1957): mquina generadora de nmeros


aleatorios usada en la lotera inglesa.
Inconvenientes: Falta de rapidez y riesgo de agotar la tabla.

Tabla de la Rand Corporation

ERNIE

9.1. Generacin de nmeros aleatorios


Ordenadores: Generacin basada en operaciones aritm:cas.
John Von Neumann (1946): Mtodo de la parte central del
cuadrado: tomar el cuadrado del nmero aleatorio anterior y
tomar sus dgitos centrales.
Si estamos generando de 4 cifras y llegamos al 5232, calculamos

su cuadrado, 27373824, y el siguiente nmero que elegimos es el


de sus 4 dgitos centrales, 3738.

Inconvenientes: Len:tud, tendencia cclica y se aparecen ceros


pueden surgir problemas que de:enen el mtodo.

9.1. Generacin de nmeros aleatorios


Surge una cues:n lgica:

Cmo puede un mtodo determins=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 estads:co. De ah que se llamen nmeros
pseudoaleatorios o cuasialeatorios, aunque a menudo se les
llama aleatorios, con las lgicas reservas.

9.1. Generacin de nmeros aleatorios


Diremos que los nmeros aleatorios generados por cualquier mtodo
son buenos si:
- estn uniformemente distribuidos
- son estads:camente independientes
- son reproducibles en cualquier momento
Adems el mtodo debe ser rpido y requerir una mnima can:dad de
memoria.
Hoy en da la mayora de los lenguajes de programacin y programas de
clculo incluyen ru:nas de generacin de nmeros pseudoaleatorios.

9.1. Generacin de nmeros aleatorios


Un buen mtodo es el de generacin por congruencias
(Knuth, 1969)

xi+1 a xi + c (mod m) i = 1, 2, . . . , n
siendo a, c y m n
umeros enteros no negativos
Para cada valor x0, llamado semilla, obtenemos una sucesin de
nmeros dis:nta.
Obviamente, con este mtodo slo podemos obtener valores de 0 a
m-1, por lo que interesa que m sea grande.
Adems, todos los xi son enteros, por lo que si queremos obtener
nmeros aleatorios en el intervalo unidad tomaremos ui=xi/m.

9.1. Generacin de nmeros aleatorios


La sucesin entrar en un ciclo en, a lo sumo m pasos, es
peridica.

Por ejemplo, si tomamos a = c = x0 = 3, m=5




x1 es congruente con 12 mdulo 5, es decir, x1= 2
x2 es congruente con 9 mdulo 5, es decir, x2= 4
x3 es congruente con 15 mdulo 5, es decir, x3= 0
x4 es congruente con 3 mdulo 5, es decir, x4=3
La sucesin obtenida es 3,2,4,0, 3,2,4,0,.
m=5 pero el periodo es 4.

Un mtodo por congruencias es de periodo completo si su


periodo p es igual a su mximo posible valor, es decir, p=m.

9.1. Generacin de nmeros aleatorios


Knuth demostr que la sucesin:

xi+1 a xi + c (mod m) i = 1, 2, . . . , n
siendo a, c y m n
umeros enteros no negativos
es de periodo completo si y slo si se verican las siguientes
condiciones:
1. c y m son primos entre s
2. a es congruente con 1 mdulo g para todo g factor
primo de m
3. a es congruente con 1 mdulo 4 si m es ml:plo de 4

9.1. Generacin de nmeros 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 sucesin anterior, o bien, lo
que es ms natural, tomar la hora actual (segundos y centsimas de
segundo, por ejemplo) o el :empo que lleva funcionando el
ordenador.

9.1. Generacin de nmeros aleatorios

1.0

0.8

0.6

0.4

0.2

0.2

0.4

0.6

0.8

1.0

Histograma correspondiente a 100000 valores de la distribucin


uniforme en el intervalo (0,1) obtenidos con Mathema:ca.

9.1. Generacin de nmeros aleatorios

50000 valores de la distribucin uniforme en el cuadrado (0,1)(0,1)


obtenidos con Mathema:ca.

Das könnte Ihnen auch gefallen