From 617069626a446ca46c982db44289fa03c007da17 Mon Sep 17 00:00:00 2001 From: Sergiu Ivanov Date: Thu, 3 Dec 2015 23:20:15 +0100 Subject: [PATCH] Add a the paragraphs on insertion-deletion systems and P systems to the first section of my research project. --- candidature.sty | 50 +++++++++ recherche.tex | 268 +++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 317 insertions(+), 1 deletion(-) diff --git a/candidature.sty b/candidature.sty index bdb0cff..b534585 100644 --- a/candidature.sty +++ b/candidature.sty @@ -24,10 +24,14 @@ \usepackage{tabu} \usepackage{emptypage} \usepackage{enumitem} +\RequirePackage{bm} +\usepackage{tikz} \setsansfont{Linux Biolinum} \setmainfont{Linux Libertine} +\usetikzlibrary{arrows,calc,positioning,decorations.markings,shapes,fit} + % A thick horizontal rule filling all page width. \def\thickhrule{\leavevmode\leaders\hrule height 1.5pt\hfill\kern\z@} @@ -46,3 +50,49 @@ % Formats an E-mail address in small typewriter font. \newcommand{\smallemail}[1]{\texttt{\small #1}} + + +%------------------ +% Derivation graphs +%------------------ + +% Font styles for derivation graphs. +\newcommand{\nbold}[1]{\ensuremath{\bm #1}} +\newcommand{\nlight}[1]{\ensuremath{\color{black!50} #1}} + +% TikZ styles for derivation graphs. +\tikzstyle nsymb=[minimum width=2.5em,minimum height=1.3em,inner sep=1pt] +\tikzstyle insertion=[] +% A cross arrow tip. +\newcommand{\crossfactor}{2.5} +\tikzstyle crosstip=[ + postaction={ + decorate, + decoration={ + markings, + mark=at position 1 with + { + \draw[solid] (-\crossfactor\pgflinewidth,-\crossfactor\pgflinewidth) + -- (\crossfactor\pgflinewidth,\crossfactor\pgflinewidth); + \draw[solid] (\crossfactor\pgflinewidth,-\crossfactor\pgflinewidth) + -- (-\crossfactor\pgflinewidth,\crossfactor\pgflinewidth); + } + } + } +] +\tikzstyle deletion=[crosstip,densely dotted,semithick] + + +%---------- +% P systems +%---------- +\tikzstyle membrane=[draw,rectangle,rounded corners, minimum size=15pt] + +% A shortcut for drawing membrane nodes. +%\newcommand{\membrane}[4]{ +% \node[membrane,label={[inner sep=1,yshift=5pt,name=#2 label]below right:{\scriptsize #1}},#4] (#2) {#3}; +%} +\newcommand{\membrane}[4]{ + \node[membrane,#4] (#2) {#3}; + \node[below right=-6pt and 0 of #2,inner sep=1] (#2 label) {\scriptsize #1}; +} diff --git a/recherche.tex b/recherche.tex index 32021aa..545cbf6 100644 --- a/recherche.tex +++ b/recherche.tex @@ -7,7 +7,8 @@ bib/mcrs.bib, bib/arrays.bib, bib/programming.bib, - bib/algebra.bib + bib/algebra.bib, + bib/sivanov.bib ] \section{Activités de recherche} @@ -482,6 +483,271 @@ pour la simulation de systèmes et la vérification de modèles. Les sous-sections suivantes donnent une vue plus détaillée sur les trois parties de mon projet de recherche. +\subsubsection{Langages formels et calcul formel} +La plupart de contributions que j'ai faites pendant mon doctorat +s'inscrivent dans le domaine des langages formels et de l'étude +formelle du calcul. L'approche souvent adoptée dans ce domaine est de +traiter l'évolution dynamique de systèmes comme une suite de +configurations discrète, décrite par un langage formel. Dans cette +optique, le comportement d'un système peut être décrit pas des règles +de réécriture de chaînes de caractère formelles. Les deux types de +modèles de réécriture dont je compte approfondir ma compréhension sont +les systèmes d'insertion/effacement et les systèmes de réécriture de +multiensembles. + +\paragraph{Insertion/effacement} +L'une des premières pistes que j'aborderai dans ce contexte sera la +continuation de l'étude des systèmes d'insertion/effacement avec des +contextes de petite taille, et particulièrement les systèmes dont +toutes les règles ne possèdent que le contexte à gauche. La complétude +(ou l'incomplétude) computationnelle de ces systèmes n'a toujours pas +été démontrée. Au delà de la complétude computationnelle qui n'est +qu'une caractérisation très approximative du comportement possible de +ces systèmes, il serait très intéressant d'étudier la dynamique +engendrée par les règles d'insertion et d'effacement de plus près. Je +voudrais notamment utiliser dans ce but les graphes de dérivation, qui +définissent un protocole de représentation graphique des dérivations, +qui code code chaque insertion par un trait, et chaque effacement par +un trait pointillé. + +La figure~\ref{fig:insdel:lft-2n} montre un exemple de comportement +dynamique que peut avoir un système d'in\-ser\-tion/ef\-face\-ment +avec des règles qui n'insèrent et n'effacent qu'un symbole à la fois +et qui vérifient uniquement les contextes à gauche (un système de +taille $(1,1,0; 1,1,0)$). Il s'agit du système décrit +dans~\cite[Section~8]{JL2005} qui possède un taux de croissance +exponentiel et qui engendre donc un langage non-algébrique. Dans la +figure~\ref{fig:insdel:lft-2n} nous avions mis en gras les symboles +terminaux ainsi que tous les symboles qui insèrent des symboles +gras. Avec ce code couleur on voit immédiatement que le graphe +correspondant à une dérivation de ce système consiste en des chemins +gras qui interagissent par le biais de structures gris clair. En +outre, on remarque la croissance exponentielle de chemins gras, de +droite à gauche : effectivement, le chemin gras de droite contient un +symbole $D$, celui d'avant en contient 2, le troisième chemin de +droite contient 4 symboles $D$, alors que le chemin gras de tout à +gauche contient déjà 8 symboles $F$. + +\begin{figure}[h!] + \centering + \vspace{2mm} + \begin{tikzpicture}[node distance=5pt and -20pt] + \node[nsymb] (x) {$\nbold x$}; + + % The symbols of the first red branch consisting of F-symbols. + \node[nsymb,below right=of x] (n1) {$\nbold F_1$}; + \node[nsymb,below right=of n1] (n2) {$\nbold F_0$}; + \node[nsymb,below right=of n2] (n3) {$\nbold F_1$}; + \node[nsymb,below right=of n3] (n4) {$\nbold F_0$}; + \node[nsymb,below right=of n4] (n5) {$\nbold F_1$}; + \node[nsymb,below right=of n5] (n6) {$\nbold F_0$}; + \node[nsymb,below right=of n6] (n7) {$\nbold F_1$}; + \node[nsymb,below right=of n7] (n8) {$\nbold F_0$}; + \node[nsymb,below right=of n8] (a01) {$\nbold a_0$}; + + % The first red branch itself. + \draw[insertion] (x) -- (n1) -- (n2) -- (n3) -- (n4) -- (n5) -- (n6) + -- (n7) -- (n8) -- (a01); + + % The nodes of the leftmost green branch. + \node[nsymb,right=0 and 10pt of a01] (n9) {$\nlight X_{0,0}$}; + \node[nsymb,above right=of n9] (n10) {$\nlight Y_{0,0}$}; + \node[nsymb,above right=of n10] (n11) {$\nlight X_{0,1}$}; + \node[nsymb,above right=of n11] (n12) {$\nlight Y_{0,1}$}; + \node[nsymb,above right=of n12] (n13) {$\nlight X_{0,0}$}; + \node[nsymb,above right=of n13] (n14) {$\nlight Y_{0,0}$}; + \node[nsymb,above right=of n14] (n15) {$\nlight X_{0,1}$}; + \node[nsymb,above right=of n15] (n16) {$\nlight Y_{0,1}$}; + + \node[nsymb] at ($(n16)+(16pt,20pt)$) (d1) {$\nbold D_{0,1}$}; + + % The deletions connecting together the leftmost green branch. + \draw[deletion] ($(a01)+(9pt,0)$) -- (n9); + \foreach \i / \j in {9/10, 10/11, 11/12, 12/13, 13/14, 14/15, 15/16} { + \draw[deletion] ($(n\i)+(-1pt,7pt)$) -- ($(n\j)+(-4.5pt,-7pt)$); + } + \draw[deletion] ($(n16)+(1pt,7pt)$) -- ($(d1)+(-10pt,-6pt)$); + + % The insertions of the nodes on the leftmost green branch by the + % nodes on the leftmost red branch. + \foreach \i / \j in {8/9, 7/10, 6/11, 5/12, 4/13, 3/14, 2/15, 1/16} { + \draw[insertion,shorten >=-3pt, shorten <=-5pt] (n\i) -- (n\j); + } + \draw[insertion,shorten >=-3pt, shorten <=-7pt] (x) -- (d1); + + % The nodes of the red branch starting at D_{0,1}. + \node[nsymb,below right=of d1] (n17) {$\nbold D_{0,0}$}; + \node[nsymb,below right=of n17] (n18) {$\nbold D_{0,1}$}; + \node[nsymb,below right=of n18] (n19) {$\nbold D_{0,0}$}; + \node[nsymb] at ($(n19)+(3pt,-20pt)$) (b1) {$\nbold B_0$}; + \node[nsymb,below right=of b1] (a11) {$\nbold a_1$}; + + % The red branch starting at D_{0,1} itself. + \foreach \i / \j in {d1/n17, n17/n18, n18/n19} { + \draw[insertion] ($(\i)+(-1.5pt,-6pt)$) -- ($(\j)+(-5pt,8pt)$); + } + \draw[insertion,shorten >=-1pt] ($(n19)+(0pt,-6pt)$) -- (b1) -- (a11); + + % The deletions coming from the leftmost green branch over to the + % second red branch from the left. + \draw[deletion] ($(n10)+(4pt,5pt)$) to[out=28,in=-105] ($(n19)+(-5pt,-6pt)$); + \draw[deletion] ($(n12)+(5pt,6pt)$) to[out=28,in=-105] ($(n18)+(-6pt,-6pt)$); + \draw[deletion] ($(n14)+(4pt,5pt)$) to[out=28,in=-105] ($(n17)+(-6pt,-6pt)$); + \draw[deletion] ($(a01)+(3pt,-5pt)$) to[out=-35,in=-105] ($(b1)+(-4pt,-8pt)$); + + % The nodes of the second leftmost green branch. + \node[nsymb] at ($(a11)+(19pt,19pt)$) (n20) {$\nlight X_{1,0}$}; + \node[nsymb,above right=of n20] (n21) {$\nlight Y_{1,0}$}; + \node[nsymb,above right=of n21] (n22) {$\nlight X_{1,1}$}; + \node[nsymb,above right=of n22] (n23) {$\nlight Y_{1,1}$}; + + \node[nsymb] at ($(n23)+(16pt,19pt)$) (d2) {$\nbold D_{1,1}$}; + + % The deletions connecting together the second green branch. + \draw[deletion] ($(a11)+(6pt,4pt)$) -- ($(n20)+(-8pt,-6pt)$); + \foreach \i / \j in {20/21, 21/22, 22/23} { + \draw[deletion] ($(n\i)+(-2pt,7pt)$) -- ($(n\j)+(-5pt,-7pt)$); + } + \draw[deletion] ($(n23)+(1pt,7pt)$) -- ($(d2)+(-10pt,-6pt)$); + + % The insertions of the nodes on the second leftmost green branch. + \foreach \i / \j in {19/20, 18/21, 17/22} { + \draw[insertion,shorten >=-2pt, shorten <=-2pt] (n\i) -- (n\j); + } + \draw[insertion,shorten >=-2pt, shorten <=-2pt] (d1) -- (n23); + \draw[insertion,shorten >=-3pt, shorten <=-7pt] (x) to[out=-5,in=172] (d2); + + % The nodes of the third leftmost red branch. + \node[nsymb] at ($(d2)+(5pt,-19pt)$) (n24) {$\nbold D_{1,0}$}; + \node[nsymb] at ($(n24)+(3pt,-19pt)$) (b2) {$\nbold B_1$}; + \node[nsymb,below right=of b2] (a02) {$\nbold a_0$}; + + % The red branch itself. + \draw[insertion] ($(d2)+(-1.5pt,-6pt)$) -- ($(n24)+(-5pt,8pt)$); + \draw[insertion,shorten >=-1pt] ($(n24)+(0pt,-6pt)$) -- (b2) -- (a02); + + % The deletions of symbols on the third leftmost red branch. + \draw[deletion] ($(n21)+(4pt,5pt)$) to[out=28,in=-105] ($(n24)+(-5pt,-6pt)$); + \draw[deletion] ($(a11)+(8pt,1pt)$) to[out=15,in=-105] ($(b2)+(-3pt,-6pt)$); + + % The symbols of the rightmost green branch. + \node[nsymb] at ($(a02)+(19pt,19pt)$) (n25) {$\nlight X_{0,0}$}; + \node[nsymb,above right=of n25] (n26) {$\nlight Y_{0,0}$}; + + \node[nsymb] at ($(n26)+(16pt,19pt)$) (d3) {$\nbold D_{0,0}$}; + + % The deletions connecting the rightmost green branch together. + \draw[deletion] ($(a02)+(6pt,4pt)$) -- ($(n25)+(-8pt,-6pt)$); + \draw[deletion] ($(n25)+(-2pt,7pt)$) -- ($(n26)+(-4.5pt,-7pt)$); + \draw[deletion] ($(n26)+(1pt,7pt)$) -- ($(d3)+(-10pt,-6pt)$); + + % The insertions of the symbols on the rightmost green branch. + \draw[insertion,shorten >=-2pt, shorten <=-2pt] (n24) -- (n25); + \draw[insertion,shorten >=-2pt, shorten <=-2pt] (d2) -- (n26); + \draw[insertion,shorten >=-3pt, shorten <=-7pt] (x) to[out=-3,in=170] (d3); + + % The rightmost red branch. + \node[nsymb] at ($(d3)+(4pt,-18pt)$) (b3) {$\nbold B_0$}; + \node[nsymb,below right=of b3] (a12) {$\nbold a_1$}; + + % The rightmost red branch itself. + \draw[insertion,shorten >=-1pt] ($(d3)+(0pt,-6pt)$) -- (b3) -- (a12); + + % The deletions of symbols on the rightmost red branch. + \draw[deletion] ($(a02)+(8pt,1pt)$) to[out=15,in=-105] ($(b3)+(-3pt,-6pt)$); + \end{tikzpicture} + \vspace{-7mm} + \caption{Un graphe de dérivation pour un système + d'insertion/effacement de taille $(1,1,0; 1,1,0)$ qui engendre un + langage non-algébrique~\cite[Section~8]{JL2005}} + \label{fig:insdel:lft-2n} +\end{figure} + +Nous tirons deux conclusions de cette analyse superficielle de la +figure~\ref{fig:insdel:lft-2n}. D'un côté, on observe que les règles +d'insertion et d'effacement de petite taille peuvent avoir un +comportement assez complexe, qui dépasse même la puissance de +modélisation des automates à pile. D'un autre côté, on note +l'efficacité visuelle des graphes de dérivation, qui offrent une vue +d'ensemble sur une dérivation sans perdre des détailles dynamiques +essentiels, c'est-à-dire les éléments de comportement qui on une +influence sur le langage engendré. Cette propriété des graphes de +dérivation les rend très intéressant pour tout étude de la dynamique +de systèmes d'insertion/effacement. + +\paragraph{Réécriture de multiensembles} +La réécriture de multiensembles, et notamment les systèmes à +membranes, est le domaine dans lequel j'ai fait mes plus anciennes +contributions scientifiques et dont plusieurs questions continuent à +m'intéresser à présent. Dans la continuité des travaux menés pendant +mon doctorat, je voudrais poursuivre l'étude du problème de +l'universalité pour ce modèle et en particulier l'étude des techniques +d'optimisations de la taille des systèmes universels. + +D'un autre côté, je voudrais me concentrer plus sur l'étude de +systèmes à membranes avec des règles dynamiques, dites polymorphes, +que nous avions introduits dans~\cite{AI2011} et dont une variante +restreinte j'ai étudiée dans~\cite{DBLP:conf/membrane/Ivanov14}. Le +comportement de ces systèmes ressemble au celui de cellules vivantes +dans le fait que les règles qui dirigent l'évolution peuvent être +modifiées, ce qui donne un dimension de dynamisme en plus. De plus, le +polymorphisme complexifie le rapport entre les étapes consécutives +d'évolution, car une configuration du système détermine non seulement +la configuration suivante, mais aussi la forme de règles qui seront +utilisées plus tard dans l'évolution. + +La figure~\ref{fig:superexponential-growth} montre un exemple d'un +système polymorphe qui possède un taux de croissance +super-exponentiel. Ce système a deux règles : la première qui a +initialement la forme $a\to a$, et la deuxième qui ne varie pas et qui +double le nombre de $a$ dans la partie droite de la première +règle. Ainsi, après $k$ pas d'évolution, la première règle aura la +forme $a\to a^{2^{k}}$. Par conséquence, après le même nombre de pas, +la membrane extérieure du système contiendra $2^{\frac{k(k-1)}{2}}$ +copies de $a$. + +\begin{figure}[h] + \centering + \vspace{2mm} + \begin{tikzpicture} + \node (r2) {$2:a\to aa$}; + \node[below=.1 of r2] (w1L) {$a$}; + + \membrane{$1R$}{1R}{}{fit={(r2) (w1L)}} + \membrane{$1L$}{1L}{$a$}{below left=-15.5pt and 13pt of 1R} + \node[below left=5pt and -25pt of 1R] (ws) {$a$}; + + \membrane{$s$}{s}{}{fit={(1L) (1L label) (1R) (1R label) (ws)}} + \end{tikzpicture} + \caption{Un P système polymorphe avec un taux de croissance + super-exponentiel} + \label{fig:superexponential-growth} +\end{figure} + +On remarque deux pistes d'exploration possibles pour les systèmes à +membranes polymorphe. La première reste dans le cadre de l'étude +formelle et se focalise sur le rapport entre les restrictions que l'on +peut imposer statiquement et le comportement dynamique des systèmes +avec ces restrictions, particulièrement leur puissance de calcul. La +deuxième piste mène vers une collaboration interdisciplinaire et +consiste à trouver des parallèles entre la complexité induite par le +polymorphisme et la complexité intrinsèque des systèmes complexes tels +que l'on trouve en biologie, en physique, etc. Trouver de telles +parallèles permettrait d'approfondir la compréhension de ce type de +système et de les modifier de sorte qu'ils aient le comportement +désiré. + +Une autre direction majeure de recherche qui m'attire fortement est la +conception de cadres généraux pour réunir plusieurs variantes de +systèmes à membranes. Étant donnée la variété importante de variantes +de ces systèmes, avoir des cadres généraux permet tout d'abord +d'unifier la terminologie qui est souvent dérivée de diverses domaines +de la biologie et donc hétérogène. Deuxièmement, cette unification +offre souvent des perspectives très éclairantes sur les combinaisons +possibles d'ingrédients qui n'ont pas encore été étudiées. + +\subsection{Old} + 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