Está en la página 1de 4

1

EL MTODO DE MONTE CARLO EN LA


SIMULACIN

Resumen El mtodo de Monte Carlo puede emplearse


para resolver diversos problemas distintos: problemas
estocsticos y problemas matemticos-deterministicos. Para
resolver los primeros se utiliza distribuciones de
probabilidad, y para los segundos se puede obtener
soluciones aproximadas simulando un proceso estocstico
cuya funcin de distribucin acumulada satisfaga los
requerimientos de la solucin del problema determinstico.
Palabras claveMonte Carlo, Seudo-aleatorio, simulacin,
Sistema, Frecuencia.

I. INTRODUCCIN

l mtodo de Monte Carlo surge durante la segunda


guerra mundial, con las investigaciones realizadas
por John von Neumann y StanislawUlam, para el
desarrollo de la bomba atmica. Se menciona el
funcionamiento y las aplicaciones que tiene en simulacin de
sistemas dicho mtodo, adems se muestra un ejemplo
utilizando la hoja de clculo Excel y una aplicacin en el
lenguaje java.
II. HISTORIA DEL MTODO DE MONTE CARLO
El mtodo de Monte Carlo es un mtodo no determinstico,
usado para expresiones matemticas complejas y costosas de
evaluar con exactitud. El mtodo se llamo as en referencia al
Casino de Montecarlo (Principado de Mnaco) por ser la
capital de juego de azar, al ser la ruleta un generador simple
de nmeros aleatorios. El nombre y el desarrollo sistemtico
de los mtodos de Monte Carlo datan aproximadamente de
1944 y se mejoraron enormemente con el desarrollo de la
computadora.
El uso de los mtodos de Monte Marlo como herramienta de
investigacin, proviene del trabajo realizado en el desarrollo
de la bomba atmica durante la Segunda Guerra Mundial en
el Laboratorio Nacional de Los lamos en EE. UU. Este
trabajo conllevaba la simulacin de problemas probabilsticos
de hidrodinmica concernientes a la difusin de neutrones en
el material de fisin. Esta difusin posee un comportamiento
eminentemente aleatorio.

En la primera etapa de estas investigaciones, John von


Neumann y StanislawUlam refinaron esta ruleta rusa y los
mtodos "de divisin" de tareas. Sin embargo, el desarrollo
sistemtico de estas ideas tuvo que esperar al trabajo de Harris
y Herman Kahn en 1948. Aproximadamente en el mismo
ao, Enrico Fermi, Nicholas Metrpolis y Ulam obtuvieron
estimadores para los valores caractersticos de la ecuacin de
Schrdinger para la captura de neutrones a nivel nuclear

usando este mtodo [3].


III. EL MTODO DE MONTE CARLO EN LA
SIMULACIN
El mtodo de Monte Carlo en la simulacin es una tcnica
cuantitativa que hace uso de la estadstica y las computadoras
para
imitar,
mediante
modelos
matemticos,
el
comportamiento aleatorio de sistemas reales no dinmicos
(por lo general, cuando se trata de sistemas cuyo estado va
cambiando con el paso del tiempo, se recurre bien a la
simulacin de eventos discretos o bien a la simulacin de
sistemas continuos).
La clave de la simulacin de Monte Carlo consiste en crear
un modelo matemtico del sistema, proceso o actividad que se
quiere analizar, identificando aquellas variables cuyo
comportamiento aleatorio determina el comportamiento global
del sistema. Una vez identificados dichas variables aleatorias,
se lleva a cabo un experimento que consiste en:
1.-Generar con ayuda de una computadora, muestras
aleatorias (valores concretos) para dichos inputs.
2.- Analizar el comportamiento del sistema ante los valores
generados.
Tras repetir n veces este experimento, se dispone de n
observaciones sobre el comportamiento del sistema, lo cual
ser de utilidad para entender el funcionamiento del mismo.
Obviamente, el anlisis ser ms preciso cuanto mayor sea el
nmero n de experimentos que llevemos a cabo [5].
Toda simulacin se basa en una representacin matemtica de
la situacin real. La simulacin proporciona soluciones a la
direccin en lugar de resolver prcticamente los problemas.
Ofrece un mtodo mediante el cual se pueden probar los
planes antes de llevarlos a cabo. Responde la pregunta: qu
pasara si? Pone de manifiesto los puntos dbiles del
negocio en la estructura de la empresa [4].
IV. EJEMPLO DEL MTODO DE MONTE CARLO EN LA
SIMULACIN UTILIZANDO LA HOJA DE CALCULO
MICROSOFT EXCEL
En la tabla 1, se muestra un anlisis histrico de 200 das
sobre el nmero de consultas diarias realizadas a un sistema de
informacin empresarial (EIS) residente en un servidor
central.
La tabla incluye el nmero de consultas diarias (0 a 5) junto
con las frecuencias absolutas (nmero de das que se producen
0, 1,..., 5 consultas), las frecuencias relativas (10/200 = 0,05,
...), y las frecuencias relativas acumuladas.
TABLA I
REGUISTRO HISTORICO DE CUNSULTAS DIARIAS DEL SISTEMA DE
INFORMACION EMPRESARIAL (EIS)

