Le processus de modélisation mathématique

Une caractéristique distinctive des modèles mathématiques créés aujourd’hui est leur complexité, qui découle de la complexité des objets modélisés. Cela conduit à des modèles de plus en plus élaborés et à la nécessité de recourir simultanément à plusieurs théories issues de différents domaines de connaissance, ainsi qu’à des méthodes de calcul modernes et à la technologie informatique pour obtenir et analyser les résultats de simulation. Dans le cas d’objets complexes, il est généralement impossible de satisfaire toutes les exigences dans le cadre d’un seul modèle. Il faut au contraire créer tout un ensemble de modèles du même objet (dans certains cas, un ensemble hiérarchique de modèles « emboîtés »), dont chacun est le mieux adapté à la résolution des tâches particulières qui lui sont assignées.

La nécessité de construire des modèles à grande échelle appelle l’élaboration d’un ensemble de règles et d’approches permettant de réduire le coût du développement des modèles et de diminuer la probabilité d’erreurs difficiles à corriger par la suite. Un tel ensemble de règles pourrait être appelé une technologie de création de modèles mathématiques.

Le processus de construction de tout modèle mathématique peut être représenté comme une suite d’étapes :

  1. Étude de l’objet à modéliser et élaboration du cahier des charges pour le développement du modèle (énoncé substantiel du problème) ;
  2. Formulation conceptuelle et mathématique du problème ;
  3. Analyse qualitative et vérification de la justesse du modèle ;
  4. Choix et justification des méthodes de résolution ;
  5. Obtention de la solution ;
  6. Élaboration de l’algorithme de résolution et étude de ses propriétés ; mise en œuvre de l’algorithme sous forme logicielle ;
  7. Validation du modèle ;
  8. Application pratique du modèle construit.

Les modèles mathématiques — en particulier ceux qui font appel aux méthodes numériques et à la technologie informatique — exigent, pour leur construction, des ressources intellectuelles, financières et temporelles considérables. C’est pourquoi la décision de développer un nouveau modèle n’est prise que lorsqu’il n’existe pas de moyen plus simple de résoudre les problèmes considérés (par exemple, en modifiant un modèle existant).

Le besoin d’un nouveau modèle peut naître dans le cadre de la recherche scientifique, notamment à l’intersection de différents domaines de connaissance. Une fois la décision de construire un nouveau modèle mathématique prise, le commanditaire recherche une équipe pour réaliser les travaux. En règle générale, l’équipe de projet comprend des spécialistes de profils variés : des mathématiciens appliqués, des experts du domaine parfaitement familiarisés avec l’objet modélisé, et des développeurs de logiciels. Une fois la décision de créer le modèle confirmée et l’équipe de projet constituée, la phase d’étude commence. L’objectif principal de cette phase est d’élaborer un énoncé substantiel du problème de modélisation. L’énoncé substantiel du problème est une liste des questions clés concernant l’objet de modélisation, exprimées en langage courant, auxquelles le commanditaire souhaite répondre.

L’élaboration de la liste des questions auxquelles le nouveau modèle doit répondre constitue souvent un problème en soi, exigeant des spécialistes dotés de connaissances et de capacités particulières. Ils doivent non seulement bien comprendre le domaine d’application de la modélisation et connaître les possibilités des mathématiques computationnelles modernes et de la technologie informatique, mais aussi savoir communiquer avec les gens — pour faire ressortir l’expérience des praticiens qui ont un « sens » intuitif de l’objet modélisé et des nuances de son comportement. De tels spécialistes sont, par exemple, les analystes de systèmes, les ingénieurs systèmes et les chercheurs opérationnels.

