From d74d3cd2906b39090cb8790f4da0f251f8b4b740 Mon Sep 17 00:00:00 2001 From: Martin Potier Date: Sat, 8 Jul 2017 18:46:08 +0200 Subject: [PATCH] Cleanup --- common-headers.tex | 38 -- partie-activite.tex | 348 ------------ partie-conclusion.tex | 13 - partie-introduction.tex | 336 ----------- partie-multi-modele.tex | 1179 +-------------------------------------- partie-otb.tex | 485 +--------------- resume.tex | 64 --- 7 files changed, 2 insertions(+), 2461 deletions(-) diff --git a/common-headers.tex b/common-headers.tex index 589b691..dbff1a4 100644 --- a/common-headers.tex +++ b/common-headers.tex @@ -25,7 +25,6 @@ BoldFont = *-RB , ItalicFont = *-RI , BoldItalicFont = *-RBI ] -%\setsansfont {Linux Biolinum O} \setsansfont{LinBiolinum}[ Path = fonts/ , Extension = .otf , @@ -33,7 +32,6 @@ BoldFont = *-RB , ItalicFont = *-RI ] -%\setmonofont {Fantasque Sans Mono} \setmonofont{FantasqueSansMono}[ Path = fonts/ , Extension = .ttf , @@ -42,7 +40,6 @@ ItalicFont = *-Italic , BoldItalicFont = *-BoldItalic ] -%\setmathfont[mathbf=sym] {Asana Math} \setmathfont[mathbf=sym] {Asana-Math}[ Path = fonts/ , Extension = .otf ] @@ -100,40 +97,5 @@ \definecolor{cyan} {HTML}{2aa198} \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 -%\let\oldemptyset\emptyset \let\emptyset\varnothing diff --git a/partie-activite.tex b/partie-activite.tex index 094f586..0a35ae4 100644 --- a/partie-activite.tex +++ b/partie-activite.tex @@ -2,8 +2,6 @@ \minitoc \section{Introduction} -% D'où activité ? -% C'est quoi le contexte Nous commencerons cette partie en introduisant la notion d'activité, ses 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 quelle proportion. -% DONE: ajouter la définition de l'activité en économie \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 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 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 remarques suivantes: \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 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} \label{sec:cca} 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$. \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) 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 » @@ -303,8 +278,6 @@ $\left\{ \sigma \in \ccaK \mid \exists \tau \in S,\: \tau \preceq \sigma \label{fig:operateurs} \end{figure} % -% Voisinage et chemin -% n-squelette (pas utile) \section[\mgs{} et \dsds]{\mgs{} : un langage dédié à la modélisation et à la simulation des \dsds} @@ -436,19 +409,6 @@ sous-jacent. Cette remarque prendra du sens dans la 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) \cite{giavitto_group-based_1996, spicher_topological_2004} sont une collection 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 de les suivre lors des simulations. \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 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 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 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 @@ -680,33 +622,6 @@ du feu de forêt. \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é} 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 \emph{automate complexe}~\cite{hoekstra_towards_2007} qui correspond à un « 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 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 \emph{points critiques} -- où le liquide révèle des bassins, des cols, des îles 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} \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 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 des cellules de l'\ac\ est partagé entre les cellules actives qui prennent 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{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-normal22} \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$. \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. 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 @@ -1326,9 +1003,6 @@ certaines cellules deviennent actives, d'autres deviennent quiescentes. \end{algorithm} \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 d'activité $P$ pour déterminer quelles cellules sont actives, soit restant active 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} 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}: -%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} \begin{MGScode} 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 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 diff --git a/partie-conclusion.tex b/partie-conclusion.tex index ef62c1d..6e1430f 100644 --- a/partie-conclusion.tex +++ b/partie-conclusion.tex @@ -2,19 +2,6 @@ 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. -% 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} diff --git a/partie-introduction.tex b/partie-introduction.tex index 3ce20e7..b0e5a94 100644 --- a/partie-introduction.tex +++ b/partie-introduction.tex @@ -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 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 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 @@ -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 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 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 @@ -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 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.} 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 définitions précédentes mettant en lumière les relations existantes entre quatre 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} 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 \opencl» duquel la toute première version de \otb est issu. \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. diff --git a/partie-multi-modele.tex b/partie-multi-modele.tex index 50f87d6..48607c4 100644 --- a/partie-multi-modele.tex +++ b/partie-multi-modele.tex @@ -1,6 +1,3 @@ -% Individu multi-optimisé (écologie) -% Patrick Coquillard - \chapter{Modèles et modélisation multi-niveau}\label{chap:partie-multi-modele} \minitoc @@ -21,17 +18,6 @@ des \emph{systèmes complexes}, dans de nombreuses disciplines: \item pour la complexification de modèles dans les Cellular Non-linear Networks (\cnn, en électronique), ou dans les Memory Evolutive Neural Systems (\mens, en mathématiques), ces deux exemples étant présentés dans la section suivante. -%\item l'unification de la théorie de la relativité générale et de la théorie des -% quanta, deux modèles de la physique moderne dont les fondements sont -% incompatibles; -% -%\item l'établissement d'un modèle complet d'un organisme multicellulaire, -% incorporant toutes les connaissances disponibles à son sujet; -% -%\item l'étude des liens existants entre un individu et sa population, par le -% biais d'un modèle exhaustif et constructif, que ce soit dans les sciences -% sociales ou en biologie pour les liens entre cellules et organes, organes et -% organismes; etc. \end{itemize} %% @@ -55,8 +41,6 @@ de niveau de description. Nous partirons donc d'une définition très générale modèles qui sera raffinée pour correspondre à des modèles existants et mettre en lumière les différences et similarités entre ces formalismes. % -%Un modèle est une représentation abstraite d'un système, -% Nous nous intéressons exclusivement aux modèles formels, c'est-à-dire des modèles donnés sous la forme d'une définition utilisant le langage des mathématiques et pouvant potentiellement être calculés par un programme @@ -109,9 +93,6 @@ déterministes, et décrivent des dynamiques dans le domaine continu. \draw[arc] (HH) to node {\cite{abarbanel_synchronisation_1996}} (C90); \draw[arc] (GGG) to node {\cite{golomb_reduction_1993}} (G); -% subgraph clusterTimeDiscrete { -% Rulkov -> RoseHindmarsh % Hinted in Rulkov ("using the same approach") -% [style=dashed]; % Discrete -> Continuous (change in time) \end{tikzpicture} \caption{Revue de quelques modèles de neurones. Nous avons fait pointer informellement les flèches vers les modèles ayant un «niveau de détail» plus @@ -163,9 +144,6 @@ les points de vue et obtenir une description plus complète du système. Dans le deux cas également, un changement d'échelle s'opère, entre les considérations micro(scopiques) des modèles élémentaires, et le niveau macro(scopique) du système étudié. -% Chapeau: modèles ensembles sur le même pied d'égalité. 1) modélisation -% intégrative de cellule entière, 2) modélisation en géographie de la croissance -% des villes \subsubsection{Modélisation intégrative d'une cellule entière} %% @@ -238,7 +216,6 @@ points, les suivants, attireront plus particulièrement notre attention car ils \end{description} \subsubsection{Modélisation multi-échelle de la croissance des villes} -% DONE: Louail Les modèles à base d'agents sont souvent utilisés en géographie pour rendre compte des dynamiques observables sur une carte: le système est étudié @@ -314,26 +291,11 @@ varie. L'opération fondamentale de ces approches est le passage d'un niveau de granularité à un autre niveau de granularité par une \emph{transformation de modèles}. Les deux paragraphes suivants illustrent cette approche. -% Chapeau: multi-niveau veut dire multi-échelle (micro-macro) dans la section -% précédente, MAIS ici, multi-niveau veut dire granularité, raffinement \subsubsection{Ingénierie des modèles} -%% -%% à ne pas citer : https://tel.archives-ouvertes.fr/tel-00916856/document -%% -%% à citer : Anneke KLEPPE, Jos WARMERet Wim BAST:MDA Explained. The Model Driven Architec-ture : Practice and Promise. Addison-Wesley, 2003. Cité pages 6 et 8. -%% -%% - Dans le domaine de l'informatique et de la conception logicielle, l'\emph{ingénierie des modèles} (\emph{model-driven engineering} -% Remarque de Olivier: enlève cette ref qui fait pédant :) -%\footnote{À -%ne pas confondre avec le \emph{Model Engineering} qui était, au XIX\ieme{} -%siècle, une discipline dont le but était la construction de représentations -%miniatures proportionnellement mises à l'échelle de machines, comme des -%moteurs, des locomotives à vapeur, des horloges, etc.} en anglais) est une méthodologie de développement se concentrant sur la partie métier du logiciel, c'est-à-dire ce qui dans un logiciel fait abstraction de l'implémentation. L'objectif de cette discipline est l'automatisation de la @@ -380,7 +342,6 @@ On retiendra notamment les catégories suivantes: % \begin{description} -%% \item Syntaxique \emph{vs.} sémantique: \item[Transformation endogène \emph{vs.} transformation exogène:] une transformation est exogène lorsque le langage de description du modèle cible est @@ -428,7 +389,6 @@ gardées~\cite{gratie_quantitative_2013}. \subsection{Complexification}\label{sec:complexification} -% DONE: Chapeau sur les systèmes complexes La modélisation des systèmes complexes constitue l'un des enjeux principaux de l'approche multi-niveau que nous souhaitons développer. @@ -438,7 +398,6 @@ dans sa proposition de DIM «Approches interdisciplinaires des systèmes complexes»\footnote{Document disponible en ligne à l'adresse \url{ https://iscpif.fr/wp-content/uploads/2016/09/PreProjetDim2017.pdf}}, la définition suivante: -% - Def ISC, présentation non naïve \begin{quote} Les systèmes complexes sont des systèmes présentant un grand nombre d’entités différenciées, dont la multitude des interactions locales conduisent à @@ -476,10 +435,6 @@ connexionniste. \subsubsection{Raffinement et émergence} -% DONE: fix la description qui est naze… On veut exprimer le fait que raffiner -% des propriétés émergentes pose un problème aux gens qui font du raffinement, -% pourquoi et comment ils tentent de résoudre la question. - En 2005, F. Polack et S. Stepney~\cite{polack_emergent_2005} présentent une approche de la complexité en rapport avec le raffinement de modèles, que nous avons présenté dans la section~\ref{sec:raffinement}. L'idée centrale de leur @@ -562,12 +517,6 @@ se déplacer sur une grille extérieure, dans une direction une fois tous les quatre pas des états du glider \emph{dans la fenêtre}, ne pas bouger ou bien faire un pas dans la direction orthogonale. Les opérations de collision et de résolution sont tout aussi difficiles à décrire. -% DONE: \emph{Pour que ce soit pertinent, il faut pas que se soit difficile mais -% impossible, sinon ça perd son sens. Comme je ne pense pas que ce soit -% impossible si on prépare bien le terrain dans le formalisme lié au système, il -% doit y a voir un élément qui n'est pas transcrit ici.}% -% >>> Ça n'est pas impossible, effectivement. Par contre les auteurs considèrent -% comme quasi-impossible le raffinement par une unique relation de raffinement. Nous constatons qu'il est difficile d'exprimer la relation de raffinement de la propriété «posséder un glider» dans des termes propres aux automates cellulaires @@ -581,25 +530,9 @@ existe une incompatibilité entre les langages de description qui (1) rend la spécification concrète des gliders difficiles et (2) empêche toute élaboration directe d'une preuve de raffinement avec le vocabulaire des automates. Cette caractéristique est propre aux systèmes possédant des propriétés émergentes. -%DONE:Compléter la description de la deuxième partie ou la supprimer - -% se déplacer, entrer en collision et résoudre la collision. Et c'est ici que le -% raffinement classique «casse»: il n'y a aucun moyen d'exprimer la -% spécification en terme d'automate cellulaire, du moins pas directement. Les -% langages utilisés, le premier pour exprimer le système abstrait (émergent) et -% le système concret, sont incompatibles. Il est peut-être possible de raffiner -% ces deux systèmes vers une représentation intermédiaire, cette dernière -% pouvant être raffinée vers le système concret. - - - - \subsubsection{Complexification dans les \cnn} -% L'activité du point de vue énergétique. L'activité locale n'explique pas -% vraiment les systèmes complexes comme les nuées d'oiseaux, ou bien -% l'auto-organisation d'une fourmillière L. Chua a introduit en 1998 le concept d'\emph{activité locale} (\emph{local activity})~\cite{mainzer_local_2013}. Ce concept est décrit comme le maillon manquant permettant d'expliquer l'apparition de motifs complexes dans un médium @@ -618,7 +551,6 @@ homogène. Dans les paragraphes suivants, nous présentons de manière succincte quelques définitions proposées par les auteurs pour l'activité locale, la complexité et le seuil du chaos (\emph{edge of chaos}). -%DONE: refaire la figure avec tikz \begin{figure}[ht] \centering \includegraphics[page=1,width=.48\textwidth]{cnn-synapses}\hfill @@ -660,8 +592,6 @@ et représentant l'entrée de la cellule. L'activité locale s'intéresse aux fluctuations d'énergie induites par des variations de l'entrée d'une cellule initialement placée en un point d'équilibre. -%DONE: (I + i).(V + v) = I.V + I.v + V.i + i.v ??? p 284 -- linéarisation -%WONTFIX En notant $\mathbf{v}_a$ et $\mathbf{i}_a$ les variations respectives de $\mathbf{V}_a$ et $\mathbf{I}_a$, la fluctuation d'énergie entre l'instant initial et un instant $T < \infty$, est donnée par: @@ -708,10 +638,6 @@ section suivante, proposent une réponse à cette question. \subsubsection{Complexification structurelle}\label{sec:ehresmann} -% DONE: C'est moche de dire à la, faut changer les titres -% DONE: Mettre à jour les figures avec les nouvelles notations -% DONE: Jolifier les itemize: moins de marges, plus d'interstice, points plus -% gros Nous tâchons ici de présenter, sans entrer dans les détails, le \emph{processus de complexification} introduit par A. Ehresmann et J.-P. @@ -1043,17 +969,6 @@ l'œuvre lorsque des familles d'une bascule complexe -- se comportant en tout point de la même façon avec les autres neurones -- sont représentées par le même cat-neurone. -% DONE: modification de la figure % -% v Pas de cadres% -% v Suppression du lien de clôture -% v Deux accolades à gauche pour les deux identités numériques (persistance au -% cours du temps)% -% v Ligne de démarcation entre niveau n et n+1 -% DONE: modification de la figure 2 % -% v numérique -> spécifique -% v binding = propriété commune -> id qualitative (en couleur) -% v entourer l'identité numérique -%DONE: WONTFIX améliorer les couleurs \begin{figure}[h!] \centering \includegraphics[page=6,width=.95\textwidth]{complexification-ehresmann} @@ -1124,7 +1039,6 @@ décrit section~\ref{sec:compmodel}. On trouve dans de nombreuses disciplines l'utilisation du mot \systeme. En voici quelques exemples: -% grosse liste de tous les systèmes \begin{itemize} \item En informatique, le \systeme d'exploitation est un \emph{assemblage} de @@ -1366,22 +1280,6 @@ Willems~\cite{willems_paradigms_1991}. L'ensemble des mesures possibles, donné par le produit cartésien des domaines des observables est parfois appelé \emph{universum} dont un modèle est le sous-ensemble. Cela nous amène à la définition formelle suivante. -%%Avant de poser la définition formelle des modèles à observables, donnons -%%quelques notations. -% Nous pouvons maintenant poser une définition formelle d'un modèle général -% qui englobe tout ce que nous souhaitons appeler un modèle. Commençons par -% appeler $\obs$ l'ensemble des observables d'un modèle et $\dom$ l'ensemble -% des domaines qui leur sont associées. Pour lier chaque observable à son -% domaine, nous définissons la fonction $\cfg : \obs \rightarrow \dom$ appelée -% la configuration d'un modèle. L'ensemble exhaustif de tous les états possibles -% du modèle est -% donné par sa \emph{signature} -% \[ -% \sig = \prod\limits_{o\in\obs}{\cfg(o)} -% \] -% Le \emph{comportement} d'un modèle est une relation entre ses observables, -% c'est-à-dire une partie de $\sig$. Il nous arrivera de confondre une observable -% $o$ avec son domaine $\cfg(o)$ lorsque le contexte ne provoque pas d'ambigüité. \begin{mpo-definition}[Modèle à observables] Soit $\{ \dom_i \}_{i \in I}$, une famille d'ensembles. @@ -1410,14 +1308,7 @@ système, en présentant plus ou moins d'observables, en reposant sur des domain plus ou moins fins, ou en dénombrant plus ou moins d'états. Cette précision sera formalisée dans la section suivante par un mécanisme d'abstraction entre modèle. -% L'exemple~\ref{ex:malthus} revient à dire que tous les nombres d'individus -% tel que $P(t) - P_0 \cdot e^{r \cdot t} \neq 0$ sont exclus du modèle: elles ne -% font pas partie du \emph{comportement} du système selon ce modèle. - -%% \paragraph{Exemple.} - - -\begin{mpo-exemple} %[Modèle expérimental des états de l'eau] +\begin{mpo-exemple} Nous reprenons ici la modélisation des états de l'eau de~\cite{willems_paradigms_1991}. Suivant la température, l'eau existe dans différents états solide, liquide ou gazeux. Le modèle $\model{M}{\it eau}$ @@ -1443,15 +1334,6 @@ formalisée dans la section suivante par un mécanisme d'abstraction entre modè \label{ex:model-eau} \end{mpo-exemple} -% Dans l'exemple~\ref{ex:model-eau}, $\bhvxp$ distribue simplement le domaine -% associé à l'observable $\obsn{Température}$ sur les éléments du domaine associé -% à l'observable $\obsn{Matière}$ tel qu'observé et mesuré pendant une expérience. - - - - - - \subsubsection{Modèle expérimental} Voir un modèle comme un ensemble ne dit rien sur la façon de construire ce @@ -1461,13 +1343,6 @@ définition par extension. On parlera de \emph{modèle expérimental} lorsque l'ensemble est défini par extension à partir des résultats d'expériences. -% : le comportement est construit itérativement par ajouts -% successifs des états du modèle. Si ces états sont issus d'expériences faites sur -% le système, alors nous construisons un modèle expérimental et on notera son -% comportement \bhvxp. Il représente l'ensemble des données issues d'expériences -% sur le système: un modèle expérimental représentera donc \emph{l'ensemble des -% mesures connues} sur un système. - \begin{figure}[t] \centering \includegraphics[width=\textwidth]{figures/log-steamer-bear} @@ -1672,15 +1547,6 @@ la fonction $\Phi_\modelM$: un modèle dynamique est donc également un modèle à observables privilégiées tel que décrit définition~\ref{def:modfct}, les observables privilégiées étant ici le temps et les conditions initiales. -% Bien que les conditions assurent que les actions du temps sur les états doivent se composer, conformément à la vision défendue dans~\cite{giunti2012dynamical}, notre définition est assez large et permet notamment de prendre en compte des modélisations non-déterministes. -% En effet, rien n'interdit d'observer au sein de $E_\modelM$ deux triplets $(s,t,s')$ et $(s,t,s'')$ pour $s' \neq s''$. -% Cela correspond à deux avenirs possibles à partir du même état $s$ et après une même durée $t$. -% Des définitions plus restrictives des systèmes dynamiques imposent le déterminisme, voire la réversibilité, des évolutions. -% Nous pourrons retrouver ces contraintes en considérant des \emph{modèles dynamiques à observables privilégiées}, c'est-à-dire en combinant les définitions~\ref{def:moddyna} et~\ref{def:modfct}. -% La dépendance fonctionnelle associée imposera l'unicité de $s'$ connaissant l'état initial $s$ et la durée d'évolution $t$ dans un triplet $(s,t,s')$. -% La réversibilité sera obtenue en ajoutant une autre dépendance fonctionnelle donnant $s$ à partir de $s'$ et $t$. - - \begin{mpo-exemple}\label{ex:malthus} Le modèle de croissance Malthusien décrit l'évolution de la taille d'une population suivant un taux de natalité $r$ sans aucune autre restriction. Ce @@ -2006,367 +1872,6 @@ modèles à observables privilégiées particuliers. \end{mpo-exemple} -% Un modèle à observables privilégiées ne prend-il pas partie pour la vision de -% l'espace et du temps de Newton au détriment d'un conception Leibnizienne ? Ne -% fixe-t-on pas précocément une \emph{structure} ? Pour rappel, Newton considérait -% que l'espace et le temps précédait les corps physiques et les évènements et -% qu'ainsi, ces objets pouvaient être annotés par une mesure de position dans le -% temps et dans l'espace faite par rapport à des repères \emph{absolus} et -% \emph{prééxistant}. Cette vision semble s'opposer à celle de Leibniz qui -% estimait de son côté que l'espace et le temps sont \emph{engendrés} par les -% corps physiques et les évènements. Ces deux postures philosophiques sont -% cependant conciliées par notre approche, et d'après la définition précédente, -% nous pouvons remarquer les points suivants: -% \begin{itemize} -% \item un modèle est un point de vue \emph{a posteriori} du système que l'on -% modélise et la question de la prééxistance du temps et de l'espace n'influe -% pas sur le modèle. Dans les deux cas, il appartient au modélisateur de -% \emph{déterminer} les structures \emph{nécessaires} à l'obtention de la -% relation entre les observables voulues. -% \item un modèle n'est qu'une relation entre des observables ce qui implique que -% la structure du domaine d'une observable espace ou temps est \emph{implicite} -% et résulte également d'un choix de modélisation. Ces structures doivent être -% ajoutées au domaine d'une observable, par exemple dans le cas d'une observable -% $\obsn{Espace}$ ayant pour domaine associé $\mathbb{R}^2$, on peut y ajouter -% une structure d'espace vectoriel. -% \end{itemize} -% Pour conclure cette remarque, que le temps et l'espace soient préexistants ou -% bien qu'ils soient construits à partir des évènements et des points disponibles, -% le travail du modélisateur est le même. Bien que cette question soit -% intéressante d'un point de vue philosophique, elle n'a \emph{aucune} influence -% sur notre définition des modèles. - - - - - - - - -% Nous considérerons qu'un modèle exéprimental peut être compris comme le modèle -% de référence pour tous les autres modèles du même système. Un modèle -% expérimental établit un rapport au système étudié, donc à la réalité, \emph{par -% la mesure}, il dépend donc des outils de mesure utilisés et de leurs -% imperfections éventuelles. Un modèle expérimental, de part sa simplicité et son -% lien direct au système, jouera le rôle de modèle de référence lors de la -% comparaison entre modèles d'un même système (voir -% Fig.~\ref{fig:model-abstraction}). - -% Remarquons que de manière exactement équivalente, on peut utiliser -% $\chi_{\bhv}$, la fonction caractéristique sur les ensembles de la relation -% $\bhv$ sur l'ensemble $\sig$, pour définir la sous-relation: -% \begin{align*} -% \chi_{\bhv} : \sig &\longrightarrow \{0,1\} \\ -% \sigma &\longmapsto \left\{ -% \begin{array}{l} -% 1 \quad\text{si}\quad \sigma \in \bhv \\ -% 0 \quad\text{si}\quad \sigma \notin \bhv -% \end{array} -% \right. -% \end{align*} - -% La fonction $\chi_{\bhv}$ interdit explicitement certains tuples du comportement -% ne pouvant satisfaire la loi de comportement. Notons que cette fonction est -% rarement connue à l'avance lors des expériences et, si elle l'est, il est -% important de la mettre de côté pour éviter un biais de confirmation. C'est un -% premier pas vers une loi de comportement gouvernant le rapport entre -% \emph{observables du modèle}. Néammoins, cette définition reste trop générale -% pour que nous puissions tirer des informations intéressantes sur le -% fonctionnement de ce modèle. Aucune hypothèse n'est faite sur le type de -% fonction qu'est $\chi_{\bhv}$. Cette approche a toutefois le mérite de nous -% présenter une seconde manière de définir un modèle: si le comportement peut-être -% obtenu algorithmiquement ou bien par une structure mathématique, alors on peut -% définir un modèle par intention. - -% \begin{mpo-definition}[Modèle comportemental] -% Soit $I$ un ensemble dénombrable d'indices et $(\sig,\bhvpo)$ un modèle où -% $\sig$ est de la forme $\sig = \prod_{i\in I} \dom_i$, soit $J \subset I$ un -% ensemble non vide d'indices, on peut réécrire la signature $\sig = P \times R$ -% où -% \[ -% P = \prod\limits_{j \in J} \dom_j \quad -% \text{et} \quad -% R = \prod\limits_{i \in I \setminus J} \dom_i -% \] -% Un \emph{modèle comportemental} est un couple $M = -% (\Phi_P,\bhvpo)$ où -% \begin{itemize} -% \item $\Phi_P(\sig) = \left( R \right)^P$ est \emph{l'ensemble des -% comportements fonctionnellement dépendant des observables privilégiées} et -% \item $\bhvpo \subset \Phi_P(\sig)$ est le \emph{comportement} de M. -% \end{itemize} -% \end{mpo-definition} - -% Cette définition apporte une nouvelle structure mathématique à la signature d'un -% modèle expérimental qui met en exergue la dépendance fonctionnelle existante -% entre quelques observables et les autres. Le comportement qui en est issu -% apporte plus de contraintes sur la manière dont la relation $\bhvpo$ peut être -% construite. - -% Remarquons que $\bhvpo$ et $\bhv$ sont de natures différentes: le premier est -% une relation sur les éléments de $\sig$ et le second est une relation sur les -% éléments de $\Phi_P(\sig)$. On peut néammoins se rendre compte en exprimant -% $\bhvpo$ en fonction de $\bhv$ -% % -% \begin{equation} \label{eq:bhvpo-bhv} -% \bhvpo = \Big\{ \big(p,b(p)\big) \bigm| p \in P \land b \in \bhv \Big\} -% \end{equation} -% % -% que $\bhvpo$ ne permet pas de distinguer les cas où $(p,b_1(p)) = (p,b_2(p))$, -% c'est-à-dire qu'elle «oublie» une partie de la structure sur le comportement. -% $\bhvpo$ possède donc une structure moins contraignante que $\bhv$. - -% Remarque: lien avec la BDD, Schéma et clef primaire -% Remarque: relations complexes -% La définiton d'un modèle à observables privilégiées n'est pas sans rappeler -% quelques concepts propres au domaine des bases de données relationnelles, -% introduit par \textsc{Codd} dans \cite{codd_relational_1970}. Une signature -% $\sig$ peut-être vue comme un \emph{schéma} et un comportement $\bhv$ comme -% une \emph{relation}. Le concept de \emph{clef primaire} est associé aux éléments -% de $P$ qui ne peuvent avoir qu'une seule image par fonction de $\bhv$ ce qui est -% immédiat d'après l'équation~\ref{eq:bhvpo-bhv}. Dans un modèle à observables -% privilégiées, chaque $p \in P$ identifie de manière unique un tuple de -% $\bhvpo$. - -% Les premières observables privilégiées dont nous voudrions rendre compte sont le -% temps, désigné par $\obsn{Temps}$ où $\cfg(\obsn{Temps})=\Time$, et l'espace, -% désigné par $\obsn{Espace}$ où $\cfg(\obsn{Espace})=\Space$. En effet il est -% habituel de définir la valeur d'une observable par rapport au temps, par rapport -% à l'espace et par rapport au temps et à l'espace. - - -% Cette remarque nous amène d'abord à définir une nouvelle classe de modèle qui -% considèrent le temps comme une observable privilégiée par rapport aux autres. -% Ces modèles sont appelés des \emph{modèles dynamiques} en référence aux systèmes -% dynamiques. - -% \begin{mpo-definition}[Modèle dynamique] -% Un \emph{modèle dynamique} est un modèle à observables privilégiées $M = -% (\Phi_\Time,\bhv)$ où $\Time$ est un ensemble appelé \emph{le domaine -% temporel}. Il existe une relation $\cdot : \Time \times \Time \rightarrow -% \Time$ telle que $(\Time,\cdot)$ possède la structure d'un monoïde, c'est à -% dire que: -% \begin{enumerate} -% \item $\forall a,b,c \in \Time \quad (a \cdot b) \cdot c = a \cdot (b \cdot c)$ -% (associativité) -% \item $e \in \Time, \forall a \in \Time \quad e \cdot a = a \cdot e = a$ -% (existence d'un neutre) -% \end{enumerate} -% Les éléments de $\bhv$ sont appelés les \emph{traces} de $M$. -% \end{mpo-definition} - -% Pour se rapprocher de la théorie des systèmes dynamiques, nous pouvons apporter -% une structure plus contraignante sur un modèle dynamique par la définition -% suivante. - -% \begin{mpo-definition}[Modèle dynamique classique] -% Un \emph{modèle dynamique classique} est un modèle dynamique $M = -% (\Phi_\Time,\bhv)$ où $\Time$ possède la structure d'un monoïde et $\bhv$ -% rempli les propriétés supplémentaires suivantes: -% \[ -% \forall b \in \bhv, -% \forall t_1 \in \Time, -% \exists b' \in \bhv, -% \forall t_2 \in \Time, \qquad -% b(t_1) = b'(0) \quad -% \text{et} \quad -% b(t_1 + t_2) = b'(t_2) -% \] -% \end{mpo-definition} - -% D'où vient le choix d'une structure monoïdale -% Remarque sur memoryless de M -% Petite preuve sur la correspondance systèmes dynamiques / modèles dynamiques - -% Nous pouvons ainsi reformuler le modèle par relation de Malthus afin -% d'expliciter sa nature dynamique. - - -%Constantes des modèles -% Certains modèles ont des constantes permettant de les ajuster suivant le système -% étudié. Ces modèles décrivent en fait une \emph{classe de modèles} pouvant -% décrire plusieurs systèmes à la fois: ils identifient un comportement commun à -% chacun de ces systèmes. Il est ainsi important de remarquer que les constantes -% d'un modèle ne sont \emph{pas des observables} et que nos définitions ne -% concernent que des instances de modèles. Notre but, pour l'instant, est -% d'adresser la question des relations entre modèles d'un même système et pas -% d'identifier plusieurs systèmes décrit par la même classe de modèles. - -% Une autre observable privilégiée est l'\emph{espace}. Similairement au temps qui -% est constitué d'\emph{évè\-nements}, l'espace est constitué de \emph{points}. On -% le définit de manière symétrique aux modèles dynamiques généraux. - -% \begin{mpo-definition}[Modèle spatial] -% Un \emph{modèle spatial} est un modèle à observables privilégiées $M = -% (\Phi_\Space,\bhv)$ possédant un observable nommée \obsn{Espace} où $\bhv$ est -% un appelé un \emph{champ} et les éléments de $\Space$ sont appelés les -% \emph{points} de l'espace. -% \end{mpo-definition} - -% Nous ne fixons pas dans cette définition de structure mathématique propre à -% l'espace. Il ne semble pas évident de trouver un structure permettant de -% représenter les différents usages du concept d'espace. L'espace se -% représenterait-il mieux par un groupe, un espace vectoriel, ou bien une -% structure topologique, plus générale est-elle préférable ? Nous laissons ouvert -% le choix de la structure convenant le mieux en fonction du problème étudié. - -% Exemple 1: le jeu d'échecs -% \begin{mpo-exemple}[Modèle spatial d'un jeu d'échecs] -% \newcommand{\chessk}{\text{Roi}} -% \newcommand{\chessq}{\text{Dame}} -% \newcommand{\chessb}{\text{Fou}} -% \newcommand{\chessn}{\text{Cavalier}} -% \newcommand{\chesst}{\text{Tour}} -% \newcommand{\chessp}{\text{Pion}} - -% Un jeu d'échecs est constitué d'un plateau sur lequel est représentée une -% grille carrée de 8 $\times$ 8 cases de couleurs alternées noire ou blanche où -% deux cases adjacentes n'ont pas la même couleur. Les case noires sont notées -% $\text{even}$ et les cases blanches sont notées $\text{odd}$: -% \[\begin{array}{rcl} -% \text{even} &=& \big\{ (i,j) \in [1 \ldots 8] \times [1 \ldots 8] -% \mid i+j\ \text{est paire} \big\} \\ -% \text{odd} &=& \big\{ (i,j) \in [1 \ldots 8] \times [1 \ldots 8] -% \mid i+j\ \text{est impaire} \big\} \\ -% P &=& \text{odd} \cup \text{even} \\ -% \end{array}\] - -% Sur ce plateau sont disposées 32 pièces divisées en deux équipes de 16 pièces -% blanches et 16 pièces noires. Les pièces des deux équipes sont identiques et -% sont les éléments de l'ensemble suivant, indicés par leur abscisse: -% \[ -% A = \left\{ -% \begin{array}{cccccccc} -% \chessp_1,& \chessp_2,& \chessp_3,& \chessp_4,& \chessp_5,& \chessp_6,& \chessp_7,& \chessp_8, \\ -% \chesst_1,& \chessn_2,& \chessb_3,& \chessq_4,& \chessk_5,& \chessb_6,& \chessn_7,& \chesst_8 -% \end{array} -% \right\} -% \] -% Chacune de ces pièces possède un mode de déplacement qui lui est propre. -% Informellement, à chaque tour un joueur choisi une pièce de sa couleur et la -% déplace en fonction du mode de son mode déplacement: -% \begin{itemize} -% \item un $\chessk$ peut faire exactement un pas dans une des 8 directions, -% \item une $\chessq$ peut faire un pas ou plus dans une des 8 directions, -% \item un $\chessb$ peut faire un pas ou plus dans une des 4 directions -% diagonales, -% \item un $\chessn$ peut effectuer exactement deux pas dans une direction puis -% exactement un pas dans orthogonalement à la direction de départ, -% \item une $\chesst$ peut effectuer un pas ou plus dans une des 4 directions -% verticales ou horizontales et -% \item un $\chessp$ peut effectuer exactement un pas en avant, c'est-à-dire en -% direction de l'équipe adverse. -% \end{itemize} - -% \noindent -% Un modèle spatial $(\Phi_\Space,\bhv)$ des positions accessibles par chacune -% des pièces se défini en posant: - -% \[ \begin{array}{rcl} -% \sig &=& A \times P \\ -% \Space &=& A \\ -% \Phi_\Space &=& P^A \\ -% \bhv &:& A \longrightarrow P \\ -% \bhv(e)&=& \left\{ \begin{array}{ll} -% \text{odd} -% &\text{si}\quad e \in \{ \chessb_6 \} \\ -% \text{even} -% &\text{si}\quad e \in \{ \chessb_3 \} \\ -% \{1\} \times [1 \ldots 8] -% &\text{si}\quad e \in \{ \chessp_1 \} \\ -% \{2\} \times [1 \ldots 8] -% &\text{si}\quad e \in \{ \chessp_2 \} \\ -% \{3\} \times [1 \ldots 8] -% &\text{si}\quad e \in \{ \chessp_3 \} \\ -% \{4\} \times [1 \ldots 8] -% &\text{si}\quad e \in \{ \chessp_4 \} \\ -% \{5\} \times [1 \ldots 8] -% &\text{si}\quad e \in \{ \chessp_5 \} \\ -% \{6\} \times [1 \ldots 8] -% &\text{si}\quad e \in \{ \chessp_6 \} \\ -% \{7\} \times [1 \ldots 8] -% &\text{si}\quad e \in \{ \chessp_7 \} \\ -% \{8\} \times [1 \ldots 8] -% &\text{si}\quad e \in \{ \chessp_8 \} \\ -% P &\text{sinon} -% \end{array} \right. \\ -% \end{array} \] - -% Notez que le cas où un pion se déplacerait en diagonale en prenant une pièce -% ennemie est ici ignoré. -% \end{mpo-exemple} - -% Dans ce modèle, le comportement est un simple map. On ignore toute structure sur -% l'ensemble de départ et l'ensemble d'arrivée. Néammoins, si l'ensemble de départ -% avait eu une structure particulière, $\bhv$ ne l'aurait pas nécessairement -% conservée. Les prochaines définitions décrivent des modèles spatiaux accompagnés -% des structures usuelles. - -% \begin{mpo-definition}[Modèle spatial topologique] -% Un \emph{modèle spatial topologique} est un modèle à observables privilégiées -% $M = (\Phi_\Space,\bhv)$ où $(S,\Space)$ est une topologie et $\bhv$ a sa -% définition usuelle. - -% Notez que dans ce cas, $\Space$ désigne l'ensemble des ouverts. -% \end{mpo-definition} - -% % Exemple 2: Complexe simpliciaux -% \begin{mpo-exemple}[Modèle spatial à complexes simpliciaux] -% Soit $C = (V,F)$ un complexe simplicial abstrait où $V$ désigne l'ensemble des -% sommets et $F$ l'ensemble des faces, c'est-à-dire un ensemble des parties -% non-vides de $V$ stable par sous-partie non vide, et $L$ est un ensemble dont -% les valeurs étiquettent chaque face du complexe simplicial. Un modèle à -% complexes simpliciaux pourrait se décrire comme un modèle spatial topologique -% $(\Phi_\Space,\bhv)$ où: - -% \[ \begin{array}{rcl} -% \sig &=& L \times V \\ -% \Space &=& L \\ -% \Phi_\Space &=& V^L \\ -% \bhv &:& L \longrightarrow V \\ -% \end{array} \] - -% $C$ est un espace topologique car $F$ décrit l'ensemble des ouverts de $V$ et -% $\tau$ est la topologie induite sur $L$ de sorte que $\bhv$ soit une fonction -% continue. -% \end{mpo-exemple} - -%% Exemple 2: un champ de température -%\begin{mpo-exemple}[Modèle spatial d'un champ de température] -% Un modèle spatial $(\Phi_\Space,\bhv)$ d'un champ de température, mesurée en -% Kelvin, dans une pièce close se défini par : -% -% \[ \begin{array}{rcl} -% \sig &=& \mathbb{R}^3 \times [ -273 ; +\infty [ \\ -% \Space &=& \mathbb{R}^3 \\ -% \Phi_\Space &:& ([ -273 ; +\infty [)^{\mathbb{R}^3} -% \end{array} \] -% -%\end{mpo-exemple} - -%Voici par exemple un modèle de répartion hexagonale de points. -%\begin{mpo-exemple}[Modèle spatial d'un(e)] -% Le modèle spatial $(\obs,\dom,\cfg,\bhv_s)$ avec -% \begin{array}{rcl} -% \cfg(\obsn{Espace}) &=& \mathbb{Z}^2 \\ -% \bhv_t &=& \big\{ (t,p(t)) \mid t \in \mathbb{R} \big\} \\ -% p(t) &=& P_0 \, e^{rt} -% \end{array} -% \] -% est un modèle spatial d'une grille hexagonale. -%\end{mpo-exemple} - -% \begin{mpo-definition}[Modèle équationnel] -% Soient $\sig = P \times R$, $(\Phi_P,\bhv)$ un modèle à observables -% privilégiées et $f_1$, $f_2$ deux fonctions de $P$ dans $X$ où $X$ est un -% ensemble d'arrivée quelconque, un modèle équationnel est un triplet -% $(f_1,f_2,\bhv)$ où $f_1$,$f_2 : P \longrightarrow X$ et -% \[ \begin{array}{rl} -% \forall p \in P & f_1(p) = f_2(p) \\ -% \bhv \subset & (R)^P \\ -% \end{array} \] -% \end{mpo-definition} - \FloatBarrier \subsection{Modélisations d'un système proie-prédateur}\label{sec:preypred} @@ -2423,10 +1928,6 @@ plus élaborés ont été proposés pour prendre en considération d'autres fact environnementaux, ou encore l'incidence de l'organisation spatiale des populations. -%% From Gillespie: -%% (21) A. J. Lotka, J. Am. Chem. SOC., 42, 1595 (1920); Proc. Natl. Acad. Sci. U.S., 6, 410 (1920). -%% (22) For a comprehensive review of Volterra’s and other nonlinear models of interacting populations, see N. S. Goel, S. C. Maitra, and E. W. Montroll, Rev. Mod. Phys., 43, 231 (1971). - Les études des systèmes proies-prédateurs nous offrent ainsi un échantillon de modèles nous permettant d'illustrer notre approche. Nous allons dans la suite de cette section décrire quelques modèles de systèmes proie-prédateur repris des @@ -2683,148 +2184,6 @@ entre ce couplage et la description proposée par $\model{M}{SL}$. La \label{fig:model-lv} \end{figure} - - - - -% Comme ces trois modèles décrivent le même système, il devrait être possible d'en -% caractériser les relations. \modelVolterra décrit la dynamique \emph{moyenne} de -% chaque population, alors que \modelLotka nous fourni, à chaque instant, les -% quantités discrètes d'indivivdus de chaque population. Intuitivement, -% \modelVolterra est moins détaillé que \modelLotka, et nous dirons donc qu'il en -% constitue une abstraction. \modelVolterra décrit la dynamique moyenne de chaque -% population \emph{aggrégée} en un unique point de l'espace: à chaque instant les -% deux populations se recouvrent, alors que \modelSVolterra décrit également la -% dynamique de répartition spatiale des populations. De ce point de vue, -% \modelVolterra est moins détaillé que \modelSVolterra et nous dirons également -% qu'il en constitue une abstraction. Existe-t-il un modèle \modelSLotka tel que -% \modelSVolterra soit une abstraction de \modelSLotka et tel que \modelLotka soit -% une abstraction de \modelSLotka? - -% Dans la suite de cette section, nous introduirons le cadre théorique nécessaire -% à la définition formelle de cette flèche d'abstraction. - - - - -% Chacun de ces systèmes peut être décrit grâce aux différents modèles classiques -% suivants: le modèle de Volterra généralisé, à équations différentielles que l'on -% notera \modelVolterra et le modèle de Lotka généralisé, à réactions chimiques -% que l'on notera \modelLotka. Ces deux modèles sont généralisés, c'est-à-dire -% qu'ils sont paramétrés pour pouvoir décrire, suivant les valeurs de leurs -% paramètres, différents systèmes proie-prédateurs. - -% % http://www.scholarpedia.org/article/Predator-prey_model -% %Kolmogorov predator-prey model -% \begin{mpo-definition} Le modèle \modelVolterra décrit la variation de trois -% observables: la concentration de \obsn{Prédateur}, la concentration de -% \obsn{Proie} et le \obsn{Temps}. C'est donc le modèle dynamique définit comme -% le couple $(\Phi_\Time,\bhv)$ où $\Phi_\Time = \big(\cfg(\obsn{Prédateur}) -% \times \cfg(\obsn{Proie})\big)^\Time$ avec -% \begin{align*} -% \cfg(\obsn{Prédateur}) &=[\SI{0,0}{}\mathop{;}\SI{1,0}{}]\\ -% \cfg(\obsn{Proie}) &=[\SI{0,0}{}\mathop{;}\SI{1,0}{}]\\ -% \Time &= \mathbb{R} -% \end{align*} -% et où les trajectoires autorisées sont définies par le système d'équation -% couplées suivantes, en prenant $u_v$ comme variable pour l'observable -% \obsn{Proie}, $u_p$ pour \obsn{Prédateur} et $t$ pour $\Time$: -% \begin{equation} -% \left\{ -% \begin{array}{rcl} -% \displaystyle\frac{du_v}{dt} &=& u_v(\alpha_1 - \beta_1 u_p)\\[1.5ex] -% \displaystyle\frac{du_p}{dt} &=& u_p(\gamma_1 u_v - \delta_1) -% \end{array} -% \right. -% \label{eq:m1} -% \end{equation} -% Ce modèle équationnel de Lotka-Volterra décrit par deux équations -% différentielles couplées le comportement d'une \emph{classe} de systèmes -% proie-prédateur ayant pour paramètre $(\alpha_1, \beta_1, \gamma_1, -% \delta_1)$. -% \end{mpo-definition} - -% \begin{mpo-definition} Le modèle \modelLotka décrit la variation de trois -% observables: la quantité de \obsn{Prédateurs}, la quantité de \obsn{Proies} et -% le \obsn{Temps}. \modelLotka est un modèle dynamique définit comme le couple -% $(\Phi_\Time, \bhv)$ où $\Phi_\Time = \big( \cfg(\obsn{Prédateurs}) \times -% \cfg(\obsn{Proies}) \big)^\Time$ avec -% \begin{align*} -% \cfg(\obsn{Prédateurs}) &= \mathbb{N}_+\\ -% \cfg(\obsn{Proies}) &= \mathbb{N}_+\\ -% \Time &= \mathbb{R}_+ -% \end{align*} -% et où les trajectoires autorisées, \bhv, sont définies par les quatre -% équations de réécriture suivantes, en prenant $v$ comme variable pour -% l'observable \obsn{Proies} et $p$ pour \obsn{Prédateurs}. Toutes les -% observables sont \emph{implicitement modélisées} par ces équations, nous les -% définirons explicitement par une simulation de ces quatre équations par la -% méthode de Gillespie, afin d'obtenir les quantité de proies et de prédateurs -% et d'orchestrer tous les évènements successifs sur un temps continu. -% \begin{align*} -% v & \overset{\alpha_2}{\longrightarrow} 2\,v \\ -% v + p & \overset{\beta_2}{\longrightarrow} p \\ -% v + p & \overset{\gamma_2}{\longrightarrow} 2\,p \\ -% p & \overset{\delta_2}{\longrightarrow} . -% \end{align*} -% \modelLotka est modèle de Markov à temps continu qui décrit par quatre -% équations de réaction chimique le comportement d'une classe de systèmes -% proie-prédateur dont les paramètres sont $(\alpha_2, \beta_2, \gamma_2, -% \delta_2)$. -% \end{mpo-definition} - -% À ces deux modèles clasisques, on propose d'ajouter une version spatialisée de -% \modelVolterra, appelé \modelSVolterra. - -% \begin{mpo-definition} Le modèle \modelSVolterra décrit les variations des -% observables: concentration de \obsn{Proie}, concentration de \obsn{Prédateur}, -% coordonnées dans l'\obsn{Espace} et dans le \obsn{Temps}. \modelSVolterra est -% un modèle spatio-temporel définit comme le couple $(\Phi_{\Space \times -% \Time},\bhv)$ où $\Phi_{\Space \times \Time} = \big( \cfg(\obsn{Proie}) -% \times \cfg(\obsn{Prédateur}) \big)^{\Space \times \Time}$ avec: -% \begin{align*} -% \cfg(\obsn{Prédateur}) &= [\SI{0,0}{}\mathop{;}\SI{1,0}{}]\\ -% \cfg(\obsn{Proie}) &= [\SI{0,0}{}\mathop{;}\SI{1,0}{}]\\ -% \Space &= \mathbb{R}\times\mathbb{R}\\ -% \Time &= \mathbb{R} -% \end{align*} -% et où les trajectoires autorisées, \bhv, sont définies par les deux équations -% différentielles partielles couplées suivantes, pour lequelles $u_v$ correspond -% à l'observable \obsn{Proie}, $u_p$ à \obsn{Prédateur}, $t$ à \obsn{Temps} et, -% cachées dans le laplacien en deux dimensions $\Delta$, les variables $x,y$ -% correspondent à l'observable \obsn{Espace}: -% \begin{equation*} -% \left\{ -% \begin{array}{l} -% \displaystyle\frac{du_v}{dt} = u_v(\alpha_3 - \beta_3 u_p) % -% + D_v\.\laplacien u_v \\[1.5ex] -% \displaystyle\frac{du_p}{dt} = u_p(\gamma_3 u_v - \delta_3) % -% + D_p\.\laplacien u_p -% \end{array} -% \right. -% \end{equation*} -% Ce modèle équationnel spatialisé de Volterra décrit par deux équations -% différentielles partielles couplées le comportement d'une \emph{classe} de -% systèmes proie-prédateur ayant pour paramètre $(\alpha_3, \beta_3, \gamma_3, -% \delta_3, D_V, D_p)$. -% \end{mpo-definition} - - - - - - - - - - - - - - - - -%\FloatBarrier \section{Composition des modèles}\label{sec:compmodel} Les sections~\ref{sec:multiniveau} et~\ref{sec:consmodel} nous ont amené à voir @@ -2884,7 +2243,6 @@ des sciences expérimentales. Nous introduisons ensuite les éléments de la théorie des catégories nécessaires à la compréhension de notre formalisation avec laquelle nous clôturerons le chapitre. -%\FloatBarrier \subsection{Application en sciences expérimentales}\label{sec:scexp} La méthodologie que nous proposons est adaptée au cadre des sciences @@ -3071,7 +2429,6 @@ situation est illustrée \textsc{Fig.}~\ref{fig:model-abstraction}. \end{figure} -%\FloatBarrier \subsection{Introduction aux catégories} Nous pensons que la théorie des catégories propose un cadre mathématique @@ -3343,7 +2700,6 @@ amalgamée}, la construction \emph{duale} du produit fibré. un objet $P$ et deux morphismes $i_1 : X \rightarrow P$ et $i_2 : Y \rightarrow P$ tel que le diagramme suivant commute \begin{center} - %\includegraphics[page=1,width=.45\textwidth]{model-categories} \includegraphics[page=8]{model-categories} \end{center} et soit \emph{universel}, c'est-à-dire que pour tout autre objet $Q$ et @@ -3644,10 +3000,6 @@ exemple, les modèles dont les ensembles de faits sont des images d'actions de monoïde par le foncteur $\ftr{U}_\cat{AMon}$, correspondent à la classe des modèles dynamiques explicitée définition~\ref{def:moddyna}. -%Il est possible d'aller plus loin dans cette proposition. En effet, en tant que -%foncteur il est intéressant de considérer les abstractions images de morphismes -%par $\ftr{U}_\cat{C}$: ces cas correspondent exactement aux transformations de -%modèles endogènes au formalisme décrit par $\cat{C}$. Il est possible d'aller plus loin dans cette proposition. Nous pouvons considérer les abstractions issues des images de morphismes par \emph{le même} foncteur d'oubli $\ftr{U}_\cat{C}$: ces cas correspondent exactement aux @@ -3799,18 +3151,6 @@ modèle initial (le plus abstrait), la construction se ramène au couplage simpl Pour conclure, la somme amalgamée permet de coupler deux modèles en se restreignant à une partie commune identifiée par un troisième modèle. - - - % E_M1 <-------- E_MS - % / ^ - % v \ - % E_MO E_M12 <-------- E_MS - % ^ / - % \ v - % E_M2 <-------- E_MS - % - - \paragraph{Construction duale.} % Si le coproduit permet de spécifier le couplage de modèles, il est naturel de @@ -3846,24 +3186,6 @@ vérifiant la composition induite par la construction de $\modelM_0$ à partir d $\modelM_1$ et $\modelM_2$. -% Tout comme pour le coproduit, on peut se demander de comment faire quand les -% faits de référence ne sont pas accessible. En gros, est-ce qu'on peut avoir -% une cohérence globale sans pour autant avoir le référentiel ? La réponse est -% oui grace à un produit fibré dans Abs, c'est à dire une somme amalgamée dans -% Set... Au final, on obtient un ensemble qui n'est pas le plus concret possible -% sauf sur la partie requise... ENFIN A VERIFIER - - - - - - -%\FloatBarrier -%\subsection{Application à la modélisation proie-prédateur} - - - - \FloatBarrier \section{Conclusion et perspectives} Cette courte section vise à rappeler les principaux résultats obtenus suite à @@ -3968,502 +3290,3 @@ dans les CNN et la complexification structurelle de A. Ehresmann et J.-P. Vanbermeersch peuvent-ils simplement s'exprimer dans notre cadre? % Autre définition pour la catégorie des modèles que \cat{Abs}? - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -% \FloatBarrier -% \subsection{Présentation informelle} - -% Considérons un exemple simplifié, le modèle expérimental $M_0$ réuni -% toutes les mesures que nous avons pu faire pour le couple d'observable -% $(\obsn{Traction},\obsn{Volume})$ d'un ballon immergé dans de l'eau à -% \SI{20}{\celsius} rempli d'azote $N$, attaché à un point fixe $P$. L'observable -% \obsn{Traction} représente la force exercée par le ballon au point $P$, dirigée -% vers le haut et l'observable \obsn{Volume} représente le volume du ballon. - -% Après avoir longuement considéré les données récoltées, les deux modèles -% suivants sont proposés. - -% \[ -% M_1 = \big( \{ \obsn{Traction},\obsn{Volume} \}, \{ (F_A,V) \mid F_A = c_0 V \} -% \big) -% \] -% \[ -% \cfg(\obsn{Traction}) = \mathbb{R}_+ \qquad -% \cfg(\obsn{Volume}) = \left[ \SI{0,0}{} ; \SI{1,0}{} \right] -% \] -% Dans ce modèle le rapport entre observables découle de la loi décrivant la -% poussée d'Archimède où $c_0 = \rho_E g$ est la constante pour laquelle $\rho_E$ -% est la masse volumique de l'eau valant \SI{1,0}{\kilogram\per\metre\cubed} et -% $g$ est l'accélération de la pesanteur, valant \SI{9,81}{\newton\per\kilogram}. -% $F_A$ est la force verticale exprimée en \si{\newton} exercée par le ballon à -% son point d'attache $P$ dirigée vers le haut et $V$ en \si{\metre\cubed} est le -% volume de fluide déplacé, en l'occurence le volume du ballon. - -% \[ -% M_2 = \big( \{ \obsn{Traction},\obsn{Volume} \}, -% \{ (\mathit{faible},\mathit{petit}), -% (\mathit{faible},\mathit{moyen}), -% (\mathit{forte},\mathit{moyen}) , -% (\mathit{forte},\mathit{gros}) \} -% \big) -% \] -% \[ -% \cfg(\obsn{Traction}) = \{ \mathit{faible}, \mathit{forte} \} \qquad -% \cfg(\obsn{Volume}) = \{ \mathit{petit}, \mathit{moyen}, \mathit{gros}\} -% \] -% Dans ce second modèle, les observables sont décrites empiriquement par des -% valeurs discrètes symboliques. Ce modèle permet de comprendre le fonctionnement -% du système de manière qualitative. - -% Pour les besoins de l'exemple, nous considérerons que la relation entre les deux -% observables pour le modèle de référence $M_0$ est décrite par -% \[ -% M_0 = \big( -% \{ \obsn{Traction},\obsn{Volume} \}, \{ (F,V) \mid F = F_A - F_B \} -% \big) -% \] -% \[ -% \cfg(\obsn{Traction}) = \mathbb{R}_+ \qquad -% \cfg(\obsn{Volume}) = \left[ \SI{0,0}{} ; \SI{1,0}{} \right] -% \] -% $F_B = (m_B + m_G) g$ est le poids du ballon en \si{\newton} où $g$ est -% l'accélération de la pesanteur, -% \begin{itemize} -% \item $m_G = \rho_G V$ est la masse de gaz contenue dans le ballon où $\rho_G$ -% est la masse volumique de l'azote valant \SI{1,25}{\gram\per\liter} et -% \item $m_B = \SI{10}{\gram}$ est la masse du ballon vide. -% \end{itemize} -% Il est possible de réécrire $F_B$ en fonction de $V$, $F_B(V) = c_1 + c_2 V$ en -% prenant $c_1 = m_B g$ et $c_2 = \rho_G g$. Remarquons que $M_1$ est incomplet -% car il omet de prendre en compte le poids du ballon pour calculer la force au -% point $P$, ceci découle du fait que nous ayons choisi $M_0$ pour modèle de -% référence. - -% \bigskip -% Donnons ensuite les deux flèches de validation $v_{10} : \bhv_1 \rightarrow -% \bhv_0$ et $v_{20} : \bhv_2 \rightarrow \bhv_0$. Dans ce cas concret, les -% flèches de validation sont des \emph{fonctions} allant du comportement d'un -% modèle vers le comportement de notre modèle de référence. Elles peuvent être -% vues comme définissant une sémantique au modèle de départ dans le modèle de -% destination. Voici leurs définitions: -% \[ -% v_{10} = -% \begin{array}{rcl} -% \bhv_1 & \longrightarrow & \bhv_0\\ -% (f,v) & \longmapsto & (f - F_B(v),v) -% \end{array} -% \qquad -% v_{20} = -% \begin{array}{rcl} -% \bhv_2 & \longrightarrow & \bhv_0\\ -% (\mathit{faible},\mathit{petit}) & \longmapsto & (\SI{0,881}{} \mathop{,} \SI{0.10}{}) \\ -% (\mathit{faible},\mathit{moyen}) & \longmapsto & (\SI{4,309}{} \mathop{,} \SI{0.45}{}) \\ -% (\mathit{forte}, \mathit{moyen}) & \longmapsto & (\SI{5,289}{} \mathop{,} \SI{0.55}{}) \\ -% (\mathit{forte}, \mathit{gros}) & \longmapsto & (\SI{8,717}{} \mathop{,} \SI{0.90}{}) \\ -% \end{array} -% \] -% % f(v) = ((1 * g) - (rhoN * g) ) * v - .01 * g -% % g = 9.80665 N/kg -% % rhoN = 0.00124982 kg/L - -% De nombreux autres modèles existent et possèdent eux aussi une flèche de -% validation. Dans certaines conditions, il paraîtrait naturel que deux modèles -% soient reliés par une flèche d'\emph{abstraction}, indiquant que le modèle -% pointé est «plus détaillé» que le modèle d'origine. Dans le cas où on -% considérerait le modèle ultimement détaillé comme étant $M_\Omega$, une -% succession infinie de modèles liés par une flèche d'abstraction devrait aboutir -% à $M_\Omega$ à terme. Il est important de noter que, comme les modèles $M_1$ et -% $M_2$, les flèches de validation $v_{10}$ et $v_{20}$ sont arbitraires car elles -% proviennent de choix de modélisation. - -% \begin{figure}[ht] -% \centering -% \includegraphics[page=2,width=.45\textwidth]{model-relations} -% \caption{Représentation schématique de la relation d'abstraction entre trois -% modèles $M_1$, $M_2$ et $M_3$ assujettis à leur validation par rapport au -% modèle de référence $M_0$. $M_2$ est une abstraction de $M_1$ et il n'y a -% pas de relation connue entre $M_3$ et $M_2$} -% \label{fig:model-abstraction} -% \end{figure} - -% L'opération inverse de la flèche d'abstraction est la concrétisation. Cette -% flèche d'abstraction (en gras dans la \textsc{Fig.}~\ref{fig:model-abstraction}) -% est en lien étroit avec la flèche de validation. Il n'est toujours pas -% intéressant de considérer l'abstraction entre modèle indépendamment du système -% car cela revient à comparer des ensembles (cardinalité, sous-ensembles communs) -% dénués de sens. Comme nous l'avons présenté précédemment un modèle n'a de sens -% que par rapport au système qu'il modélise, dans notre cas par rapport à un autre -% modèle choisi comme référent. De ce fait un modèle \emph{complet} n'est pas -% seulement un comportement $\bhv$ muni d'observables mais un couple $(\bhv,v)$ -% comprenant le comportement et sa flèche de validation. Autrement dit un modèle -% complet vient avec sa sémantique. Nous verrons plus tard dans la construction -% formelle des flèches d'abstraction le sens de cette présentation. Nous allons -% donc considérer la flèche d'abstraction comme dépendante de la flèche de -% validation. - -% Considérons la construction d'une flèche abstraction sur l'exemple précédent, -% quelles fonctions nous permettraient de passer de $M_1$ à $M_2$ en respectant -% leurs liens à $M_0$ ? Une propriété intéressante est qu'il soit possible de -% parcourir le schéma de $M_1$ vers $M_0$ de deux manières équivalentes: -% \begin{itemize} -% \item Directement, en passant par $v_{20}$ ou -% \item Indirectement, en concrétisant d'abord $M_2$ en $M_1$ puis, en empruntant -% $v_{10}$. -% \end{itemize} -% Cette propriété ressemble beaucoup à la composition des fonctions. La fonction -% suivante respecte cette contrainte -% \[ -% a_{21} = -% \begin{array}{rcl} -% \bhv_2 & \longrightarrow & \bhv_1\\ -% (\mathit{faible},\mathit{petit}) & \longmapsto & (\SI{0,981}{} \mathop{,} \SI{0.10}{}) \\ -% (\mathit{faible},\mathit{moyen}) & \longmapsto & (\SI{4,413}{} \mathop{,} \SI{0.45}{}) \\ -% (\mathit{forte}, \mathit{moyen}) & \longmapsto & (\SI{5,394}{} \mathop{,} \SI{0.55}{}) \\ -% (\mathit{forte}, \mathit{gros}) & \longmapsto & (\SI{8,826}{} \mathop{,} \SI{0.90}{}) \\ -% \end{array} -% \] -% % g = 9.80665 N/kg -% % rhoE = 1kg / L - -% Définit de cette manière, on a bien la propriété $v_{20} = v_{10} \circ a_{21}$, -% où $\circ$ est l'opérateur de composition de fonction. $a_{21}$ est bien -% l'expression concrète d'une flèche d'abstraction. Plusieurs remarques: -% \begin{itemize} -% \item $a_{21}$ dépend de la définition de $v_{20}$ et $v_{10}$, changer l'une -% des deux change la définition de $a_{21}$; -% \item Pour deux flèches de validation données, il existe \emph{potentiellement} -% plusieurs flèches d'abstraction; -% \item Pour deux flèches de validation données, il n'existe \emph{pas -% nécessairement} une flèche d'abstraction. -% \end{itemize} -% Dans l'exemple que nous avons construit, $a_{21}$ est \emph{l'unique} flèche -% d'abstraction que l'on peut construire. - -% % \begin{figure}[ht] -% % \centering -% % \includegraphics[page=3,width=\textwidth]{model-relations} -% % \caption{Vue schématique d'une composition de modèles $M_1$ et $M_2$ -% % assujettis à leur validation par rapport au modèle référent $M_0$} -% % \label{fig:model-composition} -% % \end{figure} - - - - - - - - -% \subsection{Présentation catégorielle} - -% La théorie des catégories est une construction généraliste englobant la théorie des ensembles et permettant de représenter les structures des objets étudiés sous forme de diagramme. Ce cadre offre un fondement formel aux schémas que nous avons -% présentés ci-avant. - - -% % Faire une note sur classe vs ensemble -% \paragraph{Classe ou Ensemble.} -% Dans la section \ref{sec:model-system}, nous avons introduit les définitions de -% système et de modèle et nous avons présenté dans les sections suivantes -% différents modèles en plaçant le modèle même au centre de notre discours. Nous -% nous intéressons maintenant à différentes relations entre modèles comme la -% validation, l'abstraction ou la composition en leur donnant un sens concret, -% dans le cadre précédemment définit. - - -% \begin{mpo-exemple}[Catégorie \catOne] -% La catégorie $\catOne = (\{*\},\kid_*)$ est la catégorie dont l'unique objet -% est noté $*$ et son unique morphisme est noté $\kid_*$. -% \end{mpo-exemple} - - -% \subsection{Flèche de validation} -% La flèche de validation (\textsc{Fig.}~\ref{fig:model-validation}) représente la -% conservation du rapport entre le modèle et le système étudié par le biais d'un -% modèle particulier que nous appellerons modèle expérimental, noté $\wld$. C'est -% l'approche habituelle des sciences expérimentales: des mesures du système sont -% effectuées et notées puis un modèle explicatif est formulé pour retrouver ces -% données. Il est possible de comprendre cette flèche comme le \emph{sens} que -% l'on souhaite donner à un modèle, elle fourni dans ce cas une information -% sémantique. - -% \begin{mpo-definition}[Validation] -% Soit la catégorie $\cat{V} = (\setModel, \khom_\cat{V}, \kid_\cat{V}, -% \circ_\cat{V})$ où: -% \begin{enumerate} -% \item $\setModel$ est la classe des modèles; -% \item $\khom_\cat{V}(A,B): \bhv_A \rightarrow \bhv_B$, pour deux \objs{V} $A -% = (\sig_A,\bhv_A)$, $B = (\sig_B,\bhv_B)$, est l'ensemble des -% \emph{fonctions} (sur les ensembles) du \emph{comportement} de $A$ vers le -% \emph{comportement} de $B$; -% \item $\kid_\cat{V}$ est la \emph{fonction identité} habituelle et -% \item $\circ_\cat{V}$ est \emph{l'opérateur de composition de fonction} -% habituel. -% \end{enumerate} - -% Quand le contexte le permet, on n'indiquera pas nécessairement l'indice -% \cat{V}. - -% Soit $M_0 \in \setModel$ un modèle appelé \emph{modèle référent}, l'ensemble -% $\{ r \in \khom_V \mid \kcod(r) = m \}$ est appelé l'ensemble des -% \emph{flèches de validation}. - -% Remarque: il est possible de définir un foncteur d'oubli trivial $F : \cat{V} -% \rightarrow \cat{Set}$ qui retire la signature de chaque objet de \cat{V}. -% \end{mpo-definition} - -% De part la définition précédente, tout modèle peut-être un modèle référent et le -% choix est laissé libre au modélisateur en fonction des besoins. Néammoins, nous -% supposerons que le plus souvent un \emph{modèle expérimental} est de la forme -% $\wld = (\sig,\bhv)$ dans le cadre des sciences expérimentales. - - - - - - -% \subsection{Flèche d'abstraction} -% % Abstraction dépend de validation -% Pour décrire le rapport existant entre deux modèles d'un \emph{même système} -% nous utilisons les flèches de validation précédemment définies pour maintenir le -% rapport au système via le modèle référent. - - -% \begin{mpo-definition}[Comma-catégorie] -% Soit les trois catégories \cat{A}, \cat{B}, \cat{C} et les deux foncteurs $S$ -% et $T$ de sorte que: -% \begin{center} -% %\includegraphics[page=1,width=.45\textwidth]{model-categories} -% \includegraphics[page=1]{model-categories} -% \end{center} - -% La \emph{comma-catégorie}, notée $(S \downarrow T)$, est obtenue de la façon -% suivante: -% \begin{itemize} -% \item Les objets sont des triplets $(\alpha,\beta,f)$ où $\alpha \in \cat{A}$, -% $\beta \in \cat{B}$ et $f : S(\alpha) \rightarrow T(\beta)$ est un \mrph{C}; -% \item Les morphismes de $(\alpha,\beta,f)$ vers $(\alpha',\beta',f')$ sont -% toutes les paires $(g,h)$ où $g : \alpha \rightarrow \alpha'$ et $h : \beta -% \rightarrow \beta'$ sont des morphismes de \cat{A} et \cat{B}, -% respectivement de sorte que le diagramme suivant commute: -% \begin{center} -% \includegraphics[page=2]{model-categories} -% \end{center} -% \end{itemize} -% Les morphismes sont composés en transformant $(g,h) \circ (g',h')$ en $(g -% \circ g', h \circ h')$ pour tous les cas où cette expression est définie. Le -% morphisme identité d'un objet $(\alpha,\beta,f)$ est $(id_\alpha,id_\beta)$. -% \end{mpo-definition} - -% \begin{mpo-definition}[Catégorie des abstractions entre modèles] -% La \emph{catégorie des abstractions entre modèles}, notée \cat{Abs}, est la -% comma-catégorie obtenue sur la catégorie \cat{V}. En reprenant les trois -% catégories \cat{A}, \cat{B} et \cat{C} et les deux foncteurs $S$ et $T$ de la -% définition de comma-catégorie précédente, \cat{Abs} se construit en prenant: -% \begin{itemize} -% \item $\cat{A} = \cat{C} = \cat{V}$; -% \item $\cat{B} = \catOne$; -% \item $S$ comme foncteur identité; -% \item $T$ comme foncteur envoyant $*$ sur $M_0$, le modèle référent et -% $\kid_*$ sur le \mrph{V} identité de $M_0$. -% \end{itemize} -% Ainsi, les objets de \cat{Abs} sont les couples $(M,v)$, où $M \in \setModel$ -% et $v : M \rightarrow M_0$, pouvant aussi être notée $v_M$, est une flèche de -% validation. Un morphisme de \cat{Abs}, appelé \emph{flèche d'abtraction}, est -% une fonction $a : (M,v_M) \rightarrow (M',v_{M'})$ tel que le diagramme -% suivant commute: -% \begin{center} -% \includegraphics[page=3]{model-categories} -% \end{center} - -% Remarque: ce cas particulier de comma-catégorie est appelée \emph{slice -% category} que l'on note $(\cat{V} \downarrow M_0)$. -% \end{mpo-definition} - -% À l'instar de \cat{Set}, il existe un unique \obj{V} initial $M_I = -% (\sig_I,\emptyset)$. Ceci découle du fait que les morphismes de \cat{V} vont de -% comportement à comportement. - -% \begin{mpo-proposition}[Conservation des objets initiaux] -% Soient la catégorie \cat{V}, $M_R$, $M_I$, des \objs{V}, $i : M_I \rightarrow -% M_R$ un \mrph{V}. Si $M_I$ est un \obj{V} initial, alors $(M_I,i)$ est un -% objet initial de $(\cat{V} \downarrow M_R)$. -% \end{mpo-proposition} - -% \begin{proof} -% Soit $M = (\sig,\bhv)$ un \obj{V}. % -% L'objet de référence $M_R$ se note $(\sig_R,\bhv_R)$. % -% Par définition de l'objet initial, les \mrphs{V} $i : \emptyset \rightarrow -% \bhv_R$ et $j : \emptyset \rightarrow \bhv$ existent, sont uniques et sont -% deux applications vides. % -% Comme dans la catégorie des ensembles il existe au moins une fonction entre un -% ensemble quelconque et un ensemble non-vide, le morphisme $k : M \rightarrow -% M_R$ existe et $(M,k)$ est un objet de $(\cat{V} \downarrow M_R)$. % -% De par le fait que $i$ et $j$ soient deux applications vides, $i = k \circ j$ -% et le diagramme commute. % -% Ainsi, comme $(i,k) : (M_I,i) \rightarrow (M,k)$ est unique, $(M_I,i)$ est -% bien un objet initial de $(\cat{V} \downarrow M_R)$. -% \end{proof} - -% En revanche, cette propriété ne tient plus nécessairement en ce qui concerne la -% conservation des objets finaux. - -% \begin{mpo-proposition}[Non conservation d'un objet final dans \cat{Abs}] -% Soient la catégorie \cat{V}, $M_R$, $M_F$, des \objs{V}, $f : M_R \rightarrow -% M_F$ un \mrph{V}. Si $M_F$ est un \obj{V} final, alors $(M_F,f)$ n'est pas -% nécessairement un objet final de $(\cat{V} \downarrow M_R)$. -% \end{mpo-proposition} - -% \begin{proof} -% Construisons un contre exemple. % -% Soit $M_F = (\sig,\{ 1 \})$ un \obj{V}. % -% Comme dans la catégorie des ensembles il existe au moins une fonction entre un -% ensemble quelconque et un ensemble non-vide, le morphisme $h : M \rightarrow -% M_F$ existe, et comme le comportement de $M_F$ est un singleton, alors $h$ est -% unique, donc $M_F$ est bien un objet final de \cat{V}. % -% Soient -% \[ -% M_R = (\sig_{M_R}, \{ a , b \}) -% \qquad \text{et} \qquad -% M = (\sig_{M}, \{ \heartsuit, \spadesuit \}) -% \] -% deux \obj{V}. % -% Les deux morphismes $g : M \rightarrow M_R$ et $f : M_F \rightarrow M_R$ -% existent. % -% Fixons -% \[ -% f = -% \begin{array}{rcl} -% 1 & \longmapsto & a \\ -% \end{array} -% \qquad \text{et} \qquad -% g = -% \begin{array}{rcl} -% (\heartsuit,\spadesuit) & \longmapsto & b \\ -% \end{array} -% \] -% Dans ce cas, il n'existe pas de \mrph{V} $h$ tel que $g = f \circ h$ et il n'y -% a pas de morphisme entre les objets $(M,g)$ et $(M_F,f)$ dans la comma -% catégorie $(\cat{V} \downarrow M_R)$. $(M_F,f)$ n'est pas un objet final dans -% cette comma catégorie. -% \end{proof} - - -% \noindent -% En revanche, il existe un objet particulier de \cat{V} à l'origine d'un objet -% final dans \cat{Abs}. - -% \begin{mpo-proposition}[Objet final d'une slice category] -% Soient \cat{K} une catégorie, $O$ un \obj{K} et $\kid_O$, le \mrph{K} identité -% de $O$. $(O,\kid_{O})$ est un objet final de $(\cat{K} \downarrow O)$. -% \end{mpo-proposition} - -% \begin{proof} -% Soient $\cat{K} = (\mathcal{K},\khom,\kid,\circ)$ une -% catégorie, $O$ un \obj{K} et $\cat{L} = (\cat{K} \downarrow O)$ la -% comma-catégorie construite sur l'objet $O$. % -% Pour tout \mrph{K} $f : K \rightarrow O$, $(K,f)$ est un \obj{L}. % -% En particulier, $(O, id_O)$ est un \obj{L}. % -% Comme $f \circ \kid_O = f$, alors il existe un unique \mrph{L} -% \[ -% (f,\kid_O) : (K,\kid_O) \rightarrow (O,\kid_O). -% \] % -% Donc, $(O,\kid_O)$ est un objet final de \cat{L}. % -% \end{proof} - -% \begin{mpo-corollaire} -% Pour la catégorie \cat{V}, le modèle de référence $M_R$ et son \mrph{V} -% identité, $(M_R,\kid_{M_R})$ est un objet final de $(\cat{V} \downarrow M_R)$. -% \end{mpo-corollaire} - - - -% L'objet final de \cat{Abs} est \emph{essentiellement unique}, c'est-à-dire que -% s'il existait d'autres objets finaux dans \cat{Abs}, alors ils lui seraient -% isomorphes~\cite{adamek_abstract_2004}. - -% Nous remarquons que dans \cat{Abs}, ces objets initial et final forment les deux -% extrémités d'une \emph{hiérarchie} d'abstraction entre modèles où le modèle le -% plus abstrait est l'objet initial dont le comportement est vide et le modèle le -% moins abstrait est l'objet final, qui se trouve être le modèle de référence. De -% plus, par construction, il n'existe pas d'objet moins abstrait que le modèle de -% référence. - -% Enfin, si le modèle de référence est vide, il est à la fois objet initial et -% final et la hiérarchie «s'écrase». Le modèle de référence devient, dans ce cas, -% le seul objet de \cat{Abs}. - -% %Une seule proposition -% %Si sous-catégorie Abs, alors objet initial reste. -% %Si sous-catégorie Abs, alors objet final reste. - -% \subsection{Composition} -% %FILLME: M1->M12; M2->M12 => Composition de deux modèles d'un même système -% Pour la composition de modèle, nous faisons appel à la construction d'un -% pushout. Dans \cat{Set}, en prenant trois ensembles $X, Y, Z$, le pushout de -% deux fonctions $f : Z \rightarrow X$ et $g : Z \rightarrow Y$ correspond à -% l'union disjointe de $X$ et $Y$. - -% \begin{mpo-definition}[Pushout] -% Soit les trois objets $X, Y, Z$ et les morphismes $f : Z \rightarrow X$ et $g -% : Z \rightarrow Y$, le \emph{pushout} des morphismes $f, g$ consiste en un -% objet $P$ et deux morphismes $i_1 : X \rightarrow P$ et $i_2 : Y \rightarrow -% P$ tel que le diagramme suivant commute -% \begin{center} -% %\includegraphics[page=1,width=.45\textwidth]{model-categories} -% \includegraphics[page=4]{model-categories} -% \end{center} -% et soit \emph{universel}, c'est-à-dire que pour tout autre objet $Q$ et -% morphismes $i'_1 : X \rightarrow Q$ et $i'_2 : Y \rightarrow Q$ alors il -% existe un unique morphisme $u : P \rightarrow Q$ -% \begin{center} -% \includegraphics[page=5]{model-categories} -% \end{center} -% \end{mpo-definition} - - diff --git a/partie-otb.tex b/partie-otb.tex index f4b37f2..631ebc4 100644 --- a/partie-otb.tex +++ b/partie-otb.tex @@ -1,6 +1,5 @@ \chapter{Travelling Bacteria}\label{chap:partie-otb} \minitoc -%DONE: (WONTFIX) Rendre la figure plus claire \begin{figure}[h] \centerline{% \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; \end{description} -% \subsection{GRO} % Pourquoi pas GRO -% À l'instar de \gro~\cite{jang_specification_2012}, … - \subsection{\ocaml} % Adaptabilité, 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 @@ -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 usage chez Airbus. -%DONE: Repasser sur ça avec Antoine (WONTFIX) \paragraph{Langage de programmation fonctionnel} La programmation fonctionnelle est issue du $\lambda$-calcul, un modèle de calcul mathématique reposant sur des variables, des applications et des 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 $\lambda$-termes est la \emph{substitution} dont les deux principaux 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 dont le sens est différent, ce qui est représenté par deux types différents. -%modulaire \paragraph{Modularité native} 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 @@ -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. Enfin, \ocaml dispose de modules paramétriques nommés \emph{foncteurs} qui 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 \paragraph{Interface avec le langage C} 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 progression d'une simulation. -% Scalabilité -%détection dynamique de la configuration de l'utilisateur - -% Ouverture -%licence libre \subsection{Modélisation d'une cellule} \begin{figure}[t] \centering @@ -391,10 +358,6 @@ progression d'une simulation. \label{fig:ecoli} \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 \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. @@ -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 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 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 @@ -427,10 +389,8 @@ fonctionnelles~\cite{han_escherichia_2006}. \hline 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} \\ -% Masse & $m$ & 0 & g \\ Volume & $V$ & \num{1.4} & \si{\femto\liter} \\ 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} \\ \hline \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 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 biaisée vers une direction particulière. Elle détecte la variation \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 \ocaml. -%% Représentation schématique des modules \begin{figure}[ht] \centering \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 présent. -%% 3 vues du simulateur \begin{figure}[h] \centering \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] ] \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} 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} -% 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} -% 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 bloc suivant donne la liste des types impliqués dans le génome: \begin{SBGPcode} @@ -831,24 +777,8 @@ bloc suivant donne la liste des types impliqués dans le génome: "DEAD" ] \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} -% 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 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 @@ -865,49 +795,31 @@ Une instruction est décrite conformément à la structure suivante: \begin{SBGPcode} { "InstructionID" : ["param1", ... ,"paramN"] } \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 instructions \sbgp{} suivantes: \begin{itemize} \item \texttt{EmitSignal(s,q)}: dépose une quantité \ç|q| du morphogène \ç|s| à 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 \ç|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 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 inactive et réinitialisée; - % & die() \\ \item \texttt{Freeze()}: place le marqueur \ç|immobile| sur une bactérie. Dans cet état une bactérie est immobile et ne croît pas; - % & freeze() \\ \item \texttt{Unfreeze()}: retire le marqueur \ç|immobile|; - % & unfreeze() \\ \item \texttt{Divide(r)}: définit le taux de croissance de la bactérie à la valeur particulière \ç|r|; - % & set("ecoli\_growth\_rate",0.1) \\ \item \texttt{StopDivide()}: définit le taux de croissance de la bactérie comme 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 la valeur \ç|q|; - % & p := p + q \\ \item \texttt{Deplete(p,q)}: décrémente le compteur de morphogènes \ç|p| avec la valeur \ç|q|. - % & p := p - q \\ \end{itemize} \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 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 @@ -935,61 +847,30 @@ instructions \sbgp{} suivantes: opérations classiques de la logique booléenne; \item \texttt{EqThreshold(s,q)}: ce prédicat n'est vérifié que si la 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 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 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 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 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 concentration du morphogène \ç|s| est comprise strictement entre \ç|q1| et \ç|q2|; \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|; - % & p $=$ q \\ \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|; - % & p $<$ q \\ \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|; - % & p $>$ q \\ \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|; - % & p $<=$ q \\ \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|; - % & p $>=$ q \\ \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| 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} @@ -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 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. -% 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] 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 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 à blocs, aussi appelé automate à partitions, est un tuple $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} La fonction de transition locale $f$ induit une fonction de transition 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} \ForAll {$s \in \text{shift}$} { \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 régularité du pavage. -% def générale - 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 de $2\times 2$ cellules en deux dimensions, en cubes de $2\times 2\times 2$ @@ -1209,7 +1063,6 @@ automates à blocs): \] et \item shift est l'élément $\sum\limits_{i=1}^{n}{1\ g_i} \in M$. \end{itemize} -%restrictions \begin{figure}[ht] \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 à 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 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 @@ -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 du simulateur utilise la méthode d'Euler, la méthode d'intégration numérique la 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} \displaystyle \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, 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} \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 = (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$. -%\[ -% 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 l'arrière de la bactérie \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 \end{equation*} -%http://www.myphysicslab.com/collision.html#resting_contact - \noindent Après résolution des équations précédentes pour $j$, on obtient \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 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} \SetKwData{Evol}{evol} \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}{ \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} $j \gets projection(H,(c[i].px,c[i].py))$\; @@ -2107,16 +1859,6 @@ simulation s'effectue de la façon suivante: \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 \section{Mise en œuvre}\label{sec:mise-en-oeuvre} 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} \label{fig:reaction-BZ} \end{figure} -%DONE: (WONTFIX) rapport temps réel/temps simulé -% Physique sectorisation! \subsection{Sectorisation d'une population de \ecoli{}} 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 @@ -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. \end{itemize} -% Retour critique - - \subsection{Perspectives} Nos travaux futurs s'articulent autour des grands axes suivants, dont l'objectif principal est la pérennisation d'\otb comme outil de simulation: \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] 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 @@ -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 bactéries. -% Effectuer des test de performance pour valider l'efficacité de l'algorithme -% par rapport à GRO \item[Performance] La performance actuelle du simulateur \otb provient principalement d'une 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 \gro~\cite{jang_specification_2012}. -% Retravailler le GUI \item[Interface de sortie] L'interface utilisateur de \otb est à ce jour rudimentaire. Pour qu'un plus 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 temps de la simulation comme, par exemple, l'orientation moyenne des bactéries, leur nombre, leur taille moyenne, leur volume moyen, etc. -% Refaire l'interface d'entrée + \item[Interface d'entrée] 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 @@ -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 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] De part sa conception, \otb est modulaire et extensible. Une piste 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 lien avec le point «Calibration» en fonction des besoins. -% Passer à l'hexagonal \item[Grille hexagonale] 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 @@ -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 collision du moteur physique. -% Collection topologique OTB \item[\mgs] 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 @@ -2504,209 +2227,3 @@ l'objectif principal est la pérennisation d'\otb comme outil de simulation: \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 -% diff --git a/resume.tex b/resume.tex index c6c8563..de2547f 100644 --- a/resume.tex +++ b/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 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} \huge\textsc{Abstract} \end{center} \begin{english} \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 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, 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 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. -%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 molecular level, the cellular level, the organ level in biology, then we call this technique multi-level modelling. -%Ces niveaux sont organisés et interagissent. 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 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 local and global properties, for instance between those of an entity and its 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 of its underlying formalism, of a system and of some of the relations models 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 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 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 description of the system (an abstraction). This method automatically computes the active sub-collection of a model, without any knowledge about the quiescent 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 study of morphogenesis in a population of \ecoli bacteria. We provide a generic algorithm for the parallel simulation of two-dimensional cellular automata 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. This model is the result of the coupling of three “simple” (base) models: a physical model, describing how bacteria collide, a chemical model, describing