\begin{refsection}[ bib/hdr_noverlan.bib, bib/hdr_verlan.bib, bib/insdel.bib, bib/pn.bib, bib/psystems.bib, bib/mcrs.bib, bib/arrays.bib, bib/programming.bib, bib/algebra.bib, bib/complex-sys.bib, bib/sivanov.bib, bib/sivanov-extra.bib, bib/evry.bib ] \section{Activités de recherche} Les sujets de recherche que j'ai abordés jusqu'à maintenant se situent dans les domaines du calcul inspiré par la biologie, des langages formels, et de la médecine de précision et des systèmes complexes plus généralement. Pour ma thèse de doctorat, j'ai principalement travaillé sur des systèmes de réécriture de chaînes de caractères et de multiensembles. Le sujet de mon postdoc porte sur la modélisation biomécanique du squelette cellulaire. Au sein du laboratoire IBISC, je travaille sur les méthodes formelles pour la médecine de précision et pour les systèmes complexes. Mes travaux de recherche ont donné lieu à de nombreuses collaborations nationales et internationales, notamment avec Nicolas \textsc{Glade}, Rudolf \textsc{Freund} et Ion \textsc{Petre}. Dans cette section, je résume les résultats obtenus pendant mon doctorat et par la suite de ma carrière scientifique, dans l'ordre chronologique inverse. \subsection{Travaux au laboratoire IBISC} Avec mon intégration au sein de l'équipe COSMO du laboratoire IBISC, ma recherche a connu une plus grande ouverture sur l'étude des systèmes complexes, notamment dans le contexte de la médecine de précision. Cette ouverture correspond à la vision que j'avais au démarrage de mes travaux de thèse et suit naturellement aux travaux formels que j'ai réalisés. \subsubsection{Thérapies séquentielles pour la médecine de précision} La {\em médecine personnalisée} est un domaine scientifique émergeant ayant pour objet de définir de nouveaux paradigmes en {\em médecine} afin de {\em personnaliser} le traitement au patient~\cite{BianeD17,BianeDK16,Caraguel2016}. Elle fonde cet objectif dans l'analyse des données omiques (génomiques, intéractomiques, etc.) dans la perspective d'étudier les pathologies à l'échelle moléculaire. L'un des enjeux majeur dans ce domaine est d'assister à la prise de décision clinique afin de guider le suivi thérapeutique. La médecine des réseaux cherche à atteindre les objectifs de la médecine personnalisée en intégrant les données disponibles pour un patient dans des modèles formels de systèmes dynamiques à base de graphes~\cite{BianeD17,BianeDK16}. L'un de ces modèles sont les réseaux booléens : des ensembles de fonctions booléennes agissant sur un ensemble fini de variables booléennes. Ces réseaux commencent leur évolution à partir d'un état initial et ensuite mettent à jour les valeurs de certaines des variables selon les valeurs des fonctions booléennes associées. Souvent, une seule variable est modifiée à la fois (mode de mise à jour asynchrone), ce qui correspond bien aux dynamiques observées des réseaux biologiques. Les réseaux booléens pouvant représenter assez naturellement divers réseaux biologiques, et particulièrement les réseaux de signalisation, l'étude des propriétés dynamiques de ce modèle permet de faire des conclusions non triviales sur les propriétés du système biologique représenté. Notamment, l'étude~\cite{BianeD17} montre une application de cette approche à l'inférence des causes du cancer du sein. Plus concrètement, des réseaux booléens avec des variables de contrôle sont introduits ; la thérapie devient alors une modification des ces variables de contrôle qui dévie les trajectoires du réseau booléen vers les états stables désirés (sains). Au sein de l'équipe COSMO, je me penche davantage sur les extensions possibles de ces techniques. En effet, dans~\cite{BianeD17}, les valeurs des variables de contrôle sont fixées une fois : au début de l'évolution du réseau. Or, des thérapies séquentielles semblent être plus efficaces, car celles-ci permettent de piloter plus finement les trajectoires du réseau contrôlé (par exemple,~\cite{mandon2017}). Actuellement, nous nous penchons sur le problème de définition de contrôle séquentiel d'un réseau, tout en gardant des temps raisonnables d'analyse par ordinateur. \subsection{Travaux hors thèse et postdoctoraux} Avant le début de ma thèse et pendant mon doctorat j'ai travaillé sur des problèmes qui n'étaient pas directement liés à ceux qui sont exposés dans le manuscrit. Ces travaux se situent également dans le cadre du calcul naturel et de la théorie des langages formels. En tant que postdoc, j'ai travaillé sur la modélisation biomécanique du squelette cellulaire. Dans les sections suivantes, je donne plus détails par rapport aux travaux de recherche sus-cités. \subsubsection{Modélisation biomécanique du squelette cellulaire} Les plaquettes sanguines (thrombocytes) sont des cellules sanguines responsables pour les premières phases de l'hémostase : l'arrêt de saignement après la blessure de la paroi d'un vaisseau sanguin. Les plaquettes transforment le fibrinogène présent dans le plasma sanguin en structures fibreuses qui bouchent la plaie. Dans son état normal, la paroi d'un vaisseau secrète de l'oxyde nitrique qui empêche l'activation des plaquettes. Lorsque la paroi est lésée, le manque de l'oxyde nitrique induit l'activation des plaquettes. Lors de l'activation, les plaquettes sanguines subissent une transformation de forme rapide (à l'échelle de quelques minutes) : ayant normalement la forme d'un disque, elle rétrécissent et deviennent des sphères. Il a été montré que ce changement de forme est dû à l'activité du squelette cellulaire, constitué des fibres d'actine et de tubuline (figure~\ref{fig:platelets}). \begin{figure} \centering \begin{subfigure}[t]{.4\textwidth} \centering \includegraphics[height=30mm]{pics/platelet-round} \caption{Dans l'état passif, le cytosquelette a la forme d'un anneau.} \end{subfigure} \hspace{5mm} \begin{subfigure}[t]{.4\textwidth} \centering \includegraphics[height=30mm]{pics/platelet-folded} \caption{Lors de l'activation, le cytosquellette rétrécit et induit une transition vers la forme sphérique.} \end{subfigure} \caption{Le squelette cellulaire régit le changement de la forme des plaquettes sanguines lors de l'activation.} \label{fig:platelets} \end{figure} Le but de mon projet est de développer un outil de modélisation biomécanique des fibres de tubuline (microtubules) pour ensuite analyser leur rôle dans l'activation des plaquettes. L'outil de modélisation que je suis en train de développer devra réaliser les trois fonctions suivantes : \begin{itemize} \item représentation informatique de la dynamique microtubules à travers un modèle masse-ressort paramétrable, \item représentation informatique de l'action des moteurs moléculaires qui assurent l'adhésion et le déplacement relatif des microtubules, \item affichage graphique des simulations effectuées. \end{itemize} L'outil est développé en C++, un langage qui possède quelques propriétés clefs : \begin{itemize} \item acceptation quasi universelle dans le milieu de la modélisation biologique; \item représentation naturelle de concepts abstraits via la syntaxe pour la programmation objet; \item contrôle fin sur l'usage de diverses ressources, permettant l'optimisation ciblée des applications. \end{itemize} L'outil logiciel sera intégré dans le framework de modélisation biologique générique développé par Nicolas \textsc{Glade}. Pour rendre cela possible, nous employons des techniques de programmation objet et, en partie, de programmation fonctionnelle. Les outils développés dans ce cadre ne seront donc pas ad hoc (comme habituel dans la modélisation biologique), mais pourront être réutilisés dans des simulations différentes, y compris dans l'étude des systèmes complexes non-biologiques. Nous consacrons également un effort important à l'accessibilité des outils aux modélisateurs qui ne possèdent pas forcement de l'expertise en programmation objet ou en C++ : nous accompagnons les nouveaux utilisateurs et, à terme, nous mettrons en œuvre un système graphique de conceptions de modèles. \subsubsection{Systèmes à membranes} Le modèle des systèmes à membranes a été introduit par Gheorghe Păun qui s'est inspiré de la nature et du fonctionnement de la cellule vivante~\cite{Paun98computingwith,paun2002membrane,Paun:2010:OHM:1738939}. Un système à membranes est un ensemble de compartiments imbriqués les uns dans les autres et délimités par des membranes ; une membrane contient un multiensemble d'objets dont chacun représente une molécule biochimique. Les interactions entre les molécules sont modélisées par l'action des règles de réécriture de multiensembles. Les systèmes à membranes sont essentiellement des systèmes de réécriture parallèle de multiensembles~\cite{FLGPVZ2014} ; ils représentent la cellule vivante de façon naturelle, constituant ainsi un outil clair et puissant pour la modélisation des processus biologiques et plus généralement de systèmes dynamiques complexes. Les thématiques que j'ai abordées dans ma recherche sur des systèmes à membranes se divisent principalement en trois groupes : \begin{itemize} \item la création des outils performants et flexibles de simulation des systèmes à membranes, \item développement des algorithmes distribués qui peuvent être ensuite implémentés dans des systèmes biologiques, \item étude de la puissance de calcul de différentes variantes étendues du modèle de base. \end{itemize} La création d'un simulateur de systèmes à membranes a toujours été une question très pertinente qui a attiré beaucoup d'efforts de la part des chercheurs dans le domaine. Un tel simulateur est un outil essentiel qui permet de tester si une construction concrète réalise le comportement désiré. J'ai participé à ce travail en développant un simulateur avec des moteurs des simulations échangeables pouvant être réalisés en des langages différents. J'ai notamment fourni un moteur de simulation utilisant la technologie OpenCL de programmation pour des architectures parallèles et un autre, plus flexible mais moins performant, implémenté en Haskell. En ce qui concerne le développement des algorithmes distribués, je me suis tout d'abord focalisé sur les modèles de systèmes à membranes sans horloge ({\em clock-free membrane systems}), dans lesquels une application de règle peut durer un temps réel arbitraire. L'absence de l'horloge globale rapproche le modèle des systèmes parallèles composés d'un certain nombre de processus qui interagissent. Dans mon travail, j'ai exprimé les mécanismes de synchronisation en termes de règles de réécriture de multiensembles et j'ai montré comment ces mécanismes pouvaient être utilisés pour la résolution de quelques problèmes de concurrence classiques. Les résultats concernant les systèmes à membranes sans horloge ont été publiés dans~\cite{DBLP:journals/ijcm/Ivanov13,DBLP:conf/membrane/Ivanov11}. Nous avons continué l'exploration des algorithmes distribués en implémentant les chaînages avant et arrière ({\em forward and backward chaining}) dans les systèmes à membranes actives, c'est-à-dire les systèmes dans lesquels les membranes peuvent se diviser. Le chaînage avant est une méthode de déduction qui applique des implications logiques en partant des prémisses pour en déduire de nouvelles conclusions. Le chaînage avant consiste donc à construire toutes les conclusions déductibles à partir des axiomes jusqu'à ce que la proposition cible soit obtenue. Par opposition, le chaînage arrière part des conclusions pour essayer de remonter aux axiomes. Le chaînage arrière a souvent tendance à explorer moins de possibilités et est préféré dans les cas d'utilisation pratiques. Il est remarquable que les implications logiques se prêtent à une représentation naturelle en termes de règles de réécriture de multiensembles ; or c'est de cette similarité que nos constructions profitent. De plus, nos implémentations bénéficient du parallélisme intrinsèque aux systèmes à membranes. Ce résultat a été publié dans~\cite{DBLP:journals/ijncr/IvanovARG11}. Concernant les variations du modèle de base, nous avons proposé une extension assez naturelle qui permet aux systèmes à membranes de se modifier eux-mêmes. Dans le cadre de ce genre de système, les règles de réécriture sont données par le contenu de certaines paires de membranes. Il est ainsi possible de modifier les règles au cours de l'évolution du système en rajoutant ou en supprimant des objets dans les membranes qui définissent ces règles. Nous avons donné à ces systèmes l'appellation de systèmes polymorphes ({\em polymorphic membrane systems}) et nous avons montré que le polymorphisme permettait de calculer des fonctions exponentielles avec des règles relativement simples. Je me suis ensuite intéressé à la puissance de calcul de systèmes polymorphes dans leur version la plus élémentaire et j'ai démontré quelques résultats concernant les bornes inférieures et supérieures de la famille des langages qu'ils peuvent engendrer. J'ai prouvé également l'existence d'une hiérarchie infinie dans cette famille des langages. Les résultats concernant les systèmes à membranes polymorphes ont été publiés dans~\cite{DBLP:conf/membrane/AlhazovIR10,DBLP:conf/membrane/Ivanov14}. \subsubsection{Systèmes à réactions} Les systèmes à réactions ({\em reaction systems}) sont un autre modèle formel inspiré par la cellule biologique, et surtout par les réactions chimiques qui y ont lieu~\cite{brij-atofrs,ehrenfeucht2007reaction}. Les systèmes à réactions se fondent sur deux principes. Le premier est le principe de non permanence : une ressource qui ne participe pas à une interaction disparaît du système. Le deuxième principe est que si une ressource est présente dans le système, alors elle y est en quantité illimitée. Cela fait des systèmes à réactions un modèle intrinsèquement qualitatif qui manipule des ensembles de symboles. Les interactions entre les symboles dans les systèmes à réactions sont régies par les réactions. Une réaction contient trois ensembles: les réactifs, les inhibiteurs et les produits. Pour qu'une réaction soit applicable à un ensemble, celui-ci doit contenir tous les réactifs de la réaction et ne contenir aucun de ses inhibiteurs. Le résultat de cette application est l'ensemble des produits ; les symboles qui n'ont pas été consommés par la réaction disparaissent. Le résultat d'application concomitante de plusieurs réactions est l'union de leurs produits. Les systèmes à réactions étant un modèle de calcul assez particulier, beaucoup de chercheurs se sont intéressés à leurs propriétés formelles. Dans notre travail nous sommes revenus à la motivation d'origine et nous nous sommes proposé d'utiliser les systèmes à réactions pour modéliser les voies métaboliques d'une cellule. Une partie essentielle d'une telle modélisation serait la vérification formelle qu'un système concret correspond suffisamment bien au phénomène qu'il modélise. Dans ce but, nous avons adapté plusieurs concepts utilisés dans la modélisation biologique habituelle, dont la conservation de la masse, et nous avons prouvé que décider la plupart des propriétés qu'un système à réactions peut avoir vis-à-vis de ces concepts est un problème $\NP$-, $\coNP$-, ou même $\PSPACE$-complet. Nous nous sommes ensuite focalisés sur la conservation de la masse et nous avons montré que cette notion donne naissance à une structure formelle qui facilite la réponse à certaines questions concernant les propriétés de conservation d'un système à réactions. Ces résultats concernant les systèmes à réactions ont été publiés sous la forme d'articles de revue et de rapports techniques dans~\cite{AGIMPP2014,AGIP2014,DBLP:journals/tcs/AzimiGIP15}. \subsubsection{Grammaires de tableaux} Les grammaires de tableaux représentent un système de réécriture des tableaux --- des structures régulières dont les nœuds sont étiquettes avec des symboles~\cite{FreundO14}. Tout comme les règles de réécriture de chaînes de caractères, une règle de réécriture de tableaux remplace un motif par un autre. Les grammaires de tableaux sont ainsi un modèle similaire aux automates cellulaires qui eux aussi sont plongés dans une structure régulière. Une différence importante intervient au niveau de la sémantique : les règles de grammaires de tableaux s'appliquent séquentiellement, ce qui ne fait évoluer qu'un seul motif du tableau à la fois. De plus, un tableau peut ne pas couvrir complètement la structure sous-jacente ; par exemple, un tableau dans l'espace cartésien à deux dimensions peut contenir un nombre fini de cellules non vides disposées dans une configuration particulière, les autres cellules étant vides. Une règle de réécriture de tableaux qui rajoute une nouvelle cellule peut s'appliquer à un motif seulement si cette nouvelle cellule correspond à un endroit vide dans le tableau d'origine. Ma contribution à l'étude des grammaires de tableaux a consisté à fournir une construction qui a permis de prouver la complétude computationnelle d'une variante restreinte de ce modèle~\cite{DBLP:conf/uc/FernauFISS13}. Nous nous sommes également intéressés à la combinaison de réécriture de tableaux avec les structures à membranes ; nous avons montré que ce genre de systèmes atteignent la complétude computationnelle avec des règles restreintes et avec deux membranes seulement. \subsubsection{Algèbre 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é. Une approche à sa modélisation 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 en temps et en ressources. Étant données les difficultés qui surgissent au moment où l'on voudrait utiliser plusieurs modèles pour analyser un système et la non-transparence des modèles composés, il est très naturel de se pencher sur une méthodologie générale de combinaison de formalismes. Cette méthodologie est souvent appelée « algébre de modèles ». L'article~\cite{Chilton2014146} en est un exemple illustratif : les auteurs utilisent les {\em automates d'interface} (interface automata) pour représenter un composant d'un modèle. Les automates d'interface décrivent les traces d'évènements qui ont lieu dans un système donné. Cette représentation axée sur le comportement permet de définir des opérations de composition et de raffinement qui préservent certaines propriétés dynamiques. Dans nos travaux avec Antoine \textsc{Spicher} et Martin \textsc{Potier}, nous avons appliqué les outils de la théorie des catégories pour aller vers une algèbre (ou des algèbres) de modèles. Cette approche généralise celle proposée en~\cite{Chilton2014146} parce qu'elle ne se limite pas à une description du comportement dynamique des systèmes modélisés et laisse à l'utilisateur la liberté du choix de la description. Ainsi, nous considérons une catégorie de descriptions de systèmes, avec comme flèches les relations de validation. De manière informelle, une description $a$ peut être validée par une autre $b$ si on arrive à « retrouver » les détails de « a » dans « b ». Pour parler de la modélisation, on fixera dans cette catégorie de descriptions et de validations un objet de repère qui décrit le mieux possible le système à modéliser et on définira ensuite une autre catégorie (une slice catégorie) de descriptions munies de flèches de validation par l'objet de repère. Cette catégorie sera donc la catégorie des {\em modèles} du système que décrit l'objet de repère. Les flèches de cette catégorie seront les flèches d'abstraction entre les modèles. Dans la catégorie des modèles on pourra ensuite utiliser les limites et les colimites pour définir des opérations concrètes. Nos travaux sur l'approche catégorielle à la définition d'une algèbre de modèle seront intégrés dans le manuscrit de thèse de Martin \textsc{Potier} et publiés ensuite dans un article séparé. Nous notons que l'usage des catégories et des slice catégories pour une définition formelle de la modélisation tire, en parti, son inspiration des travaux d'Andrée Ehresmann~\cite{Ehresmann12} sur les processus évolutifs à mémoire. \subsection{Travaux de thèse} Ma thèse porte sur la puissance d'expression et l'universalité de modèles de calcul inspirés par la biologie. Les travaux présentés se structurent en quatre parties. Dans la première il s'agit de la puissance d'expression des systèmes d'insertion/effacement ({\em insertion-deletion systems}), un modèle de réécriture de chaînes de symboles formels par les opérations d'insertion et d'effacement. La deuxième partie du manuscrit se focalise sur l'universalité des réseaux de processeurs évolutionnaires ({\em networks of evolutionary processors}), qui est une formalisation d'un ensemble des unités de traitement de chaînes de caractères reliés en réseau. La troisième partie considère les machines à registres universelles à deux et à trois registres, ainsi qu'une généralisation de ce modèle. La dernière partie porte sur l'universalité des réseaux de Petri avec des arcs inhibiteurs. Nous rappelons que l'universalité est la propriété d'une classe de modèles de calcul d'avoir un objet, dit universel, qui peut répliquer les résultats de n'importe quel autre objet de cette classe, la simulation pouvant éventuellement se faire à un codage près. D'autre part, la complétude computationnelle est la propriété d'une classe de contenir, pour tout langage récursivement énumérable, un objet qui l'engendre. \subsubsection{Systèmes d'insertion/effacement} Les opérations d'insertion et d'effacement sont connues depuis longtemps dans la théorie des langages formels, surtout la variante sans contexte qui généralise les opérations de concaténation et quotient, deux opérations fondamentales~\cite{Haussler82,KariPhD}. L'inspiration qui a motivé l'introduction de l'insertion et l'effacement vient de la linguistique, car elles semblent modéliser assez précisément les procédés de construction des phrases dans une langue vivante~\cite{Marcus69,PaunKluwer97}. Il a été montré récemment que l'étude de l'insertion de l'effacement est intéressante du point de vue biologique, car ses opérations formalisent l'hybridation erronée des brins d'ADN ({\em mismatched DNA annealing})~\cite{PRSbook}. De plus, il a été découvert que même l'édition de l'ARN ({\em RNA editing}) réalisée par certains protozoaires consiste généralement en des ajouts et des suppressions dans des brins d'ARN. De manière intuitive, une règle d'insertion rajoute une sous-chaîne à une chaîne de caractères dans un contexte donné. Une règle d'effacement agit de la façon duale : elle supprime une sous-chaîne d'une chaîne de caractères, dans un contexte donné. Un système d'insertion/effacement ({\em insertion-deletion system}) possède un ensemble fini de règles d'insertion et d'effacement ; il engendre un langage en appliquant ces règles séquentiellement à un ensemble fini de mots dits axiomes. La complexité d'un système d'insertion/effacement est décrite par le 6-uplet $(n,m,m'; p,q,q')$ dit taille, où les premiers trois composants représentent la longueur maximale de la sous-chaîne insérée et la taille maximale des contextes à gauche et à droite, alors que les trois derniers composants décrivent les mêmes paramètres pour les règles d'effacement. Dans le cadre de ma thèse nous nous sommes intéressés tout d'abord à des systèmes d'insertion/ef\-face\-ment de taille $(1,m,0; 1,q,0)$, c'est-à-dire aux systèmes dans lesquels toutes les règles n'ont pas de contexte à droite et insèrent ou suppriment un caractère. Nous avons montré que ces systèmes engendrent tous les langages rationnels et même certains langages algébriques. D'un autre côté, nous avons prouvé que pour tout système de taille $(1,m,0;1,q,0)$ avec $m\geq 2$ ou $q\geq 2$ il existe un système de taille $(1,2,0; 1,1,0)$ et un autre de taille $(1,1,0; 1,2,0)$ qui le simule. Nous nous sommes intéressés aussi aux systèmes de taille $(1,1,0;1,1,0)$ qui, malgré leur simplicité apparente, peuvent engendrer des langages non algébriques. Afin de mieux analyser le comportement dynamique de ces systèmes, nous avons introduit un outil de représentation graphique de leurs dérivations. Nous avons ensuite considéré les systèmes d'insertion/effacement avec trois mécanismes de contrôle : contrôle par graphe ({\em graph control}), contrôle semi-conditionnel ({\em semi-conditional control}) et contextes aléatoires ({\em random context control}). Nous avons prouvé que les systèmes équipés de ces mécanismes sont Turing complets avec de très petites règles. Notamment, nous avons prouvé que le contrôle semi-conditionnel augmente la puissance d'expression des systèmes d'insertion/effacement de taille $(1,0,0;1,0,0)$, c'est-à-dire des systèmes avec des règles sans contexte, et les rend Turing complets. Les résultats concernant les systèmes d'insertion/effacement avec des mécanismes de contrôle ont été publiés dans~\cite{DBLP:conf/membrane/IvanovV13,DBLP:journals/fuin/0001V15}. Nous avons continué l'étude de la puissance d'expresison des systèmes d'insertion/effacement de tailles $(1,2,0;1,1,0)$ et $(1,1,0;1,2,0)$ avec contrôle par graphe et nous avons montré que deux états dans le graphe de contrôle suffisaient pour rendre ces systèmes Turing complets~\cite{DBLP:conf/mcu/0001V15}. Cela améliore la construction utilisant trois états présentée dans ma thèse. Afin de faire cette construction améliorée nous avons introduit les règles d'insertion et d'effacement étendues ; dans ces règles les contextes ne sont plus des chaînes de caractères prédéfinies, mais peuvent être des langages rationnels. \subsubsection{Réseaux de processeurs évolutionnaires} Les réseaux de processeurs évolutionnaires ({\em networks of evolutionary processors}) sont un modèle de calcul inspiré par l'activité des organites d'une cellule biologique ou par la collaboration des cellules d'un tissu~\cite{CMVMS2001,CVS97}. Un processeur évolutionnaire peut effectuer en parallèle des opérations élémentaires (insertion, effacement, substitution d'un symbole) sur toutes les chaînes de caractères qu'il contient. Les processeurs sont connectés en réseau et échangent les chaînes de caractères qu'ils produisent. Ils disposent de filtres à l'entrée et à la sortie, ce qui leur permet de ne pas prendre en compte certaines chaînes. La complétude computationnelle des réseaux de processeurs évolutionnaires a été montrée dès leur introduction~\cite{CMVMS2001,CVS97}. Des variations au modèle ont été proposées plus tard et prouvées Turing complètes elles aussi~\cite{AMVR2006,CMVMS2003}. Nous nous sommes intéressés plutôt à l'universalité et à la minimisation du nombre de règles dans les réseaux universels. Nous avons ainsi construit des réseaux universels à 4, 5 et 7 règles seulement, avec des fonctions de codage différentes. Ces résultats on été publiés dans~\cite{DBLP:journals/jalc/0001RV14}. \subsubsection{Machines à registres} Les machines à registres sont un modèle de calcul classique, dérivé directement de la machine de Turing~\cite{Minsky1961,Wang:1957}. Une telle machine possède un nombre fini de registres, qui peuvent contenir des entiers non négatifs. Le programme d'une machine à registres est une liste étiquetée d'instructions élémentaires : l'incrément d'un registre, le décrément d'un registre et le teste si un registre est vide. Les machines à registres sont ainsi très proches de l'organisation des ordinateurs digitaux habituels. Il a été montré que les machines à registres sont Turing complets et qu'en plus n'importe quelle fonction calculable sur les entiers non négatifs peut être calculée par une machine à deux registres si les entrées de la fonction sont déjà encodées, ou à trois registres si la machine doit faire l'encodage par elle-même~\cite{minsky67}. Cela implique l'existence de machines à deux registres et à trois registres universelles. Néanmoins, aucun programme d'une telle machine n'a été présenté dans la littérature, or une telle construction concrète permet d'estimer la taille de structures universelles dérivées et de les optimiser ensuite. Dans ma thèse nous avons donc appliqué la procédure décrite dans~\cite{minsky67} pour construire des machines à deux et à trois registres universelles en simulant les machines universelles présentées en~\cite{Korec}. Nous nous sommes aussi intéressés à la façon dont les machines à registres sont simulées par d'autres modèles de calcul tels que systèmes de réécriture de multiensembles, réseaux de Petri, ou réseaux de processeurs évolutionnaires. Nous avons remarqué que tous ces modèles peuvent simuler plusieurs instructions d'une machine à registres en un seul pas. Autrement dit, ces instructions sont souvent trop élémentaires. Dans le but de définir un modèle proche aux machines à registres, mais qui utiliserait des instructions plus expressives, nous avons proposé les machines à registres généralisées ({\em generalised register machines}). Une telle machine peut effectuer plusieurs incréments, décréments, ou tests si un registre est à zéro en une seule transition. Les machines à registres habituelles peuvent être vues comme des machines à registres généralisées qui n'exécutent qu'une seule opération par transition. Dans une telle machine il est possible de réduire le nombre d'états en utilisant des transitions plus complexes. Dans ma thèse nous avons appliqué cette réduction pour construire des machines à registres universelles à 7 états seulement, cela en simulant les constructions présentées dans~\cite{Korec}. \subsubsection{Systèmes de réécriture de multiensembles et réseaux de Petri} La dernière partie de ma thèse porte sur l'universalité des systèmes de réécriture de multiensembles avec des inhibiteurs et aussi des réseaux de Petri avec des arcs inhibiteurs --- deux modèles qui sont fondamentalement similaires. En effet, un état (marquage) d'un réseau de Petri est décrit par une fonction qui associe à chaque place le nombre de jetons qu'elle contient ; or le marquage est un multiensemble sur l'alphabet des symboles qui désignent les places. Les transitions de réseaux de Petri correspondent ainsi aux règles de réécriture de multiensembles. Il a été montré que savoir si un marquage peut être atteint par un réseau de Petri donné est décidable~\cite{Mayr:1981}. La même affirmation est donc valable dans le cas des systèmes de réécriture de multiensembles simples. Plusieurs variations ont été proposées afin d'étendre la puissance d'expression de ces modèles, dont l'idée des inhibiteurs. Dans les réseaux de Petri, un arc inhibiteur entre une place et une transition empêche celle-ci de se déclencher si la place n'est pas vide. De la même manière, on peut munir une règle de réécriture de multiensembles d'une collection de symboles qui ne doivent pas être présents pour que la règle soit applicable. Il a été prouvé que les réseaux de Petri avec des arcs inhibiteurs et les systèmes de réécriture de multiensembles avec des inhibiteurs sont Turing complets~\cite{BMVPR2002,Reinhardt08}, car ils peuvent simuler assez directement les machines à registres. Dans ma thèse nous avons construit plusieurs réseaux de Petri avec des arcs inhibiteurs universels. Nous avons défini la taille d'un réseau comme étant le 4-uplet $(p,t,i,d)$ où $p$ est le nombre de places, $t$ est le nombre de transitions, $i$ est le nombre d'arcs inhibiteur et $d$ et le nombre maximal d'arcs incidents à une transitions (le degré maximal). Nous nous sommes proposé de construire des réseaux de Petri universels tout en minimisant chacun de ces paramètres. Nous avons notamment décrit des réseaux universels avec quatre et cinq places uniquement et d'autres avec deux et trois arcs inhibiteurs (les chiffres varient selon l'encodage des entrées et des sorties). Il est remarquable que deux est le nombre minimal d'arcs inhibiteurs nécessaires pour atteindre la complétude computationnelle : les réseaux de Petri avec un seul arc inhibiteur ne sont pas Turing complets~\cite{Reinhardt08}. Même si les résultats portant sur l'universalité présentés dans la dernière partie de ma thèse apparaissent sous la forme de réseaux de Petri, la correspondance directe avec les systèmes de réécriture de multiensembles permet de formuler immédiatement les mêmes résultats pour ceux-ci. Les résultats de ma thèse portant sur les réseaux de Petri universels ont été publiés dans~\cite{DBLP:conf/dcfs/0001PV14,DBLP:journals/corr/IvanovPV13,DBLP:journals/jalc/Alhazov0PV16}. \subsection{Projets de programmation} Lors de mon parcours, j'ai réalisé plusieurs projets de programmation aussi bien accessoires à mon activité de recherche qu'indépendants. J'ai notamment contribué au système d'exploitation libre à micro-noyau GNU/Hurd~\cite{Hurd}, qui est fondé sur le principe des translateurs ({\em translator}) --- des applications spéciales qui peuvent être installés par dessus certains fichiers pour offrir une vue modifiée du contenu. J'ai développe un translateur capable de monter plusieurs systèmes de fichiers sous un seul dossier (montage union)~\cite{unionmount} et j'ai aussi travaillé sur une extension du gestionnaire du système de fichiers qui permettrait d'installer des translateurs en utilisant une syntaxe étendue de chemins d'accès~\cite{nsmux}. Ce travail a été effectué lors de l'édition 2009 de «~Google Summer of Code~». Je me suis aussi intéressé aux modèles d'interaction asynchrone en réseaux et je me suis proposé d'implémenter le modèle acteur ({\em actor model}). Les entités centrales de ce modèle sont les acteurs --- les processus qui s'exécutent en parallèle et qui possèdent des boîtes à messages. Les acteurs peuvent s'envoyer des messages de façon asynchrone, c'est-à-dire l'expéditeur n'attend pas que le message soit reçu. Afin de rendre mon implémentation plus succincte et flexible, je l'ai réalisée en le langage fonctionnel strictement typé Haskell. Un autre projet de programmation non relié directement à mes pistes de recherche principales était ma contribution au système de calcul formel SymPy~\cite{sympy} qui à consisté à initier un module de théorie des catégories~\cite{categories}. Je me suis concentré sur la présentation informatique des diagrammes commutatifs --- un outil de base en algèbre abstraite --- et j'ai programmé la mise en page automatique d'un tel diagramme. J'ai travaillé ensuite sur un algorithme de déduction automatique de la commutativité d'un diagramme à partir d'un ensemble de diagrammes dits axiomes. Cette contribution a été faite lors de l'édition 2012 de «~Google Summer of Code~». Un de mes premiers projets afférents aux domaines de recherche dans lesquels j'ai travaillé était le développement d'un simulateur de systèmes à membranes capable de représenter la plupart des variation du modèle en utilisant plusieurs moteurs de simulation. J'ai implémenté un moteur OpenCL qui s'exécutait sur la carte graphique et un autre, en Haskell, qui était moins performant mais offrait la possibilité de faire tourner le système simulé pas à pas. Un autre projet était d'automatiser la construction des réseaux de Petri universels, ce qui m'a amené à la réalisation d'un ensemble d'outils pour la gestion informatique de ces objets, ainsi que de quelques autres objets connus de la théorie de la calculabité, notamment les machines à registres. Une partie de ces outils est déjà disponible en ligne~\cite{compdev} ; d'autres sont en état d'ébauche et seront disponibles au public dès leur finalisation. Lors de ma visite en Finlande au printemps 2014, j'ai implémenté un simulateur des systèmes à réactions afin de faciliter leur conception et leur vérification. Le code source du simulateur, ainsi que la documentation, est disponible en ligne~\cite{brsim}. J'ai aussi réalisé une interface Web~\cite{brsimweb} qui permet d'utiliser mon simulateur sans à avoir à télécharger et compiler le code. Finalement, ma mission en tant que chercheur postdoctoral comprend une partie considérable de programmation. Ils s'agit du développement d'une solution logicielle pour la modélisation biomécanique du squelette cellulaire, avec intégration ultérieure dans un framework de modélisation biologique générique. Ce projet se réalise en C++ parce que le public visé (le modélisateurs de systèmes biologiques) est confortable avec le langage C et parce que C++ offre un grand éventail de techniques de représentation optimisée de concepts abstraits. \subsection{Relecture d'articles scientifiques} J'ai été de nombreuses fois rapporteur pour les revues suivantes : {\em Theoretical Computer Science} (Elsevier), {\em Fundamenta Informaticae} (IOS Press), {\em Lecture Notes for Computer Science} (Springer), {\em Journal of Cellular Automata} (Old City Publishing), \emph{Journal of Automata, Languages, and Combinatorics} (Institut für Informatik, Justus-Liebig-Universität Giessen), \emph{Journal of Membrane Computer} (Springer), \emph{International Journal of Foundations of Computer Science} (World Scientific), \emph{Socio-Ecological Practice Research} (Springer). J'ai également rapporté des articles pour les actes de colloques suivants : {\em Conference on Membrane Computing} (CMC), {\em Unconventional and Natural Computation} (UCNC), {\em Machines, Computations, and Universality} (MCU), \emph{Developments in Language Theory} (DLT). \subsection{Participation aux projets scientifiques} \noindent \begin{tabularx}{\textwidth}{r l X l} \textbf{Période} & \textbf{Type et financement} & \textbf{Intitulé du projet} & \textbf{Porteur} \\ \hline 2018--2019 & DIM RFSI, 11 k€ & Modèles Informatiques pour la Reprogrammation Cellulaire & Sergiu Ivanov \end{tabularx} \subsection{Encadrement de thèses de doctorat} \subsubsection{Jérémie \textsc{Pardo}} \noindent \hspace{2.7mm} {\renewcommand{\arraystretch}{1.3}% \begin{tabularx}{\textwidth}{l X} Titre : & \emph{Approche abductive de l'inférence de cibles thérapeutiques et de séquences de traitement} \\ Durée : & 2018--2021 \end{tabularx} } L'un des enjeux principaux de la médecine de précision est la recherche des thérapies spécifiques, adaptées au patient. Cette recherche nécessite une analyse approfondie des interactions entre différentes entités participant au déroulement de la maladie : gènes, protéines, etc. L'actuel outil de préférence pour cette analyse sont les réseaux, l'objet fondamental donnant lieu à un domaine entier : la médecine des réseaux. Dans cette thèse, nous travaillons sur les réseaux booléens : un concept informatique abstrait consistant en un ensemble de variables booléennes mises à jour selon des fonctions de mise à jour correspondantes. Ces fonctions induisent un ensemble d'interactions entre les variables. Les réseaux booléens sont particulièrement bien adaptés à l'analyse des réseaux de signalisation ou des réseaux de régulation génétiques, car dans ces systèmes les signaux se propagent par absence ou présence d'une protéine, ou par activation ou inhibition d'un gène. L'objectif de cette thèse est d'appliquer les réseaux booléens au problème de recherche des thérapies : en partant des modèles booléens des réseaux essentiels pour la genèse de la maladie, nous ambitionnons de trouver les façons de reprogrammer ces réseaux de sorte à corriger leur comportement ou même d'éviter qu'il diverge du sain. Nous nous intéressons particulièrement aux perturbations séquentielles : nous cherchons donc à étaler les actions de reprogrammation dans le temps de sorte à augmenter l'efficacité du traitement. \subsection{Encadrement de stages de recherche et développement} \subsubsection{Millefeuille évolutionnaire : une nouvelle formalisation de l'évolution} \noindent \hspace{2.7mm} {\renewcommand{\arraystretch}{1.3}% \begin{tabularx}{\textwidth}{l X} Stagiaires : & \emph{Rémy \textsc{Défossez}, ENS Paris} \\ Type : & stage de L3 d'initiation à la recherche \\ Durée : & 15 juin--15 août 2021 \end{tabularx} } La pression évolutionnaire rend certaines fonctions plus ou moins pertinentes, et la plasticité des organismes suit en augmentant ou en réduisant l'ensemble de différentes réalisations. Pour une espèce donnée et à chaque moment de temps donné, nous pouvons établir une image arrêtée de fonctions et de différents réseaux qui les réalisent. Cette image évolue dans le temps, donnant lieu à un \emph{millefeuille évolutionnaire} d'espaces de réseaux et de fonctions associées. Il est possible de retrouver des fonctions très similaires dans les couches adjacentes et de comparer les sous-espaces des réseaux correspondants. Ces sous-espaces s'alignent dans des tubes évolutionnaires, dont la topologie représente la trace d'une fonction donnée et des réseaux d'interactions associés dans l'historique d'une espèce. Le millefeuille évolutionnaire est ainsi une construction similaire aux paysages épigénétiques de Waddington. Ce travail de stage pourra s'organiser dans les trois grandes étapes suivantes : \begin{enumerate} \item Définir formellement le \emph{millefeuille évolutionnaire} comme une suite infinie de réseaux booléens reliés par des liens évolutionnaires. \item Définir formellement les \emph{tubes évolutionnaires} comme des suites infinies de fonctions identifiables dans les couches adjacentes du millefeuille évolutionnaire, et bénéficiant d'un degré de similarité élevé. \item Commencer l'exploration de la \emph{complexité} des tubes évolutionnaires en se fondant sur les travaux précédents. \end{enumerate} \subsubsection{Évolution artificielle des réseaux booléens à signe} \noindent \hspace{2.7mm} {\renewcommand{\arraystretch}{1.3}% \begin{tabularx}{\textwidth}{l X} Stagiaires : & \emph{Maxime \textsc{Wang} et Aurélien \textsc{Larchères}} \\ Type : & stage TER \\ Durée : & février--avril 2021 \end{tabularx} } Une façon dont nous pouvons chercher à comprendre l'évolution est de créer des simulacres de ses parties. Étant donné la qualité des représentations engendrées par les modèles en réseaux, il est naturel de se poser la question de l'évolution d'une population artificielle d'individus dont chacun serait piloté par un réseau. Dans le cas des réseaux booléens à signe, cette approche devient particulièrement intéressante car on peut clairement identifier la structure de l'individu, donnée par l'organisation de son réseau pilote, et le comportement engendré par ce réseau, dont la description la plus complète est le graphe d'état. D'autre part, l'uniformité syntaxique des réseaux booléens à seuil permet d'abstraire de façon non ambiguë les perturbations structurelles observables dans les systèmes biologiques, et d'effectuer de diverses analyses statistiques sur des populations entières de ces réseaux. L'objectif de ce stage TER est de réaliser et analyser le comportement d'un modèle à base d'agents avec des agents pilotés par les réseaux booléens à signe, dotés des capacités de se diviser, de muter, et de s'entredévorer, dépensant et accumulant de l'énergie. \subsubsection{Modélisation multi-agents de la polyarthrite rhumatoïde} \noindent \hspace{2.7mm} {\renewcommand{\arraystretch}{1.3}% \begin{tabularx}{\textwidth}{l X} Stagiaires : & \emph{Yacine \textsc{Hadjar} et Imad \textsc{Bouzgou}} \\ Type : & stage TER \\ Durée : & février--avril 2020 \end{tabularx} } Ce stage a comme objectif d'étudier la faisabilité d'une modélisation multi-agents des processus dans l'espace synovial d'une articulation atteinte de la polyarthrite rheumatoïde. Le point de départ sera un recueil des types cellulaires qui interviennent dans cet espace ainsi qu'une liste de leurs interactions. Le premier livrable sera une formalisation du modèle multi-agents associé dans le langage de programmation multi-agents NetLogo. Par la suite, les travaux du stage se dirigeront vers l'ajustement du modèle en vue de son rapprochement à la réalité, en dotant notamment les agents d'un contrôle à base de réseaux booléens. \subsubsection{Développement d'un logiciel de modélisation pour l'épidémiologie} \noindent \hspace{2.7mm} {\renewcommand{\arraystretch}{1.3}% \begin{tabularx}{\textwidth}{l X} Type : & stage de parcours des étudiants en TIS (Technologies Informatiques pour la Santé) à Polytech, Université Grenoble-Alpes) \\ Durée : & mai--juin 2020 \\ & \emph{co-encadrement avec Nicolas \textsc{Glade} 70\%, Université Grenoble-Alpes} \end{tabularx} } Les modèles pour l'épidémiologie sont très variés et doivent être adaptés aux particularités de la population modélisée ainsi qu'à la maladie cible. Souvent, plusieurs types de modèles doivent être conçus afin de mieux décrire la dynamique de la transmission de la maladie d'un individu à l'autre. L'objectif de ce stage est le développement d'un logiciel qui permettra de concevoir des modèles de dynamique des populations, de faire tourner des simulations, et d'analyser les données produites lors de ces exécutions. \subsubsection{Développement d'un logiciel de conception de réseaux} \noindent \hspace{2.7mm} {\renewcommand{\arraystretch}{1.3}% \begin{tabularx}{\textwidth}{l X} Type : & stage de parcours des étudiants en TIS (Technologies Informatiques pour la Santé) à Polytech, Université Grenoble-Alpes) \\ Durée : & mai--juin 2020 \\ & \emph{co-encadrement avec Nicolas \textsc{Glade} 70\%, Université Grenoble-Alpes} \end{tabularx} } La médecine des réseaux est un domaine en pleine croissance qui allie les outils de modélisation et d'analyse formelle des modèles et la récupération des données massives, avec une potentielle spécialisation au niveau du patient. La recherche dans ce domaine s'appuie fortement sur différents logiciels spécifiques de conception des modèles en réseaux. L'objectif de ce stage est de concevoir un nouveau logiciel de conception et d'analyse des réseaux, qui soit suffisamment général pour incorporer la plupart des variantes de réseau actuellement utilisés dans la recherche. Ce logiciel permettra de faciliter le travail de description et d'analyse des modèles et sera compatible avec les formats fichiers standard afin d'assurer une interopérabilité importante. \subsection{Prix} \noindent \begin{tabu}{X[.19r] c X[j]}\savetabu{sciroles} 2021 & $\bullet$ & Meilleur papier étudiant à la 21ème édition de IEEE International Conference on BioInformatics and BioEngineering pour « Who Plays Complex Music? On the Correlations Between Structural and Behavioral Complexity Measures in Sign Boolean Networks. » \\ 2020 & $\bullet$ & Meilleur papier à la conférence \emph{International Conference on Membrane Computing} (ICMC) pour « P Systems with Limiting the Number of Objects in Membranes » \\ 2017 & $\bullet$ & Meilleur papier à la conférence \emph{Asian Conference on Membrane Computing} (ACMC) pour « Clock-freeness and Mode-freeness in P Systems » \end{tabu} \subsection{Rôles scientifiques} \noindent \begin{tabu}{\usetabu{sciroles}} 2021--\phantom{2020} & $\bullet$ & Recommender pour \emph{Peer Community In Mathematical and Computational Biology}. \\ 2020--\phantom{2020} & $\bullet$ & Co-animateur avec Farida \textsc{Zehraoui} de l'axe transversal « Médecine personnalisée » du laboratoire IBISC \\ 2020 & $\bullet$ & Co-chair du comité scientifique de la conférence \emph{International Conference on Membrane Computing} (ICMC) \\ 2018 & $\bullet$ & Membre du comité scientifique de la conférence {\em Unconventional and Natural Computation} (UCNC)\\ 2018--2019 & $\bullet$ & Editeur invité de l'édition spéciale de la revue \emph{Acta Biotheoretica} à la suite du séminaire SFBT 2018 \end{tabu} \subsection{Organisation d'évènements} \noindent \begin{tabu}{\usetabu{sciroles}} juin 2022 & $\bullet$ & Co-organisation de \emph{l'Atelier sur Théorie Ataviste du Cancer (ATAC2022)} avec Nicolas \textsc{Glade} et Angélique \textsc{Stéphanou} \\ août 2020 & $\bullet$ & Co-chair de \emph{Conference on Membrane Computing} (Summer of Formal Languages, Vienna), avec Rudolf \textsc{Freund} \\ juin 2018 & $\bullet$ & Co-organisation des journées de la \emph{Société Francophone de la Biologie Théorique} avec Nicolas \textsc{Glade} \\ juin 2018 & $\bullet$ & Co-organisation des conférences \emph{Unconventional Computation, Natural Computation} (UCNC) ainsi que \emph{Machines, Computations, and Universality} (MCU), avec Serghei \textsc{Verlan} et Rudolf \textsc{Freund} \\ juin 2018 & $\bullet$ & Co-organisation du \emph{Workshop on Membrane Computing} dans le cadre de la conférence \textsc{Unconventional Computation, Natural Computation}, avec Rudolf \textsc{Freund} \\ décembre 2017 & $\bullet$ & Co-organisation de la Journée du laboratoire IBISC avec Najett \textsc{Neji} \end{tabu} \if0 \clearpage \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} 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. À 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. Dans les sections suivantes, je donne plus de détails sur mes contributions potentielles. \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. 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. 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. \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. \fi \printbibliography[resetnumbers=true] \end{refsection} %%% Local Variables: %%% mode: LaTeX %%% mode: auto-fill %%% ispell-local-dictionary: "fr" %%% End: