Anda di halaman 1dari 11

FUNDAMENTOS PARA EL USO DEL MÉTODO MONTE CARLO.

Ing. Raymundo Betancourt Laurencio rblaurencio@ismm.edu.cu

Resumen

Palabras clave
Simulación Monte Carlo, método Monte Carlo, Incertidumbre, Análisis de riesgos, aleatorio.

FUNDAMENTALS FOR THE USE OF MONTE CARLO METHOD

Abstract

Key words
Monte Carlo Simulation, Monte Carlo method, Uncertainty, Risk Analysis, random.

INTRODUCCIÓN

Orígenes de la Simulación Monte Carlo

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 data aproximadamente de 1944 con el
desarrollo de la computadora electrónica. Sin embargo hay varias instancias (aisladas y no
desarrolladas) en muchas ocasiones anteriores a 1944.
La invención del método de Monte Carlo se asigna a Stan Ulam y a John von Neumann.
Ulam ha explicado cómo se le ocurrió la idea mientras jugaba un solitario durante una
enfermedad en 1946. Advirtió que resulta mucho más simple tener una idea del resultado
general del solitario haciendo pruebas múltiples con las cartas y contando las proporciones
de los resultados que computar todas las posibilidades de combinación formalmente. Se le
ocurrió que esta misma observación debía aplicarse a su trabajo de Los Álamos sobre
difusión de neutrones, para la cual resulta prácticamente imposible solucionar las
ecuaciones íntegro-diferenciales que gobiernan la dispersión, la absorción y la fisión. “La
idea consistía en probar con experimentos mentales las miles de posibilidades, y en cada
etapa, determinar por casualidad, por un número aleatorio distribuido según las
probabilidades, qué sucedería y totalizar todas las posibilidades y tener una idea de la
conducta del proceso físico”.
Podían utilizarse máquinas de computación, que comenzaban a estar disponibles, para
efectuar las pruebas numéricas y en efecto reemplazar el aparato experimental del físico.
Durante una de las visitas de von Neumann a Los Álamos en 1946, Ulam le mencionó el
método. Después de cierto escepticismo inicial, von Neumann se entusiasmó con la idea y
pronto comenzó a desarrollar sus posibilidades en un procedimiento sistemático. Ulam
expresó que Monte Carlo “comenzó a tener forma concreta y empezó a desarrollarse con
todas sus fallas de teoría rudimentaria después de que se lo propuse a Johnny”.
A principios de 1947 Von Neumann envió una carta a Richtmyer a Los Álamos en la que
expuso de modo influyente tal vez el primer informe por escrito del método de Monte Carlo.
Su carta fue encuadernada junto con la respuesta de Richtmyer como un informe de Los
Álamos y distribuida entre los miembros del laboratorio. Von Neumann sugería aplicar el
método para rastrear la generación isótropa de neutrones desde una composición variable
de material activo a lo largo del radio de una esfera. Sostenía que el problema era adecuado
para el ENIAC y estimaba que llevaría 5 horas calcular la acción de 100 neutrones a través
de un curso de 100 colisiones cada uno.
El uso real del método de Monte Carlo como una herramienta de investigación, viene 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'', Ulam estaba
particularmente interesado en el método Monte Carlo para evaluar integrales múltiples. 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.

¿Qué es la Simulación Monte Carlo?

Bajo el nombre de “Método de 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 de 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 de 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 Bufon. La simulación de Monte Carlo fue creada para resolver integrales que no se
pueden resolver por métodos analíticos, para resolver 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.

¿Dónde se aplica la Simulación Monte Carlo?

Las aplicaciones posibles del MC trascienden las propias matemáticas: Análisis de riesgos
(Ej. En la Minería, en Inversiones, etc); Magnitud de las emisiones de rayos cósmicos;
Tamaño crítico de reactores nucleares; Difusión y movimiento browniano; Paso de líquidos a
través de sólidos; Propiedades de retículos poliméricos; Características de los recipientes
necesarios para el transporte de neutrones; Aplicaciones de la teoría de colas a problemas
comerciales como almacenamiento, sustitución y mantenimiento de equipos, gestión de
seguros, etc.

