El Método Monte Carlo
Aviso para navegantes: más adelante hay monstruos, es decir, matemáticas. Para ver las formulas y esas cosas necesitareis que vuestro navegador soporte MathML embebido. Para Mozilla y Firesomething no hay problema porque viene de serie, pero es recomendable instalar unas fuentes como explican en Fonts for MathML-enabled Mozilla (en Windows es muy sencillo, en Linux es más… "divertido"). Para Intenet Explorer se necesita un añadido como MathPlayer (IE6 o superior).
Para leer el artículo completo pulsar en "Leer más…". Los usuarios de Internet Explorer deberían utilizar este otro enlace y pedir por Navidad un Mozilla Firefox.
El método de Monte Carlo proporciona soluciones aproximadas a gran variedad de problemas matemáticos realizando experimentos estadísticos en un ordenador. El método toma su nombre de la ciudad monagesca por el juego de la ruleta, un generador de números aleatorios simples. El desarrollo de estos métodos comenzó cerca de 1944, aunque anteriormente se habían utilizado métodos estadísticos para obtener resultados fue con el desarrollo de la bomba atómica cuando este método tomó relevancia. De todas formas von Neumann y Ulam no denominaban aún a sus métodos “Monte Carlo”, más tarde (en 1948) Harris y Herman Kahn establecerían el moderno método Monte Carlo.
El método Monte Carlo se utiliza principalmente como método de integración numérica y aparece en muchos campos de la computación como la Iluminación Global (GI) mediante Radiosidad y Mapeado mediante fotones, ambas técnicas de iluminación realistas de escenas generadas por ordenador, que es por lo que a mi me interesa este método.
Si alguien ha visto alguna escena generada mediante algunas de estás técnicas (y para ponerlo fácil diré que las escenas de los edificios de la ciudad de Nueva York de la película El día de mañana están representados mediante estas técnicas, junto con otras como HDRI) pensará que los algoritmos detrás de esos resultados tan realistas deben ser muy complicados. Pues tiene razón, pero no del todo, esos algoritmos utilizan los métodos de Monte Carlo o pseudo-Monte Carlo en muchas partes de su camino a la imagen final, y estos métodos no son nada complicados como descubrireis.
Para empezar deberemos definir una función que nosotros definiremos como , si alguien recuerda algo de sus cursos básicos de matemáticas eso es un cuarto de circunferencia.
A continuación deberemos generar números aleatorios, con cualquier método nos vale. Con ese método a mano seguiremos el siguiente algoritmo:
LimiteXSuperior = 1
LimiteXInferior = 0
LimiteYSuperior = 1
LimiteYInferior = 0
Numerodepruebas = 1000
Pruebascorrectas = 0
Para i entre 1 y Numerodepruebas haz
ValorXAleatorio = Random(LimiteXInferior, LimiteXSuperior)
ValorYAleatorio = Random(LimiteYInferior, LimiteYSuperior)
Si ValorYAleatorio < f(ValorXAleatorio)) entonces
PruebasCorrectas = PruebasCorrectas + 1
Fin Si
Fin Haz
Probabilidad = (LimiteXSuperior - LimiteXInferior) *
(LimiteYSuperior - LimiteYInferior) *
Pruebascorrectas / Numerodepruebas
El número que saldrá será cercano a , cuando el resultado correcto es , bastante impresionante para las pocas pruebas realizadas, si se aumenta el número de pruebas obviamente el resultado será mucho más ajustado.
¿Verdad que no ha sido tan difícil? Si es que la matemáticas no siempre son malas, y si no me creeis pasaros por esta bitácora dedicada en exclusiva a hablar de las matemáticas: Tio Petros. Una de mis bitacoras favoritas, nada difícil y muy amena.
Esto me ha gustado, quizá siga haciendo esto…

