705 lines
43 KiB
TeX
705 lines
43 KiB
TeX
\chapter{Introduction}%\minitoc
|
|
|
|
%Intro barrée
|
|
Depuis l'avènement de la science informatique, les modèles sont de plus en plus
|
|
utilisés pour décrire et comprendre le monde qui nous entoure. Automatisés et
|
|
portés par les langages de programmation, ils sont de plus en plus imposants,
|
|
au sens où ils incorporent de plus en plus d'information et visent à être de
|
|
plus en plus complets. Barrant le chemin à une meilleure compréhension de notre
|
|
environnement, la modélisation des \emph{systèmes complexes} est le prochain col
|
|
à franchir dans la compréhension du vivant (pour les sciences du vivant) et dans
|
|
la compréhension des fondements des modèles (pour les sciences informatiques et
|
|
mathématiques).
|
|
|
|
Il existe un riche vocabulaire entourant le monde des \emph{systèmes
|
|
complexes}: émergence, immergence, backward- et forward-causality, …
|
|
Ces notions sont difficiles à appréhender car elles se fondent sur
|
|
des cas particuliers (comme les exemples classiques du jeu de la
|
|
vie~\cite{gardner_mathematical_1970}, des boids~\cite{reynolds_flocks_1987} ou
|
|
de la fourmilière~\cite{wilensky_netlogo_1997}) et sur un certain laxisme formel
|
|
dans la description des modèles, provenant de la confusion entre les objets que
|
|
le modèle manipule et de notre propre identification de ces mêmes objets. Pour
|
|
chacun des exemples donnés ci-dessus, nous pouvons nommer des propriétés qui ne
|
|
font pas partie du modèle:
|
|
\begin{itemize}
|
|
\item Dans le jeu de la vie, un observateur parlera souvent de «glider», de
|
|
«canons» à glider, de «beacon», de «pulsar», etc.;
|
|
\item Dans le modèles des boids, un observateur identifiera un comportement
|
|
de groupe et cherchera à en identifier le «leader»;
|
|
\item Dans le modèle de la fourmilière, un observateur remarquera que les
|
|
individus sélectionnent le «plus court chemin» pour rapporter la nourriture
|
|
au nid, et qu'ils traitent les sources de nourriture dans l'ordre «du plus
|
|
proche au plus lointain».
|
|
\end{itemize}
|
|
Toutes les propriétés mises entre guillemets ci-dessus ne sont pas des
|
|
propriétés des modèles présentés, il n'y a pas de «glider» dans le modèle du
|
|
jeu de la vie, il n'y a pas de «leader» dans le modèle des boids ni de «plus
|
|
court chemin» dans le modèle de la fourmilière. Ce sont des interprétations qui
|
|
sont faites sur le déroulement d'une simulation, des propriétés d'un modèle
|
|
\emph{implicite} que l'observateur établi de lui-même. Rendre explicite ce
|
|
modèle puis lier formellement ces propriétés émergentes au modèle d'origine est
|
|
un enjeu de taille, car il permettrait de relier tout ensemble de propriétés
|
|
\emph{locales} à des propriétés \emph{globales}, c'est-à-dire des propriétés des
|
|
individus à des propriétés du groupe formé de ces individus.
|
|
|
|
% Loi / simulation | global / local
|
|
Un outil classique de la modélisation, les équations différentielles, nous
|
|
donne l'occasion d'illustrer ce rapport local/global. Un système d'équations
|
|
différentielles permet de décrire le comportement d'entités locales (au cours
|
|
du temps, les unes par rapport aux autres, …). Lorsque ce système d'équations
|
|
différentielles possède une solution, alors la fonction solution est une
|
|
\emph{loi globale} du modèle établi au niveau local. Il existe un lien formel
|
|
entre le comportement local de ces entités et leur comportement global. Il
|
|
est possible d'étudier cette fonction \emph{directement} en toute généralité.
|
|
Toutefois, cette solution au système d'équations différentielles n'existe pas
|
|
forcément. Dans ce cas, il est toujours possible d'obtenir le comportement
|
|
global de ces entités par intégration numérique, c'est-à-dire en approchant
|
|
la fonction solution \emph{au cas par cas}. N'ayant pas accès à la fonction
|
|
solution, il n'est cependant pas possible d'étudier directement le comportement
|
|
global de cette population.
|
|
|
|
%equadiff avec solution = loi (fast path)
|
|
%equadiff sans solution = simulation (slow path)
|
|
|
|
% Le multi-modèle à la rescousse ?
|
|
Nous prendrons partie pour le fait que construire un modèle constitué de
|
|
plusieurs sous-modèles nous permet sous certaines conditions de répondre à la
|
|
problématique. Cela doit nous permettre de concilier les comportements locaux et
|
|
globaux de ce système. Nous appellerons cette technique la \emph{modélisation
|
|
multi-niveau}, que nous considérons comme une sous-branche de la modélisation
|
|
multi-modèle.
|
|
|
|
La modélisation multi-modèle consiste à conjuguer différents modèles
|
|
d'un système, où chacun des modèles décrit une partie fonctionnelle ou
|
|
structurelle du système. Ces modèles, développés indépendamment, sont parfois
|
|
rédigés dans des formalismes si distincts qu'il est difficile de les faire
|
|
collaborer. Un exemple de discipline reposant sur cette problématique est la
|
|
\emph{mécatronique}~\cite{bishop_mechatronics_2002}, dont le sujet d'étude
|
|
est le couplage entre systèmes mécaniques et électroniques. La modélisation
|
|
multi-niveau s'intéresse aux modélisations multi-modèle ayant les propriétés
|
|
suivantes:
|
|
\begin{itemize}
|
|
\item Le système peut se représenter comme un \emph{empilement} de points
|
|
de vue appelés \emph{niveaux de description}. Même si ces niveaux ne
|
|
sont pas agencés dans un ordre total, il existe cependant une relation
|
|
caractérisable entre eux, comme par exemple une relation d'abstraction.
|
|
\item Un niveau de description du système peut n'être que partiellement
|
|
connu et c'est par leur couplage que la modélisation du système se trouve
|
|
\emph{renforcée}~\cite{banos_coupling_2015}.
|
|
\end{itemize}
|
|
Sans entrer dans les détails, nous considérerons qu'un modèle est réductionniste
|
|
s'il peut être découpé en sous-parties autonomes permettant, une fois assemblées
|
|
de décrire exactement son comportement. La construction précédente permet de
|
|
garder une vision réductionniste des parties du système, tout en indiquant que
|
|
parfois il n'est pas possible de fournir un modèle réductionniste du système
|
|
entier, notamment à cause d'un manque de connaissance sur le système.
|
|
|
|
% Introduction trop longue, quand est-ce qu'on tappe ?
|
|
Nos travaux sont issus de réflexions sur la modélisation multi-niveau,
|
|
l'activité comme un niveau de description dans un langage de programmation
|
|
spatiale et la simulation de la morphogénèse dans de grandes populations de
|
|
bactéries, ayant pour origine les motivations du projet ANR Blanc \synbiotic.
|
|
|
|
|
|
\section{Le projet \synbiotic}\label{sec:synbiotic}
|
|
Dans cette section, nous présentons le projet ANR \synbiotic\footnote{La
|
|
page de présentation du projet est disponible en ligne à l'adresse
|
|
\url{http://synbiotic.spatial-computing.org}}.
|
|
|
|
Le projet de recherche \synbiotic vise à développer des formalismes et
|
|
des outils informatiques permettant de spécifier un comportement spatial
|
|
global et de le compiler automatiquement à travers une tour de langages
|
|
intermédiaires dans des processus locaux de régulation cellulaire (régulation
|
|
génétique, métabolique, signalisation). 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.
|
|
|
|
\synbiotic s'inscrit dans le domaine des langages de programmation non
|
|
conventionnels et de l'analyse de propriétés des systèmes dynamiques, à
|
|
l'interface de l'informatique et de l'ingénierie biologique. Il s'appuie sur
|
|
les avancées de la biologie synthétique, les progrès réalisés dans la
|
|
modélisation et la simulation de processus biologiques complexes, et sur le
|
|
développement de nouvelles approches de la programmation permettant de faire
|
|
face à de nouvelles classes d'application caractérisées par l'émergence d'un
|
|
comportement global dans une grande population d'entités irrégulièrement et
|
|
dynamiquement connectées (le calcul amorphe et le calcul autonome).
|
|
|
|
La biologie synthétique est un domaine scientifique qui concerne la conception
|
|
et la fabrication banalisée et standardisée de composants et de systèmes
|
|
biologiques sans correspondants naturels. Elle est toujours en quête de
|
|
principes de conception permettant une réalisation fiable et sécurisée à partir
|
|
de composants biologiques réutilisables.
|
|
|
|
Dans ce contexte, l'objectif est de concevoir et développer les outils
|
|
permettant de « compiler » (au sens de la compilation des langages de
|
|
programmation) le comportement global d'une population, par exemple, de
|
|
bactéries, en des processus cellulaires locaux à chaque entité. Notre motivation
|
|
à très long terme 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 verte. L'approche originale que nous proposons se fonde sur une
|
|
tour de langages de programmation, dont l'étage le plus abstrait définit un
|
|
modèle computationnel pour une population cellulaire et l'étage le plus primitif
|
|
correspond à un agencement de séquences d'ADN. Chaque langage compile ses
|
|
constructions propres vers le langage de la couche inférieure et ce, jusqu'au
|
|
bioware (le « hardware biologique »). Cette approche, similaire à celle suivie
|
|
avec succès dans le domaine de la synthèse d'architecture matérielle (chaîne
|
|
de compilation vers le silicium), permet de combler le fossé existant entre la
|
|
description d'un système au niveau d'abstraction pertinent pour l'application
|
|
et la prise en compte de tous les détails de son implantation par des processus
|
|
physico-chimiques. Elle permet de modulariser la conception d'un système,
|
|
divisant les difficultés et isolant des niveaux d'abstraction qui peuvent
|
|
évoluer indépendamment. Dans cette approche, un programme ne définit pas une
|
|
fonction qui associe une sortie à une entrée mais spécifie un système dynamique
|
|
(biologique) distribué qui essaie de maintenir des invariants en dépit des
|
|
perturbations et des changements de l'environnement.
|
|
|
|
% \synbiotic est un projet de recherche fondamentale à long terme qui s'inscrit
|
|
% dans le domaine à la fois des langages de programmation non conventionnels et
|
|
% dans l'analyse/validation de propriété de systèmes dynamiques. Il s'agit
|
|
% d'un projet informatique qui vise à utiliser les nouveaux supports de calcul
|
|
% fournis par les avancées de la biologie synthétique et non à les produire.
|
|
% \synbiotic a pour objectif d'étendre les techniques et les outils développés
|
|
% dans la modélisation et la simulation de processus biologiques complexes
|
|
% et d'intégrer de nouvelles approches de la programmation (programmation
|
|
% spatiale, programmation amorphe et programmation autonome) afin de faire face
|
|
% à de nouvelles classes d'applications caractérisées par l'émergence d'un
|
|
% comportement global dans une grande population d'entités localisées et
|
|
% irrégulièrement interconnectées de manière dynamique.
|
|
%
|
|
% \paragraph{Une approche informatique en amont de l'ingénierie génétique.}
|
|
% Si la plupart des études actuelles cherchent à formaliser, concevoir,
|
|
% caractériser et valider des composants biologiques réutilisables, nous nous
|
|
% positionnons en amont de cette étape. La biologie synthétique regroupe des
|
|
% stratégies scientifiques et des technologies très différentes qui incluent
|
|
% la conception et la construction de génomes, la conception de protéines,
|
|
% la synthèse de composés biochimiques par de nouvelles voies métaboliques
|
|
% et la construction de circuits de régulation génique dans des cellules et
|
|
% des micro-organismes. Pour ce qui nous concerne, nous faisons l'hypothèse
|
|
% qu'il existe des bibliothèques standardisées de comportements biochimiques
|
|
% élémentaires qui peuvent être composés dans une bactérie, comme par exemple
|
|
% les BioBricks.
|
|
%
|
|
Notre objectif est d'adresser la conception de grands systèmes biologiques
|
|
par une approche langage, de la même manière que VHDL permet la conception
|
|
de système de traitement de l'information à partir de portes et de blocs
|
|
logiques élémentaires. Ce projet informatique repose sur trois hypothèses :
|
|
l'apport des formalismes discrets, un processus de conception fondé sur la
|
|
compilation d'une tour de langages et la prise en compte des aspects spatiaux.
|
|
|
|
Notre première hypothèse est que des modèles informatiques discrets sont
|
|
adéquats pour décrire des biosystèmes et parfois plus pertinents que des
|
|
approches mathématiques traditionnelles comme les équations différentielles.
|
|
Cette hypothèse est corroborée par l'important développement actuel des
|
|
formalismes informatiques dans le domaine la biologie des systèmes. En
|
|
particulier, ces formalismes sont plus à même de capturer de manière concise
|
|
les aspects qualitatifs et quantitatifs des grands réseaux d'interactions
|
|
biochimiques impliqués dans les processus biologiques. Ces formalismes
|
|
permettent de découpler les abstractions utilisés dans le processus de
|
|
conception (signal, gradient, mémoire, propagation, information de position…)
|
|
des processus biochimiques utilisés pour leur implémentation, de la même
|
|
manière qu'un bit abstrait de manière robuste une implantation électrique
|
|
dans une électronique à base de silicium. Par ailleurs, ces formalismes
|
|
permettent d'aborder la question de la validation : que peut-on garantir sur les
|
|
comportements du système biologique artificiel, quel est le domaine de viabilité
|
|
du système, quels sont les perturbations de l'environnement qui sont tolérables,
|
|
quels est la résilience du système, peut-on garantir que certains états sont
|
|
inatteignables, tracer les processus, tester les comportements attendus, etc.
|
|
|
|
Notre seconde hypothèse est qu'à partir de ces formalismes, la compilation est
|
|
une approche descendante plus souple que l'assemblage direct de composants
|
|
biologiques prédéfinis. Le processus de compilation permet d'instancier des
|
|
composants élémentaires génériques dans un organisme particulier, permet de
|
|
prendre en compte des contraintes d'assemblage (comme l'évitement de cross-talk
|
|
entre circuits de régulation) ainsi que la simplification et l'optimisation
|
|
des circuits obtenus par assemblage. Cette approche de haut-niveau correspond
|
|
à la synthèse d'un système à partir de ses spécifications et repose sur la
|
|
possibilité de dériver le comportement des parties à partir du comportement
|
|
d'un tout. Ce problème est notoirement plus simple que celui de l'inférence de
|
|
propriétés globales à partir de comportements locaux (émergence) et a montré
|
|
toute son utilité dans le domaine de la synthèse d'architecture, mais aussi dans
|
|
le cadre de la programmation spatiale et de la programmation amorphe. Un des
|
|
enjeux du projet est de montrer que ces techniques peuvent être appliquées avec
|
|
succès à la synthèse de biosystèmes.
|
|
|
|
% \paragraph{La prise en compte du spatial.}
|
|
Enfin, notre dernière hypothèse est que, même si pour l'instant la biologie
|
|
synthétique se focalise sur la « programmation d'une seule bactérie »,
|
|
le développement de biosystèmes un tant soit peu complexe reposera sur
|
|
le fonctionnement intégré de colonies bactériennes et donc sur la prise
|
|
en compte d'interactions spatiales au sein d'une population de cellules
|
|
différenciées. Il est en effet douteux qu'une cellule puisse supporter un
|
|
nombre arbitraire de comportements artificiellement imposés. Au contraire,
|
|
l'exemple des processus biologiques naturels montrent toute l'importance de
|
|
l'organisation spatiale et de la compartimentalisation (membrane, vésicule,
|
|
cargo, compartiment, cellule, biofilm, tissus, organe, etc.) permettant la
|
|
spécialisation et le fonctionnement intégré au sein d'un système compris
|
|
comme une écologie. Par ailleurs, la maîtrise des interactions spatiales
|
|
ouvre la voie à une ingénierie du développement (« développement » au
|
|
sens biologique du terme), ce qui permet de rêver à des applications qui vont
|
|
bien au-delà de la conception de la cellule comme « usine chimique ».
|
|
%
|
|
% \paragraph{Un volet validation.}
|
|
% Le positionnement du projet est résolument informatique et se
|
|
% concentre sur le développement de techniques de compilation et de validation
|
|
% en amont de l'ingénierie génétique. Cependant, afin de valider les outils
|
|
% développés, nous souhaitons les mettre en œuvre concrètement à travers leur
|
|
% utilisation à l'intérieur du projet par une application de morphogénèse et,
|
|
% à l'extérieur, par une équipe iGEM.
|
|
|
|
\paragraph{Découpage des tâches.}
|
|
Le projet \synbiotic est découpé en six \emph{Work Packages} (WP), dont les WP
|
|
1, 2, 3 et 4 forment une tour de langages reliant le hardware/wetware (WP4) au
|
|
langage de spécification global (WP1). Voici une description de ces quatre
|
|
tâches:
|
|
\begin{description}
|
|
\item[WP1: Ingénierie des formes] ce WP est en charge de concevoir, de
|
|
développer et d'implémenter des exemples d'applications qui pourront être
|
|
utilisées par les autres WP.
|
|
\item[WP2: Programmation spatiale déclarative] ce WP est en charge de
|
|
l'élaboration d'un langage de programmation spatiale L1, dont la fonction
|
|
est de décrire les exemples du WP1 (définis en terme de primitives spatiales
|
|
sur des populations) vers un langage de plus bas niveau servant d'entrée au
|
|
WP3.
|
|
\item[WP3: Programmation orientée entité] ce WP est en charge de l'élaboration
|
|
d'un nouveau langage L2 prenant en entrée les concepts utilisés en sortie de
|
|
L1 et les instanciant dans les individus (des bactéries).
|
|
\item[WP4: Programmation orientée réseau de régulation] l'enjeu de ce WP est
|
|
de permettre la traduction de la sortie de L2 vers un médium biologique,
|
|
afin d'obtenir une implémentation finale \emph{in vivo}.
|
|
\end{description}
|
|
Les WP 5 et 6 sont transversaux et se chargent de «calculabilité et complexité»
|
|
et de «Bio-sûreté et bio-sécurité» respectivement.
|
|
|
|
|
|
\section{Objectifs et organisation de cette thèse}
|
|
Dans cette section nous présentons brièvement les objectifs de ce manuscrit et
|
|
les chapitres qui le composent afin de donner au lecteur une vue d'ensemble des
|
|
résultats obtenus.
|
|
|
|
Comment nous l'avons vu, nos travaux sont ancrés dans le contexte du projet
|
|
\synbiotic. Nous avons contribué aux WP2 (chapitre 3) et au WP3 (chapitre 4).
|
|
Nous avons également dépassé le cadre du projet en nous intéressant de plus près
|
|
à la nature des modèles (mathématiques) et à la définition de la modélisation
|
|
multi-niveau.
|
|
|
|
\paragraph{Chapitre 2: Une approche formelle générale des niveaux de
|
|
modélisation}
|
|
Dans ce chapitre nous proposons une première voie de réponse à notre
|
|
problématique en nous attaquant au problème de la définition à la fois
|
|
formelle et générique des niveaux de modélisation. Nous introduisons une
|
|
définition claire de ce qu'est un \emph{modèle formel} qui nous permet de
|
|
présenter explicitement notre point de vue. Une fois ce socle à disposition,
|
|
nous présentons différentes classes de modèles avec leurs exemples dans notre
|
|
formalisme mettant en évidence la possibilité d'identifier ces classes de
|
|
modèles suivant plusieurs critères reposant sur la structure mathématique
|
|
associée à leur comportement. Nous proposons enfin une construction de
|
|
niveaux d'abstraction, reposant sur quelques principes issus de la théorie
|
|
des catégories, introduisant la validation, l'abstraction et la composition
|
|
des modèles dans ce cadre. Nous instancions finalement sur un exemple les
|
|
définitions précédentes mettant en lumière les relations existantes entre quatre
|
|
modèles d'un système proie-prédateur.
|
|
%enfin poser les fondements
|
|
%des relations entre modèles tel que nous les avons présentés plus
|
|
|
|
\paragraph{Chapitre 3: L'activité spatiale comme outil de modélisation}
|
|
Dans ce chapitre nous présentons le langage L1 du WP2 en posant un cadre
|
|
pratique et théorique porté par le projet \MGS. Ce dernier développe un langage
|
|
de programmation dédié à la modélisation et la simulation de systèmes dynamiques
|
|
à structure dynamique. L'état du système est décrit à travers une structure
|
|
de données — la collection topologique — qui met l'accent sur les relations
|
|
topologiques entre les éléments du système. L'évolution du système est spécifiée
|
|
au moyen d'une structure de contrôle — la transformation — qui décrit, sous
|
|
forme de règles \emph{locales}, les interactions entre les éléments du système.
|
|
Nous présentons l'activité spatiale dans le contexte de \MGS, qui nous indique
|
|
la répartition dans une collection topologique de la sous-collection active
|
|
et nous implémentons un algorithme nous permettant de mettre à jour cette
|
|
collection sans connaissance de la sous-collection quiescente. Au delà de
|
|
l'optimisation en temps de calcul qu'il apporte à certaines simulation, cet
|
|
outil nous permet de capturer une \emph{propriété d'ordre supérieur} du modèle
|
|
et offre une voie pour la description, dans \MGS, de modèle à plusieurs niveaux
|
|
de description.
|
|
|
|
\paragraph{Chapitre 4: Un exemple concret de simulation multi-niveaux} Dans
|
|
ce chapitre nous ouvrons une troisième voie de réponse à notre problématique,
|
|
tournée vers la pratique, où nous présentons la conception d'un simulateur de
|
|
populations de bactéries \Ecoli, nommé \otb, correspondant au langage L2 du WP3
|
|
de \synbiotic. En effet, l'évolution de ces populations de bactéries montre
|
|
un fort potentiel pour la modélisation et la simulation multi-niveau: une
|
|
population suffisamment importante mène à des propriétés définies uniquement
|
|
à l'échelle de cette population, comme l'émergence et le maintient de formes
|
|
particulières — la morphogénèse. Le but de ce simulateur n'est pas, comme dans
|
|
les chapitres précédents, de fournir une méthode générique pour exprimer ces
|
|
propriétés mais plutôt de partir de la bactérie définie individuellement et
|
|
de tester, donc de mettre en évidence, le lien existant entre les propriétés
|
|
de l'individu (le réseau de régulation génétique) et les propriétés de la
|
|
population (les formes émergentes). Pour relever les défis posés par la
|
|
simulation d'un grand nombre d'individus, nous tirons partie du calcul parallèle
|
|
sur des cartes graphiques grand public et, dans ce cadre, nous avons développé
|
|
plusieurs algorithmes originaux pour le calcul parallèle dont le principal est
|
|
\ppm, inspiré des automates cellulaires et du voisinage de Margolus.
|
|
|
|
|
|
\section{Contributions}
|
|
|
|
Voici une liste succincte des contributions scientifiques apportées par cette
|
|
thèse.
|
|
|
|
\subsection*{Théorie et formalisation}
|
|
\begin{itemize}
|
|
\item établissement d'un cadre formel pour l'expression unifiée des niveaux
|
|
de modélisation, indépendamment de leur formalisme d'origine;
|
|
\item définition de l'activité spatiale;
|
|
\item élaboration d'un algorithme pour l'identification et le maintient d'une
|
|
zone spatialement active dans \MGS;
|
|
\item définition d'un algorithme générique (\ppm) pour le calcul parallèle.
|
|
\end{itemize}
|
|
|
|
\subsection*{Développement}
|
|
\begin{itemize}
|
|
\item développement d'un simulateur pour mettre en évidence l'émergence et le
|
|
maintient de formes dans une population de bactéries \ecoli.
|
|
\end{itemize}
|
|
|
|
\subsection*{Communications orales}
|
|
\begin{itemize}
|
|
\item présentation de «Computing Activity in Space» au workshop SCW13 de la
|
|
conférence AAMAS 2013 à St Paul (Minnesota, USA), du 6 au 10 mai 2013;
|
|
\item présentation de «Topological Computation of Activity Regions» au workshop
|
|
Work In Progress de la conférence SIGSIM PADS 2013 à Montréal (Québec,
|
|
Canada), du 19 au 22 mai 2013;
|
|
\item présentation au séminaire du LACL, intitulé «Implementing Multiple Levels
|
|
of Organization in a Spatial Programming Language» le 10 février 2014, à
|
|
Créteil;
|
|
\item participation au workshop SCW14 attaché à la conférence AAMAS qui s'est
|
|
tenu à Paris du 5 au 9 mai 2014;
|
|
\item participation au workshop 228 de l'INSERM intitulé : «Experimental
|
|
approaches in mechanotransduction: from molecules to tissues and pathology»,
|
|
du 21 au 23 Mai à Bordeaux, France;
|
|
\item présentation d'un tutoriel \MGS à la conférence ICCSA 2014, le 24 Juin
|
|
au Havre, France;
|
|
\item présentation de «Managing the Interoperability Between Models of a Complex
|
|
System» au workshop 6 satellite de la conférence ICCSA 2014, du 23 au 26 Juin
|
|
au Havre, France;
|
|
\item présentation de «Spatial Computing for Integrative Modeling» au ComBio à
|
|
Turku, Finlande, le 29 octobre 2015.
|
|
\end{itemize}
|
|
|
|
\subsection*{Communications écrites} Les travaux présentés dans ce manuscrit
|
|
ont donné lieu à plusieurs publications dans des conférences internationales
|
|
et nationale~\cite{potier_computing_2013, potier_topological_2013,
|
|
pascalie_developmental_2016}. Deux publications sont en cours de préparation en
|
|
vue de rendre public les travaux du chapitre \ref{chap:partie-multi-modele} et
|
|
du chapitre \ref{chap:partie-otb}.
|
|
|
|
\printbibliography[heading=subbibliography]
|
|
|
|
\subsection*{Autres contributions}
|
|
\begin{itemize}
|
|
\item Encadrement à 50\% du stage de Master 1 de Romain Carriquiry Borchiari
|
|
intitulé «Modélisation et simulation d'une population de bactéries en
|
|
\opencl» duquel la toute première version de \otb est issu.
|
|
\end{itemize}
|
|
% \begin{itemize}
|
|
% \item DEVS-FIRE (X Hue)
|
|
% \item Parallèle avec la physique du solide et la physique du point ->
|
|
% complexification (même si tout marcherai avec de la mécanique du point);
|
|
% Distinction entre règles internes et règles externes.
|
|
% \item Discrete Differential Forms for Computational Modeling (Desbrun, Kanso,
|
|
% Tong)
|
|
% \item Computation with competing patterns in Life-like automaton (Martinez,
|
|
% Adamatzky, Morita, Margensten)
|
|
% \item Predicting Wildfire Spreading Through a Hexagonal Cellular Automata Model
|
|
% (Trunfio, p401 de Cellular Automata)
|
|
% \item Modelling Wildfire Dynamics via Interacting Automata (Dunn, Milne, CA
|
|
% p411)
|
|
% \item Downward Causation and the autonomy of Weak Emergence (Mark Bedeau)
|
|
% \item Multi-level simulation of farmer's land use and social organization
|
|
% decision-making; an agent-based approach (Speelman, Jager, Grot, Garcia,
|
|
% Tittonell)
|
|
% \item Problème de l'identité (Derek Parfit - Reasons and Persons - Livre de
|
|
% 400p)
|
|
% \item Mail du 16 avril 2013 à 19:06 (+photos)
|
|
% \item Accroche toi au niveau, j'enlève l'échelle (Gil-Quijano, Hutzler, Louail)
|
|
% \item Closes point method (Forest fire, level sets on surfaces)
|
|
% \item Symbiotic simulation (Fujimoto et al), Rapport Dagstuhl
|
|
% \item Filippi front tracking (modèle MGS dans le CVS
|
|
% Exemple/Exemble-bezier/Front)
|
|
% \item Can we computerize an Elephant (David Harel, 2009, 2015) (AAMAS 2015)
|
|
% \item The detection of intermediate-level emergent structures and patterns
|
|
% (Villani et al)
|
|
% \item Thèse Duboz : intégration de modèles hétérogènes pour la modélisation et
|
|
% la simulation de systèmes complexes. (c'est du DEVS)
|
|
% \item WAVE parallel programming language
|
|
% \item Méchanotransduction (INSERM Workshop)
|
|
% \item Mathematical formulation of multi-layer networks (à mettre dans les
|
|
% modèles formels)
|
|
% \item Introduction to the Mathematical Theory of Systems and Control (Polderman
|
|
% \& Willems) -- inspiration pour la définiton générale de modèle.
|
|
% \item Kurtz, the relationship between stochastic and deterministic models for
|
|
% chemical reactions.
|
|
% \item Spicher, Verlan -- Generalized Communicating P Systems Working in Fair
|
|
% Sequential Mode
|
|
% \item
|
|
% \end{itemize}
|
|
|
|
|
|
% Appel à projet pour la création d'un DIM recherche transversale sur
|
|
% les systèmes complexes
|
|
|
|
|
|
|
|
|
|
% \section{Modéliser des systèmes complexes}
|
|
% % Modéliser?
|
|
% Concevoir des modèles est une pratique courante pour comprendre le
|
|
% fonctionnement d'un phénomène ou la structure d'un objet \emph{compliqué}. Le
|
|
% modélisateur a pour tâche de
|
|
% \begin{enumerate}
|
|
% \item \emph{identifier} les parties du phénomène étudié et en donner une
|
|
% représentation simplifiée,
|
|
% \item \emph{assembler} ces parties, à l'aide d'un formalisme ou d'un langage de
|
|
% programation,
|
|
% \item \emph{comparer} les propriétés principale du phénomène étudié avec les
|
|
% propriétés annoncées par son modèle.
|
|
% \end{enumerate}
|
|
%
|
|
% \bigskip
|
|
% La première tâche du modélisateur est d'identifier les parties du système qu'il
|
|
% souhaite modéliser. C'est au modélisateur que revient la décision de nommer une
|
|
% partie qu'il a identifiée; cette tâche peut-être rendue difficile suivant les
|
|
% cas. En philosophie, la notion d'identité recouvre plusieurs concepts proches,
|
|
% elle est donc ambigüe et poser des problèmes dans certains cas, voici quelques
|
|
% exemples de paradoxes concernant l'identité.
|
|
%
|
|
% \paragraph{Un tas de riz}%
|
|
% Dans le langage courant, nous utilisons des mots pour nous réferer aux objets
|
|
% qui nous entourent. Quand plusieurs objets sont regroupés, ils peuvent être
|
|
% assimilés à un nouvel objet unique. Un exemple est le tas de riz. Le mot tas
|
|
% désigne un objet unique, constitué de multiples autres objets, en l'occurence
|
|
% des grains de riz. Comme il n'y a pas de limite claire concernant le nombre de
|
|
% grains de riz nécessaires à former un tas, il est apparemment difficile de
|
|
% déterminer lequel de ces raisonnements est approprié:
|
|
% %
|
|
% \begin{itemize}
|
|
% \item Un grain de riz n'est pas un tas. Ajouter un grain de riz à ce grain de
|
|
% riz ne forme pas un tas. Ajouter un grain de riz à ces deux grains de riz ne
|
|
% forme pas un tas. Donc ajouter un grain de riz à plusieurs grains de riz ne
|
|
% forme pas un tas. Il semblerait, en raisonnant par récurrence qu'\emph{un
|
|
% nombre arbitraire de grains de riz ne forme pas un tas};
|
|
% \item Un tas n'est pas un grain de riz. Enlever un grain de riz à un tas ne
|
|
% change pas sa nature. Nous devrions pouvoir répéter cette opération jusqu'à
|
|
% atteindre le moment où il ne reste qu'un seul grain de riz et déduire
|
|
% qu'\emph{un grain de riz est un tas}.
|
|
% \end{itemize}
|
|
%
|
|
%
|
|
%
|
|
% \bigskip Pour la seconde tâche du modélisateur, construire le modèle, la science
|
|
% informatique et l'outil informatique sont principalement utilisés. Il existe de
|
|
% nombreuses techniques et outils de modélisation suivant les besoins et les
|
|
% domaines. Par exemple, la modélisation qualitative ou quantitative, discrète ou
|
|
% continue et l'étude des systèmes dynamiques. Couramment, les approches
|
|
% classiques de modélisation individu-centrés nécessitent la description des
|
|
% entités et des lois qui régissent les évolutions du système à un seul et unique
|
|
% \emph{niveau de description}: la molécule, la cellule ou le tissu en biologie;
|
|
% le quartier, la ville ou le pays en urbanisme; la note, la mesure ou le thème en
|
|
% musique… Certains phénomènes à modéliser opèrent clairement à plusieurs niveaux
|
|
% de description. Par exemple en biologie, l'embryogenèse est typiquement un
|
|
% problème décrit comme étant multiniveau. Comment, à partir d'une unique cellule,
|
|
% se développe un organisme multicellulaire autonome ? Comment modéliser le
|
|
% passage de l'individu à la population ? Comment décrire le phénomène de
|
|
% mécanotransduction, où l'application d'une force mécanique altère le
|
|
% développement d'un embryon ? Pour répondre à ces questions, il nous faut de
|
|
% nouveaux outils de modélisation prenant en compte plusieurs niveaux de
|
|
% description.
|
|
%
|
|
% Pour les nouvelles sciences de la complexité, les phénomènes ayant plusieurs
|
|
% niveau de description sont parfois appelés \emph{systèmes complexes}. Voici une
|
|
% définition qu'en donne l'Institut des Systèmes Complexes (\ISC):
|
|
% \begin{quote}
|
|
% Les systèmes complexes sont des systèmes présentant un grand nombre d'entités
|
|
% différenciées, interagissant de manière complexe : interactions non linéaires,
|
|
% boucles de rétroaction, mémoire des interactions passées. Ils se caractérisent
|
|
% par l'\emph{émergence}, au niveau global, de propriétés nouvelles non
|
|
% observables au niveau des entités constitutives. Le niveau local fait émerger
|
|
% des formes organisées au niveau global, lequel influence en retour le niveau
|
|
% local (appelé «immergence»). Interactions locales et interactions globales
|
|
% peuvent ainsi se conjuguer dans la description de leurs dynamiques. \hfill\ISC
|
|
% \end{quote}
|
|
% Cette définition nous fourni une image où deux niveaux de description, le niveau
|
|
% local et le niveau global, interagissent l'un sur l'autre, de local à global par
|
|
% l'émergence et de global à local par l'immergence, et où les propriétés des
|
|
% éléments observés sont restreintes à leur niveau de description.
|
|
%
|
|
% % le 2016-09-08, Martin a une révélation… Il était temps…
|
|
% \begin{quote}
|
|
% Les propriétés d'un objet du monde réel \emph{dépendent} de son cadre de
|
|
% modélisation, c'est à dire du modèle utilisé pour le décrire.
|
|
% \end{quote}
|
|
% En d'autre termes, les propriétés d'un objet modélisé \emph{ne sont pas} des
|
|
% propriétés de l'objet mais des propriétés du modèle. Cette hypothèse de travail
|
|
% est importante et se trouve au fondement de nos travaux. Sa première implication
|
|
% est qu'un niveau de description correspond à un modèle particulier.
|
|
%
|
|
% Cette limitation a pour conséquence directe de ne pas permettre de référencer
|
|
% les entités intervenant dans d'autres niveaux de description. Ainsi, en biologie
|
|
% moléculaire, ne disposant d'aucune notion de cellule, on ne peut décrire
|
|
% directement des processus tels que le \emph{transport actif} ou le \emph{quorum
|
|
% sensing}. De façon plus générale, ces approches purement locales et
|
|
% réductionnistes ne permettent pas de prendre en compte des connaissances dont on
|
|
% dispose aux autres niveaux de description ni des relations causales qui existent
|
|
% entre les niveaux de description. Le défi que nous nous proposons de relever est
|
|
% de proposer un cadre à la fois pratique et théorique pour modéliser et simuler
|
|
% des systèmes dynamiques complexes en prenant en compte plusieurs niveaux de
|
|
% description.
|
|
%
|
|
% %Niveau de description
|
|
%
|
|
% Dans quelques travaux de recherche en informatique et en philosophie nous avons
|
|
% pu rencontrer le terme d'\emph{émergence}. Par exemple :
|
|
% \begin{itemize}
|
|
% \item Émergence forte ou émergence faible
|
|
% \item Émergence synchronique et diachronique
|
|
% \item Émergence computationnelle et combinatoire
|
|
% \end{itemize}
|
|
% Pour le reste de ce manuscrit, nous supposerons que la notion d'émergence, en
|
|
% tant que concept transversal et définit de manière différente suivant les
|
|
% domaines et les travaux, peut se résumer comme un problème de vocabulaire
|
|
% permettant d'énumérer les propriétés d'un modèle. Nous faisons donc l'hypothèse
|
|
% suivante :
|
|
% \begin{quote}
|
|
% Soit un modèle $m_1$; une \emph{propriété émergente} du modèle $m_1$ est une
|
|
% propriété appartenant nécessairement à un autre modèle que $m_1$.
|
|
% \end{quote}
|
|
% Comme parfois la présence de propriétés émergentes détermine l'aspect complexe
|
|
% du modèle d'un système, nous rendons par ce fait explicitement non-complexe les
|
|
% propriétés déterminables dans le modèle utilisé.
|
|
%
|
|
%
|
|
%
|
|
% %\subsection{Compliqué n'est pas complexe}
|
|
% \paragraph{Ce qui est compliqué: la complexité comme une mesure}
|
|
% Dans le champ de l'algorithmique, la complexité est une \emph{mesure} sur une
|
|
% chaîne de caractères $s$ où plus une chaîne est complexe, plus elle est
|
|
% difficile à compresser. D'un côté, la complexité de Kolmogorov est la longueur
|
|
% du plus petit programme informatique, écrit dans un langage formel donné,
|
|
% produisant $s$. D'un autre côté, les modèles de calculs sont des formalisations
|
|
% mathématiques d'une méthode de calcul d'un résultat $f(x)$ par une fonction $f$
|
|
% sur une entrée donnée $x$. En terme de puissance d'expression, tous les modèles
|
|
% de calculs universels se valent, leur complexité est donc évalué:
|
|
% \begin{itemize}
|
|
% \item en fonction du \emph{nombre de pas de calculs} nécessaire à une machine de
|
|
% Turing pour reconnaître un mot donné, appelé complexité en temps, puis
|
|
% \item en fonction de la \emph{taille de la bande} nécessaire à une machine de
|
|
% Turing pour reconnaître un mot donné, appelé complexité en espace.
|
|
% \end{itemize}
|
|
% Cette mesure donne naissance à toute une hiérarchie de classes de complexités.
|
|
% Nous ne nous intéressons pas, dans ce manuscrit, à la \emph{complexité comme une
|
|
% mesure} dans le cadre de l'alogrithmique.
|
|
%
|
|
% \paragraph{Ce qui est complexe: la complexité comme une «propriété»}
|
|
% Nous nous intéressons dans nos travaux aux systèmes possédant la propriété
|
|
% d'être complexe, qualifiés de systèmes complexes dont les exemples les plus
|
|
% courants sont les systèmes biologiques, à tous leurs niveaux de description.
|
|
% Cette appellation porte à confusion et nous n'avons pas trouvé de définition
|
|
% faisant consensus. Nous avons cependant défini, grâce à \MGS, une catégorie de
|
|
% modèles recouvrant la plupart des systèmes complexes: ce sont les Systèmes
|
|
% Dynamiques à Structure Dynamique\footnote{en anglais Dynamical Systems with a
|
|
% Dynamical Structure, abbrégé en DSDS, ou encore (DS)²}. C'est la définition à
|
|
% laquelle nous nous réfèrerons et nous nous abstiendrons d'utiliser le terme de
|
|
% système complexe dans la mesure du possible.
|
|
|
|
% La présente thèse apporte sa contribution sur trois plans principaux: le premier
|
|
% concerne la participation au WP2 avec la définition de l'activité spatiale
|
|
% au sein du langage \mgs, la seconde concerne le WP3 avec la conception du
|
|
% simulateur de bactéries \otb et le troisième livre une réflexion en cours sur la
|
|
% nature des modèles du multi-niveau, thématiques au cœur du projet \synbiotic.
|
|
%
|
|
% %simulateur
|
|
% \paragraph{Un accès aux grandes populations} La simulation par \otb\ d'une
|
|
% population de bactéries concerne le bas de la tour des langages, au plus près
|
|
% de l'assembleur génétique. Sa conception a pour vocation d'accélérer les
|
|
% retours concernant des hypothèses de travail et nous permet de savoir si elles
|
|
% sont plausibles, ou bien à rejeter. C'est donc une étape préalable à la
|
|
% conception d'une expérience en laboratoire. De plus, il est moins coûteux
|
|
% d'obtenir des réponses d'un simulateur que de construire une expérience
|
|
% \emph{in vivo} et d'attendre qu'une population de bactérie se développe
|
|
% dans un environnement contrôlé ; \otb\ a donc une place centrale pour une
|
|
% partie des travaux de recherche du projet. \otb, par son rendu grahpique
|
|
% accéléré par OpenGL et son usage du calcul parallèle avec OpenCL, permet
|
|
% d'observer la croissance d'une importante population de bactérie avoisinnant
|
|
% le million d'individus, dans un environnement de taille variable s'adaptant
|
|
% à la répartition spatiale des entités. Il permet ainsi de tirer des
|
|
% conclusions qualitatives sur le comportement de grandes populations. \otb\
|
|
% utilise également un langage d'entrée déclaratif, Synthetic Biology Genetic
|
|
% Programming~\cite{pascalie_morphogenetic_2016}, proche de celui de \gro~%
|
|
% \cite{jang_specification_2012}, ce qui permet de reprendre des précédentes
|
|
% simulations pour des tests à plus grande échelle. De par sa conception,
|
|
% \otb\ est aisément extensible grâce au langage de haut niveau OCaml et son
|
|
% architecture est modulaire, ce qui permet à un développeur d'ajouter ou de
|
|
% modifier facilement des fonctionnalités au simulateur. Enfin ce logiciel est
|
|
% libre, ouvrant la voie à des corrections et des améliorations sans entrave.
|
|
%
|
|
% %multi-modèle
|
|
% \paragraph{Un travail transversal}
|
|
% Nos travaux présentent, dans le premier chapitre, une approche formelle
|
|
% à la modélisation multi-niveau, issu d'un point de vue particulier sur
|
|
% le multi-modèle.
|
|
% %
|
|
% L'approche choisie par le projet \synbiotic est celle de l'ingénierie
|
|
% génétique : en choisissant d'emprunter la même voie que l'ingénierie des
|
|
% machines qui a donné le jour aux ordinateurs modernes et aux langages de
|
|
% programation, le projet tente de révéler des relations réductionnistes et
|
|
% de définir des sous-tâches plus simples à résoudre. De part l'élaboration
|
|
% de cette \emph{tour de langages}, le projet de recherche emprunte une approche
|
|
% informatique, où la complexité est entendue avec son sens algorithmique.
|
|
% Il est cependant intéressant de noter que la principale difficulté rencontrée
|
|
% concerne la description et la compréhension de ce qui constitue une forme de
|
|
% complexité inhérente au monde biologique : \emph{la complexité du vivant}.
|
|
% % Complexité
|
|
% Il n'y a pour l'instant pas de correspondance claire entre la complexité
|
|
% algorithmique et la complexité associée au vivant. Les systèmes complexes, au
|
|
% sens de la définition de l'ISC présentent la singulière caractéristique d'être
|
|
% simulables mais extrèmement difficiles à prédire. En d'autre terme, nous ne
|
|
% connaissons pas de \emph{lois} décrivant leur comportement \emph{global}. Les
|
|
% populations de cellules biologiques, par exemple, font partie des systèmes
|
|
% complexes. À l'inverse, la complexité des algorithmes est formellement définie.
|
|
% Les problèmes sont répartis en classes de complexité, dont on sépare les
|
|
% classes en temps ($\text{TIME}(t(n))$, $\text{NTIME}(t(n))$, …) des classes en
|
|
% espace ($\text{SPACE}(s(n))$, $\text{NSPACE}(s(n))$, …) ; toutes ces classes
|
|
% sont définies par rapport à un modèle de calcul central en informatique : les
|
|
% machines de Turing. Les classes en temps reflètent le nombre de pas nécessaire à
|
|
% une machine de Turing pour résoudre un problème tandis que les classes en espace
|
|
% reflètent la longueur de la bande, c'est à dire le nombre de cases mémoire,
|
|
% nécessaire pour résoudre un problème. La simulation d'un système complexe étant
|
|
% effectuée par un ordinateur, cette simulation fait donc au moins partie de la
|
|
% classe des problèmes décidables, car il suffit d'attendre l'itération de la
|
|
% simulation qui permet de décider d'une propriété.
|
|
%
|
|
% À l'instar de \synbiotic, d'autres projets de recherche s'intéressent à la
|
|
% question de la complexité du vivant. L'approche générique suivie par ces autres
|
|
% projet revient à assembler plusieurs modèles mathématiques ensemble pour
|
|
% reproduire les valeurs des observables observées dans la nature. Le lecteur
|
|
% trouvera d'autres exemples dans l'introduction au chapitre suivant.
|
|
|
|
|
|
% \paragraph{Aggrégation spatiale (Spatial Aggregation)}: L'aggrégation spatiale
|
|
% est un paradigme et un langage générique~\cite{yip_spatial_1996} unifiant la
|
|
% descriptions plusieurs solveurs de problème imagistiques. Ce langage leur permet
|
|
% de proposer un cadre commun pour décrire le fonctionnement de trois solveurs de
|
|
% problèmes spécialisés dans l'extraction d'informations qualitatives depuis des
|
|
% systèmes hamiltoniens (\textsc{Kam}), les structures d'espace d'était de
|
|
% systèmes dissipatifs (\textsc{Maps}) et de systèmes mécaniques à parties rigides
|
|
% (\textsc{Hipair}). Certains concepts utilisés se rapprochent de la programmation
|
|
% spatiale telle qu'implémentée dans \mgs{} telle que la structure de données
|
|
% générique sous forme de graphe de voisinage est un cas particulier de collection
|
|
% topologique. Dans chaque cas, l'objet à analyser est assimilable à un champ
|
|
% continu duquel l'outil utilisé tire des informations et correspond au niveau
|
|
% d'abstraction le plus bas. Le langage inclus des opérateurs pour transformer
|
|
% chaque niveau un niveau plus abstrait, par le biais d'agrégation et de
|
|
% classification. Les rapports montant et descendant entre les niveaux sont
|
|
% apparemment maintenu. Ces travaux adressent bien une partie de notre propre
|
|
% problématique, à ceci près qu'ils sont limités à quelques cas particuliers.
|