Cleanup
This commit is contained in:
parent
39d7daf528
commit
d74d3cd290
7 changed files with 2 additions and 2461 deletions
|
@ -25,7 +25,6 @@
|
||||||
BoldFont = *-RB ,
|
BoldFont = *-RB ,
|
||||||
ItalicFont = *-RI ,
|
ItalicFont = *-RI ,
|
||||||
BoldItalicFont = *-RBI ]
|
BoldItalicFont = *-RBI ]
|
||||||
%\setsansfont {Linux Biolinum O}
|
|
||||||
\setsansfont{LinBiolinum}[
|
\setsansfont{LinBiolinum}[
|
||||||
Path = fonts/ ,
|
Path = fonts/ ,
|
||||||
Extension = .otf ,
|
Extension = .otf ,
|
||||||
|
@ -33,7 +32,6 @@
|
||||||
BoldFont = *-RB ,
|
BoldFont = *-RB ,
|
||||||
ItalicFont = *-RI ]
|
ItalicFont = *-RI ]
|
||||||
|
|
||||||
%\setmonofont {Fantasque Sans Mono}
|
|
||||||
\setmonofont{FantasqueSansMono}[
|
\setmonofont{FantasqueSansMono}[
|
||||||
Path = fonts/ ,
|
Path = fonts/ ,
|
||||||
Extension = .ttf ,
|
Extension = .ttf ,
|
||||||
|
@ -42,7 +40,6 @@
|
||||||
ItalicFont = *-Italic ,
|
ItalicFont = *-Italic ,
|
||||||
BoldItalicFont = *-BoldItalic ]
|
BoldItalicFont = *-BoldItalic ]
|
||||||
|
|
||||||
%\setmathfont[mathbf=sym] {Asana Math}
|
|
||||||
\setmathfont[mathbf=sym] {Asana-Math}[
|
\setmathfont[mathbf=sym] {Asana-Math}[
|
||||||
Path = fonts/ ,
|
Path = fonts/ ,
|
||||||
Extension = .otf ]
|
Extension = .otf ]
|
||||||
|
@ -100,40 +97,5 @@
|
||||||
\definecolor{cyan} {HTML}{2aa198}
|
\definecolor{cyan} {HTML}{2aa198}
|
||||||
\definecolor{green} {HTML}{859900}
|
\definecolor{green} {HTML}{859900}
|
||||||
|
|
||||||
%Theme SMYCK
|
|
||||||
% 0x00 (dark black ) #000000
|
|
||||||
% 0x01 (dark red ) #C75646
|
|
||||||
% 0x02 (dark green ) #8EB33B
|
|
||||||
% 0x03 (dark yellow ) #D0B03C
|
|
||||||
% 0x04 (dark blue ) #72B3CC
|
|
||||||
% 0x05 (dark magenta) #C8A0D1
|
|
||||||
% 0x06 (dark cyan ) #218693
|
|
||||||
% 0x07 (dark white ) #B0B0B0
|
|
||||||
% 0x10 (light black ) #5D5D5D
|
|
||||||
% 0x11 (light red ) #E09690
|
|
||||||
% 0x12 (light green ) #CDEE69
|
|
||||||
% 0x13 (light yellow ) #FFE377
|
|
||||||
% 0x14 (light blue ) #9CD9F0
|
|
||||||
% 0x15 (light magenta) #FBB1F9
|
|
||||||
% 0x16 (light cyan ) #77DFD8
|
|
||||||
% 0x17 (light white ) #F7F7F7
|
|
||||||
%\definecolor{ darkblack }{HTML}{#000000}
|
|
||||||
%\definecolor{ darkred }{HTML}{#C75646}
|
|
||||||
%\definecolor{ darkgreen }{HTML}{#8EB33B}
|
|
||||||
%\definecolor{ darkyellow }{HTML}{#D0B03C}
|
|
||||||
%\definecolor{ darkblue }{HTML}{#72B3CC}
|
|
||||||
%\definecolor{ darkmagenta}{HTML}{#C8A0D1}
|
|
||||||
%\definecolor{ darkcyan }{HTML}{#218693}
|
|
||||||
%\definecolor{ darkwhite }{HTML}{#B0B0B0}
|
|
||||||
%\definecolor{lightblack }{HTML}{#5D5D5D}
|
|
||||||
%\definecolor{lightred }{HTML}{#E09690}
|
|
||||||
%\definecolor{lightgreen }{HTML}{#CDEE69}
|
|
||||||
%\definecolor{lightyellow }{HTML}{#FFE377}
|
|
||||||
%\definecolor{lightblue }{HTML}{#9CD9F0}
|
|
||||||
%\definecolor{lightmagenta}{HTML}{#FBB1F9}
|
|
||||||
%\definecolor{lightcyan }{HTML}{#77DFD8}
|
|
||||||
%\definecolor{lightwhite }{HTML}{#F7F7F7}
|
|
||||||
|
|
||||||
%NoUglyEmptySet
|
%NoUglyEmptySet
|
||||||
%\let\oldemptyset\emptyset
|
|
||||||
\let\emptyset\varnothing
|
\let\emptyset\varnothing
|
||||||
|
|
|
@ -2,8 +2,6 @@
|
||||||
\minitoc
|
\minitoc
|
||||||
|
|
||||||
\section{Introduction}
|
\section{Introduction}
|
||||||
% D'où activité ?
|
|
||||||
% C'est quoi le contexte
|
|
||||||
|
|
||||||
Nous commencerons cette partie en introduisant la notion d'activité, ses
|
Nous commencerons cette partie en introduisant la notion d'activité, ses
|
||||||
origines et son rapport à la modélisation multi-niveau. Après une partie
|
origines et son rapport à la modélisation multi-niveau. Après une partie
|
||||||
|
@ -99,7 +97,6 @@ sous-parties différentes dans un même système. Il est ainsi difficile de
|
||||||
déterminer quelle partie du système a contribué au fonctionnement global et dans
|
déterminer quelle partie du système a contribué au fonctionnement global et dans
|
||||||
quelle proportion.
|
quelle proportion.
|
||||||
|
|
||||||
% DONE: ajouter la définition de l'activité en économie
|
|
||||||
\paragraph{Activité économique} L'activité est au cœur des sciences
|
\paragraph{Activité économique} L'activité est au cœur des sciences
|
||||||
économiques de part l'objet d'étude de cette discipline. En effet l'économie
|
économiques de part l'objet d'étude de cette discipline. En effet l'économie
|
||||||
est une science qui se focalise sur la manière dont des ressources rares sont
|
est une science qui se focalise sur la manière dont des ressources rares sont
|
||||||
|
@ -137,11 +134,6 @@ décompte du nombre d'évènements concernant des ressources rares. Un exemple
|
||||||
d'usage prospectif est donné dans la section intitulée « Optimal Control
|
d'usage prospectif est donné dans la section intitulée « Optimal Control
|
||||||
Model of Activity » de \cite{muzy_refounding_2013}.
|
Model of Activity » de \cite{muzy_refounding_2013}.
|
||||||
|
|
||||||
% DONE: conclure avec une considération générale comme c'est bordélique,
|
|
||||||
% pourrait-on trouver un point de vue plus fédérateur pour la
|
|
||||||
% modélisation en tt cas ?
|
|
||||||
% DONE: donner dans chaque cas ce que ma thèse apporte
|
|
||||||
|
|
||||||
\bigskip\noindent Pour conclure cette section sur l'activité, nous émettons les
|
\bigskip\noindent Pour conclure cette section sur l'activité, nous émettons les
|
||||||
remarques suivantes:
|
remarques suivantes:
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
|
@ -157,20 +149,6 @@ nouveau type d'activité, l'activité spatiale, dans le contexte de \mgs{} et qu
|
||||||
cette activité nous apportera une représentation du système utile à la fois pour
|
cette activité nous apportera une représentation du système utile à la fois pour
|
||||||
la simulation et pour la modélisation.
|
la simulation et pour la modélisation.
|
||||||
|
|
||||||
%L'activité est couramment utilisée pour décrire, durant ou après une simulation,
|
|
||||||
%ce qui change dans un système, que ce soit :
|
|
||||||
%\begin{itemize}
|
|
||||||
% \item en économie, pour décrire les tâches entreprises par des individus, et
|
|
||||||
% les moyens mis en œuvre pour y parvenir ;
|
|
||||||
% \item en biologie, pour décrire les parties du système étudié qui produisent,
|
|
||||||
% consomment ou échangent des éléments chimiques ;
|
|
||||||
% \item en DEVS, pour décrire un ensemble d'évènements répartis dans le temps
|
|
||||||
% \item ou initialement en simulation, comme l'intervalle entre chaque évènement
|
|
||||||
% de la simulation.
|
|
||||||
%\end{itemize}
|
|
||||||
% L'activité est aussi une manière de modéliser à un autre niveau de
|
|
||||||
% représentation, il reste à inventer cette nouvelle manière de modéliser.
|
|
||||||
|
|
||||||
\section{Complexe cellulaire abstrait}
|
\section{Complexe cellulaire abstrait}
|
||||||
\label{sec:cca}
|
\label{sec:cca}
|
||||||
Les développements présentés dans la suite de ce chapitre reposent sur une
|
Les développements présentés dans la suite de ce chapitre reposent sur une
|
||||||
|
@ -256,9 +234,6 @@ noté $\ccaK_2 \subset \ccaK_1$, si :
|
||||||
et $\sigma$ est appelée la \emph{coface} de $\tau$.
|
et $\sigma$ est appelée la \emph{coface} de $\tau$.
|
||||||
\end{mpo-definition}
|
\end{mpo-definition}
|
||||||
|
|
||||||
% Il est pratique de construire le diagramme de Hasse de la relation d'incidence
|
|
||||||
% d'un complexe $\ccaK$ (voir figure~\ref{fig:cc}).
|
|
||||||
|
|
||||||
Nous définissons ci-dessous trois opérateurs (fermeture, étoile et liaison)
|
Nous définissons ci-dessous trois opérateurs (fermeture, étoile et liaison)
|
||||||
sur les \cca\ utilisant la relation d'incidence ; ils sont extraits des travaux
|
sur les \cca\ utilisant la relation d'incidence ; ils sont extraits des travaux
|
||||||
d'Axen~\cite{axen_topological_1998}. La fermeture d'un \cca\ « sélectionne »
|
d'Axen~\cite{axen_topological_1998}. La fermeture d'un \cca\ « sélectionne »
|
||||||
|
@ -303,8 +278,6 @@ $\left\{ \sigma \in \ccaK \mid \exists \tau \in S,\: \tau \preceq \sigma
|
||||||
\label{fig:operateurs}
|
\label{fig:operateurs}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
%
|
%
|
||||||
% Voisinage et chemin
|
|
||||||
% n-squelette (pas utile)
|
|
||||||
|
|
||||||
\section[\mgs{} et \dsds]{\mgs{} : un langage dédié à la modélisation et à la
|
\section[\mgs{} et \dsds]{\mgs{} : un langage dédié à la modélisation et à la
|
||||||
simulation des \dsds}
|
simulation des \dsds}
|
||||||
|
@ -436,19 +409,6 @@ sous-jacent. Cette remarque prendra du sens dans la
|
||||||
section~\ref{sec:transformations} consacrée aux transformations.
|
section~\ref{sec:transformations} consacrée aux transformations.
|
||||||
|
|
||||||
|
|
||||||
% \paragraph{Ensemble} Dans la structure de donnée Ensemble, chaque élément est
|
|
||||||
% voisin de tous les autres. Les éléments forment les points d'un graphe complet.
|
|
||||||
% Elle est donc représentée par un complexe cellulaire abstrait où chaque élément
|
|
||||||
% $i$ est une \cell{0} $c_i$. Toutes les cellules étant voisines, pour chaque
|
|
||||||
% paire de cellules $(c_i,c_j)$ en prenant $i \neq j$, il existe une \cell{1}
|
|
||||||
% $c_{i,j}$ telle que $c_i \preceq d_{i,j}$ et $c_j \preceq d_{i,j}$. Dans \mgs,
|
|
||||||
% cette structure de donnée a pour type \ç|'set| et la syntaxe pour un ensemble de
|
|
||||||
% trois éléments $a, b, c$ est
|
|
||||||
% \begin{MGScode}
|
|
||||||
% 'a, 'b, 'c, ():'set
|
|
||||||
% \end{MGScode}
|
|
||||||
|
|
||||||
|
|
||||||
\paragraph{\gbf} Les \emph{Group-Based Field} (\gbf)
|
\paragraph{\gbf} Les \emph{Group-Based Field} (\gbf)
|
||||||
\cite{giavitto_group-based_1996, spicher_topological_2004} sont une collection
|
\cite{giavitto_group-based_1996, spicher_topological_2004} sont une collection
|
||||||
topologique fondée sur les graphes de Cayley, des graphes qui encodent la
|
topologique fondée sur les graphes de Cayley, des graphes qui encodent la
|
||||||
|
@ -550,30 +510,12 @@ nous permet
|
||||||
\item d'identifier des structures d'ordre supérieur dans un modèle ainsi que
|
\item d'identifier des structures d'ordre supérieur dans un modèle ainsi que
|
||||||
de les suivre lors des simulations.
|
de les suivre lors des simulations.
|
||||||
\end{enumerate}
|
\end{enumerate}
|
||||||
% The former will be illustrated in a
|
|
||||||
% following paragraph, the latter will be reviewed in the discussion.
|
|
||||||
|
|
||||||
% In this section, we present a generic way to track an active region
|
|
||||||
% throughout the simulation.
|
|
||||||
Dans cette section nous présentons une méthode générique pour suivre une région
|
Dans cette section nous présentons une méthode générique pour suivre une région
|
||||||
active durant la simulation.
|
active durant la simulation.
|
||||||
%
|
|
||||||
% This report provides, in its previous section, enough material to
|
|
||||||
% allow the reader to follow the next parts. To obtain complementary
|
|
||||||
% information about \mgs, one should refer to our previous
|
|
||||||
% publications~\cite{spicher_spatial_2010,bigo_spatial_2010,spicher_arbitrary_2012}.
|
|
||||||
|
|
||||||
%Un \gbf{} est une collection topologique dont le complexe cellulaire abstrait
|
|
||||||
%sous-jacent est le graphe de Cayley de la présentation d'un groupe Abélien. Les
|
|
||||||
%éléments de ce groupe représentent les déplacements atomiques autorisés.
|
|
||||||
|
|
||||||
Pour des raisons de simplicité, nous nous restreignons aux motifs ne comportant
|
Pour des raisons de simplicité, nous nous restreignons aux motifs ne comportant
|
||||||
au maximum que deux éléments en interaction.
|
au maximum que deux éléments en interaction.
|
||||||
%
|
|
||||||
%Par exemple, le motif \ç+x, y, z+ (\ie trois éléments où \ç+y+
|
|
||||||
%est un voisin de \ç+x+ et \ç+z+ est un voisin de \ç+y+)
|
|
||||||
%est hors de notre champ d'étude. Néammoins, une généralisation est possible.
|
|
||||||
%
|
|
||||||
Nous illustrons cette idée avec un exemple simple mais paradigmatique : un
|
Nous illustrons cette idée avec un exemple simple mais paradigmatique : un
|
||||||
modèle de propagation de feu de forêt~\cite{potier_topological_2013} où le
|
modèle de propagation de feu de forêt~\cite{potier_topological_2013} où le
|
||||||
\emph{feu} se propage au travers d'une \emph{forêt} en laissant derrière lui de
|
\emph{feu} se propage au travers d'une \emph{forêt} en laissant derrière lui de
|
||||||
|
@ -680,33 +622,6 @@ du feu de forêt.
|
||||||
\end{figure}
|
\end{figure}
|
||||||
%
|
%
|
||||||
|
|
||||||
%% \begin{definition} Let $\text{Coll}$ be the type of a topological collection,
|
|
||||||
%% $C$ and $S_C$ be two topological collections and $T$ a transformation. We define
|
|
||||||
%% $$
|
|
||||||
%% \begin{array}{lccl}
|
|
||||||
%% \mathbb{M}_T : &\text{Coll} &\rightarrow &\text{Coll}\\
|
|
||||||
%% \mathbb{M}_T : &C &\rightarrow &S_C \\
|
|
||||||
%% \end{array}
|
|
||||||
%% $$
|
|
||||||
%% to be the matching function returning the topological subcollection $S_C$ of
|
|
||||||
%% cells matched in $C$ by a rule application of the transformation $T$.
|
|
||||||
%% \end{definition}
|
|
||||||
%% %
|
|
||||||
%% %
|
|
||||||
%% \begin{definition}
|
|
||||||
%% Let $C$ be a topological collection, $T$ a transformation and $\mathbb{M}_T$ the
|
|
||||||
%% matching function over $T$, then we define $A$, the \emph{active subcollection}
|
|
||||||
%% of $C$, as:
|
|
||||||
%% $$ A = \bigcup_{S_j \in \mathbb{M}_T(C)}{S_j} $$
|
|
||||||
%% \end{definition}
|
|
||||||
%% %
|
|
||||||
%% \begin{definition}\label{def:quies} Let $C$ be a topological collection, let $A$
|
|
||||||
%% be the active subcollection of $C$. We define the \emph{quiescent subcollection}
|
|
||||||
%% $Q$ of $C$ as:
|
|
||||||
%% $$ Q = C - A $$
|
|
||||||
%% \end{definition}
|
|
||||||
%% %
|
|
||||||
|
|
||||||
\paragraph{Dynamique de l'activité}
|
\paragraph{Dynamique de l'activité}
|
||||||
|
|
||||||
Afin de suivre une région active au cours de la simulation d'un modèle, nous
|
Afin de suivre une région active au cours de la simulation d'un modèle, nous
|
||||||
|
@ -738,12 +653,6 @@ pour atteindre le but recherché.
|
||||||
Un autre exemple, dans le domaine de la modélisation discrète, est la classe
|
Un autre exemple, dans le domaine de la modélisation discrète, est la classe
|
||||||
\emph{automate complexe}~\cite{hoekstra_towards_2007} qui correspond à un «
|
\emph{automate complexe}~\cite{hoekstra_towards_2007} qui correspond à un «
|
||||||
graphe d'automates cellulaires ».
|
graphe d'automates cellulaires ».
|
||||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
||||||
|
|
||||||
% Sometimes scales can be separated, meaning that the coupling between scales
|
|
||||||
% can be localized at some isolated interaction points in space and time.
|
|
||||||
% Then, the resulting computation corresponds to a hierarchical process with a
|
|
||||||
% directed flow of information, although it is not always the case.
|
|
||||||
|
|
||||||
Considérons $(C^0,C^1,\dots)$ la trajectoire des collections par l'application
|
Considérons $(C^0,C^1,\dots)$ la trajectoire des collections par l'application
|
||||||
successive de la transformations $T$, où $C^{i+1} = T(C^i)$ pour $i \ge 0$.
|
successive de la transformations $T$, où $C^{i+1} = T(C^i)$ pour $i \ge 0$.
|
||||||
|
@ -888,226 +797,7 @@ la topologie des espaces. Brièvement, cette théorie traite des \emph{fonctions
|
||||||
de Morse} -- une manière d'inonder l'espace avec un « liquide » -- et des
|
de Morse} -- une manière d'inonder l'espace avec un « liquide » -- et des
|
||||||
\emph{points critiques} -- où le liquide révèle des bassins, des cols, des îles
|
\emph{points critiques} -- où le liquide révèle des bassins, des cols, des îles
|
||||||
dans la topographie de l'espace.
|
dans la topographie de l'espace.
|
||||||
%%
|
|
||||||
% We are currently investigating the analogy between Morse theory and
|
|
||||||
% activity tracking: Morse functions will correspond to activity
|
|
||||||
% propagation and critical points to space-time positions where
|
|
||||||
% independent activity zones segregate or collide, pointing out
|
|
||||||
% important events in the model.
|
|
||||||
|
|
||||||
|
|
||||||
%% \begin{figure*}[!t]
|
|
||||||
%% \begin{center}
|
|
||||||
%% \begin{equation*}
|
|
||||||
%% \begin{array}{c}
|
|
||||||
%% (\Cl\,\sigma_1\cap\St\,\sigma_2)\cup
|
|
||||||
%% (\St\,\sigma_1\cap\Cl\,\sigma_2)=\emptyset
|
|
||||||
%% \\
|
|
||||||
%% (\Cl\,\sigma_1\cap\Cl\,\sigma_2)\cup
|
|
||||||
%% (\St\,\sigma_1\cap\St\,\sigma_2)\neq\emptyset
|
|
||||||
%% \end{array}
|
|
||||||
%% \end{equation*}
|
|
||||||
%% \begin{equation*}
|
|
||||||
%% \begin{array}{c}
|
|
||||||
%% (s_2 \in \Cl(\St\,s_1) \vee s_2 \in \St(\Cl\,s_1)) \wedge s_2\notin(\Cl(\St\,s_1) \cap \St(\Cl\,s_1))\\
|
|
||||||
%% (s_2 \in \Cl(\St\,s_1) \vee s_2 \in \St(\Cl\,s_1)) \wedge \neg(s_2\in\Cl(\St\,s_1) \wedge s_2\in\St(\Cl\,s_1))\\
|
|
||||||
%% (\St\,s_2 \cap \St\,s_1\ne\emptyset \vee \Cl\,s_2 \cap \Cl\,s_1\ne\emptyset) \wedge \neg(\St\,s_2\cap\St\,s_1\ne\emptyset \wedge \Cl\,s_2\cap\Cl\,s_1\ne\emptyset)\\
|
|
||||||
%% (\St\,s_2 \cap \St\,s_1\ne\emptyset \vee \Cl\,s_2 \cap \Cl\,s_1\ne\emptyset) \wedge (\St\,s_2\cap\St\,s_1=\emptyset \vee \Cl\,s_2\cap\Cl\,s_1=\emptyset)\\
|
|
||||||
%% \\
|
|
||||||
%% (\Cl\,\sigma_1\cap\St\,\sigma_2)\cup(\St\,\sigma_1\cap\Cl\,\sigma_2)=\emptyset\wedge(\Cl\,\sigma_1\cap\Cl\,\sigma_2)\cup(\St\,\sigma_1\cap\St\,\sigma_2)\neq\emptyset\\
|
|
||||||
%% (\Cl\,\sigma_1\cap\St\,\sigma_2)=\emptyset\wedge(\St\,\sigma_1\cap\Cl\,\sigma_2)=\emptyset\wedge(\Cl\,\sigma_1\cap\Cl\,\sigma_2)\cup(\St\,\sigma_1\cap\St\,\sigma_2)\neq\emptyset\\
|
|
||||||
%% (\Cl\,\sigma_1\cap\Cl\,\sigma_2)\cup(\St\,\sigma_1\cap\St\,\sigma_2)\neq\emptyset\wedge(\Cl\,\sigma_1\cap\St\,\sigma_2)=\emptyset\wedge(\St\,\sigma_1\cap\Cl\,\sigma_2)=\emptyset\\
|
|
||||||
%% (\St\,\sigma_1\cap\St\,\sigma_2\neq\emptyset\vee\Cl\,\sigma_1\cap\Cl\,\sigma_2\neq\emptyset)\wedge(\Cl\,\sigma_1\cap\St\,\sigma_2)=\emptyset\wedge(\St\,\sigma_1\cap\Cl\,\sigma_2)=\emptyset\\
|
|
||||||
%% \\
|
|
||||||
%% (\Cl\,\sigma_1\cap\St\,\sigma_2)\cup(\St\,\sigma_1\cap\Cl\,\sigma_2)=\emptyset\\
|
|
||||||
%% (\Cl\,\sigma_1\cup(\St\,\sigma_1\cap\Cl\,\sigma_2))\cap(\St\,\sigma_2\cup(\St\,\sigma_1\cap\Cl\,\sigma_2))=\emptyset\\
|
|
||||||
%% (\Cl\,\sigma_1\cup\St\,\sigma_1)\cap(\Cl\,\sigma_1\cup\Cl\,\sigma_2)\cap(\St\,\sigma_2\cup\St\,\sigma_1)\cap(\St\,\sigma_2\cup\Cl\,\sigma_2)=\emptyset\\
|
|
||||||
%% \\
|
|
||||||
%% toto
|
|
||||||
%% \end{array}
|
|
||||||
%% \end{equation*}
|
|
||||||
%% \end{center}
|
|
||||||
%% \end{figure*}
|
|
||||||
|
|
||||||
%% tau in cl(st(sigma)) \ st(cl(sigma)) cup st(cl(sigma)) \ cl(st(sigma))
|
|
||||||
|
|
||||||
%% tau in N sigma
|
|
||||||
%% <=>
|
|
||||||
%% (exists gamma, tau < gamma > sigma || tau > gamma < sigma) &
|
|
||||||
%% not (tau in cl(sigma) || tau in st(sigma))
|
|
||||||
%% <=>
|
|
||||||
%% (tau in cl(st(sigma)) || tau in st(cl(sigma))) &
|
|
||||||
%% not (tau in cl(sigma) cup st(sigma))
|
|
||||||
%% <=>
|
|
||||||
%% (tau in cl(st(sigma)) || tau in st(cl(sigma))) &
|
|
||||||
%% tau notin cl(sigma) cup st(sigma)
|
|
||||||
|
|
||||||
|
|
||||||
%% tau in cl(st(sigma)) & tau notin st(cl(sigma))
|
|
||||||
%% <=>
|
|
||||||
%% (st(tau) cap st(sigma) ne empty) &&
|
|
||||||
|
|
||||||
%% (exists c1 tau < c1 > sigma & notexists c2 tau > c2 < sigma) ||
|
|
||||||
%% (exists c1 tau > c1 < sigma & notexists c2 tau < c2 > sigma)
|
|
||||||
%% <=>
|
|
||||||
%% ((exists c1 tau < c1 > sigma) || (exists c1 tau > c1 < sigma & notexists c2 tau < c2 > sigma)) &
|
|
||||||
%% ((notexists c2 tau > c2 < sigma) || (exists c1 tau > c1 < sigma & notexists c2 tau < c2 > sigma))
|
|
||||||
%% <=>
|
|
||||||
%% ((exists c1 tau < c1 > sigma) || (exists c1 tau > c1 < sigma)) & ((notexists c2 tau > c2 < sigma) || (notexists c2 tau < c2 > sigma)) &
|
|
||||||
|
|
||||||
%% ((exists c1 tau < c1 > sigma) || (notexists c2 tau < c2 > sigma)) &
|
|
||||||
%% ((notexists c2 tau > c2 < sigma) || (exists c1 tau > c1 < sigma))
|
|
||||||
|
|
||||||
|
|
||||||
%% Decomposing the evolution relation yields two members: a quiescent subcollection
|
|
||||||
%% $Q^i$ of $C^i$, where no rule of the transformation matches, and the
|
|
||||||
%% transformation of the active subcollection $A^i$ of $C^i$ \emph{knowing} $Q^i$.
|
|
||||||
%% %
|
|
||||||
%% \begin{equation}
|
|
||||||
%% \label{eq:split}
|
|
||||||
%% A^{i+1} + Q^{i+1} = T(A^i | Q^i) + T(Q^i)
|
|
||||||
%% \end{equation}
|
|
||||||
%% %
|
|
||||||
%% These unresolved terms represent the splitting of $A^i$ and $Q^i$ into
|
|
||||||
%% \emph{new} active cells and \emph{new} quiescent cells.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
%% The trajectory of the simulation of a system with \MGS is given by the
|
|
||||||
%% successive application of the transformation rules as depicted in figure
|
|
||||||
%% \ref{fig:evolution}. At iteration $i$, given a topological collection $C^i$ of
|
|
||||||
%% the simulation of the system and a transformation $T$, the evolution relation is
|
|
||||||
|
|
||||||
%% As stated in section \ref{sec:interaction}, two cells are neighbors if they may
|
|
||||||
%% interact during the simulation of the system. Thus, only neighbors of $A^i$ are
|
|
||||||
%% required to compute the transformation of $A^i$ knowing $Q^i$. We can replace
|
|
||||||
%% the term $T(A^i | Q^i)$ in (\ref{eq:split}) by $T(A^i | F^i)$, $F^i$ being the
|
|
||||||
%% subcollection of quiescent cells which have a neighbor in $A^i$.
|
|
||||||
%% % Là on fait un choix: |Fi| \in |Qi| et pas |Fi| \in |Ai| (même si c'est dual)
|
|
||||||
%% %
|
|
||||||
%% \begin{equation}
|
|
||||||
%% A^{i+1} + Q^{i+1} = T(A^i | F^i) + T(Q^i - F^i + F^i)
|
|
||||||
%% \end{equation}
|
|
||||||
%% %
|
|
||||||
%% %
|
|
||||||
%% \begin{equation}
|
|
||||||
%% A^{i+1} + Q^{i+1} = T(A^i | F^i) + T(Q^i - F^i) + T(F^i)
|
|
||||||
%% \end{equation}
|
|
||||||
%% %
|
|
||||||
%% There is a grey area, namely $T(F^i)$, for which we cannot predict in all
|
|
||||||
%% generality whether it yields new active or quiescent cells or both. Since
|
|
||||||
%% some cells of $F^i$ may be active cells at the next iteration, we can
|
|
||||||
%% \emph{over-approximate} here by choosing to include them in the new active
|
|
||||||
%% subcollection as represented on figure \ref{fig:assembly}.
|
|
||||||
%% %
|
|
||||||
%% \begin{equation}\label{eq:ident}
|
|
||||||
%% A^{i+1} + Q^{i+1} =
|
|
||||||
%% \left( T(A^i | F^i) + T(F^i) \right) + \left( T(Q^i - F^i) \right)
|
|
||||||
%% \end{equation}
|
|
||||||
%% %
|
|
||||||
%% Note that no rule of the transformation $T$ can ever match $Q^i-F^i$, thus
|
|
||||||
%% %
|
|
||||||
%% \begin{equation}\label{eq:noeffect}
|
|
||||||
%% T(Q^i - F^i) = Q^i - F^i
|
|
||||||
%% \end{equation}
|
|
||||||
%% %
|
|
||||||
%% and since $F^i$ is a part of $Q^i$, no rule of $T$ will ever match in $F^i$
|
|
||||||
%% %
|
|
||||||
%% \begin{equation}
|
|
||||||
%% T(F^i) = F^i
|
|
||||||
%% \end{equation}
|
|
||||||
%% %
|
|
||||||
%% although the cells of $F^i$ can become active at the \emph{next} iteration.
|
|
||||||
|
|
||||||
%% For the following proposition, we will consider that $C^i$ is a topological
|
|
||||||
%% collection at some iteration $i$ of the simulation, $A^i$ and $Q^i$ are
|
|
||||||
%% respectively the active and quiescent subcollections of $C^i$ at some iteration
|
|
||||||
%% $i$ of the simulation. $F^i$ is the subcollection of cells $Q^i$ which have
|
|
||||||
%% a neighbor in $A^i$. For a topological collection $X$, $|X|$ denotes the
|
|
||||||
%% underlying ACC structure of $X$.
|
|
||||||
%% %
|
|
||||||
%% \begin{proposition}
|
|
||||||
%% $$ |Q^i - F^i| \subseteq |Q^{i+1}| $$
|
|
||||||
%% %\begin{proposition}$ |A^{i+1}| \subseteq |A^i - F^i| $\end{proposition}
|
|
||||||
%% %
|
|
||||||
%% Informally: any quiescent cell, at some iteration of the simulation, having
|
|
||||||
%% no active neighbor cells will remain quiescent at the next iteration of the
|
|
||||||
%% simulation.
|
|
||||||
%% \end{proposition}
|
|
||||||
%% %
|
|
||||||
%% \begin{proof}
|
|
||||||
%% We will show that if for any cell $c \in |Q^i-F^i|$, then $c \in |Q^{i+1}|$
|
|
||||||
%% holds.
|
|
||||||
%% \begin{displaymath}
|
|
||||||
%% \begin{array}{rcll}
|
|
||||||
%% c \in |Q^i-F^i| &\Leftrightarrow & c \in | T(Q^i-F^i) |
|
|
||||||
%% & (\text{by (\ref{eq:noeffect})}) \\
|
|
||||||
%% &\Leftrightarrow & c \in | Q^{i+1} |
|
|
||||||
%% & (\text{by id. in (\ref{eq:ident})}) \\
|
|
||||||
%% \end{array}
|
|
||||||
%% \end{displaymath}
|
|
||||||
%% \end{proof}
|
|
||||||
%% %
|
|
||||||
%% In fact, $F^i$ can be automatically computed. We reintroduce here
|
|
||||||
%% Cl, the closure operator, and St, the star operator defined in
|
|
||||||
%% section~\ref{sec:topcol}, to work on ACC:
|
|
||||||
%% \begin{definition}
|
|
||||||
%% Let $S$ be an ACC, Cl and St are defined as
|
|
||||||
%% \begin{displaymath}
|
|
||||||
%% \text{Cl}(S) = \bigcup_{\sigma\in S}\text{Cl}~\sigma
|
|
||||||
%% \hspace{.5cm}\text{and}\hspace{.5cm}
|
|
||||||
%% \text{St}(S) = \bigcup_{\sigma\in S}\text{St}~\sigma
|
|
||||||
%% \end{displaymath}
|
|
||||||
%% \end{definition}
|
|
||||||
|
|
||||||
%% Our $\mathbf{Lk}$ operator is an extension of the link operator of
|
|
||||||
%% combinatorial topology defined in \cite{axen98}. We define $\mathbf{Lk}(S)$
|
|
||||||
%% to be the symetrical difference between $\text{Cl}(\text{St}(S))$ and
|
|
||||||
%% $\text{St}(\text{Cl}(S))$. Figure \ref{fig:lk} shows an application example. It
|
|
||||||
%% corresponds to the union of the usual $\text{Lk}$ and $\text{coLk}$ operators of
|
|
||||||
%% simplicial complexes.
|
|
||||||
%% %
|
|
||||||
%% \begin{definition}
|
|
||||||
%% Let $S$ be an ACC, let Cl be the closure operator on ACC, let St be the star
|
|
||||||
%% operator on ACC, and let $\Delta$ be the symetrical difference between two
|
|
||||||
%% ACC, the link operator $\mathbf{Lk}$ is defined as
|
|
||||||
%% %
|
|
||||||
%% $$\mathbf{Lk}(S) = \text{St}(\text{Cl}(S))~\Delta~\text{Cl}(\text{St}(S))$$
|
|
||||||
%% %
|
|
||||||
%% Doing so allows us to catch cells that are neighbors of $S$ both through
|
|
||||||
%% higher and lower dimensional incidence cells.
|
|
||||||
%% \end{definition}
|
|
||||||
%% %
|
|
||||||
%% %
|
|
||||||
%% \begin{definition}
|
|
||||||
%% As the link operator catches all cells neighbors to $A$ and not in $A$, we
|
|
||||||
%% define $F^i$ as follows
|
|
||||||
%% $$ |F^i| = \mathbf{Lk}(|A^i|) $$
|
|
||||||
%% \end{definition}
|
|
||||||
%% %
|
|
||||||
%% %
|
|
||||||
%% \begin{figure}[t]
|
|
||||||
%% \begin{center}
|
|
||||||
%% \includegraphics[width=0.45\linewidth]{s}
|
|
||||||
%% \hfill
|
|
||||||
%% \includegraphics[width=0.45\linewidth]{lks}
|
|
||||||
%% \caption{Application of the $\mathbf{Lk}$ operator (right) on a given ACC
|
|
||||||
%% (left).}
|
|
||||||
%% %
|
|
||||||
%% \label{fig:lk}
|
|
||||||
%% \end{center}
|
|
||||||
%% \end{figure}
|
|
||||||
%% %
|
|
||||||
%% By rewriting the evolution relation as follows,
|
|
||||||
%% \begin{equation}
|
|
||||||
%% C^{i+1} = T(A^i | F^i) + F^i + (Q^i - F^i)
|
|
||||||
%% \end{equation}
|
|
||||||
%% and using the $\mathbf{Lk}$ operator, computing $A^{i+1}$ only depends on $A^i$.
|
|
||||||
%% Let $X$ be a topological collection, $\mathbb{M}_T(X)$ represents the
|
|
||||||
%% subcollection matched in $X$ by a rule of a transformation $T$.
|
|
||||||
%% %DONE: Attention, erreur de typage entre une collection topologique et son
|
|
||||||
%% % support
|
|
||||||
\section{Propagation d'un feu de forêt}
|
\section{Propagation d'un feu de forêt}
|
||||||
\label{sec:fire}
|
\label{sec:fire}
|
||||||
|
|
||||||
|
@ -1253,11 +943,6 @@ l'activité}
|
||||||
Nous avons réécrit l'exemple précédent afin que le mécanisme de filtrage ne
|
Nous avons réécrit l'exemple précédent afin que le mécanisme de filtrage ne
|
||||||
s'applique que dans la zone active.
|
s'applique que dans la zone active.
|
||||||
|
|
||||||
% As with the theoretical view that we presented earlier, the cellular automata
|
|
||||||
% space is split between Active cells which take part in a transformation of
|
|
||||||
% their neighbors and Quiescent cells which have no role to play whatsoever in
|
|
||||||
% the current iteration. As seen in the end of section~\ref{sec:mgs-activity},
|
|
||||||
% activity spreads like a wave, as does forest fire.
|
|
||||||
En accord avec l'approche théorique présentée un peu plus tôt, l'espace
|
En accord avec l'approche théorique présentée un peu plus tôt, l'espace
|
||||||
des cellules de l'\ac\ est partagé entre les cellules actives qui prennent
|
des cellules de l'\ac\ est partagé entre les cellules actives qui prennent
|
||||||
part à l'évolution de leurs voisines et les cellules quiescentes ne
|
part à l'évolution de leurs voisines et les cellules quiescentes ne
|
||||||
|
@ -1267,9 +952,6 @@ l'instar du feu de forêt.
|
||||||
|
|
||||||
\begin{figure}[ht]
|
\begin{figure}[ht]
|
||||||
\begin{center}
|
\begin{center}
|
||||||
%\includegraphics{normal000}~\includegraphics{active000} \\[1ex]
|
|
||||||
%\includegraphics{normal110}~\includegraphics{active110} \\[1ex]
|
|
||||||
%\includegraphics{normal687}~\includegraphics{active687}
|
|
||||||
\includegraphics[width=.3\linewidth]{fire-normal05}
|
\includegraphics[width=.3\linewidth]{fire-normal05}
|
||||||
\includegraphics[width=.3\linewidth]{fire-normal22}
|
\includegraphics[width=.3\linewidth]{fire-normal22}
|
||||||
\includegraphics[width=.3\linewidth]{fire-normal95} \\[1ex]
|
\includegraphics[width=.3\linewidth]{fire-normal95} \\[1ex]
|
||||||
|
@ -1302,11 +984,6 @@ actives à l'itération suivante et correspond exactement à notre définition p
|
||||||
d'un front d'incendie. Au début de la simulation, $F^0 = \emptyset$.
|
d'un front d'incendie. Au début de la simulation, $F^0 = \emptyset$.
|
||||||
|
|
||||||
\paragraph{Mise à jour de l'état des cellules}
|
\paragraph{Mise à jour de l'état des cellules}
|
||||||
% The first part of the algorithm is about updating the state of active cells.
|
|
||||||
% This operation is simply the application of the transformation rule $T$ on cells
|
|
||||||
% of $A$ instead of all cells. Once completed, a new separation between active an
|
|
||||||
% quiescent arises and needs to be computed: some cells become active, some other
|
|
||||||
% become quiescent.
|
|
||||||
La première partie de l'algorithme concerne la mise à jour des cellules actives.
|
La première partie de l'algorithme concerne la mise à jour des cellules actives.
|
||||||
Elle résulte de l'application des règles d'une transformation $T$ sur les cellules
|
Elle résulte de l'application des règles d'une transformation $T$ sur les cellules
|
||||||
de $A$ plutôt que sur toutes les cellules. Une fois effectuée, une nouvelle
|
de $A$ plutôt que sur toutes les cellules. Une fois effectuée, une nouvelle
|
||||||
|
@ -1326,9 +1003,6 @@ certaines cellules deviennent actives, d'autres deviennent quiescentes.
|
||||||
\end{algorithm}
|
\end{algorithm}
|
||||||
|
|
||||||
\paragraph{Mise à jour de la zone active}
|
\paragraph{Mise à jour de la zone active}
|
||||||
% To sort between active and quiescent cells, we need and use an activity
|
|
||||||
% predicate $P$ to point out which cells are active, either remaining active in
|
|
||||||
% $A^i$ or becoming active in $F^i$.
|
|
||||||
Afin de trier entre cellules active et quiescentes, nous utilisons un prédicat
|
Afin de trier entre cellules active et quiescentes, nous utilisons un prédicat
|
||||||
d'activité $P$ pour déterminer quelles cellules sont actives, soit restant active
|
d'activité $P$ pour déterminer quelles cellules sont actives, soit restant active
|
||||||
dans $A^i$ ou devenant active dans $F^i$.
|
dans $A^i$ ou devenant active dans $F^i$.
|
||||||
|
@ -1512,8 +1186,6 @@ accueillir une particule à l'itération suivante.
|
||||||
\subsubsection{Spécification dynamique en \mgs}
|
\subsubsection{Spécification dynamique en \mgs}
|
||||||
Spécifier la dynamique d'une \ald\ dans une transformation revient à rédiger
|
Spécifier la dynamique d'une \ald\ dans une transformation revient à rédiger
|
||||||
deux règles appliquées suivant une stratégie \emph{maximal-parallel}:
|
deux règles appliquées suivant une stratégie \emph{maximal-parallel}:
|
||||||
%DONE: (WONTFIX) orly? Comment on fait du random alors? Pire, si on fait du
|
|
||||||
% random, comment on s'assure que la première match en priorité?
|
|
||||||
\label{mgs:ald-evol}
|
\label{mgs:ald-evol}
|
||||||
\begin{MGScode}
|
\begin{MGScode}
|
||||||
trans evolution = {
|
trans evolution = {
|
||||||
|
@ -1763,23 +1435,3 @@ niveau du langage \mgs.
|
||||||
original de l'opérateur de vague, emprunté à la théorie de Morse, et notre
|
original de l'opérateur de vague, emprunté à la théorie de Morse, et notre
|
||||||
exploration de l'activité spatiale.
|
exploration de l'activité spatiale.
|
||||||
|
|
||||||
|
|
||||||
% Organisation plutôt thématique que long/court terme
|
|
||||||
% I. Réifier le front d'activité
|
|
||||||
% Intégrer l'activité (sa reconnaissance) dans MGS
|
|
||||||
% - Implique de définir la reconnaissance de l'activité pour chaque collection
|
|
||||||
% topologique, c'est peut-être pas si simple
|
|
||||||
% - Implique de résoudre la question du suivi
|
|
||||||
% - Implique de définir une syntaxe
|
|
||||||
% Prouver le lien entre l'optimisation par activité et une technique
|
|
||||||
% classique d'optimisation sur les automates cellulaires. On peut ainsi
|
|
||||||
% démontrer que notre technique d'optimisation est plus générique.
|
|
||||||
% Lien entre suivi de activité et théorie de Morse
|
|
||||||
% Les différentes activités spatiales (elles sont issues des règles de
|
|
||||||
% transformation, donc on peut faire des groupes de règles, les prendre une
|
|
||||||
% par une, et voir ce que ça donne). Exemple potentiel: activité de capture,
|
|
||||||
% activité de déplacement (d'après les règles de l'ALD) et leur interaction.
|
|
||||||
% II. Étendre les exemples, traiter plus de cas
|
|
||||||
% Tester sur plus d'exemples: il faut étendre les résultat pour leur donner
|
|
||||||
% plus de poids
|
|
||||||
% III. Étendre
|
|
||||||
|
|
|
@ -2,19 +2,6 @@
|
||||||
|
|
||||||
Dans ce très court chapitre, nous résumons les chapitres précédents et
|
Dans ce très court chapitre, nous résumons les chapitres précédents et
|
||||||
présentons nos contributions au projet de recherche ANR \synbiotic.
|
présentons nos contributions au projet de recherche ANR \synbiotic.
|
||||||
% C'est fini, on bien bossé, regardez. On va maintenant présenter:
|
|
||||||
% - le résumé des travaux, séparément, puis
|
|
||||||
% - synbiotic -> délivrable;
|
|
||||||
% - Quelles nouvelles questions ça ouvre ?
|
|
||||||
% - Et nous, on continue sur quoi ? (nos travaux futurs)
|
|
||||||
|
|
||||||
% On a déjà fait une conclusion par chapitre, qu'ajouter dans celle-là ?
|
|
||||||
% - Donner un modèle de l'activité dans le cadre du multi-niveau de la partie 1
|
|
||||||
% -
|
|
||||||
|
|
||||||
% Résumé des travaux
|
|
||||||
%Deux nouvelles techniques de modélisation inspirées par un formalisme unifiant:
|
|
||||||
%modélisation par l'activité spatiale et par des automates cellulaires étendus
|
|
||||||
|
|
||||||
\section{Résumé de nos travaux}
|
\section{Résumé de nos travaux}
|
||||||
|
|
||||||
|
|
|
@ -155,32 +155,6 @@ fonction qui associe une sortie à une entrée mais spécifie un système dynami
|
||||||
(biologique) distribué qui essaie de maintenir des invariants en dépit des
|
(biologique) distribué qui essaie de maintenir des invariants en dépit des
|
||||||
perturbations et des changements de l'environnement.
|
perturbations et des changements de l'environnement.
|
||||||
|
|
||||||
% \synbiotic est un projet de recherche fondamentale à long terme qui s'inscrit
|
|
||||||
% dans le domaine à la fois des langages de programmation non conventionnels et
|
|
||||||
% dans l'analyse/validation de propriété de systèmes dynamiques. Il s'agit
|
|
||||||
% d'un projet informatique qui vise à utiliser les nouveaux supports de calcul
|
|
||||||
% fournis par les avancées de la biologie synthétique et non à les produire.
|
|
||||||
% \synbiotic a pour objectif d'étendre les techniques et les outils développés
|
|
||||||
% dans la modélisation et la simulation de processus biologiques complexes
|
|
||||||
% et d'intégrer de nouvelles approches de la programmation (programmation
|
|
||||||
% spatiale, programmation amorphe et programmation autonome) afin de faire face
|
|
||||||
% à de nouvelles classes d'applications caractérisées par l'émergence d'un
|
|
||||||
% comportement global dans une grande population d'entités localisées et
|
|
||||||
% irrégulièrement interconnectées de manière dynamique.
|
|
||||||
%
|
|
||||||
% \paragraph{Une approche informatique en amont de l'ingénierie génétique.}
|
|
||||||
% Si la plupart des études actuelles cherchent à formaliser, concevoir,
|
|
||||||
% caractériser et valider des composants biologiques réutilisables, nous nous
|
|
||||||
% positionnons en amont de cette étape. La biologie synthétique regroupe des
|
|
||||||
% stratégies scientifiques et des technologies très différentes qui incluent
|
|
||||||
% la conception et la construction de génomes, la conception de protéines,
|
|
||||||
% la synthèse de composés biochimiques par de nouvelles voies métaboliques
|
|
||||||
% et la construction de circuits de régulation génique dans des cellules et
|
|
||||||
% des micro-organismes. Pour ce qui nous concerne, nous faisons l'hypothèse
|
|
||||||
% qu'il existe des bibliothèques standardisées de comportements biochimiques
|
|
||||||
% élémentaires qui peuvent être composés dans une bactérie, comme par exemple
|
|
||||||
% les BioBricks.
|
|
||||||
%
|
|
||||||
Notre objectif est d'adresser la conception de grands systèmes biologiques
|
Notre objectif est d'adresser la conception de grands systèmes biologiques
|
||||||
par une approche langage, de la même manière que VHDL permet la conception
|
par une approche langage, de la même manière que VHDL permet la conception
|
||||||
de système de traitement de l'information à partir de portes et de blocs
|
de système de traitement de l'information à partir de portes et de blocs
|
||||||
|
@ -223,7 +197,6 @@ le cadre de la programmation spatiale et de la programmation amorphe. Un des
|
||||||
enjeux du projet est de montrer que ces techniques peuvent être appliquées avec
|
enjeux du projet est de montrer que ces techniques peuvent être appliquées avec
|
||||||
succès à la synthèse de biosystèmes.
|
succès à la synthèse de biosystèmes.
|
||||||
|
|
||||||
% \paragraph{La prise en compte du spatial.}
|
|
||||||
Enfin, notre dernière hypothèse est que, même si pour l'instant la biologie
|
Enfin, notre dernière hypothèse est que, même si pour l'instant la biologie
|
||||||
synthétique se focalise sur la « programmation d'une seule bactérie »,
|
synthétique se focalise sur la « programmation d'une seule bactérie »,
|
||||||
le développement de biosystèmes un tant soit peu complexe reposera sur
|
le développement de biosystèmes un tant soit peu complexe reposera sur
|
||||||
|
@ -240,13 +213,6 @@ ouvre la voie à une ingénierie du développement (« développement » au
|
||||||
sens biologique du terme), ce qui permet de rêver à des applications qui vont
|
sens biologique du terme), ce qui permet de rêver à des applications qui vont
|
||||||
bien au-delà de la conception de la cellule comme « usine chimique ».
|
bien au-delà de la conception de la cellule comme « usine chimique ».
|
||||||
%
|
%
|
||||||
% \paragraph{Un volet validation.}
|
|
||||||
% Le positionnement du projet est résolument informatique et se
|
|
||||||
% concentre sur le développement de techniques de compilation et de validation
|
|
||||||
% en amont de l'ingénierie génétique. Cependant, afin de valider les outils
|
|
||||||
% développés, nous souhaitons les mettre en œuvre concrètement à travers leur
|
|
||||||
% utilisation à l'intérieur du projet par une application de morphogénèse et,
|
|
||||||
% à l'extérieur, par une équipe iGEM.
|
|
||||||
|
|
||||||
\paragraph{Découpage des tâches.}
|
\paragraph{Découpage des tâches.}
|
||||||
Le projet \synbiotic est découpé en six \emph{Work Packages} (WP), dont les WP
|
Le projet \synbiotic est découpé en six \emph{Work Packages} (WP), dont les WP
|
||||||
|
@ -300,8 +266,6 @@ des catégories, introduisant la validation, l'abstraction et la composition
|
||||||
des modèles dans ce cadre. Nous instancions finalement sur un exemple les
|
des modèles dans ce cadre. Nous instancions finalement sur un exemple les
|
||||||
définitions précédentes mettant en lumière les relations existantes entre quatre
|
définitions précédentes mettant en lumière les relations existantes entre quatre
|
||||||
modèles d'un système proie-prédateur.
|
modèles d'un système proie-prédateur.
|
||||||
%enfin poser les fondements
|
|
||||||
%des relations entre modèles tel que nous les avons présentés plus
|
|
||||||
|
|
||||||
\paragraph{Chapitre 3: L'activité spatiale comme outil de modélisation}
|
\paragraph{Chapitre 3: L'activité spatiale comme outil de modélisation}
|
||||||
Dans ce chapitre nous présentons le langage L1 du WP2 en posant un cadre
|
Dans ce chapitre nous présentons le langage L1 du WP2 en posant un cadre
|
||||||
|
@ -401,304 +365,4 @@ du chapitre \ref{chap:partie-otb}.
|
||||||
intitulé «Modélisation et simulation d'une population de bactéries en
|
intitulé «Modélisation et simulation d'une population de bactéries en
|
||||||
\opencl» duquel la toute première version de \otb est issu.
|
\opencl» duquel la toute première version de \otb est issu.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
% \begin{itemize}
|
|
||||||
% \item DEVS-FIRE (X Hue)
|
|
||||||
% \item Parallèle avec la physique du solide et la physique du point ->
|
|
||||||
% complexification (même si tout marcherai avec de la mécanique du point);
|
|
||||||
% Distinction entre règles internes et règles externes.
|
|
||||||
% \item Discrete Differential Forms for Computational Modeling (Desbrun, Kanso,
|
|
||||||
% Tong)
|
|
||||||
% \item Computation with competing patterns in Life-like automaton (Martinez,
|
|
||||||
% Adamatzky, Morita, Margensten)
|
|
||||||
% \item Predicting Wildfire Spreading Through a Hexagonal Cellular Automata Model
|
|
||||||
% (Trunfio, p401 de Cellular Automata)
|
|
||||||
% \item Modelling Wildfire Dynamics via Interacting Automata (Dunn, Milne, CA
|
|
||||||
% p411)
|
|
||||||
% \item Downward Causation and the autonomy of Weak Emergence (Mark Bedeau)
|
|
||||||
% \item Multi-level simulation of farmer's land use and social organization
|
|
||||||
% decision-making; an agent-based approach (Speelman, Jager, Grot, Garcia,
|
|
||||||
% Tittonell)
|
|
||||||
% \item Problème de l'identité (Derek Parfit - Reasons and Persons - Livre de
|
|
||||||
% 400p)
|
|
||||||
% \item Mail du 16 avril 2013 à 19:06 (+photos)
|
|
||||||
% \item Accroche toi au niveau, j'enlève l'échelle (Gil-Quijano, Hutzler, Louail)
|
|
||||||
% \item Closes point method (Forest fire, level sets on surfaces)
|
|
||||||
% \item Symbiotic simulation (Fujimoto et al), Rapport Dagstuhl
|
|
||||||
% \item Filippi front tracking (modèle MGS dans le CVS
|
|
||||||
% Exemple/Exemble-bezier/Front)
|
|
||||||
% \item Can we computerize an Elephant (David Harel, 2009, 2015) (AAMAS 2015)
|
|
||||||
% \item The detection of intermediate-level emergent structures and patterns
|
|
||||||
% (Villani et al)
|
|
||||||
% \item Thèse Duboz : intégration de modèles hétérogènes pour la modélisation et
|
|
||||||
% la simulation de systèmes complexes. (c'est du DEVS)
|
|
||||||
% \item WAVE parallel programming language
|
|
||||||
% \item Méchanotransduction (INSERM Workshop)
|
|
||||||
% \item Mathematical formulation of multi-layer networks (à mettre dans les
|
|
||||||
% modèles formels)
|
|
||||||
% \item Introduction to the Mathematical Theory of Systems and Control (Polderman
|
|
||||||
% \& Willems) -- inspiration pour la définiton générale de modèle.
|
|
||||||
% \item Kurtz, the relationship between stochastic and deterministic models for
|
|
||||||
% chemical reactions.
|
|
||||||
% \item Spicher, Verlan -- Generalized Communicating P Systems Working in Fair
|
|
||||||
% Sequential Mode
|
|
||||||
% \item
|
|
||||||
% \end{itemize}
|
|
||||||
|
|
||||||
|
|
||||||
% Appel à projet pour la création d'un DIM recherche transversale sur
|
|
||||||
% les systèmes complexes
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
% \section{Modéliser des systèmes complexes}
|
|
||||||
% % Modéliser?
|
|
||||||
% Concevoir des modèles est une pratique courante pour comprendre le
|
|
||||||
% fonctionnement d'un phénomène ou la structure d'un objet \emph{compliqué}. Le
|
|
||||||
% modélisateur a pour tâche de
|
|
||||||
% \begin{enumerate}
|
|
||||||
% \item \emph{identifier} les parties du phénomène étudié et en donner une
|
|
||||||
% représentation simplifiée,
|
|
||||||
% \item \emph{assembler} ces parties, à l'aide d'un formalisme ou d'un langage de
|
|
||||||
% programation,
|
|
||||||
% \item \emph{comparer} les propriétés principale du phénomène étudié avec les
|
|
||||||
% propriétés annoncées par son modèle.
|
|
||||||
% \end{enumerate}
|
|
||||||
%
|
|
||||||
% \bigskip
|
|
||||||
% La première tâche du modélisateur est d'identifier les parties du système qu'il
|
|
||||||
% souhaite modéliser. C'est au modélisateur que revient la décision de nommer une
|
|
||||||
% partie qu'il a identifiée; cette tâche peut-être rendue difficile suivant les
|
|
||||||
% cas. En philosophie, la notion d'identité recouvre plusieurs concepts proches,
|
|
||||||
% elle est donc ambigüe et poser des problèmes dans certains cas, voici quelques
|
|
||||||
% exemples de paradoxes concernant l'identité.
|
|
||||||
%
|
|
||||||
% \paragraph{Un tas de riz}%
|
|
||||||
% Dans le langage courant, nous utilisons des mots pour nous réferer aux objets
|
|
||||||
% qui nous entourent. Quand plusieurs objets sont regroupés, ils peuvent être
|
|
||||||
% assimilés à un nouvel objet unique. Un exemple est le tas de riz. Le mot tas
|
|
||||||
% désigne un objet unique, constitué de multiples autres objets, en l'occurence
|
|
||||||
% des grains de riz. Comme il n'y a pas de limite claire concernant le nombre de
|
|
||||||
% grains de riz nécessaires à former un tas, il est apparemment difficile de
|
|
||||||
% déterminer lequel de ces raisonnements est approprié:
|
|
||||||
% %
|
|
||||||
% \begin{itemize}
|
|
||||||
% \item Un grain de riz n'est pas un tas. Ajouter un grain de riz à ce grain de
|
|
||||||
% riz ne forme pas un tas. Ajouter un grain de riz à ces deux grains de riz ne
|
|
||||||
% forme pas un tas. Donc ajouter un grain de riz à plusieurs grains de riz ne
|
|
||||||
% forme pas un tas. Il semblerait, en raisonnant par récurrence qu'\emph{un
|
|
||||||
% nombre arbitraire de grains de riz ne forme pas un tas};
|
|
||||||
% \item Un tas n'est pas un grain de riz. Enlever un grain de riz à un tas ne
|
|
||||||
% change pas sa nature. Nous devrions pouvoir répéter cette opération jusqu'à
|
|
||||||
% atteindre le moment où il ne reste qu'un seul grain de riz et déduire
|
|
||||||
% qu'\emph{un grain de riz est un tas}.
|
|
||||||
% \end{itemize}
|
|
||||||
%
|
|
||||||
%
|
|
||||||
%
|
|
||||||
% \bigskip Pour la seconde tâche du modélisateur, construire le modèle, la science
|
|
||||||
% informatique et l'outil informatique sont principalement utilisés. Il existe de
|
|
||||||
% nombreuses techniques et outils de modélisation suivant les besoins et les
|
|
||||||
% domaines. Par exemple, la modélisation qualitative ou quantitative, discrète ou
|
|
||||||
% continue et l'étude des systèmes dynamiques. Couramment, les approches
|
|
||||||
% classiques de modélisation individu-centrés nécessitent la description des
|
|
||||||
% entités et des lois qui régissent les évolutions du système à un seul et unique
|
|
||||||
% \emph{niveau de description}: la molécule, la cellule ou le tissu en biologie;
|
|
||||||
% le quartier, la ville ou le pays en urbanisme; la note, la mesure ou le thème en
|
|
||||||
% musique… Certains phénomènes à modéliser opèrent clairement à plusieurs niveaux
|
|
||||||
% de description. Par exemple en biologie, l'embryogenèse est typiquement un
|
|
||||||
% problème décrit comme étant multiniveau. Comment, à partir d'une unique cellule,
|
|
||||||
% se développe un organisme multicellulaire autonome ? Comment modéliser le
|
|
||||||
% passage de l'individu à la population ? Comment décrire le phénomène de
|
|
||||||
% mécanotransduction, où l'application d'une force mécanique altère le
|
|
||||||
% développement d'un embryon ? Pour répondre à ces questions, il nous faut de
|
|
||||||
% nouveaux outils de modélisation prenant en compte plusieurs niveaux de
|
|
||||||
% description.
|
|
||||||
%
|
|
||||||
% Pour les nouvelles sciences de la complexité, les phénomènes ayant plusieurs
|
|
||||||
% niveau de description sont parfois appelés \emph{systèmes complexes}. Voici une
|
|
||||||
% définition qu'en donne l'Institut des Systèmes Complexes (\ISC):
|
|
||||||
% \begin{quote}
|
|
||||||
% Les systèmes complexes sont des systèmes présentant un grand nombre d'entités
|
|
||||||
% différenciées, interagissant de manière complexe : interactions non linéaires,
|
|
||||||
% boucles de rétroaction, mémoire des interactions passées. Ils se caractérisent
|
|
||||||
% par l'\emph{émergence}, au niveau global, de propriétés nouvelles non
|
|
||||||
% observables au niveau des entités constitutives. Le niveau local fait émerger
|
|
||||||
% des formes organisées au niveau global, lequel influence en retour le niveau
|
|
||||||
% local (appelé «immergence»). Interactions locales et interactions globales
|
|
||||||
% peuvent ainsi se conjuguer dans la description de leurs dynamiques. \hfill\ISC
|
|
||||||
% \end{quote}
|
|
||||||
% Cette définition nous fourni une image où deux niveaux de description, le niveau
|
|
||||||
% local et le niveau global, interagissent l'un sur l'autre, de local à global par
|
|
||||||
% l'émergence et de global à local par l'immergence, et où les propriétés des
|
|
||||||
% éléments observés sont restreintes à leur niveau de description.
|
|
||||||
%
|
|
||||||
% % le 2016-09-08, Martin a une révélation… Il était temps…
|
|
||||||
% \begin{quote}
|
|
||||||
% Les propriétés d'un objet du monde réel \emph{dépendent} de son cadre de
|
|
||||||
% modélisation, c'est à dire du modèle utilisé pour le décrire.
|
|
||||||
% \end{quote}
|
|
||||||
% En d'autre termes, les propriétés d'un objet modélisé \emph{ne sont pas} des
|
|
||||||
% propriétés de l'objet mais des propriétés du modèle. Cette hypothèse de travail
|
|
||||||
% est importante et se trouve au fondement de nos travaux. Sa première implication
|
|
||||||
% est qu'un niveau de description correspond à un modèle particulier.
|
|
||||||
%
|
|
||||||
% Cette limitation a pour conséquence directe de ne pas permettre de référencer
|
|
||||||
% les entités intervenant dans d'autres niveaux de description. Ainsi, en biologie
|
|
||||||
% moléculaire, ne disposant d'aucune notion de cellule, on ne peut décrire
|
|
||||||
% directement des processus tels que le \emph{transport actif} ou le \emph{quorum
|
|
||||||
% sensing}. De façon plus générale, ces approches purement locales et
|
|
||||||
% réductionnistes ne permettent pas de prendre en compte des connaissances dont on
|
|
||||||
% dispose aux autres niveaux de description ni des relations causales qui existent
|
|
||||||
% entre les niveaux de description. Le défi que nous nous proposons de relever est
|
|
||||||
% de proposer un cadre à la fois pratique et théorique pour modéliser et simuler
|
|
||||||
% des systèmes dynamiques complexes en prenant en compte plusieurs niveaux de
|
|
||||||
% description.
|
|
||||||
%
|
|
||||||
% %Niveau de description
|
|
||||||
%
|
|
||||||
% Dans quelques travaux de recherche en informatique et en philosophie nous avons
|
|
||||||
% pu rencontrer le terme d'\emph{émergence}. Par exemple :
|
|
||||||
% \begin{itemize}
|
|
||||||
% \item Émergence forte ou émergence faible
|
|
||||||
% \item Émergence synchronique et diachronique
|
|
||||||
% \item Émergence computationnelle et combinatoire
|
|
||||||
% \end{itemize}
|
|
||||||
% Pour le reste de ce manuscrit, nous supposerons que la notion d'émergence, en
|
|
||||||
% tant que concept transversal et définit de manière différente suivant les
|
|
||||||
% domaines et les travaux, peut se résumer comme un problème de vocabulaire
|
|
||||||
% permettant d'énumérer les propriétés d'un modèle. Nous faisons donc l'hypothèse
|
|
||||||
% suivante :
|
|
||||||
% \begin{quote}
|
|
||||||
% Soit un modèle $m_1$; une \emph{propriété émergente} du modèle $m_1$ est une
|
|
||||||
% propriété appartenant nécessairement à un autre modèle que $m_1$.
|
|
||||||
% \end{quote}
|
|
||||||
% Comme parfois la présence de propriétés émergentes détermine l'aspect complexe
|
|
||||||
% du modèle d'un système, nous rendons par ce fait explicitement non-complexe les
|
|
||||||
% propriétés déterminables dans le modèle utilisé.
|
|
||||||
%
|
|
||||||
%
|
|
||||||
%
|
|
||||||
% %\subsection{Compliqué n'est pas complexe}
|
|
||||||
% \paragraph{Ce qui est compliqué: la complexité comme une mesure}
|
|
||||||
% Dans le champ de l'algorithmique, la complexité est une \emph{mesure} sur une
|
|
||||||
% chaîne de caractères $s$ où plus une chaîne est complexe, plus elle est
|
|
||||||
% difficile à compresser. D'un côté, la complexité de Kolmogorov est la longueur
|
|
||||||
% du plus petit programme informatique, écrit dans un langage formel donné,
|
|
||||||
% produisant $s$. D'un autre côté, les modèles de calculs sont des formalisations
|
|
||||||
% mathématiques d'une méthode de calcul d'un résultat $f(x)$ par une fonction $f$
|
|
||||||
% sur une entrée donnée $x$. En terme de puissance d'expression, tous les modèles
|
|
||||||
% de calculs universels se valent, leur complexité est donc évalué:
|
|
||||||
% \begin{itemize}
|
|
||||||
% \item en fonction du \emph{nombre de pas de calculs} nécessaire à une machine de
|
|
||||||
% Turing pour reconnaître un mot donné, appelé complexité en temps, puis
|
|
||||||
% \item en fonction de la \emph{taille de la bande} nécessaire à une machine de
|
|
||||||
% Turing pour reconnaître un mot donné, appelé complexité en espace.
|
|
||||||
% \end{itemize}
|
|
||||||
% Cette mesure donne naissance à toute une hiérarchie de classes de complexités.
|
|
||||||
% Nous ne nous intéressons pas, dans ce manuscrit, à la \emph{complexité comme une
|
|
||||||
% mesure} dans le cadre de l'alogrithmique.
|
|
||||||
%
|
|
||||||
% \paragraph{Ce qui est complexe: la complexité comme une «propriété»}
|
|
||||||
% Nous nous intéressons dans nos travaux aux systèmes possédant la propriété
|
|
||||||
% d'être complexe, qualifiés de systèmes complexes dont les exemples les plus
|
|
||||||
% courants sont les systèmes biologiques, à tous leurs niveaux de description.
|
|
||||||
% Cette appellation porte à confusion et nous n'avons pas trouvé de définition
|
|
||||||
% faisant consensus. Nous avons cependant défini, grâce à \MGS, une catégorie de
|
|
||||||
% modèles recouvrant la plupart des systèmes complexes: ce sont les Systèmes
|
|
||||||
% Dynamiques à Structure Dynamique\footnote{en anglais Dynamical Systems with a
|
|
||||||
% Dynamical Structure, abbrégé en DSDS, ou encore (DS)²}. C'est la définition à
|
|
||||||
% laquelle nous nous réfèrerons et nous nous abstiendrons d'utiliser le terme de
|
|
||||||
% système complexe dans la mesure du possible.
|
|
||||||
|
|
||||||
% La présente thèse apporte sa contribution sur trois plans principaux: le premier
|
|
||||||
% concerne la participation au WP2 avec la définition de l'activité spatiale
|
|
||||||
% au sein du langage \mgs, la seconde concerne le WP3 avec la conception du
|
|
||||||
% simulateur de bactéries \otb et le troisième livre une réflexion en cours sur la
|
|
||||||
% nature des modèles du multi-niveau, thématiques au cœur du projet \synbiotic.
|
|
||||||
%
|
|
||||||
% %simulateur
|
|
||||||
% \paragraph{Un accès aux grandes populations} La simulation par \otb\ d'une
|
|
||||||
% population de bactéries concerne le bas de la tour des langages, au plus près
|
|
||||||
% de l'assembleur génétique. Sa conception a pour vocation d'accélérer les
|
|
||||||
% retours concernant des hypothèses de travail et nous permet de savoir si elles
|
|
||||||
% sont plausibles, ou bien à rejeter. C'est donc une étape préalable à la
|
|
||||||
% conception d'une expérience en laboratoire. De plus, il est moins coûteux
|
|
||||||
% d'obtenir des réponses d'un simulateur que de construire une expérience
|
|
||||||
% \emph{in vivo} et d'attendre qu'une population de bactérie se développe
|
|
||||||
% dans un environnement contrôlé ; \otb\ a donc une place centrale pour une
|
|
||||||
% partie des travaux de recherche du projet. \otb, par son rendu grahpique
|
|
||||||
% accéléré par OpenGL et son usage du calcul parallèle avec OpenCL, permet
|
|
||||||
% d'observer la croissance d'une importante population de bactérie avoisinnant
|
|
||||||
% le million d'individus, dans un environnement de taille variable s'adaptant
|
|
||||||
% à la répartition spatiale des entités. Il permet ainsi de tirer des
|
|
||||||
% conclusions qualitatives sur le comportement de grandes populations. \otb\
|
|
||||||
% utilise également un langage d'entrée déclaratif, Synthetic Biology Genetic
|
|
||||||
% Programming~\cite{pascalie_morphogenetic_2016}, proche de celui de \gro~%
|
|
||||||
% \cite{jang_specification_2012}, ce qui permet de reprendre des précédentes
|
|
||||||
% simulations pour des tests à plus grande échelle. De par sa conception,
|
|
||||||
% \otb\ est aisément extensible grâce au langage de haut niveau OCaml et son
|
|
||||||
% architecture est modulaire, ce qui permet à un développeur d'ajouter ou de
|
|
||||||
% modifier facilement des fonctionnalités au simulateur. Enfin ce logiciel est
|
|
||||||
% libre, ouvrant la voie à des corrections et des améliorations sans entrave.
|
|
||||||
%
|
|
||||||
% %multi-modèle
|
|
||||||
% \paragraph{Un travail transversal}
|
|
||||||
% Nos travaux présentent, dans le premier chapitre, une approche formelle
|
|
||||||
% à la modélisation multi-niveau, issu d'un point de vue particulier sur
|
|
||||||
% le multi-modèle.
|
|
||||||
% %
|
|
||||||
% L'approche choisie par le projet \synbiotic est celle de l'ingénierie
|
|
||||||
% génétique : en choisissant d'emprunter la même voie que l'ingénierie des
|
|
||||||
% machines qui a donné le jour aux ordinateurs modernes et aux langages de
|
|
||||||
% programation, le projet tente de révéler des relations réductionnistes et
|
|
||||||
% de définir des sous-tâches plus simples à résoudre. De part l'élaboration
|
|
||||||
% de cette \emph{tour de langages}, le projet de recherche emprunte une approche
|
|
||||||
% informatique, où la complexité est entendue avec son sens algorithmique.
|
|
||||||
% Il est cependant intéressant de noter que la principale difficulté rencontrée
|
|
||||||
% concerne la description et la compréhension de ce qui constitue une forme de
|
|
||||||
% complexité inhérente au monde biologique : \emph{la complexité du vivant}.
|
|
||||||
% % Complexité
|
|
||||||
% Il n'y a pour l'instant pas de correspondance claire entre la complexité
|
|
||||||
% algorithmique et la complexité associée au vivant. Les systèmes complexes, au
|
|
||||||
% sens de la définition de l'ISC présentent la singulière caractéristique d'être
|
|
||||||
% simulables mais extrèmement difficiles à prédire. En d'autre terme, nous ne
|
|
||||||
% connaissons pas de \emph{lois} décrivant leur comportement \emph{global}. Les
|
|
||||||
% populations de cellules biologiques, par exemple, font partie des systèmes
|
|
||||||
% complexes. À l'inverse, la complexité des algorithmes est formellement définie.
|
|
||||||
% Les problèmes sont répartis en classes de complexité, dont on sépare les
|
|
||||||
% classes en temps ($\text{TIME}(t(n))$, $\text{NTIME}(t(n))$, …) des classes en
|
|
||||||
% espace ($\text{SPACE}(s(n))$, $\text{NSPACE}(s(n))$, …) ; toutes ces classes
|
|
||||||
% sont définies par rapport à un modèle de calcul central en informatique : les
|
|
||||||
% machines de Turing. Les classes en temps reflètent le nombre de pas nécessaire à
|
|
||||||
% une machine de Turing pour résoudre un problème tandis que les classes en espace
|
|
||||||
% reflètent la longueur de la bande, c'est à dire le nombre de cases mémoire,
|
|
||||||
% nécessaire pour résoudre un problème. La simulation d'un système complexe étant
|
|
||||||
% effectuée par un ordinateur, cette simulation fait donc au moins partie de la
|
|
||||||
% classe des problèmes décidables, car il suffit d'attendre l'itération de la
|
|
||||||
% simulation qui permet de décider d'une propriété.
|
|
||||||
%
|
|
||||||
% À l'instar de \synbiotic, d'autres projets de recherche s'intéressent à la
|
|
||||||
% question de la complexité du vivant. L'approche générique suivie par ces autres
|
|
||||||
% projet revient à assembler plusieurs modèles mathématiques ensemble pour
|
|
||||||
% reproduire les valeurs des observables observées dans la nature. Le lecteur
|
|
||||||
% trouvera d'autres exemples dans l'introduction au chapitre suivant.
|
|
||||||
|
|
||||||
|
|
||||||
% \paragraph{Aggrégation spatiale (Spatial Aggregation)}: L'aggrégation spatiale
|
|
||||||
% est un paradigme et un langage générique~\cite{yip_spatial_1996} unifiant la
|
|
||||||
% descriptions plusieurs solveurs de problème imagistiques. Ce langage leur permet
|
|
||||||
% de proposer un cadre commun pour décrire le fonctionnement de trois solveurs de
|
|
||||||
% problèmes spécialisés dans l'extraction d'informations qualitatives depuis des
|
|
||||||
% systèmes hamiltoniens (\textsc{Kam}), les structures d'espace d'était de
|
|
||||||
% systèmes dissipatifs (\textsc{Maps}) et de systèmes mécaniques à parties rigides
|
|
||||||
% (\textsc{Hipair}). Certains concepts utilisés se rapprochent de la programmation
|
|
||||||
% spatiale telle qu'implémentée dans \mgs{} telle que la structure de données
|
|
||||||
% générique sous forme de graphe de voisinage est un cas particulier de collection
|
|
||||||
% topologique. Dans chaque cas, l'objet à analyser est assimilable à un champ
|
|
||||||
% continu duquel l'outil utilisé tire des informations et correspond au niveau
|
|
||||||
% d'abstraction le plus bas. Le langage inclus des opérateurs pour transformer
|
|
||||||
% chaque niveau un niveau plus abstrait, par le biais d'agrégation et de
|
|
||||||
% classification. Les rapports montant et descendant entre les niveaux sont
|
|
||||||
% apparemment maintenu. Ces travaux adressent bien une partie de notre propre
|
|
||||||
% problématique, à ceci près qu'ils sont limités à quelques cas particuliers.
|
|
||||||
|
|
File diff suppressed because it is too large
Load diff
485
partie-otb.tex
485
partie-otb.tex
|
@ -1,6 +1,5 @@
|
||||||
\chapter{Travelling Bacteria}\label{chap:partie-otb}
|
\chapter{Travelling Bacteria}\label{chap:partie-otb}
|
||||||
\minitoc
|
\minitoc
|
||||||
%DONE: (WONTFIX) Rendre la figure plus claire
|
|
||||||
\begin{figure}[h]
|
\begin{figure}[h]
|
||||||
\centerline{%
|
\centerline{%
|
||||||
\includegraphics[width=19cm]{figures/otb2-display}}
|
\includegraphics[width=19cm]{figures/otb2-display}}
|
||||||
|
@ -132,9 +131,6 @@ la validité d'un modèle concernant l'évolution d'une population de bactéries
|
||||||
modifié ou non;
|
modifié ou non;
|
||||||
\end{description}
|
\end{description}
|
||||||
|
|
||||||
% \subsection{GRO} % Pourquoi pas GRO
|
|
||||||
% À l'instar de \gro~\cite{jang_specification_2012}, …
|
|
||||||
|
|
||||||
\subsection{\ocaml} % Adaptabilité, stabilité
|
\subsection{\ocaml} % Adaptabilité, stabilité
|
||||||
Pour répondre aux critères \emph{d'adaptabilité} et de \emph{stabilité},
|
Pour répondre aux critères \emph{d'adaptabilité} et de \emph{stabilité},
|
||||||
nous avons choisi d'implémenter \otb avec le langage \ocaml, un langage de
|
nous avons choisi d'implémenter \otb avec le langage \ocaml, un langage de
|
||||||
|
@ -146,28 +142,10 @@ l'assistant de preuve Coq\footnote{cf. la page «à propos» du projet Coq
|
||||||
son actif de belles réussites comme l'analyseur statique \textsc{Astrée} en
|
son actif de belles réussites comme l'analyseur statique \textsc{Astrée} en
|
||||||
usage chez Airbus.
|
usage chez Airbus.
|
||||||
|
|
||||||
%DONE: Repasser sur ça avec Antoine (WONTFIX)
|
|
||||||
\paragraph{Langage de programmation fonctionnel}
|
\paragraph{Langage de programmation fonctionnel}
|
||||||
La programmation fonctionnelle est issue du $\lambda$-calcul, un modèle de
|
La programmation fonctionnelle est issue du $\lambda$-calcul, un modèle de
|
||||||
calcul mathématique reposant sur des variables, des applications et des
|
calcul mathématique reposant sur des variables, des applications et des
|
||||||
abstractions regroupées sous le nom de \emph{$\lambda$-termes}.
|
abstractions regroupées sous le nom de \emph{$\lambda$-termes}.
|
||||||
% \begin{mpo-definition}[Ensemble des $\lambda$-termes]
|
|
||||||
% Un $\lambda$-terme est composé:
|
|
||||||
% \begin{itemize}
|
|
||||||
% \item de variables, notées $v_1,v_2,\ldots,\v_n,\ldots$;
|
|
||||||
% \item des symboles d'abstraction $\lambda$ et $.$;
|
|
||||||
% \item des parenthèses ouvrante et fermante.
|
|
||||||
% \end{itemize}
|
|
||||||
% L'ensemble des $\lambda$-termes, $\Lambda$ peut être définit par induction:
|
|
||||||
% \begin{enumerate}
|
|
||||||
% \item Si $x$ est une variable, alors $x \in \Lambda$
|
|
||||||
% \item Si $x$ est une variable et $M\in \Lambda$, alors $(\lambda x.M)\in
|
|
||||||
% \Lambda$
|
|
||||||
% \item Si $M, N \in \Lambda$, alors $(M\ N)\in \Lambda$
|
|
||||||
% \end{enumerate}
|
|
||||||
% Les $\lambda$-termes issus de la règle 2 sont appelés \emph{abstractions} et
|
|
||||||
% ceux issus de la règle 3 sont appelés \emph{applications}.
|
|
||||||
% \end{mpo-definition}
|
|
||||||
Dans le modèle du $\lambda$-calcul, la règle centrale pour le calcul des
|
Dans le modèle du $\lambda$-calcul, la règle centrale pour le calcul des
|
||||||
$\lambda$-termes est la \emph{substitution} dont les deux principaux
|
$\lambda$-termes est la \emph{substitution} dont les deux principaux
|
||||||
représentants sont l'$\alpha$-conversion et la $\beta$-réduction. Le calcul de
|
représentants sont l'$\alpha$-conversion et la $\beta$-réduction. Le calcul de
|
||||||
|
@ -248,7 +226,6 @@ Déclarer les types
|
||||||
permet au compilateur de distinguer deux chaînes de caractères identiques, mais
|
permet au compilateur de distinguer deux chaînes de caractères identiques, mais
|
||||||
dont le sens est différent, ce qui est représenté par deux types différents.
|
dont le sens est différent, ce qui est représenté par deux types différents.
|
||||||
|
|
||||||
%modulaire
|
|
||||||
\paragraph{Modularité native}
|
\paragraph{Modularité native}
|
||||||
Lors de la rédaction d'un programme, il est vite nécessaire de «compartimenter»
|
Lors de la rédaction d'un programme, il est vite nécessaire de «compartimenter»
|
||||||
le code source, d'abord parce que certaines fonctionnalité sont génériques et
|
le code source, d'abord parce que certaines fonctionnalité sont génériques et
|
||||||
|
@ -267,12 +244,7 @@ interfaces — du moment qu'elles sont toutes compatibles avec les types de
|
||||||
l'implémentation — et plusieurs modules peuvent vérifier une même interface.
|
l'implémentation — et plusieurs modules peuvent vérifier une même interface.
|
||||||
Enfin, \ocaml dispose de modules paramétriques nommés \emph{foncteurs} qui
|
Enfin, \ocaml dispose de modules paramétriques nommés \emph{foncteurs} qui
|
||||||
sont des structures paramétrées par d'autres structures.
|
sont des structures paramétrées par d'autres structures.
|
||||||
% Quand ils sont répartis dans des fichiers séparés, chaque fichier source
|
|
||||||
% terminant en \texttt{.ml} est un module dont le nom est celui du fichier,
|
|
||||||
% auquel on peut adjoindre un fichier interface dont le nom termine en
|
|
||||||
% \texttt{.mli}.
|
|
||||||
|
|
||||||
%interfaçable avec C
|
|
||||||
% http://caml.inria.fr/pub/docs/manual-ocaml/intfc.html
|
% http://caml.inria.fr/pub/docs/manual-ocaml/intfc.html
|
||||||
\paragraph{Interface avec le langage C}
|
\paragraph{Interface avec le langage C}
|
||||||
Un aspect important pour les besoins du cahier des charges (voir
|
Un aspect important pour les besoins du cahier des charges (voir
|
||||||
|
@ -375,11 +347,6 @@ bibliothèque logicielle nous permet de proposer une ou plusieurs fenêtre
|
||||||
de rendu en temps réel pour présenter des informations qualitatives sur la
|
de rendu en temps réel pour présenter des informations qualitatives sur la
|
||||||
progression d'une simulation.
|
progression d'une simulation.
|
||||||
|
|
||||||
% Scalabilité
|
|
||||||
%détection dynamique de la configuration de l'utilisateur
|
|
||||||
|
|
||||||
% Ouverture
|
|
||||||
%licence libre
|
|
||||||
\subsection{Modélisation d'une cellule}
|
\subsection{Modélisation d'une cellule}
|
||||||
\begin{figure}[t]
|
\begin{figure}[t]
|
||||||
\centering
|
\centering
|
||||||
|
@ -391,10 +358,6 @@ progression d'une simulation.
|
||||||
\label{fig:ecoli}
|
\label{fig:ecoli}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
% \caption{Longueur totale d'une bactérie : $L = 2 \cdot{} (r + l)$
|
|
||||||
%Surface totale : $S = 2 \cdot{} r \cdot{} 2 \cdot{} l + \pi \cdot r^2
|
|
||||||
% = 4 \cdot{} r \cdot{} l + \pi \cdot r^2$}
|
|
||||||
|
|
||||||
\Ecoli\ est une bactérie bacillaire, c'est à dire en forme de bâtonnet, du genre
|
\Ecoli\ est une bactérie bacillaire, c'est à dire en forme de bâtonnet, du genre
|
||||||
\emph{Escherichia}. C'est une bactérie vivant habituellement dans l'intestin des
|
\emph{Escherichia}. C'est une bactérie vivant habituellement dans l'intestin des
|
||||||
animaux à sang chaud, dont elle constitue 0,1\% de la flore intestinale.
|
animaux à sang chaud, dont elle constitue 0,1\% de la flore intestinale.
|
||||||
|
@ -404,7 +367,6 @@ la microbiologie industrielle, notamment pour sa disponibilité et sa facilité
|
||||||
culture. La souche K-12, adaptée à l'étude en laboratoire, est également un des
|
culture. La souche K-12, adaptée à l'étude en laboratoire, est également un des
|
||||||
premiers organisme dont le génome a été séquencé \cite{blattner_complete_1997}.
|
premiers organisme dont le génome a été séquencé \cite{blattner_complete_1997}.
|
||||||
|
|
||||||
%Usages de ecoli
|
|
||||||
Elle est à l'origine du domaine de la biotechnologie en étant choisie comme
|
Elle est à l'origine du domaine de la biotechnologie en étant choisie comme
|
||||||
premier organisme génétiquement modifié contenant de l'ADN recombiné, c'est à
|
premier organisme génétiquement modifié contenant de l'ADN recombiné, c'est à
|
||||||
dire de l'ADN dont la séquence des nucléotides à été altérée pour modifier
|
dire de l'ADN dont la séquence des nucléotides à été altérée pour modifier
|
||||||
|
@ -427,10 +389,8 @@ fonctionnelles~\cite{han_escherichia_2006}.
|
||||||
\hline
|
\hline
|
||||||
Longueur & $L = 2 (l+r)$ & \num{2.5+-0.6} & \si{\micro\meter} \\
|
Longueur & $L = 2 (l+r)$ & \num{2.5+-0.6} & \si{\micro\meter} \\
|
||||||
Largeur ou Diamètre & $d = 2r$ & \num{0.88+-0.09} & \si{\micro\meter} \\
|
Largeur ou Diamètre & $d = 2r$ & \num{0.88+-0.09} & \si{\micro\meter} \\
|
||||||
% Masse & $m$ & 0 & g \\
|
|
||||||
Volume & $V$ & \num{1.4} & \si{\femto\liter} \\
|
Volume & $V$ & \num{1.4} & \si{\femto\liter} \\
|
||||||
Vitesse rectiligne & $v$ & \num{29+-6} & \si{\micro\meter\per\second} \\
|
Vitesse rectiligne & $v$ & \num{29+-6} & \si{\micro\meter\per\second} \\
|
||||||
% Vitesse angulaire & $\omega$ & \num{29+-6} & \si{\micro\meter\per\second} \\
|
|
||||||
Temps de génération & $G$ & 20 — 30 & \si{\minute} \\
|
Temps de génération & $G$ & 20 — 30 & \si{\minute} \\
|
||||||
\hline
|
\hline
|
||||||
\end{tabular}
|
\end{tabular}
|
||||||
|
@ -466,7 +426,6 @@ Ce phénomène s'appelle la \emph{chimiotaxie}. Il résulte de la transmission
|
||||||
de signaux extracellulaires, détectés par les récepteurs de la membrane, aux
|
de signaux extracellulaires, détectés par les récepteurs de la membrane, aux
|
||||||
moteurs des flagelles qui contrôlent le comportement de la cellule.
|
moteurs des flagelles qui contrôlent le comportement de la cellule.
|
||||||
|
|
||||||
% Modèle discret entre concentration d'un morphogène et temps de tumble et run
|
|
||||||
D'un point de vue macroscopique, \ecoli{} effectue une marche aléatoire
|
D'un point de vue macroscopique, \ecoli{} effectue une marche aléatoire
|
||||||
biaisée vers une direction particulière. Elle détecte la variation
|
biaisée vers une direction particulière. Elle détecte la variation
|
||||||
\emph{dans le temps} de la concentration d'un chimioeffecteur. Ainsi, lorsque
|
\emph{dans le temps} de la concentration d'un chimioeffecteur. Ainsi, lorsque
|
||||||
|
@ -656,7 +615,6 @@ que via le langage C, ainsi les modules de bas niveau \texttt{Viewer} et
|
||||||
\texttt{OpenCL} sont en partie dédiés à la traduction entre l'interface C et
|
\texttt{OpenCL} sont en partie dédiés à la traduction entre l'interface C et
|
||||||
\ocaml.
|
\ocaml.
|
||||||
|
|
||||||
%% Représentation schématique des modules
|
|
||||||
\begin{figure}[ht]
|
\begin{figure}[ht]
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[width=\textwidth]{figures/otbModules}
|
\includegraphics[width=\textwidth]{figures/otbModules}
|
||||||
|
@ -696,7 +654,6 @@ environnement. C'est ce modèle qui permet aux bactéries de déposer des
|
||||||
morphogènes dans leur environnement et de consommer les morphogènes qui y sont
|
morphogènes dans leur environnement et de consommer les morphogènes qui y sont
|
||||||
présent.
|
présent.
|
||||||
|
|
||||||
%% 3 vues du simulateur
|
|
||||||
\begin{figure}[h]
|
\begin{figure}[h]
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[width=\textwidth]{otb-multi-view}%
|
\includegraphics[width=\textwidth]{otb-multi-view}%
|
||||||
|
@ -792,11 +749,6 @@ diffusion et de dégradation sous forme de nombres réels.
|
||||||
["beta", 1.5, 1]
|
["beta", 1.5, 1]
|
||||||
]
|
]
|
||||||
\end{SBGPcode}
|
\end{SBGPcode}
|
||||||
% Par exemple, l'extrait de code précédent est compilé vers l'en-tête C suivante:
|
|
||||||
% \begin{Ccode}
|
|
||||||
% alpha := signal(0.050000,0.010000) ;
|
|
||||||
% beta := signal(1.500000,1.2) ;
|
|
||||||
% \end{Ccode}
|
|
||||||
|
|
||||||
\paragraph{Déclaration des réactions}
|
\paragraph{Déclaration des réactions}
|
||||||
Les réactions sont déclarés dans une liste. Chaque réaction consiste en un
|
Les réactions sont déclarés dans une liste. Chaque réaction consiste en un
|
||||||
|
@ -812,14 +764,8 @@ réaction $2\alpha + \beta \xrightarrow{0.15} \gamma$:
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
\end{SBGPcode}
|
\end{SBGPcode}
|
||||||
% Il se compile vers l'en-tête C suivante:
|
|
||||||
% \begin{Ccode}
|
|
||||||
% reaction({alpha,alpha,beta},{gamma},0.15) ;
|
|
||||||
% \end{Ccode}
|
|
||||||
|
|
||||||
\paragraph{Déclaration des types}
|
\paragraph{Déclaration des types}
|
||||||
% The bacterial types are declared in a list of IDs, the following block
|
|
||||||
% indicates the list of types involved in the genome:
|
|
||||||
Les types de bactéries légaux sont déclarés dans une liste d'identifiants. Le
|
Les types de bactéries légaux sont déclarés dans une liste d'identifiants. Le
|
||||||
bloc suivant donne la liste des types impliqués dans le génome:
|
bloc suivant donne la liste des types impliqués dans le génome:
|
||||||
\begin{SBGPcode}
|
\begin{SBGPcode}
|
||||||
|
@ -831,24 +777,8 @@ bloc suivant donne la liste des types impliqués dans le génome:
|
||||||
"DEAD"
|
"DEAD"
|
||||||
]
|
]
|
||||||
\end{SBGPcode}
|
\end{SBGPcode}
|
||||||
% All types in the \sbgp{} file are declared as integer variables in Gro. These
|
|
||||||
% types are indexed starting from 0 (type of the initial bacterium). The
|
|
||||||
% following SBGPcode shows the Gro code produced by the \sbgp{} compiler:
|
|
||||||
% Tous les types déclarés dans le fichier \sbgp{} sont transformés en nombre entier
|
|
||||||
% dans \tb{}. Ces types sont indexés à partir de 0 — le type de la bactérie initiale.
|
|
||||||
% L'extrait \sbgp{} précédent est compilé comme suit:
|
|
||||||
% \begin{Ccode}
|
|
||||||
% QUIESCENT := 0 ;
|
|
||||||
% LEADER := 1 ;
|
|
||||||
% FLESH := 2 ;
|
|
||||||
% SKIN := 3 ;
|
|
||||||
% DEAD := 4 ;
|
|
||||||
% \end{Ccode}
|
|
||||||
|
|
||||||
\paragraph{Déclaration du comportement}
|
\paragraph{Déclaration du comportement}
|
||||||
% Type-specific behaviors are declared in an associative list: for each label
|
|
||||||
% declared in the type block, a list of instructions is given. As an example the
|
|
||||||
% following code gives the behavior of the \texttt{LEADER} type:
|
|
||||||
Les comportements spécifiques aux types sont déclarés dans une liste
|
Les comportements spécifiques aux types sont déclarés dans une liste
|
||||||
associative; une liste d'instructions est donnée pour chaque étiquette
|
associative; une liste d'instructions est donnée pour chaque étiquette
|
||||||
déclaré dans le bloc type. Par exemple, le code suivant donne le comportement
|
déclaré dans le bloc type. Par exemple, le code suivant donne le comportement
|
||||||
|
@ -865,49 +795,31 @@ Une instruction est décrite conformément à la structure suivante:
|
||||||
\begin{SBGPcode}
|
\begin{SBGPcode}
|
||||||
{ "InstructionID" : ["param1", ... ,"paramN"] }
|
{ "InstructionID" : ["param1", ... ,"paramN"] }
|
||||||
\end{SBGPcode}
|
\end{SBGPcode}
|
||||||
% The \texttt{InstructionID} must be a member of the \sbgp{} instruction set.
|
|
||||||
% These instructions and their Gro equivalent are given in the following table:
|
|
||||||
La valeur du champ \texttt{InstructionID} doit être pris parmi l'ensemble des
|
La valeur du champ \texttt{InstructionID} doit être pris parmi l'ensemble des
|
||||||
instructions \sbgp{} suivantes:
|
instructions \sbgp{} suivantes:
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item \texttt{EmitSignal(s,q)}: dépose une quantité \ç|q| du morphogène \ç|s| à
|
\item \texttt{EmitSignal(s,q)}: dépose une quantité \ç|q| du morphogène \ç|s| à
|
||||||
la position courante de la bactérie dans l'environnement;
|
la position courante de la bactérie dans l'environnement;
|
||||||
% & emit\_signal(s,q) \\
|
|
||||||
\item \texttt{AbsorbSignal(s,q)}: consomme une quantité \ç|q| du morphogène
|
\item \texttt{AbsorbSignal(s,q)}: consomme une quantité \ç|q| du morphogène
|
||||||
\ç|s| à la position courante de la bactérie dans l'environnement;
|
\ç|s| à la position courante de la bactérie dans l'environnement;
|
||||||
% & absorb\_signal(s,q) \\
|
|
||||||
\item \texttt{Differentiate(A)}: force un changement de type de la bactérie vers
|
\item \texttt{Differentiate(A)}: force un changement de type de la bactérie vers
|
||||||
le type \ç|A| (il doit exister dans la liste des types);
|
le type \ç|A| (il doit exister dans la liste des types);
|
||||||
% & mem.type := A \\
|
|
||||||
\item \texttt{Die()}: détruit la bactérie. Elle est en pratique marquée comme
|
\item \texttt{Die()}: détruit la bactérie. Elle est en pratique marquée comme
|
||||||
inactive et réinitialisée;
|
inactive et réinitialisée;
|
||||||
% & die() \\
|
|
||||||
\item \texttt{Freeze()}: place le marqueur \ç|immobile| sur une bactérie. Dans cet
|
\item \texttt{Freeze()}: place le marqueur \ç|immobile| sur une bactérie. Dans cet
|
||||||
état une bactérie est immobile et ne croît pas;
|
état une bactérie est immobile et ne croît pas;
|
||||||
% & freeze() \\
|
|
||||||
\item \texttt{Unfreeze()}: retire le marqueur \ç|immobile|;
|
\item \texttt{Unfreeze()}: retire le marqueur \ç|immobile|;
|
||||||
% & unfreeze() \\
|
|
||||||
\item \texttt{Divide(r)}: définit le taux de croissance de la bactérie à la
|
\item \texttt{Divide(r)}: définit le taux de croissance de la bactérie à la
|
||||||
valeur particulière \ç|r|;
|
valeur particulière \ç|r|;
|
||||||
% & set("ecoli\_growth\_rate",0.1) \\
|
|
||||||
\item \texttt{StopDivide()}: définit le taux de croissance de la bactérie comme
|
\item \texttt{StopDivide()}: définit le taux de croissance de la bactérie comme
|
||||||
nul, l'empêchant ainsi de se diviser;
|
nul, l'empêchant ainsi de se diviser;
|
||||||
% & set("ecoli\_growth\_rate",0) \\
|
|
||||||
\item \texttt{Accumulate(p,q)}: incrémente le compteur de morphogènes \ç|p| avec
|
\item \texttt{Accumulate(p,q)}: incrémente le compteur de morphogènes \ç|p| avec
|
||||||
la valeur \ç|q|;
|
la valeur \ç|q|;
|
||||||
% & p := p + q \\
|
|
||||||
\item \texttt{Deplete(p,q)}: décrémente le compteur de morphogènes \ç|p| avec la
|
\item \texttt{Deplete(p,q)}: décrémente le compteur de morphogènes \ç|p| avec la
|
||||||
valeur \ç|q|.
|
valeur \ç|q|.
|
||||||
% & p := p - q \\
|
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
\paragraph{Déclaration des transitions}
|
\paragraph{Déclaration des transitions}
|
||||||
% The transition block is a matrix that encapsulates the differentiation graph
|
|
||||||
% of the genome. The size of the matrix is dependent on the number of types.
|
|
||||||
% When a link exists between two types, a label is set in the corresponding
|
|
||||||
% element the matrix, if not, the keyword \texttt{NA} is specified. The
|
|
||||||
% following SBGPcode shows how is the differentiation graph of the 2-layered
|
|
||||||
% homeostatic core:
|
|
||||||
Le bloc transition est une matrice encodant le graphe de différentiation du
|
Le bloc transition est une matrice encodant le graphe de différentiation du
|
||||||
génome. La taille de la matrice dépend du nombre de types. Lorsque qu'une
|
génome. La taille de la matrice dépend du nombre de types. Lorsque qu'une
|
||||||
transition existe entre deux types, une étiquette est définie dans la case de la
|
transition existe entre deux types, une étiquette est définie dans la case de la
|
||||||
|
@ -935,61 +847,30 @@ instructions \sbgp{} suivantes:
|
||||||
opérations classiques de la logique booléenne;
|
opérations classiques de la logique booléenne;
|
||||||
\item \texttt{EqThreshold(s,q)}: ce prédicat n'est vérifié que si la
|
\item \texttt{EqThreshold(s,q)}: ce prédicat n'est vérifié que si la
|
||||||
concentration du morphogène \ç|s| est égale à \ç|q|;
|
concentration du morphogène \ç|s| est égale à \ç|q|;
|
||||||
% & get\_signal(s) $=$ q \\
|
|
||||||
\item \texttt{LessThreshold(s,q)}: ce prédicat n'est vérifié que si la
|
\item \texttt{LessThreshold(s,q)}: ce prédicat n'est vérifié que si la
|
||||||
concentration du morphogène \ç|s| est inférieure à \ç|q|;
|
concentration du morphogène \ç|s| est inférieure à \ç|q|;
|
||||||
% & get\_signal(s) $<$ q \\
|
|
||||||
\item \texttt{GreaterThreshold(s,q)}: ce prédicat n'est vérifié que si la
|
\item \texttt{GreaterThreshold(s,q)}: ce prédicat n'est vérifié que si la
|
||||||
concentration du morphogène \ç|s| est supérieure à \ç|q|;
|
concentration du morphogène \ç|s| est supérieure à \ç|q|;
|
||||||
% & get\_signal(s) $>$ q \\
|
|
||||||
\item \texttt{LessEqThreshold(s,q)}: ce prédicat n'est vérifié que si la
|
\item \texttt{LessEqThreshold(s,q)}: ce prédicat n'est vérifié que si la
|
||||||
concentration du morphogène \ç|s| est inférieure ou égale à \ç|q|;
|
concentration du morphogène \ç|s| est inférieure ou égale à \ç|q|;
|
||||||
% & get\_signal(s) $>=$ q \\
|
|
||||||
\item \texttt{GreaterEqThreshold(s,q)}: ce prédicat n'est vérifié que si la
|
\item \texttt{GreaterEqThreshold(s,q)}: ce prédicat n'est vérifié que si la
|
||||||
concentration du morphogène \ç|s| est supérieure ou égale à \ç|q|;
|
concentration du morphogène \ç|s| est supérieure ou égale à \ç|q|;
|
||||||
% & get\_signal(s) $<=$ q \\
|
|
||||||
\item \texttt{BetweenThreshold(s,q1,q2)}: ce prédicat n'est vérifié que si la
|
\item \texttt{BetweenThreshold(s,q1,q2)}: ce prédicat n'est vérifié que si la
|
||||||
concentration du morphogène \ç|s| est comprise strictement entre \ç|q1| et
|
concentration du morphogène \ç|s| est comprise strictement entre \ç|q1| et
|
||||||
\ç|q2|;
|
\ç|q2|;
|
||||||
\item \texttt{InternalProtEqCond(p,q)}: ce prédicat n'est vérifié que si le
|
\item \texttt{InternalProtEqCond(p,q)}: ce prédicat n'est vérifié que si le
|
||||||
compteur de morphogènes \ç|p| est égal à la valeur \ç|q|;
|
compteur de morphogènes \ç|p| est égal à la valeur \ç|q|;
|
||||||
% & p $=$ q \\
|
|
||||||
\item \texttt{InternalProtLessCond(p,q)}: ce prédicat n'est vérifié que si le
|
\item \texttt{InternalProtLessCond(p,q)}: ce prédicat n'est vérifié que si le
|
||||||
compteur de morphogènes \ç|p| est inférieur strictement à la valeur \ç|q|;
|
compteur de morphogènes \ç|p| est inférieur strictement à la valeur \ç|q|;
|
||||||
% & p $<$ q \\
|
|
||||||
\item \texttt{InternalProtGreatCond(p,q)}: ce prédicat n'est vérifié que si le
|
\item \texttt{InternalProtGreatCond(p,q)}: ce prédicat n'est vérifié que si le
|
||||||
compteur de morphogènes \ç|p| est supérieur strictement à la valeur \ç|q|;
|
compteur de morphogènes \ç|p| est supérieur strictement à la valeur \ç|q|;
|
||||||
% & p $>$ q \\
|
|
||||||
\item \texttt{InternalProtLessEqCond(p,q)}: ce prédicat n'est vérifié que si le
|
\item \texttt{InternalProtLessEqCond(p,q)}: ce prédicat n'est vérifié que si le
|
||||||
compteur de morphogènes \ç|p| est inférieur ou égal à la valeur \ç|q|;
|
compteur de morphogènes \ç|p| est inférieur ou égal à la valeur \ç|q|;
|
||||||
% & p $<=$ q \\
|
|
||||||
\item \texttt{InternalProtGreatEqCond(p,q)}: ce prédicat n'est vérifié que si le
|
\item \texttt{InternalProtGreatEqCond(p,q)}: ce prédicat n'est vérifié que si le
|
||||||
compteur de morphogènes \ç|p| est supérieur ou égal à la valeur \ç|q|;
|
compteur de morphogènes \ç|p| est supérieur ou égal à la valeur \ç|q|;
|
||||||
% & p $>=$ q \\
|
|
||||||
\item \texttt{MidPlane(a,b,t)}: ce prédicat n'est vérifié que si la valeur de la
|
\item \texttt{MidPlane(a,b,t)}: ce prédicat n'est vérifié que si la valeur de la
|
||||||
concentration du morphogène \ç|a| moins la concentration du morphogène \ç|b|
|
concentration du morphogène \ç|a| moins la concentration du morphogène \ç|b|
|
||||||
est comprise entre \ç|-t| et \ç|t|.
|
est comprise entre \ç|-t| et \ç|t|.
|
||||||
% & (get\_signal(a) $-$ get\_signal(b)) $>$ $-$t \\
|
|
||||||
% & \& (get\_signal(a) $-$ get\_signal(b)) $<$ t\\
|
|
||||||
%\item \texttt{OscillHigh(a,b,t)}
|
|
||||||
% % & cos(a $*$ mem.time) $>$ t \\
|
|
||||||
%\item \texttt{OscillLow(a,b,t)}
|
|
||||||
% % & cos(a $*$ mem.time) $<$ t \\
|
|
||||||
% & get\_signal(s) $>$ q1 \& get\_signal(s) $<$ q2 \\
|
|
||||||
%\item \texttt{EqThresholdRefracted(s,q)}
|
|
||||||
% % & get\_signal(s) $=$ q \& mem.tn > tr\\
|
|
||||||
%\item \texttt{LessThresholdRefracted(s,q,tr)}
|
|
||||||
% % & get\_signal(s) $<$ q \& mem.tn > tr\\
|
|
||||||
%\item \texttt{GreaterThresholdRefracted(s,q,tr)}
|
|
||||||
% % & get\_signal(s) $>$ q \& mem.tn > tr\\
|
|
||||||
%\item \texttt{LessEqThresholdRefracted(s,q,tr)}
|
|
||||||
% % & get\_signal(s) $>=$ q \& mem.tn > tr\\
|
|
||||||
%\item \texttt{GreaterEqThresholdRefracted(s,q,tr)}
|
|
||||||
% % & get\_signal(s) $<=$ q \& mem.tn > tr\\
|
|
||||||
%\item \texttt{BetweenThresholdRefracted(s,q1,q2,tr)}
|
|
||||||
% % & get\_signal(s) $>$ q1 \& get\_signal(s) $<$ q2 \& mem.tn > tr\\
|
|
||||||
%\item \texttt{Rate(p)}
|
|
||||||
% % & rate(p) \\
|
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1014,11 +895,6 @@ Conway\footnote{lors de sa publication dans les pages du Scientific American en
|
||||||
automates cellulaires sont un outil des paradigmes de programmation non
|
automates cellulaires sont un outil des paradigmes de programmation non
|
||||||
conventionnels, d'un côté permettant de formaliser les processus biologiques
|
conventionnels, d'un côté permettant de formaliser les processus biologiques
|
||||||
observés, et de l'autre de les modéliser et de les simuler.
|
observés, et de l'autre de les modéliser et de les simuler.
|
||||||
% Ce n'est néammoins qu'à partir des années 1980 et avec le physicien Stephen
|
|
||||||
% Wolfram que la recherche scientifique dans ce domaine s'est vraiment étendue.
|
|
||||||
% Son travail de classification des automates cellulaires a abouti à la
|
|
||||||
% publication en 2002 d'un livre intitulé «A New Kind of Science» désormais
|
|
||||||
% considéré comme une référence du domaine.
|
|
||||||
|
|
||||||
\begin{mpo-definition}[Configuration]
|
\begin{mpo-definition}[Configuration]
|
||||||
Soit $\oQ$ un ensemble d'états, $G$ un groupe, $c_\oQ : G \rightarrow \oQ$ est
|
Soit $\oQ$ un ensemble d'états, $G$ un groupe, $c_\oQ : G \rightarrow \oQ$ est
|
||||||
|
@ -1102,23 +978,6 @@ d'automates cellulaires réversibles. Toffoli et Margolus montrent également qu
|
||||||
la classe des automates à partitions est équivalente à celles des automates
|
la classe des automates à partitions est équivalente à celles des automates
|
||||||
cellulaires, et que ces deux modèles peuvent se simuler l'un l'autre.
|
cellulaires, et que ces deux modèles peuvent se simuler l'un l'autre.
|
||||||
|
|
||||||
%\begin{mpo-definition}[Division entière] $\text{div}_k$ est la division entière
|
|
||||||
% par $k$, une fonction retournant la partie entière de la division euclidienne
|
|
||||||
% par $k$. Pour $k \in \mathbb{N}_+$ et $x \in \mathbb{R}$ :
|
|
||||||
% \[
|
|
||||||
% \text{div}_k(x) = \left\lfloor \frac{x}{k} \right\rfloor
|
|
||||||
% \]
|
|
||||||
% avec la fonction partie entière $\lfloor x \rfloor = \text{max} \{ m \in
|
|
||||||
% \mathbb{Z} \,|\, m \leq x \}$.
|
|
||||||
%\end{mpo-definition}
|
|
||||||
|
|
||||||
%\begin{mpo-definition}[Rang] Le rang d'un groupe $G$, noté $\text{rank}(G)$
|
|
||||||
% donne la plus petite cardinalité d'un ensemble de générateurs de $G$ :
|
|
||||||
% \[
|
|
||||||
% \text{rank}(G) = min \{ |X| : X \subseteq G, \langle X \rangle = G \}.
|
|
||||||
% \]
|
|
||||||
%\end{mpo-definition}
|
|
||||||
|
|
||||||
\begin{mpo-definition}[Automate cellulaire à blocs] Un automate cellulaire à
|
\begin{mpo-definition}[Automate cellulaire à blocs] Un automate cellulaire à
|
||||||
blocs, aussi appelé automate à partitions, est un tuple
|
blocs, aussi appelé automate à partitions, est un tuple
|
||||||
$B=(M,\oQ,p,\text{\em shift},f)$ avec:
|
$B=(M,\oQ,p,\text{\em shift},f)$ avec:
|
||||||
|
@ -1142,9 +1001,6 @@ cellulaires, et que ces deux modèles peuvent se simuler l'un l'autre.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
La fonction de transition locale $f$ induit une fonction de transition
|
La fonction de transition locale $f$ induit une fonction de transition
|
||||||
globale, dont la définition est décrite par l'algorithme
|
globale, dont la définition est décrite par l'algorithme
|
||||||
%\[
|
|
||||||
% F(c)(m) = \left[ f (c (T^s \beta(m))) \right]_m
|
|
||||||
%\]
|
|
||||||
\begin{algorithm}
|
\begin{algorithm}
|
||||||
\ForAll {$s \in \text{shift}$}
|
\ForAll {$s \in \text{shift}$}
|
||||||
{ \ForAll {$m \in M$} {
|
{ \ForAll {$m \in M$} {
|
||||||
|
@ -1191,8 +1047,6 @@ sous division de l'espace: à chaque cellule du maillage on fait correspondre un
|
||||||
cellule du même maillage, ce qui expose immédiatement la structure et la
|
cellule du même maillage, ce qui expose immédiatement la structure et la
|
||||||
régularité du pavage.
|
régularité du pavage.
|
||||||
|
|
||||||
% def générale
|
|
||||||
|
|
||||||
Le voisinage de Margolus est la règle de partitionnement du maillage d'un
|
Le voisinage de Margolus est la règle de partitionnement du maillage d'un
|
||||||
automate à blocs en une grille composée de blocs de $2$ cellules (ou en carrés
|
automate à blocs en une grille composée de blocs de $2$ cellules (ou en carrés
|
||||||
de $2\times 2$ cellules en deux dimensions, en cubes de $2\times 2\times 2$
|
de $2\times 2$ cellules en deux dimensions, en cubes de $2\times 2\times 2$
|
||||||
|
@ -1209,7 +1063,6 @@ automates à blocs):
|
||||||
\] et
|
\] et
|
||||||
\item shift est l'élément $\sum\limits_{i=1}^{n}{1\ g_i} \in M$.
|
\item shift est l'élément $\sum\limits_{i=1}^{n}{1\ g_i} \in M$.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
%restrictions
|
|
||||||
|
|
||||||
\begin{figure}[ht]
|
\begin{figure}[ht]
|
||||||
\centering
|
\centering
|
||||||
|
@ -1273,73 +1126,6 @@ extrémité de chaque indicateur, ce qui nous fournit le quadruplet $(\text{posN
|
||||||
\text{posS}, \text{posE}, \text{posW})$ de positions de coupe au nord, au sud à
|
\text{posS}, \text{posE}, \text{posW})$ de positions de coupe au nord, au sud à
|
||||||
l'est et à l'ouest respectivement.
|
l'est et à l'ouest respectivement.
|
||||||
|
|
||||||
%#trivial?
|
|
||||||
%\begin{algorithm}[h]
|
|
||||||
% \SetKwInOut{Input}{input}\SetKwInOut{Output}{output}
|
|
||||||
% \SetKwData{PosN}{posN}
|
|
||||||
% \SetKwData{PosS}{posS}
|
|
||||||
% \SetKwData{PosE}{posE}
|
|
||||||
% \SetKwData{PosW}{posW}
|
|
||||||
%
|
|
||||||
% \Input{Une bounding box de dimension $w \times h$ et deux indicateurs $c_w,c_h$}
|
|
||||||
% \Output{Un quadruplet de positions de découpe}
|
|
||||||
% $\PosN \gets \infty$,
|
|
||||||
% $\PosS \gets \infty$,
|
|
||||||
% $\PosE \gets \infty$,
|
|
||||||
% $\PosW \gets \infty$\;
|
|
||||||
%
|
|
||||||
% $i \gets 0$ \tcp*{Coupe ouest}
|
|
||||||
% \While{$i < w$}{
|
|
||||||
% \If{$c_h[i] = 1$}{
|
|
||||||
% $\PosW \gets i$\;
|
|
||||||
% break\;
|
|
||||||
% }
|
|
||||||
% $i \gets i + 1$\;
|
|
||||||
% }
|
|
||||||
% \tcp{...}
|
|
||||||
%\end{algorithm}
|
|
||||||
%\begin{algorithm}[h]
|
|
||||||
% \setcounter{AlgoLine}{12}
|
|
||||||
% \SetKwData{PosN}{posN}
|
|
||||||
% \SetKwData{PosS}{posS}
|
|
||||||
% \SetKwData{PosE}{posE}
|
|
||||||
% \SetKwData{PosW}{posW}
|
|
||||||
%
|
|
||||||
% \tcp{...}
|
|
||||||
%
|
|
||||||
% $i \gets w - 1$ \tcp*{Coupe est}
|
|
||||||
% \While{$i \ge 0$} {
|
|
||||||
% \If{$c_h[i] = 1$}{
|
|
||||||
% $\PosE \gets i$\;
|
|
||||||
% break\;
|
|
||||||
% }
|
|
||||||
% $i \gets i - 1$\;
|
|
||||||
% }
|
|
||||||
%
|
|
||||||
% $j \gets 0$ \tcp*{Coupe sud}
|
|
||||||
% \While{$j < h$}{
|
|
||||||
% \If{$c_w[j] = 1$}{
|
|
||||||
% $\PosS \gets j$\;
|
|
||||||
% break\;
|
|
||||||
% }
|
|
||||||
% $j \gets j + 1$\;
|
|
||||||
% }
|
|
||||||
%
|
|
||||||
% $j \gets h - 1$ \tcp*{Coupe nord}
|
|
||||||
% \While{$j \ge 0$}{
|
|
||||||
% \If{$c_w[j] = 1$}{
|
|
||||||
% $\PosN \gets j$\;
|
|
||||||
% break\;
|
|
||||||
% }
|
|
||||||
% $j \gets j - 1$\;
|
|
||||||
% }
|
|
||||||
%
|
|
||||||
% \Return (\PosN,\PosS,\PosE,\PosW)
|
|
||||||
% \caption{Détermination des indicateurs de coupe}
|
|
||||||
%\end{algorithm}
|
|
||||||
%L'instruction \textbf{break} sert à terminer la boucle courante immédiatement
|
|
||||||
%indiquant que la recherche termine au plus tôt.
|
|
||||||
|
|
||||||
La seconde partie de cet algorithme détermine la nouvelle dimension de la
|
La seconde partie de cet algorithme détermine la nouvelle dimension de la
|
||||||
bounding box, en prenant en compte les deux marges notée $d_c$ et $d_f$ et en
|
bounding box, en prenant en compte les deux marges notée $d_c$ et $d_f$ et en
|
||||||
fonction des positions de coupe déterminées auparavant. La fonction
|
fonction des positions de coupe déterminées auparavant. La fonction
|
||||||
|
@ -1554,18 +1340,6 @@ existe différentes méthodes pour approcher par des méthodes discrètes la
|
||||||
solution de l'équation~\ref{eq:reaction-diffusion-2D}. L'implémentation actuelle
|
solution de l'équation~\ref{eq:reaction-diffusion-2D}. L'implémentation actuelle
|
||||||
du simulateur utilise la méthode d'Euler, la méthode d'intégration numérique la
|
du simulateur utilise la méthode d'Euler, la méthode d'intégration numérique la
|
||||||
plus simple:
|
plus simple:
|
||||||
%\begin{align*}
|
|
||||||
% \displaystyle
|
|
||||||
% \varphi^{t + \Delta t}_{1,i,j} &= \Delta t\,\text{X}_1(\varphi^t_{1,i,j}, \varphi^t_{2,i,j})
|
|
||||||
% + \frac{\text{D}_1\Delta t}{(\Delta x)^2}
|
|
||||||
% (\varphi^t_{1,i-1,j} + \varphi^t_{1,i+1,j} + \varphi^t_{1,i,j-1} + \varphi^t_{1,i,j+1}
|
|
||||||
% - 4\varphi^t_{1,i,j})\\
|
|
||||||
% \displaystyle
|
|
||||||
% \varphi^{t + \Delta t}_{2,i,j} &= \Delta t\,\text{X}_2(\varphi^t_{1,i,j}, \varphi^t_{2,i,j})
|
|
||||||
% + \frac{\text{D}_2\Delta t}{(\Delta x)^2}
|
|
||||||
% (\varphi^t_{2,i-1,j} + \varphi^t_{2,i+1,j} + \varphi^t_{2,i,j-1} + \varphi^t_{2,i,j+1}
|
|
||||||
% - 4\varphi^t_{2,i,j})
|
|
||||||
%\end{align*}
|
|
||||||
\begin{align}\label{eq:num-int}
|
\begin{align}\label{eq:num-int}
|
||||||
\displaystyle
|
\displaystyle
|
||||||
\varphi^{t + \Delta t}_{k,i,j} &= \Delta t\,\text{X}_1(\varphi^t_{1,i,j}, \ldots, \varphi^t_{k,i,j})
|
\varphi^{t + \Delta t}_{k,i,j} &= \Delta t\,\text{X}_1(\varphi^t_{1,i,j}, \ldots, \varphi^t_{k,i,j})
|
||||||
|
@ -1585,11 +1359,6 @@ menés. En choisissant un $\Delta t$ suffisamment petit, en l'occurrence $\Delta
|
||||||
t = \num{0.01}$, nous avons pu reproduire des réactions chimiques classiques,
|
t = \num{0.01}$, nous avons pu reproduire des réactions chimiques classiques,
|
||||||
dont une réaction BZ (voir section~\ref{sec:bz}).
|
dont une réaction BZ (voir section~\ref{sec:bz}).
|
||||||
|
|
||||||
% However, cellular automata models cannot be calibrated and validated from real
|
|
||||||
% parameters (kinetic reaction rates and diffusion coefficients), as the
|
|
||||||
% physical and chemical mechanisms that characterize the observed phenomena are
|
|
||||||
% generally continuous models —
|
|
||||||
% https://taf.menf.in/_media/bibliographie/reaction-diffusion-calibration.pdf
|
|
||||||
|
|
||||||
\paragraph{Fonction de transition}
|
\paragraph{Fonction de transition}
|
||||||
\newcommand{\RTable}{\ensuremath{\mathit{RTable}}}
|
\newcommand{\RTable}{\ensuremath{\mathit{RTable}}}
|
||||||
|
@ -1663,14 +1432,6 @@ Fig.~\ref{fig:ecoli} droite). Son orientation est représentée de manière
|
||||||
équivalente, soit par un angle $t$, soit par un vecteur directeur $d =
|
équivalente, soit par un angle $t$, soit par un vecteur directeur $d =
|
||||||
(d_x,d_y)$ en prenant $d_x = \mathit{cos}(t)$ et $d_y = \mathit{sin}(t)$. La
|
(d_x,d_y)$ en prenant $d_x = \mathit{cos}(t)$ et $d_y = \mathit{sin}(t)$. La
|
||||||
longueur totale d'une bactérie est notée $L$ et sa surface $S$.
|
longueur totale d'une bactérie est notée $L$ et sa surface $S$.
|
||||||
%\[
|
|
||||||
% L = 2 \times (r + l)
|
|
||||||
%\]
|
|
||||||
%et sa surface est obtenue comme suit
|
|
||||||
%\begin{align*}
|
|
||||||
% S &= 2 r \times 2 l + \pi r^2\\
|
|
||||||
% &= 4 r l + \pi r^2
|
|
||||||
%\end{align*}
|
|
||||||
Nous ajoutons deux points $f=(f_x,f_y)$ et $b=(b_x,b_y)$ représentant respectivement l'avant et
|
Nous ajoutons deux points $f=(f_x,f_y)$ et $b=(b_x,b_y)$ représentant respectivement l'avant et
|
||||||
l'arrière de la bactérie
|
l'arrière de la bactérie
|
||||||
\begin{align*}
|
\begin{align*}
|
||||||
|
@ -1878,8 +1639,6 @@ par le moment d'inertie de chacune des bactéries
|
||||||
\orr{\omega}'_{2} = \orr{\omega}_{ac2} - (\orr{r}_2 \wedge j \orr{n}) / I_2
|
\orr{\omega}'_{2} = \orr{\omega}_{ac2} - (\orr{r}_2 \wedge j \orr{n}) / I_2
|
||||||
\end{equation*}
|
\end{equation*}
|
||||||
|
|
||||||
%http://www.myphysicslab.com/collision.html#resting_contact
|
|
||||||
|
|
||||||
\noindent
|
\noindent
|
||||||
Après résolution des équations précédentes pour $j$, on obtient
|
Après résolution des équations précédentes pour $j$, on obtient
|
||||||
\begin{equation*}
|
\begin{equation*}
|
||||||
|
@ -1943,12 +1702,6 @@ L'espace ainsi segmenté en cellules est une \emph{configuration}. Afin que notr
|
||||||
automate cellulaire soit complet, il nous reste à spécifier la fonction de
|
automate cellulaire soit complet, il nous reste à spécifier la fonction de
|
||||||
transition locale à utiliser pour mettre à jour cette configuration.
|
transition locale à utiliser pour mettre à jour cette configuration.
|
||||||
|
|
||||||
% $n\Slot[0][0] \gets \Evol($\\
|
|
||||||
% $0011,$\tcp*[f]{Cellule courante $A$}\\
|
|
||||||
% $0000,0001,0100,0110,$\\
|
|
||||||
% $1100,1001,1000,0010)$
|
|
||||||
% \;
|
|
||||||
|
|
||||||
\begin{algorithm}
|
\begin{algorithm}
|
||||||
\SetKwData{Evol}{evol}
|
\SetKwData{Evol}{evol}
|
||||||
\SetKwData{GCol}{getCollisions}
|
\SetKwData{GCol}{getCollisions}
|
||||||
|
@ -2072,7 +1825,6 @@ précédées de \ç|init| sont issues de l'initialisation de la simulation.
|
||||||
|
|
||||||
\Fn{\Evol(c: cell, H: configuration, E: configuration): cell}{
|
\Fn{\Evol(c: cell, H: configuration, E: configuration): cell}{
|
||||||
\For{$i$ \KwFrom $0$ \KwTo $\NBPC - 1$}{
|
\For{$i$ \KwFrom $0$ \KwTo $\NBPC - 1$}{
|
||||||
%(c[i].px - $H_0$.x)/$\Delta$ x + (c[i].py - $H_0$.y)/$\Delta$ x *
|
|
||||||
\tcp{Indice de la cellule de $H$ correspondant à la bactérie courante}
|
\tcp{Indice de la cellule de $H$ correspondant à la bactérie courante}
|
||||||
$j \gets projection(H,(c[i].px,c[i].py))$\;
|
$j \gets projection(H,(c[i].px,c[i].py))$\;
|
||||||
|
|
||||||
|
@ -2107,16 +1859,6 @@ simulation s'effectue de la façon suivante:
|
||||||
\end{enumerate}
|
\end{enumerate}
|
||||||
|
|
||||||
|
|
||||||
%Diffusion multi-échelle sur automate~\cite{hoekstra_complex_2010}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
%\subsection{Validation qualitative}
|
|
||||||
%Nous présentons dans cette section quelques validations qualitatives effectuées
|
|
||||||
%avec la version courante du simulateur. Pour chacune des simulations nous
|
|
||||||
%donnons son fichier de configuration \sbgp{} ainsi que des rendus graphique à
|
|
||||||
%différents moments de la simulation.l
|
|
||||||
|
|
||||||
\FloatBarrier
|
\FloatBarrier
|
||||||
\section{Mise en œuvre}\label{sec:mise-en-oeuvre}
|
\section{Mise en œuvre}\label{sec:mise-en-oeuvre}
|
||||||
Dans cette section nous présentons trois exemples de simulation avec \otb. Pour
|
Dans cette section nous présentons trois exemples de simulation avec \otb. Pour
|
||||||
|
@ -2182,9 +1924,7 @@ conformément aux réactions BZ effectuées en boîte de Petri.
|
||||||
vert et le bleu au cours du temps}
|
vert et le bleu au cours du temps}
|
||||||
\label{fig:reaction-BZ}
|
\label{fig:reaction-BZ}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
%DONE: (WONTFIX) rapport temps réel/temps simulé
|
|
||||||
|
|
||||||
% Physique sectorisation!
|
|
||||||
\subsection{Sectorisation d'une population de \ecoli{}}
|
\subsection{Sectorisation d'une population de \ecoli{}}
|
||||||
Pour la validation du moteur physique, nous avons reproduit une expérience de la
|
Pour la validation du moteur physique, nous avons reproduit une expérience de la
|
||||||
littérature~\cite{hallatschek_genetic_2007}. Dans cet article, les auteurs
|
littérature~\cite{hallatschek_genetic_2007}. Dans cet article, les auteurs
|
||||||
|
@ -2405,20 +2145,12 @@ De nos travaux sur \otb nous tirons deux résultats:
|
||||||
et pourrait donc aisément être adapté à d'autres types de population.
|
et pourrait donc aisément être adapté à d'autres types de population.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
% Retour critique
|
|
||||||
|
|
||||||
|
|
||||||
\subsection{Perspectives}
|
\subsection{Perspectives}
|
||||||
Nos travaux futurs s'articulent autour des grands axes suivants, dont
|
Nos travaux futurs s'articulent autour des grands axes suivants, dont
|
||||||
l'objectif principal est la pérennisation d'\otb comme outil de simulation:
|
l'objectif principal est la pérennisation d'\otb comme outil de simulation:
|
||||||
|
|
||||||
\begin{description}
|
\begin{description}
|
||||||
|
|
||||||
% Effectuer des test de précision pour valider l'écart par rapport à une
|
|
||||||
% expérience in vivo.
|
|
||||||
% Implémenter plus de modèles (reprendre les exemples de jonathan)
|
|
||||||
% Collaborer avec des équipes de chercheurs dans les sciences du vivant
|
|
||||||
% s'intéressant à la morphogénèse.
|
|
||||||
\item[Calibration]
|
\item[Calibration]
|
||||||
Nous projetons de comparer les résultats de simulation avec des résultats
|
Nous projetons de comparer les résultats de simulation avec des résultats
|
||||||
d'expériences \emph{in vivo} connus afin d'étalonner au mieux les moteurs
|
d'expériences \emph{in vivo} connus afin d'étalonner au mieux les moteurs
|
||||||
|
@ -2430,8 +2162,6 @@ l'objectif principal est la pérennisation d'\otb comme outil de simulation:
|
||||||
à la morphogénèse ou plus largement aux dynamiques d'une population de
|
à la morphogénèse ou plus largement aux dynamiques d'une population de
|
||||||
bactéries.
|
bactéries.
|
||||||
|
|
||||||
% Effectuer des test de performance pour valider l'efficacité de l'algorithme
|
|
||||||
% par rapport à GRO
|
|
||||||
\item[Performance]
|
\item[Performance]
|
||||||
La performance actuelle du simulateur \otb provient principalement d'une
|
La performance actuelle du simulateur \otb provient principalement d'une
|
||||||
planification en amont de sa conception. Il est encore possible d'améliorer
|
planification en amont de sa conception. Il est encore possible d'améliorer
|
||||||
|
@ -2444,7 +2174,6 @@ l'objectif principal est la pérennisation d'\otb comme outil de simulation:
|
||||||
\otb par rapport à d'autres simulateurs de population de bactéries comme
|
\otb par rapport à d'autres simulateurs de population de bactéries comme
|
||||||
\gro~\cite{jang_specification_2012}.
|
\gro~\cite{jang_specification_2012}.
|
||||||
|
|
||||||
% Retravailler le GUI
|
|
||||||
\item[Interface de sortie]
|
\item[Interface de sortie]
|
||||||
L'interface utilisateur de \otb est à ce jour rudimentaire. Pour qu'un plus
|
L'interface utilisateur de \otb est à ce jour rudimentaire. Pour qu'un plus
|
||||||
grand nombre d'utilisateurs puissent utiliser le simulateur au quotidien
|
grand nombre d'utilisateurs puissent utiliser le simulateur au quotidien
|
||||||
|
@ -2456,7 +2185,7 @@ l'objectif principal est la pérennisation d'\otb comme outil de simulation:
|
||||||
des mesures quantitatives agrégées sous forme de graphes en fonction du
|
des mesures quantitatives agrégées sous forme de graphes en fonction du
|
||||||
temps de la simulation comme, par exemple, l'orientation moyenne des
|
temps de la simulation comme, par exemple, l'orientation moyenne des
|
||||||
bactéries, leur nombre, leur taille moyenne, leur volume moyen, etc.
|
bactéries, leur nombre, leur taille moyenne, leur volume moyen, etc.
|
||||||
% Refaire l'interface d'entrée
|
|
||||||
\item[Interface d'entrée]
|
\item[Interface d'entrée]
|
||||||
La description d'une simulation par un fichier \sbgp{} peut encore être
|
La description d'une simulation par un fichier \sbgp{} peut encore être
|
||||||
améliorée. Il est d'abord nécessaire d'optimiser le contenu de ce fichier
|
améliorée. Il est d'abord nécessaire d'optimiser le contenu de ce fichier
|
||||||
|
@ -2467,10 +2196,6 @@ l'objectif principal est la pérennisation d'\otb comme outil de simulation:
|
||||||
interface graphique regroupant les interfaces d'entrée et de sortie pour un
|
interface graphique regroupant les interfaces d'entrée et de sortie pour un
|
||||||
usage plus intuitif.
|
usage plus intuitif.
|
||||||
|
|
||||||
% Étendre les types de bactéries supportées, déjà d'autres types du genre
|
|
||||||
% bacillus (en testant diplobacilli, streptobacilli, …) voir d'autres formes
|
|
||||||
% (Cocci)
|
|
||||||
% https://upload.wikimedia.org/wikipedia/commons/6/69/Bacterial_morphology_diagram.svg
|
|
||||||
\item[Formes de bactérie]
|
\item[Formes de bactérie]
|
||||||
De part sa conception, \otb est modulaire et extensible. Une piste
|
De part sa conception, \otb est modulaire et extensible. Une piste
|
||||||
de travail futur est l'exploration de la simulation d'autre formes de
|
de travail futur est l'exploration de la simulation d'autre formes de
|
||||||
|
@ -2481,7 +2206,6 @@ l'objectif principal est la pérennisation d'\otb comme outil de simulation:
|
||||||
pour les bactéries bacillaires. Ces développements se feront également en
|
pour les bactéries bacillaires. Ces développements se feront également en
|
||||||
lien avec le point «Calibration» en fonction des besoins.
|
lien avec le point «Calibration» en fonction des besoins.
|
||||||
|
|
||||||
% Passer à l'hexagonal
|
|
||||||
\item[Grille hexagonale]
|
\item[Grille hexagonale]
|
||||||
Une propriété des grilles hexagonales est que toutes les cellules ont un
|
Une propriété des grilles hexagonales est que toutes les cellules ont un
|
||||||
bord en commun et leur centres sont équidistants (ce qui n'est pas le cas
|
bord en commun et leur centres sont équidistants (ce qui n'est pas le cas
|
||||||
|
@ -2491,7 +2215,6 @@ l'objectif principal est la pérennisation d'\otb comme outil de simulation:
|
||||||
de la méthode d'intégration actuelle du moteur chimique et du calcul de
|
de la méthode d'intégration actuelle du moteur chimique et du calcul de
|
||||||
collision du moteur physique.
|
collision du moteur physique.
|
||||||
|
|
||||||
% Collection topologique OTB
|
|
||||||
\item[\mgs]
|
\item[\mgs]
|
||||||
Dans le point «Interface d'entrée» nous avons indiqué qu'il était
|
Dans le point «Interface d'entrée» nous avons indiqué qu'il était
|
||||||
envisageable qu'un programme externe serve d'interface de contrôle pour
|
envisageable qu'un programme externe serve d'interface de contrôle pour
|
||||||
|
@ -2504,209 +2227,3 @@ l'objectif principal est la pérennisation d'\otb comme outil de simulation:
|
||||||
|
|
||||||
\end{description}
|
\end{description}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
%TODO: maybe? Citer Dugovson
|
|
||||||
|
|
||||||
% Fakesection \section{Simulation physique}
|
|
||||||
%%Première partie physique moteur de collision etc
|
|
||||||
%L'efficacité de \tb\ repose sur sa simulation en parallèle sur plusieurs
|
|
||||||
%cœurs de calcul. Deux niveaux de description sont identifiables : le niveau
|
|
||||||
%dynamique dans lequel les bactéries se déplacent, entrent en collision,
|
|
||||||
%se repoussent et tournent sur elles-même ; le niveau chimique duquel les
|
|
||||||
%bactéries consomment des morphogènes, dans lequel elles déposent des
|
|
||||||
%morphogènes et dans lequel les morphogènes se diffusent et réagissent.
|
|
||||||
%Afin que la simulation soit la plus efficace possible, des techniques de
|
|
||||||
%programmation sur GPU ont été employées et un algorithme sur mesure de calcul
|
|
||||||
%parallèle a été développé.
|
|
||||||
%
|
|
||||||
%
|
|
||||||
%
|
|
||||||
%
|
|
||||||
%
|
|
||||||
%
|
|
||||||
%
|
|
||||||
%
|
|
||||||
%
|
|
||||||
%%Comment calculer en parallèle une simulation physique ?
|
|
||||||
%\subsection{Automates réversibles et voisinage de Margolus}
|
|
||||||
%Notre algorithme a été développé à partir des constats suivants : pour
|
|
||||||
%simuler l'évolution d'objets soumis à des lois physiques (collisions,
|
|
||||||
%forces) il nous faut un modèle de calcul proche de la physique et dans le
|
|
||||||
%même temps, pour que la simulation soit rapide, il nous faut un modèle de
|
|
||||||
%calcul parallélisable, c'est à dire qui partitionne l'espace de calcul en
|
|
||||||
%«briques» indépendante en terme de données pour être envoyée sur un
|
|
||||||
%périphérique de calcul comprenant du nombreuses unités de calcul (GPU, CPU
|
|
||||||
%multi-cœur, …).
|
|
||||||
%
|
|
||||||
%Le modèle de calcul des automates cellulaires (\ac), en plus du fait d'être
|
|
||||||
%naturellement parallèle, semble particulièrement bien adapté à la
|
|
||||||
%simulation physique. Les concepts de temps et d'espace y sont naturellement
|
|
||||||
%présents et les \ac\ respectent quelques propriétés attendues des lois
|
|
||||||
%physiques comme l'\emph{uniformité} et la \emph{localité}. La plupart
|
|
||||||
%des lois physiques sont \emph{réversibles}, cependant, en général un
|
|
||||||
%\ca\ ne l'est pas ; ce sujet a été largement abordé dans la litérature
|
|
||||||
%\cite{margolus_physics-like_1984,truc,bidule}.
|
|
||||||
%%Voisinage de margolus
|
|
||||||
%Margolus établit à partir d'un voisinage particulier les conditions sur les
|
|
||||||
%fonctions de transition dans lequel les automates cellulaires sont réversibles,
|
|
||||||
%appelé voisinage de Margolus (voir figure \ref{fig:margolus-neighborgood}).
|
|
||||||
%Au delà de la motivation principale de l'auteur, le voisinage de Margolus
|
|
||||||
%présente la particularité de pouvoir être utilisé pour simuler n'importe
|
|
||||||
%quel automate sans avoir recours à une technique de double-buffering.
|
|
||||||
%
|
|
||||||
%\begin{figure}[t]
|
|
||||||
% \centering
|
|
||||||
% \includegraphics[page=1,width=.4\textwidth]{figures/ca-neighborhood}\hspace{1cm}
|
|
||||||
% \includegraphics[page=2,width=.4\textwidth]{figures/ca-neighborhood}
|
|
||||||
% \caption{Voisinage classique (à gauche) et voisinage de Margolus (à droite)
|
|
||||||
% d'un automate cellulaire 1D. Chaque ligne correspond à un pas dans la
|
|
||||||
% simulation de l'automate, de haut en bas.}
|
|
||||||
% \label{fig:margolus-neighborgood}
|
|
||||||
%\end{figure}
|
|
||||||
%
|
|
||||||
%\subsection{Voisinage de Moore et moteur physique}
|
|
||||||
%\begin{figure}[t]
|
|
||||||
% \centering
|
|
||||||
% \includegraphics[page=2,width=.4\textwidth]{figures/margolus}\hspace{1cm}%
|
|
||||||
% \includegraphics[page=3,width=.4\textwidth]{figures/margolus}
|
|
||||||
% \caption{Voisinage de Margolus (au centre, en noir) d'un automate cellulaire
|
|
||||||
% en deux dimensions dont les cellules sont en gris. Division de l'état des
|
|
||||||
% cellules en quatre sous-partie (à droite), dont trois contiennent une copie
|
|
||||||
% du contenu des cellules voisines. La sous-partie principale est en blanc sur
|
|
||||||
% fond noir et contient l'état de la cellule. Les états de quatre cellules
|
|
||||||
% sont donnés}
|
|
||||||
% \label{fig:margolus-grid}
|
|
||||||
%\end{figure}
|
|
||||||
%
|
|
||||||
%Cet algorithme fonctionne de la manière suivante : à chaque pas, la grille
|
|
||||||
%de l'automate est découpée en blocs de $2 \times 2$ cellules qui sont
|
|
||||||
%ensuite calculés indépendamment les uns des autres, voir les figures
|
|
||||||
%\ref{fig:margolus-grid} ; au pas suivant, un nouveau découpage de blocs de $2
|
|
||||||
%\times 2$ cellules, décalé de $(1,1)$ par rapport au découpage précédent,
|
|
||||||
%est effectué et l'opération recommence. Cette manière de découper une grille
|
|
||||||
%d'automate est introduite par Margolus dans \cite{margolus_physics-like_1984} et
|
|
||||||
%\cite{toffoli_cellular_1987}, où il présente un automate découpé en blocs
|
|
||||||
%obéissant à la loi de conservation locale où chaque transition conserve les
|
|
||||||
%proportions d'états, ce voisinage est communément connu comme « voisinage de
|
|
||||||
%Margolus ».
|
|
||||||
%
|
|
||||||
%Les automates cellulaires sont un modèle de calcul intrinsèquement parallèle,
|
|
||||||
%néammoins, mettre à jour une cellule requiert d'aller lire les cellules
|
|
||||||
%voisines, ce qui cause en pratique des collision de lecture, des lectures
|
|
||||||
%multiples et oblige finalement à accompagner chaque cellule de son voisinage
|
|
||||||
%pour le calcul. Afin de pouvoir rendre autonome le calcul de chaque bloc
|
|
||||||
%dans un voisinage de Margolus, les valeurs des douze cellules voisines sont
|
|
||||||
%copiées (voir figure \ref{fig:margolus-grid}) au sein de chaque état de
|
|
||||||
%chaque cellule d'un bloc de Margolus. Une technique similaire est employée par
|
|
||||||
%\cite{morita_computation_1989} ; cependant, leur but n'est pas tant d'améliorer
|
|
||||||
%la localité des données, mais de montrer l'universalité d'un automate
|
|
||||||
%cellulaire unidimensionnel réversible en réponse à une conjecture de Toffoli.
|
|
||||||
%
|
|
||||||
%\begin{figure}[t]
|
|
||||||
% \centering
|
|
||||||
% \centerline{%
|
|
||||||
% \includegraphics[page=4,width=.4\linewidth]{figures/margolus}
|
|
||||||
% \includegraphics[page=5,width=.4\linewidth]{figures/margolus}
|
|
||||||
% \includegraphics[page=6,width=.4\linewidth]{figures/margolus}}
|
|
||||||
% \caption{Détail des tâches effectuées avant un décalage de grille}
|
|
||||||
% \label{fig:margolus-inter}
|
|
||||||
%\end{figure}
|
|
||||||
%
|
|
||||||
%Le reste de la procédure est, à notre connaissance, complètement originale.
|
|
||||||
%Avant le décalage de la grille suivant, les états des cellules sont mis à
|
|
||||||
%jour avec les « bonnes » valeurs pour pouvoir poursuivre le calcul. Pour
|
|
||||||
%commencer, la sous-partie principale des quatre cellules du bloc est mis à jour
|
|
||||||
%indépendamment des autres blocs grâce à la recopie précédente des états
|
|
||||||
%des voisins (figure \ref{fig:margolus-inter} gauche). Ensuite, chaque cadran
|
|
||||||
%est rempli de la manière suivante : l'état à jour de la cellule est recopié
|
|
||||||
%dans le coin extérieur qui et les trois autres reçoivent une copie des états
|
|
||||||
%des nouvelles voisines (figure \ref{fig:margolus-inter} centre). Après cette
|
|
||||||
%mise à jour, on constate que les quatre nouveaux blocs sont identiques (figure
|
|
||||||
%\ref{fig:margolus-inter} droite), à ceci près que la sous-partie principale de
|
|
||||||
%la cellule est différente suivant la cellule ; il suffit donc de calculer les
|
|
||||||
%mises à jour de chaque cellule puis de recopier quatre fois la même cellule
|
|
||||||
%pour obtenir le bloc mis à jour.
|
|
||||||
%
|
|
||||||
%\subsection{Voisinage de Von Neuman et moteur de réaction-diffusion}
|
|
||||||
%
|
|
||||||
%
|
|
||||||
%% Publication de OTB, test de charge, cahier des charges…
|
|
||||||
%%
|
|
||||||
%% Modélisation discrète, continue.
|
|
||||||
%%
|
|
||||||
%% Le modèle est continu, implémentation discrète
|
|
||||||
%%
|
|
||||||
%% Partie associée : modélisation MGS qui montre comment les deux modèles
|
|
||||||
%% communiquent.
|
|
||||||
%%
|
|
||||||
%% Montrer qu'on est coincé car le couplage est important : problématique de
|
|
||||||
%% multi-modèle.
|
|
||||||
%%
|
|
||||||
%% Valoriser les algos développés
|
|
||||||
%%
|
|
||||||
%% Montrer
|
|
||||||
%%
|
|
||||||
%% Corps
|
|
||||||
%%
|
|
||||||
%% Margolus, bench (on y gagne)
|
|
||||||
%%
|
|
||||||
%% Rapport avec techniques d'optimisation noir/rouge
|
|
||||||
%%
|
|
||||||
%% Approche particulière par rapport au multi-agent : On aurait tendance à faire
|
|
||||||
%% un tableau de bactérie qui se met à jour (problème de voisinage, problème de
|
|
||||||
%% création de bact). Optim, oc-tree, AABB, etc. mais pas facile sur GPU. Du
|
|
||||||
%% coup on utilise des collections à la margolus.
|
|
||||||
%%
|
|
||||||
%% 50% d'encadrement Romain dans lequel a été développé l'algo de collision.
|
|
||||||
%%
|
|
||||||
%%
|
|
||||||
%\section{Organisation logicielle du simulateur}
|
|
||||||
%% Organisation logicielle : valoriser l'architecture, interfacement MGS, collection TB
|
|
||||||
%Présentation des différentes briques logicielles de TB. On utilise \ocaml
|
|
||||||
%car langage haut niveau, bien typé et facilement interfaçable en C.
|
|
||||||
%
|
|
||||||
%Interfaces bas niveau vers OpenCL et OpenGL
|
|
||||||
%
|
|
||||||
%Schéma de l'architecture haut niveau, liens entre les modules
|
|
||||||
%%
|
|
||||||
%\section{Collection topologique et OTB}
|
|
||||||
%% Collection TB, présentation formelle des deux collections et comment on les
|
|
||||||
%% fait marcher ensemble.
|
|
||||||
%%
|
|
||||||
%% Reprendre le rapport de stage de GRO et faire pareil dans un chapitre.
|
|
||||||
%%
|
|
||||||
%% Lien avec symbiotique
|
|
||||||
%%
|
|
||||||
%% Lien avec multi-niveau
|
|
||||||
%%
|
|
||||||
%% Conclusion et perspectives
|
|
||||||
%%
|
|
||||||
%% Passer à l'hexagonal
|
|
||||||
%
|
|
||||||
|
|
64
resume.tex
64
resume.tex
|
@ -42,109 +42,45 @@ modèle chimique, qui décrit la réaction et la diffusion des morphogènes, et
|
||||||
modèle de prise de décision, qui décrit l'interaction entre les bactéries et
|
modèle de prise de décision, qui décrit l'interaction entre les bactéries et
|
||||||
leur support.
|
leur support.
|
||||||
}
|
}
|
||||||
% Abstraction
|
|
||||||
% Activité spatiale
|
|
||||||
% Automate cellulaire
|
|
||||||
% Collection topologique
|
|
||||||
% Complexe
|
|
||||||
% Comportement
|
|
||||||
% Composition
|
|
||||||
% E. Coli
|
|
||||||
% Formalisme
|
|
||||||
% MGS
|
|
||||||
% Modèle
|
|
||||||
% Modéliser
|
|
||||||
% Multi-niveau
|
|
||||||
% PPM
|
|
||||||
% Parallèle
|
|
||||||
% Point de vue
|
|
||||||
% Programmation spatiale
|
|
||||||
% Relation
|
|
||||||
% Simulation
|
|
||||||
% Système
|
|
||||||
% Transformation
|
|
||||||
% Validation
|
|
||||||
%
|
%
|
||||||
\begin{center}
|
\begin{center}
|
||||||
\huge\textsc{Abstract}
|
\huge\textsc{Abstract}
|
||||||
\end{center}
|
\end{center}
|
||||||
\begin{english}
|
\begin{english}
|
||||||
\small
|
\small
|
||||||
%La description et la compréhension d'un système passe souvent par la
|
|
||||||
%construction d'un modèle mathématique.
|
|
||||||
We often build mathematical models to describe and understand what a system
|
We often build mathematical models to describe and understand what a system
|
||||||
does.
|
does.
|
||||||
%Ce dernier constitue un point de vue
|
|
||||||
%particulier sur le système (structurel, dynamique, etc.).
|
|
||||||
Each model gives a specific point of view on the system (structure, dynamics,
|
Each model gives a specific point of view on the system (structure, dynamics,
|
||||||
etc.).
|
etc.).
|
||||||
%Constituer des modèles plus complets, c'est-à-dire multi-point-de-vue atteint
|
|
||||||
%rapidement les limites des formalismes qui les supportent.
|
|
||||||
Building more comprehensive models that encompass many different points of view
|
Building more comprehensive models that encompass many different points of view
|
||||||
is limited by the formalism they are written in.
|
is limited by the formalism they are written in.
|
||||||
%Une solution alternative passe par le couplage de plusieurs modèles «simples».
|
|
||||||
Coupling “simple” models to form a bigger one is an alternative.
|
Coupling “simple” models to form a bigger one is an alternative.
|
||||||
%Dans le cas où chaque modèle correspond à un niveau de description du système,
|
|
||||||
%comme le niveau de la molécule, le niveau de la cellule, le niveau de l'organe,
|
|
||||||
%pour un système biologique, nous parlerons de modélisation multi-niveau.
|
|
||||||
If each model corresponds to a level of description of the system, e.g., the
|
If each model corresponds to a level of description of the system, e.g., the
|
||||||
molecular level, the cellular level, the organ level in biology, then we call
|
molecular level, the cellular level, the organ level in biology, then we call
|
||||||
this technique multi-level modelling.
|
this technique multi-level modelling.
|
||||||
%Ces niveaux sont organisés et interagissent.
|
|
||||||
Levels of description are organized and interact with each other.
|
Levels of description are organized and interact with each other.
|
||||||
%Nous pensons que la modélisation multi-niveau ouvre une voie satisfaisante pour
|
|
||||||
%l'étude des systèmes complexes, traditionnellement durs à modéliser.
|
|
||||||
We think that multi-level modelling is a promising technique to model complex
|
We think that multi-level modelling is a promising technique to model complex
|
||||||
systems, which are known to be difficult to model.
|
systems, which are known to be difficult to model.
|
||||||
%%
|
|
||||||
%Nous explorons trois voies pour la compréhension du fonctionnement de ces
|
|
||||||
%modèles en nous restreignant à la question de la relation entre global et
|
|
||||||
%local, c'est à dire entre l'individu et la population.
|
|
||||||
%To investigate the link between local and global properties, for instance
|
|
||||||
%an entity and its population, which is a case of classical complex systems'
|
|
||||||
%problems, we have opened three distinct research tracks.
|
|
||||||
We have opened three distinct research tracks to investigate the link between
|
We have opened three distinct research tracks to investigate the link between
|
||||||
local and global properties, for instance between those of an entity and its
|
local and global properties, for instance between those of an entity and its
|
||||||
population — a classical opposition in complex systems.
|
population — a classical opposition in complex systems.
|
||||||
%La première voie est formelle et passe par la définition mathématique de
|
|
||||||
%«modèle» indépendamment du formalisme qui le supporte, par la présentation
|
|
||||||
%des différents types de modèles que l'on peut construire et par la définition
|
|
||||||
%explicite des relations qu'ils entretiennent.
|
|
||||||
On the first track, we give precise definitions of a model — independently
|
On the first track, we give precise definitions of a model — independently
|
||||||
of its underlying formalism, of a system and of some of the relations models
|
of its underlying formalism, of a system and of some of the relations models
|
||||||
have (validation, abstraction, composition).
|
have (validation, abstraction, composition).
|
||||||
%We also introduce different kinds of models and how they relate to their
|
|
||||||
%classical definition (dynamic models, spatial models, and so on).
|
|
||||||
We also introduce different classes of models and show how they relate to some
|
We also introduce different classes of models and show how they relate to some
|
||||||
classical definitions (dynamic models, spatial models, etc.)
|
classical definitions (dynamic models, spatial models, etc.)
|
||||||
%%
|
%%
|
||||||
%La seconde voie est portée par l'activité, définie dans le cadre de \mgs, un
|
|
||||||
%langage de programmation spatiale, dont le modèle de calcul est fondé sur la
|
|
||||||
%réécriture topologique des collections topologiques au moyen de transformations.
|
|
||||||
On the second track, we look at \mgs, a spatial programming language based on
|
On the second track, we look at \mgs, a spatial programming language based on
|
||||||
the rewriting of topological collections by means of transformation functions.
|
the rewriting of topological collections by means of transformation functions.
|
||||||
%Nous fournissons une méthode constructive pour l'obtention d'une description
|
|
||||||
%de plus haut niveau (une abstraction) des systèmes étudiés en déterminant
|
|
||||||
%automatiquement quelle est la sous-collection active sans la nécessité de faire
|
|
||||||
%référence à la sous-collection quiescente.
|
|
||||||
We present a constructive method giving us access to a higher level of
|
We present a constructive method giving us access to a higher level of
|
||||||
description of the system (an abstraction). This method automatically computes
|
description of the system (an abstraction). This method automatically computes
|
||||||
the active sub-collection of a model, without any knowledge about the quiescent
|
the active sub-collection of a model, without any knowledge about the quiescent
|
||||||
sub-collection, and follows it for each time step.
|
sub-collection, and follows it for each time step.
|
||||||
%%
|
%%
|
||||||
%La dernière voie est pratique, elle passe par programmation de \otb, un outil
|
|
||||||
%de simulation parallèle pour l'étude de la morphogénèse dans une population
|
|
||||||
%de bactéries \ecoli, pour lequel nous avons conçu un algorithme générique de
|
|
||||||
%calcul parallèle, adapté aux cartes graphiques grand public.
|
|
||||||
Finally, on the third track, we present \otb, a parallel simulator for the
|
Finally, on the third track, we present \otb, a parallel simulator for the
|
||||||
study of morphogenesis in a population of \ecoli bacteria. We provide a generic
|
study of morphogenesis in a population of \ecoli bacteria. We provide a generic
|
||||||
algorithm for the parallel simulation of two-dimensional cellular automata
|
algorithm for the parallel simulation of two-dimensional cellular automata
|
||||||
on general-purpose graphics cards.
|
on general-purpose graphics cards.
|
||||||
%Le modèle embarqué dans \otb est correspond au couplage de trois modèles
|
|
||||||
%correspondant chacun à un niveau de description du système: le modèle physique,
|
|
||||||
%qui décrit la dynamique des collisions entre bactéries, le modèle chimique, qui
|
|
||||||
%décrit la réaction et la diffusion des morphogènes, et le modèle de prise de
|
|
||||||
%décision, qui décrit l'interaction entre les bactéries et leur support.
|
|
||||||
\otb itself is built around a multi-level model for the population of bacteria.
|
\otb itself is built around a multi-level model for the population of bacteria.
|
||||||
This model is the result of the coupling of three “simple” (base) models: a
|
This model is the result of the coupling of three “simple” (base) models: a
|
||||||
physical model, describing how bacteria collide, a chemical model, describing
|
physical model, describing how bacteria collide, a chemical model, describing
|
||||||
|
|
Loading…
Reference in a new issue