Add a section about an algebra of models.

This commit is contained in:
Sergiu Ivanov 2015-12-07 23:40:51 +01:00
parent 5a0bf1d0be
commit 5b9ea9a11b
2 changed files with 159 additions and 0 deletions

View file

@ -16,3 +16,48 @@
biburl = {http://dblp.uni-trier.de/rec/bib/conf/pads/PotierSM13},
bibsource = {dblp computer science bibliography, http://dblp.org}
}
@article{Chilton2014146,
title = "An algebraic theory of interface automata ",
journal = "Theoretical Computer Science ",
volume = "549",
number = "",
pages = "146 - 174",
year = "2014",
note = "",
issn = "0304-3975",
doi = "http://dx.doi.org/10.1016/j.tcs.2014.07.018",
url = "http://www.sciencedirect.com/science/article/pii/S0304397514005611",
author = "Chris Chilton and Bengt Jonsson and Marta Kwiatkowska",
keywords = "Component-based design",
keywords = "Interfaces",
keywords = "Specification theory",
keywords = "Compositionality",
keywords = "Refinement",
keywords = "Substitutivity",
keywords = "Synthesis "
}
@article{rozenbergzoom2014,
author = {EHRENFEUCHT, ANDRZEJ and ROZENBERG, GRZEGORZ},
title = {ZOOM STRUCTURES AND REACTION SYSTEMS YIELD EXPLORATION SYSTEMS},
journal = {International Journal of Foundations of Computer Science},
volume = {25},
number = {03},
pages = {275-305},
year = {2014},
doi = {10.1142/S0129054114500142},
URL = {http://www.worldscientific.com/doi/abs/10.1142/S0129054114500142},
eprint = {http://www.worldscientific.com/doi/pdf/10.1142/S0129054114500142}
}
@misc{wholecell,
title = {Whole-cell modelling web page},
howpublished = {\url{http://www.wholecell.org/}}
}
@misc{combio,
title = {Combio web page},
howpublished = {\url{http://combio.abo.fi/}}
}

View file

@ -796,6 +796,120 @@ direction (\cite{DBLP:conf/pads/PotierSM13}, par exemple) ; je
voudrais appliquer l'expérience que j'ai acquise pour contribuer à ces
études.
\subsubsection{Algèbres de modèles}
L'un des problèmes centraux dans l'étude de systèmes complexes et
celui de composition de
modèles~\cite{Chilton2014146,rozenbergzoom2014}. Un système complexe
en tant qu'entité du monde réel est représenté par son modèle qui doit
souvent refléter certains aspects de sa complexité. On peut distinguer
deux approches à la représentation de la complexité. La première
consiste en l'imitation directe de toutes les caractéristiques
pertinentes du système ; le modèle construit pourra dans ce cas
répliquer le comportement du système modélisé, mais ne sera pas
forcement facile à comprendre. C'est notamment le cas de projets
récents qui visent à prédire le phénotype d'une cellule biologique à
partir de son génotype~\cite{wholecell} : les modèles de la cellule
fournis par ces projets combinent de manière ad hoc plusieurs modèles
existants dans le but d'assurer une modélisation fidèle ; cependant
les raisons derrière la plupart de comportements restent
inexpliquées. L'un des buts d'une telle approche serait de créer un
moule de la cellule biologique qui pourrait être ensuite utilisé pour
tourner des simulations et pour éviter ainsi une partie d'expériences
in vitro qui sont coûteuses et de longue durée.
L'autre approche à la représentation de la complexité est de modéliser
certaines propriétés locales nécessaires pour que le comportement
globale du modèle corresponde à celui du système. Cette approche
pourrait offrir une vue beaucoup plus détaillée sur les liens entre
les causes et les effets dans le système, et donnerait dans l'idéal
des façons de décomposer le modèle en sous-parties modulaires,
c'est-à-dire des parties dont les homologues on espérerait trouver
dans les modèles des autres systèmes. Toutefois, il est clair que ce
type d'analyse nécessite une compréhension plus profonde du système à
modéliser mais aussi des techniques de modélisation. Je souhaiterais
me concentrer sur ces techniques et travailler vers la formulation des
véritables algèbres de modèles, dans le cadre desquelles on pourrait
construire des modèles plus complexes à partir des plus simples, mais
aussi retrouver des blocs en lesquels un modèle existant peut être
décomposé.
Des résultats très intéressants sur un outil formel de combinaison de
modèles ont été présentés dans~\cite{Chilton2014146}. L'article
utilise les {\em automates d'interface} (interface automata) pour
représenter un composant d'un modèle. Un automate d'interface est
défini comme un alphabet d'événements d'entrée, un alphabet
d'événements de sortie, un ensemble de chaînes sur les deux alphabets
qui décrit les suites d'interactions possibles entre l'automate et
l'environnement, ainsi qu'un ensemble de chaînes qui mène l'automate
vers un état d'erreur. Une relation de raffinement est définie pour
les automates d'interface et ensuite des opération de compositions
sont introduites de sorte à être compatibles avec la relation de
raffinement.
La définition d'automates d'interface étant très générale, les
propriétés démontrées dans~\cite{Chilton2014146} sont applicables pour
une classe très large de modèles. Malheureusement, cette généricité
implique aussi que l'on ne peut déduire que des conclusions assez
générales pour être applicables à toute situation. Ce problème est
fort difficile à contourner, car il est inhérent à tout langage
générique. Dans ma recherche je compte utiliser le langage de la
théorie des catégories pour attaquer la modélisation modulaire.
Une catégorie est l'un des formalismes qui abstraient la notion de
structure mathématique elle-même. Une catégorie est défini comme une
collection d'« objets » et de « flèches » entre les objets, aucune
restriction n'étant imposée sur ce qu'un « objet » peut être, alors
que les flèches doivent respectée quelques propriétés de composition
très simples. (Le manuscrit~\cite{Adamek04} peut servir de référence.)
En plus d'être très générale, la terminologie de la théorie des
catégories admet des intuitions graphiques naturelles.
Malgré sa généralité, le langage des catégories permet de construire
certains objets non-triviaux. Par exemple, la figure~\ref{fig:prod}
défini l'objet produit $X_1\times X_2$ pour des objets $X_1$ et $X_2$
d'une catégorie quelconque. Dans la catégorie des ensembles, le
produit correspond au produit cartésien, dans la catégorie des groupes
le produit correspond au produit direct, etc. La figure~\ref{fig:prod}
définit le produit $X_1\times X_2$ comme un objet avec deux flèches
$\pi_1$ et $\pi_2$ qui vont vers $X_1$ et $X_2$ respectivement, tel
que si on prend n'importe quel autre objet $Y$ avec deux flèches $f_1$
et $f_2$ vers $X_1$ et $X_2$, il existe une seule flèche de $Y$ vers
$X_1\times X_2$ telle que $\pi_1\circ f = f_1$ et $\pi_2 \circ f =
f_2$ (le diagramme est dit commutatif dans ce cas).
\begin{figure}[h]
\centering
\begin{tikzpicture}[node distance=9mm]
\node (y) {$Y$};
\node[below=of y] (x1x2) {$X_1\times X_2$};
\node[base left=of x1x2] (x1) {$X_1$};
\node[base right=of x1x2] (x2) {$X_2$};
\draw[->] (y) -- node[midway,auto,swap] {$f_1$} (x1);
\draw[->] (x1x2) -- node[midway,auto] {$\pi_1$} (x1);
\draw[->] (y) -- node[midway,auto] {$f_2$} (x2);
\draw[->] (x1x2) -- node[midway,auto,swap] {$\pi_2$} (x2);
\draw[->,dashed] (y) -- node[pos=.65,auto] {$\exists! f$} (x1x2);
\end{tikzpicture}
\caption{La définition d'un produit dans une catégorie}
\label{fig:prod}
\end{figure}
Il existe d'autres façons de construire des objets composés qui, grâce
à la généralité des catégories, pourraient être appliquées à des
modèles très différents. L'avantage de l'approche catégorique par
rapport à celle proposée dans~\cite{Chilton2014146} seraient que, dans
la théorie des catégories, il est aussi possible de préciser
formellement quelles propriétés une catégories devrait avoir pour
qu'une certaine manière de composer les objets soit
faisable. Autrement dit, le langage des catégories est assez général
pour pouvoir formuler des propriétés très générales concernant des
classes vastes d'objets aussi bien que des propriétés bien concrètes,
valables dans certains cas particuliers uniquement. Je souhaite donc
m'investir dans l'exploration des possibilités d'appliquer l'approche
catégorique à la composition de modèles afin de contribuer à l'étude
de systèmes complexes.
\subsection{Old}
Mon projet de recherche vise tout d'abord à approfondir les travaux