Metodo Montecarlo 03
-
Upload
gintex3937 -
Category
Documents
-
view
25 -
download
6
Transcript of Metodo Montecarlo 03
Facultad de Ciencias Exactas Investigación Operativa I Universidad Nacional del Centro Cursada 2005 de la Pcia de Buenos Aires
1
S I M U L A C I Ó N
M É T O D O M O N T E C A R L O
♦ Simulación : es el proceso de diseñar y desarrollar un modelo computarizado de un sistema o proceso y conducir experimentos con este modelo con el propósito de entender el comportamiento del sistema o evaluar varias estrategias con las cuales se puede operar el sistema (Shannon Robert)
♦ Modelo de simulación: conjunto de hipótesis acerca del funcionamiento del sistema expresado como relaciones matemáticas y/o lógicas entre los elementos del sistema.
♦ Proceso de simulación: ejecución del modelo a través del tiempo en un ordenador para generar muestras representativas del comportamiento.
Métodos de simulación
♦ Simulación estadística o Monte Carlo: Está basada en el muestreo sistemático de variables aleatorias.
♦ Simulación continua: Los estados del sistema cambian continuamente su valor. Estas simulaciones se modelan generalmente con ecuaciones diferenciales.
♦ Simulación por eventos discretos: Se define el modelo cuyo comportamiento varía 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 simulación.
♦ Simulación por autómatas celulares: Se aplica a casos complejos, en los que se divide al comportamiento del sistema en subsistemas más pequeños denominadas células. El resultado de la simulación está dado por la interacción de las diversas células.
Etapas del proceso de simulación
♦ Definición, descripción del problema. Plan.
♦ Formulación del modelo.
♦ Programación .
♦ Verificaciçon y Validación del modelo.
♦ Diseño de experimentos y plan de corridas.
♦ Análisis de resultados
Diagrama de flujo del modelo de simulación
Facultad de Ciencias Exactas Investigación Operativa I Universidad Nacional del Centro Cursada 2005 de la Pcia de Buenos Aires
2
Lenguajes de simulación
♦♦♦♦ Simulación Continua: 1130/CSMP, 360 CSMP y DYNAMO, MISTRAL
♦♦♦♦ Simulación a Eventos Discretos: GPSS, SIMSCRIPT, SDL/SIM.
♦♦♦♦ Para casos simples podemos recurrir a la utilización de planillas de cálculo.
♦♦♦♦ También podemos implementar aplicaciones en los lenguajes Fortran, C++,
Java, Dephi,...
SI
Reunir datos y elaborar el modelo
Programar el modelo
Diseñar el experimento
Documentar y Poner en práctica Está completa?
Está validada? Está verificada?
SÍ
NO
NO
NO
SÍ
Facultad de Ciencias Exactas Investigación Operativa I Universidad Nacional del Centro Cursada 2005 de la Pcia de Buenos Aires
3
Números aleatorios
♦ Deben tener igual probabilidad de salir elegidos.
♦ No debe existir correlación serial
♦♦ Se generan por tablas (Rand 1955), o por dispositivos especiales: ruleta. En la práctica se utilizan algoritmos y se generan números pseudo aleatorios..
Números Pseudo aleatorios
♦ Sustituyen a los números aleatorios.. ♦ Se generan por algoritmos o fórmulas. ♦ Se debe asegurar la existencia de secuencias largas y densas.
Generación de Números Pseudo aleatorios
♦ Centros Cuadrados: � 442 = 1936 ⇒ 93
♦ Métodos Congruenciales:
� xn =(axn-1 + c) (mod m
♦ Transformación Inversa
� x=F-1(x) siendo F(x)=Prob(X<=x)
S I M U L A C I Ó N M O N T E C A R L O
Los métodos de Monte Carlo abarcan una colección de técnicas que permiten obtener soluciones de problemas matemáticos o físicos por medio de pruebas aleatorias repetidas. En la práctica, las pruebas aleatorias se sustituyen por resultados de ciertos cálculos realizados con números aleatorios.
¿¿PPoorr qquuéé SSiimmuullaacciióónn eenn IInnvveessttiiggaacciióónn OOppeerraattiivvaa??
♦♦♦♦ Los responsables de la toma de decisiones necesitan información cuantificable, sobre diferentes hechos que puedan ocurrir.
♦♦♦♦ La simulación constituye una técnica económica que nos permite ofrecer varios escenarios posibles de un modelo del negocio, nos permite equivocarnos sin provocar efectos sobre el mundo real.
♦♦♦♦ Podemos afirmar entonces, que la simulación es una rama experimentaldentro de la Investigación Operativa.
Facultad de Ciencias Exactas Investigación Operativa I Universidad Nacional del Centro Cursada 2005 de la Pcia de Buenos Aires
4
I N T R O D U C C I Ó N
Bajo el nombre de Método Monte Carlo o Simulación Monte Carlo se agrupan una serie de procedimientos que analizan distribuciones de variables aleatorias usando simulación de números aleatorios.
El Método de Monte Carlo da solución a una gran variedad de problemas matemáticos haciendo experimentos con muestreos estadísticos en una computadora. El método es aplicable a cualquier tipo de problema, ya sea estocástico o determinístico.
Generalmente en estadística los modelos aleatorios se usan para simular fenómenos que poseen algún componente aleatorio. Pero en el método Monte Carlo, por otro lado, el objeto de la investigación es el objeto en sí mismo, un suceso aleatorio o pseudo-aleatorio se usa para estudiar el modelo.
A veces la aplicación del método Monte Carlo se usa para analizar problemas que no tienen un componente aleatorio explícito; en estos casos un parámetro determinista del problema se expresa como una distribución aleatoria y se simula dicha distribución. Un ejemplo sería el famoso problema de las Agujas de Bufón.
La simulación de Monte Carlo también fue creada para resolver integrales que no se pueden resolver por métodos analíticos, para solucionar estas integrales se usaron números aleatorios. Posteriormente se utilizó para cualquier esquema que emplee números aleatorios, usando variables aleatorias con distribuciones de probabilidad conocidas, el cual es usado para resolver ciertos problemas estocásticos y determinísticos, donde el tiempo no juega un papel importante.
H I S T O R I A
El método fue llamado así por el principado de Mónaco por ser ``la capital del juego de azar'', al tomar una ruleta como un generador simple de números aleatorios. El nombre y el desarrollo sistemático de los métodos 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 métodos de Monte Carlo como una herramienta de investigación, proviene del trabajo de la bomba atómica durante la Segunda Guerra Mundial. Este trabajo involucraba la simulación directa de problemas probabilísticos de hidrodinámica concernientes a la difusión de neutrones aleatorios en material de fusión.
Aún en la primera etapa de estas investigaciones, John von Neumann y Stanislao Ulam refinaron esta curiosa ``Ruleta rusa'' y los métodos``de división''. Sin embargo, el desarrollo sistemático de estas ideas tuvo que esperar el trabajo de Harris y Herman Kahn en 1948. Aproximadamente en el mismo año, Fermi, Metropolos y Ulam obtuvieron estimadores para los valores característicos de la ecuación de Schrödinger para la captura de neutrones a nivel nuclear.
Alrededor de 1970, los desarrollos teóricos en complejidad computacional comienzan a proveer mayor precisión y relación para el empleo del método Monte Carlo. La teoría identifica una clase de problemas para los cuales el tiempo necesario para evaluar la solución exacta al problema crece con la clase, al menos exponencialmente con M. La cuestión a ser resuelta era si MC pudiese o no estimar la solución al problema de tipo intratable con una adecuación estadística acotada a una complejidad temporal polinomial en M. Karp(1985)
Facultad de Ciencias Exactas Investigación Operativa I Universidad Nacional del Centro Cursada 2005 de la Pcia de Buenos Aires
5
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 número de matching perfectos en un grafo bipartito.
A L G O R I T M O S
El algoritmo de Simulación Monte Carlo Crudo o Puro está fundamentado en la
generación de números aleatorios por el método de Transformación Inversa, el cual se basa en las distribuciones acumuladas de frecuencias:
♦ Determinar la/s V.A. y sus distribuciones acumuladas(F)
♦ Generar un número aleatorio
♦ uniforme ∈ (0,1).
♦ Determinar el valor de la V.A. para el número
aleatorio generado de acuerdo a las clases que
tengamos.
♦ Calcular media, desviación estándar error y realizar el histograma. ♦ Analizar resultados para distintos tamaños de muestra. Otra opción para trabajar con Monte Carlo, cuando la variable aleatoria no es
directamente el resultado de la simulación o tenemos relaciones entre variables es la siguiente: ♦ Diseñar el modelo lógico de decisión
♦ Especificar distribuciones de probabilidad para las variables aleatorias
relevantes.
♦ Incluir posibles dependencias entre variables.
♦ Muestrear valores de las variables aleatorias.
♦ Calcular el resultado del modelo según los valores del muestreo (iteración) y
registrar el resultado
♦ Repetir el proceso hasta tener una muestra estadísticamente representativa
♦ Obtener la distribución de frecuencias del resultado de las iteraciones
♦ Calcular media, desvío.
♦ Analizar los resultados
Las principales características a tener en cuenta para la implementación o utilización
del algoritmo son: ♦ El sistema debe ser descripto por 1 o más funciones de distribución de
probabilidad (fdp) ♦ Generador de números aleatorios: como se generan los números aleatorios es
importante para evitar que se produzca correlación entre los valores muestrales.
Iterar tantas veces como
muestras necesitamos
Facultad de Ciencias Exactas Investigación Operativa I Universidad Nacional del Centro Cursada 2005 de la Pcia de Buenos Aires
6
♦ Establecer límites 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.
♦ Estimación Error: Con que error trabajamos, cuanto error podemos aceptar para que una corrida sea válida?
♦ Técnicas de reducción de varianza. ♦ Paralelización y vectorización: En aplicaciones con muchas variables se estudia
trabajar con varios procesadores paralelos para realizar la simulación. E J E M P L O P R A C T I C O I
Tenemos la siguiente distribución de probabilidades para una demanda aleatoria y
queremos ver que sucede con el promedio de la demanda en varias iteraciones:
Demanda
0.100.20
0.40
0.200.10
0.000.200.400.600.801.00
42 45 48 51 54
Unidades
Fre
cu
en
cia
Utilizando la distribución acumulada(F(x) es la probabilidad que la variable aleatoria
tome valores menores o iguales a x) podemos determinar cual es el valor obtenido de unidades cuando se genera un número aleatorio a partir de una distribución continua uniforme. Este método de generación de variable aleatoria se llama Transformación Inversa.
Unidades Frecuencia Frecuencia Acumulada
42 0.10 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 día, interesándonos en este caso como es el orden de aparición de los valores. Se busca el número aleatorio generado en la tabla de probabilidades acumuladas, una vez
Facultad de Ciencias Exactas Investigación Operativa I Universidad Nacional del Centro Cursada 2005 de la Pcia de Buenos Aires
7
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 solución se toma el valor de las unidades (Cuando trabajamos en Excel debemos tomar el límite inferior del intervalo para busca en las acumuladas, para poder emplear la función BUSCARV(), para 42 sería 0, para 43 0,100001 y así sucesivamente). Ejemplo: Supongamos que el número aleatorio generado sea 0,52, ¿a qué valor de unidades corresponde? Nos fijamos en la columna de frecuencias
acumuladas, ese valor exacto no aparece, el siguiente mayor es 0,70 y corresponde a 48 unidades.
Se puede apreciar mejor en el gráfico, trazando una recta desde el eje de la frecuencia hasta que intersecta con la línea de la función acumulada, luego se baja a la coordenada de unidades y se obtiene el valor correspondiente; en este caso 48.
Cuando trabajamos con variables discretas la función acumulada tiene un intervalo o salto para cada variable( para
casos prácticos hay que definir los intervalos y luego con una función de búsqueda hallar el valor). Para funciones continuas se puede hallar la inversa de la función acumulada.
De esta forma logramos a partir de la distribución de densidad calcular los valores de
la variable aleatoria dada. En la siguiente tabla, vemos como a medida que aumenta el numero de simulaciones,
el valor simulado se acerca al valor original de la media y desviación estándar, además de la disminución del error típico.
Cantidad de simulaciones
Media Desvío Error
10 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
Número de Simulación
Números aleatorios
Valor de la Demanda
1 0.92 54 2 0.71 51 3 0.85 51 ... ... ... n 0.46 48
Demanda
0.10
0.30
0.70
0.901.00
0.00
0.20
0.40
0.60
0.80
1.00
1.20
42 45 48 51 54
Unidades
Fre
cuen
cias
0,52
Facultad de Ciencias Exactas Investigación Operativa I Universidad Nacional del Centro Cursada 2005 de la Pcia de Buenos Aires
8
E J E M P L O P R A C T I C O I I
Analizaremos ahora una propuesta para la fabricación de un nuevo artículo durante 4 años. Con los datos de la siguiente tabla:
Costos de puesta en marcha
$ 150000 Costos variables 75% de
los ingresos
Precio de Venta $ 35000 Costos del capital 10%
Costos fijos $ 15000 Tasa Fiscal 34%
Amortización anual
$ 10000 Demanda promedio anual
10 unidades
La demanda es la variable aleatoria de nuestro modelo, ya que puede tomar los
siguientes valores: 8,9,10,11,12, es una distribución discreta uniforme. Para poder simular los valores de esta variable utilizaremos la fórmula ENTERO(8+5*ALEATORIO()). Debido a que los intervalos son todos de igual tamaño (1/5), es igualmente posible que ALEATORIO() llegue a cada uno de ellos, y por lo tanto es igualmente posible que la fórmula de cualquiera de los cinco valores posibles. La función ALEATORIO() de Excel genera un número en el intervalo (0:1) de una distribución uniforme continua. A través de la simulación veremos que valores va a tomar el valor neto actual (VNA, El VNA es calculado mediante la formula
correspondiente del Excel con un interés del 10% ( ∑∑∑∑====
++++
====
n
ii
i
)tasa(
valoresVNA
1 1). En la columna
correspondiente al año 1 se han indicado las formulas que definen cada valor) en los 4 años, utilizando el siguiente modelo matemático de la situación:
Año 0 Año 1 Año 2 Año 3 Año 4
DemandaENTERO(8+5*ALE
ATORIO())12 9 9
IngresosPrecio de
Venta*Demanda420000 315000 315000
Costo Fijo Costo fijo 15000 15000 15000
Costo Variable 75% Ingresos 315000 236250 236250
Amortización 10000 10000 10000 10000
Utilidad antes de ImpuestosIngresos -
Suma(costos)80000 53750 53750
Impuestos 34 % anterior 27200 18275 18275
Utilidad después de impuestos Utilidad - Impuestos 52800 35475 35475
Flujo neto de efectivo -150000Utilidad -
Amortización62800 45475 45475
Valor Neto Actual -21160
Facultad de Ciencias Exactas Investigación Operativa I Universidad Nacional del Centro Cursada 2005 de la Pcia de Buenos Aires
9
Ahora realizaremos varias corridas con diferentes tamaños de muestra para ver que sucede con el VNA.
Armamos en otra hoja un cuadro con dos columnas y tantas filas como iteraciones(tamaño de la muestra) deseemos realizar. En la columna VNA copiamos con pegado especial(fórmula) 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 dinámica que contendrá las simulaciones para la cantidad de iteraciones que hagamos.
Luego para cada tamaño de muestra aplicaremos Estadística descriptiva(En
herramientas, Análisis de datos) e Histograma (las clases que utilizamos son: -30000, -20000,
-10000, 0, 10000, 20000, 30000)
Facultad de Ciencias Exactas Investigación Operativa I Universidad Nacional del Centro Cursada 2005 de la Pcia de Buenos Aires
10
Ahora realizamos una síntesis de las
simulaciones desarrolladas
para poder ver que sucedió con el modelo:
El valor de la media y desviación estándar se estacionan a medida que aumenta la
cantidad de iteraciones. También, como podemos observar en el gráfico, disminuye notablemente el error. También el modelo nos presenta mayor variabilidad para los valores máximo y mínimo.
Cantidad de Iteraciones
Media Desviación Estándar
Máximo Mínimo Error
10 13253.55 18445.01 44294.82 -9711.94 5832.82
100 13515.19 13395.87 44728.71 -14567.50 1339.59
500 12686.22 13208.55 49067.55 -19817.50 590.70
1000 12147.81 12999.81 49067.55 -24156.34 411.09
5000 12612.65 13085.18 49067.55 -24156.34 185.05
10000 12537.13 12954.22 49067.55 -24156.34 129.54
Histograma para 10 iteraciones
00.5
11.5
22.5
33.5
44.5
-300
00
-200
00
-100
00 0
1000
0
2000
0
3000
0
4000
0
5000
0
y m
ayor
...
Clase
Fre
cu
en
cia
.00%
20.00%
40.00%
60.00%
80.00%
100.00%
120.00%
Frecuencia
%acumulado
Facultad de Ciencias Exactas Investigación Operativa I Universidad Nacional del Centro Cursada 2005 de la Pcia de Buenos Aires
11
A P L I C A C I O N E S
♦ Criptografía. ♦ Cromo dinámica cuántica. ♦ Densidad y flujo de tráfico. ♦ Diseño de reactores nucleares. ♦ Diseño de VLSI. ♦ Ecología. ♦ Econometría. ♦ Evolución estelar. ♦ Física de materiales.
♦ Métodos cuantitativos de organización industrial. ♦ Programas de computadora. ♦ Pronóstico del índice de la bolsa. ♦ Prospecciones en explotaciones petrolíferas. ♦ Radioterapia contra el cáncer. ♦ Sistemas de colas. ♦ Sistemas de inventario P y Q. ♦ Valoración de cartera de valores.
S I N T E S I S
El método de Monte Carlo es una herramienta de investigación y planeamiento; básicamente es una técnica de muestreo artificial, empleada para operar numéricamente sistemas complejos que tengan componentes aleatorios o determinísticos, manteniendo tanto
Resumen
-30000
-20000
-10000
0
10000
20000
30000
40000
50000
60000
Can
tidad
de
Itera
cion
es 10 100
500
1000
5000
N° Experimentos
Valo
res d
e la v
ari
ab
les a
leato
rias
Media Desviación Estandar Maximo Minimo Error
Facultad de Ciencias Exactas Investigación Operativa I Universidad Nacional del Centro Cursada 2005 de la Pcia de Buenos Aires
12
la entrada como la salida un cierto grado de incertidumbre. En Investigación Operativa, Monte Carlo es utilizado con fines experimentales, es decir se pueden elaborar distintos modelos e ir intercambiando parámetros para estudiar cuales son los posibles resultados.
Cuando el tamaño de las muestras es relativamente reducido, los resultados obtenidos
en la simulación pueden ser muy sensibles a las condiciones iniciales. Un área de investigación está constituida por los métodos Quasi-Monte Carlo, estos
métodos básicamente acotan la generación de los números aleatorios.
R E F E R E N C I A S [1] A brief overview of what the Monte-Carlo method is and does. http://www.physics.gla.ac.uk/~donnelly/files/montecarlo/
[2] Arsham H. System Simulation: The Shortest Route to Applications. http://home.ubalt.edu/ntsbarsh/Business-stat/simulation/sim.htm.
[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 Simulation. http://www.visionengineer.com/mech/monte_carlo_simulation.shtml.
[5] Bustamante A. Evaluación de riesgos mediante simulación 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. Investigación de Operaciones en la Ciencia Administrativa. Editorial Prentice Hall. 5° Edición. 2000.
[8] Hillier F, Lieberman G. Introducción a la Investigación de Operaciones. McGraw-Hill Editores. 1997.
[9] Impact of Monte Carlo methods on scientific research. http://www.csm.ornl.gov/ssi-expo/MChist.html
[10] Introduction to Monte Carlo Methods. http://csep1.phy.ornl.gov/mc/mc.html
No debemos confundir la simulación con un método de optimización, como por ejemplo el Simplex. En los métodos de Optimización las variables de decisión son las salidas de la técnica a las cuales buscamos calcular el/los valor/es óptimo/s, por el contrario en Monte Carlo u otro tipo de simulación dichas variables constituyen las entradas del mismo; el modelo simulado propuesto evalúa distintas alternativas para un conjunto particular de soluciones.
Facultad de Ciencias Exactas Investigación Operativa I Universidad Nacional del Centro Cursada 2005 de la Pcia de Buenos Aires
13
[11] Monte Carlo Simulation of Stochastic Processes. http://www.puc-rio.br/marco.ind/sim_stoc_proc.html
[12] Padilla Shannon Ho. Monte Carlo Method. http://www.ccs.uky.edu/~douglas/Classes/cs521-01/montecarlo/MonteCarloMethod2.ppt
[13] Quasi Monte Carlo Simulation. http://www.puc-rio.br/marco.ind/quasi_mc.html
[14] Real options with Monte Carlo Simulations. http://www.puc-rio.br/marco.ind/monte-carlo.html
[15] Silvestre, Moreno, Toscana y Luis. Curso de Simulación Monte Carlo. III Encuentro Nacional de docentes de Investigación Operativa. Facultad de Cs. Económicas. Universidad Nacional del Centro de la Provincia de Buenos Aires. 1990
[16] Simulación. Introducción a la investigación de Operaciones. Facultad de Ingeniería . UDELAR. http://www.fing.edu.uy/inco/cursos/io/archivos/teorico/simulacion.pdf
[17] Taha H. Investigación de Operaciones una introducción. Ed. Prentice Hall. 6° edición. 1998.
[18] Técnicas de Monte Carlo. http://mural.uv.es/juanama/astronomia/montecarlo.htm
[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) Investigación de Operaciones. Aplicaciones y algoritmos. 4ta
edición. International Thomson Editores.
[21] Woller J. Basics of Monte Carlo Simulations. Univ. of Nebraska-Lincoln http://www.chem.unl.edu/zeng/joy/mclab/mcintro.html