diff --git a/bib/complex-sys.bib b/bib/complex-sys.bib index 8761970..3203cd5 100644 --- a/bib/complex-sys.bib +++ b/bib/complex-sys.bib @@ -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/}} +} diff --git a/recherche.tex b/recherche.tex index 73be4d0..61f57bc 100644 --- a/recherche.tex +++ b/recherche.tex @@ -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