Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Apunte Teorico MC 2005
Apunte Teorico MC 2005
Investigacin Operativa I
Cursada 2005
SIMULACIN
MTODO MONTE CARLO
Simulacin : es el proceso de disear y desarrollar un modelo computarizado de un
sistema o proceso y conducir experimentos con este modelo con el propsito de entender
el comportamiento del sistema o evaluar varias estrategias con las cuales se puede operar
el sistema (Shannon Robert)
Modelo de simulacin: conjunto de hiptesis acerca del funcionamiento del sistema
expresado como relaciones matemticas y/o lgicas entre los elementos del sistema.
Proceso de simulacin: ejecucin del modelo a travs del tiempo en un ordenador
para generar muestras representativas del comportamiento.
Mtodos de simulacin
Simulacin estadstica
variables aleatorias.
Simulacin continua: Los estados del sistema cambian continuamente su valor. Estas
simulaciones se modelan generalmente con ecuaciones diferenciales.
Simulacin por eventos discretos: Se define el modelo cuyo comportamiento vara en
instantes del tiempo dados. Los momentos en los que se producen los cambios son los que
se identifican como los eventos del sistema o simulacin.
Simulacin por autmatas celulares: Se aplica a casos complejos, en los que se divide al
comportamiento del sistema en subsistemas ms pequeos denominadas clulas. El
resultado de la simulacin est dado por la interaccin de las diversas clulas.
Investigacin Operativa I
Cursada 2005
NO
Programar el modelo
NO
Est validada?
Est verificada?
SI
S
Disear el experimento
NO
Documentar y
Poner en prctica
Est completa?
Lenguajes de simulacin
Simulacin Continua: 1130/CSMP, 360 CSMP y DYNAMO, MISTRAL
Simulacin a Eventos Discretos: GPSS, SIMSCRIPT, SDL/SIM.
Para casos simples podemos recurrir a la utilizacin de planillas de clculo.
Tambin podemos implementar aplicaciones en los lenguajes Fortran, C++,
Java, Dephi,...
Investigacin Operativa I
Cursada 2005
442 = 1936 93
Mtodos Congruenciales:
xn =(axn-1 + c) (mod m
Transformacin Inversa
x=F-1(x) siendo F(x)=Prob(X<=x)
Investigacin Operativa I
Cursada 2005
INTRODUCCIN
Bajo el nombre de Mtodo Monte Carlo o Simulacin Monte Carlo se agrupan una
serie de procedimientos que analizan distribuciones de variables aleatorias usando simulacin
de nmeros aleatorios.
El Mtodo de Monte Carlo da solucin a una gran variedad de problemas
matemticos haciendo experimentos con muestreos estadsticos en una computadora. El
mtodo es aplicable a cualquier tipo de problema, ya sea estocstico o determinstico.
Generalmente en estadstica los modelos aleatorios se usan para simular fenmenos
que poseen algn componente aleatorio. Pero en el mtodo Monte Carlo, por otro lado, el
objeto de la investigacin es el objeto en s mismo, un suceso aleatorio o pseudo-aleatorio se
usa para estudiar el modelo.
A veces la aplicacin del mtodo Monte Carlo se usa para analizar problemas que no
tienen un componente aleatorio explcito; en estos casos un parmetro determinista del
problema se expresa como una distribucin aleatoria y se simula dicha distribucin. Un
ejemplo sera el famoso problema de las Agujas de Bufn.
La simulacin de Monte Carlo tambin fue creada para resolver integrales que no se
pueden resolver por mtodos analticos, para solucionar estas integrales se usaron nmeros
aleatorios. Posteriormente se utiliz para cualquier esquema que emplee nmeros aleatorios,
usando variables aleatorias con distribuciones de probabilidad conocidas, el cual es usado
para resolver ciertos problemas estocsticos y determinsticos, donde el tiempo no juega un
papel importante.
HISTORIA
El mtodo fue llamado as por el principado de Mnaco por ser ``la capital del juego
de azar'', al tomar una ruleta como un generador simple de nmeros aleatorios. El nombre y el
desarrollo sistemtico de los mtodos de Monte Carlo datan aproximadamente de 1944 con el
desarrollo de la computadora. Sin embargo hay varias instancias (aisladas y no desarrolladas)
en muchas ocasiones anteriores a 1944.
El uso real de los mtodos de Monte Carlo como una herramienta de investigacin,
proviene del trabajo de la bomba atmica durante la Segunda Guerra Mundial. Este trabajo
involucraba la simulacin directa de problemas probabilsticos de hidrodinmica
concernientes a la difusin de neutrones aleatorios en material de fusin.
An en la primera etapa de estas investigaciones, John von Neumann y Stanislao Ulam
refinaron esta curiosa ``Ruleta rusa'' y los mtodos``de divisin''. Sin embargo, el desarrollo
sistemtico de estas ideas tuvo que esperar el trabajo de Harris y Herman Kahn en 1948.
Aproximadamente en el mismo ao, Fermi, Metropolos y Ulam obtuvieron estimadores para
los valores caractersticos de la ecuacin de Schrdinger para la captura de neutrones a nivel
nuclear.
Alrededor de 1970, los desarrollos tericos en complejidad computacional comienzan
a proveer mayor precisin y relacin para el empleo del mtodo Monte Carlo. La teora
identifica una clase de problemas para los cuales el tiempo necesario para evaluar la solucin
exacta al problema crece con la clase, al menos exponencialmente con M. La cuestin a ser
resuelta era si MC pudiese o no estimar la solucin al problema de tipo intratable con una
adecuacin estadstica acotada a una complejidad temporal polinomial en M. Karp(1985)
4
Investigacin Operativa I
Cursada 2005
muestra esta propiedad para estimar en una red plana multiterminal con arcos fallidos
aleatorios. Dyer(1989) utiliza MC para estimar el volumen de un convex body en el espacio
Euclidiano M-dimensional. Broder(1986), Jerrum y Sinclair (1988) establecen la propiedad
para estimar la persistencia de una matriz o en forma equivalente, el nmero de matching
perfectos en un grafo bipartito.
ALGORITMOS
El algoritmo de Simulacin Monte Carlo Crudo o Puro est fundamentado en la
generacin de nmeros aleatorios por el mtodo de Transformacin Inversa, el cual se basa en
las distribuciones acumuladas de frecuencias:
Determinar la/s V.A. y sus distribuciones acumuladas(F)
Generar un nmero aleatorio
uniforme (0,1).
Iterar tantas veces como
Determinar el valor de la V.A. para el nmero
muestras necesitamos
aleatorio generado de acuerdo a las clases que
tengamos.
Calcular media, desviacin estndar error y realizar el histograma.
Analizar resultados para distintos tamaos de muestra.
Otra opcin para trabajar con Monte Carlo, cuando la variable aleatoria no es
directamente el resultado de la simulacin o tenemos relaciones entre variables es la siguiente:
Investigacin Operativa I
Cursada 2005
Establecer lmites y reglas de muestreo para las fdp: conocemos que valores
pueden adoptar las variables.
Definir Scoring: Cuando un valor aleatorio tiene o no sentido para el modelo a
simular.
Estimacin Error: Con que error trabajamos, cuanto error podemos aceptar para
que una corrida sea vlida?
Tcnicas de reduccin de varianza.
Paralelizacin y vectorizacin: En aplicaciones con muchas variables se estudia
trabajar con varios procesadores paralelos para realizar la simulacin.
EJEMPLO PRACTICO I
Tenemos la siguiente distribucin de probabilidades para una demanda aleatoria y
queremos ver que sucede con el promedio de la demanda en varias iteraciones:
Frecuencia
Demanda
1.00
0.80
0.60
0.40
0.40
0.20
0.20
0.10
0.20 0.10
0.00
42
45
48
51
54
Unidades
Frecuencia
42
0.10
Frecuencia
Acumulada
0.10
45
0.20
0.30
48
0.40
0.70
51
0.20
0.90
54
0.10
1.00
Generando los valores aleatorios vamos a ver como se obtiene el valor de la demanda
para cada da, interesndonos en este caso como es el orden de aparicin de los valores. Se
busca el nmero aleatorio generado en la tabla de probabilidades acumuladas, una vez
6
Investigacin Operativa I
Cursada 2005
Frecuencias
encontrado( si no es el valor exacto, ste debe se menor que el de la fila seleccionada pero
mayor que el de la fila anterior), de esa fila tomada como solucin se toma el valor de las
unidades (Cuando trabajamos en Excel debemos tomar el lmite inferior del intervalo para
busca en las acumuladas, para poder emplear la funcin BUSCARV(), para 42 sera 0, para 43
0,100001 y as sucesivamente). Ejemplo: Supongamos que el nmero aleatorio generado sea
0,52, a qu valor de unidades corresponde? Nos fijamos en la columna de frecuencias
acumuladas, ese valor exacto no aparece,
Demanda
el siguiente mayor es 0,70 y corresponde
a 48 unidades.
1.20
Se puede apreciar mejor en el
1.00
1.00
grfico,
trazando una recta desde el eje de
0.90
0.80
la frecuencia hasta que intersecta con la
0.70
0.60
lnea de la funcin acumulada, luego se
0,52
0.40
baja a la coordenada de unidades y se
0.30
0.20
obtiene el valor correspondiente; en este
0.10
0.00
caso 48.
42
45
48
51
54
Cuando trabajamos con variables
Unidades
discretas la funcin acumulada tiene un
intervalo o salto para cada variable( para
casos prcticos hay que definir los intervalos y luego con una funcin de bsqueda hallar el
valor). Para funciones continuas se puede hallar la inversa de la funcin acumulada.
De esta forma logramos a partir de la distribucin de densidad calcular los valores de
la variable aleatoria dada.
Nmero de Nmeros Valor de
Simulacin aleatorios la Demanda
1
0.92
54
2
0.71
51
3
0.85
51
...
...
...
n
0.46
48
48.60 3.41
1.08
100
48.12 3.16
0.32
1000
47.87 3.28
0.10
10000
47.87 3.30
0.03
Investigacin Operativa I
Cursada 2005
EJEMPLO PRACTICO II
Analizaremos ahora una propuesta para la fabricacin de un nuevo artculo durante 4
aos. Con los datos de la siguiente tabla:
Costos de puesta
en marcha
$ 150000
Precio de Venta
$ 35000
Costos fijos
Amortizacin
anual
$ 15000
$ 10000
75% de
los
ingresos
Costos del capital 10%
Costos variables
34%
Tasa Fiscal
10
Demanda
promedio anual unidades
valores
( 1 + tasai)i ). En la columna
i =1
correspondiente al ao 1 se han indicado las formulas que definen cada valor) en los 4 aos,
utilizando el siguiente modelo matemtico de la situacin:
Ao 0
Ao 1
Ao 2
Ao 3
Ao 4
12
420000
315000
315000
15000
315000
10000
15000
236250
10000
15000
236250
10000
80000
53750
53750
27200
18275
18275
Impuestos
ENTERO(8+5*ALE
ATORIO())
Precio de
Venta*Demanda
Costo fijo
75% Ingresos
10000
Ingresos Suma(costos)
34 % anterior
Utilidad - Impuestos
52800
35475
35475
Utilidad Amortizacin
62800
45475
45475
Demanda
Ingresos
Costo Fijo
Costo Variable
Amortizacin
Utilidad antes de Impuestos
-150000
-21160
Investigacin Operativa I
Cursada 2005
Ahora realizaremos varias corridas con diferentes tamaos de muestra para ver que
sucede con el VNA.
Armamos en otra hoja un cuadro con dos columnas y tantas filas como
iteraciones(tamao de la muestra) deseemos realizar. En la columna VNA copiamos con
pegado especial(frmula) la celda del modelo en la cual se calcula el VNA. Seleccionamos
toda la tabla y con la herramienta Tabla en Datos se forma una tabla dinmica que contendr
las simulaciones para la cantidad de iteraciones que hagamos.
Investigacin Operativa I
Cursada 2005
Cantidad de
Iteraciones
Media
Desviacin
Estndar
Mximo
Mnimo
Error
10
100
500
1000
5000
10000
13253.55
13515.19
12686.22
12147.81
12612.65
12537.13
18445.01
13395.87
13208.55
12999.81
13085.18
12954.22
44294.82
44728.71
49067.55
49067.55
49067.55
49067.55
-9711.94
-14567.50
-19817.50
-24156.34
-24156.34
-24156.34
5832.82
1339.59
590.70
411.09
185.05
129.54
Ahora
realizamos una
sntesis de las
simulaciones
desarrolladas
para poder ver
que sucedi con
el modelo:
120.00%
100.00%
80.00%
60.00%
40.00%
20.00%
.00%
10 0
0
20 00
0
30 00
0
40 00
00
y 500 0
m 0
ay 0
or
...
4.5
4
3.5
3
2.5
2
1.5
1
0.5
0
-3
0
-2 000
00
-1 00
00
00
Frecuencia
Frecu
encia
%
acum
ulado
Clase
10
Investigacin Operativa I
Cursada 2005
Resumen
60000
40000
30000
20000
10000
00
50
00
10
50
0
10
0
es
ra
ci
on
-10000
10
Ite
50000
ad
de
-20000
C
an
tid
-30000
N Experimentos
Media
Desviacin Estandar
Maximo
Minimo
Error
APLICACIONES
Criptografa.
Cromo dinmica cuntica.
Densidad y flujo de trfico.
Diseo de reactores nucleares.
Diseo de VLSI.
Ecologa.
Econometra.
Evolucin estelar.
Fsica de materiales.
SINTESIS
El mtodo de Monte Carlo es una herramienta de investigacin y planeamiento;
bsicamente es una tcnica de muestreo artificial, empleada para operar numricamente
sistemas complejos que tengan componentes aleatorios o determinsticos, manteniendo tanto
11
Investigacin Operativa I
Cursada 2005
REFERENCIAS
[1]
A brief overview of what the Monte-Carlo
http://www.physics.gla.ac.uk/~donnelly/files/montecarlo/
method
[2]
Arsham H. System Simulation: The Shortest Route
http://home.ubalt.edu/ntsbarsh/Business-stat/simulation/sim.htm.
is
to
and
does.
Applications.
[3]
Barreto H. and Howland F. Introductory Econometrics via Monte Carlo Simulation
with Microsoft Excel. http://www.wabash.edu/econometrics
[4]
Bong
D.
Monte
Carlo
http://www.visionengineer.com/mech/monte_carlo_simulation.shtml.
Simulation.
[5]
Bustamante A. Evaluacin de riesgos mediante simulacin Monte Carlo.
http://www.cema.edu.ar/~alebus/riesgo/MONTECARLO.PPT
[6]
Deutsch, Leuangthong, Nguyen, Norrena, Ortiz, Oz, Pyrcz, and Zanon. Principles of
Monte Carlo Simulation. http://www.ualberta.ca/~cdeutsch/MCS-course.htm
[7]
Eppen G., Gould F., Schmidt C., Mootre J., y Weatetherford L. Investigacin de
Operaciones en la Ciencia Administrativa. Editorial Prentice Hall. 5 Edicin. 2000.
[8]
Hillier F, Lieberman G. Introduccin a la Investigacin de Operaciones. McGraw-Hill
Editores. 1997.
[9]
Impact of Monte Carlo methods on scientific research. http://www.csm.ornl.gov/ssiexpo/MChist.html
[10]
Carlo
Simulation
[11] Monte
rio.br/marco.ind/sim_stoc_proc.html
Investigacin Operativa I
Cursada 2005
of
Stochastic
Processes.
http://www.puc-
[12]
Padilla
Shannon
Ho.
Monte
Carlo
Method.
http://www.ccs.uky.edu/~douglas/Classes/cs521-01/montecarlo/MonteCarloMethod2.ppt
[13]
[14]
Real options with Monte Carlo Simulations. http://www.puc-rio.br/marco.ind/montecarlo.html
[15]
Silvestre, Moreno, Toscana y Luis. Curso de Simulacin Monte Carlo. III Encuentro
Nacional de docentes de Investigacin Operativa. Facultad de Cs. Econmicas. Universidad
Nacional del Centro de la Provincia de Buenos Aires. 1990
Simulacin. Introduccin a la investigacin de Operaciones. Facultad de Ingeniera .
[16]
UDELAR. http://www.fing.edu.uy/inco/cursos/io/archivos/teorico/simulacion.pdf
[17]
Taha H. Investigacin de Operaciones una introduccin. Ed. Prentice Hall. 6 edicin.
1998.
[18]
[19]
THE WWW VIRTUAL LIBRARY: RANDOM NUMBERS and MONTE CARLO
METHODS
SUBSECTION:
MONTE
CARLO
METHODS.
http://random.mat.sbg.ac.at/links/monte.html
[20] Winston W. (2005) Investigacin de Operaciones. Aplicaciones y algoritmos. 4ta
edicin. International Thomson Editores.
Woller J. Basics of Monte Carlo Simulations. Univ. of Nebraska-Lincoln
[21]
http://www.chem.unl.edu/zeng/joy/mclab/mcintro.html
13