Sur la base de l’analyse de toutes les informations recueillies, celui qui formule le problème doit définir les exigences relatives au futur modèle de manière à, d’une part, satisfaire le commanditaire et, d’autre part, permettre la réalisation du modèle dans les délais et le budget impartis. Les analystes de systèmes (ou chercheurs opérationnels) doivent être capables, à partir d’un volume important d’informations peu structurées et variées sur l’objet de modélisation ainsi que des divers souhaits et exigences exprimés de manière vague par le commanditaire, de dégager l’essentiel qui puisse effectivement être mis en œuvre.

Sur la base des informations recueillies sur l’objet de modélisation, l’analyste de systèmes (ingénieur, chercheur opérationnel), en collaboration avec le commanditaire, formule l’énoncé substantiel du problème, qui, en règle générale, n’est pas définitif et peut être précisé et développé au cours de l’élaboration du modèle. Toutefois, tous les ajustements et modifications ultérieurs apportés à l’énoncé substantiel doivent rester de nature mineure et non fondamentale.

L’ensemble des éléments recueillis au cours de l’étude — les connaissances accumulées sur l’objet, l’énoncé substantiel du problème, les exigences supplémentaires relatives à la réalisation du modèle et à la présentation des résultats — est consigné sous la forme d’un cahier des charges pour la conception et le développement du modèle. Le cahier des charges constitue le document final de la phase d’étude. Plus les informations recueillies sur l’objet au cours de l’étude sont complètes, plus l’énoncé substantiel du problème peut être formulé clairement, plus l’expérience et les connaissances accumulées peuvent être pleinement prises en compte, et plus les difficultés lors des étapes ultérieures de développement du modèle peuvent être évitées.

Contrairement à la formulation substantielle, la formulation conceptuelle du problème de modélisation est généralement préparée par les membres de l’équipe de projet sans la participation des représentants du commanditaire, sur la base du cahier des charges élaboré à l’étape précédente et en s’appuyant sur les connaissances disponibles sur l’objet de modélisation et les exigences relatives au futur modèle. L’analyse et la discussion collective de toutes les informations disponibles sur l’objet de modélisation par les membres de l’équipe permettent de former un modèle conceptuel de l’objet — une synthèse des modèles cognitifs élaborés par chaque membre de l’équipe.

La formulation conceptuelle du problème de modélisation est une liste des questions clés intéressant le commanditaire, exprimées dans les termes de disciplines spécifiques, accompagnée d’un ensemble d’hypothèses relatives aux propriétés et au comportement de l’objet de modélisation.

Les plus grandes difficultés dans la formulation de l’énoncé conceptuel apparaissent dans les modèles situés à l’intersection de différentes disciplines. Les différences de traditions, de concepts et de langages utilisés pour décrire les mêmes objets constituent des obstacles très sérieux à la création de modèles interdisciplinaires.

Une formulation conceptuelle achevée permet de produire la formulation mathématique du problème de modélisation, qui comprend un ensemble de relations mathématiques décrivant le comportement et les propriétés de l’objet de modélisation.

La formulation mathématique du problème de modélisation est l’ensemble des relations mathématiques décrivant le comportement et les propriétés de l’objet de modélisation.

Un modèle mathématique est considéré comme correct si toutes les vérifications de contrôle ont été effectuées avec des résultats positifs : analyse dimensionnelle, vérification des ordres de grandeur, vérification de la nature des dépendances, analyse des cas extrêmes, conditions aux limites, sens physique et fermeture mathématique. La formulation mathématique est encore plus abstraite que la formulation conceptuelle, car elle ramène le problème initial à un problème purement mathématique pour lequel il existe des méthodes de résolution bien élaborées.

Toutes les méthodes de résolution des problèmes constituant le « noyau » des modèles mathématiques peuvent être divisées en méthodes analytiques et algorithmiques (numériques).

Il convient de noter que, lorsque des solutions analytiques sont utilisées pour obtenir des résultats numériques, l’élaboration d’algorithmes correspondants mis en œuvre sur ordinateur est également souvent nécessaire.

