2015-05-29 01:19:32 +02:00
|
|
|
\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
|
|
|
|
]
|
2015-05-26 02:33:02 +02:00
|
|
|
|
2015-05-29 01:19:32 +02:00
|
|
|
\section{Activités de recherche}
|
2015-05-26 02:33:02 +02:00
|
|
|
J'ai commencé mes travaux de recherche en 2009 au sein de l'Institut
|
|
|
|
de Mathématiques et d'Informatique de Moldavie sous la direction de
|
|
|
|
Yurii \textsc{Rogozhin}, et j'ai continué en 2012 par entreprendre une
|
|
|
|
thèse sous la direction de Serghei \textsc{Verlan} au Laboratoire
|
|
|
|
d'Algorithmique, Complexité et Logique de l'Université Paris Est
|
|
|
|
Créteil. J'ai également eu de nombreuses collaborations
|
2015-05-26 20:09:45 +02:00
|
|
|
internationales, notamment avec Rudolf \textsc{Freund} et Ion
|
|
|
|
\textsc{Petre}. J'ai aussi travaillé activement avec Elisabeth
|
|
|
|
\textsc{Pelz}, Artiom \textsc{Alhazov}, Vladimir
|
|
|
|
\textsc{Rogojin}. Afin de collaborer avec Ion \textsc{Petre}, j'ai
|
|
|
|
effectué de multiples visites au laboratoire Combio à l'université Åbo
|
|
|
|
Akademi à Turku, Finlande.
|
2015-05-26 02:33:02 +02:00
|
|
|
|
|
|
|
Les sujets de recherche que j'ai abordés jusqu'à maintenant se situent
|
|
|
|
dans les domaines du calcul inspiré par la biologie et des langages
|
|
|
|
formels. Lors de mon doctorat, j'ai travaillé également sur des
|
|
|
|
problèmes non reliés directement au sujet de ma thèse. Dans la suite
|
2015-05-26 11:44:32 +02:00
|
|
|
de cette section, je résume ma thèse, puis les résultats obtenus en
|
2015-05-26 02:33:02 +02:00
|
|
|
dehors de son cadre.
|
|
|
|
|
|
|
|
\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é
|
2015-05-28 15:09:09 +02:00
|
|
|
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.
|
2015-05-26 02:33:02 +02:00
|
|
|
|
|
|
|
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
|
2015-05-26 11:58:39 +02:00
|
|
|
d'insertion/effacement ({\em insertion-deletion system}) possède
|
|
|
|
un ensemble fini de règles d'insertion
|
2015-05-26 02:33:02 +02:00
|
|
|
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
|
2015-05-28 15:09:09 +02:00
|
|
|
6-uplet $(n,m,m'; p,q,q')$ dit taille, où les premiers trois composants
|
2015-05-26 02:33:02 +02:00
|
|
|
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 à
|
2015-05-28 15:09:09 +02:00
|
|
|
des systèmes d'insertion/ef\-face\-ment de taille $(1,m,0; 1,q,0)$,
|
2015-05-26 02:33:02 +02:00
|
|
|
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
|
2015-05-28 15:09:09 +02:00
|
|
|
$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
|
2015-05-26 02:33:02 +02:00
|
|
|
intéressés aussi aux systèmes de taille $(1,1,0;1,1,0)$ qui, malgré
|
2015-05-28 15:09:09 +02:00
|
|
|
leur simplicité apparente, peuvent engendrer des langages
|
2015-05-26 02:33:02 +02:00
|
|
|
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
|
2015-05-28 15:09:09 +02:00
|
|
|
mécanismes sont Turing complets avec de très petites
|
2015-05-26 02:33:02 +02:00
|
|
|
règles. Notamment, nous avons prouvé que le contrôle semi-conditionnel
|
2015-05-28 15:09:09 +02:00
|
|
|
augmente la puissance d'expression des systèmes
|
2015-05-26 02:33:02 +02:00
|
|
|
d'insertion/effacement de taille $(1,0,0;1,0,0)$, c'est-à-dire des
|
|
|
|
systèmes avec des règles sans contexte, est les rend Turing complets.
|
|
|
|
|
|
|
|
\subsubsection{Réseaux de processeurs évolutionnaires}
|
2015-05-26 11:58:39 +02:00
|
|
|
Les réseaux de processeurs évolutionnaires ({\em networks of
|
|
|
|
evolutionary processors}) sont un modèle de calcul
|
2015-05-26 02:33:02 +02:00
|
|
|
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 à
|
2015-05-28 15:09:09 +02:00
|
|
|
l'universalité et à la minimisation du nombre de règles
|
|
|
|
dans les réseaux universels. Nous
|
2015-05-26 02:33:02 +02:00
|
|
|
avons ainsi construit des réseaux universels à 4, 5 et 7 règles
|
|
|
|
seulement, avec des fonctions de codage différentes.
|
|
|
|
|
|
|
|
\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
|
2015-05-28 15:09:09 +02:00
|
|
|
un registre est vide. Les machines à registres sont ainsi
|
|
|
|
très proches de l'organisation des ordinateurs digitaux habituels.
|
2015-05-26 02:33:02 +02:00
|
|
|
|
|
|
|
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
|
2015-05-28 15:09:09 +02:00
|
|
|
de Petri est décrit par une fonction qui associe à chaque place le
|
2015-05-26 02:33:02 +02:00
|
|
|
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 le pouvoir 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
|
2015-05-28 15:09:09 +02:00
|
|
|
réécriture de multiensembles avec une collection de symboles qui ne
|
2015-05-26 02:33:02 +02:00
|
|
|
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}.
|
|
|
|
|
2015-05-28 15:09:09 +02:00
|
|
|
Même si les résultats portant sur l'universalité présentés dans la dernière partie
|
2015-05-26 02:33:02 +02:00
|
|
|
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.
|
|
|
|
|
2015-05-26 18:51:53 +02:00
|
|
|
\subsection{Travaux hors thèse}
|
|
|
|
Avant le début de ma thèse et pendant mon doctorat j'ai travaillé sur
|
|
|
|
des problèmes qui n'étaient pas directement relié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. Je me
|
|
|
|
suis premièrement concentré sur les systèmes à membranes ({\em
|
|
|
|
membrane systems}) qui sont un modèle inspiré par la structure et
|
|
|
|
fonctionnement de la cellule biologique. J'ai aussi travaillé sur les
|
|
|
|
systèmes à réactions ({\em reaction systems}) qui représentent une
|
|
|
|
abstraction formelle d'un réacteur biochimique. Finalement, j'ai
|
|
|
|
participé à des travaux dans le domaine des grammaires de tableaux
|
|
|
|
({\em array grammars}), un modèle qui étend les grammaires classiques
|
|
|
|
à la réécriture des parties des tableaux.
|
|
|
|
|
|
|
|
\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, chacun desquels 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. Même si 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 ce qui donne un outil clair et
|
|
|
|
puissant pour la modélisation des processus biologiques et plus
|
|
|
|
généralement des 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 des 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
|
2015-05-28 15:09:09 +02:00
|
|
|
pour des architectures parallèles et un autre, plus flexible mais
|
2015-05-26 18:51:53 +02:00
|
|
|
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 chaque
|
|
|
|
application d'une 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
|
2015-05-28 15:09:09 +02:00
|
|
|
mécanismes pouvaient être utilisés pour la résolution de problèmes de
|
2015-05-26 18:51:53 +02:00
|
|
|
concurrence classiques.
|
|
|
|
|
|
|
|
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
|
2015-05-28 15:09:09 +02:00
|
|
|
proposition cible soit obtenue. Par opposition, le chaînage arrière
|
2015-05-26 18:51:53 +02:00
|
|
|
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.
|
|
|
|
|
|
|
|
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 pairs 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 des
|
|
|
|
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.
|
|
|
|
|
2015-05-29 01:20:43 +02:00
|
|
|
\subsubsection{Systèmes à réactions}
|
2015-05-27 00:32:09 +02:00
|
|
|
Les systèmes à réactions ({\em reaction systems}) sont un autre modèle
|
2015-05-27 02:32:07 +02:00
|
|
|
formel inspiré par la cellule biologique, et surtout par les réactions
|
2015-05-27 00:32:09 +02:00
|
|
|
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é
|
2015-05-27 02:32:07 +02:00
|
|
|
illimitée. Cela fait des systèmes à réactions un modèle intrinsèquement
|
2015-05-27 00:32:09 +02:00
|
|
|
qualitatif qui manipule des ensembles des 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
|
2015-05-27 02:32:07 +02:00
|
|
|
pas été consommés par la réaction disparaissent. Le résultat
|
|
|
|
d'application concomitante de plusieurs réactions est l'union de leurs
|
2015-05-27 00:32:09 +02:00
|
|
|
produits.
|
|
|
|
|
|
|
|
Les systèmes à réactions étant un modèle de calcul assez particulier,
|
|
|
|
beaucoup de chercheurs se sont intéressés à ses 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
|
2015-05-27 02:32:07 +02:00
|
|
|
phénomène qu'il modélise. Dans ce but, nous avons adapté plusieurs concepts
|
2015-05-27 00:32:09 +02:00
|
|
|
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.
|
|
|
|
|
2015-05-27 02:24:03 +02:00
|
|
|
\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
|
2015-05-28 15:09:09 +02:00
|
|
|
motif seulement si cette nouvelle cellule correspond à un
|
2015-05-27 02:24:03 +02:00
|
|
|
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. 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.
|
2015-05-26 02:33:02 +02:00
|
|
|
|
2015-05-28 11:16:07 +02:00
|
|
|
\subsection{Projets de programmation}
|
|
|
|
Lors de mon parcours universitaire et doctoral 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.
|
|
|
|
|
|
|
|
Finalement, afin de faciliter la conception et la vérification de
|
|
|
|
systèmes à réactions, j'ai implémenté un simulateur de ce modèle. Le
|
2015-05-28 15:09:09 +02:00
|
|
|
code source du simulateur, ainsi que la documentation, est disponible
|
2015-05-28 11:16:07 +02:00
|
|
|
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.
|
|
|
|
|
2015-05-29 00:56:47 +02:00
|
|
|
\subsection{Projet de recherche}
|
|
|
|
Mon projet de recherche vise tout d'abord à approfondir les travaux
|
|
|
|
effectués lors de ma thèse. Je souhaite continuer l'étude des systèmes
|
|
|
|
d'insertion/effacement avec des contextes de petite taille afin de
|
|
|
|
mieux caractériser leur puissance d'expression. Je souhaite également
|
|
|
|
continuer à m'investir dans le domaine de systèmes à membranes et
|
|
|
|
notamment dans l'étude de systèmes à membranes polymorphes, car
|
|
|
|
ceux-ci semblent être en rapport assez direct avec le fonctionnement
|
|
|
|
des systèmes à boucles de rétroaction. Je suis intéressé par les
|
|
|
|
machines à registres universelles de petite taille et je voudrais
|
|
|
|
améliorer les constructions existantes en optimisant la manière dont
|
|
|
|
la simulation d'une instruction se fait.
|
|
|
|
|
|
|
|
En ce qui concerne le calcul distribué inspiré de la nature, je
|
|
|
|
souhaite étudier les automates cellulaires, car ce modèle correspond
|
|
|
|
bien aux systèmes biologiques dont les éléments sont relativement
|
|
|
|
simples mais, une fois intégrés, peuvent avoir un comportement global
|
|
|
|
complexe. Je souhaite étudier les possibilités de programmer le
|
|
|
|
fonctionnement local des cellules afin d'atteindre un comportement
|
|
|
|
global donné. Ce type de procédés de déduction des propriétés locales
|
|
|
|
à partir d'une spécification globale me semble essentiel à la
|
|
|
|
compréhension et synthèse des systèmes complexes.
|
|
|
|
|
|
|
|
Un sujet de recherche qui m'intéresse fortement est d'étudier les
|
|
|
|
manières desquelles les systèmes complexes peuvent être décomposés en
|
|
|
|
unités de base, cela afin de comprendre les principes fondateurs de la
|
|
|
|
complexité. Je m'intéresse plutôt aux systèmes biologiques, car c'est
|
|
|
|
en biologie que l'on retrouve de la complexité à tous les niveaux
|
|
|
|
d'organisation structurelle. Je suis persuadé que le langage qui
|
|
|
|
permettra de décrire les unités de base est celui des structures
|
|
|
|
mathématiques élémentaires, comme celles de l'algèbre abstraite, de la
|
|
|
|
topologie, ou de la théorie des catégories. Ma conviction se fonde sur
|
|
|
|
le fait que ces objets sont d'une grande généralité, ce qui les rend
|
|
|
|
utilisable dans une variété vaste des contextes. Je me propose ainsi
|
|
|
|
d'approfondir ma connaissance de ces structures et montrer leur
|
|
|
|
applicabilité à la compréhension de la complexité.
|
|
|
|
|
|
|
|
En plus de relier l'étude des systèmes complexes aux mathématiques
|
|
|
|
fondamentales, la décomposition d'un système en structures abstraites
|
|
|
|
élémentaires permet d'utiliser les facilités d'intégration définies
|
|
|
|
dans des domaines comme la théorie des catégories. Par exemple, les
|
|
|
|
produits et les sommes permettent de composer des objets afin d'en
|
|
|
|
construire d'autres plus complexes~\cite{Adamek04}. Ce sont d'ailleurs
|
|
|
|
ces mêmes procédés qui sont le plus souvent employés en informatique
|
|
|
|
pour définir les structures de données. Je me propose donc d'étudier
|
|
|
|
d'autres procédés définis dans la théorie des catégories et dans des
|
|
|
|
domaines se situant à un niveau d'abstraction pareil afin de concevoir
|
|
|
|
des systèmes complexes ayant un comportement désiré.
|
|
|
|
|
|
|
|
Je désire finalement étendre et approfondir mon expérience de
|
|
|
|
programmation. Dans ce but je compte continuer à définir des
|
|
|
|
représentations informatiques des objets abstraits sur lesquels je
|
|
|
|
travaille. D'un autre côté, je souhaite contribuer à des projets
|
|
|
|
libres portant sur le calcul symbolique, théorie des graphes,
|
|
|
|
structures de données concurrentes, etc., car cela correspond bien à
|
|
|
|
mon intérêt pour les systèmes complexes discrets et concurrents.
|
|
|
|
|
2015-05-26 02:33:02 +02:00
|
|
|
\printbibliography
|
|
|
|
\end{refsection}
|