Algunos ejemplos de aplicaciones en la química:

1. El método Monte Carlo (MC) se aplica a sistemas moleculares para; predecir


los valores promedio de las propiedades de estructuras en medios térmicos;
estimar la distribución de cargas en moléculas; calcular constantes cinéticas
de reacción, energías libres, constantes dieléctricas, coeficientes de
compresibilidad, capacidades caloríficas y puntos de cambio de estado; etc.

2. El método Monte Carlo recibe este nombre porque consiste en introducir


números aleatorios en el cálculo, lo cual permite simular efectos ¨térmicos¨.
En este sentido se distingue de la Dinámica Molecular (técnica
deterministica).

3. El MC es uno de los métodos con que cuentan la Física Cuántica y la


Química Cuántica para resolver los problemas que involucran múltiples
cuerpos (many-body problems). En el caso de los sistemas en estado
condensado, se emplean unas cuantas variantes tales como el Método de la
Integral a lo largo de la trayectoria (Path Integral Monte Carlo, PIMC), el
Método de Difusión (Difusión Monte Carlo, DMC), el Método de las funciones
de Green (Green’s Function Monte Carlo, GFMC) y el Método Variacional
(Variational Monte Carlo, VMC).

MÉTODOS
Etapas del proceso de simulación
1. Definición, descripción del problema. Plan.
2. Formulación del modelo.
3. Programación.
4. Verificación y Validación del modelo.
5. Diseño de experimentos y plan de corridas.
6. Análisis de resultados

Algoritmos
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 . Iterar tantas veces como
 Determinar el valor de la V.A. para el número muestras necesitemos
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 descrito 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.
 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.

Veamos un ejemplo sencillo desarrollado con dos software diferentes

En Excel
En la imagen inferior se muestra un análisis histórico de 200 días sobre el número de
consultas diarias realizadas a un sistema de información empresarial (EIS) residente en un
servidor central. La tabla incluye el número de consultas diarias (0 a 5) junto con las
frecuencias absolutas (número de días que se producen 0, 1, ..., 5 consultas), las
frecuencias relativas (10/200 = 0,05, ...), y las frecuencias relativas acumuladas.
Podemos interpretar la frecuencia relativa como la probabilidad de que ocurra el suceso
asociado, en este caso, la probabilidad de un determinado número de consultas (así, p.e., la
probabilidad de que se den 3 consultas en un día sería de 0,30), por lo que la tabla anterior
nos proporciona la distribución de probabilidad asociada a una variable aleatoria discreta (la
variable aleatoria es el número de consultas al EIS, que sólo puede tomar valores enteros
entre 0 y 5).
Supongamos que queremos conocer el número esperado (o medio) de consultas por día. La
respuesta a esta pregunta es fácil si recurrimos a la teoría de la probabilidad: Denotando por
X a la variable aleatoria que representa el número diario de consultas al EIS, sabemos que:

Por otra parte, también podemos usar simulación de Monte Carlo para estimar el número
esperado de consultas diarias (en este caso se ha podido obtener el valor exacto usando
teoría de probabilidad, pero ello no siempre será factible). Veamos cómo:
Cuando se conozca la distribución de probabilidad asociada a una variable aleatoria
discreta, será posible usar la columna de frecuencias relativas acumuladas para obtener los
llamados intervalos de números aleatorios asociados a cada suceso.
En este caso, los intervalos obtenidos son:
[0,00 , 0,05) para el suceso 0
[0,05 , 0,15) para el suceso 1
[0,15 , 0,35) para el suceso 2
[0,35 , 0,65) para el suceso 3
[0,65 , 0,85) para el suceso 4
[0,85 , 1,00) para el suceso 5
El gráfico siguiente nos muestra cada una de las probabilidades sobre el número de
consultas. En él, se aprecia claramente la relación existente entre probabilidad de cada
suceso y el área que éste ocupa.
Esto significa que, al generar un número pseudo-aleatorio con el ordenador (proveniente de
una distribución uniforme entre 0 y 1), estaremos llevando a cabo un experimento cuyo
resultado, obtenido de forma aleatoria y según la distribución de probabilidad anterior, estará
asociado a un suceso. Así por ejemplo, si el ordenador nos proporciona el número pseudo-
aleatorio 0,2567, podremos suponer que ese día se han producido 2 consultas al EIS.
Asignamos pues la función ALEATORIO a una casilla (la G1 en el caso de la imagen):

