

La simulation par ordinateur est l'exécution d'un modèle mathématique sur un ordinateur , le modèle étant conçu pour représenter le comportement ou le résultat d'un système réel ou physique. La fiabilité de certains modèles mathématiques peut être déterminée en comparant leurs résultats aux résultats réels qu'ils visent à prédire. Les simulations par ordinateur sont devenues un outil utile pour la modélisation mathématique de nombreux systèmes naturels en physique ( physique computationnelle ), en astrophysique , en climatologie , en chimie , en biologie et en fabrication , ainsi que des systèmes humains en économie , en psychologie , en sciences sociales , en soins de santé et en ingénierie . La simulation d'un système est représentée par l'exécution du modèle du système. Elle peut être utilisée pour explorer et acquérir de nouvelles connaissances sur les nouvelles technologies et pour estimer les performances de systèmes trop complexes pour des solutions analytiques .
Les simulations informatiques sont réalisées en exécutant des programmes informatiques qui peuvent être soit de petite taille, s'exécutant presque instantanément sur de petits appareils, soit de grande envergure, s'exécutant pendant des heures ou des jours sur des groupes d'ordinateurs en réseau. L'ampleur des événements simulés par les simulations informatiques a largement dépassé tout ce qui était possible (ou peut-être même imaginable) en utilisant la modélisation mathématique traditionnelle sur papier et crayon. En 1997, une simulation de bataille dans le désert d'une force en envahissant une autre impliquait la modélisation de 66 239 chars, camions et autres véhicules sur un terrain simulé autour du Koweït , en utilisant plusieurs superordinateurs dans le cadre du programme de modernisation des ordinateurs à haute performance du DoD . D'autres exemples incluent un modèle de déformation matérielle d'un milliard d'atomes ; un modèle de 2,64 millions d'atomes de l'organite complexe producteur de protéines de tous les organismes vivants, le ribosome , en 2005 ; une simulation complète du cycle de vie de Mycoplasma genitalium en 2012 ; et le projet Blue Brain à l'EPFL (Suisse), lancé en mai 2005 pour créer la première simulation informatique du cerveau humain dans son intégralité, jusqu'au niveau moléculaire.
En raison du coût de calcul de la simulation, des expériences informatiques sont utilisées pour effectuer des inférences telles que la quantification de l'incertitude .
Simulation versus modèle
Un modèle est constitué des équations utilisées pour capturer le comportement d'un système. En revanche, la simulation par ordinateur est l'exécution réelle du programme qui exécute les algorithmes qui résolvent ces équations, souvent de manière approximative. La simulation est donc le processus d'exécution d'un modèle. Ainsi, on ne « construirait pas une simulation » ; on « construirait un modèle (ou un simulateur) », puis on « exécuterait le modèle » ou, de manière équivalente, on « exécuterait une simulation ».
Histoire
La simulation par ordinateur s'est développée parallèlement à la croissance rapide de l'ordinateur, après son premier déploiement à grande échelle lors du projet Manhattan pendant la Seconde Guerre mondiale pour modéliser le processus de détonation nucléaire . Il s'agissait d'une simulation de 12 sphères dures utilisant un algorithme de Monte Carlo . La simulation par ordinateur est souvent utilisée comme complément ou substitut à la modélisation de systèmes pour lesquels des solutions analytiques simples sous forme fermée ne sont pas possibles. Il existe de nombreux types de simulations par ordinateur ; leur caractéristique commune est la tentative de générer un échantillon de scénarios représentatifs pour un modèle dans lequel une énumération complète de tous les états possibles du modèle serait prohibitive ou impossible.
Préparation des données
Les besoins en données externes des simulations et des modèles varient considérablement. Pour certains, les données d'entrée peuvent se résumer à quelques chiffres (par exemple, la simulation d'une forme d'onde de courant alternatif sur un fil), tandis que d'autres peuvent nécessiter des téraoctets d'informations (comme les modèles météorologiques et climatiques).
Les sources d’entrée varient également considérablement :
- Capteurs et autres dispositifs physiques connectés au modèle ;
- Surfaces de contrôle utilisées pour diriger la progression de la simulation d’une manière ou d’une autre ;
- Données actuelles ou historiques saisies manuellement ;
- Valeurs extraites comme sous-produit d’autres processus ;
- Valeurs générées à cet effet par d’autres simulations, modèles ou processus.
Enfin, le moment auquel les données sont disponibles varie :
- les données « invariantes » sont souvent intégrées au code du modèle, soit parce que la valeur est véritablement invariante (par exemple, la valeur de π), soit parce que les concepteurs considèrent que la valeur est invariante pour tous les cas d'intérêt ;
- les données peuvent être saisies dans la simulation au démarrage, par exemple en lisant un ou plusieurs fichiers, ou en lisant des données à partir d'un préprocesseur ;
- les données peuvent être fournies pendant l'exécution de la simulation, par exemple par un réseau de capteurs.
En raison de cette diversité et du fait que les différents systèmes de simulation présentent de nombreux éléments communs, il existe un grand nombre de langages de simulation spécialisés . Le plus connu est peut-être Simula . Il en existe aujourd'hui de nombreux autres.
Les systèmes qui acceptent des données provenant de sources externes doivent être très prudents quant à ce qu'ils reçoivent. S'il est facile pour les ordinateurs de lire des valeurs à partir de fichiers texte ou binaires, il est beaucoup plus difficile de connaître la précision (par rapport à la résolution et à la précision de mesure ) des valeurs. Elles sont souvent exprimées sous forme de « barres d'erreur », un écart minimum et maximum par rapport à la plage de valeurs dans laquelle la valeur réelle (est censée se trouver). Les mathématiques informatiques numériques n'étant pas parfaites, les erreurs d'arrondi et de troncature multiplient cette erreur. Il est donc utile d'effectuer une « analyse d'erreur » pour confirmer que les valeurs générées par la simulation seront toujours suffisamment précises.
Types
Les modèles utilisés pour les simulations informatiques peuvent être classés selon plusieurs paires d’attributs indépendants, notamment :
- Stochastique ou déterministe (et comme cas particulier de déterministe, chaotique) – voir les liens externes ci-dessous pour des exemples de simulations stochastiques et déterministes
- État stable ou dynamique
- Continu ou discret (et comme cas particulier important de modèles discrets, à événements discrets ou DE)
- Simulation de systèmes dynamiques , par exemple systèmes électriques, systèmes hydrauliques ou systèmes mécaniques multi-corps (décrits principalement par des DAE) ou simulation dynamique de problèmes de terrain, par exemple CFD de simulations FEM (décrites par des PDE).
- Local ou distribué .
Une autre façon de catégoriser les modèles consiste à examiner les structures de données sous-jacentes. Pour les simulations par pas de temps, il existe deux classes principales :
- Les simulations qui stockent leurs données dans des grilles régulières et ne nécessitent qu'un accès au voisin le plus proche sont appelées codes de gabarit . De nombreuses applications CFD appartiennent à cette catégorie.
- Si le graphique sous-jacent n'est pas une grille régulière, le modèle peut appartenir à la classe de méthode meshfree .
Pour les simulations en régime permanent, les équations définissent les relations entre les éléments du système modélisé et tentent de trouver un état dans lequel le système est en équilibre. De tels modèles sont souvent utilisés pour simuler des systèmes physiques, comme cas de modélisation plus simple avant de tenter une simulation dynamique.
- Les simulations dynamiques tentent de capturer les changements dans un système en réponse à des signaux d'entrée (généralement changeants).
- Les modèles stochastiques utilisent des générateurs de nombres aléatoires pour modéliser le hasard ou des événements aléatoires ;
- Une simulation à événements discrets (DES) gère les événements dans le temps. La plupart des simulations informatiques, de tests logiques et d'arbres de défaillances sont de ce type. Dans ce type de simulation, le simulateur maintient une file d'attente d'événements triés en fonction de l'heure simulée à laquelle ils devraient se produire. Le simulateur lit la file d'attente et déclenche de nouveaux événements à mesure que chaque événement est traité. Il n'est pas important d'exécuter la simulation en temps réel. Il est souvent plus important de pouvoir accéder aux données produites par la simulation et de découvrir des défauts logiques dans la conception ou la séquence d'événements.
- Une simulation dynamique continue permet de résoudre numériquement des équations différentielles algébriques ou des équations différentielles ( partielles ou ordinaires ). Périodiquement, le programme de simulation résout toutes les équations et utilise les nombres pour modifier l'état et la sortie de la simulation. Les applications comprennent les simulateurs de vol, les jeux de simulation de construction et de gestion , la modélisation de processus chimiques et les simulations de circuits électriques . À l'origine, ces types de simulations étaient en fait implémentées sur des ordinateurs analogiques , où les équations différentielles pouvaient être représentées directement par divers composants électriques tels que des amplificateurs opérationnels . À la fin des années 1980, cependant, la plupart des simulations « analogiques » étaient exécutées sur des ordinateurs numériques conventionnels qui imitaient le comportement d'un ordinateur analogique.
- Un type particulier de simulation discrète qui ne repose pas sur un modèle avec une équation sous-jacente, mais qui peut néanmoins être représenté formellement, est la simulation basée sur des agents . Dans la simulation basée sur des agents, les entités individuelles (telles que les molécules, les cellules, les arbres ou les consommateurs) dans le modèle sont représentées directement (plutôt que par leur densité ou leur concentration) et possèdent un état interne et un ensemble de comportements ou de règles qui déterminent la façon dont l'état de l'agent est mis à jour d'une étape temporelle à l'autre.
- Les modèles distribués s'exécutent sur un réseau d'ordinateurs interconnectés, éventuellement via Internet . Les simulations dispersées sur plusieurs ordinateurs hôtes de ce type sont souvent appelées « simulations distribuées ». Il existe plusieurs normes pour la simulation distribuée, notamment le protocole ALSP (Aggregate Level Simulation Protocol ), la simulation interactive distribuée (Distributed Interactive Simulation , DIS), l' architecture de haut niveau (simulation) (HLA) et l' architecture TENA (Test and Training Enabling Architecture ).
Visualisation
Auparavant, les données de sortie d'une simulation informatique étaient parfois présentées sous forme de tableau ou de matrice montrant comment les données étaient affectées par de nombreux changements dans les paramètres de simulation . L'utilisation du format matriciel était liée à l'utilisation traditionnelle du concept de matrice dans les modèles mathématiques . Cependant, les psychologues et d'autres ont noté que les humains pouvaient rapidement percevoir des tendances en regardant des graphiques ou même des images animées ou des films générés à partir des données, comme affichés par une animation d'images générées par ordinateur (CGI). Bien que les observateurs ne puissent pas nécessairement lire des nombres ou citer des formules mathématiques, en observant une carte météorologique en mouvement, ils pourraient être capables de prédire des événements (et de « voir que la pluie se dirigeait vers eux ») beaucoup plus rapidement qu'en parcourant des tableaux de coordonnées de nuages de pluie . Ces affichages graphiques intenses, qui transcendaient le monde des nombres et des formules, conduisaient parfois également à des résultats dépourvus de grille de coordonnées ou omettaient les horodatages, comme s'ils s'éloignaient trop des affichages de données numériques. Aujourd’hui, les modèles de prévision météorologique ont tendance à équilibrer la vue des nuages de pluie/neige en mouvement avec une carte qui utilise des coordonnées numériques et des horodatages numériques des événements.
De même, les simulations informatiques CGI de tomodensitométries peuvent simuler la manière dont une tumeur pourrait rétrécir ou évoluer au cours d’une période prolongée de traitement médical, en présentant le passage du temps comme une vue tournante de la tête humaine visible, à mesure que la tumeur évolue.
D'autres applications de simulations informatiques CGI sont en cours de développement pour afficher graphiquement de grandes quantités de données, en mouvement, à mesure que des changements se produisent au cours d'une simulation.
En sciences

