Add a research project and a teaching project.

This commit is contained in:
Sergiu Ivanov 2017-03-25 17:04:48 +01:00
parent 79bb585fd5
commit 0e8eaed26e
3 changed files with 154 additions and 486 deletions

59
bib/evry.bib Normal file
View File

@ -0,0 +1,59 @@
@article{Caraguel2016,
title={Towards the Design of a Patient-Specific Virtual Tumour},
volume={2016},
ISSN={1748-6718},
url={http://dx.doi.org/10.1155/2016/7851789},
DOI={10.1155/2016/7851789},
journal={Computational and Mathematical Methods in Medicine},
publisher={Hindawi Publishing Corporation},
author={Caraguel, Flavien and Lesart, Anne-Cécile and Estève, François and van der Sanden, Boudewijn and Stéphanou, Angélique},
year={2016},
pages={112}
}
@unpublished{EchahedM2016,
TITLE = {{Parallel Graph Rewriting with Overlapping Rules}},
AUTHOR = {Echahed, Rachid and Maignan, Aude},
URL = {https://hal.archives-ouvertes.fr/hal-01408834},
NOTE = {working paper or preprint},
YEAR = {2016},
MONTH = Oct,
KEYWORDS = {parallel rewriting ; overlapping rewrite systems ; graph rewriting},
PDF = {https://hal.archives-ouvertes.fr/hal-01408834/file/longversion.pdf},
HAL_ID = {hal-01408834},
HAL_VERSION = {v1},
}
@inproceedings{MaignanS15,
author = {Luidnel Maignan and
Antoine Spicher},
editor = {Detlef Plump},
title = {Global Graph Transformations},
booktitle = {Proceedings of the 6th International Workshop on Graph Computation
Models co-located with the 8th International Conference on Graph Transformation
{(ICGT} 2015) part of the Software Technologies: Applications and
Foundations {(STAF} 2015) federation of conferences, L'Aquila, Italy,
July 20, 2015.},
series = {{CEUR} Workshop Proceedings},
volume = {1403},
pages = {34--49},
publisher = {CEUR-WS.org},
year = {2015},
url = {http://ceur-ws.org/Vol-1403/paper4.pdf},
timestamp = {Mon, 30 May 2016 16:28:37 +0200},
biburl = {http://dblp.uni-trier.de/rec/bib/conf/gg/MaignanS15},
bibsource = {dblp computer science bibliography, http://dblp.org}
}
@inproceedings{EdwardsM2016,
TITLE = {{DEM-Systems: a new type of adaptive system}},
AUTHOR = {Edwards, Roderick and Maignan, Aude},
URL = {https://hal.archives-ouvertes.fr/hal-01326782},
BOOKTITLE = {{AUTOMATA 2016}},
ADDRESS = {Zurich, Switzerland},
YEAR = {2016},
MONTH = Jun,
KEYWORDS = {self-reproducing systems ; self-organizing systems ; cellular automata},
HAL_ID = {hal-01326782},
HAL_VERSION = {v1},
}

View File

@ -252,6 +252,12 @@ formels généraux. Je souhaite également pouvoir faire profiter les
étudiants des connaissances pluridisciplinaires en informatique que
j'ai acquises.
Plus concrètement, mes expériences d'enseignement et de programmation
système assez variées me permettront de reprendre et de piloter
l'enseignement de la matière {\em Systèmes d'exploitation}. Je
pourrais également m'investir dans l'enseignement de matières avancées
pour le niveau master.
Lors de mes interventions en tant que moniteur, je me suis beaucoup
appuyé sur les méthodes graphiques de transmission
d'information. Toutes mes explications étaient basées sur des schémas,

View File

@ -10,7 +10,8 @@
bib/algebra.bib,
bib/complex-sys.bib,
bib/sivanov.bib,
bib/sivanov-extra.bib
bib/sivanov-extra.bib,
bib/evry.bib
]
\section{Activités de recherche}
@ -632,498 +633,100 @@ rapporté des articles pour plusieurs éditions de {\em International
\clearpage
\subsection{Projet de recherche}
Mon projet de recherche vise à appliquer l'expérience que j'ai acquise
en explorant les pistes énumérées dans les sections précédentes à
l'étude des systèmes complexes et notamment à la compréhension et à la
gestion de la complexité de ces systèmes. Ma stratégie consiste donc à
employer le savoir formel des structures mathématiques et
informatiques abstraites afin de construire des modèles qui, en plus
d'être rapprochés aux systèmes modélisés en ce qui concerne le
comportement, soient modulaires ou au moins explicables par découpage
en sous-parties.
\subsection{Projet de recherche : modélisation et méthodes formelles pour la médecine}
Une grande partie de mes travaux de recherche s'axent autour des
méthodes et outils formels pour la représentation des systèmes
biologiques et, plus généralement, des systèmes complexes. Je me suis
beaucoup penché sur les propriétés calculatoires de ces systèmes, en
les représentant en tant que modèles de calcul. Les modèles de calcul
discrets que j'ai abordés peuvent être classés dans les trois
catégories suivantes :
\begin{itemize}
\item {\em modèles structurels} qui représentent de façon plus ou
moins fidèle la structure des objets manipulés (chaînes de
caractères pour les biomolécules, tableaux pour des structures
spatiales, etc.),
\item {\em modèles quantitatifs} qui représentent plutôt les quantités
des objets, sans distinguer les objets individuels (multiensembles
d'objets, machines à registres, etc.),
\item {\em modèles qualitatifs} qui se focalisent, à un niveau
d'abstraction très élevé, sur les interactions entre les entités du
système, sans parler ni de leur structure, ni de leur quantité.
\end{itemize}
Le but général que je me propose étant audacieux, il est important de
préciser que les travaux que je compte mener (et que j'ai déjà menés)
ont des applications concrètes dans les domaines respectifs. Autrement
dit, ma recherche vise d'abord à contribuer à la résolution d'un
problème concret et à en tirer des conclusions généralisatrices qui
peuvent être appliquées à d'autres situations et qui ont donc une
valeur en elles-mêmes.
Récemment, je me suis proposé d'élargir mes compétences de
modélisation biologique en m'attaquant à la modélisation logicielle
d'un phénomène cellulaire concret (l'action du cytosquelette lors
de l'activation des plaquettes sanguines). Cette recherche m'a permis,
entre autre, de prendre un contact direct avec le milieu de la
biologie expérimentale pour la médecine.
Mon projet de recherche se compose de trois parties. La première se
focalise sur les sujets que j'ai abordés pendant mes études
doctorales, y compris ceux qui n'ont pas été présentés dans le
manuscrit de thèse. La deuxième partie consiste en l'étude des
structures algébriques et topologiques fondamentales afin de les
utiliser pour la conception des composants pour la construction
modulaire de modèles de systèmes complexes. La troisième partie se
focalise sur les implémentations logiciel de structures abstraites
dans le but d'utiliser la puissance de calcul des ordinateurs modernes
pour la simulation de systèmes et la vérification de modèles.
À la suite de mes travaux se situant à de différents niveaux
d'abstraction, je me suis familiarisé avec toute la chaîne de
modélisation biologique, en commençant par les représentations
phénoménologiques les plus proches aux systèmes modélisés et en
finissant par les approches les plus abstraites (modèles de calcul
qualitatifs). Cette synergie de compétences me permettra de contribuer
directement aux travaux de recherche menés au laboratoire IBISC.
Les sous-sections suivantes donnent une vue plus détaillée sur les
trois parties de mon projet de recherche.
Dans les sections suivantes, je donne plus de détails sur mes
contributions potentielles.
\subsubsection{Langages formels et calcul formel}
La plupart de contributions que j'ai faites pendant mon doctorat
s'inscrivent dans le domaine des langages formels et de l'étude
formelle du calcul. L'approche souvent adoptée dans ce domaine est de
traiter l'évolution dynamique de systèmes comme une suite de
configurations discrète, décrite par un langage formel. Dans cette
optique, le comportement d'un système peut être décrit pas des règles
de réécriture de chaînes de caractère formelles. Les deux types de
modèles de réécriture dont je compte approfondir ma compréhension sont
les systèmes d'insertion/effacement et les systèmes de réécriture de
multiensembles.
\subsubsection{Croissance tumorale en tant que modèle de réécriture}
L'étude de la croissance tumorale est une piste de recherche très
importante dans la médecine moderne. Il existe plusieurs approches à
la présentation de ce processus ; l'une est de représenter les
cellules tumorales et les vaisseaux sanguins qui les alimentent sur
une grille et de simuler la tumeur avec des règles locales,
s'approchant ainsi des automates
cellulaires~\cite{Caraguel2016}. Cette approche, bien que très
efficace, a des limitations importantes : elle ne simule correctement
la croissance d'une tumeur que sur une période de temps relativement
courte (quelques semaines). Les raisons pour ces limitations sont
intrinsèques à l'approche : une grille à deux dimensions est choisie
pour simplifier les calculs et assurer leur stabilité. S'approcher
davantage du phénomène réel risque à la fois d'augmenter beaucoup le
coût de la simulation et de nécessiter des ajustements au modèle qui
le feront dévier des automates cellulaires.
\paragraph{Insertion/effacement}
L'une des premières pistes que j'aborderais dans ce contexte sera la
continuation de l'étude des systèmes d'insertion/effacement avec des
contextes de petite taille, et particulièrement les systèmes dont
toutes les règles ne possèdent que le contexte à gauche. La complétude
(ou l'incomplétude) computationnelle de ces systèmes n'a toujours pas
été démontrée. Au delà de la complétude computationnelle qui n'est
qu'une caractérisation très approximative du comportement possible de
ces systèmes, il serait très intéressant d'étudier de plus près la dynamique
engendrée par les règles d'insertion et d'effacement. Je
voudrais notamment utiliser dans ce but les graphes de dérivation, qui
définissent un protocole de représentation graphique de dérivations,
qui code chaque insertion par un trait, et chaque effacement par
un trait pointillé.
Je voudrais travailler sur la conception des modèles formels qui
puissent à la fois exprimer la croissance des tumeurs d'une façon plus
naturelle et dont la simulation ait un coût raisonnable. Une première
approche à ce problème serait l'application de la réécriture parallèle
de graphes pour exprimer la division cellulaire dans le cadre du tissu
tumoral. Dans mon travail, je pourrais m'appuyer sur le
résultat~\cite{EchahedM2016} par Aude \textsc{Magnan} et Rachid
\textsc{Echahed}, ainsi que sur l'article~\cite{MaignanS15} par
Luidnel \textsc{Maignan} et Antoine \textsc{Spicher}. Ces deux
publications présentent des approches à la réécriture parallèle de
graphes avec des règles qui peuvent se chevaucher. Les contacts actifs
que je maintiens avec ces chercheurs me permettront d'étudier le
problème de façon approfondie.
\begin{figure}[h]
\centering
\vspace{2mm}
\begin{tikzpicture}[node distance=5pt and -20pt]
\node[nsymb] (x) {$\nbold x$};
Une approche plus ambitieuse à la modélisation de la croissance
tumorale serait l'application des modèles non-conventionnels. Un
exemple prometteur seraient les automates cellulaires avec des règles
de division cellulaire~\cite{EdwardsM2016}. Situé entre les automates
cellulaires et le systèmes de Lindenmayer (communication personnelle
avec Aude \textsc{Maignan}), ce modèle pourrait introduire de façon
naturelle la dynamique de la croissance dans les modèles à base
d'automates cellulaires déjà utilisés pour la modélisation de
tumeurs. Mon expérience de travail sur les modèles de calcul non
conventionnels me permettra d'évaluer l'applicabilité du modèle choisi
pour la modélisation de la croissance tumorale et de l'ajuster au cas
concrets.
% The symbols of the first red branch consisting of F-symbols.
\node[nsymb,below right=of x] (n1) {$\nbold F_1$};
\node[nsymb,below right=of n1] (n2) {$\nbold F_0$};
\node[nsymb,below right=of n2] (n3) {$\nbold F_1$};
\node[nsymb,below right=of n3] (n4) {$\nbold F_0$};
\node[nsymb,below right=of n4] (n5) {$\nbold F_1$};
\node[nsymb,below right=of n5] (n6) {$\nbold F_0$};
\node[nsymb,below right=of n6] (n7) {$\nbold F_1$};
\node[nsymb,below right=of n7] (n8) {$\nbold F_0$};
\node[nsymb,below right=of n8] (a01) {$\nbold a_0$};
% The first red branch itself.
\draw[insertion] (x) -- (n1) -- (n2) -- (n3) -- (n4) -- (n5) -- (n6)
-- (n7) -- (n8) -- (a01);
% The nodes of the leftmost green branch.
\node[nsymb,right=0 and 10pt of a01] (n9) {$\nlight X_{0,0}$};
\node[nsymb,above right=of n9] (n10) {$\nlight Y_{0,0}$};
\node[nsymb,above right=of n10] (n11) {$\nlight X_{0,1}$};
\node[nsymb,above right=of n11] (n12) {$\nlight Y_{0,1}$};
\node[nsymb,above right=of n12] (n13) {$\nlight X_{0,0}$};
\node[nsymb,above right=of n13] (n14) {$\nlight Y_{0,0}$};
\node[nsymb,above right=of n14] (n15) {$\nlight X_{0,1}$};
\node[nsymb,above right=of n15] (n16) {$\nlight Y_{0,1}$};
\node[nsymb] at ($(n16)+(16pt,20pt)$) (d1) {$\nbold D_{0,1}$};
% The deletions connecting together the leftmost green branch.
\draw[deletion] ($(a01)+(9pt,0)$) -- (n9);
\foreach \i / \j in {9/10, 10/11, 11/12, 12/13, 13/14, 14/15, 15/16} {
\draw[deletion] ($(n\i)+(-1pt,7pt)$) -- ($(n\j)+(-4.5pt,-7pt)$);
}
\draw[deletion] ($(n16)+(1pt,7pt)$) -- ($(d1)+(-10pt,-6pt)$);
% The insertions of the nodes on the leftmost green branch by the
% nodes on the leftmost red branch.
\foreach \i / \j in {8/9, 7/10, 6/11, 5/12, 4/13, 3/14, 2/15, 1/16} {
\draw[insertion,shorten >=-3pt, shorten <=-5pt] (n\i) -- (n\j);
}
\draw[insertion,shorten >=-3pt, shorten <=-7pt] (x) -- (d1);
% The nodes of the red branch starting at D_{0,1}.
\node[nsymb,below right=of d1] (n17) {$\nbold D_{0,0}$};
\node[nsymb,below right=of n17] (n18) {$\nbold D_{0,1}$};
\node[nsymb,below right=of n18] (n19) {$\nbold D_{0,0}$};
\node[nsymb] at ($(n19)+(3pt,-20pt)$) (b1) {$\nbold B_0$};
\node[nsymb,below right=of b1] (a11) {$\nbold a_1$};
% The red branch starting at D_{0,1} itself.
\foreach \i / \j in {d1/n17, n17/n18, n18/n19} {
\draw[insertion] ($(\i)+(-1.5pt,-6pt)$) -- ($(\j)+(-5pt,8pt)$);
}
\draw[insertion,shorten >=-1pt] ($(n19)+(0pt,-6pt)$) -- (b1) -- (a11);
% The deletions coming from the leftmost green branch over to the
% second red branch from the left.
\draw[deletion] ($(n10)+(4pt,5pt)$) to[out=28,in=-105] ($(n19)+(-5pt,-6pt)$);
\draw[deletion] ($(n12)+(5pt,6pt)$) to[out=28,in=-105] ($(n18)+(-6pt,-6pt)$);
\draw[deletion] ($(n14)+(4pt,5pt)$) to[out=28,in=-105] ($(n17)+(-6pt,-6pt)$);
\draw[deletion] ($(a01)+(3pt,-5pt)$) to[out=-35,in=-105] ($(b1)+(-4pt,-8pt)$);
% The nodes of the second leftmost green branch.
\node[nsymb] at ($(a11)+(19pt,19pt)$) (n20) {$\nlight X_{1,0}$};
\node[nsymb,above right=of n20] (n21) {$\nlight Y_{1,0}$};
\node[nsymb,above right=of n21] (n22) {$\nlight X_{1,1}$};
\node[nsymb,above right=of n22] (n23) {$\nlight Y_{1,1}$};
\node[nsymb] at ($(n23)+(16pt,19pt)$) (d2) {$\nbold D_{1,1}$};
% The deletions connecting together the second green branch.
\draw[deletion] ($(a11)+(6pt,4pt)$) -- ($(n20)+(-8pt,-6pt)$);
\foreach \i / \j in {20/21, 21/22, 22/23} {
\draw[deletion] ($(n\i)+(-2pt,7pt)$) -- ($(n\j)+(-5pt,-7pt)$);
}
\draw[deletion] ($(n23)+(1pt,7pt)$) -- ($(d2)+(-10pt,-6pt)$);
% The insertions of the nodes on the second leftmost green branch.
\foreach \i / \j in {19/20, 18/21, 17/22} {
\draw[insertion,shorten >=-2pt, shorten <=-2pt] (n\i) -- (n\j);
}
\draw[insertion,shorten >=-2pt, shorten <=-2pt] (d1) -- (n23);
\draw[insertion,shorten >=-3pt, shorten <=-7pt] (x) to[out=-5,in=172] (d2);
% The nodes of the third leftmost red branch.
\node[nsymb] at ($(d2)+(5pt,-19pt)$) (n24) {$\nbold D_{1,0}$};
\node[nsymb] at ($(n24)+(3pt,-19pt)$) (b2) {$\nbold B_1$};
\node[nsymb,below right=of b2] (a02) {$\nbold a_0$};
% The red branch itself.
\draw[insertion] ($(d2)+(-1.5pt,-6pt)$) -- ($(n24)+(-5pt,8pt)$);
\draw[insertion,shorten >=-1pt] ($(n24)+(0pt,-6pt)$) -- (b2) -- (a02);
% The deletions of symbols on the third leftmost red branch.
\draw[deletion] ($(n21)+(4pt,5pt)$) to[out=28,in=-105] ($(n24)+(-5pt,-6pt)$);
\draw[deletion] ($(a11)+(8pt,1pt)$) to[out=15,in=-105] ($(b2)+(-3pt,-6pt)$);
% The symbols of the rightmost green branch.
\node[nsymb] at ($(a02)+(19pt,19pt)$) (n25) {$\nlight X_{0,0}$};
\node[nsymb,above right=of n25] (n26) {$\nlight Y_{0,0}$};
\node[nsymb] at ($(n26)+(16pt,19pt)$) (d3) {$\nbold D_{0,0}$};
% The deletions connecting the rightmost green branch together.
\draw[deletion] ($(a02)+(6pt,4pt)$) -- ($(n25)+(-8pt,-6pt)$);
\draw[deletion] ($(n25)+(-2pt,7pt)$) -- ($(n26)+(-4.5pt,-7pt)$);
\draw[deletion] ($(n26)+(1pt,7pt)$) -- ($(d3)+(-10pt,-6pt)$);
% The insertions of the symbols on the rightmost green branch.
\draw[insertion,shorten >=-2pt, shorten <=-2pt] (n24) -- (n25);
\draw[insertion,shorten >=-2pt, shorten <=-2pt] (d2) -- (n26);
\draw[insertion,shorten >=-3pt, shorten <=-7pt] (x) to[out=-3,in=170] (d3);
% The rightmost red branch.
\node[nsymb] at ($(d3)+(4pt,-18pt)$) (b3) {$\nbold B_0$};
\node[nsymb,below right=of b3] (a12) {$\nbold a_1$};
% The rightmost red branch itself.
\draw[insertion,shorten >=-1pt] ($(d3)+(0pt,-6pt)$) -- (b3) -- (a12);
% The deletions of symbols on the rightmost red branch.
\draw[deletion] ($(a02)+(8pt,1pt)$) to[out=15,in=-105] ($(b3)+(-3pt,-6pt)$);
\end{tikzpicture}
\vspace{-7mm}
\caption{Un graphe de dérivation pour un système
d'insertion/effacement de taille $(1,1,0; 1,1,0)$ qui engendre un
langage non-algébrique~\cite[Section~8]{JL2005}}
\label{fig:insdel:lft-2n}
\end{figure}
La figure~\ref{fig:insdel:lft-2n} montre un exemple de comportement
dynamique que peut avoir un système d'in\-ser\-tion/ef\-face\-ment
avec des règles qui n'insèrent et n'effacent qu'un symbole à la fois
et qui vérifient uniquement les contextes à gauche (des règles de
taille $(1,1,0; 1,1,0)$). Il s'agit du système décrit
dans~\cite[Section~8]{JL2005} qui possède un taux de croissance
exponentiel et qui engendre donc un langage non-algébrique. Dans la
figure~\ref{fig:insdel:lft-2n} nous avions mis en gras les symboles
terminaux ainsi que tous les symboles qui insèrent des symboles
gras. Avec ce code couleur on voit immédiatement que le graphe
correspondant à une dérivation de ce système consiste en des chemins
gras qui interagissent par le biais de structures gris clair. En
outre, on remarque la croissance exponentielle des chemins gras, de
droite à gauche : effectivement, le chemin gras de droite contient un
symbole $D$, celui d'avant en contient 2, le troisième chemin de
droite contient 4 symboles $D$, alors que le chemin gras tout à
gauche contient déjà 8 symboles $F$.
Nous tirons deux conclusions de cette analyse superficielle de la
figure~\ref{fig:insdel:lft-2n}. D'un côté, on observe que les règles
d'insertion et d'effacement de petite taille peuvent avoir un
comportement assez complexe qui dépasse même la puissance de
modélisation des automates à pile. D'un autre côté, on note
l'efficacité visuelle des graphes de dérivation qui offrent une vue
d'ensemble sur une dérivation sans perdre les détails dynamiques
essentiels, c'est-à-dire les éléments de comportement qui ont une
influence sur le langage engendré. Cette propriété des graphes de
dérivation les rend très intéressants pour toute étude de la dynamique
des systèmes d'insertion/effacement.
\paragraph{Réécriture de multiensembles}
La réécriture de multiensembles, et notamment les systèmes à
membranes, est le domaine dans lequel j'ai fait mes plus anciennes
contributions scientifiques et dont plusieurs questions continuent à
m'intéresser à présent. Dans la continuité des travaux menés pendant
mon doctorat, je voudrais poursuivre l'étude du problème de
l'universalité pour ce modèle et en particulier l'étude des techniques
d'optimisations de la taille des systèmes universels.
D'un autre côté, je voudrais me concentrer plus sur l'étude de
systèmes à membranes avec des règles dynamiques, dites polymorphes,
que nous avions introduits dans~\cite{AI2011} et dont une variante
restreinte j'ai étudiée dans~\cite{DBLP:conf/membrane/Ivanov14}. Le
comportement de ces systèmes ressemble au celui de cellules vivantes
dans le fait que les règles qui dirigent l'évolution peuvent être
modifiées, ce qui donne une dimension de dynamisme en plus. En outre, le
polymorphisme complexifie le rapport entre les étapes consécutives
d'évolution, car une configuration du système détermine non seulement
la configuration suivante, mais aussi la forme des règles qui seront
utilisées plus tard dans l'évolution.
La figure~\ref{fig:superexponential-growth} montre un exemple d'un
système polymorphe qui possède un taux de croissance
super-exponentiel. Ce système a deux règles : la première qui a
initialement la forme $a\to a$, et la deuxième qui ne varie pas et qui
double le nombre de $a$ dans la partie droite de la première
règle. Ainsi, après $k$ pas d'évolution, la première règle aura la
forme $a\to a^{2^{k}}$. Par conséquence, après le même nombre de pas,
la membrane extérieure du système contiendra $2^{\frac{k(k-1)}{2}}$
copies de $a$.
\begin{figure}[h]
\centering
\vspace{2mm}
\begin{tikzpicture}
\node (r2) {$2:a\to aa$};
\node[below=.1 of r2] (w1L) {$a$};
\membrane{$1R$}{1R}{}{fit={(r2) (w1L)}}
\membrane{$1L$}{1L}{$a$}{below left=-15.5pt and 13pt of 1R}
\node[below left=5pt and -25pt of 1R] (ws) {$a$};
\membrane{$s$}{s}{}{fit={(1L) (1L label) (1R) (1R label) (ws)}}
\end{tikzpicture}
\caption{Un P système polymorphe avec un taux de croissance
super-exponentiel}
\label{fig:superexponential-growth}
\end{figure}
On remarque deux pistes d'exploration possibles pour les systèmes à
membranes polymorphes. La première reste dans le cadre de l'étude
formelle et se focalise sur le rapport entre les restrictions que l'on
peut imposer statiquement et le comportement dynamique des systèmes
avec ces restrictions, particulièrement leur puissance de calcul. La
deuxième piste mène vers une collaboration interdisciplinaire et
consiste à trouver des parallèles entre la complexité induite par le
polymorphisme et la complexité intrinsèque des systèmes complexes tels
que l'on trouve en biologie, en physique, etc. De telles parallèles
permettrait d'approfondir la compréhension de cette complexité et
suggérerait des manières de la gérer.
Une autre direction majeure de recherche qui m'attire fortement est la
conception de cadres généraux pour réunir plusieurs variantes de
systèmes à membranes. Étant donnée la variété importante de variantes
de ces systèmes, avoir des cadres généraux permet tout d'abord
d'unifier la terminologie qui est souvent dérivée de diverses domaines
de la biologie et donc hétérogène. Deuxièmement, cette unification
offre souvent des perspectives très éclairantes sur les combinaisons
possibles d'ingrédients qui n'ont pas encore été étudiées.
\paragraph{Autres modèles de calcul} En plus des deux modèles de
calculs déjà mentionnés dans cette sous-section, je voudrais en
continuer l'exploration d'autres ayant des liens de parenté forts avec
les systèmes d'insertion/effacement et avec la réécriture de
multiensembles. Ainsi, je suis intéressé par les machines à registres
universelles de petite taille et je voudrais travailler sur la
réduction de la taille des
constructions existantes. Cela permettrait d'améliorer les systèmes à
membranes universels en réduisant le nombre de règles, de symboles, ou
d'autres ingrédients utilisés.
Je voudrais également continuer l'étude de réseaux de processeurs
évolutionnaires, mais au lieu de me pencher sur la caractérisation de
leur puissance d'expression je m'intéresserais plutôt à la dimension
parallèle inhérente à ce modèle de calcul. Je voudrais notamment
explorer le lien entre les réseaux de processeurs évolutionnaires et
les systèmes à membranes ; en effet, dans les cas des deux modèles on
retrouve des processeurs qui échangent des données en réseau. Un autre
trait commun est la possibilité de distinguer deux types de
parallélisme : d'une part, le traitement des données dans un
processeur se fait de façon parallèle ; d'autre part, l'activité des
processeurs eux-mêmes se déroule parallèlement, avec une barrière de
synchronisation globale s'imposant à chaque étape d'évolution. Il me
paraît intéressant de concevoir un cadre général pour ces deux modèles
afin d'explorer à un haut niveau d'abstraction les manières
différentes dont le calcul parallèle pourrait être organisé. En plus,
ce cadre généralisant pourrait indiquer d'autres membres de la famille
de modèles de calcul dont les réseaux de processeurs évolutionnaires
et les systèmes à membranes font partie.
Encore un modèle de calcul intrinsèquement parallèle qui m'attire
fortement sont les automates cellulaires, qui représentent
essentiellement des grilles d'automates finis qui communiquent. Les
automates dans les nœuds de la grille n'ont pas de bande, donc la
seule information dont ils peuvent disposer est leur état et les états
des voisins dans un voisinage défini statiquement. Les unités
atomiques de calcul des automates cellulaires sont ainsi moins
puissantes que les processeurs dans les réseaux de processeurs
évolutionnaires ou les membranes dans les systèmes à membranes ;
néanmoins, en terme de pouvoir d'expression les automates cellulaires
sont équivalents aux machines de Turing. On observe donc un
considérable écart entre l'expressivité globale d'un automate
cellulaire et l'expressivité locale de chaque unité. Par conséquent,
ce modèle de calcul semble être un contexte bien adapté à l'étude de
rapports entre les comportements locaux et globaux de systèmes
complexes. En effet, des travaux ont déjà été menés dans cette
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 on espérerait trouver les homologues
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 de
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érations de composition
sont introduites de sorte à être compatibles avec la relation de
raffinement.
La définition d'un automate d'interface étant très générale, les
propriétés démontrées dans~\cite{Chilton2014146} sont applicables à
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. Je suis néanmoins convaincu qu'un langage riche permettant
non seulement d'exprimer des propriétés à un haut niveau
d'abstraction, mais aussi de décrire des objets spécialisés, peut
donner des indices sur la résolution du problème de généricité. Dans
ma recherche je compte utiliser la théorie des catégories comme un tel
langage.
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 respecter quelques propriétés de composition
basiques. (La monographie~\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 l'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égorielle 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 riche
pour pouvoir formuler des propriétés 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égorielle à la composition de modèles afin de contribuer à l'étude
de systèmes complexes.
\subsubsection{Programmation algébrique}
En plus d'être génériques et flexibles, les structures catégorielles
et, plus généralement, algébriques et topologiques se fondent sur des
systèmes d'axiomes assez minimaux, ce qui rend leur représentation sur
l'ordinateur assez naturelle. Il ne s'agit pas de la correspondance
entre le modèle de calcul derrière les ordinateurs modernes qui n'est
certainement pas particulièrement adapté au calcul symbolique, mais
plutôt du fait que les systèmes d'axiomes minimaux se prêtent
facilement à une description sous la forme d'une spécification qui
peut être utilisée ensuite pour de la validation automatique. Ainsi,
la pratique d'incorporer certains aspect catégorielles dans le
systèmes de typage se voit de plus en plus adoptée par les
développeurs de langages de programmation.
Un exemple de langage qui a incorporé un nombre important de concepts
catégoriels est Haskell~\cite{haskellorg}. Ce langage permet de
manipuler directement des structures telles que monoïdes, foncteurs,
monades, etc. afin de pouvoir spécifier des propriétés assez fortes
sur les types, et notamment de factoriser les structures de données
utilisées ainsi que le code source. Il s'agit donc d'un travail de
découpage des structures de données et du code source en sous-parties,
ce qui est un cas particulier du problème général de décomposition de
modèles décrit dans la section précédente. Par conséquent, je trouve
très intéressant de représenter toute ébauche de théorie algébrique de
modèles sur l'ordinateur dans un langage haut niveau, car cela
permettra d'une part de vérifier la justesse des définitions et de les
tester en exécution assez tôt, et d'autre part de s'inspirer de
l'étude formelle derrière les langages haut niveau pour attaquer les
problèmes de modélisation de systèmes complexes.
\subsubsection{Outils logiciels pour l'application des méthodes formelles}
La recherche sur la conception et l'application des modèles formels
pour la biologie inclut une phase de validation. Cette phase est
souvent automatisée pour en réduire les coûts. J'ai déjà développé des
outils pour valider certains modèles formels (le simulateur des
systèmes à réactions~\cite{brsim}, par exemple), ainsi que d'autres
outils informatiques pour la modélisation biologique ou pour d'autres
usages. Je voudrais maintenant appliquer mon expérience de
programmation assez variée à la conception et au développement des
logiciels pour l'application des modèles formels à la médecine de
précision.
\printbibliography[resetnumbers=true]
\end{refsection}