Initial commit
This commit is contained in:
parent
d8de609e06
commit
91c8b7ceca
38 changed files with 2698 additions and 0 deletions
43
activity.in.mgs.tex
Normal file
43
activity.in.mgs.tex
Normal file
|
@ -0,0 +1,43 @@
|
|||
\newcounter{savedenum}
|
||||
\newcommand*{\saveenum}{\setcounter{savedenum}{\theenumi}}
|
||||
\newcommand*{\resume}{\setcounter{enumi}{\thesavedenum}}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{L'activité dans \mgs}
|
||||
\framesubtitle{Quelles sont les dynamiques de mon système ?}
|
||||
|
||||
\begin{itemize}
|
||||
\small
|
||||
\item Occurences d'état (quel état de la simulation est actif?)
|
||||
\item Occurences de temps (quand la simultaion est-elle active?)
|
||||
\item Occurences d'espace
|
||||
\begin{itemize}
|
||||
\item Général: l'\alert{activité} est localisée où les évènements ont lieu
|
||||
\item Modèle basé sur les interactions: l'\alert{activité} est localisée
|
||||
où les interactions ont lieu
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\begin{columns}[t]
|
||||
\column{.5\textwidth}
|
||||
\begin{enumerate}
|
||||
\item Comment comprendre l'activité dans le contexte du formalisme \mgs ?
|
||||
\begin{itemize}
|
||||
\item L'activité est localisée où \structure{un motif d'une transformation
|
||||
match}
|
||||
\end{itemize}
|
||||
\saveenum
|
||||
\end{enumerate}
|
||||
|
||||
\column{.5\textwidth}
|
||||
\begin{enumerate}
|
||||
\resume
|
||||
\item Comment suivre l'activité une fois qu'une règle d'une transformation a été
|
||||
appliquée?
|
||||
\begin{itemize}
|
||||
\item L'activité progresse \structure{de proche en proche} (comme une vague)
|
||||
\item On peut restreindre le filtrage de motif à la \structure{partie active} du
|
||||
modèle
|
||||
\end{itemize}
|
||||
\end{enumerate}
|
||||
\end{columns}
|
||||
\end{frame}
|
66
activity.motivation.tex
Normal file
66
activity.motivation.tex
Normal file
|
@ -0,0 +1,66 @@
|
|||
\begin{frame}{Activité spatiale d'un feu de forêt}
|
||||
|
||||
\begin{columns}
|
||||
\column{.9\textwidth}
|
||||
\begin{block}{Définition}
|
||||
\begin{quote}
|
||||
[…] activity is considered as a \structure{measure of the number of events}
|
||||
occuring during in a simulation.
|
||||
\end{quote}
|
||||
\centering
|
||||
\mkCitation{Muzy et al.: “Activity Regions for the Specication of
|
||||
Discrete Event Systems”, 2010}
|
||||
\end{block}
|
||||
\end{columns}
|
||||
|
||||
\begin{columns}
|
||||
\column{.5\textwidth}
|
||||
\begin{center}
|
||||
\begin{tikzpicture}
|
||||
\node[anchor=south west,inner sep=0pt,gridded] (img) at (0,0) {
|
||||
\includegraphics[width=\textwidth]{raster/forest-fire}
|
||||
};
|
||||
\uncover<2>{
|
||||
\clip (img.south west) rectangle (img.north east);
|
||||
\fill[forest,opacity=.7]
|
||||
(25mm,0) .. controls (43mm,22mm) and (35mm,35mm) .. (1cm,4cm |- img.north)
|
||||
-- (img.north east)
|
||||
-- (img.south east)
|
||||
-- cycle;
|
||||
\fill[ashes,opacity=.7]
|
||||
(0,0)
|
||||
-- (25mm,0) .. controls (43mm,22mm) and (35mm,35mm) .. (1cm,4cm |- img.north)
|
||||
-- (img.north west)
|
||||
-- cycle;
|
||||
\draw[fire,line width=2mm,cap=round]
|
||||
(25mm,0) .. controls (43mm,22mm) and (35mm,35mm) .. (1cm,4cm |- img.north);
|
||||
}
|
||||
\end{tikzpicture}\\
|
||||
\mkCitation{National Park Service, Alaska Region - Currant Creek Fire,
|
||||
Lake Clark NP, 6-26, NPS PhotoUploaded by AlbertHerring, Public Domain,
|
||||
\url{https://commons.wikimedia.org/w/index.php?curid=29598171}}
|
||||
\end{center}
|
||||
|
||||
\column{.5\textwidth}
|
||||
\begin{itemize}
|
||||
\item \structure{Système}: Feu de forêt
|
||||
\item \structure{Formalisme}: MGS
|
||||
\item \structure{Modèles}:
|
||||
\begin{enumerate}
|
||||
\item un automate à 3 états
|
||||
\item \structure{[Karafyllidis et Thanailakis, 1997]}
|
||||
\end{enumerate}
|
||||
\end{itemize}
|
||||
|
||||
\medskip
|
||||
\begin{itemize}
|
||||
\item Observation:
|
||||
\begin{itemize}
|
||||
\item \textcolor{ashes}{cendres} (à gauche)
|
||||
\item \textcolor{fire}{feu} (au milieu)
|
||||
\item \textcolor{forest}{forêt} (à droite)
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{columns}
|
||||
|
||||
\end{frame}
|
187
chemical.model.tex
Normal file
187
chemical.model.tex
Normal file
|
@ -0,0 +1,187 @@
|
|||
\begin{frame}{Moteur chimique}
|
||||
|
||||
\begin{columns}
|
||||
\column{.7\textwidth}\centering
|
||||
\begin{itemize}
|
||||
\item \structure{Modèle}
|
||||
\begin{itemize}
|
||||
\item Réaction-Diffusion-Évaporation à la Turing
|
||||
\medskip
|
||||
\item EDP couplées
|
||||
\begin{equation*}
|
||||
\frac{\partial\orr\varphi}{\partial t} =
|
||||
\orr{\text{X}}(\orr\varphi) +
|
||||
\orr{\text{D}} \cdot
|
||||
\nabla^2\orr\varphi
|
||||
- \orr{\text{E}} \cdot \orr\varphi
|
||||
\end{equation*}
|
||||
\end{itemize}
|
||||
\item \structure{Simulation}
|
||||
\begin{itemize}
|
||||
\item Discrétisation de type différences finies sur un automate
|
||||
cellulaire 2D
|
||||
\medskip
|
||||
\item Algorithme Propagation Parallèle à la Margolus (PPM)
|
||||
\begin{itemize}
|
||||
\item Simuler un automate cellulaire sur un support SIMD
|
||||
\item Faire correspondre la segmentation de l'espace aux processus
|
||||
\item Éviter les accès concurrents à la même zone mémoire
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
|
||||
\column{.2\textwidth}
|
||||
\moteurs[structure!30]
|
||||
\end{columns}
|
||||
|
||||
% Animation du «calque» de démonstration de PPM
|
||||
\uncover<2->{
|
||||
\tikz[overlay,opacity=.95,transform canvas={scale around=.8:(current page.center)}]
|
||||
\draw[black,fill=white,rounded corners,ultra thick]
|
||||
(current page.south west) rectangle (current page.north east);
|
||||
\only<2-7>{
|
||||
\tikz[overlay] \node[anchor=center] at (current page.center) {
|
||||
\begin{tikzpicture}[
|
||||
cell/.style={black,size=1.5mm,circle,inner sep=0pt,font=\TINY},
|
||||
neighbor cell/.style={black,size=1.5mm,circle,inner sep=0pt,font=\small},
|
||||
center cell/.style={cell,white,fill=black},
|
||||
spy using outlines={circle,red,size=58mm,magnification=4,connect spies}]
|
||||
\begin{scope}[scale=.5]
|
||||
\clip (-27mm,-27mm) rectangle (27mm,27mm);
|
||||
|
||||
% Background
|
||||
\only<2,4-6>{%
|
||||
\fill[blue!50,shift={(5mm,5mm)}] (-1cm,-1cm) rectangle (1cm,1cm);
|
||||
\fill[red!50,shift={(-5mm,-5mm)}] (-1cm,-1cm) rectangle (1cm,1cm);
|
||||
}
|
||||
\only<3,6->{%
|
||||
\fill[red!50,shift={(-5mm,-5mm)}] (-1cm,-1cm) rectangle (1cm,1cm);
|
||||
\fill[blue!50,shift={(5mm,5mm)}] (-1cm,-1cm) rectangle (1cm,1cm);
|
||||
}
|
||||
|
||||
\only<4-7>{
|
||||
\begin{scope}
|
||||
\clip (-3mm,-3mm) rectangle (3mm,3mm);
|
||||
\draw[very thin] (-5mm,-5mm) grid (5mm,5mm);
|
||||
\end{scope}
|
||||
}
|
||||
\only<4-6>{
|
||||
\begin{scope}[shift={(-1cm,0)}]
|
||||
\clip (-3mm,-3mm) rectangle (3mm,3mm);
|
||||
\draw[very thin] (-5mm,-5mm) grid (5mm,5mm);
|
||||
\end{scope}
|
||||
\begin{scope}[shift={(-1cm,-1cm)}]
|
||||
\clip (-3mm,-3mm) rectangle (3mm,3mm);
|
||||
\draw[very thin] (-5mm,-5mm) grid (5mm,5mm);
|
||||
\end{scope}
|
||||
\begin{scope}[shift={(0cm,-1cm)}]
|
||||
\clip (-3mm,-3mm) rectangle (3mm,3mm);
|
||||
\draw[very thin] (-5mm,-5mm) grid (5mm,5mm);
|
||||
\end{scope}
|
||||
}
|
||||
\only<2,3>{
|
||||
\node[center cell,font=\small] at ( -0mm, -0mm) {$A$};
|
||||
\node[cell,font=\small] at (-10mm, -0mm) {$B$};
|
||||
\node[cell,font=\small] at (-10mm,-10mm) {$C$};
|
||||
\node[cell,font=\small] at ( -0mm,-10mm) {$D$};
|
||||
}
|
||||
\only<2,3,4>{
|
||||
% Voisins
|
||||
\node[neighbor cell] at ( 1cm, 0cm) {$v_{A,1}$};
|
||||
\node[neighbor cell] at ( 1cm, 1cm) {$v_{A,2}$};
|
||||
\node[neighbor cell] at ( 0cm, 1cm) {$v_{A,3}$};
|
||||
\node[neighbor cell] at (-1cm, 1cm) {$v_{B,1}$};
|
||||
\node[neighbor cell] at (-2cm, 1cm) {$v_{B,2}$};
|
||||
\node[neighbor cell] at (-2cm, 0cm) {$v_{B,3}$};
|
||||
\node[neighbor cell] at (-2cm,-1cm) {$v_{C,1}$};
|
||||
\node[neighbor cell] at (-2cm,-2cm) {$v_{C,2}$};
|
||||
\node[neighbor cell] at (-1cm,-2cm) {$v_{C,3}$};
|
||||
\node[neighbor cell] at ( 0cm,-2cm) {$v_{D,1}$};
|
||||
\node[neighbor cell] at ( 1cm,-2cm) {$v_{D,2}$};
|
||||
\node[neighbor cell] at ( 1cm,-1cm) {$v_{D,3}$};
|
||||
}
|
||||
\only<4>{
|
||||
\begin{scope}[scale=0.5,shift={(-5mm,-5mm)}]
|
||||
\node[center cell] at ( -0mm, -0mm) {$A$};
|
||||
\node[cell] at (-10mm, -0mm) {$B$};
|
||||
\node[cell] at (-10mm,-10mm) {$C$};
|
||||
\node[cell] at ( -0mm,-10mm) {$D$};
|
||||
|
||||
\node[cell] at ( 1cm, 0cm) {$v_{A,1}$};
|
||||
\node[cell] at ( 1cm, 1cm) {$v_{A,2}$};
|
||||
\node[cell] at ( 0cm, 1cm) {$v_{A,3}$};
|
||||
\node[cell] at (-1cm, 1cm) {$v_{B,1}$};
|
||||
\node[cell] at (-2cm, 1cm) {$v_{B,2}$};
|
||||
\node[cell] at (-2cm, 0cm) {$v_{B,3}$};
|
||||
\node[cell] at (-2cm,-1cm) {$v_{C,1}$};
|
||||
\node[cell] at (-2cm,-2cm) {$v_{C,2}$};
|
||||
\node[cell] at (-1cm,-2cm) {$v_{C,3}$};
|
||||
\node[cell] at ( 0cm,-2cm) {$v_{D,1}$};
|
||||
\node[cell] at ( 1cm,-2cm) {$v_{D,2}$};
|
||||
\node[cell] at ( 1cm,-1cm) {$v_{D,3}$};
|
||||
\end{scope}
|
||||
}
|
||||
\only<5>{
|
||||
\begin{scope}[scale=0.5,shift={(-5mm,-5mm)}]
|
||||
\node[center cell] at ( -0mm, -0mm) {$A'$};
|
||||
\node[cell] at (-10mm, -0mm) {$B'$};
|
||||
\node[cell] at (-10mm,-10mm) {$C'$};
|
||||
\node[cell] at ( -0mm,-10mm) {$D'$};
|
||||
\end{scope}
|
||||
}
|
||||
\only<6>{
|
||||
\begin{scope}[scale=0.5,shift={(5mm,5mm)}]
|
||||
\node[center cell] at ( -0mm, -0mm) {$A'$};
|
||||
\node[cell] at (-10mm, -0mm) {$B'$};
|
||||
\node[cell] at (-10mm,-10mm) {$C'$};
|
||||
\node[cell] at ( -0mm,-10mm) {$D'$};
|
||||
\end{scope}
|
||||
\begin{scope}[scale=0.5,shift={(-15mm,5mm)}]
|
||||
\node[cell] at ( -0mm, -0mm) {$A'$};
|
||||
\node[cell] at (-10mm, -0mm) {$B'$};
|
||||
\node[cell] at (-10mm,-10mm) {$C'$};
|
||||
\node[cell] at ( -0mm,-10mm) {$D'$};
|
||||
\end{scope}
|
||||
\begin{scope}[scale=0.5,shift={(-15mm,-15mm)}]
|
||||
\node[cell] at ( -0mm, -0mm) {$A'$};
|
||||
\node[cell] at (-10mm, -0mm) {$B'$};
|
||||
\node[cell] at (-10mm,-10mm) {$C'$};
|
||||
\node[cell] at ( -0mm,-10mm) {$D'$};
|
||||
\end{scope}
|
||||
\begin{scope}[scale=0.5,shift={(5mm,-15mm)}]
|
||||
\node[cell] at ( -0mm, -0mm) {$A'$};
|
||||
\node[cell] at (-10mm, -0mm) {$B'$};
|
||||
\node[cell] at (-10mm,-10mm) {$C'$};
|
||||
\node[cell] at ( -0mm,-10mm) {$D'$};
|
||||
\end{scope}
|
||||
}
|
||||
\only<7>{
|
||||
\begin{scope}[scale=0.5,shift={(5mm,5mm)}]
|
||||
\node[center cell] at ( -0mm, -0mm) {$A'$};
|
||||
\node[cell] at (-10mm, -0mm) {$B'$};
|
||||
\node[cell] at (-10mm,-10mm) {$C'$};
|
||||
\node[cell] at ( -0mm,-10mm) {$D'$};
|
||||
\end{scope}
|
||||
}
|
||||
|
||||
% Grilles:
|
||||
\draw[xshift=5mm,yshift=5mm,thin] ( -5cm, -5cm) grid ( 5cm, 5cm);
|
||||
\only<2,4-6>{\draw[xshift=5mm,yshift=5mm, step=2cm, thick]%
|
||||
( -5cm, -5cm) grid ( 5cm, 5cm);}
|
||||
\only<3,7>{\draw[xshift=-5mm,yshift=-5mm, step=2cm, thick]%
|
||||
( -5cm, -5cm) grid ( 5cm, 5cm);}
|
||||
|
||||
\only<2,4-6>{
|
||||
\coordinate (spyhook) at (-5mm,-5mm);
|
||||
}
|
||||
\only<3,7>{
|
||||
\coordinate (spyhook) at (5mm,5mm);
|
||||
}
|
||||
\end{scope}
|
||||
|
||||
\spy on (spyhook) in node (zoom) at (5cm,0);
|
||||
\end{tikzpicture}
|
||||
};
|
||||
}
|
||||
}
|
||||
\end{frame}
|
17
closing.tex
Normal file
17
closing.tex
Normal file
|
@ -0,0 +1,17 @@
|
|||
\begin{frame}[plain,noframenumbering]{}
|
||||
\Huge\centering
|
||||
\includegraphics[width=.6\textwidth]{vector/discussion.pdf}
|
||||
|
||||
\bigskip
|
||||
Questions!
|
||||
\end{frame}
|
||||
|
||||
\bgroup
|
||||
\setbeamercolor{background canvas}{bg=black}
|
||||
|
||||
\begin{frame}[plain,noframenumbering]{}
|
||||
\centering
|
||||
\Huge\color{base03}
|
||||
Lumière!
|
||||
\end{frame}
|
||||
\egroup
|
24
decision.model.tex
Normal file
24
decision.model.tex
Normal file
|
@ -0,0 +1,24 @@
|
|||
\begin{frame}
|
||||
\frametitle{Moteur comportemental}
|
||||
|
||||
\begin{columns}
|
||||
\column{.7\textwidth}\centering
|
||||
\begin{itemize}
|
||||
\item \structure{Couplage} entre le moteur chimique et le moteur
|
||||
physique
|
||||
\begin{itemize}
|
||||
\item Déclencher des actions individuelles ($R, T, G, D, A$)
|
||||
\item Consommer ($C$) ou synthétiser ($S$) des morphogènes
|
||||
\end{itemize}
|
||||
\medskip
|
||||
\item \structure{Exemples}
|
||||
\begin{enumerate}
|
||||
\item Sectorisation
|
||||
\item Cercles concentriques
|
||||
\end{enumerate}
|
||||
\end{itemize}
|
||||
|
||||
\column{.2\textwidth}\moteurs[transparent][transparent][structure!30]
|
||||
\end{columns}
|
||||
|
||||
\end{frame}
|
144
ecoli.model.tex
Normal file
144
ecoli.model.tex
Normal file
|
@ -0,0 +1,144 @@
|
|||
\tikzset{
|
||||
bacillus/.style={draw,fill=white,shape=rounded rectangle,minimum width=2cm,
|
||||
minimum height=5mm,inner sep=0,anchor=center},
|
||||
backshape/.style={densely dotted},
|
||||
arrowz/.style={line cap=round,ultra thick,-Stealth,black!50},
|
||||
tumbler/.style={transform canvas={rotate around=38:(tumble.center)},
|
||||
shorten <=2pt}
|
||||
}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Moteur physique: spécification}
|
||||
\begin{columns}
|
||||
\column{.7\textwidth}\centering
|
||||
\begin{itemize}
|
||||
\item \structure{Dynamique individuelle}:
|
||||
|
||||
\begin{center}
|
||||
\begin{tikzpicture}[node distance=7mm]
|
||||
\node (outrun) {
|
||||
\begin{tikzpicture}[rotate=90,baseline]
|
||||
\node[bacillus,backshape,rotate=90] (run) {};
|
||||
\node[bacillus,yshift=4mm,rotate=90] {};
|
||||
\draw[arrowz] (run.center) -- +(1cm,0);
|
||||
\end{tikzpicture}
|
||||
};
|
||||
\node[right=of outrun] (outumble) {
|
||||
\begin{tikzpicture}[rotate=90,baseline]
|
||||
\node[bacillus,backshape,rotate=90] (tumble) {};
|
||||
\node[bacillus,rotate around=128:(tumble.center)] {};
|
||||
\draw[arrowz,tumbler]
|
||||
(tumble.north east) to ($(tumble.north east) + (0,5mm)$);
|
||||
\draw[arrowz,tumbler]
|
||||
(tumble.south west) to ($(tumble.south west) + (0,-5mm)$);
|
||||
\end{tikzpicture}
|
||||
};
|
||||
\node[right=of outumble] (outgrow) {
|
||||
\begin{tikzpicture}[rotate=90,baseline]
|
||||
\node[bacillus,minimum width=2.2cm,minimum height=6mm,rotate=90] (grow) {};
|
||||
\node[bacillus,backshape,rotate=90,anchor=center] at (grow.center) {};
|
||||
\end{tikzpicture}
|
||||
};
|
||||
\node[right=of outgrow] (outdivide) {
|
||||
\begin{tikzpicture}[rotate=90,baseline]
|
||||
\node[bacillus,backshape,rotate=90] (divide) {};
|
||||
\node[bacillus,minimum width=1cm,anchor=west,rotate=90] at (divide.west) {};
|
||||
\node[bacillus,minimum width=1cm,anchor=east,rotate=90] at (divide.east) {};
|
||||
\end{tikzpicture}
|
||||
};
|
||||
\node[right=of outdivide] (outdie) {
|
||||
\begin{tikzpicture}[rotate=90,baseline]
|
||||
\node[bacillus,backshape,rotate=90] {};
|
||||
\end{tikzpicture}
|
||||
};
|
||||
|
||||
\node[below=12mm of outrun.center] {$R$};
|
||||
\node[below=12mm of outumble.center] {$T$};
|
||||
\node[below=12mm of outgrow.center] {$G$};
|
||||
\node[below=12mm of outdivide.center] {$D$};
|
||||
\node[below=12mm of outdie.center] {$A$};
|
||||
\end{tikzpicture}
|
||||
\end{center}
|
||||
|
||||
\medskip
|
||||
\item \structure{Dynamique collective}:
|
||||
\begin{itemize}
|
||||
\item \structure{Entrer} en collision avec ses voisines
|
||||
\item \structure{Inhiber} sa croissance (densité des bactéries)
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
|
||||
\column{.2\textwidth}\moteurs[transparent][structure!30]
|
||||
\end{columns}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Moteur physique: modèle}
|
||||
\begin{columns}
|
||||
\column{.75\textwidth}\centering
|
||||
\begin{columns}
|
||||
\column{.6\textwidth}
|
||||
\begin{itemize}
|
||||
\item \structure{Bactérie virtuelle}
|
||||
\begin{itemize}
|
||||
\item Centre de masse, angle, \\longueur ($l$), rayon ($r$)
|
||||
\item Inertie ($I$), masse ($m$)
|
||||
\item Vitesse linéaire, vitesse angulaire, vitesse de croissance
|
||||
\item Âge de la membrane \\
|
||||
{\small\structure{[Stewart 2005]}}
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\column{.4\textwidth}
|
||||
\begin{center}
|
||||
\includegraphics[page=1,width=\textwidth]{vector/bacteria}
|
||||
\end{center}
|
||||
\end{columns}
|
||||
\begin{columns}
|
||||
\column{.4\textwidth}
|
||||
\begin{center}
|
||||
\includegraphics[page=3,width=\textwidth]{vector/collision-these}
|
||||
\end{center}
|
||||
\column{.6\textwidth}
|
||||
\begin{itemize}
|
||||
\item \structure{Collision}
|
||||
\begin{itemize}
|
||||
\item Conservation des moments
|
||||
\item Conservation des quantités de mouvement
|
||||
\item Théorie de l'impulsion
|
||||
\end{itemize}
|
||||
\medskip\footnotesize
|
||||
\begin{equation*}
|
||||
j = \displaystyle\frac{-(1 + Cr)\ \orr{v}_{ac12} \cdot{} \orr{n}} { 1/m_1 +
|
||||
1/m_2 + (\orr{r}_1 \wedge \orr{n})^2 / I_1 + (\orr{r}_2 \wedge \orr{n})^2
|
||||
/ I_2}
|
||||
\end{equation*}
|
||||
\end{itemize}
|
||||
\end{columns}
|
||||
\column{.2\textwidth}\moteurs[transparent][structure!30]
|
||||
\end{columns}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Moteur physique: réalisation}
|
||||
\begin{columns}
|
||||
\column{.7\textwidth}\centering
|
||||
\begin{itemize}
|
||||
\item \structure{Implémentation} sur automate cellulaire 2D du modèle agent
|
||||
\bigskip
|
||||
\item \structure{Utilisation de PPM}
|
||||
\begin{itemize}
|
||||
\item $N$ bactéries par cellule
|
||||
\item Traitement par bloc de $2 \times 2$
|
||||
\item Tri des bactéries « voyageuses »
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\begin{center}
|
||||
\begin{tikzpicture}
|
||||
\node[anchor=south west,inner sep=0] (img) at (0,0) {\includegraphics[width=5cm]{raster/ecoli-ca}};
|
||||
\draw (img.south west) grid (img.north east);
|
||||
\draw[very thick,step=2cm] (img.south west) grid (img.north east);
|
||||
\end{tikzpicture}
|
||||
\end{center}
|
||||
|
||||
\column{.2\textwidth}\moteurs[transparent][structure!30]
|
||||
\end{columns}
|
||||
\end{frame}
|
26
example.dla.tex
Normal file
26
example.dla.tex
Normal file
|
@ -0,0 +1,26 @@
|
|||
\begin{frame}%[label=this one]
|
||||
\frametitle{Résultats préliminaires (DLA)}
|
||||
\framesubtitle{Filtrage sur zone active}
|
||||
\begin{columns}
|
||||
\column{.55\textwidth}
|
||||
\begin{block}{Exemple: diffusion limitée par aggrégation}
|
||||
\begin{itemize}
|
||||
\item Mise en évidence de la \structure{population des cellules mobiles}
|
||||
\item Speedup \structure{moins important} (bien que toujours linéaire en la
|
||||
quantité de cellules actives)
|
||||
\end{itemize}
|
||||
\end{block}
|
||||
\column{.4\textwidth}\centering
|
||||
\animate<2-10>% Doesn't work with zathura
|
||||
\animatevalue<1-10>{\currentimg}{0}{773}
|
||||
\includegraphics[width=.45\textwidth]{animation/dla-normal-frame-\the\currentimg.png}
|
||||
\hspace{1mm}
|
||||
\includegraphics[width=.45\textwidth]{animation/dla-active-frame-\the\currentimg.png}
|
||||
\end{columns}
|
||||
\bigskip
|
||||
\hspace{5mm}
|
||||
\includegraphics[height=3.5cm]{raster/shots-dla.png}
|
||||
\hfill
|
||||
\includegraphics[height=3.55cm]{raster/graph-dla.png}
|
||||
\hspace{5mm}
|
||||
\end{frame}
|
26
example.forest.fire.tex
Normal file
26
example.forest.fire.tex
Normal file
|
@ -0,0 +1,26 @@
|
|||
\begin{frame}
|
||||
\frametitle{Résultats préliminaires (feu de forêt)}
|
||||
\framesubtitle{Filtrage sur zone active}
|
||||
\begin{columns}
|
||||
\column{.55\textwidth}
|
||||
\begin{block}{Exemple: application au feu de forêt}
|
||||
\begin{itemize}
|
||||
\item Mise en évidence du \structure{front de propagation}
|
||||
\item Speedup \structure{important} (linéaire en la quantité de cellules actives)
|
||||
\end{itemize}
|
||||
\end{block}
|
||||
\column{.4\textwidth}\centering
|
||||
\animate<2-10>% Doesn't work with zathura
|
||||
\animatevalue<1-10>{\currentimg}{0}{138}
|
||||
\includegraphics[width=.45\textwidth]{animation/ffire-active-frame-\the\currentimg.png}
|
||||
\hspace{1mm}
|
||||
\includegraphics[width=.45\textwidth]{animation/ffire-normal-frame-\the\currentimg.png}
|
||||
\end{columns}
|
||||
\bigskip
|
||||
\hspace{5mm}
|
||||
\includegraphics[height=3.5cm]{raster/shots-ffire.png}
|
||||
\hfill
|
||||
\includegraphics[height=3.55cm]{raster/graph-ffire.png}
|
||||
\hspace{5mm}
|
||||
\end{frame}
|
||||
|
35
experimental.model.tex
Normal file
35
experimental.model.tex
Normal file
|
@ -0,0 +1,35 @@
|
|||
\begin{frame}{Différents types de modèles (formalismes)}
|
||||
|
||||
\begin{itemize}
|
||||
\item Cadre minimal commun: la \alert{théorie des ensembles}
|
||||
{\Large \[ \model \leadsto \ensm \]}
|
||||
|
||||
\pause
|
||||
\item Exemples
|
||||
\end{itemize}
|
||||
|
||||
\centering
|
||||
\rowcolors[]{1}{}{black!5}
|
||||
\begin{tabular}{lll}
|
||||
\textbf{Type} & \textbf{Modèle \model} & \textbf{Ensemble support \ensm} \\\hline
|
||||
Expérimental & $\ensm$ & Donné par extension
|
||||
\\
|
||||
À observables & $\langle \sigm,\bhvm \rangle$
|
||||
& $\bhvm \subseteq \sigm$
|
||||
\\
|
||||
%monoïde + fonction de transition
|
||||
Dynamique & $\langle \bhvm,\timm,\phim \rangle$
|
||||
&
|
||||
$\{ (x,\delta,\Phi_{\model}(x,\delta)) \mid x\in\bhvm, \delta \in \timm \}$
|
||||
\\
|
||||
%deux espaces topo + une fonction continue
|
||||
À base de champs & $\langle \chsm,\chvm,\funm \rangle$
|
||||
& $\{ (x,f_{\model}(x)) \mid x \in \chsm \}$
|
||||
\\
|
||||
%un espace mesurable et une probabilité sur cet espace
|
||||
Probabiliste & $\langle \mesm,\prom \rangle$
|
||||
& $\{ (A,\prom(A)) \mid A\in\trim \}$
|
||||
\end{tabular}
|
||||
|
||||
\end{frame}
|
||||
|
87
formalism.model.system.tex
Normal file
87
formalism.model.system.tex
Normal file
|
@ -0,0 +1,87 @@
|
|||
\begin{frame}{Système, Modèle, Formalisme}
|
||||
\framesubtitle{Définitions}
|
||||
|
||||
\begin{center}
|
||||
%\includegraphics[height=3cm]{vector/stub-formlism-model-system}
|
||||
\begin{tikzpicture}[
|
||||
%font=\small
|
||||
node distance=1cm and 3cm]
|
||||
\node[draw] (model) {Modèle};
|
||||
\node[draw,below right=2cm of model] (system) {Système};
|
||||
\node[draw,right=of model] (formalism) {Formalisme};
|
||||
|
||||
\draw[shorten <=3pt,shorten >=3pt,-Stealth] (formalism) to
|
||||
node[auto,swap,font=\small] {description} (model);
|
||||
\draw[shorten <=3pt,shorten >=3pt,very thick,line cap=round,<->,
|
||||
out=170,in=-70] (system) to node[auto,font=\small] {sémantique} (model);
|
||||
%node[auto,font=\small] {explique}
|
||||
|
||||
\coordinate (absconc) at ($(barycentric cs:model=1,system=1) + (5cm,0)$);
|
||||
\draw [dashed] (barycentric cs:model=1,system=1) -- +(6cm,0) -- +(-3cm,0);
|
||||
\node[label=above:Abstrait,label=below:Concret] at (absconc) {};
|
||||
\end{tikzpicture}
|
||||
\end{center}
|
||||
%
|
||||
\begin{itemize}
|
||||
\item \structure{Système}\\
|
||||
\small objet d'étude décomposé en parties
|
||||
\medskip
|
||||
\item \structure{Modèle}\\
|
||||
\small vue simplifiée du système (abstraction) dont l'existence est
|
||||
dépendante du système
|
||||
\medskip
|
||||
\item \structure{Formalisme}\\
|
||||
\small langage, support d'expression du modèle
|
||||
\end{itemize}
|
||||
|
||||
|
||||
\end{frame}
|
||||
|
||||
|
||||
\begin{frame}{Système, Modèle, Formalisme}
|
||||
\framesubtitle{Points de vue sur les systèmes de Lindenmayer, $(\Sigma,w_0,P)$}
|
||||
|
||||
\begin{itemize}
|
||||
\item \emph{L-System} comme \structure{formalisme} \\
|
||||
{\small support de la description de la croissance des plantes}
|
||||
\item \emph{L-System} comme \structure{modèle} \\
|
||||
{\small modèle de calcul comme $\lambda$-calcul, machines de Turing,
|
||||
grammaires de Chomsky, …}
|
||||
\item \emph{L-System} comme \structure{système} \\
|
||||
{\small objet d'étude formel dont un modèle pourrait être les fonctions de
|
||||
croissance}
|
||||
\end{itemize}
|
||||
|
||||
\medskip
|
||||
\begin{columns}
|
||||
\column{.33\textwidth}
|
||||
\includegraphics[height=.4\textheight]{raster/lsystem-formalism}
|
||||
\column{.33\textwidth}
|
||||
\includegraphics[height=.4\textheight]{vector/lsystem-model}
|
||||
\column{.33\textwidth}
|
||||
%\includegraphics[width=\textwidth]{raster/lsystem-system}
|
||||
\begin{tikzpicture}
|
||||
\node[draw, text width=.9\textwidth] {\small
|
||||
$$f(n) = | w_n |$$
|
||||
|
||||
$ \left\{\begin{array}{l}
|
||||
a \rightarrow ab\\
|
||||
b \rightarrow b
|
||||
\end{array}\right. \qquad f(n) = n+1$
|
||||
|
||||
\medskip
|
||||
$ \left\{\begin{array}{l}
|
||||
a \rightarrow b\\
|
||||
b \rightarrow ab
|
||||
\end{array}\right. \qquad f(n) = \text{fib}(n)$
|
||||
};
|
||||
\end{tikzpicture}\\
|
||||
\end{columns}
|
||||
\begin{columns}[t]
|
||||
\column{.4\textwidth}\centering
|
||||
\mkCitation{P. Prusinkiewicz, A. Lindenmayer: “The algorithmic beauty of plants (the virtual laboratory)”, 1990}
|
||||
\column{.6\textwidth}\centering
|
||||
\mkCitation{G. Rozenberg, A. Salomaa: “The mathematical theory of L-Systems”, DAIMI Report Series, 3(33), 1974}
|
||||
\end{columns}
|
||||
|
||||
\end{frame}
|
174
handout.tex
Normal file
174
handout.tex
Normal file
|
@ -0,0 +1,174 @@
|
|||
\documentclass{article}
|
||||
|
||||
\newcommand{\action}[1]{\emph{(#1)}}
|
||||
|
||||
\begin{document}
|
||||
|
||||
|
||||
\input{title}
|
||||
Mesdames, Messieurs, bienvenue à ma soutenance de thèse de doctorat en
|
||||
informatique.
|
||||
Je souhaiterai commencer cette présentation en remerciant les membres de mon
|
||||
jury, ici présents, d'avoir accepté notre invitation à participer à cette
|
||||
soutenance.
|
||||
|
||||
Entrons, si vous le voulez bien, dans le vif du sujet.
|
||||
|
||||
\input{synbiotic.presentation}
|
||||
Comme vous le savez peut-être, ma thèse a été en partie financée sur le
|
||||
projet ANR blanc SYNBIOTIC, et mon sujet de thèse est directement issue des
|
||||
problématiques abordées par ce projet. SYNBIOTIC s'est étalé sur 3 ans, de
|
||||
2011 à 2014, et a mobilisé une quinzaine de chercheurs, principalement en
|
||||
informatique. Comme l'annonce la présentation officielle du projet:
|
||||
\begin{citation}
|
||||
La motivation finale est de permettre l'exploitation des propriétés
|
||||
collectives d'une population bactérienne pour créer des biosystèmes
|
||||
artificiels répondant à divers besoins dans le domaine de la santé, des
|
||||
nanotechnologies, de l'énergie et de la chimie.
|
||||
\end{citation}
|
||||
Il s'agit ici de suivre le principe même de la biologie synthétique: monter
|
||||
en abstraction et oublier les détails de fonctionnement, car l'objectif est
|
||||
de \emph{spécifier} un comportement de la population. Par exemple, omettre
|
||||
le détail du fonctionnement d'un réseau de régulation génétique au profit de
|
||||
l'ingénierie directe des formes.
|
||||
|
||||
\action{montrer la flèche vers le haut sur le schéma}
|
||||
|
||||
L'approche empruntée est issue d'un domaine ayant fait ses preuves en ce qui
|
||||
concerne la gestion de la complexité: l'informatique. L'idée est d'utiliser
|
||||
le principe de la \emph{compilation}, qui permet de transformer un programme,
|
||||
décrivant un comportement abstrait, vers une série de chiffres binaires exécutés
|
||||
par le processeur.
|
||||
|
||||
Nous utilisons ce procédé pour constituer le chemin du retour, de la
|
||||
spécification d'une forme à l'échelle de la population vers le réseau de
|
||||
régulation génétique de chaque individu. Le projet décrit ainsi une tour de
|
||||
langages (informatique) permettant de compiler successivement la spécification
|
||||
des formes vers un langage de programmation spatiale (L1), de L1 vers un langage
|
||||
de programmation orienté entitée (L2) et enfin de L2 vers un langage orienté
|
||||
réseau de régulation génétique (L3).
|
||||
|
||||
Au cours de mon travail de thèse, je suis intervenu à différents étages de cette
|
||||
tour: dans la deuxième partie de cette présentation nous parlerons de l'activité
|
||||
dans MGS, le langage L1 et dans la troisième nous parlerons de OTB un simulateur
|
||||
dont le langage d'entrée est L2.
|
||||
|
||||
\input{problem.statement}
|
||||
Comme je viens de vous le décrire, il suffit de trouver un compilateur pour
|
||||
passer d'un étage à l'étage inférieur de cette tour. Malheureusement, ça n'est
|
||||
pas aussi simple.
|
||||
|
||||
Je souhaiterai attirer votre attention sur deux points essentiels qui me
|
||||
permettront de poser la problématique. Le premier porte sur la sémantique.
|
||||
|
||||
(en pointant le schéma compilation)
|
||||
I. En informatique.
|
||||
|
||||
Soit une fonction f, dans un certain langage de programmation bien connu,
|
||||
disons C. Après compilation, nous obtenons cette suite d'instructions en
|
||||
assembleur intel x86. Ces instructions peuvent être exécutées par le processeur
|
||||
de votre ordinateur et le comportement que vous pouvez observer correspond bien,
|
||||
par construction, à la fonction f.
|
||||
|
||||
Imaginons que vous n'aviez pas connaissance de cette fonction, et que vous
|
||||
disposiez uniquement des instructions en assembleur. Avec beaucoup de travail,
|
||||
vous pourriez deviner quel était la fonction f. Cette activité a d'ailleurs un
|
||||
nom, c'est le reverse-engineering.
|
||||
|
||||
C'est mon premier point: la fonction f \emph{n'existe pas} en tant qu'objet
|
||||
de première classe dans les instructions en assembleur. Cette fonction
|
||||
disparaît à la compilation. Le vocabulaire des deux niveaux est distinct, mais
|
||||
néammoins suffisamment proche pour pouvoir les lier (c'est bien là le rôle du
|
||||
compilateur).
|
||||
|
||||
II. En biologie.
|
||||
|
||||
La difficulté est d'un cran supérieur: cette fonction f est issue d'un
|
||||
support partiellement connu, pas des effets d'émergence. Les interactions au
|
||||
niveau local sont complexes (1+1=3) et dûrement prédictibles. Notre but est
|
||||
d'ingénierer l'émergence (WP1).
|
||||
|
||||
Problématique : le niveau local et le niveau global décrivent deux mondes, deux
|
||||
univers différents que nous chercherons à lier.
|
||||
|
||||
Comment parler en même temps du niveau local et du niveau global dans une seule
|
||||
et même description ? Nous apportons des pistes de réflexion dans la première
|
||||
partie de cette présentation.
|
||||
|
||||
\input{plan}
|
||||
C'est le plan
|
||||
|
||||
\mkPart{Multi-niveau}
|
||||
\input{multimodel}
|
||||
Nous l'avons vu en introduction, notre problématique est de décrire le lien
|
||||
qu'il existe entre deux mondes: le niveau global et le niveau local. Ce sont
|
||||
potentiellement deux modèles décrivant le \emph{même système} de deux points
|
||||
de vues différents.
|
||||
|
||||
Nous nous sommes d'abord interessés à ce que l'on trouve dans la littérature en
|
||||
ce qui concerne la modélisation multimodèle. Voici trois exemples emblématiques
|
||||
de trois manières d'envisager la question:
|
||||
|
||||
(figure)
|
||||
|
||||
1) Couplage de modèles
|
||||
Nous prenons l'exemple d'un multimodèle d'une cellule entière (image de la
|
||||
publication). 28 modèles tirés d'études antérieures sont rassemblés et mettent à
|
||||
jour un ensemble de 16 variables propres à la cellule. Ces modèles sont exécutés
|
||||
en isolation et en parallèle. Une partie du travail de cette équipe de recherche
|
||||
a été d'arbitrer la mise à jour des valeurs de chacune des variables de la
|
||||
cellule. En effet ces variables sont lues et écrites par chacun des modèles.
|
||||
Elles constituent de plus le lien entre chacun de ces modèles.
|
||||
|
||||
Cette construction est adhoc car elle dépend explicitement des spécificités de
|
||||
chacun des modèles. Elle nécessite d'ajouter des programmes pour effectuer
|
||||
la traduction en entrée et en sortie de chaque modèle importé. C'est un
|
||||
fonctionnement en boîte noire où on ne connaît que les entrées et sorties des
|
||||
modèles.
|
||||
|
||||
2) Transformation de modèles
|
||||
Nous prenons l'exemple de l'ingénierie des modèles en informatique, dont le but
|
||||
est de travailler \emph{directement} sur les modèles, et de les faire évoluer au
|
||||
moyen de transformations de modèles. Par exemple, il est possible de spécifier
|
||||
l'ajout d'une fonctionnalité à un programme en conservant certaines propriétés,
|
||||
directement au niveau du modèle. Un exemple emblématique de l'ingénierie des
|
||||
modèles est le langage UML (pour Unified Model Language). Dans ce langage de
|
||||
spécification graphique, un modèle est constitué d'un ensemble diagrammes
|
||||
décrivant son fonctionnement. Cette description opère à un niveau plus abstrait
|
||||
que celui de l'implémentation.
|
||||
|
||||
3) Complexification
|
||||
Nous prenons cette fois sur la méthodologie MENS (Memory Evolutive Neural
|
||||
Systems) dont une des applications proposée porte sur la modélisation des
|
||||
interactions neuronales.
|
||||
|
||||
|
||||
|
||||
\input{formalism.model.system}
|
||||
\input{experimental.model}
|
||||
\input{predator.prey}
|
||||
\input{model.category}
|
||||
%\input{representing.space}
|
||||
%\input{representing.time}
|
||||
%\input{representing.space.time.interaction}
|
||||
\mkPart{Activité spatiale}
|
||||
\input{mgs.topological.collections}
|
||||
\input{mgs.topological.transformations}
|
||||
\input{simple.ff.example}
|
||||
\input{activity.in.mgs}
|
||||
\input{where.is.activity}
|
||||
\input{wave.algorithm}
|
||||
\input{example.forest.fire}
|
||||
\input{example.dla}
|
||||
\mkPart{OTB}
|
||||
\input{otb.general}
|
||||
\input{otb.architecture}
|
||||
\input{sbgp}
|
||||
\input{ecoli.model}
|
||||
\input{chemical.model}
|
||||
\input{decision.model}
|
||||
\input{otb.sectorisation}
|
||||
\input{otb.stable.pop}
|
||||
\input{otb.ppm}
|
||||
\input{closing}
|
||||
\end{document}
|
140
introduction.tex
Normal file
140
introduction.tex
Normal file
|
@ -0,0 +1,140 @@
|
|||
\begin{frame}{Le projet ANR SynBioTIC (2011—2015)}
|
||||
\framesubtitle{Biologie synthétique}
|
||||
|
||||
\begin{columns}
|
||||
\column{.6\textwidth}
|
||||
\begin{itemize}
|
||||
% Abstraction, Découplage, Composition (ingénierie)
|
||||
\item \structure{Biologie synthétique}
|
||||
\begin{itemize}
|
||||
\item Génie génétique \\
|
||||
Production d'insuline par \structure{une} bactérie\\
|
||||
\structure{[Riggs et Itakura, 1978]}
|
||||
\item \structure{Abstraction}, standardisation, découplage
|
||||
\end{itemize}
|
||||
\medskip
|
||||
\item Projet exploratoire:
|
||||
« permettre l'exploitation des \structure{propriétés collectives} d'une
|
||||
population bactérienne pour créer des biosystèmes artificiels.»\\
|
||||
\medskip
|
||||
\end{itemize}
|
||||
|
||||
\column{.3\textwidth}
|
||||
\centering
|
||||
\tourdelangages[white][white][white]
|
||||
\tikz[overlay,abs/.style={ultra thick,-Stealth,thick,transform canvas={xshift=2mm}}]
|
||||
\draw[abs] (genotype.east) to node[anchor=base,rotate=-90,yshift=1mm] {abstraction} (population.east);
|
||||
\end{columns}
|
||||
\end{frame}
|
||||
|
||||
%\newsavebox{\haskellfib}
|
||||
%\begin{lrbox}{\haskellfib}
|
||||
%\end{lrbox}
|
||||
%\usebox{\haskellfib}
|
||||
|
||||
\begin{frame}[fragile]{Problématique}
|
||||
\framesubtitle{compilation et multi-niveau}
|
||||
|
||||
\centering
|
||||
\begin{tikzpicture}[%
|
||||
node distance=15mm,
|
||||
wp/.style={draw},%
|
||||
compilation/.style={compilcol,line width=5mm,-Triangle Cap},
|
||||
emergence/.style={alert,thick,-Stealth,decorate,decoration={snake,
|
||||
amplitude=.5mm,segment length=2mm,post length=2mm}}]
|
||||
\uncover<2-> {
|
||||
\node[wp] (ibn) {%
|
||||
\begin{tikzpicture}
|
||||
\clip (0cm,0cm) rectangle (3cm,2cm);
|
||||
\node[anchor=center,yshift=-9mm] at (15mm,1cm) {%
|
||||
\includegraphics[width=3cm]{vector/binary}};
|
||||
\end{tikzpicture}
|
||||
};
|
||||
}
|
||||
\begin{onlyenv}<2->
|
||||
\node[wp,above=of ibn] (ihn) {%
|
||||
\begin{tikzpicture}
|
||||
\clip (0cm,0cm) rectangle (3cm,2cm);
|
||||
\node[anchor=center,text width=3cm] at (15mm,1cm) {%
|
||||
\small
|
||||
\lstset{style=haskell}
|
||||
\begin{lstlisting}
|
||||
fib 0 = 0
|
||||
fib 1 = 1
|
||||
fib n = fib (n-1)
|
||||
+ fib (n-2)
|
||||
\end{lstlisting}
|
||||
};
|
||||
\node[anchor=center,minimum width=3cm, minimum height=2cm,fill=white,
|
||||
opacity=0.9] at (15mm,1cm){\fontsize{55pt}{0}$f$};
|
||||
\end{tikzpicture}%
|
||||
};
|
||||
\draw[compilation] (ihn) to node[auto] {Compilation} (ibn);
|
||||
\end{onlyenv}
|
||||
\node[wp,right=3cm of ibn,label=below:{\small Niveau local}] (bbn) {%
|
||||
\begin{tikzpicture}
|
||||
\clip (0cm,0cm) rectangle (3cm,2cm);
|
||||
\node[anchor=center,yshift=9mm] at (15mm,1cm) {%
|
||||
\includegraphics[height=37mm]{vector/ecolihelix}};
|
||||
\end{tikzpicture}
|
||||
};
|
||||
\node[wp,above=of bbn,label=above:{\small Niveau global}] (bhn) {%
|
||||
\begin{tikzpicture}
|
||||
\clip (0cm,0cm) rectangle (3cm,2cm);
|
||||
\node[anchor=center] at (15mm,1cm) {%
|
||||
\includegraphics[width=3cm]{vector/petri}};
|
||||
\end{tikzpicture}
|
||||
};
|
||||
\draw[emergence,transform canvas={xshift=-1cm}] (bbn) to (bhn);%
|
||||
\draw[emergence,transform canvas={xshift=1cm}] (bbn) to (bhn);%
|
||||
\visible<1-2>{
|
||||
\draw[emergence] (bbn) to node[black,fill=white,opacity=.8]
|
||||
{émergence} (bhn);
|
||||
}%
|
||||
\visible<3>{
|
||||
\draw[compilation] (bhn) to (bbn);
|
||||
}
|
||||
\uncover<2->{
|
||||
\node[right=4mm of ihn,text width=2cm, align=center]
|
||||
{\small Haut niveau\\ de description};
|
||||
\node[right=4mm of ibn,text width=2cm, align=center]
|
||||
{\small Bas niveau\\ de description};
|
||||
}
|
||||
\end{tikzpicture}
|
||||
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}%[label=this one]
|
||||
\frametitle{Le projet ANR \textsc{SynBioTIC} (2011—2015)}
|
||||
|
||||
\begin{columns}
|
||||
\column{.8\textwidth}
|
||||
\begin{itemize}
|
||||
\item Découpe en work-package
|
||||
\begin{itemize}
|
||||
\item \textcolor{black!40}{WP1: Études des formes, fourni des exemples}
|
||||
\item \structure<2>{WP2: Programmation spatiale (L1)}
|
||||
\item \structure<2>{WP3: Programmation orienté entité (L2)}
|
||||
\item WP4: Réseau de régulation génétique (L3)
|
||||
\item \textcolor{black!40}{WP5: Calculabilité}
|
||||
\item \textcolor{black!40}{WP6: Sûreté, sécurité}
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
|
||||
\column{.2\textwidth}
|
||||
\centering
|
||||
\tourdelangages[white][white][white][compilcol]
|
||||
\begin{tikzpicture}[overlay,
|
||||
wp/.style={draw,text width=2cm,font=\footnotesize,align=center,
|
||||
minimum width=22mm, minimum height=12mm},
|
||||
]
|
||||
%\path (population) to node[auto,xshift=-2mm,swap] {Compilation} (phenotype);
|
||||
%\path (phenotype) to node[auto,xshift=-2mm,swap] {Compilation} (genotype);
|
||||
\uncover<2>{
|
||||
\node[structure,left=1mm of population] {L1};
|
||||
\node[structure,left=1mm of phenotype] {L2};
|
||||
\node[left=1mm of genotype] {L3};
|
||||
}
|
||||
\end{tikzpicture}
|
||||
\end{columns}
|
||||
\end{frame}
|
317
main.tex
Normal file
317
main.tex
Normal file
|
@ -0,0 +1,317 @@
|
|||
\documentclass[10pt,table]{beamer}
|
||||
|
||||
\usepackage{pgfpages}
|
||||
%\includeonlyframes{this one}
|
||||
%[,label=this one]
|
||||
|
||||
\usepackage{polyglossia}
|
||||
\setmainlanguage{french}
|
||||
\setotherlanguage{english}
|
||||
|
||||
% Do this BEFORE unicode-math
|
||||
\usepackage{amsfonts}
|
||||
\usepackage{amsmath}
|
||||
\usepackage{mathrsfs}
|
||||
\usepackage{amssymb}
|
||||
\usepackage{siunitx}
|
||||
|
||||
\usefonttheme{professionalfonts}
|
||||
\usepackage{unicode-math}
|
||||
% Do this AFTER any math font package (see fontspec doc)
|
||||
\usepackage{fontspec}
|
||||
\defaultfontfeatures{Scale=MatchLowercase,Mapping=tex-text}
|
||||
\setromanfont{Fontin}[
|
||||
Path = fonts/ ,
|
||||
Extension = .ttf ,
|
||||
UprightFont = *-Regular ,
|
||||
BoldFont = *-Bold ,
|
||||
ItalicFont = *-Italic ,
|
||||
SmallCapsFont = *-SmallCaps ]
|
||||
\setsansfont{Fontin-Sans}[
|
||||
Path = fonts/ ,
|
||||
Extension = .otf ,
|
||||
UprightFont = *-Regular ,
|
||||
BoldFont = *-Bold ,
|
||||
ItalicFont = *-Italic ,
|
||||
BoldItalicFont = *-BoldItalic ,
|
||||
SmallCapsFont = *-SmallCaps ]
|
||||
%\setmonofont[Scale=0.8]{Hack}
|
||||
\setmonofont{FantasqueSansMono}[
|
||||
Path = fonts/ ,
|
||||
Extension = .ttf ,
|
||||
UprightFont = *-Regular ,
|
||||
BoldFont = *-Bold ,
|
||||
ItalicFont = *-Italic ,
|
||||
BoldItalicFont = *-BoldItalic ]
|
||||
|
||||
\setmathfont[mathbf=sym] {Asana-Math}[
|
||||
Path = fonts/ ,
|
||||
Extension = .otf ]
|
||||
|
||||
\usepackage{xspace}
|
||||
\usepackage{xltxtra}
|
||||
\usepackage{tikz}
|
||||
\usepackage{tabularx}
|
||||
\usepackage{pdfpages}
|
||||
%\usetikzlibrary{shadows}
|
||||
\usetikzlibrary{arrows.meta}
|
||||
\usetikzlibrary{backgrounds}
|
||||
\usetikzlibrary{bending}
|
||||
\usetikzlibrary{calc}
|
||||
\usetikzlibrary{decorations.pathmorphing}
|
||||
\usetikzlibrary{decorations.text}
|
||||
\usetikzlibrary{fit}
|
||||
\usetikzlibrary{positioning}
|
||||
\usetikzlibrary{shapes}
|
||||
\usetikzlibrary{spy}
|
||||
|
||||
|
||||
\usepackage{listings}
|
||||
\lstdefinestyle{haskell}{%
|
||||
language=Haskell}
|
||||
|
||||
\usepackage{xparse} % LaTeX3 command declaration
|
||||
|
||||
\usetheme{Pittsburgh}
|
||||
\usecolortheme{orchid}
|
||||
|
||||
%Titre + sous-titre c'est mieux.
|
||||
\title{Modélisation multi-niveau}
|
||||
\subtitle{Un cadre théorique pour l'intégration des niveaux d'organisation dans
|
||||
les modèles. Applications à l'activité spatiale et à la simulation de grandes
|
||||
populations de bactéries.}
|
||||
|
||||
\author{Martin \textsc{Potier}}
|
||||
\institute[UPE]{Université Paris-Est}
|
||||
\date{6 juillet 2017}
|
||||
|
||||
\tikzstyle{every picture}+=[remember picture]
|
||||
\tikzset{
|
||||
diagonal fill/.style 2 args={fill=#2, path picture={
|
||||
\fill[#1, sharp corners] (path picture bounding box.south west) -|
|
||||
(path picture bounding box.north east) -- cycle;}},
|
||||
reversed diagonal fill/.style 2 args={fill=#2, path picture={
|
||||
\fill[#1, sharp corners] (path picture bounding box.north west) |-
|
||||
(path picture bounding box.south east) -- cycle;}}
|
||||
}
|
||||
\setbeamersize{text margin left=1mm,text margin right=1mm}
|
||||
%\setbeamercovered{dynamic}
|
||||
\beamertemplatenavigationsymbolsempty
|
||||
\setbeamertemplate{section in toc}[sections numbered]
|
||||
\setbeamertemplate{itemize items}[default]
|
||||
\setbeamertemplate{enumerate items}[default]
|
||||
\setbeamertemplate{section in toc shaded}[default][20]
|
||||
%\setbeamercovered{transparent=20}
|
||||
%\setbeamercolor{structure}{fg=blue}
|
||||
\setbeamertemplate{footline}{
|
||||
\begin{tikzpicture}[overlay]
|
||||
\node [anchor=center,white,fill=structure,circle,
|
||||
minimum size=7mm,text height=3.5mm,text depth=1.5mm,inner sep=1pt]
|
||||
at ($(current page) + (64mm,-49mm) + (-5mm,6mm)$)
|
||||
%{\insertframenumber~/~\inserttotalframenumber}
|
||||
{\large\insertframenumber};
|
||||
\end{tikzpicture}
|
||||
}
|
||||
\setbeamertemplate{frametitle}{
|
||||
\color{structure}
|
||||
%\bfseries
|
||||
\insertframetitle
|
||||
\par
|
||||
\vskip-12pt
|
||||
\pgfmathsetmacro{\progress}{\insertframenumber/\inserttotalframenumber}
|
||||
\pgfmathsetmacro{\progress}{126*\progress}
|
||||
\tikz[overlay]{\draw[structure,thick,gridded]
|
||||
(0,0) -- (\progress mm,0);}\par
|
||||
}
|
||||
|
||||
% Solarized set
|
||||
\definecolor{base03}{HTML}{002B36}
|
||||
\definecolor{base02}{HTML}{073642}
|
||||
\definecolor{base01}{HTML}{586E75}
|
||||
\definecolor{base00}{HTML}{657B83}
|
||||
\definecolor{base0}{HTML}{839496}
|
||||
\definecolor{base1}{HTML}{93A1A1}
|
||||
\definecolor{base2}{HTML}{EEE8D5}
|
||||
\definecolor{base3}{HTML}{FDF6E3}
|
||||
\definecolor{orange}{HTML}{CB4B16}
|
||||
\definecolor{red}{HTML}{DC322F}
|
||||
\definecolor{green}{HTML}{859900}
|
||||
\definecolor{yellow}{HTML}{B58900}
|
||||
\definecolor{magenta}{HTML}{D33682}
|
||||
\definecolor{violet}{HTML}{6C71C4}
|
||||
\definecolor{blue}{HTML}{268BD2}
|
||||
\definecolor{cyan}{HTML}{2AA198}
|
||||
|
||||
% Partie multi
|
||||
\colorlet{compilcol}{black!80}
|
||||
% Partie activité
|
||||
\colorlet{active}{red}
|
||||
\colorlet{ashes}{gray!60!black}
|
||||
\colorlet{fire}{orange!70!red}
|
||||
\colorlet{forest}{green}
|
||||
\colorlet{frontier}{green}
|
||||
\colorlet{quiescent}{blue}
|
||||
% Partie OTB
|
||||
\colorlet{c} {blue!60}
|
||||
\colorlet{ocaml} {green!60}
|
||||
\colorlet{opencl} {red!60}
|
||||
\colorlet{sbgp} {magenta!60}
|
||||
|
||||
\newcount\currentimg % used in animations
|
||||
|
||||
%Commands and aliases
|
||||
\newcommand{\mgs}{MGS\xspace}
|
||||
\newcommand{\voisinde}[1]{%
|
||||
\usebeamercolor{structure}%
|
||||
\tikz[baseline,every node/.style={circle,anchor=base,inner sep=.5mm}]{%
|
||||
\draw[draw=none] node (#1) {,};%
|
||||
\uncover<2->{\node[draw,fg] (c#1) {,};}%
|
||||
}}
|
||||
\newcommand{\mkPart}[1]{\section{#1}\input{plan}}
|
||||
\newcommand{\model}{\ensuremath{\mathfrak{M}}}
|
||||
\newcommand{\bhvm}{\ensuremath{\mathfrak{B}_{\mathfrak{M}}}}
|
||||
\newcommand{\ensm}[1][]{\ensuremath{E_{\mathfrak{M}_{#1}}}}
|
||||
\newcommand{\mref}{\ensuremath{E_{\text{Réf}}}}
|
||||
\newcommand{\sigm}{\ensuremath{\Sigma_{\mathfrak{M}}}}
|
||||
\newcommand{\timm}{\ensuremath{\mathbb{T}_{\mathfrak{M}}}}
|
||||
\newcommand{\phim}{\ensuremath{\Phi_{\mathfrak{M}}}}
|
||||
\newcommand{\chsm}{\ensuremath{\mathbb{S}_{\mathfrak{M}}}}
|
||||
\newcommand{\chvm}{\ensuremath{\mathbb{V}_{\mathfrak{M}}}}
|
||||
\newcommand{\funm}{\ensuremath{f_{\mathfrak{M}}}}
|
||||
\newcommand{\mesm}{\ensuremath{\mathbb{X}_{\mathfrak{M}}}}
|
||||
\newcommand{\prom}{\ensuremath{\mathbb{P}_{\mathfrak{M}}}}
|
||||
\newcommand{\trim}{\ensuremath{\mathcal{A}_{\mathfrak{M}}}}
|
||||
\newcommand{\orr}[1]{\ensuremath{\vec{#1}}}
|
||||
\newcommand{\mkCitation}[1]{{\Tiny\textcolor{gray}{{#1}}\par}}
|
||||
\newcommand{\tocshowonlycurrentsection}{}
|
||||
%\newcommand{\tourdelangages}[4][white][white][white][white]{
|
||||
\DeclareDocumentCommand{\tourdelangages}{ O{transparent} O{transparent} O{transparent} O{transparent} }{
|
||||
\begin{tikzpicture}[overlay,%
|
||||
every node/.style={inner sep=1mm},
|
||||
wp/.style={draw,text width=2cm,font=\footnotesize,align=center,
|
||||
minimum width=22mm, minimum height=12mm},
|
||||
compilation/.style={#4,line width=5mm,-Triangle Cap}]
|
||||
\node[wp,anchor=east,xshift=-8mm] (phenotype) at (current page.east) {
|
||||
\begin{tikzpicture}
|
||||
\clip (0cm,0cm) rectangle (2cm,1cm);
|
||||
\node[anchor=center] at (1cm,0.5cm) {\includegraphics[height=1cm]{vector/badecoli}};
|
||||
\end{tikzpicture}
|
||||
};
|
||||
\node[wp,below=of phenotype] (genotype) {
|
||||
\begin{tikzpicture}
|
||||
\clip (0cm,0cm) rectangle (2cm,1cm);
|
||||
\node[anchor=center] at (2mm,0.5cm) {\includegraphics[height=7mm,angle=47]{vector/helix}};
|
||||
\end{tikzpicture}
|
||||
};
|
||||
\node[wp,above=of phenotype] (population) {
|
||||
\begin{tikzpicture}
|
||||
\clip (0cm,0cm) rectangle (2cm,1cm);
|
||||
\node[anchor=center] at (1cm,0.5cm) {\includegraphics[height=2cm]{vector/petri}};
|
||||
\end{tikzpicture}
|
||||
};
|
||||
\draw[compilation] (population) to (phenotype);
|
||||
\draw[compilation] (phenotype) to (genotype);
|
||||
\begin{scope}[on background layer]
|
||||
\node[fit=(genotype) (phenotype) (population),rounded corners,
|
||||
fill,#1,inner sep=3mm] {};
|
||||
\node[fit=(population) (phenotype),rounded corners,
|
||||
fill,#2,inner sep=3mm] {};
|
||||
\node[fit=(phenotype),rounded corners,
|
||||
fill,#3,inner sep=3mm] {};
|
||||
\end{scope}
|
||||
\end{tikzpicture}
|
||||
}
|
||||
\newcommand{\drawfigure}{\tourdelangages{}}
|
||||
\DeclareDocumentCommand{\moteurs}{ O{transparent} O{transparent} O{transparent} }{
|
||||
\begin{tikzpicture}[overlay,
|
||||
node distance=8mm,
|
||||
wp/.style={draw},
|
||||
causation/.style={black!80,-{Triangle[width=8mm,length=5mm]},shorten >= 1mm,
|
||||
shorten <=1mm,line width=5mm}%
|
||||
]
|
||||
\coordinate[xshift=-15mm] (centre) at (current page.east);
|
||||
\node[wp,above=of centre] (moteur-physique) {%
|
||||
\begin{tikzpicture}[scale=0.7]
|
||||
\clip (0cm,0cm) rectangle (3cm,2cm);
|
||||
\node[anchor=center] at (15mm,1cm) {%
|
||||
\includegraphics[height=20mm]{vector/collision}};
|
||||
\end{tikzpicture}
|
||||
};
|
||||
\node[wp,below=of centre] (moteur-chimique) {%
|
||||
\begin{tikzpicture}[scale=0.7]
|
||||
\clip (0cm,0cm) rectangle (3cm,2cm);
|
||||
\node[anchor=center] at (15mm,1cm) {%
|
||||
\includegraphics[height=14mm]{vector/chimie}};
|
||||
\end{tikzpicture}
|
||||
};
|
||||
\draw[causation,transform canvas={xshift= 6mm}] (moteur-chimique) to (moteur-physique);
|
||||
\draw[causation,transform canvas={xshift=-6mm}] (moteur-physique) to (moteur-chimique);
|
||||
\begin{scope}[on background layer]
|
||||
\node[fit=(moteur-chimique),rounded corners,
|
||||
fill,#1,inner sep=3mm] {};
|
||||
\node[fit=(moteur-physique),rounded corners,
|
||||
fill,#2,inner sep=3mm] {};
|
||||
\node[rounded corners,fill,#3,inner sep=3mm,minimum height=2cm, minimum width=3cm]
|
||||
at (barycentric cs:moteur-chimique=1,moteur-physique=1) {};
|
||||
\end{scope}
|
||||
\end{tikzpicture}
|
||||
}
|
||||
|
||||
\makeatletter
|
||||
\patchcmd{\beamer@sectionintoc}
|
||||
{\vfill}
|
||||
{\vskip5\itemsep}
|
||||
{}
|
||||
{}
|
||||
\makeatother
|
||||
|
||||
|
||||
|
||||
\begin{document}
|
||||
%\input{test}
|
||||
%
|
||||
\input{title}
|
||||
\input{introduction}
|
||||
\input{plan}
|
||||
|
||||
\renewcommand{\tocshowonlycurrentsection}{currentsection}
|
||||
\renewcommand{\drawfigure}{\tourdelangages[structure!30][transparent][transparent]}
|
||||
\mkPart{Vers la modélisation multi-niveau}
|
||||
\input{multimodel}
|
||||
\input{formalism.model.system}
|
||||
\input{experimental.model}
|
||||
\input{predator.prey}
|
||||
\input{model.category}
|
||||
\input{part1.conclude}
|
||||
|
||||
\renewcommand{\drawfigure}{\tourdelangages[transparent][structure!30][transparent]}
|
||||
\mkPart{Topologie de l'activité}
|
||||
\input{activity.motivation}
|
||||
\input{mgs.topological.collections}
|
||||
\input{mgs.topological.transformations}
|
||||
\input{simple.ff.example}
|
||||
\input{where.is.activity}
|
||||
\input{example.forest.fire}
|
||||
\input{example.dla}
|
||||
\input{part2.conclude}
|
||||
|
||||
\renewcommand{\drawfigure}{\tourdelangages[transparent][transparent][structure!30]}
|
||||
\mkPart{Simulateur de colonie de bactéries}
|
||||
\input{otb.general}
|
||||
\input{otb.organisation}
|
||||
\input{chemical.model}
|
||||
\input{ecoli.model}
|
||||
\input{decision.model}
|
||||
\input{otb.sectorisation}
|
||||
\input{otb.stable.pop}
|
||||
\input{otb.architecture}
|
||||
\input{part3.conclude}
|
||||
|
||||
\input{closing}
|
||||
|
||||
\end{document}
|
||||
%\input{bilan}
|
||||
%\input{sbgp}
|
||||
%\input{otb.ppm}
|
||||
%\input{wave.algorithm}
|
||||
%\input{activity.in.mgs}
|
31
mgs.topological.collections.tex
Normal file
31
mgs.topological.collections.tex
Normal file
|
@ -0,0 +1,31 @@
|
|||
\begin{frame}
|
||||
\frametitle{Formalisme \mgs}
|
||||
\framesubtitle{Collections topologiques}
|
||||
\begin{columns}[c]
|
||||
\column{.5\textwidth}
|
||||
\begin{itemize}
|
||||
\item Une collection de \structure{cellules topologiques}
|
||||
\begin{itemize}
|
||||
\item
|
||||
\alert<1>{0-cellule},
|
||||
\alert<2>{1-cellule},
|
||||
\alert<3>{2-cellule},
|
||||
\alert<4>{3-cellule}, etc.
|
||||
\end{itemize}
|
||||
|
||||
\medskip
|
||||
\item Liées par une \structure{relation d'incidence}
|
||||
\begin{itemize}
|
||||
\item $\text{face}(\alert<6>{s_1}) = $%
|
||||
\tikz[baseline=-0.5ex] \node (e) {$\{e_0,e_1,e_2,e_3,e_4,e_5\}$};
|
||||
\end{itemize}
|
||||
|
||||
\medskip
|
||||
\item Les cellules sont \structure{étiquetées} avec des valeurs
|
||||
arbitraires
|
||||
\end{itemize}
|
||||
|
||||
\column{.5\textwidth}
|
||||
\input{vector/coll-topo-papillon.tikz}
|
||||
\end{columns}
|
||||
\end{frame}
|
30
mgs.topological.transformations.tex
Normal file
30
mgs.topological.transformations.tex
Normal file
|
@ -0,0 +1,30 @@
|
|||
\defverbatim[colored]\transformation{%
|
||||
\small
|
||||
\begin{semiverbatim}
|
||||
trans evol = \{
|
||||
\structure{pattern_1} => \alert{expression_1}
|
||||
...
|
||||
pattern_n => expression_n
|
||||
\}
|
||||
\end{semiverbatim}}
|
||||
|
||||
\begin{frame}[fragile]
|
||||
\frametitle{Formalisme \mgs}
|
||||
\framesubtitle{Transformations topologiques}
|
||||
|
||||
\only<1>{
|
||||
\begin{itemize}
|
||||
\item Fonctions définies \structure{par cas} sur les collections\\
|
||||
{\small chaque cas détermine une \structure{sous-collection}}
|
||||
\item Relation de réécriture: \structure{réécriture topologique}
|
||||
\end{itemize}
|
||||
}
|
||||
|
||||
\tikz[overlay] \node[text width=4cm]
|
||||
at (current page.center) {\transformation};
|
||||
|
||||
\begin{center}
|
||||
\input{vector/transformation-papillon.tikz}
|
||||
\end{center}
|
||||
\end{frame}
|
||||
|
79
model.category.tex
Normal file
79
model.category.tex
Normal file
|
@ -0,0 +1,79 @@
|
|||
\pgfdeclarelayer{background}
|
||||
\pgfdeclarelayer{foreground}
|
||||
\pgfsetlayers{background,main,foreground}
|
||||
|
||||
\begin{frame}[label=this one]
|
||||
\frametitle{Catégorie des modèles}
|
||||
\tikz[overlay] \node[yshift=-2cm] at (current page.north){
|
||||
$ \mathbf{Abs}_S = (\alert{\mref} \downarrow \mathbf{Set})^{\mathbf{op}} $
|
||||
};
|
||||
|
||||
\centering
|
||||
\begin{tikzpicture}[overlay,%
|
||||
node distance=13mm and 20mm,
|
||||
model/.style={draw,rectangle,on grid=true,fill=white},
|
||||
function/.style={-Stealth,thick},
|
||||
abstraction/.style={function,very thick}
|
||||
]
|
||||
\alt<1-4>{
|
||||
\node[model,left=of current page.center] (m1) {$\ensm[1]$};
|
||||
\node[model,above=of current page.center] (m2) {$\ensm[2]$};
|
||||
\node[model,below=of current page.center] (m3) {$\ensm[3]$};
|
||||
\node[model,right=of current page.center] (m4) {$\ensm[4]$};
|
||||
}{
|
||||
\node[model,circle,left=of current page.center] (m1) {$\model_1$};
|
||||
\node[model,circle,above=of current page.center] (m2) {$\model_2$};
|
||||
\node[model,circle,below=of current page.center] (m3) {$\model_3$};
|
||||
\node[model,circle,right=of current page.center] (m4) {$\model_4$};
|
||||
\draw[abstraction] (m1) to (m2);
|
||||
\draw[abstraction] (m1) to (m3);
|
||||
\draw[abstraction] (m2) to (m4);
|
||||
\draw[abstraction] (m3) to (m4);
|
||||
}
|
||||
\uncover<3-4>{
|
||||
\draw[function] (m2) to (m1);
|
||||
}
|
||||
\uncover<4>{
|
||||
\draw[function] (m3) to (m1);
|
||||
\draw[function] (m4) to (m2);
|
||||
\draw[function] (m4) to (m3);
|
||||
}
|
||||
|
||||
\visible<1-4>{
|
||||
\node[draw, very thick, rounded corners=2pt,inner sep=0pt,%
|
||||
minimum width=.7\textwidth,minimum height=.65\textheight,yshift=-5mm]
|
||||
(set) at (current page.center) {};
|
||||
\node[below right] (setl) at (set.north west) {$\mathbf{Set}$};
|
||||
}
|
||||
\visible<2-4>{
|
||||
\node[alert,draw,xshift=-12mm,yshift=6mm] (ms) at (set.south) {$\mref$};
|
||||
\draw[function] (ms) to (m1);
|
||||
\draw[function] (ms) to (m2);
|
||||
\draw[function] (ms) to (m3);
|
||||
\draw[function,bend right] (ms) to (m4);
|
||||
}
|
||||
\begin{pgfonlayer}{background}
|
||||
\visible<5>{
|
||||
\node[alert,draw,circle,xshift=-12mm,yshift=6mm] (ms) at (set.south) {$\model_{\texttt{Réf}}$};
|
||||
\draw[black!50,abstraction] (m1) to (ms);
|
||||
\draw[black!50,abstraction] (m2) to (ms);
|
||||
\draw[black!50,abstraction] (m3) to (ms);
|
||||
\draw[black!50,abstraction,bend left] (m4) to (ms);
|
||||
}
|
||||
\end{pgfonlayer}
|
||||
|
||||
\visible<4>{
|
||||
\node[draw, dashed, very thick, rounded corners=2pt,inner sep=0pt,%
|
||||
minimum width=.5\textwidth,minimum height=.46\textheight]
|
||||
(abs) at (current page.center) {};
|
||||
\node[below right] (absl) at (abs.north west) {$\mathbf{Abs}_S$};
|
||||
}
|
||||
\visible<5>{
|
||||
\node[draw, very thick, rounded corners=2pt,inner sep=0pt,%
|
||||
minimum width=.7\textwidth,minimum height=.65\textheight,yshift=-5mm]
|
||||
(abs) at (current page.center) {};
|
||||
\node[below right] (absl) at (abs.north west) {$\mathbf{Abs}_S$};
|
||||
}
|
||||
|
||||
\end{tikzpicture}
|
||||
\end{frame}
|
66
multimodel.tex
Normal file
66
multimodel.tex
Normal file
|
@ -0,0 +1,66 @@
|
|||
\begin{frame}%[label=this one]
|
||||
\frametitle{Mettre en relation des «modèles»}
|
||||
%\framesubtitle{dans la littérature}
|
||||
|
||||
\begin{columns}
|
||||
\column{.5\textwidth}
|
||||
\begin{itemize}
|
||||
\item \structure{Couplage}
|
||||
\begin{itemize}
|
||||
\item \alert<1>{\emph{Modèle} de la croissance des villes}
|
||||
\item \alert<2>{\emph{Modèle} intégratif d'une cellule}
|
||||
\end{itemize}
|
||||
\medskip
|
||||
\item \structure{Transformation}
|
||||
\begin{itemize}
|
||||
\item \alert<3>{Transformation de \emph{modèles} UML}
|
||||
\item \alert<4>{Raffinement de \emph{modèles}}
|
||||
\end{itemize}
|
||||
\medskip
|
||||
\item \structure{Complexification}
|
||||
\begin{itemize}
|
||||
\item \alert<5>{Memory Evolutive (Neural) System}
|
||||
\item \alert<5>{Cellular Non-linear Network}
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\column{.5\textwidth}\centering
|
||||
\only<1>{\includegraphics[width=\textwidth]{raster/simpop3}\\
|
||||
\mkCitation{T. Louail “Comparer les morphogénèses urbaines en
|
||||
Europe et aux États-Unis par la simulation à base d'agents -- Approches
|
||||
multi-niveaux et environnements de simulation spatiale”, Thèse, 2010}
|
||||
}
|
||||
\only<2>{\includegraphics[height=4cm]{raster/whole-cell-models}\\
|
||||
\mkCitation{J. R. Karr et al. “A whole-cell computational
|
||||
model predicts phenotype from genotype”, Nature, 2012}
|
||||
}
|
||||
\only<3>{%
|
||||
\includegraphics[height=21mm]{raster/transformation-1}\\
|
||||
\includegraphics[height=21mm]{raster/transformation-2}\\
|
||||
\mkCitation{A. Christoph et M. M. Müller “GREAT: UML
|
||||
transformation tool for porting middleware applications”, Modeling
|
||||
Languages and Applications: 6th International Conference, San Francisco,
|
||||
CA, USA, 2003}
|
||||
}
|
||||
\only<4>{
|
||||
\includegraphics[height=4cm]{raster/refinement-av}
|
||||
\includegraphics[height=4cm]{raster/refinement-ap}\\
|
||||
\mkCitation{D.-E. Gratie “Refinement of biomodels using Petri
|
||||
nets”, TUCS dissertation, 2016}
|
||||
}
|
||||
\only<5->{%
|
||||
\includegraphics[width=.9\textwidth,page=5]{vector/mens-neurons}\\[1em]
|
||||
\includegraphics[width=.45\textwidth,page=1]{vector/cnn-synapses}\hfill
|
||||
\includegraphics[width=.45\textwidth,page=2]{vector/cnn-synapses}\\
|
||||
\mkCitation{K. Mainzer et L. O. Chua: “Local activity principle”, World Scientific, 2013}
|
||||
}
|
||||
\end{columns}
|
||||
|
||||
\bigskip\centering
|
||||
\uncover<6>{
|
||||
Cadre \structure{formel unifié},\\
|
||||
«\structure{sémantique}» du système,\\
|
||||
\structure{abstraction} et \structure{multi-niveau}
|
||||
}
|
||||
% Multi-niveau = aller au delà de l'abstraction
|
||||
|
||||
\end{frame}
|
49
otb.architecture.tex
Normal file
49
otb.architecture.tex
Normal file
|
@ -0,0 +1,49 @@
|
|||
\begin{frame}%[label=this one]
|
||||
\frametitle{Architecture logicielle}
|
||||
\begin{columns}
|
||||
\column{.7\textwidth}
|
||||
\begin{itemize}
|
||||
\item[{\tikz[c]{\node[fill,rectangle]{};}}] \num{2300} lignes de C
|
||||
\begin{itemize}
|
||||
\item Programmation API, bas niveau
|
||||
\item Interface avec OpenCL/OpenGL
|
||||
\end{itemize}
|
||||
\item[{\tikz[ocaml]{\node[fill,rectangle]{};}}] \num{2000} lignes de OCaml
|
||||
réparties en 10 modules
|
||||
\begin{itemize}
|
||||
\item Programmation API, haut niveau
|
||||
\item Processus maître, orchestration de simulation
|
||||
\item Gestion des zones dynamiques
|
||||
\end{itemize}
|
||||
\item[{\tikz[opencl]{\node[fill,rectangle]{};}}] \num{700} lignes de kernel OpenCL
|
||||
\smallskip
|
||||
\item[{\tikz[sbgp]{\node[fill,rectangle]{};}}] SBGP
|
||||
\end{itemize}
|
||||
|
||||
\begin{center}
|
||||
\small
|
||||
\begin{tikzpicture}[node distance=4mm and 1.3333cm,
|
||||
box/.style={on grid,inner sep=0pt,rectangle,draw,
|
||||
minimum height=4mm,font=\small},
|
||||
full/.style={minimum width=4cm},
|
||||
half/.style={minimum width=2cm},
|
||||
third/.style={minimum width=1.3333cm},
|
||||
]
|
||||
\node[fill=black,draw=black,white,half,box] (cpu) {CPU};
|
||||
\node[fill=black,draw=black,white,half,box,right=2cm of cpu] (gpu) {GPU};
|
||||
\node[fill=c,third,box,above=of cpu.west,right] (os) {OS};
|
||||
\node[fill=opencl,third,box,right=of os] (opencl) {OpenCL};
|
||||
\node[fill=c,third,box,right=of opencl] (opengl) {OpenGL};
|
||||
\node[fill=c,full,box,above=of os.west,right] (api1) {API OpenCL/OpenGL};
|
||||
\node[fill=ocaml,full,box,above=of api1] (api2) {API Simulateur};
|
||||
\node[diagonal fill={ocaml}{sbgp},full,box,above=of api2] (spec) {Spécification simulation};
|
||||
\node[full,box,above=of spec,dashed] (ihm) {IHM};
|
||||
|
||||
\draw[white] (cpu.north east) -- (cpu.south east);
|
||||
\end{tikzpicture}
|
||||
\end{center}
|
||||
|
||||
\column{.2\textwidth}
|
||||
\moteurs
|
||||
\end{columns}
|
||||
\end{frame}
|
55
otb.general.tex
Normal file
55
otb.general.tex
Normal file
|
@ -0,0 +1,55 @@
|
|||
\begin{frame}%[label=this one]
|
||||
\frametitle{OTB, un simulateur de bactéries}
|
||||
\begin{columns}
|
||||
\column{.7\textwidth}
|
||||
\begin{itemize}
|
||||
\item \structure{Motivations}
|
||||
\begin{itemize}
|
||||
\item \structure{Assister} le travail du programmeur (L1, L2)
|
||||
\item \structure{Observer} la morphogenèse à partir de la spécification
|
||||
d'un comportement local
|
||||
\end{itemize}
|
||||
\medskip
|
||||
\item \structure{Objectifs}
|
||||
\begin{itemize}
|
||||
\item Simulation raisonnable de grandes populations\\($10^5$ individus)
|
||||
\item Simulation réaliste
|
||||
\end{itemize}
|
||||
\medskip
|
||||
\item \structure{Utilisation du parallélisme}
|
||||
\begin{itemize}
|
||||
\item Nécessaire pour accélérer les calculs
|
||||
\item Largement disponible (Multi-cœur, GPU)
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
|
||||
\column{.2\textwidth}
|
||||
\tourdelangages
|
||||
\begin{tikzpicture}[overlay,
|
||||
big red/.style={line width=1mm,line cap=round,red}]
|
||||
\draw[big red] (genotype.south west) to (genotype.north east);
|
||||
\draw[big red] (genotype.north west) to (genotype.south east);
|
||||
\end{tikzpicture}
|
||||
\end{columns}
|
||||
\end{frame}
|
||||
|
||||
% Il nous faut un simulateur pour:
|
||||
% \begin{itemize}
|
||||
% \item Observer de l'expression d'un RRG au niveau de la population
|
||||
% \item Tester des hypothèses et guider le design de L1 et L2
|
||||
% \item Palier le manque de composants biologique dans le projet
|
||||
% \end{itemize}
|
||||
%
|
||||
% \medskip Propriétés souhaitables:
|
||||
% \begin{itemize}
|
||||
% \item Simulation raisonnable de grandes populations ($10^5$ individus)
|
||||
% \item Simulation réaliste
|
||||
% \item Simulateur générique et modulaire pour adaptation facile à d'autres
|
||||
% problématiques
|
||||
% \end{itemize}
|
||||
%
|
||||
% \medskip Utilisation du parallélisme car
|
||||
% \begin{itemize}
|
||||
% \item nécessaire pour accélérer les calculs
|
||||
% \item largement disponible (Multi-cœur, GPU)
|
||||
% \end{itemize}
|
21
otb.organisation.tex
Normal file
21
otb.organisation.tex
Normal file
|
@ -0,0 +1,21 @@
|
|||
\begin{frame}%[label=this one]
|
||||
\frametitle{Organisation}
|
||||
|
||||
\begin{columns}
|
||||
\column{.7\textwidth}
|
||||
\begin{itemize}
|
||||
\item \structure{Moteur chimique}\\
|
||||
{\small comportement du support sur lequel évoluent les bactéries}
|
||||
\bigskip
|
||||
\item \structure{Moteur physique}\\
|
||||
{\small comportement mécanique des bactéries}
|
||||
\bigskip
|
||||
\item \structure{Moteur comportemental}\\
|
||||
{\small couplage entre morphogènes et bactéries}
|
||||
\end{itemize}
|
||||
|
||||
\column{.2\textwidth}
|
||||
\moteurs
|
||||
\end{columns}
|
||||
|
||||
\end{frame}
|
317
otb.ppm.tex
Normal file
317
otb.ppm.tex
Normal file
|
@ -0,0 +1,317 @@
|
|||
\begin{frame}{Propagation Paralèlle \emph{à la} Margolus}
|
||||
{Le problème de la dépendance aux cellules voisines}
|
||||
\vfill
|
||||
|
||||
\centering
|
||||
\begin{tikzpicture}
|
||||
\clip (-17mm,-17mm) rectangle (17mm,17mm);
|
||||
\draw[xshift=5mm,yshift=5mm] ( -3cm, -3cm) grid ( 3cm, 3cm);
|
||||
\node (x) at (0,0) {$x_i$};
|
||||
\foreach[count=\n] \p in {(1,0),(1,1),(0,1),(-1,1),(-1,0),(-1,-1),(0,-1),(1,-1)} {
|
||||
\node (v\n) at \p {$v_{\n_i}$};
|
||||
}
|
||||
\begin{scope}[on background layer]
|
||||
\clip (-17mm,-17mm) rectangle (17mm,17mm);
|
||||
\only<1>{%
|
||||
\fill[black!10] (v6.south west) rectangle (v2.north east);
|
||||
\fill[white] (v6.north east) rectangle (v2.south west);
|
||||
\fill[red!60] (x) circle (3mm);
|
||||
}
|
||||
\only<2>{%
|
||||
\fill[black!10] (v3.north east) rectangle ($(v7.south east)+(-10cm,0)$);
|
||||
\fill[white] (v3.south west) rectangle ($(v7.north east)+(-10cm,0)$);
|
||||
\fill[red!60] (v5) circle (3mm);
|
||||
}
|
||||
\end{scope}
|
||||
\end{tikzpicture}
|
||||
|
||||
\alt<1>{%
|
||||
$$ x_{i,1} = f(x_i , v_{1_i} , v_{2_i} , \ldots , v_{8_i}) $$
|
||||
}{%
|
||||
$$ v_{5_{i,1}} = f(v_{5_i} , x_i , v_{3_i}, v_{4_i} ,
|
||||
\alert{? , ? , ?} , v_{6_i} , v_{7_i}) $$
|
||||
}
|
||||
\vfill~
|
||||
\uncover<2>{Une partie du \structure{contexte} est manquant.}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Propagation Paralèlle \emph{à la} Margolus}
|
||||
{Le voisinage de margolus}
|
||||
\vfill
|
||||
|
||||
\centering
|
||||
\begin{tikzpicture}
|
||||
\clip (-27mm,-27mm) rectangle (27mm,27mm);
|
||||
\draw[xshift=5mm,yshift=5mm] ( -5cm, -5cm) grid ( 5cm, 5cm);
|
||||
\fill[red] (0,0) circle (3mm);
|
||||
\only<1>{\draw[xshift=5mm,yshift=5mm, step=2cm, very thick]%
|
||||
( -5cm, -5cm) grid ( 5cm, 5cm);}
|
||||
\only<2>{\draw[xshift=-5mm,yshift=-5mm, step=2cm, very thick]%
|
||||
( -5cm, -5cm) grid ( 5cm, 5cm);}
|
||||
\begin{scope}[on background layer]
|
||||
\only<1>{%
|
||||
\fill[red!50,shift={(-5mm,-5mm)}] (-1cm,-1cm) rectangle (1cm,1cm);}
|
||||
\only<2>{%
|
||||
\fill[red!50,shift={(5mm,5mm)}] (-1cm,-1cm) rectangle (1cm,1cm);}
|
||||
\end{scope}
|
||||
\end{tikzpicture}
|
||||
|
||||
\vfill~
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Propagation Paralèlle \emph{à la} Margolus}
|
||||
{Mise à jour \emph{indépendante} d'un bloc}
|
||||
\vfill
|
||||
|
||||
\centering
|
||||
\begin{tikzpicture}[
|
||||
cell/.style={black,size=1.5mm,circle,inner sep=0pt,font=\TINY},
|
||||
neighbor cell/.style={black,size=1.5mm,circle,inner sep=0pt,font=\small},
|
||||
center cell/.style={cell,white,fill=black},
|
||||
spy using outlines={circle,red,size=58mm,magnification=4,connect spies}]
|
||||
\begin{scope}[scale=.5]
|
||||
\clip (-27mm,-27mm) rectangle (27mm,27mm);
|
||||
|
||||
% Background
|
||||
\only<1-3>{%
|
||||
\fill[blue!50,shift={(5mm,5mm)}] (-1cm,-1cm) rectangle (1cm,1cm);
|
||||
\fill[red!50,shift={(-5mm,-5mm)}] (-1cm,-1cm) rectangle (1cm,1cm);
|
||||
}
|
||||
\only<4->{%
|
||||
\fill[red!50,shift={(-5mm,-5mm)}] (-1cm,-1cm) rectangle (1cm,1cm);
|
||||
\fill[blue!50,shift={(5mm,5mm)}] (-1cm,-1cm) rectangle (1cm,1cm);
|
||||
}
|
||||
|
||||
\begin{scope}
|
||||
\clip (-3mm,-3mm) rectangle (3mm,3mm);
|
||||
\draw[very thin] (-5mm,-5mm) grid (5mm,5mm);
|
||||
\end{scope}
|
||||
\only<1-3>{
|
||||
\begin{scope}[shift={(-1cm,0)}]
|
||||
\clip (-3mm,-3mm) rectangle (3mm,3mm);
|
||||
\draw[very thin] (-5mm,-5mm) grid (5mm,5mm);
|
||||
\end{scope}
|
||||
\begin{scope}[shift={(-1cm,-1cm)}]
|
||||
\clip (-3mm,-3mm) rectangle (3mm,3mm);
|
||||
\draw[very thin] (-5mm,-5mm) grid (5mm,5mm);
|
||||
\end{scope}
|
||||
\begin{scope}[shift={(0cm,-1cm)}]
|
||||
\clip (-3mm,-3mm) rectangle (3mm,3mm);
|
||||
\draw[very thin] (-5mm,-5mm) grid (5mm,5mm);
|
||||
\end{scope}
|
||||
}
|
||||
|
||||
\only<1>{
|
||||
% Voisins
|
||||
\node[neighbor cell] at ( 1cm, 0cm) {$v_{A,1}$};
|
||||
\node[neighbor cell] at ( 1cm, 1cm) {$v_{A,2}$};
|
||||
\node[neighbor cell] at ( 0cm, 1cm) {$v_{A,3}$};
|
||||
\node[neighbor cell] at (-1cm, 1cm) {$v_{B,1}$};
|
||||
\node[neighbor cell] at (-2cm, 1cm) {$v_{B,2}$};
|
||||
\node[neighbor cell] at (-2cm, 0cm) {$v_{B,3}$};
|
||||
\node[neighbor cell] at (-2cm,-1cm) {$v_{C,1}$};
|
||||
\node[neighbor cell] at (-2cm,-2cm) {$v_{C,2}$};
|
||||
\node[neighbor cell] at (-1cm,-2cm) {$v_{C,3}$};
|
||||
\node[neighbor cell] at ( 0cm,-2cm) {$v_{D,1}$};
|
||||
\node[neighbor cell] at ( 1cm,-2cm) {$v_{D,2}$};
|
||||
\node[neighbor cell] at ( 1cm,-1cm) {$v_{D,3}$};
|
||||
|
||||
\begin{scope}[scale=0.5,shift={(-5mm,-5mm)}]
|
||||
\node[center cell] at ( -0mm, -0mm) {$A$};
|
||||
\node[cell] at (-10mm, -0mm) {$B$};
|
||||
\node[cell] at (-10mm,-10mm) {$C$};
|
||||
\node[cell] at ( -0mm,-10mm) {$D$};
|
||||
|
||||
\node[cell] at ( 1cm, 0cm) {$v_{A,1}$};
|
||||
\node[cell] at ( 1cm, 1cm) {$v_{A,2}$};
|
||||
\node[cell] at ( 0cm, 1cm) {$v_{A,3}$};
|
||||
\node[cell] at (-1cm, 1cm) {$v_{B,1}$};
|
||||
\node[cell] at (-2cm, 1cm) {$v_{B,2}$};
|
||||
\node[cell] at (-2cm, 0cm) {$v_{B,3}$};
|
||||
\node[cell] at (-2cm,-1cm) {$v_{C,1}$};
|
||||
\node[cell] at (-2cm,-2cm) {$v_{C,2}$};
|
||||
\node[cell] at (-1cm,-2cm) {$v_{C,3}$};
|
||||
\node[cell] at ( 0cm,-2cm) {$v_{D,1}$};
|
||||
\node[cell] at ( 1cm,-2cm) {$v_{D,2}$};
|
||||
\node[cell] at ( 1cm,-1cm) {$v_{D,3}$};
|
||||
\end{scope}
|
||||
}
|
||||
\only<2>{
|
||||
\begin{scope}[scale=0.5,shift={(-5mm,-5mm)}]
|
||||
\node[center cell] at ( -0mm, -0mm) {$A'$};
|
||||
\node[cell] at (-10mm, -0mm) {$B'$};
|
||||
\node[cell] at (-10mm,-10mm) {$C'$};
|
||||
\node[cell] at ( -0mm,-10mm) {$D'$};
|
||||
\end{scope}
|
||||
}
|
||||
\only<3>{
|
||||
\begin{scope}[scale=0.5,shift={(5mm,5mm)}]
|
||||
\node[center cell] at ( -0mm, -0mm) {$A'$};
|
||||
\node[cell] at (-10mm, -0mm) {$B'$};
|
||||
\node[cell] at (-10mm,-10mm) {$C'$};
|
||||
\node[cell] at ( -0mm,-10mm) {$D'$};
|
||||
\end{scope}
|
||||
\begin{scope}[scale=0.5,shift={(-15mm,5mm)}]
|
||||
\node[cell] at ( -0mm, -0mm) {$A'$};
|
||||
\node[cell] at (-10mm, -0mm) {$B'$};
|
||||
\node[cell] at (-10mm,-10mm) {$C'$};
|
||||
\node[cell] at ( -0mm,-10mm) {$D'$};
|
||||
\end{scope}
|
||||
\begin{scope}[scale=0.5,shift={(-15mm,-15mm)}]
|
||||
\node[cell] at ( -0mm, -0mm) {$A'$};
|
||||
\node[cell] at (-10mm, -0mm) {$B'$};
|
||||
\node[cell] at (-10mm,-10mm) {$C'$};
|
||||
\node[cell] at ( -0mm,-10mm) {$D'$};
|
||||
\end{scope}
|
||||
\begin{scope}[scale=0.5,shift={(5mm,-15mm)}]
|
||||
\node[cell] at ( -0mm, -0mm) {$A'$};
|
||||
\node[cell] at (-10mm, -0mm) {$B'$};
|
||||
\node[cell] at (-10mm,-10mm) {$C'$};
|
||||
\node[cell] at ( -0mm,-10mm) {$D'$};
|
||||
\end{scope}
|
||||
}
|
||||
\only<4>{
|
||||
\begin{scope}[scale=0.5,shift={(5mm,5mm)}]
|
||||
\node[center cell] at ( -0mm, -0mm) {$A'$};
|
||||
\node[cell] at (-10mm, -0mm) {$B'$};
|
||||
\node[cell] at (-10mm,-10mm) {$C'$};
|
||||
\node[cell] at ( -0mm,-10mm) {$D'$};
|
||||
\end{scope}
|
||||
}
|
||||
|
||||
% Grilles:
|
||||
\draw[xshift=5mm,yshift=5mm,thin] ( -5cm, -5cm) grid ( 5cm, 5cm);
|
||||
\only<1-3>{\draw[xshift=5mm,yshift=5mm, step=2cm, thick]%
|
||||
( -5cm, -5cm) grid ( 5cm, 5cm);}
|
||||
\only<4>{\draw[xshift=-5mm,yshift=-5mm, step=2cm, thick]%
|
||||
( -5cm, -5cm) grid ( 5cm, 5cm);}
|
||||
|
||||
\only<1-3>{
|
||||
\coordinate (spyhook) at (-5mm,-5mm);
|
||||
}
|
||||
\only<4>{
|
||||
\coordinate (spyhook) at (5mm,5mm);
|
||||
}
|
||||
\end{scope}
|
||||
|
||||
\spy on (spyhook) in node (zoom) at (5cm,0);
|
||||
\end{tikzpicture}
|
||||
|
||||
%\only<1-2>{
|
||||
%Toute l'information \emph{nécessaire} est disponible pour mettre à jour $A$.
|
||||
%$$ A' = f( A, v_{A_1}, v_{A_2}, v_{A_3}, v_{B_1}, B, C, D, v_{D_3} ) $$
|
||||
%ainsi que $B$, $C$ et $D$, symétriquement.
|
||||
%}
|
||||
%\only<3>{
|
||||
%Le bloc $(A',B',C',D')$ est répliqué 4 fois.}
|
||||
%\only<4>{
|
||||
%Au décalage de la grille, le nouveau bloc est prêt pour une mise à jour.
|
||||
%}
|
||||
|
||||
|
||||
\vfill~
|
||||
\end{frame}
|
||||
|
||||
%\begin{frame}{Propagation Paralèlle \emph{à la} Margolus}
|
||||
% {Mise à jour \emph{indépendante} d'un bloc}
|
||||
% \vfill
|
||||
%
|
||||
% \begin{columns}[c]
|
||||
% \column{.4\textwidth}\centering
|
||||
% \begin{tikzpicture}[scale=.5]
|
||||
% \clip (-27mm,-27mm) rectangle (27mm,27mm);
|
||||
% \draw[xshift=5mm,yshift=5mm] ( -5cm, -5cm) grid ( 5cm, 5cm);
|
||||
% \fill[red] (0,0) circle (3mm);
|
||||
% \only<1-3>{\draw[xshift=5mm,yshift=5mm, step=2cm, very thick]%
|
||||
% ( -5cm, -5cm) grid ( 5cm, 5cm);}
|
||||
% \only<4->{\draw[xshift=-5mm,yshift=-5mm, step=2cm, very thick]%
|
||||
% ( -5cm, -5cm) grid ( 5cm, 5cm);}
|
||||
% \begin{scope}[on background layer]
|
||||
% \only<1-3>{%
|
||||
% \fill[blue!50,shift={(5mm,5mm)}] (-1cm,-1cm) rectangle (1cm,1cm);
|
||||
% \fill[red!50,shift={(-5mm,-5mm)}] (-1cm,-1cm) rectangle (1cm,1cm);}
|
||||
% \only<4->{%
|
||||
% \fill[red!50,shift={(5mm,5mm)}] (-1cm,-1cm) rectangle (1cm,1cm);}
|
||||
% \end{scope}
|
||||
% \end{tikzpicture}
|
||||
% \column{.6\textwidth}\centering
|
||||
% \begin{tikzpicture}
|
||||
% \only<1-2,4>{%
|
||||
% \fill[red!50] (-1cm,-1cm) rectangle (1cm,1cm);}
|
||||
% \only<3>{%
|
||||
% \fill[red!50, shift={(1cm,1cm)}] (0cm,0cm) rectangle (1cm,1cm);
|
||||
% \fill[red!50, shift={(1cm,-2cm)}] (0cm,0cm) rectangle (1cm,1cm);
|
||||
% \fill[red!50, shift={(-2cm,1cm)}] (0cm,0cm) rectangle (1cm,1cm);
|
||||
% \fill[red!50, shift={(-2cm,-2cm)}] (0cm,0cm) rectangle (1cm,1cm);}
|
||||
% \only<1>{%
|
||||
% \fill[blue!50] (0cm,1cm) -- (0cm,2cm) -- (2cm,2cm) -- (2cm,0cm) -- (1cm,0cm) -- (1cm,1cm) -- cycle;}
|
||||
% \draw[very thin,dashed] (-2,-2) grid (2,2);
|
||||
% \draw[step=2cm] (-2,-2) grid (2,2);
|
||||
% \draw[step=4cm, very thick, shift={(-2cm,-2cm)}] (-4mm,-4mm) grid (44mm,44mm);
|
||||
% \only<1>{%
|
||||
% \node [fill=red, minimum size=6mm, inner sep=0, circle] (A) at (5mm,5mm) {A};%
|
||||
% \node [draw=red, thick, dashed, minimum size=6mm, inner sep=0, circle] (B) at (-5mm,5mm) {B};%
|
||||
% \node [draw=red, thick, dashed, minimum size=6mm, inner sep=0, circle] (C) at (-5mm,-5mm) {C};%
|
||||
% \node [draw=red, thick, dashed, minimum size=6mm, inner sep=0, circle] (D) at (5mm,-5mm) {D};%
|
||||
% \node (va1) at (15mm,5mm) {$v_{A_1}$};%
|
||||
% \node (va2) at (15mm,15mm) {$v_{A_2}$};%
|
||||
% \node (va3) at (5mm,15mm) {$v_{A_3}$};%
|
||||
% \node (vb1) at (-5mm,15mm) {$v_{B_1}$};%
|
||||
% \node (vd3) at (15mm,-5mm) {$v_{D_3}$};%
|
||||
% }
|
||||
% \only<2>{%
|
||||
% \node [fill=red, minimum size=6mm, inner sep=0, circle] (A') at (5mm,5mm) {A'};%
|
||||
% \node (B') at (-5mm,5mm) {B'};%
|
||||
% \node (C') at (-5mm,-5mm) {C'};%
|
||||
% \node (D') at (5mm,-5mm) {D'};%
|
||||
% }
|
||||
% \only<3>{%
|
||||
% \node [fill=red, minimum size=6mm, inner sep=0, circle] (A') at (15mm,15mm) {A'};%
|
||||
% \node (B') at ( 5mm,15mm) {B'};%
|
||||
% \node (C') at ( 5mm, 5mm) {C'};%
|
||||
% \node (D') at (15mm, 5mm) {D'};%
|
||||
% \begin{scope}[shift={(-15mm,5mm)}]
|
||||
% \node (A') at (10mm,10mm) {A'};%
|
||||
% \node (B') at ( 0mm,10mm) {B'};%
|
||||
% \node (C') at ( 0mm, 0mm) {C'};%
|
||||
% \node (D') at (10mm, 0mm) {D'};%
|
||||
% \end{scope}
|
||||
% \begin{scope}[shift={(5mm,-15mm)}]
|
||||
% \node (A') at (10mm,10mm) {A'};%
|
||||
% \node (B') at ( 0mm,10mm) {B'};%
|
||||
% \node (C') at ( 0mm, 0mm) {C'};%
|
||||
% \node (D') at (10mm, 0mm) {D'};%
|
||||
% \end{scope}
|
||||
% \begin{scope}[shift={(-15mm,-15mm)}]
|
||||
% \node (A') at (10mm,10mm) {A'};%
|
||||
% \node (B') at ( 0mm,10mm) {B'};%
|
||||
% \node (C') at ( 0mm, 0mm) {C'};%
|
||||
% \node (D') at (10mm, 0mm) {D'};%
|
||||
% \end{scope}
|
||||
% }
|
||||
% \only<4>{
|
||||
% \begin{scope}[shift={(-15mm,-15mm)}]
|
||||
% \node [fill=red, minimum size=6mm, inner sep=0, circle] (A') at (10mm,10mm) {A};%
|
||||
% \node (B') at ( 0mm,10mm) {B};%
|
||||
% \node (C') at ( 0mm, 0mm) {C};%
|
||||
% \node (D') at (10mm, 0mm) {D};%
|
||||
% \end{scope}
|
||||
% }
|
||||
% \end{tikzpicture}
|
||||
% \end{columns}
|
||||
%
|
||||
% \centering
|
||||
% \only<1-2>{
|
||||
% Toute l'information \emph{nécessaire} est disponible pour mettre à jour $A$.
|
||||
% $$ A' = f( A, v_{A_1}, v_{A_2}, v_{A_3}, v_{B_1}, B, C, D, v_{D_3} ) $$
|
||||
% ainsi que $B$, $C$ et $D$, symétriquement.
|
||||
% }
|
||||
% \only<3>{
|
||||
% Le bloc $(A',B',C',D')$ est répliqué 4 fois.}
|
||||
% \only<4>{
|
||||
% Au décalage de la grille, le nouveau bloc est prêt pour une mise à jour.
|
||||
% }
|
||||
%
|
||||
%
|
||||
% \vfill~
|
||||
%\end{frame}
|
35
otb.sectorisation.tex
Normal file
35
otb.sectorisation.tex
Normal file
|
@ -0,0 +1,35 @@
|
|||
\begin{frame}{Exemple 1: Sectorisation}
|
||||
|
||||
\begin{columns}
|
||||
\column{.5\textwidth}\centering
|
||||
\includegraphics[width=.6\textwidth]{raster/sectors-original}\\
|
||||
\textcolor{gray}{\Tiny O. Hallatschek et al : “Genetic drift at expanding
|
||||
frontiers promotes gene segregation”, 2007}\\[1em]
|
||||
\column{.5\textwidth}\centering
|
||||
\includegraphics[width=.6\textwidth]{raster/sectors}
|
||||
\end{columns}
|
||||
|
||||
\bigskip
|
||||
\begin{columns}
|
||||
\column{.5\textwidth}
|
||||
\begin{itemize}
|
||||
\item Démarche expérimentale
|
||||
\begin{enumerate}
|
||||
\item Croissance $1 \rightarrow 1000$
|
||||
\item Marquage 50\% \textcolor{red}{rouge}, 50\% \textcolor{green}{vert}
|
||||
\item Croissance $1000 \rightarrow 200000$
|
||||
\end{enumerate}
|
||||
\end{itemize}
|
||||
|
||||
\column{.5\textwidth}
|
||||
\begin{itemize}
|
||||
\item Deux résultats
|
||||
\begin{enumerate}
|
||||
\item Moteur physique réaliste
|
||||
\item Nouvelle hypothèse pour la sectorisation
|
||||
\end{enumerate}
|
||||
\end{itemize}
|
||||
\end{columns}
|
||||
|
||||
\end{frame}
|
||||
|
90
otb.stable.pop.tex
Normal file
90
otb.stable.pop.tex
Normal file
|
@ -0,0 +1,90 @@
|
|||
\begin{frame}[fragile]{Exemple 2: Cercles concentriques}
|
||||
|
||||
\begin{columns}
|
||||
\column{.6\textwidth}
|
||||
\begin{itemize}
|
||||
\item \structure{Morphogènes} : Vert, Rouge, Bleu
|
||||
\item \structure{États}
|
||||
\begin{itemize}
|
||||
\item $A$: Croissance(0.005), Dépôt(Vert,50), Tumble()
|
||||
\item $B$: Croissance(0.005), Dépôt(Bleu,50), Tumble()
|
||||
\item $C$: Croissance(0.005), Dépôt(Rouge,50), Tumble()
|
||||
\item $D$: Destruction()
|
||||
\end{itemize}
|
||||
\item \structure{Transition}
|
||||
\begin{itemize}
|
||||
\item $c_1$: IsDaughter()
|
||||
\item $c_2$: LessThreshold(Vert,0.1)
|
||||
\item $c_3$: LessThreshold(Vert,0.1) $\wedge$ LessThreshold(Rouge,10.0)
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
|
||||
\column{.4\textwidth}\center
|
||||
\includegraphics[width=\textwidth]{raster/cercles}
|
||||
\end{columns}
|
||||
\begin{center}
|
||||
\begin{tikzpicture}[
|
||||
node distance=20mm,
|
||||
state/.style={draw,circle,anchor=mid},
|
||||
transition/.style={-Stealth,semithick,bend left}]
|
||||
\node[state] (mere) {$A$};
|
||||
\node[state,right=of mere] (fp) {$B$};
|
||||
\node[state,right=of fp] (fl) {$C$};
|
||||
\node[state,right=of fl] (ded) {$D$};
|
||||
\draw[transition] (mere) to node [auto,]{$c_1$} (fp);
|
||||
\draw[transition] (fp) to node [auto,]{$c_2$} (fl);
|
||||
\draw[transition] (fl) to node [auto,]{$c_3$} (ded);
|
||||
\end{tikzpicture}
|
||||
\end{center}
|
||||
\end{frame}
|
||||
|
||||
% \begin{lstlisting}
|
||||
%{
|
||||
% "signal" : [
|
||||
% {"Vert" : [0.01, 2.5]},
|
||||
% {"Rouge": [0.001, 1.5]},
|
||||
% {"Bleu" : [0.001, 1.5]}
|
||||
% ],
|
||||
% "reaction" : [
|
||||
% [["bleu","vert"], ["vert","vert"], 0.05],
|
||||
% [["bleu"], ["bleu","bleu"], 0.05],
|
||||
% [["vert"], [], 0.05]
|
||||
% ],
|
||||
% "type" : [
|
||||
% "AALEADER",
|
||||
% "CDAUGHTER",
|
||||
% "FDAUGHTER",
|
||||
% "ZOMBIE"
|
||||
% ],
|
||||
% "behaviour" : {
|
||||
% "AALEADER" : [
|
||||
% { "Divide" : 0.005 },
|
||||
% { "Tumble" : [] },
|
||||
% { "EmitSignal" : [ "Vert", 50 ] }
|
||||
% ],
|
||||
% "FDAUGHTER" : [
|
||||
% { "Divide" : 0.005 },
|
||||
% { "Tumble" : [] },
|
||||
% { "EmitSignal" : [ "Bleu", 50 ] }
|
||||
% ],
|
||||
% "CDAUGHTER" : [
|
||||
% { "Divide" : 0.005 },
|
||||
% { "Tumble" : [] },
|
||||
% { "EmitSignal" : [ "Rouge", 50 ] }
|
||||
% ],
|
||||
% "ZOMBIE" : [ { "Die" : [] } ]
|
||||
% },
|
||||
% "transition" : [
|
||||
% ["NA","NA","NA","NA"],
|
||||
% ["CD","NA","NA","NA"],
|
||||
% ["NA","CF","NA","NA"],
|
||||
% ["NA","NA","CA","ND"]
|
||||
% ],
|
||||
% "condition" : [
|
||||
% {"CD" : "ISDAUGHTER()"},
|
||||
% {"CF" : "LESSTHRESHOLD(VERT,1.e-1f)"},
|
||||
% {"CA" : "AND(LESSTHRESHOLD(VERT,1.e-1f),LESSTHRESHOLD(ROUGE,10.f))"},
|
||||
% {"ND" : "TRUE"}
|
||||
% ]
|
||||
%}
|
||||
% \end{lstlisting}
|
19
part1.conclude.tex
Normal file
19
part1.conclude.tex
Normal file
|
@ -0,0 +1,19 @@
|
|||
\begin{frame}%[label=this one]
|
||||
\frametitle{Conclusion et perspectives}
|
||||
|
||||
\begin{itemize}
|
||||
\item Contributions
|
||||
\begin{enumerate}
|
||||
\item \structure{Cadre unifié} pour approcher la modélisation multi-niveau
|
||||
\item \structure{Identification} de formalisme, modèle, système
|
||||
\item \structure{Introduction} de $\mathbf{Abs}_S$
|
||||
\end{enumerate}
|
||||
\bigskip
|
||||
\item Perspectives
|
||||
\begin{enumerate}
|
||||
\item \structure{Étude} de la catégorie $\mathbf{Abs}_S$
|
||||
\item \structure{Intégrer} les niveaux de description
|
||||
\end{enumerate}
|
||||
\end{itemize}
|
||||
|
||||
\end{frame}
|
22
part2.conclude.tex
Normal file
22
part2.conclude.tex
Normal file
|
@ -0,0 +1,22 @@
|
|||
\begin{frame}[label=this one]
|
||||
\frametitle{Conclusion et perspectives}
|
||||
|
||||
\begin{itemize}
|
||||
\item \structure{Conclusion}
|
||||
\begin{enumerate}
|
||||
\item \structure{Spatialisation de l'activité} à partir des \structure{interactions}
|
||||
\item \structure{Caractérisation topologique} de la progression de l'activité
|
||||
\item \structure{Algorithme} générique de suivi du front d'activité
|
||||
\item \structure{Optimisation} fondée sur l'activité
|
||||
\end{enumerate}
|
||||
\bigskip
|
||||
\item \structure{Perspectives}
|
||||
\begin{enumerate}
|
||||
\item \structure{Ajouter} le support de l'activité à MGS
|
||||
\item \structure{Raffiner} la zone active en sous-régions
|
||||
\item \structure{Réifier} le bord de la zone active
|
||||
\item \structure{Décrire} un modèle multi-niveau de la propagation du feu de forêt
|
||||
\end{enumerate}
|
||||
\end{itemize}
|
||||
|
||||
\end{frame}
|
23
part3.conclude.tex
Normal file
23
part3.conclude.tex
Normal file
|
@ -0,0 +1,23 @@
|
|||
\begin{frame}{Conclusion et perspectives}
|
||||
|
||||
\begin{itemize}
|
||||
\item \structure{Conclusion}:
|
||||
\begin{enumerate}
|
||||
\item Développement d'un simulateur d'une colonie de bactéries
|
||||
\item Programmation spécifique SIMD, non triviale
|
||||
\item Proposition d'un algorithme (PPM) pour la simulation parallèle
|
||||
d'un automate cellulaire 2D
|
||||
\end{enumerate}
|
||||
\bigskip
|
||||
\item \structure{Perspectives}:
|
||||
\begin{enumerate}
|
||||
\item Calibrer les paramètres des moteurs physique et chimique
|
||||
\item Tester d'autres méthodes de discrétisation pour l'équation de
|
||||
réaction-diffusion
|
||||
\item Construire une IHM (GUI, CLI, etc.)
|
||||
\item Effectuer des tests de performance
|
||||
\item Diffuser l'outil auprès de la communauté
|
||||
\end{enumerate}
|
||||
\end{itemize}
|
||||
|
||||
\end{frame}
|
9
plan.tex
Normal file
9
plan.tex
Normal file
|
@ -0,0 +1,9 @@
|
|||
\begin{frame}[noframenumbering]{ }
|
||||
\begin{columns}
|
||||
\column{.7\textwidth}
|
||||
{\LARGE\tableofcontents[\tocshowonlycurrentsection]}
|
||||
|
||||
\column{.2\textwidth}
|
||||
\centering\drawfigure
|
||||
\end{columns}
|
||||
\end{frame}
|
109
predator.prey.tex
Normal file
109
predator.prey.tex
Normal file
|
@ -0,0 +1,109 @@
|
|||
\begin{frame}%[label=this one]
|
||||
\frametitle{Système proies/prédateurs (système)}
|
||||
\framesubtitle{Description du système}
|
||||
|
||||
\begin{columns}
|
||||
\column{.7\textwidth}\centering
|
||||
\includegraphics[width=.7\textwidth]{raster/system-predator-prey}\\
|
||||
\mkCitation{S. S. Mader, Biology 6th edition, 1998}
|
||||
|
||||
\bigskip
|
||||
\begin{itemize}
|
||||
\item Les proies se reproduisent spontanément
|
||||
\item Les prédateurs meurent spontanément
|
||||
\item Les prédateurs chassent les proies
|
||||
\begin{itemize}
|
||||
\item Les proies meurent (chassées)
|
||||
\item Les prédateurs peuvent se reproduire (efficacité de la chasse)
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{columns}
|
||||
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}%[label=this one]
|
||||
\frametitle{Système proies/prédateurs (modèles)}
|
||||
\framesubtitle{Modèles et formalismes}
|
||||
\centering
|
||||
\begin{tikzpicture}[overlay,%
|
||||
node distance=13mm and 20mm,
|
||||
model/.style={draw,circle,on grid=true,fill=white,minimum size=24pt},
|
||||
abstraction/.style={-Stealth,thick}
|
||||
]
|
||||
\node[model, left=of current page.center] (m1) {$\model_1$};
|
||||
\node[model,above=of current page.center] (m2) {$\model_2$};
|
||||
\uncover<2->{
|
||||
\node[model,below=of current page.center] (m3) {$\model_3$};
|
||||
}
|
||||
\uncover<3>{
|
||||
\node[model,right=of current page.center] (m4) {?};
|
||||
}
|
||||
\uncover<4->{
|
||||
\node[model,right=of current page.center] (m4) {$\model_4$};
|
||||
}
|
||||
\draw[abstraction] (m1) to node[anchor=south,midway,sloped]
|
||||
{\tiny trajectoire moyenne} (m2);
|
||||
\uncover<2->{
|
||||
\draw[abstraction] (m1) to node[anchor=north,midway,sloped,swap]
|
||||
{\tiny aggrégation de l'espace} (m3);
|
||||
}
|
||||
\uncover<3>{
|
||||
\draw[abstraction,dashed] (m2) to (m4);
|
||||
\draw[abstraction,dashed] (m1) to (m4);
|
||||
\draw[abstraction,dashed] (m3) to (m4);
|
||||
}
|
||||
\uncover<4->{
|
||||
\draw[abstraction] (m2) to node[anchor=south,midway,sloped,swap]
|
||||
{\tiny aggrégation de l'espace} (m4);
|
||||
\draw[abstraction] (m3) to node[anchor=north,midway,sloped]
|
||||
{\tiny trajectoire moyenne} (m4);
|
||||
}
|
||||
\end{tikzpicture}
|
||||
|
||||
\begin{tikzpicture}[overlay]
|
||||
\uncover<1-2>{
|
||||
\node[anchor=south east] (m1eq) at (m1.north west) {\tiny$
|
||||
\left\{
|
||||
\arraycolsep=1.4pt%\def\arraystretch{2.2}
|
||||
\begin{array}{rcl}
|
||||
\displaystyle\frac{dU_V}{dt} &=& r U_V (1 - \displaystyle\frac{U_V}{K})
|
||||
- g U_P U_V\\[1.5ex]
|
||||
\displaystyle\frac{dU_P}{dt} &=& n U_V U_P - \mu U_P
|
||||
\end{array}
|
||||
\right.%}
|
||||
$};
|
||||
\node[anchor=north] at (m1eq.south) {\includegraphics[height=2cm]{vector/lv-graph}};
|
||||
\node[anchor=south east] (m2eq) at ($(m2.north west)+(0,7pt)$) {\tiny$
|
||||
\arraycolsep=1.4pt%\def\arraystretch{0}
|
||||
\begin{array}{rl}
|
||||
V + E &\overset{b}{\longrightarrow} 2\,V \\
|
||||
P + V &\overset{p_1}{\longrightarrow} 2\,P \\
|
||||
P + V &\overset{p_2}{\longrightarrow} P + E
|
||||
\end{array}
|
||||
\quad
|
||||
\begin{array}{rl}
|
||||
V &\overset{d_V}{\longrightarrow} E \\
|
||||
P &\overset{d_P}{\longrightarrow} E
|
||||
\end{array}
|
||||
$};
|
||||
\node[anchor=west] at (m2eq.east) {\includegraphics[width=2cm]{vector/lv-gil-graph}};
|
||||
}
|
||||
\uncover<2>{
|
||||
\node[anchor=north] (m3eq) at (m3.south) {\tiny$
|
||||
\left\{
|
||||
\arraycolsep=1.4pt%\def\arraystretch{2.0}
|
||||
\begin{array}{rcll}
|
||||
\displaystyle\frac{du_V}{dt} &=& r u_V (1 - \displaystyle\frac{u_V}{K}) - g u_P u_V \\
|
||||
&+& D_V (\nabla^2 u_V + u_V \nabla^2 u_P - u_P \nabla^2 u_V)
|
||||
\\[1.5ex]
|
||||
\displaystyle\frac{du_P}{dt} &=& n u_V u_P - \mu u_P \\
|
||||
&+& D_P (\nabla^2 u_P + u_P \nabla^2 u_V - u_V \nabla^2 u_P)
|
||||
\end{array}
|
||||
\right.%}
|
||||
$};
|
||||
}
|
||||
\uncover<4>{
|
||||
\node[anchor=west] at (m4.east) {\structure{[Lugo et McKane 2008]}};
|
||||
}
|
||||
\end{tikzpicture}
|
||||
\end{frame}
|
37
representing.space.tex
Normal file
37
representing.space.tex
Normal file
|
@ -0,0 +1,37 @@
|
|||
\begin{frame}{Representing Space}
|
||||
\begin{columns}
|
||||
\column{.6\textwidth}
|
||||
\only<1>{\includegraphics[width=\textwidth]{raster/space-nospace-shade}}
|
||||
\only<2>{\includegraphics[width=\textwidth]{raster/space-nospace}}
|
||||
\column{.4\textwidth}
|
||||
\begin{itemize}
|
||||
\item<1> Without space
|
||||
\item<2> With space
|
||||
\end{itemize}
|
||||
\end{columns}
|
||||
|
||||
\begin{columns}
|
||||
\column{.6\textwidth}
|
||||
\only<1>{\includegraphics[width=\textwidth]{raster/space-discrete-shade}}
|
||||
\only<2>{\includegraphics[width=\textwidth]{raster/space-discrete}}
|
||||
\column{.4\textwidth}
|
||||
\begin{itemize}
|
||||
\item<2> Discrete
|
||||
\item<2> Continuous
|
||||
\end{itemize}
|
||||
\end{columns}
|
||||
|
||||
\begin{columns}
|
||||
\column{.6\textwidth}
|
||||
\only<1>{\includegraphics[width=\textwidth]{raster/space-newton-shade}}
|
||||
\only<2>{\includegraphics[width=\textwidth]{raster/space-newton}}
|
||||
\column{.4\textwidth}
|
||||
\begin{itemize}
|
||||
% Embedded in preexisting space
|
||||
\item<2> Absolute (Newtonian)
|
||||
% induced by relationship between entities
|
||||
\item<2> Relative (Leibnizian)
|
||||
\end{itemize}
|
||||
\end{columns}
|
||||
|
||||
\end{frame}
|
32
representing.space.time.interaction.tex
Normal file
32
representing.space.time.interaction.tex
Normal file
|
@ -0,0 +1,32 @@
|
|||
\begin{frame}{Representing the Evolution Function}
|
||||
\begin{center}
|
||||
\includegraphics[height=1cm]{raster/evolution-function}
|
||||
\end{center}
|
||||
\begin{columns}
|
||||
\column{.6\textwidth}
|
||||
\includegraphics[width=\textwidth]{raster/sync-sync}
|
||||
\column{.4\textwidth}
|
||||
\begin{itemize}
|
||||
\item Synchronous\\all the events
|
||||
\end{itemize}
|
||||
\end{columns}
|
||||
\vspace{-2ex}
|
||||
\begin{columns}
|
||||
\column{.6\textwidth}
|
||||
\includegraphics[width=\textwidth]{raster/sync-seq}
|
||||
\column{.4\textwidth}
|
||||
\begin{itemize}
|
||||
\item Sequential\\exactly one event
|
||||
\end{itemize}
|
||||
\end{columns}
|
||||
\vspace{-2ex}
|
||||
\begin{columns}
|
||||
\column{.6\textwidth}
|
||||
\includegraphics[width=\textwidth]{raster/sync-async}
|
||||
\column{.4\textwidth}
|
||||
\begin{itemize}
|
||||
\item Asynchronous\\at least one event
|
||||
\end{itemize}
|
||||
\end{columns}
|
||||
|
||||
\end{frame}
|
35
representing.time.tex
Normal file
35
representing.time.tex
Normal file
|
@ -0,0 +1,35 @@
|
|||
\begin{frame}{Representing Time}
|
||||
\begin{columns}
|
||||
\column{.4\textwidth}
|
||||
\begin{itemize}
|
||||
\item<1> Without time
|
||||
\item<2> With time
|
||||
\end{itemize}
|
||||
\column{.6\textwidth}
|
||||
\only<1>{\includegraphics[width=\textwidth]{raster/time-notime-shadetime}}
|
||||
\only<2>{\includegraphics[width=\textwidth]{raster/time-notime-shadenotime}}
|
||||
\end{columns}
|
||||
|
||||
\begin{columns}
|
||||
\column{.4\textwidth}
|
||||
\begin{itemize}
|
||||
\item<2> Discrete
|
||||
\item<2> Continuous
|
||||
\end{itemize}
|
||||
\column{.6\textwidth}
|
||||
\only<1>{\includegraphics[width=\textwidth]{raster/time-discrete-shade}}
|
||||
\only<2>{\includegraphics[width=\textwidth]{raster/time-discrete}}
|
||||
\end{columns}
|
||||
|
||||
\begin{columns}
|
||||
\column{.4\textwidth}
|
||||
\begin{itemize}
|
||||
\item<2> Absolute (Newtonian)
|
||||
\item<2> Relative (Leibnizian)
|
||||
\end{itemize}
|
||||
\column{.6\textwidth}
|
||||
\only<1>{\includegraphics[width=\textwidth]{raster/time-newton-shade}}
|
||||
\only<2>{\includegraphics[width=\textwidth]{raster/time-newton}}
|
||||
\end{columns}
|
||||
|
||||
\end{frame}
|
26
sbgp.tex
Normal file
26
sbgp.tex
Normal file
|
@ -0,0 +1,26 @@
|
|||
\begin{frame}[fragile]{Décrire une simulation avec SBGP}
|
||||
|
||||
\begin{columns}
|
||||
\column{.4\textwidth}
|
||||
\begin{lstlisting}
|
||||
{
|
||||
"signals" = [],
|
||||
"reactions" = [],
|
||||
"type" = [],
|
||||
"behavior" = {},
|
||||
"transition" = [],
|
||||
"cond_transition" = []
|
||||
}
|
||||
\end{lstlisting}
|
||||
|
||||
\column{.5\textwidth}
|
||||
\begin{itemize}[<+->]
|
||||
\item signals: liste des morphogènes
|
||||
\item reactions: liste des réactions
|
||||
\item type: liste des états possibles pour les bactéries
|
||||
\item behavior: liste des actions effectuées par les bactéries par type
|
||||
\item transition: table de transition pour un changement de type
|
||||
\item cond\_transition: liste des conditions de transition
|
||||
\end{itemize}
|
||||
\end{columns}
|
||||
\end{frame}
|
77
shell.nix
Normal file
77
shell.nix
Normal file
|
@ -0,0 +1,77 @@
|
|||
#To run this, you need nix (https://ariya.io/2016/05/nix-as-os-x-package-manager)
|
||||
#and the package nix-shell (just run `nix-env -iA nixos.nix-shell`)
|
||||
#Then, in the directory of this file, just call `nix-shell`
|
||||
|
||||
#This will create a custom shell (with only the needed dependencies) for
|
||||
#building the presentation
|
||||
with import <nixpkgs> {};
|
||||
stdenv.mkDerivation {
|
||||
name = "thesis-presentation";
|
||||
shellHook = ''
|
||||
latexmk \
|
||||
-pvc \
|
||||
-view=none \
|
||||
-silent \
|
||||
-time \
|
||||
-interaction=nonstopmode \
|
||||
-xelatex main.tex
|
||||
latexmk -c
|
||||
rm *.{snm,nav,vrb}
|
||||
'';
|
||||
buildInputs = [
|
||||
( texlive.combine {
|
||||
inherit (texlive)
|
||||
scheme-basic
|
||||
collection-langfrench
|
||||
#algorithm2e
|
||||
#biblatex
|
||||
#caption
|
||||
#enumitem
|
||||
#logreq
|
||||
#minitoc
|
||||
#multirow
|
||||
#pgf
|
||||
#pgfplots
|
||||
#placeins
|
||||
#relsize
|
||||
#setspace
|
||||
#standalone
|
||||
#xcolor
|
||||
#xkeyval
|
||||
#xstring
|
||||
beamer
|
||||
colortbl
|
||||
euenc
|
||||
extsizes
|
||||
filehook
|
||||
jknapltx
|
||||
latexmk
|
||||
listings
|
||||
metafont
|
||||
ms
|
||||
pdfpages
|
||||
polyglossia
|
||||
realscripts
|
||||
rsfs
|
||||
siunitx
|
||||
tools
|
||||
ucharcat
|
||||
unicode-math
|
||||
xetex
|
||||
xetex-def
|
||||
xltxtra
|
||||
zapfding
|
||||
;} )
|
||||
#biber
|
||||
];
|
||||
}
|
||||
#thesis = buildEnv {
|
||||
# name = "memoire-these";
|
||||
# buildInputs = [
|
||||
# ];
|
||||
# shellHook = ''
|
||||
# alias make=$(which buildthesis)
|
||||
# ln -s $(which buildthesis) buildme
|
||||
# echo "Juste type 'make' or './buildme' to build the thesis"
|
||||
# '';
|
||||
#};
|
61
simple.ff.example.tex
Normal file
61
simple.ff.example.tex
Normal file
|
@ -0,0 +1,61 @@
|
|||
\begin{frame}[fragile]%,label=this one]
|
||||
\frametitle{Modèle 1: un automate à 3 états}
|
||||
%\framesubtitle{a 3-state fire propagation}
|
||||
% Nécessaire plus loin pour l'activité
|
||||
\hspace{5mm}
|
||||
\input{vector/simpleexamplelegend.tikz}
|
||||
\hfill
|
||||
% PROPAGATION RULE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\input{vector/simpleexample-propagation.tikz}
|
||||
\hfill
|
||||
% EXTINCTION RULE %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\input{vector/simpleexample-extinction.tikz}
|
||||
\hspace{5mm}
|
||||
|
||||
\pause
|
||||
\bigskip
|
||||
\begin{columns}[t]
|
||||
\column{.72\textwidth}
|
||||
\begin{overlayarea}{\textwidth}{.35\textheight}
|
||||
\begin{itemize}
|
||||
\item<1-> Topologie des interactions
|
||||
|
||||
\medskip
|
||||
\only<2>{\input{vector/simpleexample-moore.tikz}}
|
||||
|
||||
\item<3-> Lois d'évolution
|
||||
|
||||
\medskip
|
||||
\only<3->{
|
||||
\defverbatim[colored]\transevol{%
|
||||
\begin{semiverbatim}
|
||||
trans $T$ = \{
|
||||
|
||||
{\color{forest}`Forest} / neighboursMember({\color{fire}`Fire}) => {\color{fire}`Fire};\par
|
||||
{\color{fire}`Fire} => {\color{ashes}`Ash};
|
||||
|
||||
\}
|
||||
\end{semiverbatim}}
|
||||
\transevol
|
||||
}
|
||||
|
||||
\end{itemize}
|
||||
\end{overlayarea}
|
||||
\column{.24\textwidth}
|
||||
\uncover<4->{
|
||||
\begin{overlayarea}{.9\textwidth}{.2\textheight}
|
||||
\begin{center}
|
||||
\animatevalue<4-10>{\currentimg}{5}{16}
|
||||
\includegraphics[width=\textwidth]{animation/ffire-frame-\the\currentimg.png}
|
||||
\end{center}
|
||||
\end{overlayarea}
|
||||
\end{columns}
|
||||
}
|
||||
\only<2>{\begin{center}
|
||||
{\small Deux cellules \structure{sont voisines} si le feu peut se propager de
|
||||
l'une à l'autre}
|
||||
\end{center}}
|
||||
\only<3>{{\large
|
||||
$$ C^{i+1} = T(C^i)$$
|
||||
}}
|
||||
\end{frame}
|
28
test.tex
Normal file
28
test.tex
Normal file
|
@ -0,0 +1,28 @@
|
|||
\begin{frame}[plain,noframenumbering]{TEST}
|
||||
\tikz[overlay] \node[very thick,minimum width=\textwidth,
|
||||
minimum height=\textheight,draw] at (current page.center) {x};
|
||||
|
||||
|
||||
\begin{tikzpicture}
|
||||
\node {
|
||||
\foreach \posx/\posy/\kolor in {%
|
||||
0cm/7cm/orange,
|
||||
0cm/6cm/red,
|
||||
0cm/5cm/green,
|
||||
0cm/4cm/yellow,
|
||||
0cm/3cm/magenta,
|
||||
0cm/2cm/violet,
|
||||
0cm/1cm/blue,
|
||||
0cm/0cm/cyan,
|
||||
1cm/5cm/active,
|
||||
1cm/4cm/ashes,
|
||||
1cm/3cm/fire,
|
||||
1cm/2cm/forest,
|
||||
1cm/1cm/frontier,
|
||||
1cm/0cm/quiescent}
|
||||
\tikz \node[fill=\kolor,minimum size=5mm,inner sep=0pt,label=right:\kolor]
|
||||
at (\posy,\posx) {};
|
||||
};
|
||||
\end{tikzpicture}
|
||||
|
||||
\end{frame}
|
29
title.tex
Normal file
29
title.tex
Normal file
|
@ -0,0 +1,29 @@
|
|||
\begin{frame}[plain,noframenumbering]{}
|
||||
|
||||
\begin{center}
|
||||
{\Huge\structure\inserttitle}
|
||||
\medskip
|
||||
\par\insertsubtitle
|
||||
\end{center}
|
||||
\vfill
|
||||
|
||||
\begin{center}
|
||||
Soutenance de thèse de\\[.5em]
|
||||
{\huge\insertauthor}
|
||||
|
||||
\bigskip
|
||||
le 6 juillet 2017\\
|
||||
\small LACL (Créteil, France)\\
|
||||
\end{center}
|
||||
|
||||
\vfill
|
||||
\hspace{5mm}
|
||||
\includegraphics[height=.6cm]{raster/logo-lacl}
|
||||
\hfill
|
||||
\includegraphics[height=.6cm]{raster/logo-upe}
|
||||
\hfill
|
||||
\includegraphics[height=.6cm]{raster/logo-anr}
|
||||
\hfill
|
||||
\includegraphics[height=.6cm]{raster/logo-synbiotic}
|
||||
\hspace{5mm}
|
||||
\end{frame}
|
22
wave.algorithm.tex
Normal file
22
wave.algorithm.tex
Normal file
|
@ -0,0 +1,22 @@
|
|||
\begin{frame}
|
||||
\newcommand{\myA}{{\color{active}A}}
|
||||
\newcommand{\myF}{{\color{frontier}F}}
|
||||
\frametitle{Algorithme du suivi de l'activité}
|
||||
\begin{columns}
|
||||
\column{.5\textwidth}
|
||||
\input{vector/algo-frontier.tikz}
|
||||
\column{.5\textwidth}
|
||||
\begin{tabular}{rl}
|
||||
$A, F$:& set of cells\\
|
||||
$C$:& collection
|
||||
\end{tabular}
|
||||
\[
|
||||
\huge
|
||||
\begin{array}{rl}
|
||||
\uncover<1->{C &\leftarrow T(\myA|\myF)}\\
|
||||
\uncover<2->{\myA &\leftarrow P_C(\myA) \cup P_C(\myF)}\\
|
||||
\uncover<3->{\myF &\leftarrow \text{Lk}(\myA)}
|
||||
\end{array}
|
||||
\]
|
||||
\end{columns}
|
||||
\end{frame}
|
110
where.is.activity.tex
Normal file
110
where.is.activity.tex
Normal file
|
@ -0,0 +1,110 @@
|
|||
\begin{frame}
|
||||
\frametitle{Localiser l'activité}
|
||||
|
||||
\centering
|
||||
\input{vector/active-equation.tikz}
|
||||
\begin{columns}
|
||||
\column{.65\textwidth}\centering
|
||||
\input{vector/active-quiescent-reprensentation.tikz}
|
||||
\column{.35\textwidth}
|
||||
\end{columns}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}[label=this one]
|
||||
\frametitle{Simulations \mgs et sous-collection active}
|
||||
\begin{itemize}
|
||||
\item Trajectoires dans \mgs
|
||||
\begin{center}
|
||||
\begin{tikzpicture} [scale=0.4,baseline,
|
||||
cell/.style={minimum size=0.35cm}]
|
||||
\fill (0.65,0.65) rectangle (8.35,8.35);
|
||||
\foreach \p/\c in%
|
||||
{ { (1,8)/forest},{(2,8)/forest},{(3,8)/forest},{(4,8)/forest},{(5,8)/forest},{(6,8)/forest},{(7,8)/forest},{(8,8)/forest}%
|
||||
,{(1,7)/forest},{(2,7)/forest},{(3,7)/forest},{(4,7)/forest},{(5,7)/forest},{(6,7)/forest},{(7,7)/forest},{(8,7)/forest}%
|
||||
,{(1,6)/forest},{(2,6)/forest},{(3,6)/fire}, {(4,6)/fire}, {(5,6)/forest},{(6,6)/forest},{(7,6)/forest},{(8,6)/forest}%
|
||||
,{(1,5)/forest},{(2,5)/forest},{(3,5)/forest},{(4,5)/fire}, {(5,5)/forest},{(6,5)/forest},{(7,5)/forest},{(8,5)/forest}%
|
||||
,{(1,4)/forest},{(2,4)/forest},{(3,4)/forest},{(4,4)/forest},{(5,4)/forest},{(6,4)/forest},{(7,4)/forest},{(8,4)/forest}%
|
||||
,{(1,3)/forest},{(2,3)/forest},{(3,3)/forest},{(4,3)/forest},{(5,3)/forest},{(6,3)/forest},{(7,3)/forest},{(8,3)/forest}%
|
||||
,{(1,2)/forest},{(2,2)/forest},{(3,2)/forest},{(4,2)/forest},{(5,2)/forest},{(6,2)/forest},{(7,2)/forest},{(8,2)/fire}%
|
||||
,{(1,1)/forest},{(2,1)/forest},{(3,1)/forest},{(4,1)/forest},{(5,1)/forest},{(6,1)/forest},{(7,1)/forest},{(8,1)/fire}}
|
||||
\node[cell,fill=\c,draw=white,line width=1pt] at \p {};
|
||||
\node at (4.5,0) {$C^0$};
|
||||
\end{tikzpicture}
|
||||
\hfill
|
||||
\begin{tikzpicture} [scale=0.4,baseline,
|
||||
cell/.style={minimum size=0.35cm}]
|
||||
\fill (0.65,0.65) rectangle (8.35,8.35);
|
||||
\foreach \p/\c in%
|
||||
{ { (1,8)/forest},{(2,8)/forest},{(3,8)/forest},{(4,8)/forest},{(5,8)/forest},{(6,8)/forest},{(7,8)/forest},{(8,8)/forest}%
|
||||
,{(1,7)/forest},{(2,7)/fire}, {(3,7)/fire}, {(4,7)/fire}, {(5,7)/fire}, {(6,7)/forest},{(7,7)/forest},{(8,7)/forest}%
|
||||
,{(1,6)/forest},{(2,6)/fire}, {(3,6)/ashes}, {(4,6)/ashes}, {(5,6)/fire}, {(6,6)/forest},{(7,6)/forest},{(8,6)/forest}%
|
||||
,{(1,5)/forest},{(2,5)/fire}, {(3,5)/fire}, {(4,5)/ashes}, {(5,5)/fire}, {(6,5)/forest},{(7,5)/forest},{(8,5)/forest}%
|
||||
,{(1,4)/forest},{(2,4)/forest},{(3,4)/fire}, {(4,4)/fire}, {(5,4)/fire}, {(6,4)/forest},{(7,4)/forest},{(8,4)/forest}%
|
||||
,{(1,3)/forest},{(2,3)/forest},{(3,3)/forest},{(4,3)/forest},{(5,3)/forest},{(6,3)/forest},{(7,3)/fire}, {(8,3)/fire}%
|
||||
,{(1,2)/forest},{(2,2)/forest},{(3,2)/forest},{(4,2)/forest},{(5,2)/forest},{(6,2)/forest},{(7,2)/fire}, {(8,2)/ashes}%
|
||||
,{(1,1)/forest},{(2,1)/forest},{(3,1)/forest},{(4,1)/forest},{(5,1)/forest},{(6,1)/forest},{(7,1)/fire}, {(8,1)/ashes}}
|
||||
\node[cell,fill=\c,draw=white,line width=1pt] at \p {};
|
||||
\node at (4.5,0) {$C^1 = T(C^0)$};
|
||||
\end{tikzpicture}
|
||||
\hfill
|
||||
\begin{tikzpicture} [scale=0.4,baseline,
|
||||
cell/.style={minimum size=0.35cm}]
|
||||
\fill (0.65,0.65) rectangle (8.35,8.35);
|
||||
\foreach \p/\c in%
|
||||
{ { (1,8)/fire}, {(2,8)/fire}, {(3,8)/fire}, {(4,8)/fire}, {(5,8)/fire}, {(6,8)/fire}, {(7,8)/forest},{(8,8)/forest}%
|
||||
,{(1,7)/fire}, {(2,7)/ashes}, {(3,7)/ashes}, {(4,7)/ashes}, {(5,7)/ashes}, {(6,7)/fire}, {(7,7)/forest},{(8,7)/forest}%
|
||||
,{(1,6)/fire}, {(2,6)/ashes}, {(3,6)/ashes}, {(4,6)/ashes}, {(5,6)/ashes}, {(6,6)/fire}, {(7,6)/forest},{(8,6)/forest}%
|
||||
,{(1,5)/fire}, {(2,5)/ashes}, {(3,5)/ashes}, {(4,5)/ashes}, {(5,5)/ashes}, {(6,5)/fire}, {(7,5)/forest},{(8,5)/forest}%
|
||||
,{(1,4)/fire}, {(2,4)/fire}, {(3,4)/ashes}, {(4,4)/ashes}, {(5,4)/ashes}, {(6,4)/fire}, {(7,4)/fire}, {(8,4)/fire}%
|
||||
,{(1,3)/forest},{(2,3)/fire}, {(3,3)/fire}, {(4,3)/fire}, {(5,3)/fire}, {(6,3)/fire}, {(7,3)/ashes}, {(8,3)/ashes}%
|
||||
,{(1,2)/forest},{(2,2)/forest},{(3,2)/forest},{(4,2)/forest},{(5,2)/forest},{(6,2)/fire}, {(7,2)/ashes}, {(8,2)/ashes}%
|
||||
,{(1,1)/forest},{(2,1)/forest},{(3,1)/forest},{(4,1)/forest},{(5,1)/forest},{(6,1)/fire}, {(7,1)/ashes}, {(8,1)/ashes}}
|
||||
\node[cell,fill=\c,draw=white,line width=1pt] at \p {};
|
||||
\node at (4.5,0) {$C^2 = T(C^1) = T^2(C^0)$};
|
||||
\end{tikzpicture}
|
||||
|
||||
\end{center}
|
||||
\item Décomposition de l'activité et trajectoires
|
||||
\begin{itemize}
|
||||
\item \textcolor{active}{Sous-collection active $A_i$} et
|
||||
\textcolor{quiescent}{sous-collection quiescente $Q_i$}
|
||||
\item Décomposition de la relation d'évolution
|
||||
\[ A^{i+1} + Q^{i+1} = T(A^i + Q^i) \]
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Relation entre $A^{i+1},Q^{i+1}$ et $A^i,Q^i$}
|
||||
$$ A^{i+1} + Q^{i+1} = T(A^i + Q^i) $$
|
||||
\begin{itemize}
|
||||
\item Sous-collection \textcolor{frontier}{frontière $F^i$}
|
||||
\end{itemize}
|
||||
\begin{columns}
|
||||
\column{.5\textwidth}
|
||||
\begin{enumerate}
|
||||
\item \structure{Propriété} $T(A^i + Q^i) = T(A^i \mid Q^i) + Q^i$
|
||||
\item \structure{Propriété} $| A^{i+1} | \subseteq | A^i + F^i |$
|
||||
\item \structure{Propriété} $| Q^i - F^i | \subseteq | Q^{i+1} |$
|
||||
\item \structure{Définition} $F^i = \text{Lk}(A^i)$
|
||||
\item \structure{Remarque} $T(A^i \mid Q^i) = T(A^i \mid F^i)$
|
||||
\item \structure{Résultat} $C^{i+1} = T(A^i \mid F^i) + F^i + (Q^i - F^i)$
|
||||
\end{enumerate}
|
||||
\column{.5\textwidth}
|
||||
$$ \text{Lk} \left(
|
||||
\tikz[baseline] \node {\includegraphics[width=2cm]{vector/operateursS}};
|
||||
\right) =
|
||||
\tikz[baseline] \node {\includegraphics[width=2cm]{vector/operateursLkS}};
|
||||
$$
|
||||
\end{columns}
|
||||
|
||||
\bigskip
|
||||
\[
|
||||
\left\{
|
||||
\arraycolsep=1.4pt%\def\arraystretch{2.2}
|
||||
\begin{array}{rl}
|
||||
A^0 &= \text{PatMatch}_T(C^0)\\
|
||||
A^{i+1} &= \text{PatMatch}_T\left[ T(A^i \mid \text{Lk}(A^i)) + \text{Lk}(A^i) \right]
|
||||
\end{array}
|
||||
\right.
|
||||
\]
|
||||
\end{frame}
|
Loading…
Reference in a new issue