Los métodos de Monte Carlo , o experimentos de Monte Carlo , son una amplia clase de algoritmos computacionales que se basan en muestreos aleatorios repetidos para obtener resultados numéricos. El concepto subyacente es utilizar la aleatoriedad para resolver problemas que podrían ser deterministas en principio. El nombre proviene del Casino de Monte Carlo en Mónaco, donde el principal desarrollador del método, el matemático Stanislaw Ulam , se inspiró en los hábitos de juego de su tío.
Los métodos de Monte Carlo se utilizan principalmente en tres clases de problemas distintos: optimización, integración numérica y generación de valores a partir de una distribución de probabilidad. También se pueden utilizar para modelar fenómenos con una incertidumbre significativa en las entradas, como el cálculo del riesgo de fallo de una central nuclear. Los métodos de Monte Carlo se suelen implementar mediante simulaciones por ordenador y pueden proporcionar soluciones aproximadas a problemas que de otro modo serían insolubles o demasiado complejos para analizarlos matemáticamente.
Los métodos de Monte Carlo se utilizan ampliamente en diversos campos de la ciencia, la ingeniería y las matemáticas, como la física, la química, la biología, la estadística, la inteligencia artificial, las finanzas y la criptografía. También se han aplicado a las ciencias sociales, como la sociología, la psicología y la ciencia política. Los métodos de Monte Carlo han sido reconocidos como una de las ideas más importantes e influyentes del siglo XX y han permitido muchos avances científicos y tecnológicos.
Los métodos de Monte Carlo también tienen algunas limitaciones y desafíos, como el equilibrio entre precisión y costo computacional, la maldición de la dimensionalidad, la confiabilidad de los generadores de números aleatorios y la verificación y validación de los resultados.
Los métodos de Monte Carlo varían, pero tienden a seguir un patrón particular:
Por ejemplo, considere un cuadrante (sector circular) inscrito en un cuadrado unitario . Dado que la relación de sus áreas es π/4 , el valor de π se puede aproximar utilizando un método de Monte Carlo: [1]
En este procedimiento, el dominio de las entradas es el cuadrado que circunscribe el cuadrante. Se pueden generar entradas aleatorias dispersando granos sobre el cuadrado y luego realizar un cálculo sobre cada entrada (para comprobar si se encuentra dentro del cuadrante). La agregación de los resultados produce nuestro resultado final, la aproximación de π .
Hay dos consideraciones importantes:
Los usos de los métodos de Monte Carlo requieren grandes cantidades de números aleatorios, y su uso se benefició enormemente de los generadores de números pseudoaleatorios , que son mucho más rápidos de usar que las tablas de números aleatorios que se habían utilizado anteriormente para el muestreo estadístico.
Los métodos de Monte Carlo se utilizan a menudo en problemas físicos y matemáticos y son más útiles cuando es difícil o imposible utilizar otros enfoques. Los métodos de Monte Carlo se utilizan principalmente en tres clases de problemas: [2] optimización , integración numérica y generación de valores extraídos de una distribución de probabilidad .
En problemas relacionados con la física, los métodos de Monte Carlo son útiles para simular sistemas con muchos grados de libertad acoplados , como fluidos, materiales desordenados, sólidos fuertemente acoplados y estructuras celulares (véase el modelo celular de Potts , sistemas de partículas interactuantes , procesos McKean-Vlasov , modelos cinéticos de gases ).
Otros ejemplos incluyen la modelización de fenómenos con una incertidumbre significativa en los datos de entrada, como el cálculo del riesgo en los negocios y, en matemáticas, la evaluación de integrales definidas multidimensionales con condiciones de contorno complicadas . En la aplicación a problemas de ingeniería de sistemas (espacio, exploración petrolera , diseño de aeronaves, etc.), las predicciones basadas en Monte Carlo de fallas, sobrecostos y retrasos en los plazos son rutinariamente mejores que la intuición humana o los métodos alternativos "blandos". [3]
En principio, los métodos de Monte Carlo se pueden utilizar para resolver cualquier problema que tenga una interpretación probabilística. Por la ley de los grandes números , las integrales descritas por el valor esperado de alguna variable aleatoria se pueden aproximar tomando la media empírica ( también conocida como la "media de la muestra") de muestras independientes de la variable. Cuando se parametriza la distribución de probabilidad de la variable, los matemáticos a menudo utilizan un muestreador de Monte Carlo de cadena de Markov (MCMC). [4] [5] [6] La idea central es diseñar un modelo de cadena de Markov juicioso con una distribución de probabilidad estacionaria prescrita . Es decir, en el límite, las muestras generadas por el método MCMC serán muestras de la distribución deseada (objetivo). [7] [8] Por el teorema ergódico , la distribución estacionaria se aproxima mediante las medidas empíricas de los estados aleatorios del muestreador MCMC.
En otros problemas, el objetivo es generar extracciones a partir de una secuencia de distribuciones de probabilidad que satisfacen una ecuación de evolución no lineal. Estos flujos de distribuciones de probabilidad siempre se pueden interpretar como las distribuciones de los estados aleatorios de un proceso de Markov cuyas probabilidades de transición dependen de las distribuciones de los estados aleatorios actuales (ver procesos McKean-Vlasov , ecuación de filtrado no lineal ). [9] [10] En otros casos, surge un flujo de distribuciones de probabilidad con un nivel creciente de complejidad de muestreo (modelos de espacios de ruta con un horizonte de tiempo creciente, medidas de Boltzmann-Gibbs asociadas con parámetros de temperatura decrecientes y muchos otros). Estos modelos también se pueden ver como la evolución de la ley de los estados aleatorios de una cadena de Markov no lineal. [10] [11] Una forma natural de simular estos sofisticados procesos de Markov no lineales es muestrear múltiples copias del proceso, reemplazando en la ecuación de evolución las distribuciones desconocidas de los estados aleatorios por las medidas empíricas muestreadas . A diferencia de las metodologías tradicionales de Monte Carlo y MCMC, estas técnicas de partículas de campo medio se basan en muestras interactuantes secuenciales. La terminología campo medio refleja el hecho de que cada una de las muestras ( es decir , partículas, individuos, caminantes, agentes, criaturas o fenotipos) interactúa con las medidas empíricas del proceso. Cuando el tamaño del sistema tiende al infinito, estas medidas empíricas aleatorias convergen a la distribución determinista de los estados aleatorios de la cadena de Markov no lineal, de modo que la interacción estadística entre partículas se desvanece.
Supongamos que se desea conocer el valor esperado μ de una población (y se sabe que μ existe), pero no se dispone de una fórmula para calcularlo. El método de Monte Carlo simple proporciona una estimación de μ ejecutando n simulaciones y promediando los resultados de las simulaciones. No tiene restricciones sobre la distribución de probabilidad de las entradas a las simulaciones, requiriendo únicamente que las entradas se generen aleatoriamente y sean independientes entre sí y que μ exista. Un n suficientemente grande producirá un valor para m que es arbitrariamente cercano a μ ; más formalmente, será el caso que, para cualquier ε > 0, | μ – m | ≤ ε . [12]
Normalmente, el algoritmo para obtener m es
s = 0; para i = 1 a n ejecutamos la simulación por i- ésima vez, obteniendo como resultado r i ; s = s + r i ; repetimos m = s / n ;
Supongamos que queremos saber cuántas veces deberíamos esperar lanzar tres dados de ocho caras para que el total de lanzamientos de dados sea al menos T. Sabemos que existe el valor esperado. Los lanzamientos de dados se distribuyen aleatoriamente y son independientes entre sí. Por lo tanto, se puede aplicar el sencillo método de Monte Carlo:
s = 0; para i = 1 a n, lanza los tres dados hasta que se alcance o se exceda primero T ; r i = el número de lanzamientos ; s = s + r i ; repite m = s / n ;
Si n es suficientemente grande, m estará dentro de ε de μ para cualquier ε > 0.
Sea ε = | μ – m | > 0. Elija el nivel de confianza deseado : la probabilidad porcentual de que, cuando se complete el algoritmo de Monte Carlo, m esté efectivamente dentro de ε de μ . Sea z el puntaje z correspondiente a ese nivel de confianza.
Sea s 2 la varianza estimada, a veces llamada varianza de la “muestra”; es la varianza de los resultados obtenidos a partir de un número relativamente pequeño k de simulaciones de “muestra”. Elija un k ; Driels y Shin observan que “incluso para tamaños de muestra de un orden de magnitud inferior al número requerido, el cálculo de ese número es bastante estable”. [13]
El siguiente algoritmo calcula s 2 en una sola pasada, minimizando la posibilidad de que el error numérico acumulado produzca resultados erróneos: [12]
s1 = 0 ;ejecutar la simulación por primera vez, produciendo el resultado r 1 ; m 1 = r 1 ; // m i es la media de las primeras i simulaciones para i = 2 a k ejecutar la simulación por i -ésima vez , produciendo el resultado r i ; δ i = r i - m i -1 ; m i = m i-1 + (1/ i ) δ i ; s i = s i-1 + (( i - 1)/ i )( δ i ) 2 ; repetir s 2 = s k /( k - 1);
Tenga en cuenta que, cuando se completa el algoritmo, m k es la media de los k resultados.
n es suficientemente grande cuando
[12] [13]
Si n ≤ k , entonces m k = m ; se realizaron suficientes simulaciones de muestra para garantizar que m k esté dentro de ε de μ . Si n > k , entonces se pueden ejecutar n simulaciones "desde cero" o, dado que ya se han realizado k simulaciones, se pueden ejecutar n – k simulaciones más y agregar sus resultados a los de las simulaciones de muestra:
s = m k * k ;para i = k + 1 a n ejecutamos la simulación por i- ésima vez, obteniendo como resultado r i ; s = s + r i ; m = s / n ;
Se puede utilizar una fórmula alternativa en el caso especial donde todos los resultados de la simulación están acotados superior e inferiormente.
Elija un valor para ε que sea el doble de la diferencia máxima permitida entre μ y m. Sea 0 < δ < 100 el nivel de confianza deseado, expresado como porcentaje. Sea cada resultado de simulación r 1 , r 2 , … r i , … r n tal que a ≤ r i ≤ b para a y b finitos . Para tener una confianza de al menos δ de que | μ – m | < ε /2, use un valor para n tal que
Por ejemplo, si δ = 99%, entonces n ≥ 2( b – a ) 2 ln(2/0,01)/ ε 2 ≈ 10,6( b – a ) 2 / ε 2 . [12]
A pesar de su simplicidad conceptual y algorítmica, el costo computacional asociado con una simulación de Monte Carlo puede ser asombrosamente alto. En general, el método requiere muchas muestras para obtener una buena aproximación, lo que puede generar un tiempo de ejecución total arbitrariamente grande si el tiempo de procesamiento de una sola muestra es alto. [14] Aunque esta es una limitación severa en problemas muy complejos, la naturaleza vergonzosamente paralela del algoritmo permite reducir este gran costo (quizás a un nivel factible) a través de estrategias de computación paralela en procesadores locales, clústeres, computación en la nube, GPU, FPGA, etc. [15] [16] [17] [18]
Antes de que se desarrollara el método de Monte Carlo, las simulaciones probaban un problema determinista previamente comprendido y se utilizaba un muestreo estadístico para estimar las incertidumbres en las simulaciones. Las simulaciones de Monte Carlo invierten este enfoque y resuelven problemas deterministas mediante metaheurísticas probabilísticas (consulte recocido simulado ).
Una variante temprana del método de Monte Carlo fue ideada para resolver el problema de la aguja de Buffon , en el que π puede estimarse dejando caer agujas sobre un piso hecho de tiras paralelas equidistantes. En la década de 1930, Enrico Fermi experimentó por primera vez con el método de Monte Carlo mientras estudiaba la difusión de neutrones, pero no publicó este trabajo. [19]
A finales de la década de 1940, Stanislaw Ulam inventó la versión moderna del método de Monte Carlo de la cadena de Markov mientras trabajaba en proyectos de armas nucleares en el Laboratorio Nacional de Los Álamos . En 1946, los físicos de armas nucleares de Los Álamos estaban investigando la difusión de neutrones en el núcleo de un arma nuclear. [19] A pesar de tener la mayoría de los datos necesarios, como la distancia media que viajaría un neutrón en una sustancia antes de colisionar con un núcleo atómico y la cantidad de energía que probablemente emitiría el neutrón después de una colisión, los físicos de Los Álamos no pudieron resolver el problema utilizando métodos matemáticos deterministas convencionales. Ulam propuso utilizar experimentos aleatorios. Relata su inspiración de la siguiente manera:
Los primeros pensamientos e intentos que hice para poner en práctica [el método de Montecarlo] surgieron a partir de una pregunta que se me ocurrió en 1946, cuando me encontraba convaleciente de una enfermedad y jugaba al solitario. La pregunta era: ¿cuáles son las probabilidades de que un solitario Canfield dispuesto con 52 cartas salga bien? Después de pasar mucho tiempo tratando de estimarlas mediante cálculos combinatorios puros, me pregunté si un método más práctico que el "pensamiento abstracto" no sería disponerlo, digamos, cien veces y simplemente observar y contar el número de jugadas exitosas. Esto ya era posible de prever con el comienzo de la nueva era de las computadoras rápidas, e inmediatamente pensé en problemas de difusión de neutrones y otras cuestiones de física matemática, y más en general en cómo cambiar los procesos descritos por ciertas ecuaciones diferenciales en una forma equivalente interpretable como una sucesión de operaciones aleatorias. Más tarde [en 1946], le describí la idea a John von Neumann y comenzamos a planificar los cálculos reales. [20]
Al ser secreto, el trabajo de von Neumann y Ulam requería un nombre clave. [21] Un colega de von Neumann y Ulam, Nicholas Metropolis , sugirió usar el nombre Monte Carlo , que hace referencia al Casino de Monte Carlo en Mónaco donde el tío de Ulam pedía dinero prestado a sus familiares para apostar. [19] Los métodos de Monte Carlo fueron fundamentales para las simulaciones necesarias para un mayor desarrollo de las armas nucleares en la posguerra, incluido el diseño de la bomba H, aunque severamente limitados por las herramientas computacionales de la época. Von Neumann, Nicholas Metropolis y otros programaron la computadora ENIAC para realizar los primeros cálculos de Monte Carlo completamente automatizados, de un núcleo de arma de fisión , en la primavera de 1948. [22] En la década de 1950, los métodos de Monte Carlo se utilizaron en Los Álamos para el desarrollo de la bomba de hidrógeno y se popularizaron en los campos de la física , la química física y la investigación de operaciones . La Corporación Rand y la Fuerza Aérea de Estados Unidos fueron dos de las principales organizaciones responsables de financiar y difundir información sobre los métodos de Monte Carlo durante esta época, y comenzaron a encontrar una amplia aplicación en muchos campos diferentes.
La teoría de métodos de Monte Carlo de partículas de tipo campo medio más sofisticados ciertamente había comenzado a mediados de la década de 1960, con el trabajo de Henry P. McKean Jr. sobre las interpretaciones de Markov de una clase de ecuaciones diferenciales parciales parabólicas no lineales que surgieron en la mecánica de fluidos. [23] [24] Un artículo pionero anterior de Theodore E. Harris y Herman Kahn, publicado en 1951, utilizó métodos de Monte Carlo de tipo genético de campo medio para estimar las energías de transmisión de partículas. [25] Las metodologías de Monte Carlo de tipo genético de campo medio también se utilizan como algoritmos de búsqueda natural heurísticos (también conocidos como metaheurísticos ) en la computación evolutiva. Los orígenes de estas técnicas computacionales de campo medio se pueden rastrear hasta 1950 y 1954 con el trabajo de Alan Turing sobre máquinas de aprendizaje de selección por mutación de tipo genético [26] y los artículos de Nils Aall Barricelli en el Instituto de Estudios Avanzados de Princeton, Nueva Jersey . [27] [28]
Los métodos de Monte Carlo cuántico , y más específicamente los métodos de Monte Carlo de difusión, también pueden interpretarse como una aproximación de Monte Carlo de partículas de campo medio de las integrales de trayectoria de Feynman - Kac . [29] [30] [31] [32] [33] [34] [35] Los orígenes de los métodos de Monte Carlo cuántico se atribuyen a menudo a Enrico Fermi y Robert Richtmyer, quienes desarrollaron en 1948 una interpretación de partículas de campo medio de las reacciones en cadena de neutrones, [36] pero el primer algoritmo de partículas de tipo heurístico y genético (también conocido como métodos de Monte Carlo remuestreados o de reconfiguración) para estimar las energías del estado fundamental de los sistemas cuánticos (en modelos de matriz reducida) se debe a Jack H. Hetherington en 1984. [35] En química molecular, el uso de metodologías de partículas de tipo heurístico genético (también conocidas como estrategias de poda y enriquecimiento) se remonta a 1955 con el trabajo seminal de Marshall N. Rosenbluth y Arianna W. Rosenbluth . [37]
El uso del algoritmo Monte Carlo secuencial en el procesamiento avanzado de señales y en la inferencia bayesiana es más reciente. En 1993, Gordon et al. publicaron en su obra seminal [38] la primera aplicación de un algoritmo de remuestreo de Monte Carlo en la inferencia estadística bayesiana. Los autores llamaron a su algoritmo "filtro bootstrap" y demostraron que, en comparación con otros métodos de filtrado, su algoritmo bootstrap no requiere ninguna suposición sobre ese espacio de estados o el ruido del sistema. Otro artículo pionero en este campo fue el de Genshiro Kitagawa sobre un "filtro Monte Carlo" relacionado, [39] y los de Pierre Del Moral [40] e Himilcon Carvalho, Pierre Del Moral, André Monin y Gérard Salut [41] sobre filtros de partículas publicados a mediados de los años 1990. Los filtros de partículas también fueron desarrollados en el procesamiento de señales en 1989-1992 por P. Del Moral, JC Noyer, G. Rigal y G. Salut en el LAAS-CNRS en una serie de informes de investigación restringidos y clasificados con STCAN (Service Technique des Constructions et Armes Navales), la empresa de TI DIGILOG y el LAAS-CNRS (Laboratorio de Análisis y Arquitectura de Sistemas) sobre problemas de procesamiento de señales de radar/sonar y GPS. [42] [43] [44] [45] [46] [47] Estas metodologías de Monte Carlo secuencial pueden interpretarse como un muestreador de aceptación-rechazo equipado con un mecanismo de reciclaje interactivo.
Desde 1950 hasta 1996, todas las publicaciones sobre metodologías de Monte Carlo secuencial, incluidos los métodos de Monte Carlo de poda y remuestreo introducidos en la física computacional y la química molecular, presentan algoritmos naturales y de tipo heurístico aplicados a diferentes situaciones sin una sola prueba de su consistencia, ni una discusión sobre el sesgo de las estimaciones y sobre algoritmos basados en árboles genealógicos y ancestrales. Los fundamentos matemáticos y el primer análisis riguroso de estos algoritmos de partículas fueron escritos por Pierre Del Moral en 1996. [40] [48]
A finales de los años 1990, Dan Crisan, Jessica Gaines y Terry Lyons [49] [50] [51] y Dan Crisan, Pierre Del Moral y Terry Lyons [52] también desarrollaron metodologías de partículas de tipo ramificado con tamaños de población variables . Otros desarrollos en este campo fueron descritos entre 1999 y 2001 por P. Del Moral, A. Guionnet y L. Miclo [30] [53] [54]
No hay consenso sobre cómo se debe definir Monte Carlo . Por ejemplo, Ripley [55] define la mayoría de los modelos probabilísticos como simulación estocástica , y reserva Monte Carlo para la integración de Monte Carlo y las pruebas estadísticas de Monte Carlo. Sawilowsky [56] distingue entre una simulación , un método de Monte Carlo y una simulación de Monte Carlo: una simulación es una representación ficticia de la realidad, un método de Monte Carlo es una técnica que se puede utilizar para resolver un problema matemático o estadístico, y una simulación de Monte Carlo utiliza un muestreo repetido para obtener las propiedades estadísticas de algún fenómeno (o comportamiento).
A continuación se muestran los ejemplos:
Kalos y Whitlock [57] señalan que no siempre es fácil mantener estas distinciones. Por ejemplo, la emisión de radiación de los átomos es un proceso estocástico natural. Puede simularse directamente, o su comportamiento promedio puede describirse mediante ecuaciones estocásticas que pueden resolverse mediante métodos de Monte Carlo. "De hecho, el mismo código informático puede considerarse simultáneamente como una 'simulación natural' o como una solución de las ecuaciones mediante muestreo natural".
La convergencia de la simulación de Monte Carlo se puede comprobar con la estadística Gelman-Rubin .
La idea principal detrás de este método es que los resultados se calculan en base a un muestreo aleatorio repetido y un análisis estadístico. La simulación de Monte Carlo es, de hecho, experimentación aleatoria, en el caso de que los resultados de estos experimentos no sean bien conocidos. Las simulaciones de Monte Carlo se caracterizan típicamente por muchos parámetros desconocidos, muchos de los cuales son difíciles de obtener experimentalmente. [58] Los métodos de simulación de Monte Carlo no siempre requieren números verdaderamente aleatorios para ser útiles (aunque, para algunas aplicaciones como las pruebas de primalidad , la imprevisibilidad es vital). [59] Muchas de las técnicas más útiles utilizan secuencias pseudoaleatorias deterministas , lo que facilita la prueba y la re-ejecución de simulaciones. La única cualidad generalmente necesaria para hacer buenas simulaciones es que la secuencia pseudoaleatoria parezca "suficientemente aleatoria" en cierto sentido.
Lo que esto significa depende de la aplicación, pero por lo general deben pasar una serie de pruebas estadísticas. Probar que los números se distribuyen de manera uniforme o siguen otra distribución deseada cuando se considera una cantidad suficientemente grande de elementos de la secuencia es una de las más simples y comunes. Las correlaciones débiles entre muestras sucesivas también suelen ser deseables/necesarias.
Sawilowsky enumera las características de una simulación de Monte Carlo de alta calidad: [56]
Los algoritmos de muestreo de números pseudoaleatorios se utilizan para transformar números pseudoaleatorios distribuidos uniformemente en números que se distribuyen de acuerdo con una distribución de probabilidad determinada .
Las secuencias de baja discrepancia se utilizan a menudo en lugar de un muestreo aleatorio de un espacio, ya que garantizan una cobertura uniforme y normalmente tienen un orden de convergencia más rápido que las simulaciones de Monte Carlo que utilizan secuencias aleatorias o pseudoaleatorias. Los métodos basados en su uso se denominan métodos cuasi-Monte Carlo .
En un esfuerzo por evaluar el impacto de la calidad de los números aleatorios en los resultados de las simulaciones de Monte Carlo, los investigadores astrofísicos probaron números pseudoaleatorios criptográficamente seguros generados a través del conjunto de instrucciones RDRAND de Intel , en comparación con los derivados de algoritmos, como el Mersenne Twister , en simulaciones de Monte Carlo de llamaradas de radio de enanas marrones . No se encontró ninguna diferencia estadísticamente significativa entre los modelos generados con generadores de números pseudoaleatorios típicos y RDRAND para ensayos que consistían en la generación de 10 7 números aleatorios. [60]
Existen formas de utilizar probabilidades que no son en absoluto simulaciones de Monte Carlo; por ejemplo, el modelado determinista que utiliza estimaciones puntuales. A cada variable incierta dentro de un modelo se le asigna una estimación de "mejor estimación". Se eligen escenarios (como el mejor, el peor o el caso más probable) para cada variable de entrada y se registran los resultados. [61]
Por el contrario, las simulaciones de Monte Carlo toman muestras de una distribución de probabilidad para cada variable para producir cientos o miles de resultados posibles. Los resultados se analizan para obtener probabilidades de que ocurran diferentes resultados. [62] Por ejemplo, una comparación de un modelo de construcción de costos de hoja de cálculo ejecutado utilizando escenarios tradicionales de "qué pasaría si", y luego ejecutando la comparación nuevamente con la simulación de Monte Carlo y distribuciones de probabilidad triangulares muestra que el análisis de Monte Carlo tiene un rango más estrecho que el análisis de "qué pasaría si". [ ejemplo necesario ] Esto se debe a que el análisis de "qué pasaría si" otorga el mismo peso a todos los escenarios (ver cuantificación de la incertidumbre en finanzas corporativas ), mientras que el método de Monte Carlo rara vez toma muestras en las regiones de probabilidad muy baja. Las muestras en dichas regiones se denominan "eventos raros".
Los métodos de Monte Carlo son especialmente útiles para simular fenómenos con incertidumbre significativa en las entradas y sistemas con muchos grados de libertad acoplados . Las áreas de aplicación incluyen:
Los métodos de Monte Carlo son muy importantes en física computacional , química física y campos aplicados relacionados, y tienen diversas aplicaciones desde cálculos complicados de cromodinámica cuántica hasta el diseño de escudos térmicos y formas aerodinámicas , así como en el modelado del transporte de radiación para cálculos de dosimetría de radiación. [63] [64] [65] En física estadística , el modelado molecular de Monte Carlo es una alternativa a la dinámica molecular computacional , y los métodos de Monte Carlo se utilizan para calcular teorías de campo estadísticas de sistemas simples de partículas y polímeros. [37] [66] Los métodos cuánticos de Monte Carlo resuelven el problema de muchos cuerpos para sistemas cuánticos. [9] [10] [29] En la ciencia de los materiales de radiación , la aproximación de colisión binaria para simular la implantación de iones generalmente se basa en un enfoque de Monte Carlo para seleccionar el siguiente átomo en colisión. [67] En física de partículas experimental , los métodos de Monte Carlo se utilizan para diseñar detectores , comprender su comportamiento y comparar datos experimentales con la teoría. En astrofísica , se utilizan de maneras tan diversas como para modelar tanto la evolución de las galaxias [68] como la transmisión de radiación de microondas a través de una superficie planetaria rugosa. [69] Los métodos de Monte Carlo también se utilizan en los modelos de conjunto que forman la base de la predicción meteorológica moderna .
Los métodos de Monte Carlo se utilizan ampliamente en ingeniería para el análisis de sensibilidad y el análisis probabilístico cuantitativo en el diseño de procesos . La necesidad surge del comportamiento interactivo, colineal y no lineal de las simulaciones de procesos típicas. Por ejemplo,
El Grupo Intergubernamental de Expertos sobre el Cambio Climático se basa en los métodos de Monte Carlo para el análisis de la función de densidad de probabilidad del forzamiento radiativo . [73]
Los métodos de Monte Carlo se utilizan en varios campos de la biología computacional , por ejemplo, para la inferencia bayesiana en filogenia , o para estudiar sistemas biológicos como genomas, proteínas [74] o membranas. [75] Los sistemas se pueden estudiar en los marcos de grano grueso o ab initio dependiendo de la precisión deseada. Las simulaciones por computadora permiten monitorear el entorno local de una molécula particular para ver si está sucediendo alguna reacción química , por ejemplo. En los casos en que no es factible realizar un experimento físico, se pueden realizar experimentos mentales (por ejemplo: romper enlaces, introducir impurezas en sitios específicos, cambiar la estructura local/global o introducir campos externos).
El trazado de trayectorias , a veces denominado trazado de rayos de Monte Carlo, renderiza una escena 3D mediante el trazado aleatorio de muestras de posibles trayectorias de luz. El muestreo repetido de cualquier píxel determinado acabará provocando que el promedio de las muestras converja en la solución correcta de la ecuación de renderizado , lo que lo convierte en uno de los métodos de renderizado de gráficos 3D físicamente más precisos que existen.
Los estándares para los experimentos de Monte Carlo en estadística fueron establecidos por Sawilowsky. [76] En estadística aplicada, los métodos de Monte Carlo pueden utilizarse para al menos cuatro propósitos:
Los métodos de Monte Carlo también son un compromiso entre la aleatorización aproximada y las pruebas de permutación. Una prueba de aleatorización aproximada se basa en un subconjunto específico de todas las permutaciones (lo que implica un enorme trabajo de mantenimiento de las permutaciones que se han considerado). El enfoque de Monte Carlo se basa en un número específico de permutaciones extraídas aleatoriamente (intercambiando una pequeña pérdida de precisión si una permutación se extrae dos veces, o con mayor frecuencia, por la eficiencia de no tener que rastrear qué permutaciones ya se han seleccionado).
Los métodos de Monte Carlo se han desarrollado en una técnica llamada búsqueda de árbol de Monte Carlo que resulta útil para buscar la mejor jugada en un juego. Las posibles jugadas se organizan en un árbol de búsqueda y se utilizan muchas simulaciones aleatorias para estimar el potencial a largo plazo de cada jugada. Un simulador de caja negra representa las jugadas del oponente. [80]
El método de búsqueda de árbol de Monte Carlo (MCTS) tiene cuatro pasos: [81]
El efecto neto, a lo largo de muchos juegos simulados, es que el valor de un nodo que representa un movimiento aumentará o disminuirá, con suerte en función de si ese nodo representa o no un buen movimiento.
La búsqueda de árboles de Monte Carlo se ha utilizado con éxito para jugar juegos como Go , [82] Tantrix , [83] Battleship , [84] Havannah , [85] y Arimaa . [86]
Los métodos de Monte Carlo también son eficientes para resolver ecuaciones diferenciales integrales acopladas de campos de radiación y transporte de energía, y por lo tanto estos métodos se han utilizado en cálculos de iluminación global que producen imágenes fotorrealistas de modelos virtuales 3D, con aplicaciones en videojuegos , arquitectura , diseño , películas generadas por computadora y efectos especiales cinematográficos. [87]
La Guardia Costera de los Estados Unidos utiliza métodos de Monte Carlo en su software de modelado informático SAROPS para calcular las posibles ubicaciones de los buques durante las operaciones de búsqueda y rescate . Cada simulación puede generar hasta diez mil puntos de datos que se distribuyen aleatoriamente en función de las variables proporcionadas. [88] A continuación, se generan patrones de búsqueda basados en extrapolaciones de estos datos para optimizar la probabilidad de contención (POC) y la probabilidad de detección (POD), que juntas equivaldrán a una probabilidad general de éxito (POS). En última instancia, esto sirve como una aplicación práctica de la distribución de probabilidad para proporcionar el método de rescate más rápido y conveniente, salvando vidas y recursos. [89]
La simulación de Monte Carlo se utiliza habitualmente para evaluar el riesgo y la incertidumbre que afectarían el resultado de diferentes opciones de decisión. La simulación de Monte Carlo permite al analista de riesgos empresariales incorporar los efectos totales de la incertidumbre en variables como el volumen de ventas, los precios de las materias primas y de la mano de obra, los tipos de interés y de cambio, así como el efecto de distintos eventos de riesgo como la cancelación de un contrato o el cambio de una ley fiscal.
Los métodos de Monte Carlo en finanzas se utilizan a menudo para evaluar inversiones en proyectos a nivel de unidad de negocio o corporativo, u otras valoraciones financieras. Se pueden utilizar para modelar cronogramas de proyectos , donde las simulaciones agregan estimaciones para duraciones en el peor de los casos, el mejor de los casos y las más probables para cada tarea a fin de determinar los resultados para el proyecto en general. [90] Los métodos de Monte Carlo también se utilizan en la fijación de precios de opciones y el análisis de riesgo de incumplimiento. [91] [92] Además, se pueden utilizar para estimar el impacto financiero de intervenciones médicas. [93]
Se utilizó un método de Monte Carlo para evaluar el valor potencial de un programa propuesto para ayudar a las mujeres solicitantes de Wisconsin a tener éxito en sus solicitudes de órdenes de restricción por acoso y abuso doméstico . Se propuso ayudar a las mujeres a tener éxito en sus solicitudes proporcionándoles una mayor defensa, reduciendo así potencialmente el riesgo de violación y agresión física . Sin embargo, había muchas variables en juego que no se podían estimar perfectamente, incluida la eficacia de las órdenes de restricción, la tasa de éxito de las solicitantes con y sin defensa, y muchas otras. El estudio realizó ensayos que variaron estas variables para llegar a una estimación general del nivel de éxito del programa propuesto en su conjunto. [94]
El método de Monte Carlo también se ha utilizado para simular el número de publicaciones de libros en función del género literario en Malasia. La simulación de Monte Carlo utilizó datos de publicaciones de libros nacionales publicados anteriormente y el precio de los libros según el género literario en el mercado local. Los resultados de Monte Carlo se utilizaron para determinar qué tipo de género literario les gusta a los malayos y se utilizaron para comparar las publicaciones de libros entre Malasia y Japón . [95]
Nassim Nicholas Taleb escribe sobre los generadores de Monte Carlo en su libro de 2001 Fooled by Randomness como un ejemplo real de la prueba de Turing inversa : un ser humano puede ser declarado no inteligente si su escritura no puede distinguirse de una generada.
En general, los métodos de Monte Carlo se utilizan en matemáticas para resolver diversos problemas mediante la generación de números aleatorios adecuados (véase también Generación de números aleatorios ) y la observación de la fracción de los números que obedece a alguna propiedad o propiedades. El método es útil para obtener soluciones numéricas a problemas demasiado complicados para resolverlos analíticamente. La aplicación más común del método de Monte Carlo es la integración de Monte Carlo.
Los algoritmos de integración numérica deterministas funcionan bien en un pequeño número de dimensiones, pero se encuentran con dos problemas cuando las funciones tienen muchas variables. En primer lugar, el número de evaluaciones de función necesarias aumenta rápidamente con el número de dimensiones. Por ejemplo, si 10 evaluaciones proporcionan una precisión adecuada en una dimensión, entonces se necesitan 10 100 puntos para 100 dimensiones, demasiados para ser calculados. Esto se llama la maldición de la dimensionalidad . En segundo lugar, el límite de una región multidimensional puede ser muy complicado, por lo que puede no ser factible reducir el problema a una integral iterada . [96] 100 dimensiones no es de ninguna manera inusual, ya que en muchos problemas físicos, una "dimensión" es equivalente a un grado de libertad .
Los métodos de Monte Carlo ofrecen una salida a este aumento exponencial del tiempo de cálculo. Siempre que la función en cuestión se comporte razonablemente bien , se puede estimar seleccionando aleatoriamente puntos en un espacio de 100 dimensiones y tomando algún tipo de promedio de los valores de la función en estos puntos. Según el teorema del límite central , este método muestra convergencia, es decir, cuadruplicar el número de puntos muestreados reduce a la mitad el error, independientemente del número de dimensiones. [96]
Un refinamiento de este método, conocido como muestreo de importancia en estadística, implica muestrear los puntos aleatoriamente, pero con mayor frecuencia donde el integrando es grande. Para hacer esto con precisión, uno tendría que conocer ya la integral, pero uno puede aproximar la integral por una integral de una función similar o usar rutinas adaptativas como muestreo estratificado , muestreo estratificado recursivo , muestreo paraguas adaptativo [97] [98] o el algoritmo VEGAS .
Un enfoque similar, el método cuasi-Monte Carlo , utiliza secuencias de baja discrepancia . Estas secuencias "rellenan" mejor el área y muestrean los puntos más importantes con mayor frecuencia, por lo que los métodos cuasi-Monte Carlo a menudo pueden converger en la integral más rápidamente.
Otra clase de métodos para muestrear puntos en un volumen es simular recorridos aleatorios sobre él ( Márkov Chain Monte Carlo ). Dichos métodos incluyen el algoritmo Metropolis-Hastings , el muestreo de Gibbs , el algoritmo de Wang y Landau y metodologías MCMC de tipo interactivo como los muestreadores secuenciales de Monte Carlo . [99]
Otra aplicación poderosa y muy popular para los números aleatorios en la simulación numérica es en la optimización numérica . El problema es minimizar (o maximizar) funciones de algún vector que a menudo tiene muchas dimensiones. Muchos problemas pueden formularse de esta manera: por ejemplo, un programa de ajedrez de computadora podría verse como si intentara encontrar el conjunto de, digamos, 10 movimientos que produce la mejor función de evaluación al final. En el problema del viajante de comercio, el objetivo es minimizar la distancia recorrida. También hay aplicaciones para el diseño de ingeniería, como la optimización de diseño multidisciplinario . Se ha aplicado con modelos cuasi unidimensionales para resolver problemas de dinámica de partículas explorando eficientemente un gran espacio de configuración. La referencia [100] es una revisión completa de muchos temas relacionados con la simulación y la optimización.
El problema del viajante es lo que se denomina un problema de optimización convencional. Es decir, se conocen con certeza todos los datos (distancias entre cada punto de destino) necesarios para determinar el camino óptimo a seguir y el objetivo es recorrer las posibles opciones de viaje para llegar a la que tenga la menor distancia total. Si en lugar de que el objetivo sea minimizar la distancia total recorrida para visitar cada destino deseado, se minimiza el tiempo total necesario para llegar a cada destino, esto va más allá de la optimización convencional, ya que el tiempo de viaje es inherentemente incierto (atascos de tráfico, hora del día, etc.). Como resultado, para determinar el camino óptimo se requiere una simulación diferente: optimización para comprender primero el rango de tiempos potenciales que podría tomar ir de un punto a otro (representado por una distribución de probabilidad en este caso en lugar de una distancia específica) y luego optimizar las decisiones de viaje para identificar el mejor camino a seguir teniendo en cuenta esa incertidumbre.
La formulación probabilística de problemas inversos conduce a la definición de una distribución de probabilidad en el espacio del modelo. Esta distribución de probabilidad combina información previa con información nueva obtenida midiendo algunos parámetros observables (datos). Como, en el caso general, la teoría que vincula los datos con los parámetros del modelo es no lineal, la probabilidad posterior en el espacio del modelo puede no ser fácil de describir (puede ser multimodal, algunos momentos pueden no estar definidos, etc.).
Al analizar un problema inverso, obtener un modelo de máxima verosimilitud no suele ser suficiente, ya que normalmente se desea obtener información sobre el poder de resolución de los datos. En el caso general, se modelan muchos parámetros y una inspección de las densidades de probabilidad marginales de interés puede resultar poco práctica o incluso inútil. Pero es posible generar de forma pseudoaleatoria una gran colección de modelos según la distribución de probabilidad posterior y analizar y mostrar los modelos de tal manera que se transmita al espectador información sobre las verosimilitudes relativas de las propiedades del modelo. Esto se puede lograr mediante un método de Monte Carlo eficiente, incluso en casos en los que no se dispone de una fórmula explícita para la distribución a priori .
El método de muestreo de importancia más conocido, el algoritmo Metropolis, se puede generalizar y proporciona un método que permite el análisis de problemas inversos (posiblemente altamente no lineales) con información a priori compleja y datos con una distribución de ruido arbitraria. [101] [102]
La exposición popular del método de Monte Carlo fue realizada por McCracken. [103] La filosofía general del método fue discutida por Elishakoff [104] y Grüne-Yanoff y Weirich. [105]
Monografías sobre estadística y probabilidad aplicada
: Probabilidad y aplicaciones
Informe desclasificado Archivo de Los Álamos