Exemples génériques de types de simulations informatiques en sciences, qui découlent d’une description mathématique sous-jacente :
- une simulation numérique d' équations différentielles qui ne peuvent pas être résolues analytiquement, les théories qui impliquent des systèmes continus tels que les phénomènes de la cosmologie physique , la dynamique des fluides (par exemple, les modèles climatiques , les modèles de bruit routier , les modèles de dispersion atmosphérique des routes ), la mécanique des milieux continus et la cinétique chimique entrent dans cette catégorie.
- une simulation stochastique , généralement utilisée pour les systèmes discrets où les événements se produisent de manière probabiliste et qui ne peuvent pas être décrits directement par des équations différentielles (il s'agit d'une simulation discrète au sens ci-dessus). Les phénomènes de cette catégorie incluent la dérive génétique , les réseaux biochimiques ou de régulation des gènes avec un petit nombre de molécules. (voir aussi : méthode de Monte Carlo ).
- Simulation multiparticulaire de la réponse de nanomatériaux à plusieurs échelles à une force appliquée dans le but de modéliser leurs propriétés thermoélastiques et thermodynamiques. Les techniques utilisées pour de telles simulations sont la dynamique moléculaire , la mécanique moléculaire , la méthode de Monte Carlo et la fonction de Green multiéchelle .
Voici quelques exemples concrets de simulations informatiques :
- Simulations statistiques basées sur l'agrégation d'un grand nombre de profils d'entrée, comme la prévision de la température d'équilibre des eaux réceptrices, permettant de saisir toute la gamme des données météorologiques pour un lieu spécifique. Cette technique a été développée pour la prévision de la pollution thermique .
- La simulation basée sur des agents a été utilisée efficacement en écologie , où elle est souvent appelée « modélisation basée sur l'individu » et est utilisée dans des situations pour lesquelles la variabilité individuelle des agents ne peut être négligée, comme la dynamique des populations de saumon et de truite (la plupart des modèles purement mathématiques supposent que toutes les truites se comportent de manière identique).
- Modèle dynamique à pas de temps. En hydrologie, il existe plusieurs modèles de transport hydrologique tels que les modèles SWMM et DSSAM développés par l' Agence américaine de protection de l'environnement pour la prévision de la qualité de l'eau des rivières.
- Les simulations informatiques ont également été utilisées pour modéliser formellement les théories de la cognition et de la performance humaines, par exemple ACT-R .
- simulation informatique utilisant la modélisation moléculaire pour la découverte de médicaments .
- simulation informatique pour modéliser l'infection virale dans les cellules de mammifères.
- simulation informatique pour l'étude de la sensibilité sélective des liaisons par mécanochimie lors du broyage de molécules organiques.
- Les simulations numériques de dynamique des fluides sont utilisées pour simuler le comportement de l'air, de l'eau et d'autres fluides en écoulement. Des modèles unidimensionnels, bidimensionnels et tridimensionnels sont utilisés. Un modèle unidimensionnel peut simuler les effets d' un coup de bélier dans un tuyau. Un modèle bidimensionnel peut être utilisé pour simuler les forces de traînée sur la section transversale d'une aile d'avion. Une simulation tridimensionnelle peut estimer les besoins en chauffage et en refroidissement d'un grand bâtiment.
- La compréhension de la théorie moléculaire statistique thermodynamique est fondamentale pour l'appréciation des solutions moléculaires. Le développement du théorème de distribution du potentiel (PDT) permet de simplifier ce sujet complexe en des présentations concrètes de la théorie moléculaire.
Parmi les simulations informatiques notables, et parfois controversées, utilisées en science, on peut citer : World3 de Donella Meadows utilisé dans Limits to Growth , Daisyworld de James Lovelock et Tierra de Thomas Ray .
En sciences sociales, la simulation par ordinateur fait partie intégrante des cinq angles d'analyse favorisés par la méthodologie de percolation des données, qui comprend également des méthodes qualitatives et quantitatives, des revues de la littérature (y compris savantes) et des entretiens avec des experts, et qui constitue une extension de la triangulation des données. Bien entendu, comme toute autre méthode scientifique, la réplication est une partie importante de la modélisation informatique
Dans des contextes pratiques
Les simulations informatiques sont utilisées dans une grande variété de contextes pratiques, tels que :
- analyse de la dispersion des polluants atmosphériques à l'aide de la modélisation de la dispersion atmosphérique
- Comme alternative humaine possible à l’expérimentation animale vivante dans le respect des droits des animaux .
- conception de systèmes complexes tels que les aéronefs et également les systèmes logistiques .
- conception de murs antibruit pour atténuer le bruit routier
- modélisation des performances des applications
- Des simulateurs de vol pour former les pilotes
- prévision météo
- prévision des risques
- simulation de circuits électriques
- Simulation de système électrique
- la simulation d'autres ordinateurs est une émulation .
- prévision des prix sur les marchés financiers (par exemple Adaptive Modeler )
- comportement des structures (telles que les bâtiments et les pièces industrielles) sous contrainte et autres conditions
- conception de procédés industriels, tels que des usines de traitement chimique
- gestion stratégique et études organisationnelles
- simulation de réservoir pour l'ingénierie pétrolière pour modéliser le réservoir souterrain
- outils de simulation d'ingénierie des procédés.
- simulateurs de robots pour la conception de robots et d'algorithmes de contrôle de robots
- modèles de simulation urbaine qui simulent les modèles dynamiques de développement urbain et les réponses aux politiques d’aménagement du territoire urbain et de transport.
- Ingénierie de la circulation pour planifier ou repenser des parties du réseau routier, depuis les carrefours simples dans les villes jusqu'au réseau routier national, en passant par la planification, la conception et l'exploitation des systèmes de transport. Voir un article plus détaillé sur la simulation dans les transports .
- modélisation d'accidents de voiture pour tester les mécanismes de sécurité dans les nouveaux modèles de véhicules.
- systèmes cultures-sols en agriculture, via des cadres logiciels dédiés (ex : BioMA , OMS3, APSIM)
La fiabilité et la confiance que les gens accordent aux simulations informatiques dépendent de la validité du modèle de simulation , c'est pourquoi la vérification et la validation sont d'une importance cruciale dans le développement de simulations informatiques. Un autre aspect important des simulations informatiques est celui de la reproductibilité des résultats, ce qui signifie qu'un modèle de simulation ne doit pas fournir une réponse différente à chaque exécution. Bien que cela puisse paraître évident, il s'agit d'un point d'attention particulier dans les simulations stochastiques , où les nombres aléatoires devraient en fait être des nombres semi-aléatoires. Une exception à la reproductibilité sont les simulations avec intervention humaine, telles que les simulations de vol et les jeux informatiques . Dans ce cas, un humain fait partie de la simulation et influence donc le résultat d'une manière qui est difficile, voire impossible, à reproduire exactement.
Les constructeurs automobiles ont recours à la simulation par ordinateur pour tester les caractéristiques de sécurité de leurs nouveaux modèles. En construisant une copie de la voiture dans un environnement de simulation physique, ils peuvent économiser les centaines de milliers de dollars qui seraient autrement nécessaires pour construire et tester un prototype unique. Les ingénieurs peuvent parcourir la simulation millisecondes à la fois pour déterminer les contraintes exactes appliquées à chaque section du prototype.
Les graphiques informatiques peuvent être utilisés pour afficher les résultats d'une simulation informatique. Les animations peuvent être utilisées pour expérimenter une simulation en temps réel, par exemple dans des simulations de formation . Dans certains cas, les animations peuvent également être utiles dans des modes plus rapides que le temps réel ou même plus lents que le temps réel. Par exemple, des animations plus rapides que le temps réel peuvent être utiles pour visualiser l'accumulation de files d'attente dans la simulation d'évacuation d'un bâtiment par des humains. En outre, les résultats de simulation sont souvent agrégés dans des images statiques à l'aide de divers moyens de visualisation scientifique .
Lors du débogage, la simulation d'une exécution de programme sous test (plutôt que de l'exécuter de manière native) peut détecter beaucoup plus d'erreurs que le matériel lui-même ne peut en détecter et, en même temps, enregistrer des informations de débogage utiles telles que la trace des instructions, les modifications de la mémoire et le nombre d'instructions. Cette technique peut également détecter les dépassements de tampon et autres erreurs « difficiles à détecter » similaires, ainsi que produire des informations sur les performances et des données de réglage .
Pièges
Bien que parfois ignorée dans les simulations informatiques, il est très important d'effectuer une analyse de sensibilité pour s'assurer que l'exactitude des résultats est bien comprise. Par exemple, l'analyse probabiliste des risques des facteurs déterminant le succès d'un programme d'exploration pétrolière consiste à combiner des échantillons provenant de diverses distributions statistiques en utilisant la méthode de Monte Carlo . Si, par exemple, l'un des paramètres clés (par exemple, le ratio net des strates pétrolifères) n'est connu qu'à un seul chiffre significatif, alors le résultat de la simulation pourrait ne pas être plus précis qu'un chiffre significatif, bien qu'il puisse (de manière trompeuse) être présenté comme ayant quatre chiffres significatifs.