2
UTILIZACION DE LA FUNCION ALEATORIO

Supngase que se quiere conocer el nmero esperado (o


medio) de consultas por da.
La respuesta a esta pregunta es fcil si se recurre a la teora de
la probabilidad:
Denotando por X a la variable aleatoria que representa el
nmero diario de consultas al EIS, se sabe que:

Se selecciona la celda y arrastrando con el ratn desde el


borde inferior derecho de la misma se obtiene un listado
completo de nmeros pseudo-aleatorios:
TABLA IV
GENERACION DE 100 NUMEROS ALEATORIOS

E [ X ] = xi P ( X =xi )=0 0.05+ 1 0.10++ 5 0.15=2.95


i=0

Por otra parte, tambin se puede usar simulacin de Monte


Carlo para estimar el nmero esperado de consultas diarias (en
este caso se ha podido obtener el valor exacto usando teora de
probabilidad, pero ello no siempre ser factible).
Cuando se conozca la distribucin de probabilidad asociada a
una variable aleatoria discreta, ser posible usar la columna de
frecuencias relativas acumuladas para obtener los llamados
intervalos de nmeros 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 en la tabla 2, se muestra cada una de las probabilidades


sobre el nmero de consultas. En l, se aprecia claramente la
relacin existente entre probabilidad de cada suceso y el rea
que ste ocupa.

A continuacin, se usa la funcin SI de Excel para asignar un


suceso a cada uno de los nmeros pseudo-aleatorios
generados.
TABLA V
UTILIZACION DE LA FUNCION SI

Repitiendo el proceso de seleccionar y arrastrar se obtiene


algo similar a:
TABLA VI
APLICACIN DE LA FUNCION SI A 100 NUMEROS ALEATORIOS

TABLA II
PROBABILIDADES SOBRE EL NMERO DE CONSULTAS

Esto significa que, al generar un nmero pseudo-aleatorio con


la computadora (proveniente de una distribucin uniforme
entre 0 y 1), se estar llevando a cabo un experimento cuyo
resultado, obtenido de forma aleatoria y segn la distribucin
de probabilidad anterior, estar asociado a un suceso. As por
ejemplo, si la computadora proporciona el nmero pseudoaleatorio 0,2567, se puede suponer que ese da se han
producido 2 consultas al EIS.
Se asigna la funcin ALEATORIO a una casilla (la G1 en el
caso de la imagen):
TABLA III

Finalmente, usando la funcin PROMEDIO ser posible


calcular la media de los valores de la columna H:
TABLA VII
CALCULO DE LA MEDIA UTILIZANDO LA FUNCION PROMEDIO

En este caso, se ha obtenido un valor estimado que


corresponde exactamente con el valor real anteriormente
calculado mediante la definicin terica de la media. Sin

embargo, debido a la componente aleatoria intrnseca al


modelo, normalmente se obtienen valores cercanos al valor
real, siendo dichos valores diferentes unos de otros (cada
simulacin proporcionar sus propios resultados). Se puede
comprobar este hecho pulsando repetidamente sobre la
funcin 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 se usa una formada por 10, los valores que se
obtendrn al pulsar repetidamente F9 no seran estimaciones
tan buenas al valor real. Por el contrario, es de esperar que si
se utiliza 1.000 (o mejor an 10.000) observaciones, los
valores obtenidos en la casilla I1 estaran todos muy cercanos
al valor real [1], [2] y [5].
V. MTODO DE MONTECARLO PARA LA
RESOLUCIN DE ECUACIONES
Una de diversas aplicaciones del mtodo de Montecarlo es
para la resolucin de ecuaciones, para este mtodo se requiere
de dos puntos de apoyo, uno inferior (xi) y uno superior (xs),
de tal manera que cumplan con la condicin de arranque,
siendo as se procede de la siguiente manera:
Paso 1. Se elige un numero aleatorio xal con distribucin
uniforme entre 0 y 1.
Paso 2. Se obtiene otro punto x (x es la variable
independiente) con la siguiente expresin:
x = xi + xal (xs-xi)
Con la cual se estima el valor de la funcin.
Paso 3. Se compara el valor absoluto de esta funcin con la
tolerancia, si es menor que ella, el valor de x es la raz
buscada, sino x es remplazada por xs o s xi, dependiendo de
que si la funcin es mayor o menor a cero.

else
{
if(evaluar>0)
xs=x;
else
xi=x;
}
}while(raiz!=true);
return xi;

Como se puede observar este mtodo recibe 2 parmetros xi y


xs, que son los puntos de apoyo que se mencionaron en la
seccin V.
publicstaticdoublemontecarlo(double xi, doublexs)

Adems contiene las siguientes variables:


