Thème scientifique
Principal thème d'intérêt : l'outil informatique comme une aide à la modélisation
/ simulation de systèmes naturels, donc par essence compliqués, voire complexes.
Le fond de mon champ de réflexion
Mon rapport d'activité de 1992 à 2016 détaille tous
les éléments évoqués ci-après ; quelques documents liées à mes activités dans l'équipe MAREL sont disponibles.
Les questions fondamentales derrière mon travail sont :
- qu'est-ce un modèle
- comment émerge-t-il
- comment évolue-t-il
- comment l'évaluer
- comment composer des modèles différents
Ces questions sont liées à d'autres, plus profondes :
- comment procédons-nous (humains) pour comprendre notre monde
- quels en sont les concepts fondamentaux
La meilleure façon de répondre à ces questions est, selon mon point de vue,
de rechercher un langage qui ait à la fois des qualités :
- pour exprimer et manipuler
des objets / propriétés mathématiques : tout modèle qui se respecte est avant
tout le reflet des a priori que le modélisateur suppose être vérifiés sur son
objet d'étude, et le seul langage qui permette de raisonner
est justement celui des mathématiques
- pour transformer un modèle en un programme informatique exécutable, qui
permet dès lors d'expérimenter via des simulations
Le principal enseignement que j'ai tiré de mes activités autour de ce thème est :
quelles
que soient les idées que l'on peut avoir sur notre monde, seul compte le
fait qu'elles puissent donner naissance à des outils qui nous permettent de le transformer ;
que ces idées soient fausses ou mal fondées n'a guère d'importance, tant qu'elles
nous conduisent à agir sur notre monde d'une façon jamais vue jusque là.
Cela dépasse largement le cadre de l'informatique, mais le monde informatique
est, dans une certaine mesure, un monde beaucoup plus simple que le nôtre,
donc plus accessible à notre entendement. Mon crédo est que ce que l'on
peut apprendre du monde informatique peut nous servir à comprendre le nôtre.
Les occasions d'expérimenter ces idées dans différents domaines ont été nombreuses, notamment
avec quelques équipes du CIRAD (équipes
Green et
EcoTrop), dont la
collaboration fut, et est toujours, précieuse.
La démarche
Période 1988 à 1992
Mon travail de thèse (années 89 à 92) incarnait ce questionnement, dans un cadre plus spécifique :
en quoi les techniques d'apprentissage automatique (aujourd'hui dites de fouilles de données) peuvent
aider un modélisateur à construire un modèle à partir d'observations codées en machine ?
A cette époque, je me suis intéressé à la modélisation dans le cadre des
Systèmes Multi-Agents, pour plusieurs raisons :
- ce cadre se prête bien à la modélisation / simulation de systèmes naturels, puisqu'il
s'agit de décrire des agents (entités autonomes) placés dans un espace (la société des
agents) qui contraint leur comportement (interactions) ; différents groupes de
travail avaient été montés sur ce thème : le groupe SMA au LIRMM
ou le groupe national MARCIA, lesquels rassemblaient des figures françaises
du domaine de l'époque : Yves DEMAZEAU, Jacques FERBER, Jean-Pierre MULLER, Jean SALLANTIN, ...
- c'est une extension naturelle de la programmation orientée objets, laquelle peut sembler, dans
un premier temps, adaptée à un travail de conceptualisation : on identifie des classes d'objets
que l'on regroupe sous un même terme (une classe), les termes entretenant des relations entre-eux,
lesquelles forment elles-même des objets que l'on pourra alors classer, etc.
La difficulté (mais c'est aussi une richesse) d'un tel cadre est que la palette des sujets
qui s'y rapportent s'élargit très vite, dont voici un échantillon :
Période 1993 à aujourd'hui
La période précédente me conduisit à quelques constats amères :
- l'approche orientée objets : elle n'est pas adaptée à un travail de conceptualisation ; le cadre
oblige très tôt à représenter les relations soit comme un héritage entre classes, soit comme des
attributs, soit comme des méthodes déclenchées via un système de messages où l'objet receveur
joue un rôle capital (cible de la liaison dynamique de code) ; trois outils pour un même travail,
sachant que le choix d'un outil aura parfois des conséquences profondes s'il s'avérait plus
tard inadapté.
- l'approche orientée agents : elle ajoute aux objets une notion de comportement autonome, donc de
parallélisme intrinsèque ; toutefois, le contrôle d'une collectivité d'agents n'interagissant
que localement est une vraie difficulté conceptuelle, qu'à mon avis la communauté agent n'a
pas su résoudre, bien qu'elle ait exploré de nombreuses pistes ayant dégagé des idées
intéressantes : notions de rôles, de groupes sociaux, d'émergence.
Je me suis donc attaché à ne pas jeter le bébé avec l'eau du bain, et des raisons
d'espérer existent :
- l'approche fonctionnelle typée : c'est une vraie alternative aux objets et aux agents ; il
n'y a qu'un seul outil pour concrétiser les relations : les fonctions. Les types sont une
aide précieuse dans un travail de conceptualisation. Un programme fonctionnel pur est un
système de récriture, dans lequel s'exprime naturellement le parallélisme.
⇒ langages à la ML (OCaml), langages pour le parallélisme
massif (Cham, 8 1/2, Join-Calculus, Blue-Calculus)
- les modèles de systèmes naturels sont souvent exprimés au moyen de systèmes d'équations
différentielles, qui nécessitent un long travail de transformation pour se plier au cadre
discret de l'informatique ; de nombreux travaux tentent de combler ce fossé.
⇒ langages dédiés à la modélisation/simulation (Modelica), systèmes cyber-physiques.
- les concepts fondamentaux de notre physique d'aujourd'hui (espace, temps, énergie, incertitude) doivent
être aussi ceux de l'informatique ; dans ce cadre, décrire un processus physique, c'est aussi
décrire un programme ; d'une certaine manière, il s'agit donc de chercher un cadre unificateur
pour décrire des processus concurrents.
⇒ langages intégrant explicitement une géométrie spatio-temporelle
des données (équipe de J.L. Giavitto avec MGS, ou F. Gruau avec la machine Blob)
Philippe REITZ (reitz@lirmm.fr)