Los modelos a microescala forman una clase amplia de modelos computacionales que simulan detalles a escala fina, en contraste con los modelos a macroescala , que fusionan detalles en categorías selectas. [2] [3] Los modelos de microescala y macroescala se pueden utilizar juntos para comprender diferentes aspectos del mismo problema.
Los modelos a macroescala pueden incluir ecuaciones ordinarias , parciales e integrodiferenciales , donde las categorías y los flujos entre las categorías determinan la dinámica, o pueden involucrar solo ecuaciones algebraicas . Un modelo abstracto a macroescala se puede combinar con modelos a microescala más detallados. Las conexiones entre las dos escalas están relacionadas con el modelado multiescala . Una técnica matemática para el modelado multiescala de nanomateriales se basa en el uso de la función de Green multiescala .
Por el contrario, los modelos a microescala pueden simular una variedad de detalles, como bacterias individuales en biopelículas , [4] peatones individuales en vecindarios simulados, [5] haces de luz individuales en imágenes de trazado de rayos , [6] casas individuales en ciudades, [7 ] poros de escala fina y flujo de fluidos en baterías, [8] compartimentos de escala fina en meteorología, [9] estructuras de escala fina en sistemas de partículas, [10] y otros modelos donde las interacciones entre individuos y las condiciones de fondo determinan la dinámica.
Los modelos de eventos discretos , los modelos basados en individuos y los modelos basados en agentes son casos especiales de modelos a microescala. Sin embargo, los modelos a microescala no requieren individuos discretos ni eventos discretos. Los detalles finos sobre topografía, edificios y árboles pueden agregar detalles a microescala a las simulaciones meteorológicas y pueden conectarse a lo que se llama modelos de mesoescala en esa disciplina. [9] La resolución de paisaje de un metro cuadrado disponible a partir de imágenes LIDAR permite modelar el flujo de agua a través de superficies terrestres, por ejemplo, riachuelos y bolsas de agua, utilizando conjuntos de detalles del tamaño de un gigabyte. [11] Los modelos de redes neuronales pueden incluir neuronas individuales, pero pueden ejecutarse en tiempo continuo y, por lo tanto, carecer de eventos discretos precisos. [12]
Las ideas para modelos computacionales a microescala surgieron en los primeros días de la informática y se aplicaron a sistemas complejos que no podían describirse con precisión mediante formas matemáticas estándar.
Dos temas surgieron en el trabajo de dos fundadores de la computación moderna a mediados del siglo XX. Primero, el pionero Alan Turing utilizó modelos a macroescala simplificados para comprender las bases químicas de la morfogénesis , pero luego propuso y utilizó modelos computacionales a microescala para comprender las no linealidades y otras condiciones que surgirían en los sistemas biológicos reales. [13] En segundo lugar, el pionero John von Neumann creó un autómata celular para comprender las posibilidades de autorreplicación de entidades arbitrariamente complejas, [14] que tenía una representación a microescala en el autómata celular pero no una forma de macroescala simplificada. Este segundo tema se considera parte de los modelos basados en agentes , donde las entidades, en última instancia, pueden ser agentes con inteligencia artificial que operan de forma autónoma.
En el último cuarto del siglo XX, la capacidad computacional había crecido tanto [15] [16] que se podían incluir hasta decenas de miles de individuos o más en modelos a microescala, y que se podían aplicar matrices dispersas para lograr también un alto rendimiento. . [17] Los continuos aumentos en la capacidad informática permitieron simular cientos de millones de individuos en computadoras comunes con modelos a microescala a principios del siglo XXI.
El término "modelo a microescala" surgió más tarde en el siglo XX y ahora aparece en la literatura de muchas ramas de las ciencias físicas y biológicas. [5] [7] [8] [9] [18]
La Figura 1 representa un modelo fundamental a macroescala: crecimiento demográfico en un entorno ilimitado. Su ecuación es relevante en otros ámbitos, como el crecimiento compuesto del capital en economía o el deterioro exponencial en física. Tiene una variable fusionada, el número de individuos de la población en algún momento . Tiene un parámetro amalgamado , la tasa de crecimiento anual de la población, calculada como la diferencia entre la tasa anual de natalidad y la tasa anual de mortalidad . El tiempo se puede medir en años, como se muestra aquí a modo de ilustración, o en cualquier otra unidad adecuada.
El modelo a macroescala de la Figura 1 amalgama parámetros e incorpora una serie de aproximaciones simplificadoras:
Todas estas aproximaciones del modelo a macroescala se pueden refinar en modelos de microescala análogos. En la primera aproximación mencionada anteriormente (que las tasas de natalidad y mortalidad son constantes), el modelo a macroescala de la Figura 1 es exactamente la media de un gran número de ensayos estocásticos con la tasa de crecimiento fluctuando aleatoriamente en cada instante del tiempo. [19] Los detalles estocásticos a microescala se incluyen en una ecuación de difusión diferencial parcial y esa ecuación se utiliza para establecer la equivalencia.
Para relajar otras suposiciones, los investigadores han aplicado métodos computacionales. La Figura 2 es un algoritmo computacional de microescala de muestra que corresponde al modelo de macroescala de la Figura 1. Cuando todos los individuos son idénticos y las mutaciones en las tasas de natalidad y mortalidad están desactivadas, la dinámica de microescala es muy paralela a la dinámica de macroescala (Figuras 3A y 3B). Las ligeras diferencias entre los dos modelos surgen de variaciones estocásticas en la versión de microescala que no están presentes en el modelo determinista de macroescala. Estas variaciones serán diferentes cada vez que se realice el algoritmo, surgiendo de variaciones intencionadas en secuencias de números aleatorios.
Cuando no todos los individuos son idénticos, la dinámica a microescala puede diferir significativamente de la dinámica a macroescala, simulando situaciones más realistas que las que se pueden modelar a macroescala (Figuras 3C y 3D). El modelo a microescala no incorpora explícitamente la ecuación diferencial, aunque para poblaciones grandes la simula estrechamente. Cuando los individuos difieren entre sí, el sistema tiene un comportamiento bien definido, pero las ecuaciones diferenciales que gobiernan ese comportamiento son difíciles de codificar. El algoritmo de la Figura 2 es un ejemplo básico de lo que se llama modelo sin ecuaciones . [20]
Cuando se habilitan mutaciones en el modelo de microescala ( ), la población crece más rápidamente que en el modelo de macroescala (Figuras 3C y 3D). Las mutaciones en los parámetros permiten que algunos individuos tengan tasas de natalidad más altas y otros tengan tasas de mortalidad más bajas, y esos individuos contribuyen proporcionalmente más a la población. En igualdad de condiciones, la tasa de natalidad promedio se desplaza hacia valores más altos y la tasa de mortalidad promedio se desplaza hacia valores más bajos a medida que avanza la simulación. Esta deriva se rastrea en las estructuras de datos denominadas beta y delta del algoritmo de microescala de la Figura 2.
El algoritmo de la Figura 2 es un modelo de microescala simplificado que utiliza el método de Euler . En la práctica también se utilizan otros algoritmos como el método de Gillespie [21] y el método de eventos discretos [17] . Las versiones del algoritmo en uso práctico incluyen eficiencias como eliminar a las personas de la consideración una vez que mueren (para reducir los requisitos de memoria y aumentar la velocidad) y programar eventos estocásticos en el futuro (para proporcionar una escala de tiempo continua y mejorar aún más la velocidad). [17] Estos enfoques pueden ser órdenes de magnitud más rápidos.
La complejidad de los sistemas abordados por modelos de microescala genera complejidad en los propios modelos, y la especificación de un modelo de microescala puede ser decenas o cientos de veces mayor que su correspondiente modelo de macroescala. (El ejemplo simplificado de la Figura 2 tiene 25 veces más líneas en su especificación que la Figura 1.) Dado que los errores ocurren en el software de computadora y no pueden eliminarse por completo mediante métodos estándar como las pruebas, [22] y dado que los modelos complejos a menudo no lo son publicados en detalle ni revisados por pares, su validez ha sido puesta en duda. [23] Existen directrices sobre las mejores prácticas para modelos a microescala [24] pero ningún artículo sobre el tema afirma una resolución completa del problema de validar modelos complejos.
La capacidad informática está alcanzando niveles en los que poblaciones de países enteros o incluso del mundo entero están al alcance de modelos a microescala, y las mejoras en los datos censales y de viajes permiten seguir mejorando la parametrización de dichos modelos. Los sensores remotos de los satélites de observación de la Tierra y los observatorios terrestres, como la Red Nacional de Observatorios Ecológicos (NEON), proporcionan grandes cantidades de datos para la calibración. Las posibles aplicaciones van desde predecir y reducir la propagación de enfermedades hasta ayudar a comprender la dinámica de la Tierra.
Figura 1. Uno de los modelos a macroescala más simples: una ecuación diferencial ordinaria que describe un crecimiento exponencial continuo . es el tamaño de la población en ese momento y es la tasa de cambio a través del tiempo en una sola dimensión . es la población inicial , es la tasa de natalidad por unidad de tiempo y es la tasa de mortalidad por unidad de tiempo. A la izquierda está la forma diferencial; a la derecha está la solución explícita en términos de funciones matemáticas estándar, que en este caso se deriva de la forma diferencial. Casi todos los modelos a macroescala son más complejos que este ejemplo, ya que tienen múltiples dimensiones, carecen de soluciones explícitas en términos de funciones matemáticas estándar y deben entenderse desde sus formas diferenciales.
Figura 2. Un algoritmo básico que aplica el método de Euler a un modelo individual. Ver texto para discusión. El algoritmo, representado en pseudocódigo , comienza con la invocación del procedimiento , que utiliza las estructuras de datos para realizar la simulación según los pasos numerados que se describen a la derecha. Invoca repetidamente la función , que devuelve su parámetro perturbado por un número aleatorio extraído de una distribución uniforme con desviación estándar definida por la variable . (La raíz cuadrada de 12 aparece porque la desviación estándar de una distribución uniforme incluye ese factor). Se supone que la función en el algoritmo devuelve un número aleatorio distribuido uniformemente . Se supone que los datos se restablecen a sus valores iniciales en cada invocación de .
Figura 3. Comparación gráfica de la dinámica de las simulaciones a macroescala y microescala de las Figuras 1 y 2, respectivamente.