double tolerancia=0.001,evaluar=0,x=0;
booleanraiz=false;

double tolerancia.- ser la que contenga la tolerancia de


decimales exactos.
double x.- esta variable se almacenar el valor de la solucin
de la ecuacin y adems remplazar su valor con el punto
nuevo que se est generando por cada iteracin.
double evaluar.- a esto variable se le asignar el valor de
evaluar la funcin f(x), en los valores que tome x.
boolean raz=false.- ser la encargada de romper el ciclo
iterativo cuando se encuentre la solucin de la ecuacin.
Despus de estas variables comienza el ciclo iterativo, como
primer paso se calcula otro punto de x:
x=xi + Math.random()*(xs-xi);

Para esta frmula se utilizara el mtodo ramdon(), de la clase


Math que incluye JAVA en sus librera, para generar nmeros
aleatorios.
Ahora ese valor de x generado, se inserta como parmetro en
el mtodo evaluarFuncion y el retorno del valor de este
mtodo se asigna a la variable evaluar:
evaluar=evaluarFuncion(x);

VI. APLICACIN DEL MTODO DE MONTECARLO


PARA RESOLUCIN DE ECUACIONES, UTILIZANDO
EL LENGUAJE DE PROGRAMACIN JAVA

Entonces, se verifica si el valor absoluto de la variable


evaluar es menor a la tolerancia, si lo es, a la variable raz se le
asigna el valor true y el ciclo se romper, dejando el valor
de x como la raz encontrada. Si no lo es, se verifica si el valor
a evaluar es mayor a 0, si lo es, a xs se le asigna el valor que
contenga la variable x, si no a xi se le asignar el valor de x:

De acuerdo a los pasos mencionados en la seccin V, se


puede definir como un mtodo numrico, fcil de programar
en algn lenguaje de programacin, en este caso para
programarlo se utiliza el lenguaje de programacin JAVA, y
dicho programa se escribi de la siguiente manera:
Como primer paso se elabora un mtodo llamado
evaluarFuncion, el cual contendr la ecuacin que se quiera
resolver o dicho de otra manera encontrar su raz y retornara el
valor de la funcin evaluada en x:

Estos 2 mtodos estn dentro de la clase Montecarlo.


Para poder probarlo, se escribe el mtodo Monte Carlo, con
los puntos de apoyo como parmetros:

publicstaticdoubleevaluarFuncion(double x)
{
return x= 0; //ejemplo return x = 4*x+1;
}

Despus se elabora un mtodo llamado montecarlo el cual


consiste en s, en la rutina iterativa del mtodo de Montecarlo
y retornar el valor de la raz encontrada:
publicstaticdoublemontecarlo(double xi, doublexs)
{
doubletolerancia=0.001,evaluar=0,x=0;
booleanraiz=false;
do
{
x=xi + Math.random()*(xs-xi);
evaluar=evaluarFuncion(x);
if(Math.abs(evaluar)<tolerancia)
raiz=true;

if(Math.abs(evaluar)<tolerancia)
raiz=true;
else
{
if(evaluar>0)
xs=x;
else
xi=x;
}

publicstaticvoid main(String [] arg)


{
System.out.println(montecarlo(0.0/*xi*/,
0.0/*xs*/) );
}

VII. CONCLUSIONES
Al trmino de este trabajo se concluye que el mtodo de
Monte Carlo es una herramienta importante en la simulacin,
debido a que genera nmeros pseudo-aleatorios y en base a
ellos genera resultados muy cercanos a la realidad, dichos

casos han sido de gran impacto a lo largo de la historia de la


humanidad, uno de estos casos fue el desarrollo de la bomba
atmica durante la segunda guerra mundial.
Hoy en da este mtodo ayuda a desarrollar trabajos en los
que se requiere estimar el nmero de veces que ocurrir un
evento durante un cierto intervalo de tiempo como se mostro
en los ejemplos anteriores.
Por lo anterior es importante conocer como funcione el
mtodo de Monte Carlo y en que problemas se puede
implementar sus aplicaciones.

VIII. REFERENCIAS
Libros:
[1] JUDGE, G. Simple Monte Carlo studies on a spreadsheet, Computers
in Higher Education Economics Review (CHEER). Volume 13, Issue 2, 1999.
[2]GEDAM, S.G.; BEAUDET, S.T. Monte Carlo Simulation using Excel
Spreadsheet forPredicting Reliability of a Complex System. Proceedings
Annual Reliability and Maintainability Symposium, 2000.
[3] PEA S.D. Deduccin de distribuciones: el mtodo de Montecarlo,
en Fundamentos de Estadstica. Madrid: Alianza Editorial, 2001.
[4] PARRA G.F. Gestin de Stocks. Editorial: esic, 2005.

Pagina web:
[5] Simulacin de Monte Carlo con Excel
http://www.uoc.edu/in3/emath/docs/Simulacion_MC.pdf

También podría gustarte