# Simulación (informática)

Una simulación informática (también conocida como simulación por ordenador, modelo de simulación por computadora o un modelo informatizado) es un programa informático o una red de ordenadores cuyo fin es crear una simulación de un modelo abstracto de un determinado sistema. Las simulaciones por computadora se han convertido en una parte relevante y útil de los modelos matemáticos de muchos sistemas naturales de ciencias como la física, geofísica, astrofísica, química y la biología; así como de sistemas humanos de economía, psicología y ciencias sociales. Además, se emplea en el diseño de nueva tecnología para llegar a comprender mejor su funcionamiento.
Las simulaciones por computadora abarcan desde programas informáticos cuya ejecución dura unos minutos hasta conjuntos de ordenadores conectados en red cuya ejecución dura horas, e incluso hay simulaciones que se extienden varios días. La variedad de acontecimientos que se pueden recrear mediante simulaciones por computadora ha superado con creces las posibilidades del modelo matemático tradicional de lápiz y papel: hace más de diez años, una simulación de una batalla en el desierto en la que un ejército atacaba a otro requirió del modelado de 66 239 tanques, camiones y otros vehículos en un terreno simulado cerca de Kuwait, para lo que se emplearon varios superordenadores del Programa para la Modernización de los Ordenadores de Alto Rendimiento (del inglés: High Performance Computer Modernization Program) del Departamento de Defensa de Estados Unidos. Un modelo de mil millones de átomos de una deformación material, otro modelo de 2,64 millones de átomos de un ribosoma (el complejo supramolecular sintetizador de proteínas presente en todos los organismos) y el proyecto Blue Brain en la Escuela Politécnica Federal de Lausana, Suiza, comenzaron en mayo de 2005 a crear la primera simulación por computadora de todo el cerebro humano, llegando incluso al nivel molecular.

## Simulación vs. modelado numérico

Para crear modelos de la realidad se emplea el modelado matemático. Un modelo matemático trata de encontrar soluciones analíticas a las ecuaciones que gobiernan los procesos que se suponen responsables del sistema que se estudia y del cual se tienen observaciones metódicas. El objetivo es validar esas ecuaciones y posibilitar la predicción del comportamiento del sistema partiendo de un conjunto de parámetros y condiciones iniciales. Los modelos numéricos resultaron de utilizar los ordenadores con el mismo propósito, resolver las ecuaciones no de forma analítica sino numérica.
Aunque las simulaciones por computadora emplean algunos algoritmos de modelos matemáticos, los ordenadores pueden, además, combinar las simulaciones con la realidad o con acontecimientos reales tales como la generación de respuestas de entrada o la simulación de sujetos de prueba que no están ya presentes. Mientras que los sujetos de prueba ausentes son fruto de la simulación o modelación, el sistema que utilizan podría ser el equipo real, lo cual serviría para revelar los límites de rendimiento o los defectos tras un uso continuado gracias a estos usuarios simulados.
El término simulación por computadora es más amplio que el de modelado por ordenador, pues este último implica que todos los aspectos se modelan en la representación del ordenador. Sin embargo, simulación por computadora también incluye generar entradas de usuarios simulados para ejecutar un software de ordenador real o un equipo y solo se modela una parte del sistema. Un ejemplo de esto serían los simuladores de vuelo que pueden ejecutar tanto máquinas como software de vuelo real.
Las simulaciones por computadora se emplean en muchos campos, incluida la ciencia, la tecnología, el entretenimiento y la planificación de negocios.

## Historia

La simulación por computadora se desarrolló a la par que se produjo el vertiginoso progreso del ordenador. Su primer despliegue a gran escala fue en el Proyecto Manhattan, durante la Segunda Guerra Mundial, para recrear una detonación nuclear. Se empleó el Método de Montecarlo. Las simulaciones por computadora a veces complementan o incluso sustituyen a los sistemas de modelización para los que no es posible hallar soluciones analíticas de forma cerrada. Existen muchos tipos de simulación por computadora, pero todos ellos comparten una característica común: tratan de generar una muestra de escenarios representativos para un modelo en el que una relación completa de todos los estados posibles de este sería muy costoso o imposible. Los modelos informatizados se emplearon inicialmente como suplemento de otros parámetros, pero más adelante su uso se extendió a otros ámbitos.

## Preparación de los datos

La entrada y salida de datos para la simulación pueden realizarse a través de documentos de texto formateados o de un procesador para antes y después de la simulación.
La preparación de los datos, es, probablemente, la parte más importante de la simulación por computadora. Como la simulación es digital, al producirse los inevitables errores de redondear o truncar cifras, incluso el error más pequeño en los datos originales puede transformarse en un error grave más adelante en la simulación. Aunque todos los análisis informáticos están sujetos al GIGO (entrada falsa/salida falsa), este se produce de manera especial en la simulación por computadora. De hecho, el descubrimiento de este error acumulativo e inevitable en los sistemas digitales es el origen de la teoría del caos.

## Tipos

