dossier-complet/recherche.tex
2015-05-26 02:33:02 +02:00

230 lines
13 KiB
TeX

\section{Activités de recherche}
\begin{refsection}
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
internationales, notamment avec Rudolf~\textsc{Freund},
Artiom~\textsc{Alhazov} et Ion~\textsc{Petre}. Afin de collaborer avec
Ion \textsc{Petre}, j'ai effectué de multiples visites au laboratoire
Combio à l'université Åbo Akademi à Turku, Finlande.
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
de cette section, je résume ma thèse, puis les résultats obtenus qen
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é
l'introduction de ces opérations 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'insertion et l'effacement possèdent une
inspiration biologique et qu'ils 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é 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 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 composant
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/sup\-pres\-sion 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
$n\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 simulent. Nous nous sommes aussi
intéressés aussi aux systèmes de taille $(1,1,0;1,1,0)$ qui, malgré
leur simplicité apparente, peuvent eux aussi 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 étaient Turing complets avec de très petites
règles. Notamment, nous avons prouvé que le contrôle semi-conditionnel
augmentait 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, est les rend Turing complets.
\subsubsection{Réseaux de processeurs évolutionnaires}
Les réseaux de processeurs évolutionnaires 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 d'insertion,
d'effacement et de substitution 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.
\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 un modèle
très proche 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 comme 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 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
réécriture de multiensembles avec un ensemble 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)$$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 d'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.
\begin{itemize}
\item systèmes à membranes,
\item systèmes à réactions,
\item grammaires de tableaux.
\end{itemize}
Les sujets de recherche que j'ai abordé sont le
travaux de thèse
travaux hors thèse
programmation
\printbibliography
\end{refsection}