Cependant, la solution initiale prend dans ce cas la forme d’une expression analytique (ou d’un ensemble d’expressions). Les solutions fondées sur des méthodes algorithmiques, en revanche, sont fondamentalement irréductibles à des solutions analytiques exactes du problème considéré.

Le choix d’une méthode de recherche particulière dépend dans une large mesure de la qualification et de l’expérience des membres de l’équipe de projet. Les méthodes analytiques sont plus commodes pour l’analyse ultérieure des résultats, mais ne s’appliquent qu’à des modèles relativement simples. Si le problème mathématique (même sous une formulation simplifiée) admet une solution analytique, celle-ci est sans conteste préférable à une solution numérique.

Les méthodes algorithmiques ramènent le problème à un algorithme qui réalise une expérience de calcul à l’aide de la technologie informatique. La précision de la modélisation dans une telle expérience dépend de manière décisive de la méthode choisie et de ses paramètres. Les méthodes algorithmiques sont généralement plus coûteuses en travail à mettre en œuvre et exigent que les membres de l’équipe de projet possèdent de solides connaissances en mathématiques computationnelles, une bibliothèque étendue de logiciels spécialisés et des ressources de calcul puissantes.

Les méthodes numériques ne s’appliquent qu’à des problèmes mathématiques bien posés, ce qui limite considérablement leur usage en modélisation mathématique. Ce qui est commun à toutes les méthodes numériques, c’est la réduction du problème mathématique à un problème de dimension finie. Cela s’obtient le plus souvent en discrétisant le problème initial — c’est-à-dire en remplaçant des fonctions d’une variable continue par des fonctions d’une variable discrète. L’application de toute méthode numérique introduit inévitablement une erreur dans les résultats. On peut distinguer trois composantes principales de l’erreur qui apparaît lors de la résolution numérique du problème initial : l’erreur inhérente, liée à l’imprécision des données d’entrée (conditions initiales et aux limites, coefficients des équations et seconds membres) ; l’erreur de discrétisation, liée au passage à un analogue discret du problème initial ; et l’erreur d’arrondi, liée à la précision finie de la représentation des nombres en machine.

Une exigence naturelle pour tout algorithme de calcul spécifique est la cohérence des ordres de grandeur de ces trois types d’erreurs.

Une méthode numérique, ou approchée, est toujours mise en œuvre sous forme d’algorithme de calcul. Par conséquent, toutes les exigences applicables aux algorithmes en général s’appliquent également aux algorithmes de calcul. Avant tout, un algorithme doit être réalisable — il doit résoudre le problème dans un temps de calcul acceptable. Une caractéristique importante d’un algorithme est sa précision — la capacité d’obtenir une solution du problème initial avec une précision donnée en un nombre fini d’opérations.

Le temps d’exécution d’un algorithme dépend du nombre d’opérations nécessaires pour atteindre la précision spécifiée. Pour tout problème mathématique, on peut, en règle générale, proposer plusieurs algorithmes fournissant une solution à la précision souhaitée, mais avec des nombres d’opérations différents. Les algorithmes nécessitant moins d’opérations pour atteindre la même précision sont dits plus économiques, ou plus efficaces.

Au cours de l’exécution d’un algorithme de calcul, une certaine erreur apparaît à chaque étape du calcul. D’une étape à l’autre, cette erreur peut croître ou ne pas croître (et, dans certains cas, même diminuer). Si l’erreur croît indéfiniment au cours du calcul, l’algorithme est dit instable, ou divergent. Dans le cas contraire, l’algorithme est dit stable, ou convergent.

L’énorme diversité des méthodes numériques rend le choix d’une méthode particulière considérablement difficile dans chaque cas concret. Étant donné que plusieurs méthodes algorithmiques alternatives peuvent être utilisées pour mettre en œuvre un modèle donné, le choix d’une méthode spécifique se fait en fonction de celle qui convient le mieux au modèle du point de vue de l’efficience, de la stabilité et de la précision des résultats, ainsi que de celle qui est la plus familière aux membres de l’équipe de projet.

