\chapter{Modèles et modélisation multi-niveau}\label{chap:partie-multi-modele} \minitoc \section{Introduction} Dans ce chapitre, nous nous intéressons au développement d'un cadre formel pour la spécification de \emph{modélisations multi-niveau}. %% Ce type de modélisation est souvent rencontrée dans les approches intégratives des \emph{systèmes complexes}, dans de nombreuses disciplines: %% \begin{itemize} \item pour le couplage de modèles pour la description d'une cellule entière (en biologie) ou la description d'un système de villes (en géographie); \item pour le raffinement de modèles par la transformation de modèles (en ingénierie des modèles) ou le raffinement de données et de processus (en biologie); \item pour la complexification de modèles dans les Cellular Non-linear Networks (\cnn, en électronique), ou dans les Memory Evolutive Neural Systems (\mens, en mathématiques), ces deux exemples étant présentés dans la section suivante. \end{itemize} %% Notre objectif n'est évidemment pas de répondre à ces questions mais d'apporter un cadre de description commun, adapté et opérationnel (au sens où l'effectivité d'un couplage pourrait être démontrée) pour les formaliser. Ce chapitre est consacré au rapport entre modèles et modélisation multi-niveau. Il nous paraît important d'aborder la question de la modélisation multi-niveau d'abord dans sa généralité, plutôt que le cas particulier que constitue le champ d'une discipline, tel que la biologie, la physique, l'écologie, ou un objet d'étude comme la dynamique des populations, la cellule, les feux de forêts, etc. Même si ces cas particuliers présentent un intérêt pratique et permettent de valider une démarche ou répondre à une question immédiate, ils pourraient se trouver limités par les habitudes et les usages liés à la discipline dont ils sont issue. % L'objet de notre étude est donc de décrire l'étape franchie lors d'un changement de niveau de description. Nous partirons donc d'une définition très générale des modèles qui sera raffinée pour correspondre à des modèles existants et mettre en lumière les différences et similarités entre ces formalismes. % Nous nous intéressons exclusivement aux modèles formels, c'est-à-dire des modèles donnés sous la forme d'une définition utilisant le langage des mathématiques et pouvant potentiellement être calculés par un programme informatique. Dans la suite de ce document, sauf exception, nous emploierons le terme «modèle» pour désigner un modèle formel. Nous remarquons tout d'abord que déterminer des relations entre plusieurs modèles est possible d'autant plus aisément que ces modèles évoluent dans la même «classe», celle des modèles d'un même système, et qu'ils sont rédigés dans un formalisme commun. Par exemple, nous avons agencé les différents modèles de la dynamique temporelle du potentiel de la membrane neuronale en terme de «finesse» de description dans la \textsc{Fig.}~\ref{fig:neuron-models-relation}; ces modèles sont tous décrits à l'aide d'équations différentielles ordinaires, déterministes, et décrivent des dynamiques dans le domaine continu. \begin{figure}[ht] \centering \begin{tikzpicture}[auto,% arc/.style={-stealth, shorten >=2pt, semithick}, model/.style={draw, rounded corners=2pt}] \node[model] (HH) at (0,0) {Hodgkin-Huxley}; \node[model] (IF) [above left=25pt and -20pt of HH] {Integrate-and-Fire}; \node[model] (H) [above=of IF] {Hopfield}; \node[model] (ML) [above right=28pt and -20pt of HH] {Morris-Lecar}; \node[model] (CWM) [below left=of HH] {CWM}; \node[model] (C85) [below=of HH] {Chay '85}; \node[model] (C90) [below right=of HH] {Chay '90}; \node[model] (FN) [right=of ML] {FitzHugh-Nagumo}; \node[model] (VDP) [above=of FN] {Van-Der-Pol}; \node[model] (RH) [below=of FN] {Hindmarsh-Rose}; \node[model] (G) [left=of IF] {Golovasch}; \node[model] (GGG) [above=of G] {GGG}; \node[model] (WC) [below=of G] {Wilson-Cowan}; \node[model] (SLOM) [below=of WC] {SLOM}; \draw[arc] (H) to node {\cite{abbott_model_1990}} (IF); \draw[arc] (IF) to node[swap,pos=0.3] {\cite{abbott_model_1990,burkitt_review_2006}} (HH); \draw[arc] (ML) to node[pos=0.3] {\cite{morris_voltage_1981}} (HH); \draw[arc] (FN) to node {\cite{hindmarsh_model_1984}} (RH); \draw[arc] (VDP) to node {\cite{fitzhugh_impulses_1961}} (FN); \draw[arc] (WC) to node {\cite{stein_improved_1974}} (SLOM); % Just looking at the equations and because in Stein % they "follow Cowan's suggested formulation" \draw[arc] (HH) to node[swap] {\cite{abarbanel_synchronisation_1996}} (CWM); \draw[arc] (HH) to node {\cite{abarbanel_synchronisation_1996}} (C85); \draw[arc] (HH) to node {\cite{abarbanel_synchronisation_1996}} (C90); \draw[arc] (GGG) to node {\cite{golomb_reduction_1993}} (G); \end{tikzpicture} \caption{Revue de quelques modèles de neurones. Nous avons fait pointer informellement les flèches vers les modèles ayant un «niveau de détail» plus grand.} \label{fig:neuron-models-relation} \end{figure} Plusieurs champs de recherche s'intéressent aux relations entre modèles, chacun ayant sa portée et ses limites. Nous donnons, dans la section suivante, une courte présentation de quelques uns de ces domaines, ainsi qu'un bref aperçu des résultats qu'ils apportent. \FloatBarrier \section{Modélisation multi-niveau}\label{sec:multiniveau} %% La \emph{modélisation multi-niveau} est un terme que nous avons adopté pour rendre compte des techniques de modélisation couplant plusieurs modèles pour décrire un système. Dans ce contexte, un modèle propose d'observer le système étudié à travers le prisme d'un point de vue particulier, appelé \emph{niveau de description}. La notion de \emph{niveau} met ici l'accent sur le fait que chaque modèle peut ne s'intéresser qu'à une sous-partie du système (peu importe ce que l'on entend par sous-partie ici) et propose donc une description incomplète du système. C'est par le couplage entre les modèles que ces \emph{descriptions} complémentaires se complètent mutuellement, pour finalement obtenir une description plus pertinente du système dans son ensemble. %% Ainsi, la modélisation multi-niveau met en avant une méthodologie générique pour l'élaboration d'un modèle par composition (d'autres modèles). Dans cette section, nous nous intéressons à différents exemples de composition de modèles pour en analyser les difficultés. Nous en concluons que la notion d'\emph{identité} est au cœur de la modélisation multi-niveau. \subsection{Couplage de modèle} %% Dans cette section nous nous intéressons à deux exemples types de couplages de modèles. %% Le premier exemple concerne la \emph{modélisation intégrative} du phénotype d'une cellule biologique entière à partir des modélisations des différents mécanismes moléculaires qui la composent. %% Le second exemple s'intéresse à la \emph{morphogénèse} d'une communauté de villes à partir de modélisations orientées quartier. %% Dans ces deux exemples, des modèles élémentaires sont utilisés pour en conjuguer les points de vue et obtenir une description plus complète du système. Dans les deux cas également, un changement d'échelle s'opère, entre les considérations micro(scopiques) des modèles élémentaires, et le niveau macro(scopique) du système étudié. \subsubsection{Modélisation intégrative d'une cellule entière} %% En modélisation, l'approche \emph{intégrative} consiste à construire des modèles en cherchant à expliquer \emph{simultanément} plusieurs phénomènes, permettant de révéler des dynamiques n'apparaissant pas dans des approches indépendantes. %% Ces modèles sont construits par l'accumulation de modèles préexistants jugés valides et par l'établissement d'un réseau de communication entre ces modèles, voire la conception d'adaptateurs permettant de «traduire» la sortie d'un modèle en l'entrée d'un autre. %% Cette approche est particulièrement développée dans le monde de la recherche sur le vivant~\cite{grace_integrative_2016}, et permet des échanges prolifiques entre les nombreuses disciplines de la biologie (généticiens, physiologistes, comportementalistes, paléontologistes, écologistes, etc.) et donc entre les nombreuses perspectives d'un même système qu'il est possible de récolter. De nombreux projets utilisent cette approche pour comprendre le fonctionnement d'un organisme biologique complet, comme par exemple une cellule. À titre d'exemple, un modèle computationel d'une cellule entière de \emph{Mycoplasma genitalium} est proposé dans~\cite{karr_whole-cell_2012-1}. Ce modèle donne l'expression complète du phénotype de la cellule à partir de son génome en formulant des hypothèses sur de nouveaux mécanismes biologiques. %% L'approche de ce projet passe par le concept de \emph{modularité biologique} qui permet de déterminer une liste d'observables du système dont les valeurs correspondent à des états de la cellule. Plusieurs modèles permettent d'expliquer séparément comment certaines observables sont liées entre elles. Une fois ces modules établis, les modèles sont assemblés en suivant les relations entre les observables, puis ajustés pour respecter les contraintes physiques et biologiques du système dans son ensemble. Les solutions élaborées durant ce type de projet sont pour le moment \emph{ad hoc} et la recherche de méthodes génériques pour rendre cette approche utilisable pour la description d'autres systèmes biologiques est en cours. %% Le projet précédent a par exemple mis en lumière, dans une seconde publication~\cite{macklin_future_2014}, une liste de sept limites à dépasser pour généraliser leur approche intégrative à d'autres organismes. Parmi ces points, les suivants, attireront plus particulièrement notre attention car ils évoquent les limites des outils pour la modélisation intégrative:% \begin{description} \item[Agrégation des données] L'acquisition des données disponibles dans la littérature a été compliquée par l'absence d'une source \emph{unifiée} permettant de compiler l'ensemble des connaissances sur un sujet en particulier, dans ce cas sur l'organisme étudié. La modélisation d'une cellule entière bénéficierait grandement d'outils permettant d'agréger et de \emph{normaliser} toutes les données nécessaires à la calibration des modèles; \item[Construction et intégration de modèles] Un facteur limitant a été la disparité des types de modèles décrivant à différentes échelles d'espace et de temps l'organisme. Unifier la modélisation intégrative passerait donc par une \emph{généralisation} du concept de modèle à travers un cadre mathématique commun à l'ensemble de la modélisation. Comprendre et \emph{analyser} les relations entre modèles dépend de l'existence ce cadre commun; \item[Calcul accéléré] La simulation numérique est un outil clef de la réussite de ce projet. Chaque simulation de \emph{Mycoplasma genitalium} a été très consommatrice en temps de calcul, ce qui est un facteur limitant pour la réussite des projets futurs. Élaborer des modèles d'organismes plus complexes dépendra donc fortement de la capacité des simulateurs à explorer une large portion de l'espace des paramètres dans un temps plus restreint. Le calcul général sur carte graphique, via un framework tel que CUDA ou OpenCL, est une piste à explorer pour améliorer l'efficacité des simulateurs; \end{description} \subsubsection{Modélisation multi-échelle de la croissance des villes} Les modèles à base d'agents sont souvent utilisés en géographie pour rendre compte des dynamiques observables sur une carte: le système est étudié à travers des effets de masse observés dans les populations d'agents. Le projet SimPop~\cite{pumain_simpop:_1995}\footnote{\url{http://www.simpop.parisgeo.cnrs. fr}}, illustre cette approche dès 1996 avec une collaboration entre géographes et informaticiens aboutissant à Simpop1, le premier modèle géographique à base d'agents s'intéressant à la construction de réseaux de villes et à la transition urbaine. %% En 2006, l'évolution à la fois de la puissance de calcul des machines et de l'expressivité des langages de programmation, permet le développement d'une version améliorée, Simpop2~\cite{bretagnolle_theory_2006}. Ce nouveau simulateur prend en compte de nombreuses \emph{fonctions urbaines} de différents types, résidentielles, politiques, économiques, culturelles, liées au transport et aux communications, sociales, etc. Le support de modélisation est un graphe dynamique dont les nœuds sont les villes et dont l'évolution repose sur 4 grandes étapes, à savoir la constitution d'un réseau d'échanges, d'un marché d'échanges, d'un équilibrage de ces échanges et l'évaluation des changements. Le projet SimPop propose également d'autres modèles, tel que SimpopNano qui prend le contre-pied des plateformes précédentes en se concentrant non seulement sur les relations inter-urbaines mais intra-urbaines: les villes qui étaient les agents deviennent les objets d'étude décrits comme des agrégations de quartiers. %% SimpopNano s'intéresse en effet à l'évolution d'une ville, vue comme un graphe statique dont les nœuds en sont les quartiers et où la dynamique est donnée à travers neuf règles d'évolution locale, chacune correspondant à une fonction urbaine. Le couplage entre Simpop2 et SimpopNano est un des enjeux du projet SimPop. Simpop3, proposé dans~\cite{louail_comparer_2010}, est un simulateur de la dynamique des villes répondant à cette problématique. %% Le couplage entre ces deux modèles est \emph{vertical} : il assemble trois échelons d'une échelle d'espace géographique, à savoir quartier, ville et système de villes, et exprime l'interdépendance entre les deux modèles:% \begin{itemize} \item le système de villes contraint la dynamique au niveau ville du système ; \item rétroactivement, l'activité intra-urbaine influence les entrées du modèle inter-urbain. \end{itemize} %% La ville est donc le point d'articulation entre les deux modèles et constitue un niveau de représentation intermédiaire, \emph{mésoscopique}. Le point essentiel consiste à \emph{identifier} les agrégats de quartiers de SimpopNano et les agents-villes de Simpop2. Nous reviendrons en fin de section sur cette notion d'identité. En terme de dynamique, dans SimpopNano, les villes sont construites à partir des quartiers et sont mises à jour à chaque pas de la simulation. Dans Simpop2, les agents-villes sont à l'origine de la dynamique d'un système de villes. Le couplage se fait simplement car la concurrence sur la ressource agent-ville n'est pas prise en compte, ce qui autorise une indépendance entre les modèles. Ainsi, au cours d'une simulation de Simpop3, les deux sous-modèles sont juste appelés alternativement. \subsection{Transformation de modèles}\label{sec:modeltrans} Dans la section précédente, la modélisation multi-niveau était synonyme de modélisation multi-échelle, avec un rapport entre un niveau macro et un niveau micro. %% Dans cette section, les modèles entretiennent un rapport différent: les modèles décrivent les mêmes objets, mais le niveau de granularité entre ces descriptions varie. %% L'opération fondamentale de ces approches est le passage d'un niveau de granularité à un autre niveau de granularité par une \emph{transformation de modèles}. Les deux paragraphes suivants illustrent cette approche. \subsubsection{Ingénierie des modèles} Dans le domaine de l'informatique et de la conception logicielle, l'\emph{ingénierie des modèles} (\emph{model-driven engineering} en anglais) est une méthodologie de développement se concentrant sur la partie métier du logiciel, c'est-à-dire ce qui dans un logiciel fait abstraction de l'implémentation. L'objectif de cette discipline est l'automatisation de la conception logicielle à partir d'une représentation abstraite pouvant ensuite être \emph{transformée} en des représentations de plus en plus concrètes jusqu'au logiciel final. L'ingénierie des modèles part du principe qu'un domaine d'application est plus fortement dépendant d'une représentation abstraite des connaissances et des activités liées à ce domaine, que des concepts algorithmiques et des techniques nécessaires à la mise en œuvre d'une implémentation. Par exemple, pour un problème donné, il existe plusieurs logiciels répondant à ce problème, implémentés de façons différentes: il existe bien \emph{quelque chose} d'unique et de plus abstrait qu'un logiciel qui est propre à la fois au problème et à la solution. Considérant les modèles comme des objets de première classe, l'ingénierie des modèles cherche à développer, maintenir et faire évoluer un logiciel au moyen de \emph{transformations} : des fonctions d'ordre supérieur prenant des modèles en argument. Ces fonctions sont implémentables et exécutables afin que les transformations de modèles soient des procédures automatiques. %% Ce type de procédure est fréquent en informatique. La compilation est un exemple historique de transformation de modèles, où l'on entend ici les langages de programmation comme des « modèles de code source »: compiler consiste à définir des transformations de code source à code source. Le langage diagrammatique d'\emph{Unified Modeling Language} (UML~\cite{UML}), qui permet d'exprimer des modèles de conception, est un candidat classique à la transformation de modèles. Dans ce contexte, les transformations se présentent comme des règles de réécriture de graphe (voir~\cite{taentzer_model_2005} pour une étude sur les transformations de graphes appliquées aux transformations de modèles). Pour notre approche multi-niveau, l'ingénierie des modèles nous apporte deux éléments importants. %% Le premier élément provient de la définition même de modèle, qui y est vu comme la description d'un système spécifiée dans un \emph{langage bien défini}~\cite{kleppe_mda_2003}. Le langage de description est si important qu'il est souvent lui-même décrit comme un modèle; on parlera alors de \emph{méta-modèle}. On rapprochera ce langage de description de la notion de \emph{formalisme}. %% Le second élément provient des transformations de modèles dont une taxonomie est donnée dans~\cite{mens_taxonomy_2006}. On retiendra notamment les catégories suivantes: % \begin{description} \item[Transformation endogène \emph{vs.} transformation exogène:] une transformation est exogène lorsque le langage de description du modèle cible est différent du modèle de description du langage source. \item[Transformation horizontale \emph{vs.} transformation verticale:] nous retrouvons ici la notion de granularité mentionnée plus haut; lors d'une transformation verticale le niveau d'abstraction entre le modèle source et le modèle cible est modifié. La notion d'abstraction jouera un rôle important dans notre proposition. \end{description} % \subsubsection{Raffinement de modèles}\label{sec:raffinement} Bien que la description précédente de l'ingénierie des modèles soit orientée informatique, les mêmes considérations se retrouvent dans d'autres disciplines. %% Par exemple, une méthodologie classique de la modélisation à base d'équations différentielles de systèmes (bio)chimiques consiste à élaborer un modèle simple à partir d'un ensemble initial d'espèces et de réactions, puis de l'enrichir soit avec de nouvelles espèces (on parlera de \emph{raffinement des données}), soit avec de nouvelles réactions (on parlera de \emph{raffinement des processus}). %% À chaque itération, un nouveau modèle est établi puis ajusté pour prendre en compte les observations du système. %% Le processus de raffinement à l'œuvre génère ainsi une suite de modèles ordonnés du moins détaillé au plus détaillé. %% La preuve de raffinement entre deux modèles peut se faire de façon classique ou bien via un outil spécialisé comme le langage Z~\cite{stepney_more_1998}. Une des difficultés du raffinement de modèles se situe dans l'ajustement des modèles construits. Une méthode systématique a été développée pour dériver à partir d'un modèle établi et préalablement ajusté, un modèle raffiné préservant l'ajustement. Cette méthode ne se limite pas aux systèmes d'équations différentielles mais couvre également le champ des réseaux de Petri, des systèmes réactifs et des langages à commandes gardées~\cite{gratie_quantitative_2013}. \subsection{Complexification}\label{sec:complexification} La modélisation des systèmes complexes constitue l'un des enjeux principaux de l'approche multi-niveau que nous souhaitons développer. L'Institut des Systèmes Complexes (\ISC), une structure française pluridisciplinaire de recherche spécialisée sur le sujet, en donne, dans sa proposition de DIM «Approches interdisciplinaires des systèmes complexes»\footnote{Document disponible en ligne à l'adresse \url{ https://iscpif.fr/wp-content/uploads/2016/09/PreProjetDim2017.pdf}}, la définition suivante: \begin{quote} Les systèmes complexes sont des systèmes présentant un grand nombre d’entités différenciées, dont la multitude des interactions locales conduisent à l’émergence de propriétés globales difficilement prédictible par la seule connaissance des propriétés de ces entités. Le niveau local fait ainsi émerger des formes organisées au niveau global, lequel influence en retour le niveau local (immergence). Interactions locales et structures globales peuvent ainsi se conjuguer dans la description des dynamiques des systèmes complexes. \end{quote} % Cette définition n'est pas sans rappeler les exemples de couplage de modèles que nous avons vu plus haut, qui entrent en effet dans le cadre des systèmes complexes. Dans cette section, notre intérêt ne se portera pas sur la modélisation des systèmes complexes dans toute sa généralité, mais plus particulièrement sur le concept de \emph{complexification}, c'est-à-dire sur la façon de capturer dans ces modèles les «phénomènes émergents» et sur comment les réifier au niveau local afin qu'ils deviennent des acteurs de leur propre dynamique. %% Nous présentons pour cela la complexité à travers 3 points de vue théoriques. %% Le premier exemple montre la difficulté d'appréhender la complexité à cause d'un manque de vocabulaire au niveau bas de description. %% Le deuxième exemple attribue la complexité à une cause énergétique par le phénomène d'\emph{activité locale}. %% Finalement, dans un dernier exemple, le processus de complexification est analysé d'un point de vue structurel par l'établissement d'un modèle formel connexionniste. \subsubsection{Raffinement et émergence} En 2005, F. Polack et S. Stepney~\cite{polack_emergent_2005} présentent une approche de la complexité en rapport avec le raffinement de modèles, que nous avons présenté dans la section~\ref{sec:raffinement}. L'idée centrale de leur approche est qu'une propriété d'un modèle est émergente s'il n'est pas possible de l'obtenir par un raffinement naïf, c'est à dire par une unique relation de raffinement. Dans cet article, les auteurs prennent pour exemple le raffinement d'une propriété considéré comme émergente, volontairement simple et observable dans le fonctionnement d'un automate cellulaire en deux dimensions, pour mettre en évidence les difficultés que posent le raffinement d'un comportement émergent. %% Nous présentons la démarche de raffinement simplifiée pour lier une propriété donnée au composants bas niveau d'un système formel, dans notre cas ce système est un automate cellulaire en deux dimensions muni des lois d'évolution du «jeu de la vie». Elle repose habituellement sur les 3 étapes suivantes: \begin{enumerate} \item Exprimer la propriété dans un formalisme; \item Exprimer l'automate cellulaire dans un formalisme (potentiellement différent du précédent); \item Exprimer la relation entre les deux formalismes, prouvant ainsi que la propriété est exprimable dans le contexte des automates cellulaires. \end{enumerate} %% Posséder un \emph{glider}~\cite{gardner_mathematical_1970} est une propriété connue pour être émergente, aussi il serait intéressant de déterminer comment la raffiner. Elle est initialement spécifiée informellement par: \begin{quote} Le système doit présenter une région, traversée par un motif répété, appelé «glider». Lorsque deux gliders se rencontrent, il en résulte un unique glider qui se déplace dans la direction d'un des deux gliders incidents. \end{quote} %% Cette propriété est précise, cependant elle reste non déterministe. Tentons de la raffiner: nous prendrons naturellement les automates cellulaires comme support cible, car notre objectif est d'identifier les composants bas niveau responsables de ce comportement. %% Un glider se définit par la fenêtre qu'il traverse et un vecteur de déplacement. Il est aussi nécessaire de décrire la collision de deux gliders et le résultat de cette collision. Pour spécifier un automate cellulaire, nous formalisons d'abord sa cellule, son état, sa fonction de transition et son voisinage. Ensuite, nous choisissons une représentation formelle d'une collection de ses cellules et de l'application synchrone des fonctions de transitions, habituellement appelées fonctions de transition locales (pour une définition complète, voir page \pageref{def:ca}). Pour poursuivre la procédure, une sous-division discrète de la fenêtre traversée par le glider est introduite, par exemple sous la forme d'une grille $4 \times 4$. Le premier problème qui se pose est que le raffinement de la spécification informelle est plus précise que la spécification originale, ce qui est voulu, mais également plus précise que la représentation ciblée. Dans le cas d'un raffinement classique, au contraire, le raffinement d'une propriété de haut niveau amène à un niveau d'abstraction intermédiaire, c'est-à-dire entre la spécification d'origine et la spécification cible. % \begin{figure}[t] \centering \includegraphics[page=1,height=2cm]{ca-glider} \includegraphics[page=2,height=2cm]{ca-glider} \includegraphics[page=3,height=2cm]{ca-glider} \includegraphics[page=4,height=2cm]{ca-glider} \includegraphics[page=5,height=2cm]{ca-glider} \caption{Les cinq configurations possibles d'un glider contenues dans une fenêtre de $4 \times 4$ cellules.} \label{fig:ca-glider} \end{figure} % Lors de la mise en œuvre du raffinement des \emph{données} de la spécification d'un glider, à savoir «fenêtre» et «glider», il apparaît qu'il n'est pas possible de décrire un glider par un unique état spatial: un glider est en fait constitué d'une succession des cinq configurations présentées dans la \textsc{Fig.}~\ref{fig:ca-glider}. De plus, la configuration initiale de l'automate est importante: elle doit exactement correspondre à une de ces cinq configurations possibles. %% Ensuite, lors de la spécification des \emph{opérations} du glider, à savoir «déplacement», «collision» et «résolution», il est déjà difficile d'exprimer ces opérations sur une grille. Pour le déplacement par exemple, la fenêtre pourrait se déplacer sur une grille extérieure, dans une direction une fois tous les quatre pas des états du glider \emph{dans la fenêtre}, ne pas bouger ou bien faire un pas dans la direction orthogonale. Les opérations de collision et de résolution sont tout aussi difficiles à décrire. Nous constatons qu'il est difficile d'exprimer la relation de raffinement de la propriété «posséder un glider» dans des termes propres aux automates cellulaires en deux dimension en une étape. De plus, cette relation ne sera manifestement pas unique. %% Les difficultés à rendre concrète une propriété témoigne de son caractère émergent: elle est observable mais n'est pas concrètement implémentée dans le système. L'idée centrale de~\cite{polack_emergent_2005} est la suivante: il existe une incompatibilité entre les langages de description qui (1) rend la spécification concrète des gliders difficiles et (2) empêche toute élaboration directe d'une preuve de raffinement avec le vocabulaire des automates. Cette caractéristique est propre aux systèmes possédant des propriétés émergentes. \subsubsection{Complexification dans les \cnn} L. Chua a introduit en 1998 le concept d'\emph{activité locale} (\emph{local activity})~\cite{mainzer_local_2013}. Ce concept est décrit comme le maillon manquant permettant d'expliquer l'apparition de motifs complexes dans un médium homogène. %% L'activité locale, définie initialement dans le cadre des circuits électroniques~\cite{chua_cnn:_1997}, caractérise la propriété d'auto-organisation, c'est à dire la capacité d'un système à posséder une dynamique qui lui est propre, à travers une construction mathématique explicite. La définition a été par la suite généralisée à la classe plus larges des systèmes de réaction-diffusion non linéaires utilisés en physique, en chimie, en biologie et dans le cadre de la recherche sur le cerveau. %% L'activité locale permet d'expliquer la brisure de symétrie dans un médium homogène. Dans les paragraphes suivants, nous présentons de manière succincte quelques définitions proposées par les auteurs pour l'activité locale, la complexité et le seuil du chaos (\emph{edge of chaos}). \begin{figure}[ht] \centering \includegraphics[page=1,width=.48\textwidth]{cnn-synapses}\hfill \includegraphics[page=2,width=.48\textwidth]{cnn-synapses} \caption[Schéma des synapses des cellules d'un CNN]{Connexion des synapses pour le signal de contrôle (à gauche) et pour le signal de rétroaction (à droite) pour la cellule au centre, entourée de huit voisines (cette illustration est inspirée de~\cite{chua_cnn:_1997})} \label{fig:cnn-synapses} \end{figure} L'activité locale est à l'origine définie dans le cadre des réseaux non linéaires de cellules (\cnn pour \emph{Cellular Non-linear Networks}). Un \cnn est un modèle formel constitué d'une grille orthogonale en trois dimensions sur les nœuds de laquelle est disposée une collection de systèmes dynamiques continus et non linéaires. Chaque cellule isolée d'un \cnn est décrite par quatre paramètres: son entrée, son état, son seuil et sa sortie. Les cellules du \cnn sont alors couplées à leurs voisines inclues dans une sphère d'influence prédéfinie avec un certain rayon. Pour une cellule donnée, son entrée est la somme pondérée des sorties de ses voisines (signal de rétroaction) \emph{et} la somme pondérée des entrées de ses voisines (signal de contrôle). Une représentation graphique est donnée dans la \textsc{Fig.}~\ref{fig:cnn-synapses}. L'état d'une cellule est définie par un système d'équations de réaction-diffusion. Il est notamment caractérisé par deux variables vectorielles\footnote{Nous utilisons ici les notations de~\cite{mainzer_local_2013}.}: \begin{itemize} \item $\mathbf{V}_a$, une fonction continue du temps, homogène à une tension et représentant l'état interne de la cellule; \item $\mathbf{I}_a$, une fonction continue du temps, homogène à une intensité et représentant l'entrée de la cellule. \end{itemize} %% L'activité locale s'intéresse aux fluctuations d'énergie induites par des variations de l'entrée d'une cellule initialement placée en un point d'équilibre. En notant $\mathbf{v}_a$ et $\mathbf{i}_a$ les variations respectives de $\mathbf{V}_a$ et $\mathbf{I}_a$, la fluctuation d'énergie entre l'instant initial et un instant $T < \infty$, est donnée par: \begin{equation} w(T) = \int_0^T \mathbf{v}_a(t).\mathbf{i}_a(t).dt \end{equation} %% On dira qu'une cellule est \emph{localement active} à l'instant $T$ si et seulement si $w(T) < 0$. En effet, en supposant nulle l'énergie de la cellule à $t=0$, une énergie stockée strictement négative à $t=T$ signifie que la cellule a \emph{apporté} de l'énergie au système. Une cellule active agit comme une source de puissance en amplifiant un signal faible. %% Par exemple, un transistor muni d'une batterie dans un circuit, ou bien un neurone muni d'une réserve de glucose dans un réseau, sont des éléments actifs; batterie et glucose jouent le rôle d'une réserve d'énergie disponible que la cellule peut utiliser ou distribuer. La complexité est finalement caractérisée comme la présence d'un motif (statique et non homogène, ou spatio-temporel) dans un médium (discret ou continu) constitué de cellules identiques interagissant avec leurs cellules voisines (sphère d'influence), obéissant aux mêmes lois d'interaction, et avec des conditions initiales et de bord homogènes. On peut alors montrer qu'un médium de \emph{réaction-diffusion} présente de la complexité si, et seulement si, il existe des cellules localement actives dans ce médium. Bien qu'aucun vocabulaire ne soit disponible au niveau des cellules pour en parler directement, ce travail montre comment des motifs peuvent être représentés par l'ensemble des cellules localement actives. Il s'agit bien là d'un exemple de complexification à rapprocher fortement des considérations développées dans le chapitre~\ref{chap:partie-activite} sur l'identification des zones actives dans les modélisations \mgs. Une question reste néanmoins en suspens: lorsque les motifs ont des propriétés spatio-temporelles, l'ensemble des cellules localement actives peut varier en fonction du temps, amenant à la problématique du suivi des motifs malgré un support fluctuant. Les travaux d'A. Ehresmann, que nous introduisons dans la section suivante, proposent une réponse à cette question. \subsubsection{Complexification structurelle}\label{sec:ehresmann} Nous tâchons ici de présenter, sans entrer dans les détails, le \emph{processus de complexification} introduit par A. Ehresmann et J.-P. Vanbermeersch~\cite{ehresmann_mens:_2012}. %% Leurs travaux s'intéressent à l'utilisation des \emph{systèmes évolutifs à mémoire} pour la modélisation du vivant, et plus particulièrement de la complexité. L'approche cherche à être la plus générale possible et repose sur une formalisation catégorique des systèmes dynamiques. Pour plus de clarté, nous nous concentrons ici sur le concept de \emph{Memory Evolutive Neural System} (\mens), une des applications de la méthodologie proposée à la modélisation des interactions neuronales. L'objectif de cette construction est de fournir des arguments en faveur de l'émergence des fonctions cognitives depuis les interactions neuronales, allant jusqu'aux concepts de conscience, de pensée et d'intention. Nous ne nous intéresserons ici qu'au processus de complexification. Un réseau de neurones est représenté par un graphe $\text{Neur}_t$ dont les nœuds, notés $N(t)$, sont des neurones et dont les arcs (orientés), notés $S(t)$, décrivent les liens entre les neurones. Chaque lien est pondéré par un délai de propagation. Le graphe est nécessairement fermé transitivement: étant donnés trois neurones $n_1,n_2,n_3 \in N(t)$, si les arcs $(n_1,n_2)$ et $(n_2,n_3)$ existent, l'arc $(n_1,n_3)$ existent également. Un réseau est un objet dynamique et s'inscrit donc dans le temps (représenté par l'indice $t$). Au cours de son évolution, des nœuds peuvent apparaître ou disparaître, entraînant l'apparition ou la disparition d'arcs. L'ensemble des réseaux $\text{Neur}_t$ forme une collection $\text{Neur}$ (voir \textsc{Fig.}~\ref{fig:ce-neur}) munie d'une fonction de \emph{transition} $k$ qui, pour chaque couple d'instants $t < t'$, relie les nœuds de $N(t)$ à ceux de $N(t')$ et les arcs de $S(t)$ à ceux de $S(t')$ en préservant l'incidence, propriété assurée par la fonctorialité de $k$ (la définition d'un foncteur est donnée dans la définition~\ref{def:foncteur}), et en vérifiant la transitivité suivante (présentée ici sur les nœuds uniquement): pour trois instants $t < t' < t''$ et trois nœuds $(n_1,n_2,n_3)\in N(t) \times N(t') \times N(t'')$: \begin{itemize} \item si $n_2$ est l'image de $n_1$ par $k_{t \rightarrow t'}$ et $n_3$ est l'image de $n_2$ par $k_{t' \rightarrow t''}$, alors $n_3$ est l'image de $n_1$ par $k_{t \rightarrow t''}$; et \item si $n_2$ est l'image de $n_1$ par $k_{t \rightarrow t'}$ et $n_3$ est l'image de $n_1$ par $k_{t \rightarrow t''}$, alors $n_3$ est l'image de $n_2$ par $k_{t' \rightarrow t''}$. \end{itemize} %0. (v) Neur, le réseau des neurones \begin{figure}[p] \centering \includegraphics[page=1,width=.75\textwidth]{complexification-ehresmann} \caption{$\text{Neur}$ propose un point de vue dynamique sur un réseau de neurones. À chaque instant $t$, l'état du réseau est vu comme un graphe $\text{Neur}_t$.} \label{fig:ce-neur} \end{figure} %1. (v) Neurone catégoriel ou Cat-neurone \begin{figure}[p] \centering \includegraphics[page=2,width=.25\textwidth]{complexification-ehresmann} \caption{Le cat-neurone $N$ est un neurone abstrait ayant le même comportement fonctionnel que les neurones de la famille $P$.} \label{fig:ce-catneur} \end{figure} %2. (v) Cat-neurones: Liens simples + Bascule complexe (complex switch) \begin{figure}[p] \centering \qquad \includegraphics[page=4,width=.5\textwidth]{complexification-ehresmann} \hfill \includegraphics[page=3,width=.35\textwidth]{complexification-ehresmann} \qquad \caption{ À gauche, un lien simple: si $P$ et $P'$ forment un cluster, symbolisé par une bande grise, alors il existe un lien simple entre $N$, le binding de $P$et $N'$ le binding de $P'$. % À droite, une bascule complexe: un cat-neurone peut être fonctionnellement équivalent à plusieurs familles de neurones.} \label{fig:ce-simplelink-complexswitch} \end{figure} %3. (v) Cat-neurones: l'apparition de liens complexes \begin{figure}[p] \centering \includegraphics[page=5,width=.75\textwidth]{complexification-ehresmann} \caption{Un lien complexe est la composition de deux liens simples à travers une bascule complexe.} \label{fig:ce-complexlink} \end{figure} Le processus de complexification est compris dans ce contexte comme la reconnaissance d'un comportement synchronisé, en prenant en compte les délais de communication imposés par les arcs du réseau, d'un groupe de neurones agissant collectivement sur d'autres neurones. Le point important de cette complexification est que ce comportement collectif peut lui-même être représenté par un neurone $n$. %% Ainsi, lorsqu'une famille $P$ de neurones agit collectivement avec un neurone $n'$ du réseau, cette action peut être représentée par un lien unique $s$ entre $n$ et $n'$. Le lien $s$ joue un rôle totalement équivalent à la somme des liens des neurones de $P$ vers $n'$ (voir \textsc{Fig.}~\ref{fig:ce-catneur}). %% Formellement, $n$ correspond à une colimite du diagramme défini par $P$, appelée \emph{binding} dans ce contexte. Le cas intéressant apparaît lorsque le \emph{binding} n'existe pas, c'est-à-dire lorsqu'aucun neurone de $\text{Neur}$ ne représente de façon élémentaire le comportement collectif. On propose alors d'enrichir le système initial $\text{Neur}$ avec ces nouveaux neurones abstraits, appelés \emph{cat-neurones}, et correspondant aux \emph{bindings} manquants. %% Une hiérarchie de complexification peut alors être mise en place: les neurones de $\text{Neur}$ sont des \emph{cat-neurones} de niveau 0, alors que les \emph{bindings} manquants sont des cat-neurones de niveau 1. Le processus peut être itéré pour obtenir des cat-neurones de niveau $l$ à partir des cat-neurones de niveau $l-1$. En plus d'être capable de réifier les comportements «émergents» en tant qu'objets de base, ici des neurones, le modèle permet également le suivi au cours du temps de ces comportements. %% Ce suivi repose sur deux notions: \begin{enumerate} \item \emph{Lien simple}: un lien simple permet d'associer l'évolution d'un cat-neurone à l'évolution de la famille qui l'engendre. % Soient $P$ et $P'$ deux familles de neurones. Un \emph{cluster} entre $P$ et $P'$ est une famille maximale de liens entre les neurones de $P$ et ceux de $P'$ représentant l'évolution des neurones de $P$ en neurones de $P'$ (nous ne rentrerons pas plus dans les détails techniques). Si $P$ et $P'$ admettent $n$ et $n'$ comme \emph{bindings} respectifs, le \emph{cluster} admet également une colimite sous la forme d'un lien entre $n$ et $n'$, appelé \emph{lien simple}. Ce lien représente l'évolution de $n$ en $n'$ (voir \textsc{Fig.}~\ref{fig:ce-simplelink-complexswitch} à gauche). \item \emph{Bascule complexe}: un lien simple ne permet pas à lui seul le suivi d'un cat-neurone car la famille $P$ peut disparaître au cours de son évolution. Cependant, d'autres familles que $P$ peuvent engendrer le même cat-neurone. %% On dira que deux familles de neurones $P$ et $P'$ forment une \emph{bascule complexe} lorsque $P$ et $P'$ engendrent le même \emph{binding} (voir \textsc{Fig.}~\ref{fig:ce-simplelink-complexswitch} à droite). \end{enumerate} %% On trouvera \textsc{Fig.}~\ref{fig:ce-complexlink} une illustration de la notion de \emph{lien complexe} montrant comment combiner \emph{lien simple} et \emph{bascule complexe} pour déterminer l'évolution d'un cat-neurone malgré la structure dynamique du réseau. \subsection{Bilan} L'ensemble des travaux présentés ci-dessus nous amènent à considérer qu'un outil de modélisation devrait regrouper les propriétés suivantes: % \begin{description} \item[Cadre unifié:] Les conclusions de~\cite{macklin_future_2014} sur leur expérience de multi-modélisation d'une cellule entière de \emph{Mycoplasma genitalium} montrent qu'une uniformisation des descriptions est nécessaire pour produire un outil adapté à l'intégration de données provenant de sources multiples. %% Les différents points de vue pris sur un même objet, voire la disparité des systèmes étudiés, impliquent une indépendance de l'outil par rapport aux modèles pour permettre l'\emph{identification} des concepts partagés. Un cadre unifiant et générique doit donc être développé de façon agnostique vis-à-vis des sujets d'étude. \item[Cadre formel:] L'analyse d'un modèle, allant de la simple simulation à des techniques mathématiquement plus complexes (\emph{model checking}, analyse abstraite, etc.), repose sur une description précise des modèles. Pour cela, les modèles sont souvent décrits dans un cadre mathématique spécifique, appelé \emph{formalisme}, dont la frontière permet d'assurer l'applicabilité des techniques d'analyse. Au-delà des facilités mathématiques offertes par les formalismes, un grand nombre d'approches utilisent de façon formelle les propriétés «syntaxiques» des spécifications des modèles afin de les manipuler. Les transformations de modèles illustrent parfaitement cette dépendance à la description des modèles. Les preuves de raffinement imposent que le modèle transformé traduise effectivement les éléments du modèle d'origine. La prise en compte de plusieurs formalismes va néanmoins à l'encontre du caractère unifiant que nous impose le point précédent. Trouver un sur-formalisme unique à un ensemble de formalismes classiques amène nécessairement à lever les frontières qui faisaient des approches classiques leur intérêt: plus un formalisme est général, moins il pourra nous apprendre sur les modèles étudiés. Il est donc primordial de trouver un point d'équilibre entre ces deux premiers points. \item[Sémantique:] Un modèle ne se résume pas à une spécification mathématique décrite dans un formalisme donné. En effet, si tel était le cas, un modèle se réduirait à un objet symbolique vide de relations au système qu'il décrit. Sa relation avec l'objet d'étude passe par une sémantique, c'est-à-dire, par une structure supplémentaire décrivant l'interprétation des symboles. La sémantique joue un rôle déterminant dans la compréhension et la manipulation des modèles. Par exemple, le couplage de modèles repose essentiellement sur l'\emph{identification} de concepts communs traités différemment par les modèles. Une telle sémantique agit comme un moteur du couplage: elle permet d'\emph{identifier} au sein de leurs spécifications les éléments en relation avec les mêmes concepts. Un projet tel que l'intégration dans un seul modèle de résultats scientifiques indépendants profiterait d'une description homogène faisant référence à une ontologie partagée, c'est-à-dire une base de concepts communs. % L'établissement d'une ontologie est une problématique en soi. % En effet, une ontologie n'est pas une simple collection de concepts mais % également des relations entre ces concepts. % Il va sans dire que les modèles eux-mêmes peuvent être utilisés pour établir % ces relations; l'ontologie devient alors le support de la modélisation \item[Abstraction:] Comme le montrent les techniques de raffinement, il est naturel d'élaborer un modèle à partir d'une spécification grossière qui sera incrémentalement transformée vers une forme plus dense prenant en compte des aspects de plus en plus précis du système étudié. Si un modèle est vu comme une abstraction d'un système, ce type de construction consiste à passer d'une description abstraite vers une autre plus concrète, en respectant la sémantique, dont l'objectif est de s'approcher à la limite du système lui-même. Les travaux cités précédemment nous laissent penser que ce mécanisme est à la base de toute modélisation. À titre d'exemple, le couplage de modèles peut être vu comme une forme d'utilisation de l'abstraction: le modèle obtenu par couplage peut être vu comme le raffinement le plus abstrait obtenu en combinant les modèles initiaux. Ainsi, Simpop3 est à la fois un raffinement de Simpop2 et un raffinement de SimpopNano. \item[Multi-niveau:] La problématique de la complexification, notamment à travers les travaux de S. Stepney, montre que l'abstraction n'est pas une opération suffisante pour parler des propriétés émergentes. La difficulté vient essentiellement du manque de vocabulaire disponible à certains niveaux de description pour exprimer des concepts présents de façon élémentaire à d'autres niveaux, bien qu'il soit possible de les caractériser qualitativement. La modélisation multi-niveau a pour objectif de mettre en avant cette possibilité d'\emph{identifier} les entités de base d'un niveau comme étant des propriétés observées à un autre niveau. Les travaux de A. Ehresmann et L. Chua proposent d'\emph{identifier} cette fois une propriété émergente à travers le comportement corrélé d'entités, par l'activation commune d'un même cat-neurone dans le premier cas ou par la mesure de l'activité d'une cellule dans le second. Les entités du niveau inférieur enrichissent le niveau supérieur, mais ne le définissent pas entièrement. Un cat-neurone ou une cellule localement active a la capacité d'influer en retour sur le niveau inférieur et c'est l'association de ces deux mécanismes qui détermine les entités des niveaux supérieurs. \end{description} \paragraph{Le Bateau de Thésée.}% Les propriétés précédentes reposent fondamentalement sur différentes formes d'identification, que ce soit entre les symboles d'un modèle et les concepts sémantiques associés, les relations entre un modèle abstrait et son raffinement, ou encore durant un processus de complexification. %% Cependant, l'identité est une notion polysémique riche dont les différentes compréhensions peuvent aider à préciser certaines problématiques rencontrées en modélisation. Pour mettre en avant la profondeur du concept d'identité, le paradoxe du bateau de Thésée est souvent employé. Plutarque, dans l'ouvrage «La vie de Thésée» (traduit par D. Ricard~\cite{ricard_vie_1858}), fait état de la conservation de son bateau par les athéniens après la mort de Thésée: \begin{quote} Le vaisseau sur lequel Thésée s'était embarqué avec les autres jeunes gens, et qu'il ramena heureusement à Athènes, était une galère à trente rames, que les Athéniens conservèrent jusqu'au temps de Démétrios de Phalère. Ils en ôtaient les vieilles pièces, à mesure qu'elles se gâtaient, et les remplaçaient par des neuves qu'ils joignaient solidement aux anciennes. Aussi les philosophes, en disputant sur ce genre de sophisme qu'ils appellent croissant, citent ce vaisseau comme un exemple de doute, et soutiennent les uns que c'était toujours le même, les autres que c'était un vaisseau différent. \end{quote} La question est donc de déterminer si le bateau de Thésée, malgré sa conservation et son entretien par les athéniens, garde son identité une fois que toutes ses parties ont été remplacées. De plus, si lors des réparations chaque pièce remplacée était utilisée pour reconstruire un bateau complet, ce dernier serait-il le bateau de Thésée ? Ces questions autour de l'identité qui hantent les philosophes depuis l'antiquité, ont abouti à en donner différentes interprétations. Dans~\cite{ferret_bateau_1996}, S. Ferret fait un état des lieux de ces interprétations dont voici une brève description: \begin{description} \item[Identité numérique:] Il s'agit de la relation qu'entretient un objet avec lui-même au cours du temps. Dans l'exemple précédent, l'\emph{identité numérique} du bateau de Thésée est conservée au cours du temps, même si le bateau subit des modifications au fur et à mesure. C'est la seule identité qui résiste au temps. \item[Identité spécifique:] Il s'agit de l'appartenance à une catégorie commune, indépendamment de l'objet concerné. Ainsi, les planches constituant initialement le bateau de Thésée font partie de la même \emph{identité spécifique} et s'opposent aux planches nouvellement installées. D'un point de vue logique, une identité spécifique peut être associée à la propriété séparant les objets qui lui appartiennent de ceux qui ne lui appartiennent pas. \item[Identité qualitative:] Aussi appelée indiscernabilité, il s'agit de l'identification d'objets que l'expérience ne permet pas de distinguer. Pris au sens le plus strict, deux objets ayant les mêmes propriétés (qualités), c'est-à-dire répondant de la même façon à \emph{toutes} les questions qui leurs seraient posées, sont identiques. \end{description} Il est intéressant de constater que ces points de vue se mêlent en modélisation. Notamment, la complexification structurelle d'A. Ehresmann permet d'observer les trois identités à l'œuvre au sein d'une même construction. La \textsc{Fig.}~\ref{fig:id-complexlink} présente leurs interactions lors de la construction d'un lien complexe: l'identité numérique des (cat-)neurones dont on suit l'évolution au cours du temps, l'identité spécifique des cat-neurones d'un même niveau tous descriptibles de la même façon, et l'identité qualitative des familles de neurones avec \emph{binding} caractérisées par leur comportement synchronisé. On remarquera notamment sur ce dernier point l'indiscernabilité à l'œuvre lorsque des familles d'une bascule complexe -- se comportant en tout point de la même façon avec les autres neurones -- sont représentées par le même cat-neurone. \begin{figure}[h!] \centering \includegraphics[page=6,width=.95\textwidth]{complexification-ehresmann} \caption[Identités et lien complexe]{% Identités et lien complexe: les identités qualitatives sont données en magenta, en orange et en rouge, les identités numériques sont données en violet, en bleu et en cyan.% } \label{fig:id-complexlink} \end{figure} \FloatBarrier \section{Une notion générale de modèle}\label{sec:consmodel} Comme nous venons de le voir, le concept de modèle est riche et sa compréhension varie suivant le domaine ou la technique utilisée. Notre objectif étant de s'écarter des cas particuliers pour proposer un outil générique pour comprendre la modélisation multi-niveau, il nous est nécessaire de définir une notion de modèle qui permettra de rendre compte du plus grand nombre de cas d'application. Dans cette section, nous proposons une telle définition. Nous commençons par fixer une partie du vocabulaire utilisé pour finalement proposer la définition générale qui nous intéresse. Cette généralité étant un frein à l'étude des modèles, nous en proposons ensuite différentes instanciations permettant de retrouver quelques classes de modèles couramment rencontrées. Nous terminons par la présentation de différents modèles d'un même système, un système proie/prédateur. \subsection{Vocabulaire}\label{sec:formalism-model-system} \newcommand{\modele}{\emph{modèle}\xspace} \newcommand{\systeme}{\emph{système}\xspace} \newcommand{\formalisme}{\emph{formalisme}\xspace} \newcommand{\modeles}{\emph{modèles}\xspace} \newcommand{\systemes}{\emph{systèmes}\xspace} \newcommand{\formalismes}{\emph{formalismes}\xspace} \begin{figure}[t] \centering \includegraphics[page=1,width=.65\textwidth]{fms} \caption{Schéma des relations entre de notions de \systeme, \modele et \emph{formalisme}.} \label{fig:fms} \end{figure} Les trois notions importantes qui nous intéressent dans ce chapitre sont celles de \systeme, de \modele et de \formalisme. Bien que, d'un point de vue général, elles sont acceptées de tous, l'usage de ces termes peut varier suivant le domaine. Notre objectif est de lever toute ambigüité en proposant au lecteur notre propre compréhension de ces notions. En outre, nous utiliserons ces définitions comme fondement de notre proposition. Ainsi, la figure \textsc{Fig.}~\ref{fig:fms}, résumant les relations que nous avons pu mettre en avant section~\ref{sec:multiniveau}, constitue le canevas du développement décrit section~\ref{sec:compmodel}. \paragraph{Système.} On trouve dans de nombreuses disciplines l'utilisation du mot \systeme. En voici quelques exemples: \begin{itemize} \item En informatique, le \systeme d'exploitation est un \emph{assemblage} de programmes et de processus chargés de la gestion des périphériques au sens large: la mémoire, les communications via une carte réseau, les entrées utilisateur, les ressources processeur, etc.; \item En anatomie, le terme \systeme désigne un \emph{assemblage} d'organes interagissant au sein d'un organisme dans la réalisation d'une fonction biologique commune: le \systeme nerveux, le \systeme digestif, etc.; \item En physique, un \systeme est un \emph{assemblage} de points, de solides, constitutif d'un fluide, d'un gaz, … dont il faut décrire l'évolution au cours du temps; \item En logique, un \systeme formel est un \emph{assemblage} comprenant un vocabulaire, un ensemble d'axiomes et des règles de déduction. \end{itemize} Tous les exemples supplémentaires que nous pourrions trouver reposeraient eux aussi sur deux notions essentielles: \begin{enumerate} \item Le terme \systeme désigne un objet d'étude. Il s'oppose à l'environnement, c'est-à-dire à ce que l'on ne souhaite pas étudier mais qui est potentiellement en interaction avec l'objet d'étude. Suivant le degré d'importance de ces interactions, les termes de \systeme ouvert, fermé ou isolé seront plus particulièrement employé. \item Dans son étude, le \systeme est décomposé en parties, et l'étude porte sur la compréhension des relations entre ces parties. D'ailleurs, l'origine étymologique du mot \systeme est σύστημα qui, en grec ancien, désigne un tout composé de plusieurs parties ou membres. Cette décomposition a son importance dans notre approche car elle offre le vocabulaire nécessaire pour désigner le système et, nous le verrons par la suite, constitue une base pour la définition d'une sémantique. \end{enumerate} \paragraph{Modèle.} L'acceptation générale du terme \modele fait état d'un objet utilisé comme représentation d'un autre\footnote{Il existe néanmoins une compréhension opposée de la notion de modèle, que l'on trouve par exemple dans le monde artistique où un \modele est utilisé pour ensuite être représenté dans une œuvre (peinture, dessin, littérature, etc.). Dans ce sens, on parle d'une forme d'idéal qu'on cherche à atteindre. La définition à laquelle nous nous réfèrerons est celle du \modele scientifique.}. Suivant la définition que nous venons de donner, l'objet représenté correspond à un \systeme, dont un \modele a la charge d'en donner une représentation suffisamment fidèle pour procéder à l'étude attendue. Dans certains cas, le \systeme est existant et le \modele servira de représentation simplifiée en vue d'une analyse souvent explicative du \systeme; dans d'autres cas, il correspondra à une construction que nous souhaitons réaliser, le \modele permettra alors, dans une approche d'ingénierie, d'étudier la possibilité de réaliser le système, voire d'en guider la construction. L'aspect dégradé de la représentation offerte par le \modele en fait une abstraction du \systeme. Elle place les deux concepts dans des mondes \emph{a priori} différents, l'un abstrait et l'autre concret. Par exemple le premier peut être mathématique lorsque la modélisation est formelle et le second réel quand l'objet d'étude existe dans la nature. Cependant, c'est bien la relation entre le \modele et le \systeme qui fait la modélisation et non le \modele seul. En effet, les abstractions apportées par le \modele ne font sens que lorsqu'elles se font \emph{par rapport} \systeme. Ainsi, la sémantique associant les abstractions du \modele au vocabulaire amené par le \systeme complète la relation \modele-\systeme. Nous développerons cette idée formellement dans la section~\ref{sec:compmodel}. \paragraph{Formalisme.} Tout \modele nécessite un langage comme support d'expression. Ce langage peut être compris au sens large et prend de nombreuses formes. Prenons par exemple la réalisation d'une maquette d'un pont pour en étudier la réponse aux vents en soufflerie. Le support de description dans ce cas n'est autre que le matériel constituant la maquette. Nous nous limiterons ici aux modélisations dont le langage de description repose sur une construction mathématique. Ces constructions sont appelées \formalismes et sont la donnée d'une théorie, au sens mathématique, c'est-à-dire un ensemble d'affirmations et un mécanisme de déduction. Cette théorie est accompagnée d'une syntaxe permettant d'en formuler les affirmations. Comme évoqué plus haut, la difficulté des approches combinant plusieurs \modeles d'un même \systeme vient de la diversité des \formalismes utilisés. Il nous semble que la théorie des ensembles offre un cadre commun minimal suffisant pour élaborer notre outil. En effet, la plupart des \formalismes que nous avons rencontrés se fondent sur une représentation ensembliste. C'est le cas par exemple des algèbres (au sens de l'algèbre universelle) vues comme des ensembles munis de lois de composition internes. Nous verrons section~\ref{sec:consmodel} comment l'enrichissement d'un ensemble par une structure mathématique, c'est-à-dire en se plaçant dans un \formalisme particulier, permet de retrouver certaines classes de \modeles. Nous verrons également, section~\ref{sec:compmodel}, comment oublier ces structures permet aux \modeles de collaborer. \newcommand{\lsys}{L-system\xspace} \newcommand{\lsyss}{L-systems\xspace} \paragraph{Les systèmes de Lindenmayer.} Dans ce paragraphe, nous souhaitons montrer que si, dans une situation particulière, nous savons différencier \systeme, \modele et \formalisme, un même objet peut servir suivant le contexte de \systeme, de \modele ou de \formalisme. Les systèmes de Lindenmayer, ou \emph{\lsyss}, en sont un bon exemple. Les \lsyss sont des grammaires formelles introduites par A. Lindenmayer~\cite{de_koster_discrete_1987}. Formellement\footnote{Pour la simplicité du propos, nous restreignons notre présentation au D0-\lsys, c'est-à-dire aux \lsyss déterministes sans contexte.}, un \lsys est un triplet $(\Sigma, w_0, P)$ où $\Sigma$ est un ensemble fini de symboles appelé \emph{alphabet}, $w_0\in \Sigma^*$ est un mot fini initial appelé \emph{axiome}, et $P \subset \Sigma \rightarrow \Sigma^*$, appelé l'ensemble des règles, est une fonction associant à chaque lettre de $\Sigma$ un mot. Un \lsys transforme ainsi un mot $a_1 \dots a_n$ en $w_1 \dots w_n$ tel que pour tout $i$, $w_i = P(a_i)$. Les \lsyss peuvent être observés sous le prisme des trois concepts que nous avons abordés: \begin{enumerate} \item \lsys comme \modele : Au même titre que le $\lambda$-calcul~\cite{church_set_1932}, les machines de Turing~\cite{turing_computable_1937} ou les grammaires de Chomsky~\cite{chomsky_three_1956}, les \lsyss ont leur place dans l'étude du calcul en tant que \modeles de calcul. Dans ce contexte, c'est-à-dire celui de calculabilité, le \systeme désigne les fonctions calculables et les modèles énumérés ci-dessus en proposent différents points de vue. En effet, nous pouvons associer un langage à un \lsys à travers l'ensemble des mots qu'il génère à partir de l'axiome. Durant les années 70, un important effort de recherche a été entrepris pour comprendre la puissance de calcul proposé par les \lsyss~\cite{rozenberg_mathematical_1980}. \item \lsys comme \systeme : Afin de les élever comme modèles de calcul, les \lsyss ont fait l'objet d'une étude formelle devenant alors un \systeme, suivant le sens évoqué plus haut. Ainsi, nous trouvons également dans~\cite{rozenberg_mathematical_1980} des abstractions qui ont permis de mener à bien cette étude. Pour n'en donner qu'un exemple simple, les \emph{fonctions de croissance} permettent à partir d'un \lsys d'obtenir la longueur du mot obtenu après $n$ transformations issues de l'axiome initial. Dans notre cas, décrire la fonction de croissance revient à poser un système d'équations mutuellement récursives dénombrant le nombre d'occurrences de chaque lettre à une génération donnée. \item \lsys comme \formalisme : Il s'agit ici de l'utilisation initiale des \lsyss proposée par A. Lindenmayer qui avait pour objectif de modéliser le développement des plantes et des bactéries. Dans ce troisième contexte, les \lsyss sont utilisés comme \formalisme pour décrire des modèles biologiques. Par exemple, dans~\cite{prusinkiewicz_algorithmic_2012} se trouve, parmi de nombreuses autres applications montrant la richesse de l'approche, le \lsys $L_{\mathrm{AC}} = (\{r,R,l,L\}, R, P_{\mathrm{AC}})$ comme \modele symbolique du comportement de croissance de l'algue \emph{Anabaena catenula}. Cette algue se présente sous la forme d'un filament de cellules. Les cellules sont polarisées (vers la gauche ou vers la droite) et le filament présente un motif de polarisation spécifique. Les règles de $P_{\mathrm{AC}}$, données par $$ \begin{array}{lll} r & \Rightarrow & R \\ l & \Rightarrow & L \\ R & \Rightarrow & Lr \\ L & \Rightarrow & lR \end{array} $$ décrivent comment naît ce motif. Il repose sur une asymétrie de longueur des cellules filles lors de la division cellulaire. Dans cet exemple, $r$ est l'abstraction d'une cellule courte orientée vers la droite, $L$ d'une cellule longue orientée vers la gauche, etc. La règle $R \Rightarrow Lr$ abstrait la division d'une cellule longue orientée à droite, en deux cellules, respectivement longue et orientée à gauche, et courte et orientée à droite. \end{enumerate} \let\formalisme\undefined \let\systeme\undefined \let\modele\undefined \let\formalismes\undefined \let\systemes\undefined \let\modeles\undefined \let\lsyss\undefined \let\lsys\undefined \FloatBarrier \subsection{Constructions de modèles} \label{sec:consmodel} Comme nous l'avons présenté précédemment, nous souhaitons nous placer dans le contexte de la théorie des ensembles, dénominateur commun de tous les formalismes formalismes de modélisation introduits jusqu'à présent. Ainsi, nous considérons qu'un modèle est un ensemble de «faits» à propos du système concerné. Cette simple définition confirme, d'une part, que sans sémantique, un modèle ne nous apprend que peu d'informations sur le système qu'il décrit. Pire encore, en supposant qu'une telle sémantique existe, que l'absence de structure des ensembles ne nous permet pas de relier entre eux les faits que le modèle contient. %% Le prix à payer pour unifier les formalismes semble trop élevé pour mener à bien notre objectif. Cependant, un modèle n'est pas n'importe quel ensemble, mais un ensemble issu d'un formalisme bien particulier et qui présente donc les reliquats d'une structure préexistante. Ainsi, tous les modèles correspondant à un formalisme donné exhiberont une forme commune qui peut être utilisée pour classer les modèles. %% Dans cette section, nous présentons à travers quelques exemples comment enrichir cette vue ensembliste de la modélisation pour retrouver des classes de modèles fréquemment rencontrées. Dans la suite, nous utiliserons la notation $\modelM$ pour désigner un modèle. Afin de distinguer la façon de construire l'ensemble des faits d'un modèle du modèle lui-même, nous noterons $E_{\modelM}$ l'ensemble des faits de $\modelM$. \subsubsection{Modèle à observables} Dans ce premier exemple, nous considérons que les faits que contiennent les modèles représentent les \emph{états} du système, c'est-à-dire une description des différentes configurations que peut prendre le système. Chaque état correspond à une observation du système et peut être décrit comme un tuple de valeurs, appelées \emph{observables}. En d'autres termes, le modèle correspond à un ensemble de mesures relevées sur le système étudié. Chaque observable produit une mesure dans un ensemble de valeurs, appelé le \emph{domaine} de l'observable. Un modèle définit donc une \emph{loi d'exclusion} : il distingue parmi l'ensemble de toutes les mesures théoriques possibles la classe des comportements propres au système et exclut celles qui ne le sont pas. Cette approche a été développée par J.C. Willems~\cite{willems_paradigms_1991}. L'ensemble des mesures possibles, donné par le produit cartésien des domaines des observables est parfois appelé \emph{universum} dont un modèle est le sous-ensemble. Cela nous amène à la définition formelle suivante. \begin{mpo-definition}[Modèle à observables] Soit $\{ \dom_i \}_{i \in I}$, une famille d'ensembles. Un \emph{modèle à observables} $\modelM$ est un modèle caractérisé par un couple $\langle \sig_{\modelM}, \bhv_{\modelM} \rangle$ où \begin{itemize} \item $\sig_{\modelM} = \dom_1 \times \dom_2 \times \dom_3 \times \ldots$ est la \emph{signature} (encore appelé \emph{universum}) du modèle \modelM; \item $\bhv_{\modelM} \subseteq \sig_{\modelM}$ est le \emph{comportement} du modèle \modelM. \end{itemize} Les projections $\pi_i : \sig_{\modelM} \rightarrow \dom_i$ sont appelées les \emph{observables} du modèle et $\dom_i$ est le \emph{domaine} de l'observable $\pi_i$. Les éléments de $\bhv_{\modelM}$ sont appelés les \emph{états} du modèle. \noindent L'ensemble des faits est donné par $E_{\modelM} = \bhv_{\modelM}$. \end{mpo-definition} Un modèle à observables pourra être plus ou moins précis dans sa description du système, en présentant plus ou moins d'observables, en reposant sur des domaines plus ou moins fins, ou en dénombrant plus ou moins d'états. Cette précision sera formalisée dans la section suivante par un mécanisme d'abstraction entre modèle. \begin{mpo-exemple} Nous reprenons ici la modélisation des états de l'eau de~\cite{willems_paradigms_1991}. Suivant la température, l'eau existe dans différents états solide, liquide ou gazeux. Le modèle $\model{M}{\it eau}$ suivant décrit les états que prend l'eau pour différentes températures, données ici en degrés Celsius (\si{\celsius}), à une pression constante de \SI{1013,25}{\hecto\pascal}: \[ \begin{array}{rcl} \dom_{\obsn{Phase}} &=& \{\text{solide},\text{liquide},\text{gaz}\} \\ \dom_{\obsn{Température}} &=& [-273,\infty[ \\ \sig_{\model{M}{\it eau}} &=& \dom_{\obsn{Phase}} \times \dom_{\obsn{Température}} \\ \bhv_{\model{M}{\it eau}} &=& \{\text{solide}\} \times [-273,0] \\ &\cup& \{\text{liquide}\} \times [0,100] \\ &\cup& \{\text{gaz}\} \times [100,\infty[ \end{array} \] Notons que d'après ce modèle, l'eau à une température de \SI{0}{\celsius} peut présenter les deux phases, liquide et solide. \label{ex:model-eau} \end{mpo-exemple} \subsubsection{Modèle expérimental} Voir un modèle comme un ensemble ne dit rien sur la façon de construire ce modèle. Une première manière de spécifier un ensemble est d'en donner une définition par extension. %% On parlera de \emph{modèle expérimental} lorsque l'ensemble est défini par extension à partir des résultats d'expériences. \begin{figure}[t] \centering \includegraphics[width=\textwidth]{figures/log-steamer-bear} \caption{Extrait d'une page du journal de bord du bateau à vapeur Bear de l'US Navy, le 22 juin 1884.} \label{fig:steamer-bear} \end{figure} \begin{mpo-exemple} %[Modèle expérimental des états de l'eau] Une méthode directe de construction d'un modèle à observables consiste à noter les valeurs mesurées de chaque observable sur une feuille, comme dans le cas d'un journal de bord «maritime», où les observations relevées se limitent à celles qui sont estimées pertinentes pour la navigation (voir \textsc{Fig.}~\ref{fig:steamer-bear}), et à effectuer autant de relevés que possible. %% On peut considérer qu'à chaque ligne un \emph{état du système} est décrit et que les valeurs relevées définissent une relation (au sens mathématique) entre les observables. Les colonnes correspondent aux observables ($\pi_i$ dans la définition ci-dessus) et toutes les valeurs qu'une observable peut prendre forment son domaine ($\dom_i$ ci-dessus). Par exemple, \[ \dom_{\obsn{WINDS} Direction} \in \{ \textit{N}, \textit{NE}, \textit{E}, \textit{SE}, \textit{S}, \textit{SW}, \textit{W}, \textit{NW} \} \] \end{mpo-exemple} \subsubsection{Modèle équationnel} Distinguer un ensemble dans un sur-ensemble de possibilités consiste à donner un prédicat décidant de l'appartenance d'un élément à l'ensemble. Une façon de spécifier un tel prédicat est décrit dans~\cite{willems_paradigms_1991} par la donnée d'une équation mettant en relation deux quantités. Ce principe amène à la notion suivante de modèle équationnel. \begin{mpo-definition}[Modèle équationnel]\label{def:modelequa} Un \emph{modèle équationnel} $\modelM$ est caractérisé par un couple de fonctions $\langle f_{\modelM}, g_{\modelM} \rangle$ de même signature $X \rightarrow Y$ pour deux ensembles $X$ et $Y$ donnés, tel que l'ensemble des faits de $\modelM$ est donné par \[ E_{\modelM} = \{ x \in X \mid f_{\modelM}(x)=g_{\modelM}(x) \} \] \end{mpo-definition} \begin{mpo-exemple}\label{ex:gazparfait} Associés à la notion de modèle à observables, les modèles équationnels sont fréquents en physique. À ce titre, l'équation la plus couramment utilisée pour caractériser les gaz parfaits illustre la définition~\ref{def:modelequa}. D'un point de vue macroscopique, l'état de $n$ moles d'un gaz parfait à l'équilibre thermodynamique est décrit par les trois observables $\obsn{Volume}$, $\obsn{Pression}$ et $\obsn{Température}$. On peut construire le modèle $\model{M}{\it gaz}$ des gaz parfaits dont l'ensemble des états est donné par: $$ E_{\model{M}{\it gaz}} = \{ (V,P,T) \in \dom_{\obsn{Volume}} \times \dom_{\obsn{Pression}} \times \dom_{\obsn{Température}} \mid PV=nRT \} $$ où $R =$ \SI{8,3144621}{\joule\per\kelvin\per\mole} représente la constante des gaz parfaits. Le modèle $\model{M}{\it gaz}$ est donc un modèle équationnel caractérisé par le couple de fonctions $$ \langle (V,P,T) \mapsto P V, (V,P,T) \mapsto n R T \rangle. $$ \end{mpo-exemple} \subsubsection{Modèle à observables privilégiées} Les classes de modèles que nous avons données jusqu'ici correspondent à la distinction d'un sous-ensemble admissible de faits à partir d'un univers plus grand. Avec cette nouvelle classe, nous commençons à nous intéresser aux modèles dont l'ensemble associé peut être enrichi d'une structure mathématique particulière provenant d'une propriété qu'il exhibe. Dans ce premier exemple, on s'intéresse aux modèles à observables dont le comportement est entièrement déterminé par une partie de ses observables, que nous appellerons \emph{observables privilégiées}. \begin{mpo-definition}[Modèle à observables privilégiées]\label{def:modfct} Soient $\modelM = \langle \sig_{\modelM}, \bhv_{\modelM} \rangle$ un modèle avec observables $I$ (\ie $\sig_{\modelM} = \prod_{i\in I} \dom_i$) et $J \subset I$ un sous-ensemble d'observables. Le modèle $\modelM$ est \emph{à observables privilégiées} $J$ si, et seulement si, $$ \forall b_1,b_2 \in \bhv_{\modelM}\quad \pi_J(b_1) = \pi_J(b_2) \Rightarrow b_1 = b_2 $$ \end{mpo-definition} Cette définition n'est pas sans rappeler quelques concepts propres au domaine des bases de données relationnelles, introduites par E. F. Codd dans~\cite{codd_relational_1970}. Un modèle à observables $\modelM$ est très proche d'une relation, au sens de l'algèbre relationnelle, avec sa signature $\sig_{\modelM}$ pour \emph{schéma} et son comportement $\bhv_{\modelM}$ comme \emph{extension}, l'ensemble des tuples de la relation. Les observables privilégiées sont elles à rapprocher de la notion de \emph{clé primaire} (ou plus précisément de \emph{super-clé}): dans un modèle à observables privilégiées, chaque $p \in \prod_{j\in J} \dom_j$ identifie de manière unique un tuple de $\bhv_{\modelM}$ s'il existe. %% Plus précisément, c'est à la notion de \emph{dépendance fonctionnelle} que correspondent les observables privilégiées. En effet, l'équation de la définition décrit l'existence d'une fonction codée au sein de $\bhv_{\modelM}$. \begin{mpo-exemple} En reprenant le modèle $\model{M}{\it gaz}$ de l'exemple~\ref{ex:gazparfait}, il est possible de remarquer que l'équation des gaz parfaits permet de déterminer sans ambiguïté n'importe laquelle de ces observables à partir des deux autres. %% Nous pouvons donc montrer qu'à partir de $\model{M}{\it gaz}$, trois modèles à observables privilégiées reposant sur les trois dépendances fonctionnelles peuvent êtres construits: $(\obsn{Volume}, \obsn{Pression} \rightarrow \obsn{Température})$, $(\obsn{Température}, \obsn{Pression} \rightarrow \obsn{Volume})$ et $(\obsn{Température}, \obsn{Volume} \rightarrow \obsn{Pression})$. \end{mpo-exemple} \subsubsection{Modèle dynamique} L'étude des \emph{systèmes dynamiques} porte sur l'évolution des états du système au cours du temps. Usuellement, les aspects temporels sont modélisés par l'action du temps sur l'état du système. %% Cette action repose sur la nature monoïdale~\cite{giunti_dynamical_2012} de l'ensemble utilisé pour représenter le temps. %% Un \emph{monoïde} est un triplet $ \Time = \langle D_{\Time}, 0_{\Time}, +_{\Time} \rangle$ (noté ici additivement) tel que $D_{\Time}$ est un ensemble arbitraire, $+_{\Time}$ est une loi de composition interne binaire \emph{associative} ($\forall x,y,z \in D_{\Time}, x +_{\Time} (y +_{\Time} z) = (x +_{\Time} y) +_{\Time} z$) et munie d'un élément \emph{neutre} $0_{\Time}$ ($\forall x \in D_{\Time}, 0_{\Time} +_{\Time} x = x +_{\Time} 0_{\Time} = x$). %% Dans le cadre de la modélisation du temps, les éléments de $D_{\Time}$ correspondent à des \emph{durées} et la loi de composition fournit un moyen de cumuler ces \emph{durées}. %% L'\emph{action} d'un monoïde sur un ensemble arbitraire $E$ est une fonction $\Phi: E \times D_{\Time} \rightarrow E$ telle que $\forall x \in E, \forall \delta_1, \delta_2 \in D_{\Time}$: $$ \Phi(x, 0_{\Time}) = x \qquad \qquad \Phi(\Phi(x,\delta_1), \delta_2) = \Phi(x,\delta_1 +_{\Time} \delta_2) $$ En interprétant les éléments de $E$ comme une modélisation des états d'un système, l'action $\Phi$ spécifie une fonction de transition précisant comment, après une durée $\delta\in D_{\Time}$, le système passe d'un état $x \in E$ à un nouvel état $\Phi(x,\delta)$. Cette définition très générale n'impose aucune propriété particulière sur le monoïde utilisé pour modéliser le temps. On retrouve naturellement les modèles de temps classiques, en prenant l'ensemble des réels pour modéliser un temps continu ou l'ensemble des entiers pour modéliser un temps discret. Mais cette définition s'applique également dans des cas moins courants. Par exemple, considérons un automate à états finis, décrivant les transitions d'état en état à la lecture d'un mot construit à partir d'un alphabet, disons $\Sigma = \{a,b\}$. On peut interpréter $\Sigma^*$, le monoïde libre engendré par les lettres de l'alphabet, comme une modélisation d'un temps dont les durées sont des accumulations de $a$ et de $b$. On peut montrer facilement que la fonction de transition de l'automate spécifie une action de monoïde. Ce qui est intéressant dans cette description est que le temps n'est pas ici un temps linéaire où les «instants» s’enchaînent d'une façon totalement ordonnée, mais un temps arborescent dont les branches peuvent être interprétées comme différentes possibilités d’exécutions. Cet exemple rend bien compte de la souplesse de cette définition. Nous proposons de caractériser les \emph{modèles dynamiques} en s'inspirant de la définition des système dynamiques\footnote{On remarquera qu'ici le terme \emph{système} ne correspond pas à la notion que nous avons définie section~\ref{sec:formalism-model-system} mais est plus à rapprocher de celle d'un \emph{formalisme} permettant la \emph{modélisation} de la dynamique d'un \emph{système}.} donnée dans~\cite{giunti_dynamical_2012}. %% \begin{mpo-definition}[Modèle dynamique]\label{def:moddyna} Un \emph{modèle dynamique} est un modèle $\modelM$ caractérisé par un triplet $\langle \bhv_{\modelM}, \Time_{\modelM}, \Phi_{\modelM} \rangle$ tel que %% \begin{enumerate} \item $\Time_{\modelM}$ est un monoïde appelé \emph{modèle du temps} et dont les éléments $\delta \in D_{\Time}$ sont appelés \emph{durées}, \item $\bhv_{\modelM}$ est un ensemble non vide appelé l'\emph{espace des états} et dont les éléments sont appelés \emph{états}, \item $\Phi_{\modelM}$ est une action de monoïde de $\Time_{\modelM}$ sur $\bhv_{\modelM}$ appelée \emph{fonction de transition}. \end{enumerate} %% L'ensemble des faits de $\modelM$ est donné par: $$ E_{\modelM} = \{ (x,\delta,\Phi(x,\delta)) \mid x \in \bhv_{\modelM}, \delta \in \Time_{\modelM} \} $$ \end{mpo-definition} Dans cette définition, chaque triplet d'un modèle dynamique $(x,\delta,x')$ représente la transition du système de l'état $x$ vers l'état $x'$ après une durée $\delta$. Nous remarquerons également que $E_{\modelM}$ spécifie exactement la fonction $\Phi_{\modelM}$: un modèle dynamique est donc également un modèle à observables privilégiées tel que décrit définition~\ref{def:modfct}, les observables privilégiées étant ici le temps et les conditions initiales. \begin{mpo-exemple}\label{ex:malthus} Le modèle de croissance Malthusien décrit l'évolution de la taille d'une population suivant un taux de natalité $r$ sans aucune autre restriction. Ce type de système présente une croissance exponentielle répondant à l'équation: $$ P(t) = P_0 e^{rt} $$ où $t$ représente le temps, $P_0$, le nombre d'individus constituant initialement la population, et $P(t)$, la taille de la population après une période de $t$ unités de temps. %% Cette caractérisation décrit très clairement un système dynamique tel que nous l'avons évoqué ci-dessus et peut être représentée par le modèle dynamique $\model{M}{\it malthus}$ dont l'ensemble des faits est le suivant: $$ E_{\model{M}{\it malthus}} = \{(P,t,P e^{rt})\mid P,t\in\mathbb{R}^+\} $$ Le modèle du temps $\langle \mathbb{R}^+, 0, + \rangle$ correspond à la modélisation continue classique utilisant les réels et l'addition standard. L'état du système est également représenté par un élément de $\mathbb{R}^+$ correspondant, cette fois-ci, à un nombre d'individus. \end{mpo-exemple} \subsubsection{Modèle à base de champ} La notion de champ est particulièrement répandue en modélisation. Un champ associe une donnée à chaque point d'un espace. Lorsque nous parlons de champ, un rapprochement apparaît avec les champs scalaires ou vectoriels de la physique classique où les données représentent des quantités physiques, telles que la température ou la vitesse de déplacement d'un fluide, cependant, suivant les contextes, les champs prennent des formes différentes. D'un point de vue général, on parle de champ lorsque l'on est en présence d'une population d'objets de même nature, comme les cellules d'un automate cellulaire, les agents d'un système multi-agent, les ou les places d'un réseau de Petri, que l'on caractérise individuellement par un certain état, l'état d'une cellule, l'état d'un agent, l'état d'une place, etc. Cette population décrit également une organisation mettant en relation les objets les uns par rapport aux autres. On parle alors d'un espace et des points de cette espace. Bien souvent, la valeur associée en chaque point est également structurée et on demande au champ de varier \emph{continûment} sur cet espace, c'est-à-dire sans présenter de rupture par rapport à l'organisation des valeurs. Mathématiquement, ces considérations sont affiliées aux notions d'espaces topologiques et de fonctions continues. %% Un \emph{espace topologique} $\mathbb{S}$ est la donnée d'un ensemble de \emph{points} $E_{\mathbb{S}}$, d'un ensemble d'\emph{ouverts} $\Omega_{\mathbb{S}} \subset \mathbb{2}^{E_{\mathbb{S}}}$, contenant $E_{\mathbb{S}}$ et $\emptyset$, et clos par union arbitraire et par intersection finie. %% Une \emph{fonction continue} d'un espace topologique vers un autre est une fonction entre les points qui respectent ces structures: la préimage d'un ouvert doit être un ouvert. Ces définitions peuvent être interprétées en termes logiques. En tant que sous-ensembles, les ouverts peuvent être compris comme des prédicats offrant un vocabulaire pour classer les points les uns par rapport aux autres. L'union et l'intersection correspondent respectivement aux opérations de disjonction et de conjonction dans cette classification. %% La continuité impose que le vocabulaire de l'espace d'arrivée corresponde au vocabulaire de l'espace de départ. Ainsi, en comprenant un ouvert comme une variation autour d'un point suivant une certaine propriété, la préimage de cette variation sera une variation autour des préimages du point considéré. %% L'exemple du champ de température illustre cette idée de variation: considérons l'espace euclidien comme espace de départ et les réels comme espace d'arrivée avec leurs topologies usuelles, c'est-à-dire où une variation autour d'une valeur revient à prendre un intervalle ouvert autour de cette valeur\footnote{Pour être exact, il s'agit ici d'une base de la topologie usuelle.}. Ainsi, pour un champ de température donné, si l'on considère l'ensemble $P$ de tous les points de température $20°C$, les points de températures comprises entre $19°C$ et $21°C$ seront «autour» de ceux de $P$. %% Cette idée s'applique également pour un réseau d'interactions entre agents: plus deux agents sont dans des états «proches», c'est-à-dire partageant de plus en plus de propriétés, plus leurs environnements d'interactions seront comparables. Nous proposons de caractériser les \emph{modèles à base de champ} comme la représentation d'une fonction continue. %% \begin{mpo-definition}[Modèle à base de champs]\label{def:modfield} Un \emph{modèle à base de champ} est un modèle $\modelM$ caractérisé par un triplet $\langle \Space_{\modelM}, \mathbb{V}_{\modelM}, f_{\modelM} \rangle$ tel que \begin{enumerate} \item $\Space_{\modelM}$ et $\mathbb{V}_{\modelM}$ sont des espaces topologiques, et \item $f_{\modelM}:\Space_{\modelM} \rightarrow \mathbb{V}_{\modelM}$ est une fonction continue. \end{enumerate} %% L'ensemble des faits de $\modelM$ est donné par: $$ E_{\modelM} = \{ (x,f(x)) \mid x \in \Space_{\modelM} \} $$ \end{mpo-definition} %% L'avantage du point de vue topologique est qu'il autorise tout type de champ. En effet, n'importe quelle fonction entre deux ensembles pourra être rendue continue en utilisant par exemple la topologie discrète\footnote{ La topologie discrète est celle où tout sous-ensemble de points est un ouvert. Il ne faut cependant pas la comprendre comme \textbf{la} topologie des modèles discrets.} sur l'espace de départ. La qualité d'un modèle à base de champ viendra du choix judicieux des topologies utilisées. Nous remarquerons enfin que la définition fonctionnelle de $E_{\modelM}$ permet d'inclure les modèles à base de champs comme cas particulier de modèles à variables privilégiées. \begin{mpo-exemple} En théorie des réseaux sociaux, la séparation, c'est-à-dire la longueur de la plus petite chaîne de connaissances sociales permettant de relier un individu à un autre, est une mesure importante. Elle est par exemple à la base de la théorie des \emph{six degrés de séparation}~\cite{travers_small_1967} établissant que toute personne sur la planète est reliée socialement à n'importe quelle autre par une chaîne de longueur au plus 6. Il est possible de modéliser la séparation comme un champ de distance sur le graphe des liens sociaux. Pour un graphe donné $G$, le champ de distance à un sommet $v_0$ associe à chaque sommet $v$ de $G$ la longueur $d(v)$ du plus court chemin entre $v_0$ et $v$. Le champ $d$ se présente donc comme une fonction des sommets de $G$ dans $\mathbb{N}$. Il est possible de considérer la continuité de $d$ en associant au graphe $G$ et à $\mathbb{N}$ leur \emph{topologie digitale}. Pour cette topologie, notée $\Omega^{\rm dig.}_G$, un ouvert d'un graphe $G$ (vu comme un ensemble de sommets et d'arcs) est défini comme une union d'ouverts de base: \begin{itemize} \item pour tout arc $e$, le singleton $\{e\}$ est un ouvert; \item pour tout sommet $v$, l'ensemble $\{v\} \cup \{ e \in G \mid v \prec e \}$, où $v \prec e$ signifie que $e$ est incident à $v$ dans $G$, est un ouvert. \end{itemize} Les entiers peuvent être munis de la même topologie en considérant $\mathbb{N}$ comme un graphe dont les sommets sont les entiers et où un arc $\{n,n+1\}$ relie chaque entier $n$ à son successeur. On peut remarquer que pour toute paire de sommets voisins $(v_1,v_2)$, le champ de distance ne varie qu'au plus de 1: $$ |d(v_1) - d(v_2)| \leq 1 $$ La fonction $d$ peut alors être étendue aux arcs de telle sorte que pour tout arc $e$ entre $v_1$ et $v_2$, $$ d(e) = \left\{ \begin{array}{ll} d(v_1) & \textnormal{si } d(v_1) = d(v_2) \\ \{d(v_1),d(v_2)\} & \textnormal{sinon} \end{array} \right. $$ Ainsi, la fonction $d$ est continue et peut être utilisée pour constituer un modèle à base de champ $\model{M}{\it sép.}$ de la séparation d'un réseau par: $$ \Space_{\model{M}{\it sép.}} = \langle G, \Omega^{\rm dig.}_G \rangle \qquad \mathbb{V}_{\model{M}{\it sép.}} = \langle \mathbb{N}, \Omega^{\rm dig.}_{\mathbb{N}} \rangle \qquad f_{\model{M}{\it sép.}} = d $$ \end{mpo-exemple} \subsubsection{Modèle à structure dynamique} Les classes de modèles que nous avons proposées jusqu'ici ne sont pas indépendantes les unes des autres. Comme nous l'avons déjà vu par exemple, les modèles dynamiques et à base de champ sont des cas particuliers de modèles à observables privilégiées. Ces deux classes s'intéressent en fait à deux aspects qui reviennent fréquemment dans les modélisations, le \emph{temps} et l'\emph{espace}, et il est classique de retrouver ces deux aspects en même temps au sein du même modèle. L'intersection entre les modèles dynamiques et les modèles à base de champ n'est pas vide, loin s'en faut. Il est intéressant de noter que l'interdépendance entre temps et espace nous amène en fait à considérer quatre types de modélisation à variables privilégiées spatio-temporelles: \begin{enumerate} \item $\Space \times \Time \rightarrow \dots$\\ L'espace ne varie pas dans le temps et le temps est le même partout dans l'espace. Ainsi, \emph{temps} et \emph{espace} sont indépendants. %% On retrouve par exemple ce type de modèles en physique classique ou avec les automates cellulaires. \item $\Space \rightarrow (\Time \rightarrow \dots)$ %\antoine{La bonne notation avec types dépendants $\prod_{p:\Space} %\(\Time(p) rightarrow \dots)$}\\ Le temps varie d'un point de l'espace à un autre. Autrement dit, chaque point à son horloge. Ce cas est représentable par un modèle à base de champs qui associe à chaque point de l'espace un modèle dynamique. %% Par exemple, une étude de charge dans une grille de calcul amènera à ce type de modélisation: les processeurs tournent chacun à leur propre vitesse alors que la structure du réseau reste fixe. \item $\Time \rightarrow (\Space \rightarrow \dots)$ %\antoine{La bonne notation avec types dépendants $\prod_{\delta:\Time} %(\Space(\delta) \rightarrow \dots)$}\\ L'espace varie au cours du temps: à chaque instant, le domaine spatial est différent. Une représentation reposant sur un modèle dynamique dont l'espace des états sera constitué de modèles à base de champ, sera privilégiée. %% Nous appelons ces systèmes, des systèmes dynamiques à structure dynamique. \item $\SpaceTime \rightarrow \dots$\\ L'espace et le temps forment ici un tout, $\SpaceTime$, qui ne peut être dissocié. En physique, la relativité est une parfaite illustration de l'étude de ce type de système. Bien qu'il soit possible de n'observer que l'action du temps sur un point de l'espace en suivant les lignes d'univers, la description qui en résulte n'est pas complète. En effet, un changement d'observation, c'est-à-dire le passage d'une ligne d'univers à une autre, modifie la perception du temps \emph{et} de l'espace sur les autres événements. \end{enumerate} \subsubsection{Modèle probabiliste} Nous terminons la description de ces quelques classes de modèles en évoquant les systèmes que nous souhaitons modéliser de façon probabiliste. Pour ces modélisations, le formalisme repose essentiellement sur les notions d'espace mesurable et de probabilité. Formellement, un espace mesurable $\mathbb{X}$ est un ensemble $X_{\mathbb{X}}$ muni d'une \emph{tribu} $\mathcal{A_{\mathbb{X}}}$, c'est-à-dire d'un ensemble de sous-ensembles de $X_{\mathbb{X}}$ contenant $X_{\mathbb{X}}$, clos par complémentation et par union dénombrable. Dans le cadre de la théorie de la probabilité, $X_{\mathbb{X}}$ est appelé un \emph{univers}, représentant l'ensemble de toutes les résultats d'une expérience donnée, et $\mathcal{A}_{\mathbb{X}}$ l'ensemble des événements. Une mesure de probabilité $\mathbb{P}$ associe à chaque événement sa probabilité, c'est-à-dire une valeur de $[0,1]$ telle que $\mathbb{P}(X_{\mathbb{X}})=1$ et $\mathbb{P}(\cup_i A_i)=\sum_i \mathbb{P}(A_i)$ pour toutes familles dénombrables d'événements disjoints $\{A_i\}$. Un modèle peut être la représentation d'une expérience probabiliste: nous parlerons ici de \emph{modèle probabiliste}. %% \begin{mpo-definition}[Modèle probabiliste]\label{def:probmodel} Un \emph{modèle probabiliste} est un modèle $\modelM$ caractérisé par un couple $\langle \mathbb{X}_{\modelM}, \mathbb{P}_{\modelM} \rangle$ tel que \begin{enumerate} \item $\mathbb{X}_{\modelM} = \langle X_{\modelM}, \mathcal{A}_{\modelM} \rangle$ est un espace mesurable, et \item $\mathbb{P}_{\modelM}$ est une probabilité sur $\mathbb{X}_{\modelM}$. \end{enumerate} L'ensemble des faits de $\modelM$ est donné par: $$ E_{\modelM} = \{ (A,\mathbb{P}_{\modelM}(A)) \mid A \in \mathcal{A}_{\modelM} \} $$ \end{mpo-definition} On remarquera que cette définition décrit les modèles probabilistes comme des modèles à observables privilégiées particuliers. \begin{mpo-exemple}\label{ex:malthus2} La croissance de Malthus décrite exemple~\ref{ex:malthus} peut être modélisée par un processus aléatoire reposant sur une simple règle de reproduction, semblable à une division cellulaire: \begin{equation} X \stackrel{r}\longrightarrow 2 X\label{eq:divrule} \end{equation} où $X$ représente un individu et $r$ est le taux de division des individus. Étant donnée une population composée de $N_0$ individus, nous cherchons à décrire le temps d'attente avant la prochaine division. On suppose pour cela que deux divisions ne peuvent être simultanées et que les individus se divisent de façon indépendante. À partir de la règle~(\ref{eq:divrule}), nous posons la probabilité infinitésimale $r d\tau$ qu'un individu se divise à l'instant $\tau$, c'est-à-dire durant l'intervalle de temps infinitésimal $[\tau,\tau + d\tau]$. Ces observations nous permettent de déduire les probabilités suivantes: \begin{itemize} \item $r N d\tau$, la probabilité infinitésimale d'une division pour une population de $N$ individus (indépendants par hypothèse) à l'instant $\tau$, \item $e^{-r N_0 \tau}$, la probabilité qu'aucune division n'ait lieu durant l'intervalle $[0,\tau]$, et \item $N_0 r e^{-r N_0 \tau} d\tau$, la probabilité infinitésimale que la prochaine division ait lieu à l'instant $\tau$. \end{itemize} Cette dernière expression nous amène à considérer la probabilité que la prochaine division se produise durant un certain intervalle de temps, posant ainsi les termes d'un modèle probabiliste $\model{M}{\it div.}$ de la croissance Mathusienne. Pour cela, considérons %% d'une part l'espace mesurable $\mathbb{X}_{\model{M}{\it div.}}$ comme étant l'ensemble des réels positifs $\mathbb{R}^+$ muni de sa tribu Borélienne classique, c'est-à-dire engendrée par les intervalles fermés $[t_1,t_2]$, %% et d'autre part la mesure de probabilité: $$ \mathbb{P}_{\model{M}{\it div.}}([t_1,t_2]) = \int_{t_1}^{t^2} r N_0 e^{-r N_0 \tau} d\tau = [ -e^{-r N_0 \tau} ]_{t_1}^{t_2} = e^{-r N_0 t_1} - e^{-r N_0 t_2} $$ L'ensemble des faits de $\model{M}{\it div.}$ est alors donné par: $$ E_{\model{M}{\it div.}} = \{ ([t_1,t_2], \mathbb{P}_{\model{M}{\it div.}}([t_1,t_2])) \mid t_1,t_2 \in \mathbb{R}^+\} $$ \end{mpo-exemple} \FloatBarrier \subsection{Modélisations d'un système proie-prédateur}\label{sec:preypred} Nous proposons dans cette dernière section d'illustrer comment les différentes classes de modèles que nous venons d'énumérer permettent plusieurs compréhensions d'un même système. Nous nous intéressons en particulier à la modélisation des systèmes proie-prédateur. Un système proie-prédateur est un système dans lequel deux populations, celles des proies et celle des prédateurs, varient à cause de leurs interactions, dont la principale est la prédation. Voici deux exemples de ces systèmes: \begin{itemize} \item La variation du nombre d'individus dans les populations de lynx et de lièvres des neiges, dont un modèle expérimental a été constitué par la Compagnie de la Baie d'Hudson~\cite{odum_fundamentals_1959}. \item La variation du nombre d'individus dans les populations de loups et d'élans, dont un modèle expérimental a été constitué par le parc national d'Isle Royale~\cite{peterson_ecological_1997}. \end{itemize} En suivant au cours du temps les tailles des deux populations, il est possible d'observer des oscillations couplées plus ou moins régulières. À certaines périodes, un déficit en prédateurs permet aux proies de se développer, alors qu'à d'autres périodes les prédateurs dominent et les proies se font rares. Ces oscillations sont explicables en considérant le comportement des proies et des prédateurs à partir des trois processus suivants: \begin{description} \item[Naissance:] Les proies se reproduisent en fonction des ressources disponibles, des individus apparaissent avec un certain taux de natalité. \item[Mort:] Les proies et les prédateurs n'étant pas éternels, les individus disparaissent avec un certain taux de mortalité. \item[Prédation:] Il s'agit de l'activité principale des prédateurs et la seule interaction considérée entre les deux populations; elle est nécessaire à la reproduction des prédateurs et induit un facteur de mortalité supplémentaire pour les proies. \end{description} En 1920, A. J. Lotka propose dans~\cite{lotka_analytical_1920} une description formelle d'un tel modèle à travers un système de réactions autocatalytiques, à la façon d'un jeu de réaction chimique. L'étude de ce type de systèmes l'amena quelques années plus tard à proposer une analyse de la dynamique de ce système sous la forme d'un système d'équations différentielles couplées~\cite{lotka_elements_1925}. Le même type d'équations furent également proposées indépendamment par V. Volterra à la même période~\cite{volterra_fluctuations_1926}. Depuis, plusieurs autres modèles plus élaborés ont été proposés pour prendre en considération d'autres facteurs environnementaux, ou encore l'incidence de l'organisation spatiale des populations. Les études des systèmes proies-prédateurs nous offrent ainsi un échantillon de modèles nous permettant d'illustrer notre approche. Nous allons dans la suite de cette section décrire quelques modèles de systèmes proie-prédateur repris des travaux de A.J. McKane~\cite{mckane_predator-prey_2005,lugo_quasicycles_2008}. \paragraph{Modèle \emph{à la} Volterra.} % Dans cette description, nous considérons que le système est décrit par deux observables représentant les densités de population des proies et des prédateurs. En notant, $U_V$ et $U_P$ respectivement ces densités, les trajectoires du système au cours du temps sont décrites par le système d'équations différentielles suivant: \begin{equation} \left\{ \begin{array}{rcl} \displaystyle\frac{dU_V}{dt} &=& r U_V (1 - \displaystyle\frac{U_V}{K}) - g U_P U_V\\[1.5ex] \displaystyle\frac{dU_P}{dt} &=& n U_V U_P - \mu U_P \end{array} \right. \label{eq:volterra} \end{equation} Ce modèle dépend des paramètres $r$, $K$, $g$, $n$ et $\mu$. Comme précisé dans~\cite{mckane_predator-prey_2005}, on rencontre souvent sous le nom de modèle de Lotka-Volterra ce même système où le terme $U_V/K$ est absent. Le coefficient $K$ quantifie la capacité limite de l'environnent à accueillir des individus. Cette formalisation permet de constituer un modèle $\model{M}{V}$ \emph{dynamique à observables}. On définit la signature du modèle par: $$ \sig_{\model{M}{V}} = \dom_{\obsn{Initial}} \times \dom_{\obsn{Temps}} \times \dom_{\obsn{Etat}} $$ où $\dom_{\obsn{Initial}} = \dom_{\obsn{Etat}} = \mathbb{R}^+ \times \mathbb{R}^+$ correspondant à des couples \emph{(densité de proie, densité de prédateur)} et $\dom_{\obsn{Temps}} = \mathbb{R}^+$ avec sa structure de monoïde usuelle représentant des durées. L'ensemble des faits est donné comme un sous-ensemble de $\sig_{\model{M}{V}}$ par: $$ E_{\model{M}{V}} = \left\{ (U_V(0),U_P(0),t,U_V(t),U_P(t)) \mid U_V, U_P \textnormal{ sol. de (\ref{eq:volterra})} \right\} \subset\sig_{\model{M}{V}} $$ Une \emph{solution de (\ref{eq:volterra})} correspond à tout couple de fonctions du temps vérifiant l'équation; toutes les conditions possibles sont prises en compte. Nous remarquons de plus que la résolution de l'équation se fait une fois les paramètres fixés. Ainsi, à chaque jeu de paramètres correspondra un modèle. En tant que modèle dynamique, on peut extraire de la définition de $E_{\model{M}{V}}$ une action de monoïde donnée par: $$ \Phi_{\model{M}{V}}( [U_V(0),U_P(0)], t ) = [ U_V(t),U_P(t) ] $$ pour chaque élément de $E_{\model{M}{V}}$. \paragraph{Modèle \emph{à la} Volterra spatialisé.} % Dans sa version spatialisée, les densités de population sont distribués sur un espace particulier, disons l'espace euclidien de dimension 2 $\mathbb{E}^2$, représentant la région dans laquelle les individus peuvent se déplacer. En d'autres termes, les densités $U_V$ et $U_P$ deviennent des champs, respectivement $u_V$ et $u_P$, définis sur $\mathbb{E}^2$. Les équations sont modifiées en ajoutant un terme de diffusion modélisant ces déplacements: \begin{equation} \left\{ \begin{array}{rcl} \displaystyle\frac{du_V}{dt} &=& r u_V (1 - \displaystyle\frac{u_V}{K}) - g u_P u_V + D_V (\nabla^2 u_V + u_V \nabla^2 u_P - u_P \nabla^2 u_V) \\[1.5ex] \displaystyle\frac{du_P}{dt} &=& n u_V u_P - \mu u_P + D_P (\nabla^2 u_P + u_P \nabla^2 u_V - u_V \nabla^2 u_P) \end{array} \right. \label{eq:spacevolterra} \end{equation} où $D_V$ et $D_P$ sont les coefficients de diffusion respectifs des populations de proies et de prédateurs, et $\nabla^2$ dénote le Laplacien. Suivant les remarques de~\cite{lugo_quasicycles_2008}, les termes exprimant une diffusion croisée en $(u_V \nabla^2 u_P - u_P \nabla^2 u_V)$ entre les deux populations sont peu conventionnels mais correspondent à la considération d'une limitation de la capacité d'accueil de l'environnement. Ces termes disparaissent lorsque cette limite est levée. Il est possible d'associer à ce nouveau système d'équations une extension du modèle non spatialisé $\model{M}{V}$, un modèle $\model{M}{SV}$ \emph{dynamique à observables et à base champs}. L'ensemble des faits du modèle se construit de la même façon que précédemment en prenant en compte l'espace. $$ E_{\model{M}{SV}}= \{\; (t,x,y,u_V(0,x,y),u_P(0,x,y),u_V(t,x,y),u_P(t,x,y)) \mid u_V, u_P \textnormal{ sol. de (\ref{eq:spacevolterra})} \;\} $$ En tant que modèle dynamique, on peut extraire de cette définition une action de monoïde donnée par: $$ \Phi_{\model{M}{SV}}( [(x,y) \mapsto u_V(0,x,y),(x,y) \mapsto u_P(0,x,y)], t) = [(x,y) \mapsto u_V(t,x,y), (x,y) \mapsto u_P(t,x,y)] $$ agissant sur l'ensemble des fonctions deux fois différentiables de $\mathbb{E}^2$ dans $\mathbb{R}^+ \times \mathbb{R}^+$, pour chaque élément de $E_{\model{M}{SV}}$. En tant que modèle à base de champs, une fonction continue donnée par: $$ f_{\model{M}{SV}}(t,x,y) = (u_V(0,x,y),u_P(0,x,y),u_V(t,x,y),u_P(t,x,y)) $$ peut être extraite de la définition de $E_{\model{M}{SV}}$ en munissant l'espace de départ $\mathbb{E}^2 \times \mathbb{R}^+$ et l'espace d'arrivée $\mathbb{R}^+ \times \mathbb{R}^+ \times \mathbb{R}^+ \times \mathbb{R}^+$, de leurs topologies habituelles. %% Une autre approche mettant en avant l'indépendance temps/espace telle que nous l'avons décrite plus haut, est donnée par la définition suivante: $$ f_{\model{M}{SV}}(x,y) = ([u_V(0,x,y),u_P(0,x,y)],t) \mapsto [u_V(t,x,y),u_P(t,x,y)] $$ allant de $\mathbb{E}^2$ muni de sa topologie classique vers un espace d'actions de monoïde. La topologie de cet espace est héritée de celle sur $\mathbb{E}^2$. \paragraph{Modèle \emph{à la} Lotka.} % Cette approche, radicalement différente des précédentes, est fondée sur les premières descriptions de A. J. Lotka à base de réactions chimiques. On assimile le système à une solution chimique de taille fixe composée de $N$ molécules prises parmi trois types d'éléments différents: $V$ représentant une proie, $P$ pour un prédateur, et $E$ une place vide. Les interactions entre les trois espèces chimiques sont régies par les réactions suivantes: \begin{equation} \begin{array}{c} V + E \overset{b}{\longrightarrow} 2\,V \\ P + V \overset{p_1}{\longrightarrow} 2\,P \qquad P + V \overset{p_2}{\longrightarrow} P + E \\ V \overset{d_V}{\longrightarrow} E \qquad P \overset{d_P}{\longrightarrow} E \end{array} \end{equation} On reconnaît facilement les trois processus décrits en début de section: la naissance d'une proie représentée comme une division cellulaire consommant une place vide, la prédation qui occasionne certaine fois la reproduction d'un prédateur, et la mort des deux types d'individus donnant de nouvelles places vides. Chaque réaction est paramétrée par une constante, appelée \emph{constante stochastique\footnote{On reprend ici le vocabulaire de D.T. Gillespie qui discute dans~\cite{gillespie_exact_1977} de la différence entre constante stochastique et constante cinétique.}}. Cette constante représente le taux avec lequel le processus correspondant a lieu. En terme de probabilité, $d_V d\tau$ est par exemple la probabilité infinitésimale qu'une proie meurt de sa belle mort (c'est-à-dire sans avoir été chassée) pendant l'intervalle de temps infinitésimal $d\tau$. D. T. Gillespie a proposé dans~\cite{gillespie_exact_1977} une méthode de simulation stochastique exacte de système de réactions chimiques sous hypothèse d'homogénéité. Nous pouvons ainsi considérer un modèle \emph{dynamique probabiliste} des systèmes proie-prédateur $\model{M}{L}$ à partir des trajectoires simulées. De façon informelle, l'ensemble des faits correspond à toutes ces trajectoires. Chacune de ces trajectoires peut être pondérée par une probabilité d'occurrence au sein des trajectoires partageant les mêmes conditions initiales. Ainsi, un sous modèle probabiliste au sens de la définition~\ref{def:probmodel} peut être établi pour chaque population initiale. Nous préférons ici mettre l'accent sur les aspects temporels du modèle. Ainsi, nous établissons un ensemble de faits, équivalent à celui que nous venons d'évoquer. Pour se faire, nous considérons d'une part la probabilité $P(n_V,n_P,t|n_V^0,n_P^0)$ que \emph{le système soit composé de $n_V$ proies et $n_P$ prédateurs au temps $t$ considérant une population initiale de $n_V^0$ proies et $n_P^0$ prédateurs}, et d'autre part, le domaine \emph{fini} $\dom_{\obsn{Pop}}$ des populations possibles: $$ \dom_{\obsn{Pop}} = \{ (n_V,n_P)\in \mathbb{N}^2 \mid n_V + n_P \le N \} $$ Considérant que les densités de probabilité sur $\dom_{\obsn{Pop}}$ sont des fonctions $d:\dom_{\obsn{Pop}} \rightarrow [0,1]$ telles que $$ \sum_{s\in\dom_{\obsn{Pop}}} d(s) = 1, $$ l'action de monoïde\footnote{On montre facilement qu'il s'agit d'une action de monoïde en remarquant que $$ P(s',0|s) = \delta_s^{s'} \qquad P(s,t_1 + t_2|s'') = \sum_{s'\in\dom_{\obsn{Pop}}} P(s,t_2|s') P(s',t_1|s'') $$} de $\mathbb{R}^+$ est défini sur les densités de probabilité par: $$ \Phi_{\model{M}{L}}(d, t) = s \mapsto \sum_{s' \in \dom_{\obsn{Pop}}} d(s') P(s,t|s') $$ pour finalement obtenir la description de $\model{M}{L}$ comme un modèle dynamique. \paragraph{Modèle \emph{à la} Lotka spatialisé.} % L'objet principal présenté dans~\cite{lugo_quasicycles_2008} est une version spatialisée du modèle à base de réactions chimiques $\model{M}{L}$ que nous venons de voir. L'extension consiste en deux points: \begin{enumerate} \item Le modèle $\model{M}{L}$ est copié sur chaque position d'une organisation spatiale discrète $\Omega$. Afin de se rapprocher du modèle $\model{M}{SV}$, on définit $\Omega$ comme un ensemble d'indices permettant d'identifier les positions d'une grille carrée à 2 dimension. Chaque molécule est alors positionnée: $V^i$, $P^i$ et $E^i$ correspondent respectivement à une proie, un prédateur et une place libre en position $i \in \Omega$. \item Les réactions chimiques de $\model{M}{L}$ sont également positionnées sur $\Omega$, et deux règles de déplacement sont ajoutées pour simuler le mouvement des individus: \begin{equation} \begin{array}{c} V^i + E^i \overset{b}{\longrightarrow} 2\,V^i \\ P^i + V^i \overset{p_1}{\longrightarrow} 2\,P^i \qquad P^i + V^i \overset{p_2}{\longrightarrow} P^i + E^i\\ V^i \overset{d_V}{\longrightarrow} E^i \qquad P^i \overset{d_P} {\longrightarrow} E^i\\ V^i + E^j \overset{m_V}{\longrightarrow} E^i + V^j \qquad P^i + E^j \overset{m_P}{\longrightarrow} E^i + P^j \end{array} \end{equation} pour toutes positions \emph{voisines} $i, j \in \Omega$. \end{enumerate} Cette extension formalise un nouveau modèle $\model{M}{SL}$ qui est à la fois \emph{probabiliste, dynamique et à base de champ}. Nous n'entrerons pas dans les détails de ces définitions qui restent très proches des constructions que nous avons déjà vues. Cependant, nous pouvons en conclure que les modèles $\model{M}{V}$, $\model{M}{SV}$, $\model{M}{L}$ et $\model{M}{SL}$ sont proches les uns des autres. Dans~\cite{mckane_predator-prey_2005, lugo_quasicycles_2008} se trouvent d'ailleurs les clés de ces relations, expliquant comment établir des ponts formels entre les modèles. Ainsi, on constatera que $\model{M}{V}$ décrit le comportement moyen des trajectoires de $\model{M}{L}$, alors que $\model{M}{SV}$ coïncide avec $\model{M}{V}$ lorsque les densités de populations sont spatialement homogènes. Dans la suite, nous proposons un cadre formel pour décrire ces relations. Notre construction se fonde sur la notion d'abstraction telle que celle que nous avons de mentionné rapidement entre $\model{M}{V}$ et $\model{M}{L}$, ou entre $\model{M}{V}$ et $\model{M}{SV}$. L'abstraction autorise également la composition de modèles pour obtenir des descriptions plus précises couplant des travaux initialement indépendants. Ainsi, on pourra poser la question d'un modèle permettant de coupler à la fois $\model{M}{SV}$ et $\model{M}{L}$, combinant d'un part une représentation stochastique des interactions individuelles, et la dynamique de la répartition spatiale des populations d'autre part. On pourra également s'intéresser aux relations entre ce couplage et la description proposée par $\model{M}{SL}$. La \textsc{Fig.}~\ref{fig:model-lv} synthétise cette situation. \begin{figure}[ht] \centering \includegraphics[page=1,width=.60\textwidth]{schema-lv} \caption{Comment définir le couplage des modèles $\model{M}{SV}$ et $\model{M}{L}$ ? Quel rapport existe-t-il entre ce couplage et $\model{M}{SL}$ ?} \label{fig:model-lv} \end{figure} \section{Composition des modèles}\label{sec:compmodel} Les sections~\ref{sec:multiniveau} et~\ref{sec:consmodel} nous ont amené à voir un modèle comme un ensemble de faits. De ce point de vue, la comparaison entre modèles est limitée à l'étude de leurs propriétés ensemblistes. %% Comme nous l'avons vu section~\ref{sec:multiniveau}, l'abstraction entre modèles est un élément clé de la modélisation multi-niveau. Nous proposons ici d'en faire une interprétation ensembliste permettant de raffiner et coupler différents modèles d'un même système. Ainsi, le passage d'un modèle $\model{M}{+}$ à un modèle $\model{M}{-}$ s'effectue à travers la reconnaissance d'une \emph{flèche d'abstraction} entre ces modèles définie de la façon suivante: \emph{si $\model{M}{+}$ est une abstraction de $\model{M}{-}$, alors chaque fait de $\model{M}{-}$ peut être associé à un fait de $\model{M}{+}$}. L'étude des relations entre les modèles proie/prédateur de la section~\ref{sec:preypred} illustre ce type de construction; les trajectoires stochastiques du modèle probabiliste sont associées aux trajectoires moyennes du modèle déterministe. Cette description nous amène à considérer l'ensemble des fonctions de $\model{M}{-}$ vers $\model{M}{+}$, chacune comprise comme une relation d'abstraction possible entre les deux modèles. Cependant, il est raisonnable de se demander si toutes ces fonctions sont éligibles au titre d'abstraction. Ce n'est définitivement pas le cas au regard de l'exemple des modèles de proie/prédateur. La construction de la flèche d'abstraction repose sur des techniques mathématiques précises qui assurent une cohérence entre les trajectoires stochastiques et les trajectoires déterministes. Cette cohérence vient du fait que les deux modèles développent deux compréhensions différentes du \emph{même} système, et une fonction arbitrairement choisie entre les ensembles de faits de $\model{M}{-}$ et de $\model{M}{+}$ a peu de chance de respecter ce \emph{rapport au système}. Comparer deux modèles d'un système proie-prédateur a du sens, justement car ce sont deux modèles du même système, ils parlent de la même «chose»: les faits de $\model{M}{-}$ concernant les proies sont envoyés vers des faits de $\model{M}{+}$ concernant les proies, les prédateurs de $\model{M}{-}$ vers les prédateurs de $\model{M}{+}$, le temps de $\model{M}{-}$ vers le temps de $\model{M}{+}$, l'espace de $\model{M}{-}$ vers l'espace de $\model{M}{+}$, etc. Il est raisonnable donc d'attendre que les flèches d'abstraction soient les fonctions de $\model{M}{-}$ vers $\model{M}{+}$ qui respectent la \emph{sémantique} imposée par le système. En se référant aux notations précédentes, il est clair qu'un modèle $\modelM$ ne peut être restreint qu'à son seul ensemble de faits $E_{\modelM}$. Il est nécessaire de lui associer également une sémantique $\sigma_{\modelM}$. La question qui nous est alors posée est comment formaliser cette sémantique. Nous développons ici une proposition fondée sur la définition usuelle des modèles vus comme des \emph{abstractions} du système. La sémantique $\sigma_{\modelM}$ serait alors vu comme une flèche d'abstraction au sens que nous venons d'évoquer. L'idée générale consiste donc, pour un système $S$ donné, de considérer un \emph{modèle de référence} $\model{M}{S}$ auquel tout autre modèle $\modelM$ de $S$ se rapportera par une fonction $\sigma_{\modelM}$ allant de $E_{\model{M}{S}}$ vers $E_{\modelM}$. Dans cette section, nous proposons d'utiliser la théorie des catégories pour élaborer un cadre formel suffisant à la réalisation de cette proposition. Pour plus de clarté, nous commençons par une instanciation informelle dans le cadre des sciences expérimentales. Nous introduisons ensuite les éléments de la théorie des catégories nécessaires à la compréhension de notre formalisation avec laquelle nous clôturerons le chapitre. \subsection{Application en sciences expérimentales}\label{sec:scexp} La méthodologie que nous proposons est adaptée au cadre des sciences expérimentales où le rapport entre un modèle et le système qu'il décrit est donné par l'expérience. En effet, le contexte expérimental nous invite à considérer comme modèle de référence d'un système $S$, l'ensemble de tous les résultats d'expériences possibles sur $S$. Tout modèle sera alors \emph{validé} s'il est en accord avec l’expérience, c'est-à-dire lorsque les faits expérimentaux seront associés aux faits que le modèle décrit. %% La \textsc{Fig.}~\ref{fig:model-validation} illustre la situation: le modèle $\modelM$ se rapporte au système $S$ \emph{via} le modèle expérimental $\model{M}{S}$. Ce lien est noté ici par une flèche d'abstraction qui correspond à la validation du modèle $\modelM$ faisant appel à une démarche expérimentale usuelle: \begin{enumerate} \item Collecter des données par des mesures, des expériences: peupler $\model{M}{S}$ \item Proposer un modèle permettant de rendre compte de ces mesures: construire le modèle $\modelM$ \item \emph{Valider} les prédictions du modèles en les comparant aux mesures directement prises du système étudié: établir la fonction $\sigma_{\model{M}{S}}$ de $\model{M}{S}$ vers $\modelM$. \end{enumerate} Nous noterons en particulier dans cette figure la frontière claire, représentée en pointillés, entre les modèles et le système: le système $S$ n'est pas un modèle et les flèches d'abstraction et notamment les validations, ne relient que des modèles. On montre ici que la modélisation dépend de la qualité des expérimentations (par exemple de la précision des outils de mesure utilisés) et peut être réévaluée (soit en rejetant un modèle, soit en l'approuvant plus fortement encore) avec l'évolution des méthodes expérimentales, c'est-à-dire en reconsidérant la définition de $\model{M}{S}$. \begin{figure}[ht] \centering \includegraphics[page=1,width=.45\textwidth]{model-relations} \caption{Représentation schématique de la relation entre un modèle $\modelM$ et un système $S$ où $\model{M}{S}$ est le modèle de référence.} \label{fig:model-validation} \end{figure} Pour illustrer nos propos, considérons le système expérimental $S$ suivant: un ballon de baudruche gonflé à l'azote est attaché au fond d'une cuve d'eau maintenue à \SI{20}{\celsius}, entièrement immergé. On cherche à comprendre la force de traction qu'exerce le ballon à son point de fixation. On remarque après quelques tests que cette force dépend du volume $V_e$ qu'occupe le ballon, sachant que celui-ci éclatera au-delà d'un volume maximal $V_{\mathrm{max}}$. Deux modélisateurs s'attaquent au problème et cherchent à établir une loi reliant force et volume. Après avoir longuement considéré les données récoltées, ils proposent les modèles suivants: \begin{description} \item[Modèle $\model{M}{1}$:] le premier modélisateur établit que \emph{la relation entre la force et le volume repose sur un rapport de proportionnalité} en accord avec la poussée d'Archimède et propose le modèle équationnel: $$ E_{\model{M}{1}} = \{ (F,V) \in \dom_{\obsn{Traction}} \times \dom_{\obsn{Volume}} \mid F= c_0 V \} \uplus \{ \bot, \mathit{éclaté} \} $$ à deux observables $\obsn{Traction}$ (en Newton dans $\dom_{\obsn{Traction}} = \mathbb{R}^+$) représentant la force de traction verticale et orientée vers le haut au point de fixation $P$ du ballon, et $\obsn{Volume}$ (en mètre cube dans $\dom_{\obsn{Volume}} = \mathbb{R}^+$), le volume de fluide déplacé. Le coefficient de proportionnalité $c_0 = \rho_E g$ est donné par $\rho_E = \SI{1.0}{\kilogram\per\metre\cubed}$, la masse volumique de l'eau, et $g = \SI{9.81}{\newton\per\kilogram}$, l'accélération de la pesanteur terrestre. La validation de ce modèle passe par une comparaison entre les mesures faites expérimentalement et les résultats théoriques apportés par la loi proposée. Il s'avère que dans une certaine marge, à savoir lorsque le volume $V$ déplacé est supérieure à un seuil $V_a$ (c'est-à-dire lorsque le ballon est suffisamment gonflé mais qu'il n'a pas encore éclaté), les calculs produisent des résultats très proches de l'observation, l'écart pouvant être attribué à l'appareil de mesure\footnote{Plus précisément, la différence observée peut être expliquée par la non prise en compte dans $\model{M}{1}$ du poids du ballon et de l'azote qu'il contient. On peut en effet rajuster la force s'exerçant au point de contact par l'équation $F = (c_0 - c_1) V - c_2$ où $c_1 = \rho_N g$ avec $\rho_N = \SI{1.25}{\gram\per\liter}$ à la masse volumique de l'azote, et $c_2 = m_B g$ avec $m_B$ la masse du ballon (de l'ordre d'une dizaine de grammes par exemple).}. En dehors de cette marge, l'équation proposée est fausse, et l'on peut se reporter sur le symbole $\mathit{éclaté}$ pour les volumes $V > V_{\mathrm{max}}$, ou sur le symbole $\bot$ représentant l'absence d'explication par le modèle $\model{M}{1}$ lorsque $V < V_a$. Ainsi la sémantique de $\model{M}{1}$ revient à associer à une mesure expérimentale $V_e$ du volume du ballon, le calcul théorique lorsque l'on est dans l'intervalle d'acceptation $[V_a,V_{\mathrm{max}}]$ du modèle: $$ \sigma_{\model{M}{1}}(V_e) = \left\{ \begin{array}{ll} \bot & \textnormal{si } V_e < V_a\\ (c_0 V_e, V_e) & \textnormal{si } V_a \le V_e < V_{\mathrm{max}} \\ \mathit{éclaté} & \textnormal{si } V_e = \mathit{éclaté} \end{array}\right. $$ %% Deux particularités : on voit qu'un modèle peut proposer plus de faits que %% nécessaires, mais ceux-ci ne sont pas adressé par la sémantique, et qu'un %% modèle peut proposer un << absorbant >> comme $\bot$ pour les faits qu'il %% n'est pas capable d'expliquer. \item[Modèle $\model{M}{2}$:] Dans ce second modèle décrivant le système de manière qualitative, les observables sont données empiriquement par des valeurs discrètes symboliques: $$ E_{\model{M}{2}} = \{ (\mathit{faible},\mathit{petit}), (\mathit{faible},\mathit{moyen}), (\mathit{forte},\mathit{moyen}), (\mathit{forte},\mathit{gros}), \mathit{éclaté} \} $$ La sémantique de ce second modèle, moins précis, repose simplement sur une observation visuelle du ballon. %% Pour ce qui est de la force exercée, lorsque le nœud du ballon \emph{semble} tendu, la traction est considérée $\mathit{forte}$, sinon $\mathit{faible}$. %% La taille du ballon est appréciée sur une échelle à 3 niveaux ($\mathit{petit}$, $\mathit{moyen}$, $\mathit{gros}$), sans compté l'état $\mathit{éclaté}$. En définitif, les mesures expérimentales du volume $V_e$ sont classées en quatre catégories définies par trois valeurs seuils $V_k$ ($k\in\{1,2,3\}$) à travers la sémantique suivante: $$ \sigma_{\model{M}{2}}(V_e) = \left\{ \begin{array}{ll} (\mathit{faible},\mathit{petit}) & \textnormal{si } V_e < V_1 \\ (\mathit{faible},\mathit{moyen}) & \textnormal{si } V_1 \le V_e < V_2\\ (\mathit{forte},\mathit{moyen}) & \textnormal{si } V_2 \le V_e < V_3 \\ (\mathit{forte},\mathit{gros}) & \textnormal{si } V_3 \le V_e < V_{\mathrm{max}}\\ \mathit{éclaté} & \textnormal{si } V_e = \mathit{éclaté} \end{array}\right. $$ \end{description} Il est clair que le modèle $\model{M}{2}$ est plus abstrait que $\model{M}{1}$. Formellement, on peut traduire cette abstraction en mettant en relation les faits constituant les deux modèles à travers une fonction $a$ de $E_{\model{M}{1}}$ vers $E_{\model{M}{2}}$. Pour les besoins de l'exemple, on suppose que $V_a < V_1$. La flèche d'abstraction $a$ est définie par: $$ a(s) = \left\{\begin{array}{ll} (\mathit{faible},\mathit{petit}) & \textnormal{si } s = \bot\\ (\mathit{faible},\mathit{petit}) & \textnormal{si } s = (F,V) \textnormal{ et } V < V_1\\ (\mathit{faible},\mathit{moyen}) & \textnormal{si } s = (F,V) \textnormal{ et } V_1 \le V < V_2\\ (\mathit{forte},\mathit{moyen}) & \textnormal{si } s = (F,V) \textnormal{ et } V_2 \le V < V_3\\ (\mathit{forte},\mathit{gros}) & \textnormal{si } s = (F,V) \textnormal{ et } V_3 \leq V < V_{\mathrm{max}}\\ \mathit{éclaté} & \textnormal{si } s = (F,V) \textnormal{ et } V_{\mathrm{max}} \le V\\ \mathit{éclaté} & \textnormal{si } s = \mathit{éclaté} \end{array}\right. $$ Il est facilement de vérifier que la fonction d'abstraction $a$ respecte les sémantiques proposées par : $$ \sigma_{\model{M}{2}} = a \circ \sigma_{\model{M}{1}} $$ Autrement dit, tout fait expérimental (représenté ci-dessus par une mesure $V_e$) est envoyée vers le même fait de $\model{M}{2}$ en passant soit directement par la sémantique de $\model{M}{2}$, soit indirectement en utilisant la sémantique de $\model{M}{1}$ composée avec la fonction d'abstraction. Cette situation est illustrée \textsc{Fig.}~\ref{fig:model-abstraction}. \begin{figure}[ht] \centering \includegraphics[page=2,width=.45\textwidth]{model-relations} \caption{Représentation schématique de la relation d'abstraction entre deux modèles $\model{M}{1}$ et $\model{M}{2}$ assujettis à leur validation par rapport au modèle de référence $\model{M}{S}$. Le modèle $\model{M}{2}$ est une abstraction de $\model{M}{1}$.} \label{fig:model-abstraction} \end{figure} \subsection{Introduction aux catégories} Nous pensons que la théorie des catégories propose un cadre mathématique adapté à la formalisation des notions que nous venons d'évoquer. En particulier, les diagrammes donnés \textsc{Fig.}~\ref{fig:model-abstraction} et \textsc{Fig.}~\ref{fig:model-lv} sont typiques de cette théorie. Dans cette section, nous introduisons les éléments catégoriques nécessaires pour atteindre notre objectif. \subsubsection{Catégorie} Une catégorie est constituée de deux types d'éléments appelés objets et morphismes. Dans une représentation diagrammatique, les premiers sont en général représentés par des sommets et les seconds par des flèches. Une catégorie représente formellement comment les flèches peuvent se composer pour transiter d'objet en objet. \begin{mpo-definition}[Catégorie~\cite{adamek_abstract_2004}] Une \emph{catégorie\footnote{localement petite}} est un quadruplet $\cat{K} = (O_{\cat{K}},\khom_{\cat{K}},\kid_{\cat{K}},\circ_{\cat{K}})$ où \begin{enumerate} \item $O_{\cat{K}}$ est une classe\footnote{Dans la théorie des ensembles, les \emph{classes} ont été introduites afin d'éviter les contradictions issues d'énoncés tels que le paradoxe de Russell (\emph{Est-ce que l'ensemble des ensembles n'appartenant pas à eux-même, $x \notin x$, appartient à lui-même ?}). Tout comme les ensembles, les classes sont des collections d'éléments pouvant être caractérisées par un prédicat d'appartenance. La différence entre ensembles et classes tient à la limitation imposée sur les prédicats d'appartenance des ensembles par les axiomatisations utilisées (Z, ZF, ZFC, etc.). Ainsi tout ensemble est une classe, mais certaines classes, dites propres, ne sont pas des ensembles.}, dont les membres sont appelés des \emph{\objs{K}}; \item pour chaque paire d'objets $(A,B)$ de $\cat{K}$, $\khom_{\cat{K}}(A,B)$ est un ensemble dont les membres sont appelés des \mrphs{K} de $A$ vers $B$: on appelle $A$, le domaine de $f$ (noté $\kdom(f)$) et $B$, le codomaine de $f$ (noté $\kcod(f)$)\footnote{Pour assurer l'unicité du domaine et du codomaine, les ensembles $\khom_{\cat{K}}(A,B)$ sont supposés deux à deux disjoints.}; l'expression $f \in \khom_{\cat{K}}(A,B)$ est également notée \morphism{f}{A}{B} ou encore $f : A \rightarrow B$; \item pour chaque \obj{K} $A$, $\kid_{\cat{K}}(A)$ est un morphisme de $A$ vers $A$ appelé la $\cat{K}$-identité sur $A$, également noté $\kid_A$; \item $\circ_{\cat{K}}$ est une loi de composition associant à chaque paire de \mrphs{K} $(f : A \rightarrow B, g : B \rightarrow C)$ un \mrph{K} $(g \circ_{\cat{K}} f) : A \rightarrow C$, appelé la composition de $f$ et $g$, assujettie aux conditions suivantes: \begin{enumerate} \item la composition est associative: tout triplet de \mrphs{K} $(f: A \rightarrow B,g: B \rightarrow C,h: C \rightarrow D)$ vérifie l'équation $h circ_{\cat{K}} (g \circ_{\cat{K}} f) = (h \circ_{\cat{K}} g) \circ_{\cat{K}} f$; \item les $\cat{K}$-identités sont neutres pour la composition: pour tout \mrph{K} $f : A \rightarrow B$, on a $\kid_B \circ_{\cat{K}} f = f = f \circ_{\cat{K}} \kid_A$. \end{enumerate} \end{enumerate} \end{mpo-definition} La difficulté de la présentation des catégories vient de son caractère désincarné. Voici quelques exemples de catégories que nous avons déjà évoquées et dont nous ferons usage dans la suite. \begin{mpo-exemple}[Catégorie des ensembles]\label{def:cat} On note $\cat{Set} = (O_{\cat{Set}},\khom_{\cat{Set}},\kid_{\cat{Set}},\circ_{\cat{Set}})$ la catégorie des ensembles où: \begin{enumerate} \item $O_{\cat{Set}}$ est la classe de tous les ensembles, \item $\khom_{\cat{Set}}(A,B)$ pour deux ensembles $A$ et $B$ est l'ensemble des fonctions de $A$ dans $B$, \item $\kid_{\cat{Set}}(A)$ est la fonction identité pour chaque ensemble $A$, et \item $\circ_{\cat{Set}}$ est l'opérateur de composition de fonctions usuel en théorie des ensembles. \end{enumerate} \end{mpo-exemple} \begin{mpo-exemple}[Catégorie des espaces topologiques] La catégorie des espaces topologiques $\cat{Top}$ a pour objets les espaces topologiques et pour morphismes, les fonctions continues. Pour tout espace $\Space$, $\kid_{\Space}$ est la fonction identité (toujours continue). La composition est la composition de fonctions usuelle dont on peut montrer qu'elle respecte la continuité: toute composition de fonctions continues est continue. \end{mpo-exemple} \begin{mpo-exemple}[Catégorie des monoïdes] La catégorie des monoïdes $\cat{Mon}$ a pour objets les monoïdes et pour morphismes, les \emph{morphismes de monoïdes}, c'est-à-dire les fonctions $h : \Time_1 \rightarrow \Time_2$ respectant les neutres et les lois de composition internes: $$ h(0_{\Time_1}) = 0_{\Time_2} \qquad h(x +_{\Time_1} y) = h(x) +_{\Time_2} h(y) $$ Là encore, l'identité et la composition usuelles respectent la définition~\ref{def:cat} et sont utilisées pour compléter la définition de $\cat{Mon}$. \end{mpo-exemple} \begin{mpo-exemple}[Catégorie des actions de monoïdes] On définit la catégorie $\cat{AMon}$ ayant pour objets les actions de monoïdes définies précédemment. On définit un morphisme entre deux actions $\Phi: E \times \Time \rightarrow E$ et $\Phi':E' \times \Time' \rightarrow E'$ comme un couple $\langle h,f \rangle$ où $h$ est un morphisme de monoïde de $\Time$ dans $\Time'$, et $f$ est une fonction de $E$ dans $E'$ tels que pour tout $t\in\Time, x\in E$: $$ \Phi'(f(x), h(t)) = f(\Phi(x,t)) $$ Il est aisé de montrer que $$ \kid_{\cat{AMon}}(\Phi) = \langle \kid_{\cat{Mon}}(\Time),\kid_{\cat{Set}}(E) \rangle \qquad \langle h,f \rangle \circ_{\cat{AMon}} \langle h',f' \rangle = \langle h \circ_{\cat{Mon}} h',f \circ_{\cat{Set}} f' \rangle $$ \end{mpo-exemple} La théorie des catégories s'attache à comprendre les objets à travers les propriétés de transition qu'exposent les morphismes. La définition de $\cat{Top}$ par exemple nous invite à comprendre les espaces topologiques à travers les fonctions continues. Ce point de vue est illustré par la notion d'\emph{isomorphisme}, qui s'intéresse à savoir si deux objets ont des rôles interchangeables dans un catégorie. La définition qui suit repose uniquement sur les flèches reliant les deux objets concernés. %% \begin{mpo-definition}[Objets isomorphes]\label{def:isomor} Soit $\cat{K}$ une catégorie. Deux \objs{K} $A$ et $B$ sont dits \emph{isomorphes} s'il existe une paire de \mrphs{K} $f:A \rightarrow B$ et $g: B \rightarrow A$ tels que: $$ \kid_A = g \circ_{\cat{K}} f \qquad\textnormal{ et }\qquad \kid_B = f \circ_{\cat{K}} g $$ Les morphismes $f$ et $g$ sont qualifiés d'\emph{isomorphismes}. \end{mpo-definition} Les objets extrémaux sont un exemple de propriété, là encore décrits en terme de flèches. \begin{mpo-definition}[Objet initial, objet final] Soit \cat{K} une catégorie. %% Un \obj{K} $I$ est appelé \emph{objet initial} si pour chaque \obj{K} $O$, il existe un unique morphisme allant de $I$ vers $O$. %% De même, un \obj{K} $F$ est appelé un \emph{objet final} si pour chaque \obj{K} $O$ il existe un unique morphisme allant de $O$ vers $F$. \end{mpo-definition} À titre d'exemple, $\cat{Set}$ possède un objet initial, l'ensemble vide $\emptyset$, alors que tout singleton constitue un objet final. Nous constaterons d'ailleurs que lorsqu'il existe plusieurs objets initiaux (respectivement finaux), ceux-ci sont tous isomorphes. \subsubsection{Quelques diagrammes classiques} Nous remarquons que les propriétés intéressantes proviennent des multiples façons d'atteindre un objet destination à partir d'un même objet source. C'est par exemple ce qu'exprime la définition d'isomorphisme qui implique qu'il y a un moyen de ne pas «bouger» dans $A$ tout en passant par $B$. La propriété pour deux chemins d'être égaux après composition s'appellent la \emph{commutativité}. Cette notion est au cœurs de nombreuses constructions catégoriques. Nous nous intéressons ici en particulier aux notions de \emph{limite} et de \emph{colimite}. De façon informelle, une (co)limite consiste à trouver un objet qui résume au mieux le comportement d'un groupe d'objets et de morphismes. Il s'agit d'une certaine façon de la possibilité de factoriser un grand nombre de flèches en une seule. Nous avons déjà rencontré cette construction section~\ref{sec:ehresmann}, dans la description des travaux d'A. Ehresmann sur la complexification structurelle: un cat-neurone, défini dans ce formalisme comme une colimite, représente à lui seul le comportement fonctionnel d'une famille de neurones. Plutôt que de présenter formellement les définitions générales de limite et colimite, nous préférons nous concentrer sur 4 constructions particulières qui nous seront utiles dans la suite. \paragraph{Produit et coproduit.} %% Ce premier groupe de (co)limites cherche à définir un représentant $P$ résumant le comportement de deux objets $X$ et $Y$ sur n'importe quel autre objet $Q$. On entend ici par comportement deux flèches $f$ et $g$ provenant de (ou tombant sur) $Q$ et tombant sur (ou provenant de) $X$ et $Y$. S'il existe un représentant $P$ résumant $X$ et $Y$ alors tout couple de flèches $(f,g)$ doit être résumable en une unique flèche entre $P$ et $Q$. Ces considérations amènent aux définitions suivantes. \begin{mpo-definition}[Produit]\label{def:prod} Soient les deux objets $X, Y$. Le \emph{produit} de $X$ et $Y$, s'il existe, consiste en un objet $P$ et deux morphismes $p_1 : P \rightarrow X$ et $p_2 : P \rightarrow Y$ tels que pour tout autre objet $Q$ et morphismes $p'_1 : Q \rightarrow X$ et $p'_2 : Q \rightarrow Y$, il existe un unique morphisme $u : Q \rightarrow P$ tel que le diagramme suivant commute \begin{center} \includegraphics[page=4]{model-categories} \end{center} \end{mpo-definition} %% En renversant les flèches de cette définition, on obtient le \emph{coproduit}, la construction \emph{duale} du produit. %% \begin{mpo-definition}[Coproduit]\label{def:coprod} Soient les deux objets $X, Y$. Le \emph{coproduit} de $X$ et $Y$, s'il existe, consiste en un objet $P$ et deux morphismes $i_1 : X \rightarrow P$ et $i_2 : Y \rightarrow P$ tels que pour tout autre objet $Q$ et morphismes $i'_1 : X \rightarrow Q$ et $i'_2 : Y \rightarrow Q$, il existe un unique morphisme $u : P \rightarrow Q$ tel que le diagramme suivant commute \begin{center} \includegraphics[page=5]{model-categories} \end{center} \end{mpo-definition} Illustrons ces constructions dans le cas des ensembles en commençant par le produit. En interprétant $X$ et $Y$ comme des ensembles, la construction cherche à définir le meilleur ensemble possible nous permettant de factoriser en une seule fonction $u$ n'importe quel couple de fonctions $f,g$ de même domaine $Q$. Autrement dit, pour un même élément $q \in Q$, les fonctions produisent deux valeurs $f(q)$ et $g(q)$ respectivement dans $X$ et $Y$, et l'on cherche à représenter ces deux valeurs en une seule dans $P$ sans perte d'information. Le meilleur ensemble $P$ permettant de satisfaire ces contraintes est le produit cartésien $X \times Y$. %% Par un raisonnement similaire, on arrive à la conclusion que le coproduit dans \cat{Set} correspond à l'union disjointe $X \uplus Y$. \paragraph{Produit fibré et somme amalgamée.} %% Ces nouvelles constructions sont proches des précédences. Le produit fibré peut être vu comme une construction comparable à un produit avec une contrainte supplémentaire: deux morphismes vers un troisième objet $Z$ sont utilisés pour représenter une forme de cohérence entre $X$ et $Y$. \begin{mpo-definition}[Produit fibré]\label{def:pullback} Soient trois objets $X, Y, Z$ et deux morphismes $f: X \rightarrow Z$ et $g: Y \rightarrow Z$. Le \emph{produit fibré} des morphismes $f, g$, s'il existe, consiste en un objet $P$ et deux morphismes $p_1 : P \rightarrow X$ et $p_2 : P \rightarrow Y$ tel que le diagramme suivant commute \begin{center} \includegraphics[page=6]{model-categories} \end{center} et soit \emph{universel}, c'est-à-dire que pour tout autre objet $Q$ et morphismes $p'_1 : Q \rightarrow X$ et $p'_2 : Q \rightarrow Y$ alors il existe un unique morphisme $u : Q \rightarrow P$ tel que le diagramme suivant commute \begin{center} \includegraphics[page=7]{model-categories} \end{center} \end{mpo-definition} %% En renversant les flèches de cette définition, on obtient la \emph{somme amalgamée}, la construction \emph{duale} du produit fibré. %% \begin{mpo-definition}[Somme amalgamée]\label{def:pushout} Soient trois objets $X, Y, Z$ et deux morphismes $f: Z \rightarrow X$ et $g: Z \rightarrow Y$. La \emph{somme amalgamée} des morphismes $f, g$, si elle existe, consiste en un objet $P$ et deux morphismes $i_1 : X \rightarrow P$ et $i_2 : Y \rightarrow P$ tel que le diagramme suivant commute \begin{center} \includegraphics[page=8]{model-categories} \end{center} et soit \emph{universel}, c'est-à-dire que pour tout autre objet $Q$ et morphismes $i'_1 : X \rightarrow Q$ et $i'_2 : Y \rightarrow Q$ alors il existe un unique morphisme $u : P \rightarrow Q$ tel que le diagramme suivant commute \begin{center} \includegraphics[page=9]{model-categories} \end{center} \end{mpo-definition} Dans \cat{Set}, ces constructions existent toujours. Le produit fibré correspond à l'opération de $\theta$-jointure, c'est-à-dire à la construction du produit cartésien de $X$ et de $Y$ dans lequel ne seront sélectionnés que les couples $(x,y)$ vérifiant l'équation $f(x) = g(y)$. De la même façon, la somme amalgamée peut être vue comme l'union disjointe de $X$ et $Y$ quotientée par la relation $f(z) \equiv g(z)$ pour tout élément $z \in Z$. \subsubsection{Foncteurs} Il est naturel de munir une structure algébrique d'une notion de morphisme permettant de passer d'une algèbre à une autre en préservant la structure. Les catégories ne font pas exception, et l'on appelle \emph{foncteur} la notion de morphisme de catégories. \begin{mpo-definition}[Foncteur]\label{def:foncteur} Soient \cat{C} et \cat{D} deux catégories. Un \emph{foncteur\footnote{covariant}} de \cat{C} vers \cat{D} est un couple de fonctions $\ftr{F} = \langle F_0, F_1 \rangle$ tel que \begin{itemize} \item $F_0$ associe à chaque \obj{C} $X$, un \obj{D} $F_0(X)$, \item $F_1$ associe à chaque \mrph{C} $f : X \rightarrow Y$, un \mrph{D} $F_1(f) : F_0(X) \rightarrow F_0(Y)$ de sorte que: \begin{enumerate} \item $F_1(\kid_{\cat{C}}(X)) = \kid_{\cat{D}}(F_0(X))$ pour tout \obj{C} $X$, et \item $F_1(g \circ_{\cat{C}} f) = F_1(g) \circ_{\cat{D}} F_1(f)$ pour tous \mrphs{C} $f : X \rightarrow Y$ et $g : Y \rightarrow Z$. \end{enumerate} \end{itemize} \end{mpo-definition} Remarquons que les foncteurs peuvent être composés pour donner de nouveaux foncteurs. Il est d'usage d'utiliser $\ftr{F}$ en lieu et place de $F_0$ et $F_1$ pour éviter les indices et alléger les notations. Nous présentons ci-dessous quelques exemples de foncteurs. \begin{mpo-exemple}[Foncteur identité] Pour toute catégorie $\cat{C}$, on peut définir son \emph{foncteur identité} qui envoie chaque \obj{C} sur lui-même et chaque \mrph{C} sur lui-même. Avec ce foncteur, tous les ingrédients sont présents pour pouvoir définir la catégorie \cat{Cat} des catégories. Il convient ainsi de noter $\kid_{\cat{Cat}}(\cat{C})$ (ou encore $1_{\cat{C}}$) le foncteur identité d'une catégorie $\cat{C}$. \end{mpo-exemple} \begin{mpo-exemple}[Foncteur d'oubli] De façon informelle, les \emph{foncteurs d'oubli} permettent d'envoyer les objets d'une catégorie vers ceux d'une autre catégorie possédant moins de contraintes (justifiant le terme d'oubli). %% Nous intéresserons en particulier au foncteur d'oubli permettant de passer d'une catégorie $\cat{C}$ vers la catégorie des ensembles. Par exemple, on peut définir les foncteurs d'oubli suivants: \begin{itemize} \item $\ftr{U}_{\cat{Top}}: \cat{Top} \rightarrow \cat{Set}$ qui envoie tout espace topologique $\Space = \langle E_{\Space}, \Omega_{\Space} \rangle$ vers son ensemble support $E_{\Space}$ (en oubliant la structure décrite par les ouverts de $\Omega_{\Space}$), et toute fonction continue vers elle-même; \item $\ftr{U}_{\cat{Mon}}: \cat{Mon} \rightarrow \cat{Set}$ qui envoie tout monoïde $\Time = \langle D_{\Time}, 0_{\Time}, +_{\Time} \rangle$ vers son ensemble support $D_{\Time}$ (en oubliant l'opération de composition entre ses éléments), et tout morphisme de monoïde vers lui-même, en tant que fonction de l'espace support; \item $\ftr{U}_{\cat{AMon}}: \cat{AMon} \rightarrow \cat{Set}$ qui envoie toute action $\Phi: E \times \Time \rightarrow E$ vers son ensemble support défini par: $$ \ftr{U}_{\cat{AMon}}(\Phi) = \{\; (x,\delta,\Phi(x,\delta)) \mid x \in E, \delta \in \Time \;\} $$ et tout morphisme d'action $\langle h, f \rangle: \Phi \rightarrow \Phi'$ vers la fonction: $$ \begin{array}{llll} \ftr{U}_{\cat{AMon}}(\langle h, f \rangle): & \ftr{U}_{\cat{AMon}}(\Phi) & \rightarrow & \ftr{U}_{\cat{AMon}}(\Phi')\\ & (x,t,x') & \mapsto & (f(x), h(t), f(x')) \end{array} $$ \end{itemize} \end{mpo-exemple} \subsubsection{Constructions catégoriques} Nous terminons cette introduction aux catégories avec deux constructions: l'opposée d'une catégorie et la catégorie des flèches au-dessus (ou au-dessous) d'un objet (ou \emph{slice} catégorie). \begin{description} \item[Catégorie opposée:] %% Étant donnée une catégorie $\cat{C}$, il est toujours possible de considérer son \emph{opposée} $\catop{C}$ qui possède les mêmes objets que $\cat{C}$ mais dont les morphismes sont les flèches de $\cat{C}$ inversées. En d'autres termes, entre $\cat{C}$ et $\catop{C}$, domaines et codomaines échangent leurs rôles. Cette construction est purement symbolique et n'apporte pas de propriétés supplémentaires à $\catop{C}$ qui n'étaient pas déjà présente chez $\cat{C}$. Cependant, travailler dans la catégorie opposée permet souvent de travailler avec des flèches allant dans une direction plus naturelle pour la compréhension. L'un des principaux avantages de cette construction est de mettre en avant la dualité entre limites et colimites. En effet, comme nous l'avons indiqué en exemple plus haut, produit et coproduit sont des notions duales: passer de l'une à l'autre s'effectue en changeant le sens des flèches. Ainsi, un produit dans $\cat{C}$ se présentera sous la forme d'un coproduit dans $\catop{C}$, et vice versa. Il en est de même pour le produit fibré et la somme amalgamée. \item[Flèches au-dessus d'un objet:] %% Les morphismes étant les éléments de première importance dans les catégories, de nombreuses situations amènent à considérer comment les flèches sont relier les unes aux autres. Il existe plusieurs moyens de formalisation les relations entre flèches avec l'élaboration de $2$-catégories qui ajoute un niveau supplémentaire d'éléments (des flèches entre flèches), les transformations naturelles, etc. Nous nous intéressons, dans notre cas, à une construction spécifique où les flèches qu'il nous intéresse d'étudier possèdent toutes le même domaine ou le même codomaine. On parlera alors de catégories de flèches au-dessus ou au-dessous d'un objet. Pour ces catégories, il est nécessaire de fournir une notion de morphisme, ce que propose la définition suivante. %% \begin{mpo-definition}[Flèche au-dessus/au-dessous d'un objet]\label{def:slice} Soit $\cat{C}$ une catégorie et $X$ un $\obj{C}$. La \emph{catégorie des $\mrphs{C}$ au-dessus de $X$}, noté $\cat{C} \downarrow X$, est la catégorie dont \begin{itemize} \item les objets sont les $\mrphs{C}$ de la forme $f:Y \rightarrow X$, et dont \item les morphismes entre $f_1:Y_1 \rightarrow X$ et $f_2:Y_2 \rightarrow X$ sont les $\mrphs{C}$ $g: Y_1 \rightarrow Y_2$ tels que $f_1 = f_2 \circ_{\cat{C}} g$, c'est-à-dire tels que le diagramme suivant commute: \begin{center} \includegraphics[page=10]{model-categories} \end{center} \end{itemize} L'identité et la composition sont naturellement héritées de $\cat{C}$. La construction duale est la \emph{catégorie des $\mrphs{C}$ au-dessous de $X$}, notée $X \downarrow \cat{C}$. \end{mpo-definition} \end{description} \FloatBarrier \subsection{Catégorie des modèles} Nous présentons maintenant les bases d'une construction catégorique pour la modélisation multi-niveau. Nous commençons par définir la catégorie $\cat{Abs}_S$ des modèles d'un système $S$. Nous proposons ensuite d'en analyser certaines propriétés fortement liées aux techniques de modélisation que nous avons présentées section~\ref{sec:multiniveau}. \subsubsection{Définition de la catégorie des modèles} Dans la suite, nous supposons l'existence d'un système $S$ que l'on cherche à modéliser. Notre objectif est de définir une catégorie $\cat{Abs}_S$ dont les objets sont les modèles de $S$ et les flèches représentent les liens d'abstraction entre ces modèles. En suivant l'idée générale que nous avons décrite dans l'introduction de cette section, nous supposons un ensemble particulier noté $E_{\model{M}{S}}$ représentant les faits du système $S$ auxquels tout modèle de $S$ doit se référer. D'une certaine façon, l'ensemble $E_{\model{M}{S}}$ représente le vocabulaire qu'on souhaite pouvoir utiliser pour décrire $S$. Rappelons que le but d'un modèle de $S$ est d'expliquer le système $S$ en faisant appel à ce vocabulaire. Dans le contexte des sciences expérimentales présenté section~\ref{sec:scexp}, ce vocabulaire consistait en toutes les expériences réalisées/réalisables sur le système étudié. \begin{mpo-definition}[Catégorie des modèles]\label{def:abscat} Soit $S$ un système représenté par un ensemble de faits de référence $E_{\model{M}{S}}$. La catégorie $\cat{Abs}_S$ des modèles de $S$ est définie par: $$ \cat{Abs}_S := (E_{\model{M}{S}} \downarrow \cat{Set})^{\mathbf{co}} $$ à savoir, l'\emph{opposée de la catégorie des flèches de $\cat{Set}$} au-dessous de $E_{\model{M}{S}}$. \end{mpo-definition} % Cette définition mérite quelques éléments de clarification. \paragraph{Objets de $\cat{Abs}_S$.} %% Les objets de $\cat{Abs}_S$ représentent les modèles de $S$ en accord avec les faits de référence de $E_{\model{M}{S}}$. Par définition, un modèle $\modelM$ est construit à partir d'une flèche de $\cat{Set}$ de domaine $E_{\model{M}{S}}$. En notant cette flèche $\sigma_{\modelM}: E_{\model{M}{S}} \rightarrow E_{\modelM}$, on retrouve ici la définition informelle de la sémantique des modèles que nous avons présentée: une fonction des faits de référence vers les faits du modèle. On peut remarquer qu'un même ensemble de faits peut être utilisé par deux sémantiques différentes. De façon générale, tout ensemble $E$ de $\cat{Set}$ (hormis l'ensemble vide) peut être atteint à partir de $E_{\model{M}{S}}$. De plus, il apparaîtra dans $\cat{Abs}_S$ autant de fois qu'il existe de fonctions dans $\khom_{\cat{Set}}(E_{\model{M}{S}},E)$, donnant lieu à autant de modèles différents de $S$ pour ce seul ensemble de faits. La catégorie $\cat{Abs}_S$ est donc extrêmement riche en modèles. \paragraph{Morphismes de $\cat{Abs}_S$.} %% Si l'on constate que les objets de $\cat{Abs}_S$ formalisent la notion de sémantique des modèles que nous cherchions à mettre en place, ses flèches permettent quant à elles de formaliser la notion d'abstraction. En effet, la définition~\ref{def:abscat} amène à considérer une flèche $\absA:\model{M}{+} \rightarrow \model{M}{-}$, signifiant que le modèle $\model{M}{+}$ est une abstraction du modèle $\model{M}{-}$, pour chaque fonction $f_{\absA}$ de $E_{\model{M}{-}}$ dans $E_{\model{M}{+}}$ telle que le diagramme suivant commute: \begin{center} \includegraphics[page=13]{model-categories} \end{center} Nous retrouvons à nouveau la situation décrite informellement en début de section. On remarquera en particulier la correspondance entre ce diagramme et celui illustré \textsc{Fig.}~\ref{fig:model-abstraction}. Nous finirons en rappelant que par construction la composition et l'identité sont bien définies dans $\cat{Abs}_S$. La composition correspond à la transitivité de l'abstraction qui revient à dire informellement que si $\model{M}{1}$ est une abstraction de $\model{M}{2}$ et que $\model{M}{2}$ est une abstraction de $\model{M}{3}$, alors $\model{M}{1}$ est une abstraction de $\model{M}{3}$ par composition des deux fonctions d'abstraction. Pour ce qui est de l'identité, elle signifie que tout modèle est une abstraction de lui-même. Dans ce cas, la fonction d'abstraction correspond à la fonction identité de l'ensemble des faits du modèle concerné. \paragraph{Objets extrémaux de $\cat{Abs}_S$.} %% Toute catégorie de flèches d'une catégorie $\cat{C}$ arbitraire au-dessous d'un $\obj{C}$ $X$ vérifie les deux propriétés suivantes: \begin{enumerate} \item $\kid_X$ (qui est bien un $\mrph{C}$ au-dessous de $X$) est un objet initial de $X \downarrow \cat{C}$; \item si $\cat{C}$ présente un objet terminal $F$, l'unique $\mrph{C}$ de $X$ vers $F$ est un objet terminal de $X \downarrow \cat{C}$. \end{enumerate} En considérant que la définition~\ref{def:abscat} considère l'opposée d'une telle catégorie et que les notions d'objets initiaux et finaux sont duales, on déduit aisément que la catégorie $\cat{Abs}_S$ possède des objets initiaux et des objets finaux. Les objet initiaux sont les fonctions constantes de $E_{\model{M}{S}}$ vers les singletons, c'est-à-dire les objets terminaux de $\cat{Set}$. Par exemple, on associe au singleton $\{\bot\}$, le modèle $\model{M}{\bot}$ correspondant au modèle le plus abstrait possible, celui qui offre le moins d'explication de $S$ en identifiant tout les faits de $E_{\model{M}{S}}$ en un seul, $\bot$. %% En revanche, l'objet final, à savoir la fonction identité $\kid_{E_{\model{M}{S}}}$, constitue le modèle $\model{M}{S}$ le plus concret qu'il est possible de construire étant donné le vocabulaire proposé dans $E_{\model{M}{S}}$. %% Ainsi, $\cat{Abs}_S$ se présente comme une \emph{hiérarchie d'abstraction} entre les modèles de $S$ dont les objets initiaux et finaux forment les deux extrémités. On remarquera que, dans le cas particulier où le vocabulaire que l'on s'autorise pour parler de $S$ est vide (c'est-à-dire lorsque $E_{\model{M}{S}} = \emptyset$), la hiérarchie «s'écrase» en un unique objet. \subsubsection{Transformation de modèles} L'opération essentielle que notre cadre formel met en avant est l'abstraction entre modèles. Elle provient des concepts développés dans le cadre des transformations de modèles que nous avons présentées section~\ref{sec:modeltrans} au sein de laquelle référence était faite à deux propriétés des transformations qu'il est bon de confronter à notre proposition. \paragraph{Transformation endogène et foncteur d'oubli.} %% Se restreindre à la simple définition ensembliste de $\cat{Abs}_S$ n'apporte aux modèles aucun pouvoir explicatif. Ce fut d'ailleurs l'objet de la section~\ref{sec:consmodel} que de montrer qu'il est nécessaire de rajouter de la structure sur les ensembles de faits pour en tirer plus d'informations. %% On peut d'ailleurs remarquer qu'en tant que objet terminal, les faits de référence constituent certes le modèle le plus concret mais, privés de structure, n'apportent aucune description supplémentaire du système. Pour palier à cette absence de structure, notre proposition consiste à considérer toute catégorie $\cat{C}$ munie d'un foncteur d'oubli $\ftr{U}_{\cat{C}}$ vers $\cat{Set}$ comme la description d'un formalisme. Par exemple, les modèles dont les ensembles de faits sont des images d'actions de monoïde par le foncteur $\ftr{U}_{\cat{AMon}}$, correspondent à la classe des modèles dynamiques explicitée définition~\ref{def:moddyna}. Il est possible d'aller plus loin dans cette proposition. Nous pouvons considérer les abstractions issues des images de morphismes par \emph{le même} foncteur d'oubli $\ftr{U}_{\cat{C}}$: ces cas correspondent exactement aux transformations de modèles endogènes au formalisme décrit par $\cat{C}$. %% Illustrons cela pour les modèles dynamiques. Considérons dans $\cat{AMon}$, $\Phi_-$ et $\Phi_+$ deux actions de monoïde, et $h: \Phi_- \rightarrow \Phi_+$ un morphisme entre elles. Le cas qui nous intéresse suppose que $\ftr{U}_{\cat{AMon}}$ envoie $\Phi_-$ (respectivement $\Phi_+$) sur l'ensemble des faits $E_{\model{M}{-}}$ (respectivement $E_{\model{M}{+}}$) d'un modèle $\model{M}{-}$ (respectivement $\model{M}{+}$) de $\cat{Abs}_S$, de telle sorte que l'image de $\ftr{U}_{\cat{AMon}}(h) = f_{\absA}$ pour une flèche d'abstraction $\absA: \model{M}{+} \rightarrow \model{M}{-}$: \begin{center} \includegraphics[page=14]{model-categories} \end{center} Cette situation décrit bien une abstraction de modèles dynamiques: passer du modèle $\model{M}{+}$ au modèle $\model{M}{-}$ par $\absA$ est une transformation endogène de $\model{M}{+}$ en $\model{M}{-}$ respectant l'action du temps. Évidemment, les transformations exogènes sont également à l'honneur. Elles correspondent aux abstractions $\absA: \model{M}{+} \rightarrow \model{M}{-}$ dont les domaines et codomaines sont dans l'image de foncteurs d'oubli \emph{différents}. \paragraph{Transformation horizontale et isomorphisme.} %% Considérons parmi les transformations de modèles, les transformations verticales et les transformations horizontale. Les premières correspondent à une notion de raffinement entre le modèle initial et le modèle transformé de telle sorte que le premier soit en général plus abstrait que le second. La notion d'abstraction que nous avons formalisée correspond à cette verticalité. Les transformations horizontales correspondent à des équivalences entre des modèles ayant au final le même pouvoir d'explication tout en étant décrits de façons différentes, par exemple lorsqu'ils reposent sur des formalismes différents (ce qui est représentable dans notre cadre par l'utilisation de foncteurs d'oubli différents comme nous venons de le voir). Les deux modèles sont donc interchangeables. Comme nous l'avons vu, cette propriété se traduit en termes catégoriques par un isomorphisme entre objets. Soient $\model{M}{1}$ et $\model{M}{2}$, deux modèles de $\cat{Abs}_S$. Par définition, l'isomorphisme entre $\model{M}{1}$ et $\model{M}{2}$ se traduit par la présence de deux abstractions $\absA_{12}: \model{M}{1}\rightarrow\model{M}{2}$ et $\absA_{21}: \model{M}{2}\rightarrow\model{M}{1}$ telles que $\absA_{12} \circ \absA_{21}$ et $\absA_{21} \circ \absA_{12}$ donnent respectivement les identités de $\model{M}{1}$ et de $\model{M}{2}$. En dépliant la définition de $\cat{Abs}_S$, cela revient à dire que les ensembles de faits de $\model{M}{1}$ et de $\model{M}{2}$ sont isomorphes dans $\cat{Set}$. Attention, l'inverse est faux: deux modèles dont les ensembles de faits sont en bijection ne sont pas nécessairement isomorphes car il peut ne pas exister de bijection respectant les sémantiques deux modèles simultanément. \subsubsection{Couplage de modèles} L'opération importante de la modélisation multi-modèle est le couplage de modèles. Nous montrons dans cette dernière section comment les constructions de (co)limites permettent ce couplage. \paragraph{Le couplage simple.} % Le couplage de deux modèles peut être décrit en terme d'abstraction: le couplage entre un modèle $\modelM_1$ et un modèle $\modelM_2$ revient à construire le «meilleur» modèle $\modelM_{12}$ dont $\modelM_1$ et $\modelM_2$ sont des abstractions. En effet, on cherche à retrouver dans $\modelM_{12}$ les contributions de $\modelM_{1}$ et $\modelM_{2}$. En cela, $\modelM_{12}$ est plus complet, et donc plus concret, que ses parents. De plus, on entend par «meilleur» modèle, le fait que la définition de $\modelM_{12}$ se limite uniquement aux contributions de $\modelM_1$ et $\modelM_2$. En d'autres termes, tout autre modèle $\modelM'$ établissant un rapport entre $\modelM_1$ et $\modelM_2$ serait une spécialisation de $\modelM_{12}$. Sous la forme d'un diagramme, cette définition informelle se décrit de la façon suivante: \begin{center} \includegraphics[page=15]{model-categories} \end{center} On reconnaît ici le diagramme d'un coproduit qui invite à poser la définition du couplage dans $\cat{Abs}_S$ à travers cette construction. Il faut cependant s'assurer de son existence et, le cas échéant, de sa définition: quels ensemble de faits et sémantique peut-on lui associer ? Pour ce faire, il suffit de considérer l'équivalent du diagramme précédent dans $\cat{Set}$. \begin{center} \includegraphics[page=16]{model-categories} \end{center} Le coproduit de $\cat{Abs}_S$ dérive ici du produit de $\cat{Set}$ dont il hérite les propriétés. Nous en déduisons qu'il est toujours possible de coupler deux modèles; il suffit pour cela de faire le produit cartésien des ensembles de faits des modèles à coupler. Les fonctions d'abstraction correspondent alors aux fonctions de projection. %% Nous avons également fait figurer sur le diagramme l'ensemble des faits de référence $E_{\model{M}{S}}$ et les sémantiques des modèles, $\sigma_{\model{M}{1}}$ et $\sigma_{\model{M}{2}}$. L'universalité du coproduit implique alors qu'il existe un unique morphisme de $E_{\model{M}{S}}$ vers $E_{\model{M}{12}}$, que nous identifions aisément à la sémantique de $\model{M}{12}$. Celle-ci consiste à retourner pour chaque fait de référence, le n-uplet des faits associés par chaque modèle: $$ \begin{array}{llcl} \sigma_{\model{M}{12}}: & E_{\model{M}{S}} & \longrightarrow & E_{\model{M}{12}} = E_{\model{M}{1}} \times E_{\model{M}{2}} \\ & r & \longmapsto & (\sigma_{\model{M}{1}}(r), \sigma_{\model{M}{2}}(r)) \end{array} $$ \paragraph{Somme amalgamée de modèles.} % Remarquons qu'en considérant toutes les paires de faits possibles, le produit cartésien construit beaucoup plus de couples que nécessaire. La sémantique joue un rôle de filtre puisque seule l'image de $\sigma_{\model{M}{12}}$ n'est au final prise en compte dans la définition des flèches de $\cat{Abs}_S$. Cela fait jouer un rôle important aux faits de référence qu'il n'est pas toujours possible de tenir. En effet, si l'on reprend le cas des sciences expérimentales par exemple, la référence est donnée par l'expérience et la réalisation de \emph{toutes} les expériences est en réalité impraticable. Le couplage simple reste théorique lorsque le choix de l'ensemble $E_{\model{M}{S}}$ est une hypothèse de travail. Néanmoins, nous avons vu que le produit fibré correspondait pour les ensembles à un produit cartésien suivi d'une sélection permettant de se ramener à l'ensemble de couples qui nous intéresse. Tout comme le produit de $\cat{Set}$ donne naissance à un coproduit dans $\cat{Abs}_S$, le produit fibré de $\cat{Set}$ devient une somme amalgamée dans $\cat{Abs}_S$: \begin{center} \includegraphics[page=17]{model-categories} \end{center} Pour cette construction, on suppose, en plus des deux modèles qui nous intéressent, un troisième modèle $\modelM_0$ plus abstrait que $\modelM_1$ et $\modelM_2$ (par les abstractions $\absA^0_1$ et $\absA^0_2$). La somme amalgamée de ce diagramme revient à calculer le produit fibré dans $\cat{Set}$. Celui-ci correspond, comme attendu, à un produit cartésien entre les faits de $\modelM_1$ et $\modelM_2$ restreint aux couples envoyés vers un fait identique par $f_{\absA^0_1}$ et $f_{\absA^0_2}$. Les deux abstractions $\absA_1$ et $\absA_2$ correspondent toujours aux projecteurs. La sémantique $\sigma_{\model{M}{12}^0}$ est donnée, comme pour le couplage simple, par universalité. Elle est donc unique et correspond à la restriction de la sémantique $\sigma_{\model{M}{12}}$ du couplage simple au sous-ensemble du produit cartésien imposé par $\modelM_0$. %% Plus $\modelM_0$ sera proche (en terme d'abstraction) de $\modelM_1$ et $\modelM_2$, plus la restriction sera fine\footnote{La meilleure restriction sera d'ailleurs obtenue lorsque $\modelM_0$ correspond au produit de $\modelM_2$ et de $\modelM_2$. Cependant, comme nous le verrons dans le paragraphe suivant ce calcul dépend fortement d'une connaissance explicite de $E_{\model{M}{S}}$.}. On remarquera d'ailleurs que lorsque le modèle $\modelM_0 = \modelM_{\bot}$, le modèle initial (le plus abstrait), la construction se ramène au couplage simple. Pour conclure, la somme amalgamée permet de coupler deux modèles en se restreignant à une partie commune identifiée par un troisième modèle. \paragraph{Construction duale.} % Si le coproduit permet de spécifier le couplage de modèles, il est naturel de considérer la composition de modèles induite par le produit de $\cat{Abs}_S$. Nous procédons comme pour le produit en analysant les diagrammes: \begin{center} \includegraphics[page=11]{model-categories} \end{center} Dans ce cas, et comme on pouvait l'attendre d'une construction duale, le produit dans $\cat{Abs}_S$ construit le dénominateur commun aux deux modèles le plus concret possible. Cependant, d'un point de vue catégorique, les calculs sont différents. Le produit de $\cat{Abs}_S$ ne résulte pas du coproduit de $\cat{Set}$ mais de la somme amalgamée, avec les faits de référence et les sémantiques pour sommet du diagramme. Ainsi, le modèle $\model{M}{12}$ correspond à l'union disjointe des faits de $\model{M}{1}$ et de $\model{M}{2}$ quotientés par la relation d'équivalence regroupant au sein d'une même classe les faits images d'un même fait de référence. %% D'un point de vue constructif moins intéressant que le coproduit, le produit trouvera un intérêt dans un contexte d'analyse (de code par exemple) afin d'extraire de deux modèles d'un même système la «meilleure» partie commune. À nouveau, cette construction dépend d'une connaissance approfondie des faits de référence et n'est donc pas applicable dans un certain nombre de cas. On peut envisager de faire endosser ce rôle à un autre modèle à travers un produit fibré dans $\cat{Abs}_S$, ce qui revient à considérer le diagramme suivant: \begin{center} \includegraphics[page=12]{model-categories} \end{center} Au final, on obtient un dénominateur commun $\model{M}{12}^0$ qui n'est pas le plus concret possible en général, mais qui est le plus concret possible vérifiant la composition induite par la construction de $\modelM_0$ à partir de $\modelM_1$ et $\modelM_2$. \FloatBarrier \section{Conclusion et perspectives} Cette courte section vise à rappeler les principaux résultats obtenus suite à notre approche théorique du multi-niveau ainsi que nos futures pistes de travail sur le sujet. \subsection{Conclusion} % Résumé des épisodes précédents Dans ce chapitre nous avons posé les fondements d'une description formelle et trans-formalisme pour la description et pour une meilleure compréhension de la modélisation multi-niveau. Nous avons commencé dans la section~\ref{sec:multiniveau} par la définition du terme multi-niveau en présentant différent types de modélisation multi-niveau: couplage de modèle, transformation de modèle et complexification. Nous avons déterminé que la modélisation multi-niveau était un cas particulier du multi-modèle, pratique dans laquelle plusieurs modèles sont assemblés afin de construire des modèles plus conséquents. Dans la modélisation multi-niveau s'ajoute une contrainte sur la représentation de cet assemblage, où les modèles sont rassemblés par niveaux et où nous pouvons décrire via des méthodes génériques comment assembler ces modèles selon leur niveau de représentation. Comme nous n'avons pas trouvé de cadre général suffisamment expressif pour parler de ces assemblages, nous avons décidé d'élaborer, section~\ref{sec:consmodel}, une définition générale de modèle qui puisse englober tous ces cas d'usage. S'intéresser à la notion de modèle nous a amené à différencier les termes de modèle, système et formalisme. Un modèle est, au final, un ensemble de faits, ce que nous décrivons ensuite formellement par un foncteur d'oubli. Le système n'est pas accessible et constitue l'inspiration d'un modèle expérimental, décrit par extension par le biais de mesures sur ce système. Le formalisme est quant à lui le principe organisateur des faits du modèle. Nous avons ensuite défini quelques types de modèles classiques (dynamiques, probabilistes, …). Enfin, dans la section~\ref{sec:compmodel}, nous nous penchons sur la description de la composition de plusieurs modèles, d'après les différentes méthodes d'assemblage que nous avons présenté plus tôt. Cette présentation nous amène à introduire quelques notions de théorie des catégorie, une théorie s'intéressant à la composition d'éléments opaques appelés objets et morphismes, afin d'introduire la catégorie des modèles. Dans ce cadre, nous avons pu exprimer clairement le rôle du modèle de référence comme garant de la sémantique commune à plusieurs modèles à assembler. Ce chapitre représente une toute première étape de défrichage qui a permis de mettre en lumière les résultats suivants: \begin{itemize} \item une définition de modèle, système et formalisme; \item la mise en évidence d'un rapport de chaque modèle avec sa sémantique, identifiée comme son lien avec un modèle de référence; \item la clarification de la flèche d'abstraction comme un morphisme de \cat{Abs}; \item l'éclaircissement des transformations de modèles à la lumière de \cat{Abs}: transformation verticale (abstraction) et horizontale (changement de point de vue); \item la présentation des différentes manières de composer plusieurs modèles au sein de \cat{Abs}: couplage simple, somme amalgamée de modèles (correspondant à un produit cartésien des faits de chacun des modèles restreint par la sémantique) et sa construction duale (correspondant au «dénominateur commun» entre les deux modèles considérés). \end{itemize} \subsection{Perspectives} Malgré la présentation de nombreux nouveaux concepts, il reste encore beaucoup à accomplir pour parfaire un cadre théorique pour l'intégration des niveaux d'organisation dans les modèles. % Trop abstrait, plus d'exemples concrets différents Le premier point est le manque d'applications pratiques décrites avec cet outil. Nous comptons, à court terme, écrire une section sur l'application à la modélisation proie/prédateur, système présenté en milieu de chapitre. De manière générale, nous avons manqué d'exemples à la fois concrets et suffisamment simples. Ainsi une perspective de travail à plus long terme est la présentation, dans le cadre que nous avons introduit, de nombreux autres exemples pouvant ainsi aider à affiner les constructions présentées section~\ref{sec:compmodel}. Parmi ces exemples, la question de la modélisation de l'activité du chapitre~\ref{chap:partie-activite} et la composition des trois modèles support de \otb du chapitre~\ref{chap:partie-otb} ont tout à fait leur place. À terme, nous comptons décrire au moins un cas d'application par type de transformation/couplage: \begin{itemize} \item isomorphisme (transformation horizontale), \item abstraction/raffinement (transformation verticale), \item couplage simple, \item somme de modèles, \item produit de modèles, \end{itemize} tout en mettant en évidence la classe de modèle utilisée: modèles dynamiques, modèles à champs, modèles probabilistes, etc. Le second point que nous souhaitons explorer est bien plus prospectif. Une fois quelques exemples traité dans notre formalisme, quels nouveaux outils peut-on développer pour analyser et automatiser la construction de modèles multi-niveau. Avec le recul, nous devrions être capable d'identifier des structures récurrentes dans l'établissement des modèles, suivant les objets d'études ou suivant les disciplines. Finalement, nous pourrons aborder notre objectif de recherche à long terme: notre outil est-il un cadre suffisant pour exprimer clairement le fonctionnement des systèmes complexes par le biais de mécanismes de complexification. Nous commencerons par décrire les exemples donnés section~\ref{sec:complexification} avec nos propres outils: le raffinement d'un modèle complexe de F. Polack et S. Stepney peut-il être décrit plus simplement dans notre cadre, peut-on pointer spécifiquement ce qui diffère d'un raffinement classique? La complexification dans les CNN et la complexification structurelle de A. Ehresmann et J.-P. Vanbermeersch peuvent-ils simplement s'exprimer dans notre cadre? % Autre définition pour la catégorie des modèles que \cat{Abs}?