La simulación por computadora es el proceso de modelado matemático , realizado en una computadora , que está diseñado para predecir el comportamiento o el resultado de un sistema físico o del mundo real. La confiabilidad de algunos modelos matemáticos se puede determinar comparando sus resultados con los resultados del mundo real que pretenden predecir. Las simulaciones por computadora se han convertido en una herramienta útil para el modelado matemático de muchos sistemas naturales en física ( física computacional ), astrofísica , climatología , química , biología y manufactura , así como sistemas humanos en economía , psicología , ciencias sociales , atención médica e ingeniería . La simulación de un sistema se representa como la ejecución del modelo del sistema. Puede utilizarse para explorar y obtener nuevos conocimientos sobre nuevas tecnologías y para estimar el rendimiento de sistemas demasiado complejos para soluciones analíticas . [1]
Las simulaciones por computadora se realizan ejecutando programas de computadora que pueden ser pequeños, que se ejecutan casi instantáneamente en dispositivos pequeños, o programas a gran escala que se ejecutan durante horas o días en grupos de computadoras basadas en red. La escala de los acontecimientos que se simulan mediante simulaciones por ordenador ha superado con creces todo lo posible (o quizás incluso imaginable) utilizando modelos matemáticos tradicionales de papel y lápiz. En 1997, una simulación de batalla en el desierto en la que una fuerza invadía a otra implicó el modelado de 66.239 tanques, camiones y otros vehículos en terreno simulado alrededor de Kuwait , utilizando múltiples supercomputadoras en el Programa de Modernización de Computadoras de Alto Rendimiento del Departamento de Defensa . [2]
Otros ejemplos incluyen un modelo de mil millones de átomos de deformación material; [3] un modelo de 2,64 millones de átomos del complejo orgánulo productor de proteínas de todos los organismos vivos, el ribosoma , en 2005; [4]
una simulación completa del ciclo de vida de Mycoplasma genitalium en 2012; y el proyecto Blue Brain de la EPFL (Suiza), iniciado en mayo de 2005 para crear la primera simulación por ordenador de todo el cerebro humano, hasta el nivel molecular. [5]
Un modelo consta de las ecuaciones utilizadas para capturar el comportamiento de un sistema. Por el contrario, la simulación por computadora es la ejecución real del programa que ejecuta algoritmos que resuelven esas ecuaciones, a menudo de manera aproximada. La simulación, por tanto, es el proceso de ejecutar un modelo. Por tanto, no se "construiría una simulación"; en cambio, uno "construiría un modelo (o un simulador)" y luego "ejecutaría el modelo" o, de manera equivalente, "ejecutaría una simulación".
Historia
La simulación por computadora se desarrolló de la mano del rápido crecimiento de la computadora, luego de su primer despliegue a gran escala durante el Proyecto Manhattan en la Segunda Guerra Mundial para modelar el proceso de detonación nuclear . Fue una simulación de 12 esferas duras usando un algoritmo de Monte Carlo . La simulación por computadora se utiliza a menudo como complemento o sustituto de los sistemas de modelado para los cuales no son posibles soluciones analíticas simples y cerradas . Existen muchos tipos de simulaciones por computadora; su característica común es el intento de generar una muestra de escenarios representativos para un modelo en el que una enumeración completa de todos los estados posibles del modelo sería prohibitiva o imposible. [7]
Preparación de datos
Los requisitos de datos externos de simulaciones y modelos varían ampliamente. Para algunos, la entrada puede ser sólo unos pocos números (por ejemplo, la simulación de una forma de onda de electricidad de CA en un cable), mientras que otros pueden requerir terabytes de información (como modelos meteorológicos y climáticos).
Las fuentes de entrada también varían ampliamente:
Sensores y otros dispositivos físicos conectados al modelo;
Superficies de control utilizadas para dirigir de alguna manera el progreso de la simulación;
Datos actuales o históricos ingresados a mano;
Valores extraídos como subproducto de otros procesos;
Valores generados para ese propósito por otras simulaciones, modelos o procesos.
Por último, el momento en que los datos están disponibles varía:
Los datos "invariantes" a menudo se incorporan al código del modelo, ya sea porque el valor es verdaderamente invariante (por ejemplo, el valor de π) o porque los diseñadores consideran que el valor es invariante para todos los casos de interés;
los datos se pueden ingresar en la simulación cuando se inicia, por ejemplo leyendo uno o más archivos, o leyendo datos de un preprocesador ;
Los datos pueden ser proporcionados durante la ejecución de la simulación, por ejemplo a través de una red de sensores.
Debido a esta variedad, y debido a que los diversos sistemas de simulación tienen muchos elementos comunes, existe una gran cantidad de lenguajes de simulación especializados . El más conocido puede ser Simula . Ahora hay muchos otros.
Los sistemas que aceptan datos de fuentes externas deben tener mucho cuidado al saber qué están recibiendo. Si bien es fácil para las computadoras leer valores de archivos de texto o binarios, lo que es mucho más difícil es saber cuál es la exactitud (en comparación con la resolución y precisión de las mediciones ) de los valores. A menudo se expresan como "barras de error", una desviación mínima y máxima del rango de valores dentro del cual se espera que se encuentre el valor verdadero. Debido a que las matemáticas digitales por computadora no son perfectas, los errores de redondeo y truncamiento multiplican este error, por lo que es útil realizar un "análisis de errores" [8] para confirmar que los valores generados por la simulación seguirán siendo útilmente precisos.
Tipos
Los modelos utilizados para simulaciones por computadora se pueden clasificar según varios pares independientes de atributos, que incluyen:
Estocástico o determinista (y como caso especial de determinista, caótico): consulte los enlaces externos a continuación para ver ejemplos de simulaciones estocásticas versus deterministas.
Simulación de sistemas dinámicos , por ejemplo, sistemas eléctricos, sistemas hidráulicos o sistemas mecánicos de cuerpos múltiples (descritos principalmente por DAE) o simulación dinámica de problemas de campo, por ejemplo, CFD de simulaciones FEM (descritas por PDE).
Otra forma de categorizar modelos es observar las estructuras de datos subyacentes. Para simulaciones escalonadas en el tiempo, existen dos clases principales:
Las simulaciones que almacenan sus datos en cuadrículas regulares y solo requieren acceso del vecino siguiente se denominan códigos de plantilla . Muchas aplicaciones de CFD pertenecen a esta categoría.
Si el gráfico subyacente no es una cuadrícula normal, el modelo puede pertenecer a la clase de método meshfree .
Para simulaciones de estado estacionario, las ecuaciones definen las relaciones entre los elementos del sistema modelado e intentan encontrar un estado en el que el sistema esté en equilibrio. Estos modelos se utilizan a menudo en la simulación de sistemas físicos, como un caso de modelado más simple antes de intentar la simulación dinámica.
Las simulaciones dinámicas intentan capturar cambios en un sistema en respuesta a señales de entrada (generalmente cambiantes).
Una simulación de eventos discretos (DES) gestiona los eventos en el tiempo. La mayoría de las simulaciones por computadora, pruebas lógicas y árboles de fallas son de este tipo. En este tipo de simulación, el simulador mantiene una cola de eventos ordenados por el momento simulado en que deberían ocurrir. El simulador lee la cola y activa nuevos eventos a medida que se procesa cada evento. No es importante ejecutar la simulación en tiempo real. A menudo es más importante poder acceder a los datos producidos por la simulación y descubrir defectos lógicos en el diseño o la secuencia de eventos.
Un tipo especial de simulación discreta que no se basa en un modelo con una ecuación subyacente, pero que, no obstante, puede representarse formalmente, es la simulación basada en agentes . En la simulación basada en agentes, las entidades individuales (como moléculas, células, árboles o consumidores) en el modelo se representan directamente (en lugar de por su densidad o concentración) y poseen un estado interno y un conjunto de comportamientos o reglas que determinan cómo funcionan. El estado del agente se actualiza de un paso de tiempo al siguiente.
Anteriormente, los datos de salida de una simulación por computadora a veces se presentaban en una tabla o matriz que mostraba cómo los datos se veían afectados por numerosos cambios en los parámetros de la simulación . El uso del formato matricial estaba relacionado con el uso tradicional del concepto de matriz en modelos matemáticos . Sin embargo, los psicólogos y otros observaron que los humanos podían percibir rápidamente las tendencias mirando gráficos o incluso imágenes en movimiento generadas a partir de los datos, tal como se muestran en la animación de imágenes generadas por computadora (CGI). Aunque los observadores no necesariamente podían leer números o citar fórmulas matemáticas, al observar un mapa meteorológico en movimiento podrían predecir eventos (y "ver que la lluvia se dirigía hacia ellos") mucho más rápido que escaneando tablas de coordenadas de nubes de lluvia . Estas intensas visualizaciones gráficas, que trascendieron el mundo de los números y las fórmulas, a veces también conducían a resultados que carecían de una cuadrícula de coordenadas o omitían marcas de tiempo, como si se alejaran demasiado de las visualizaciones de datos numéricos. Hoy en día, los modelos de pronóstico del tiempo tienden a equilibrar la visión de las nubes de lluvia/nieve en movimiento con un mapa que utiliza coordenadas numéricas y marcas de tiempo numéricas de los eventos.
De manera similar, las simulaciones por computadora CGI de tomografías computarizadas pueden simular cómo un tumor podría reducirse o cambiar durante un período prolongado de tratamiento médico, presentando el paso del tiempo como una vista giratoria de la cabeza humana visible, a medida que el tumor cambia.
Se están desarrollando otras aplicaciones de simulaciones por computadora CGI [ ¿a partir de? ] para mostrar gráficamente grandes cantidades de datos, en movimiento, a medida que se producen cambios durante una ejecución de simulación.
Ejemplos específicos de simulaciones por computadora incluyen:
simulaciones estadísticas basadas en una aglomeración de una gran cantidad de perfiles de entrada, como el pronóstico de la temperatura de equilibrio de las aguas receptoras, lo que permite ingresar una gama de datos meteorológicos para un lugar específico. Esta técnica fue desarrollada para el pronóstico de la contaminación térmica .
La simulación basada en agentes se ha utilizado eficazmente en ecología , donde a menudo se la denomina "modelado basado en individuos" y se utiliza en situaciones en las que no se puede descuidar la variabilidad individual de los agentes, como la dinámica de poblaciones de salmón y trucha (la mayoría de los modelos puramente matemáticos suponen todas las truchas se comportan de manera idéntica).
Simulación por computadora para modelar la infección viral en células de mamíferos. [9]
Simulación por computadora para estudiar la sensibilidad selectiva de los enlaces mediante mecanoquímica durante la molienda de moléculas orgánicas. [11]
Las simulaciones de dinámica de fluidos computacional se utilizan para simular el comportamiento del flujo de aire, agua y otros fluidos. Se utilizan modelos unidimensionales, bidimensionales y tridimensionales. Un modelo unidimensional podría simular los efectos del golpe de ariete en una tubería. Se podría utilizar un modelo bidimensional para simular las fuerzas de arrastre en la sección transversal del ala de un avión. Una simulación tridimensional podría estimar las necesidades de calefacción y refrigeración de un edificio grande.
La comprensión de la teoría molecular termodinámica estadística es fundamental para la apreciación de las soluciones moleculares. El desarrollo del teorema de distribución potencial (PDT) permite simplificar este complejo tema a presentaciones prácticas de la teoría molecular.
En las ciencias sociales, la simulación por computadora es un componente integral de los cinco ángulos de análisis fomentados por la metodología de percolación de datos, [12] que también incluye métodos cualitativos y cuantitativos, revisiones de la literatura (incluida la académica) y entrevistas con expertos, y que forma una extensión de la triangulación de datos. Por supuesto, al igual que cualquier otro método científico, la replicación es una parte importante del modelado computacional [13]
En contextos prácticos
Las simulaciones por computadora se utilizan en una amplia variedad de contextos prácticos, tales como:
Modelos de simulación urbana que simulan patrones dinámicos de desarrollo urbano y respuestas al uso del suelo urbano y políticas de transporte.
ingeniería de tráfico para planificar o rediseñar partes de la red de calles, desde cruces únicos sobre ciudades hasta una red de carreteras nacionales y planificación, diseño y operaciones del sistema de transporte. Vea un artículo más detallado sobre Simulación en Transporte .
Modelar accidentes automovilísticos para probar mecanismos de seguridad en nuevos modelos de vehículos.
La confiabilidad y la confianza que las personas depositan en las simulaciones por computadora depende de la validez del modelo de simulación , por lo tanto, la verificación y la validación son de crucial importancia en el desarrollo de simulaciones por computadora. Otro aspecto importante de las simulaciones por ordenador es el de la reproducibilidad de los resultados, lo que significa que un modelo de simulación no debe proporcionar una respuesta diferente para cada ejecución. Aunque esto pueda parecer obvio, es un punto especial de atención [ editorial ] en simulaciones estocásticas , donde los números aleatorios en realidad deberían ser números semialeatorios. Una excepción a la reproducibilidad son las simulaciones con seres humanos, como las simulaciones de vuelo y los juegos de ordenador . Aquí un ser humano es parte de la simulación y, por lo tanto, influye en el resultado de una manera que es difícil, si no imposible, de reproducir exactamente.
Los fabricantes de vehículos utilizan la simulación por computadora para probar características de seguridad en nuevos diseños. Al construir una copia del automóvil en un entorno de simulación física, pueden ahorrar los cientos de miles de dólares que de otro modo se necesitarían para construir y probar un prototipo único. Los ingenieros pueden recorrer la simulación milisegundos a la vez para determinar las tensiones exactas que se ejercen sobre cada sección del prototipo. [15]
Se pueden utilizar gráficos por computadora para mostrar los resultados de una simulación por computadora. Las animaciones se pueden utilizar para experimentar una simulación en tiempo real, por ejemplo, en simulaciones de entrenamiento . En algunos casos, las animaciones también pueden resultar útiles en modos más rápidos que el tiempo real o incluso más lentos que el tiempo real. Por ejemplo, las animaciones más rápidas que en tiempo real pueden resultar útiles para visualizar la acumulación de colas en la simulación de humanos evacuando un edificio. Además, los resultados de la simulación a menudo se agregan en imágenes estáticas utilizando diversas formas de visualización científica .
En la depuración, simular la ejecución de un programa bajo prueba (en lugar de ejecutarlo de forma nativa) puede detectar muchos más errores de los que el hardware mismo puede detectar y, al mismo tiempo, registrar información de depuración útil, como seguimiento de instrucciones, alteraciones de la memoria y recuentos de instrucciones. Esta técnica también puede detectar desbordamientos del búfer y errores similares "difíciles de detectar", así como producir información de rendimiento y datos de ajuste .
Escollos
Aunque a veces se ignora en las simulaciones por computadora, es muy importante [ editorializar ] realizar un análisis de sensibilidad para garantizar que se comprenda adecuadamente la precisión de los resultados. Por ejemplo, el análisis de riesgo probabilístico de los factores que determinan el éxito de un programa de exploración de yacimientos petrolíferos implica combinar muestras de una variedad de distribuciones estadísticas utilizando el método de Monte Carlo . Si, por ejemplo, uno de los parámetros clave (por ejemplo, la proporción neta de estratos petrolíferos) se conoce sólo con una cifra significativa, entonces el resultado de la simulación podría no ser más preciso que una cifra significativa, aunque podría ( engañosamente) presentarse con cuatro cifras significativas.
^ Strogatz, Steven (2007). "El fin de la percepción". En Brockman, John (ed.). ¿Cuál es tu idea peligrosa? . HarperCollins. ISBN 9780061214950.
^ "Los investigadores organizan la simulación militar más grande jamás realizada". Laboratorio de Propulsión a Chorro . Caltech . 4 de diciembre de 1997. Archivado desde el original el 22 de enero de 2008.
^ "Simulación molecular de fenómenos macroscópicos". IBM Research - Almadén . Archivado desde el original el 22 de mayo de 2013.
^ Ambrosiano, Nancy (19 de octubre de 2005). "La simulación de biología computacional más grande imita la nanomáquina más esencial de la vida". Los Alamos, NM: Laboratorio Nacional de Los Alamos . Archivado desde el original el 4 de julio de 2007.
^ Graham-Rowe, Duncan (6 de junio de 2005). "Comienza la misión para construir un cerebro simulado". Nuevo científico . Archivado desde el original el 9 de febrero de 2015.
^ Santner, Thomas J; Williams, Brian J; Notz, Guillermo I (2003). El diseño y análisis de experimentos informáticos . Springer Verlag.
^ Bratley, Pablo; Fox, Bennet L.; Schrage, Linus E. (28 de junio de 2011). Una guía para la simulación. Medios de ciencia y negocios de Springer. ISBN9781441987242.
^ John Robert Taylor (1999). Introducción al análisis de errores: el estudio de las incertidumbres en las mediciones físicas. Libros de ciencias universitarias. págs. 128-129. ISBN978-0-935702-75-0. Archivado desde el original el 16 de marzo de 2015.
^ ab Gupta, Ankur; Rawlings, James B. (abril de 2014). "Comparación de métodos de estimación de parámetros en modelos cinéticos químicos estocásticos: ejemplos en biología de sistemas". Revista AIChE . 60 (4): 1253–1268. Código Bib : 2014AIChE..60.1253G. doi :10.1002/aic.14409. ISSN 0001-1541. PMC 4946376 . PMID 27429455.
^ Atanasov, AG; Waltenberger, B; Pferschy-Wenzig, EM; Linder, T; Wawrosch, C; Uhrin, P; Temml, V; Wang, L; Schwaiger, S; Heiss, EH; Rodador, JM; Schuster, D; Breuss, JM; Bochkov, V; Mihovilovic, MD; Kopp, B; Bauer, R; Dirsch, VM; Stuppner, H (2015). "Descubrimiento y reabastecimiento de productos naturales de origen vegetal farmacológicamente activos: una revisión". Avanzado en biotecnología . 33 (8): 1582–614. doi :10.1016/j.biotechadv.2015.08.001. PMC 4748402 . PMID 26281720.
^ Mizukami, Koichi; Saito, Fumio; Barón, Michel. Estudio sobre molienda de productos farmacéuticos con ayuda de simulación por ordenador Archivado el 21 de julio de 2011 en Wayback Machine.
^ Mesly, Olivier (2015). Creación de modelos en investigación psicológica. Estados Unidos: Springer Psychology: 126 páginas. ISBN 978-3-319-15752-8
^ Wilensky, Uri; Rand, William (2007). "Hacer que los modelos coincidan: replicar un modelo basado en agentes". Revista de Sociedades Artificiales y Simulación Social . 10 (4): 2.
^ Wescott, Bob (2013). The Every Computer Performance Book, Capítulo 7: Modelado del rendimiento de la computadora. Crear espacio . ISBN978-1482657753.
^ Base, Sara. Un regalo de fuego: cuestiones sociales, legales y éticas para la informática e Internet. 3. Upper Saddle River: Prentice Hall, 2007. Páginas 363–364. ISBN 0-13-600848-8 .
Lectura adicional
Wikimedia Commons tiene medios relacionados con simulaciones por computadora .
Young, Joseph y Findley, Michael. 2014. “Modelado computacional para estudiar conflictos y terrorismo”. Manual de métodos de investigación en estudios militares de Routledge editado por Soeters, Joseph; Shields, Patricia y Rietjens, Sebastiaan. págs. 249–260. Nueva York: Routledge,
S. Hartmann, El mundo como proceso: simulaciones en las ciencias naturales y sociales, en: R. Hegselmann et al. (eds.), Modelado y Simulación en las Ciencias Sociales desde el Punto de Vista de la Filosofía de la Ciencia , Biblioteca de Teoría y Decisión. Dordrecht: Kluwer 1996, 77-100.
P. Humphreys, Ampliarnos: ciencia computacional, empirismo y método científico . Oxford: Oxford University Press , 2004.
James J. Nutaro (2011). Construcción de software para simulación: teoría y algoritmos, con aplicaciones en C++. John Wiley e hijos. ISBN 978-1-118-09945-2.
Desa, WLHM, Kamaruddin, S. y Nawawi, MKM (2012). Modelado de piezas compuestas de aeronaves mediante simulación. Investigación de materiales avanzados, 591–593, 557–560.
Enlaces externos
Guía para el Archivo de Historia Oral de Simulación por Computadora 2003-2018