Dans la création de divers systèmes logiciels destinés à résoudre un large éventail de tâches de recherche, de conception technique et de gestion, les modèles mathématiques constituent aujourd’hui, en règle générale, le fondement. Cela fait naître la nécessité de mettre en œuvre un modèle sous forme de programme informatique. Le processus de développement d’un logiciel fiable et efficace n’est pas moins complexe que toutes les étapes précédentes de la création d’un modèle mathématique. Résoudre avec succès cette tâche n’est possible qu’avec une maîtrise assurée des langages et technologies de programmation modernes, une connaissance des capacités de calcul, des logiciels disponibles et des particularités de la mise en œuvre des méthodes des mathématiques computationnelles.

Le processus de développement logiciel peut être décomposé en plusieurs étapes :

  • élaboration du cahier des charges pour le développement du logiciel ;
  • conception de la structure du système logiciel ;
  • codage de l’algorithme ;
  • test et débogage ;
  • maintenance et exploitation.

Le cahier des charges pour le développement du logiciel est consigné sous forme de spécification. À l’étape de conception, la structure d’ensemble du système logiciel est formée. Le programme tout entier est divisé en modules logiciels. Pour chaque module, des exigences fonctionnelles sont formulées et un algorithme mettant en œuvre ces fonctions est élaboré. Le schéma d’interaction entre les modules — appelé diagramme de flux de données du système logiciel — est défini. Un plan de test est élaboré, et les données d’entrée pour tester les modules individuels et le système dans son ensemble sont précisées.

La plupart des programmes mettant en œuvre des modèles mathématiques comportent trois parties principales :

  • un préprocesseur (préparation et vérification des données d’entrée du modèle) ;
  • un solveur (résolution du problème, réalisation de l’expérience de calcul) ;
  • un postprocesseur (visualisation et présentation des résultats).

Il convient d’accorder une importance considérable à l’adoption de technologies de programmation modernes. L’objectif de toute technologie de ce type est, avant tout, d’améliorer la fiabilité du logiciel et d’accroître la productivité des développeurs. Plus le projet logiciel est sérieux et de grande envergure, plus les questions relatives à l’application des technologies de programmation modernes deviennent importantes. Négliger ces questions peut entraîner des dépassements de délais importants et une fiabilité réduite du système logiciel.

Un facteur critique pour assurer la fiabilité et un délai de développement court d’un système logiciel destiné à résoudre une classe de problèmes donnée est la disponibilité d’une bibliothèque bien développée de modules logiciels mutuellement compatibles. Un programme est plus fiable et peut être développé plus rapidement lorsque des composants logiciels standard sont utilisés dans toute la mesure du possible.

L’adéquation d’un modèle mathématique est le degré de correspondance entre les résultats obtenus à partir du modèle élaboré et les données expérimentales ou les résultats d’un problème de référence.

La validation du modèle poursuit deux objectifs :

  • vérifier la validité de l’ensemble des hypothèses formulées aux étapes de la formulation conceptuelle et mathématique. Il convient de ne procéder à la vérification des hypothèses qu’après que les méthodes de résolution ont été vérifiées et que le logiciel a subi un débogage complet et l’élimination de toutes les erreurs et conflits ;
  • établir que la précision des résultats est conforme à la précision spécifiée dans le cahier des charges.

La validation du modèle mathématique élaboré s’effectue par comparaison avec les données expérimentales disponibles sur l’objet réel ou avec les résultats d’autres modèles, déjà créés et bien éprouvés. Dans le premier cas, on parle de validation par comparaison avec l’expérience ; dans le second, de comparaison avec les résultats d’un problème de référence.