Seleccionando la celda y “arrastrando” con el ratón desde el borde inferior derecho de la


misma podemos obtener un listado completo de números pseudo-aleatorios:

A continuación, podemos usar la función SI de Excel para asignar un suceso a cada uno de
los números pseudo-aleatorios generados (como veremos, otra forma de hacer esta
asignación será usando la función BUSCARV):

Repitiendo el proceso de seleccionar y “arrastrar” obtendremos algo similar a:

Finalmente, usando la función PROMEDIO será posible calcular la media de los valores de
la columna H:
En este caso, hemos obtenido un valor estimado que corresponde exactamente con el valor
real anteriormente calculado vía la definición teórica de la media. Sin embargo, debido a la
componente aleatoria intrínseca al modelo, normalmente obtendremos valores “cercanos” al
valor real, siendo dichos valores diferentes unos de otros (cada simulación proporcionará
sus propios resultados). Se puede comprobar este hecho pulsando repetidamente sobre la
función F9 (cada vez que se pulsa dicha tecla, Excel genera nuevos valores aleatorios y, por
tanto, nuevos valores para la columna H y la casilla I1). Si en lugar de usar una muestra
aleatoria formada por 100 observaciones hubiésemos usado una formada por 10, los valores
que obtendríamos al pulsar repetidamente F9 no serían estimaciones tan buenas al valor
real. Por el contrario, es de esperar que si hubiésemos usado 1.000 (o mejor aún 10.000)
observaciones, los valores que obtendríamos en la casilla I1 estarían todos muy cercanos al
valor real.

En Mathcad

0  10
1  20
   
40
FreqCon   
2
xCon   
3  60
4  40
   
5  30

1
Constante de normalización: aCon  dpCon  aCon FreqCon
� FreqCon

Función acumulativa de la distribución de probabilidad:

xi
xi  0  length ( dpCon)  1 cdCon
xi0
 � dpConi0
i0
Cálculos iterativos:
SamDiscr( r cd dvalues)  j 0
while r  cd
j 0
j j 1
sv  dvalues
j 0
sv

Número de iteraciones:
nit  10000
ni  0  nit  1
Cons  SamDiscr( rnd ( 1) cdCon xCon)
ni 0

Media  mean( Cons)

Media según Monte Carlo


Media  2.967

La media según método estadístico es de 2.95

En este caso, hemos obtenido un valor estimado que corresponde exactamente con el valor
real anteriormente calculado vía la definición teórica de la media. Sin embargo, debido a la
componente aleatoria intrínseca al modelo, normalmente obtendremos valores “cercanos” al
valor real, siendo dichos valores diferentes unos de otros (cada simulación proporcionará
sus propios resultados) al igual que sucede en el Excel. Se puede comprobar este hecho
pulsando repetidamente Ctrl+F9 (cada vez que se pulsa estas teclas, Mathcad genera
nuevos valores aleatorios. El uso del Mathcad nos permite como se puede apreciar
simplificar toda esta metodología aplicada en el Excel de manera cuantitativa y usar una
muestra aleatoria formada por 10000 o más observaciones y obtener un resultado de
manera más rápida y eficiente, por lo que los valores que obtendremos al pulsar
repetidamente Ctrl+F9 serían estimaciones tan buenas como el valor real. Por lo que, al usar
10000 observaciones, los valores obtenidos estarán todos muy cercanos al valor real.
RESULTADOS

CONCLUSIONES
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.

REFERENCIAS

Método de Monte Carlo


http://es.wikipedia.org/wiki/Método_de_Monte_Carlo

Técnicas de Monte Carlo.


http://mural.uv.es/juanama/astronomia/montecarlo.htm

Faulin J. 2005 Simulación de Monte Carlo con Excel


http://www.cyta.com.ar/ ISSN 1666-1680

Anda mungkin juga menyukai