Los modelos computacionales pueden clasificarse atendiendo a distintos pares de atributos, a saber:
* Estocástico o determinista
* Estático o dinámico
* Continuo o discreto
* Local o distribuido
Las ecuaciones definen las relaciones existentes entre los elementos del sistema modelado y tratan de encontrar un estado en el que el sistema esté en equilibrio. Esta clase de modelos se emplean habitualmente para simular sistemas físicos, esto es, a modo de modelaje más sencillo antes de pasar al modelado dinámico.
* Los modelos de simulación dinámica cambian en un sistema en respuesta a señales de entrada.
* Los modelos estocásticos emplean generadores de números aleatorios para simular el azar o una serie de acontecimientos aleatorios.
* Una simulación de un acontecimiento discreto (DES, del inglés Discrete event simulation) manipula acontecimientos en el tiempo. La mayoría de las simulaciones por computadora de tests de lógica y arborigramas de fallos son de este tipo. En este tipo de simulación, el simulador tiene una lista de acontecimientos ordenados por el tiempo al que deberían suceder. El simulador lee la lista y activa nuevos acontecimientos a medida que se procesa otro. No es importante ejecutar la simulación en tiempo real, sino que normalmente se le da más importancia al poder acceder a los datos producidos por la simulación para descubrir defectos lógicos en el diseño o en la sucesión de acontecimientos.
* Una simulación de movimiento continuo proporciona una solución numérica a ecuaciones diferenciales algebraicas o ecuaciones diferenciales (tanto ecuaciones diferenciales en derivadas parciales como ecuaciones diferenciales ordinarias). A intervalos regulares, el programa de simulación resuelve todas las ecuaciones y utiliza los números para cambiar el estado y la salida de la simulación. Entre las aplicaciones se incluyen simuladores de vuelo, videojuegos de construcción y gestión, modelados de procesos químicos y simulaciones de circuitos eléctricos. En un principio, este tipo de simulaciones se ejecutaban en ordenadores analógicos, en los que se podían representar las ecuaciones diferenciales mediante distintos componentes eléctricos como amplificadores operacionales. Sin embargo, a partir de finales de los años 80, la mayor parte de las simulaciones analógicas se ejecutaban en ordenadores digitales que emulaban a los ordenadores analógicos.
* Un tipo especial de simulación discreta que no se sustenta en un modelo basado en una ecuación, no obstante, puede representarse formalmente, es la simulación agent-based. En esta simulación, las entidades individuales (como, por ejemplo, moléculas, células, árboles o consumidores) del 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 se actualiza el estado del «agente» (agent) de un salto de tiempo al siguiente.
* Los modelos distribuidos se ejecutan en una red de ordenadores interconectados, posiblemente a través de Internet. A este tipo de simulaciones dispersas en distintos ordenadores centrales se las conoce con el nombre de «simulaciones distribuidas». Existen diversos estándares para las simulaciones distribuidas, entre los que se encuentran el Aggregate Level Simulation Protocol (ALSP), el Distributed Interactive Simulation (DIS), el High-level architecture (simulation) (HLA) y el Test and Training Enabling Architecture (TENA).

## Simulaciones de CGI (imagen generada por computadora)

Antes, los datos de salida de una simulación por computadora se presentaban en una tabla o en una matriz, de manera que se mostraba el efecto que los múltiples cambios en los parámetros tenían sobre los datos. El empleo del formato de matriz se debía al uso tradicional que se hacía de la matriz en los modelos matemáticos. Sin embargo, los psicólogos advirtieron que los seres humanos percibían mejor los cambios en el desarrollo de las situaciones si miraban gráficos o incluso imágenes en movimiento o animaciones generadas a partir de los datos, como las que se ejecutan en las animaciones de imágenes generadas por computadora. Así, aunque los sujetos no pudieran comprender los números o descifrar fórmulas matemáticas, al observar un gráfico del tiempo meteorológico en movimiento podrían ser capaces de predecir determinados acontecimientos mucho más rápido que con el análisis de tablas con coordenadas de nubes de lluvia. Estas representaciones gráficas tan potentes, que fueron más allá del mundo de los números y las fórmulas, a veces producían salidas de datos que carecían de un mapa de coordenadas o de cuadros de tiempo, desviándose demasiado de las representaciones de datos numéricas. Hoy en día, los modelos de los partes meteorológicos tienden a buscar un equilibrio entre los gráficos de nubes de lluvia o de nieve en movimiento con los mapas que emplean coordenadas numéricas y cuadros de tiempo numéricos de acontecimientos.
Del mismo modo, las simulaciones de CGI de TAC pueden recrear cómo un tumor disminuye o cambia durante un período largo de tratamiento médico, mostrando así el transcurso del tiempo en una representación de la cabeza humana en rotación.
Se están desarrollando otros usos de las simulaciones CGI para representar gráficamente gran cantidad de datos en movimiento a medida que se producen los cambios en la ejecución de la simulación.
Ejemplo de simulación CGI
Interacción gravitacional entre dos galaxias en tres momentos de tiempo dados. La forma final de la galaxia mayor alargada es observada en algunas galaxias especulándose que su formación es debida a una interacción anterior cercana con otra galaxia de menor tamaño .