Fix a number of things in the scientific project.

This commit is contained in:
Sergiu Ivanov 2015-12-08 23:55:10 +01:00
parent 24e014c15a
commit 867dfe10b1

View file

@ -497,24 +497,24 @@ les systèmes d'insertion/effacement et les systèmes de réécriture de
multiensembles. multiensembles.
\paragraph{Insertion/effacement} \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 continuation de l'étude des systèmes d'insertion/effacement avec des
contextes de petite taille, et particulièrement les systèmes dont 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 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 (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 é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 qu'une caractérisation très approximative du comportement possible de
ces systèmes, il serait très intéressant d'étudier la dynamique 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 de plus près. Je engendrée par les règles d'insertion et d'effacement. Je
voudrais notamment utiliser dans ce but les graphes de dérivation, qui voudrais notamment utiliser dans ce but les graphes de dérivation, qui
définissent un protocole de représentation graphique des dérivations, définissent un protocole de représentation graphique de dérivations,
qui code code chaque insertion par un trait, et chaque effacement par qui code chaque insertion par un trait, et chaque effacement par
un trait pointillé. un trait pointillé.
La figure~\ref{fig:insdel:lft-2n} montre un exemple de comportement 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 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 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 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 dans~\cite[Section~8]{JL2005} qui possède un taux de croissance
exponentiel et qui engendre donc un langage non-algébrique. Dans la 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 gras. Avec ce code couleur on voit immédiatement que le graphe
correspondant à une dérivation de ce système consiste en des chemins correspondant à une dérivation de ce système consiste en des chemins
gras qui interagissent par le biais de structures gris clair. En 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 droite à gauche : effectivement, le chemin gras de droite contient un
symbole $D$, celui d'avant en contient 2, le troisième chemin de 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$. gauche contient déjà 8 symboles $F$.
\begin{figure}[h!] \begin{figure}[h!]
@ -667,14 +667,14 @@ gauche contient déjà 8 symboles $F$.
Nous tirons deux conclusions de cette analyse superficielle de la 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 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 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 modélisation des automates à pile. D'un autre côté, on note
l'efficacité visuelle des graphes de dérivation, qui offrent une vue l'efficacité visuelle des graphes de dérivation qui offrent une vue
d'ensemble sur une dérivation sans perdre des détailles dynamiques d'ensemble sur une dérivation sans perdre les détails dynamiques
essentiels, c'est-à-dire les éléments de comportement qui on une essentiels, c'est-à-dire les éléments de comportement qui ont une
influence sur le langage engendré. Cette propriété des graphes de 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 dérivation les rend très intéressants pour toute étude de la dynamique
de systèmes d'insertion/effacement. des systèmes d'insertion/effacement.
\paragraph{Réécriture de multiensembles} \paragraph{Réécriture de multiensembles}
La réécriture de multiensembles, et notamment les systèmes à 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 restreinte j'ai étudiée dans~\cite{DBLP:conf/membrane/Ivanov14}. Le
comportement de ces systèmes ressemble au celui de cellules vivantes comportement de ces systèmes ressemble au celui de cellules vivantes
dans le fait que les règles qui dirigent l'évolution peuvent être 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 polymorphisme complexifie le rapport entre les étapes consécutives
d'évolution, car une configuration du système détermine non seulement 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. utilisées plus tard dans l'évolution.
La figure~\ref{fig:superexponential-growth} montre un exemple d'un La figure~\ref{fig:superexponential-growth} montre un exemple d'un
@ -726,17 +726,16 @@ copies de $a$.
\end{figure} \end{figure}
On remarque deux pistes d'exploration possibles pour les systèmes à 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 formelle et se focalise sur le rapport entre les restrictions que l'on
peut imposer statiquement et le comportement dynamique des systèmes peut imposer statiquement et le comportement dynamique des systèmes
avec ces restrictions, particulièrement leur puissance de calcul. La avec ces restrictions, particulièrement leur puissance de calcul. La
deuxième piste mène vers une collaboration interdisciplinaire et deuxième piste mène vers une collaboration interdisciplinaire et
consiste à trouver des parallèles entre la complexité induite par le consiste à trouver des parallèles entre la complexité induite par le
polymorphisme et la complexité intrinsèque des systèmes complexes tels polymorphisme et la complexité intrinsèque des systèmes complexes tels
que l'on trouve en biologie, en physique, etc. Trouver de telles que l'on trouve en biologie, en physique, etc. De telles parallèles
parallèles permettrait d'approfondir la compréhension de ce type de permettrait d'approfondir la compréhension de cette complexité et
système et de les modifier de sorte qu'ils aient le comportement suggérerait des manières de la gérer.
désiré.
Une autre direction majeure de recherche qui m'attire fortement est la Une autre direction majeure de recherche qui m'attire fortement est la
conception de cadres généraux pour réunir plusieurs variantes de 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 \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 calculs déjà mentionnés dans cette sous-section, je voudrais en
continuer l'exploration d'autres ayant des liens de parenté forts avec 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 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 à constructions existantes. Cela permettrait d'améliorer les systèmes à
membranes universels en réduisant le nombre de règles, de symboles, ou membranes universels en réduisant le nombre de règles, de symboles, ou
d'autres ingrédients utilisés. d'autres ingrédients utilisés.
Je voudrais également continuer l'étude de réseaux de processeurs Je voudrais également continuer l'étude de réseaux de processeurs
évolutionnaires, mais au lieu de me pencher sur la caractérisation de é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 parallèle inhérente à ce modèle de calcul. Je voudrais notamment
explorer le lien entre les réseaux de processeurs évolutionnaires et 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 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 afin d'explorer à un haut niveau d'abstraction les manières
différentes dont le calcul parallèle pourrait être organisé. En plus, 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 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. et les systèmes à membranes font partie.
Encore un modèle de calcul intrinsèquement parallèle qui m'attire 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 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 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, 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 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 à type d'analyse nécessite une compréhension plus profonde du système à
modéliser mais aussi des techniques de modélisation. Je souhaiterais 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 véritables algèbres de modèles, dans le cadre desquelles on pourrait
construire des modèles plus complexes à partir des plus simples, mais construire des modèles plus complexes à partir des plus simples, mais
aussi retrouver des blocs en lesquels un modèle existant peut être 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 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 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 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 sont introduites de sorte à être compatibles avec la relation de
raffinement. raffinement.
La définition d'automates d'interface étant très générale, les 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 pour propriétés démontrées dans~\cite{Chilton2014146} sont applicables à
une classe très large de modèles. Malheureusement, cette généricité 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 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 générales pour être applicables à toute situation. Ce problème est
fort difficile à contourner, car il est inhérent à tout langage fort difficile à contourner, car il est inhérent à tout langage
générique. Dans ma recherche je compte utiliser le langage de la générique. Je suis néanmoins convaincu qu'un langage riche permettant
théorie des catégories pour attaquer la modélisation modulaire. 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 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 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 collection d'« objets » et de « flèches » entre les objets, aucune
restriction n'étant imposée sur ce qu'un « objet » peut être, alors 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 que les flèches doivent respecter quelques propriétés de composition
très simples. (Le manuscrit~\cite{Adamek04} peut servir de référence.) 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 En plus d'être très générale, la terminologie de la théorie des
catégories admet des intuitions graphiques naturelles. catégories admet des intuitions graphiques naturelles.
Malgré sa généralité, le langage des catégories permet de construire \begin{figure}[b]
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]
\centering \centering
\begin{tikzpicture}[node distance=9mm] \begin{tikzpicture}[node distance=9mm]
\node (y) {$Y$}; \node (y) {$Y$};
@ -895,19 +886,32 @@ f_2$ (le diagramme est dit commutatif dans ce cas).
\label{fig:prod} \label{fig:prod}
\end{figure} \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 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 à 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 rapport à celle proposée dans~\cite{Chilton2014146} seraient que, dans
la théorie des catégories, il est aussi possible de préciser la théorie des catégories, il est aussi possible de préciser
formellement quelles propriétés une catégories devrait avoir pour formellement quelles propriétés une catégories devrait avoir pour
qu'une certaine manière de composer les objets soit qu'une certaine manière de composer les objets soit
faisable. Autrement dit, le langage des catégories est assez général faisable. Autrement dit, le langage des catégories est assez riche
pour pouvoir formuler des propriétés très générales concernant des pour pouvoir formuler des propriétés concernant des
classes vastes d'objets aussi bien que des propriétés bien concrètes, classes vastes d'objets aussi bien que des propriétés bien concrètes,
valables dans certains cas particuliers uniquement. Je souhaite donc valables dans certains cas particuliers uniquement. Je souhaite donc
m'investir dans l'exploration des possibilités d'appliquer l'approche 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. de systèmes complexes.
\subsubsection{Programmation algébrique} \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, peut être utilisée ensuite pour de la validation automatique. Ainsi,
la pratique d'incorporer certains aspect catégorielles dans le la pratique d'incorporer certains aspect catégorielles dans le
systèmes de typage se voit de plus en plus adoptée par les 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 catégoriels est Haskell~\cite{haskellorg}. Ce langage permet de
manipuler directement des structures telles que monoïdes, foncteurs, manipuler directement des structures telles que monoïdes, foncteurs,
monades, etc. afin de pouvoir spécifier des propriétés assez fortes 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 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, 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 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 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 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 d'une part modèles sur l'ordinateur dans un langage haut niveau, car cela
cela permettra de vérifier la justesse des définitions et de les permettra d'une part de vérifier la justesse des définitions et de les
exécuter assez tôt, et d'autre part cette approche s'inspire tester en exécution assez tôt, et d'autre part de s'inspirer de
directement de l'étude formelle derrière les langages haut niveau l'étude formelle derrière les langages haut niveau pour attaquer les
rapprochant ainsi les problèmes de modélisation de ce domaine. problèmes de modélisation de systèmes complexes.
\printbibliography \printbibliography
\end{refsection} \end{refsection}