La question de la précision de la modélisation dépend des exigences imposées au modèle et de sa destination. La précision des résultats expérimentaux ou les particularités des formulations du problème de référence doivent également être prises en compte. Pour les modèles destinés à des calculs approximatifs et d’ordre de grandeur, une précision de 10 à 15 % est considérée comme satisfaisante. Pour les modèles utilisés dans les systèmes de contrôle et de surveillance, la précision requise peut atteindre 1 à 2 %, voire davantage.

Lorsque des problèmes d’adéquation du modèle apparaissent, la correction doit commencer par une analyse systématique de toutes les causes possibles de l’écart entre les résultats de la modélisation et les résultats expérimentaux. Il convient d’abord d’étudier le modèle et d’évaluer son degré d’adéquation pour différentes valeurs des paramètres variables (conditions initiales et aux limites, paramètres caractérisant les propriétés des objets modélisés). Si le modèle est inadéquat dans la plage de paramètres qui intéresse le chercheur, on peut tenter d’affiner les valeurs des constantes et des paramètres initiaux du modèle. Si cela ne donne toujours pas de résultats positifs, alors le seul moyen restant d’améliorer le modèle est de réviser le système d’hypothèses adopté. Cette décision revient en pratique à revenir à la deuxième étape du processus de développement du modèle et peut entraîner non seulement une modification majeure de la formulation mathématique, mais aussi des méthodes de résolution (par exemple, un passage des méthodes analytiques aux méthodes numériques), une refonte complète du logiciel, et un nouveau cycle de validation du modèle. C’est pourquoi la décision de réviser le système d’hypothèses adopté doit être soigneusement pesée et n’être prise que lorsque toutes les autres voies d’amélioration de l’adéquation du modèle ont été épuisées.

Les modèles descriptifs sont conçus pour caractériser les paramètres étudiés dans un phénomène ou un processus donné, ainsi que pour étudier les lois régissant les variations de ces paramètres. Ces modèles peuvent être utilisés pour étudier les propriétés et le comportement de l’objet étudié sous diverses combinaisons de données d’entrée et de conditions de fonctionnement ; pour construire des modèles d’optimisation ; et pour élaborer des modèles de simulation de systèmes complexes.

Les modèles développés à des fins de recherche ne sont généralement pas amenés au niveau de systèmes logiciels destinés à être diffusés auprès d’utilisateurs externes. Leur durée de vie est habituellement limitée à celle du programme de recherche correspondant. Ces modèles se caractérisent par un caractère exploratoire, l’emploi de nouvelles procédures et de nouveaux algorithmes de calcul, ainsi qu’une interface utilisateur peu développée.

Les modèles et les systèmes logiciels construits sur leur base, destinés à être diffusés ultérieurement auprès d’utilisateurs externes ou à une commercialisation, présentent une interface bien développée et conviviale, ainsi que des préprocesseurs et postprocesseurs puissants. Ces modèles reposent généralement sur des formulations et des procédures de calcul éprouvées et bien établies. Il convient cependant de rappeler que de tels modèles ne sont conçus que pour résoudre une classe de problèmes clairement définie.

Quelle que soit l’application prévue du modèle, l’équipe de développement est tenue de procéder à une analyse tant qualitative que quantitative des résultats de la modélisation.

Par leur travail sur le modèle, les développeurs deviennent des spécialistes du domaine associé à l’objet de modélisation. Ils acquièrent une compréhension suffisamment approfondie des propriétés de l’objet et sont capables d’en prévoir et d’en expliquer le comportement.

Une analyse approfondie des résultats de la modélisation permet ainsi de :

  • modifier l’objet considéré, trouver ses caractéristiques optimales, ou du moins tenir compte au mieux de son comportement et de ses propriétés ;
  • délimiter le domaine d’applicabilité du modèle ;
  • vérifier la validité des hypothèses adoptées à l’étape de la formulation mathématique et évaluer la possibilité de simplifier le modèle afin d’améliorer son efficience tout en préservant la précision requise ;
  • indiquer la direction dans laquelle le modèle doit être développé davantage.