From 867dfe10b1f4df6dab99339e99c6900756f84976 Mon Sep 17 00:00:00 2001 From: Sergiu Ivanov Date: Tue, 8 Dec 2015 23:55:10 +0100 Subject: [PATCH] Fix a number of things in the scientific project. --- recherche.tex | 126 ++++++++++++++++++++++++++------------------------ 1 file changed, 65 insertions(+), 61 deletions(-) diff --git a/recherche.tex b/recherche.tex index c7d6533..1f5655e 100644 --- a/recherche.tex +++ b/recherche.tex @@ -497,24 +497,24 @@ 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 +L'une des premières pistes que j'aborderais dans ce contexte sera la continuation de l'étude des systèmes d'insertion/effacement avec des contextes de petite taille, et particulièrement les systèmes dont toutes les règles ne possèdent que le contexte à gauche. La complétude (ou l'incomplétude) computationnelle de ces systèmes n'a toujours pas été démontrée. Au delà de la complétude computationnelle qui n'est qu'une caractérisation très approximative du comportement possible de -ces systèmes, il serait très intéressant d'étudier la dynamique -engendrée par les règles d'insertion et d'effacement de plus près. Je +ces systèmes, il serait très intéressant d'étudier de plus près la dynamique +engendrée par les règles d'insertion et d'effacement. Je voudrais notamment utiliser dans ce but les graphes de dérivation, qui -définissent un protocole de représentation graphique des dérivations, -qui code code chaque insertion par un trait, et chaque effacement par +définissent un protocole de représentation graphique de dérivations, +qui code chaque insertion par un trait, et chaque effacement par un trait pointillé. 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 +et qui vérifient uniquement les contextes à gauche (des règles de taille $(1,1,0; 1,1,0)$). Il s'agit du système décrit dans~\cite[Section~8]{JL2005} qui possède un taux de croissance exponentiel et qui engendre donc un langage non-algébrique. Dans la @@ -523,10 +523,10 @@ 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 +outre, on remarque la croissance exponentielle des chemins gras, de droite à gauche : effectivement, le chemin gras de droite contient un symbole $D$, celui d'avant en contient 2, le troisième chemin de -droite contient 4 symboles $D$, alors que le chemin gras de tout à +droite contient 4 symboles $D$, alors que le chemin gras tout à gauche contient déjà 8 symboles $F$. \begin{figure}[h!] @@ -667,14 +667,14 @@ gauche contient déjà 8 symboles $F$. Nous tirons deux conclusions de cette analyse superficielle de la figure~\ref{fig:insdel:lft-2n}. D'un côté, on observe que les règles d'insertion et d'effacement de petite taille peuvent avoir un -comportement assez complexe, qui dépasse même la puissance de +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 +l'efficacité visuelle des graphes de dérivation qui offrent une vue +d'ensemble sur une dérivation sans perdre les détails dynamiques +essentiels, c'est-à-dire les éléments de comportement qui ont une influence sur le langage engendré. Cette propriété des graphes de -dérivation les rend très intéressant pour tout étude de la dynamique -de systèmes d'insertion/effacement. +dérivation les rend très intéressants pour toute étude de la dynamique +des systèmes d'insertion/effacement. \paragraph{Réécriture de multiensembles} La réécriture de multiensembles, et notamment les systèmes à @@ -691,10 +691,10 @@ 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 +modifiées, ce qui donne une dimension de dynamisme en plus. En outre, le polymorphisme complexifie le rapport entre les étapes consécutives d'évolution, car une configuration du système détermine non seulement -la configuration suivante, mais aussi la forme de règles qui seront +la configuration suivante, mais aussi la forme des règles qui seront utilisées plus tard dans l'évolution. La figure~\ref{fig:superexponential-growth} montre un exemple d'un @@ -726,17 +726,16 @@ copies de $a$. \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 +membranes polymorphes. La première reste dans le cadre de l'étude formelle et se focalise sur le rapport entre les restrictions que l'on peut imposer statiquement et le comportement dynamique des systèmes avec ces restrictions, particulièrement leur puissance de calcul. La deuxième piste mène vers une collaboration interdisciplinaire et consiste à trouver des parallèles entre la complexité induite par le polymorphisme et la complexité intrinsèque des systèmes complexes tels -que l'on trouve en biologie, en physique, etc. 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é. +que l'on trouve en biologie, en physique, etc. De telles parallèles +permettrait d'approfondir la compréhension de cette complexité et +suggérerait des manières de la gérer. Une autre direction majeure de recherche qui m'attire fortement est la conception de cadres généraux pour réunir plusieurs variantes de @@ -750,16 +749,17 @@ possibles d'ingrédients qui n'ont pas encore été étudiées. \paragraph{Autres modèles de calcul} En plus des deux modèles de calculs déjà mentionnés dans cette sous-section, je voudrais en continuer l'exploration d'autres ayant des liens de parenté forts avec -les systèmes d'insertion/effacement et de la réécriture de +les systèmes d'insertion/effacement et avec la réécriture de multiensembles. Ainsi, je suis intéressé par les machines à registres -universelles de petite taille et je voudrais réduire la taille des +universelles de petite taille et je voudrais travailler sur la +réduction de la taille des constructions existantes. Cela permettrait d'améliorer les systèmes à membranes universels en réduisant le nombre de règles, de symboles, ou d'autres ingrédients utilisés. Je voudrais également continuer l'étude de réseaux de processeurs évolutionnaires, mais au lieu de me pencher sur la caractérisation de -leur puissance d'expression je m'intéresse plutôt à la dimension +leur puissance d'expression je m'intéresserais plutôt à la dimension parallèle inhérente à ce modèle de calcul. Je voudrais notamment explorer le lien entre les réseaux de processeurs évolutionnaires et les systèmes à membranes ; en effet, dans les cas des deux modèles on @@ -773,7 +773,7 @@ paraît intéressant de concevoir un cadre général pour ces deux modèles afin d'explorer à un haut niveau d'abstraction les manières différentes dont le calcul parallèle pourrait être organisé. En plus, ce cadre généralisant pourrait indiquer d'autres membres de la famille -des modèles de calcul dont les réseaux de processeurs évolutionnaires +de modèles de calcul dont les réseaux de processeurs évolutionnaires et les systèmes à membranes font partie. Encore un modèle de calcul intrinsèquement parallèle qui m'attire @@ -823,11 +823,11 @@ globale du modèle corresponde à celui du système. Cette approche pourrait offrir une vue beaucoup plus détaillée sur les liens entre les causes et les effets dans le système, et donnerait dans l'idéal des façons de décomposer le modèle en sous-parties modulaires, -c'est-à-dire des parties dont les homologues on espérerait trouver +c'est-à-dire des parties dont on espérerait trouver les homologues dans les modèles des autres systèmes. Toutefois, il est clair que ce type d'analyse nécessite une compréhension plus profonde du système à modéliser mais aussi des techniques de modélisation. Je souhaiterais -me concentrer sur ces techniques et travailler vers la formulation des +me concentrer sur ces techniques et travailler vers la formulation de véritables algèbres de modèles, dans le cadre desquelles on pourrait construire des modèles plus complexes à partir des plus simples, mais aussi retrouver des blocs en lesquels un modèle existant peut être @@ -842,42 +842,33 @@ d'événements de sortie, un ensemble de chaînes sur les deux alphabets qui décrit les suites d'interactions possibles entre l'automate et l'environnement, ainsi qu'un ensemble de chaînes qui mène l'automate vers un état d'erreur. Une relation de raffinement est définie pour -les automates d'interface et ensuite des opération de compositions +les automates d'interface et ensuite des opérations de composition sont introduites de sorte à être compatibles avec la relation de raffinement. -La définition d'automates d'interface étant très générale, les -propriétés démontrées dans~\cite{Chilton2014146} sont applicables pour +La définition d'un automate d'interface étant très générale, les +propriétés démontrées dans~\cite{Chilton2014146} sont applicables à une classe très large de modèles. Malheureusement, cette généricité implique aussi que l'on ne peut déduire que des conclusions assez générales pour être applicables à toute situation. Ce problème est fort difficile à contourner, car il est inhérent à tout langage -générique. Dans ma recherche je compte utiliser le langage de la -théorie des catégories pour attaquer la modélisation modulaire. +générique. Je suis néanmoins convaincu qu'un langage riche permettant +non seulement d'exprimer des propriétés à un haut niveau +d'abstraction, mais aussi de décrire des objets spécialisés, peut +donner des indices sur la résolution du problème de généricité. Dans +ma recherche je compte utiliser la théorie des catégories comme un tel +langage. Une catégorie est l'un des formalismes qui abstraient la notion de structure mathématique elle-même. Une catégorie est défini comme une collection d'« objets » et de « flèches » entre les objets, aucune restriction n'étant imposée sur ce qu'un « objet » peut être, alors -que les flèches doivent respectée quelques propriétés de composition -très simples. (Le manuscrit~\cite{Adamek04} peut servir de référence.) +que les flèches doivent respecter quelques propriétés de composition +basiques. (La monographie~\cite{Adamek04} peut servir de référence.) En plus d'être très générale, la terminologie de la théorie des catégories admet des intuitions graphiques naturelles. -Malgré sa généralité, le langage des catégories permet de construire -certains objets non-triviaux. Par exemple, la figure~\ref{fig:prod} -défini l'objet produit $X_1\times X_2$ pour des objets $X_1$ et $X_2$ -d'une catégorie quelconque. Dans la catégorie des ensembles, le -produit correspond au produit cartésien, dans la catégorie des groupes -le produit correspond au produit direct, etc. La figure~\ref{fig:prod} -définit le produit $X_1\times X_2$ comme un objet avec deux flèches -$\pi_1$ et $\pi_2$ qui vont vers $X_1$ et $X_2$ respectivement, tel -que si on prend n'importe quel autre objet $Y$ avec deux flèches $f_1$ -et $f_2$ vers $X_1$ et $X_2$, il existe une seule flèche de $Y$ vers -$X_1\times X_2$ telle que $\pi_1\circ f = f_1$ et $\pi_2 \circ f = -f_2$ (le diagramme est dit commutatif dans ce cas). - -\begin{figure}[h] +\begin{figure}[b] \centering \begin{tikzpicture}[node distance=9mm] \node (y) {$Y$}; @@ -895,19 +886,32 @@ f_2$ (le diagramme est dit commutatif dans ce cas). \label{fig:prod} \end{figure} +Malgré sa généralité, le langage des catégories permet de construire +certains objets non-triviaux. Par exemple, la figure~\ref{fig:prod} +défini l'objet produit $X_1\times X_2$ pour des objets $X_1$ et $X_2$ +d'une catégorie quelconque. Dans la catégorie des ensembles, le +produit correspond au produit cartésien, dans la catégorie des groupes +le produit correspond au produit direct, etc. La figure~\ref{fig:prod} +définit le produit $X_1\times X_2$ comme un objet avec deux flèches +$\pi_1$ et $\pi_2$ qui vont vers $X_1$ et $X_2$ respectivement, tel +que si l'on prend n'importe quel autre objet $Y$ avec deux flèches $f_1$ +et $f_2$ vers $X_1$ et $X_2$, il existe une seule flèche de $Y$ vers +$X_1\times X_2$ telle que $\pi_1\circ f = f_1$ et $\pi_2 \circ f = +f_2$ (le diagramme est dit commutatif dans ce cas). + Il existe d'autres façons de construire des objets composés qui, grâce à la généralité des catégories, pourraient être appliquées à des -modèles très différents. L'avantage de l'approche catégorique par +modèles très différents. L'avantage de l'approche catégorielle par rapport à celle proposée dans~\cite{Chilton2014146} seraient que, dans la théorie des catégories, il est aussi possible de préciser formellement quelles propriétés une catégories devrait avoir pour qu'une certaine manière de composer les objets soit -faisable. Autrement dit, le langage des catégories est assez général -pour pouvoir formuler des propriétés très générales concernant des +faisable. Autrement dit, le langage des catégories est assez riche +pour pouvoir formuler des propriétés concernant des classes vastes d'objets aussi bien que des propriétés bien concrètes, valables dans certains cas particuliers uniquement. Je souhaite donc m'investir dans l'exploration des possibilités d'appliquer l'approche -catégorique à la composition de modèles afin de contribuer à l'étude +catégorielle à la composition de modèles afin de contribuer à l'étude de systèmes complexes. \subsubsection{Programmation algébrique} @@ -922,9 +926,9 @@ facilement à une description sous la forme d'une spécification qui peut être utilisée ensuite pour de la validation automatique. Ainsi, la pratique d'incorporer certains aspect catégorielles dans le systèmes de typage se voit de plus en plus adoptée par les -développeurs des langages de programmation. +développeurs de langages de programmation. -Un exemple de langage qui a incorporé un nombre important de concept +Un exemple de langage qui a incorporé un nombre important de concepts catégoriels est Haskell~\cite{haskellorg}. Ce langage permet de manipuler directement des structures telles que monoïdes, foncteurs, monades, etc. afin de pouvoir spécifier des propriétés assez fortes @@ -932,13 +936,13 @@ sur les types, et notamment de factoriser les structures de données utilisées ainsi que le code source. Il s'agit donc d'un travail de découpage des structures de données et du code source en sous-parties, ce qui est un cas particulier du problème général de décomposition de -modèles décrit dans la section précédente. Par conséquent je trouve -très intéressant de représenter tout ébauche de théorie algébrique de -modèles sur l'ordinateur dans un langage haut niveau, car d'une part -cela permettra de vérifier la justesse des définitions et de les -exécuter assez tôt, et d'autre part cette approche s'inspire -directement de l'étude formelle derrière les langages haut niveau -rapprochant ainsi les problèmes de modélisation de ce domaine. +modèles décrit dans la section précédente. Par conséquent, je trouve +très intéressant de représenter toute ébauche de théorie algébrique de +modèles sur l'ordinateur dans un langage haut niveau, car cela +permettra d'une part de vérifier la justesse des définitions et de les +tester en exécution assez tôt, et d'autre part de s'inspirer de +l'étude formelle derrière les langages haut niveau pour attaquer les +problèmes de modélisation de systèmes complexes. \printbibliography \end{refsection}