Atelier Magis
Juste Raimbault
Sébastien Rey Coyrehourcq
Grenoble
03/2022
Simuler / Explorer / OpenMOLE
Simuler
Simulation en géographie
1950
1980
Hägerstrand, Marble, Pitts, etc.
Pumain, Sanders, etc.
Guermond, Langlois, etc.
Chamussy, Le Berre, Uvietta, etc.
Forrester
pionniers
charnière
1970
Wilson
Batty
Ackerman, Chorley, Hagget, Berry, etc .
Prigogine, Allen,
Sanglier, Haken, etc..
conceptual
technical
1990
Couclelis,
Tobler,etc.
Epstein, Doran, etc.
Influences répétées du projet systémique (Von Bertallanfy et cie.)
open systems, retro-action, self-organization, equifinality, bifurcation, etc.
[Pouvreau 2013]
Agent Based Modelling
[Rey-Coyrehourcq 2015]
Cellular
Automata
Non Linear Dynamical
Systems
France
Modèles dynamiques
Systèmes dynamiques
Automates
Cellulaires
Modèles multi-agent
jeu de la vie
fourmis
proie prédateur
Couplage possible de ces trois approches
Modèle multi-agents
Echangent des messages
Réflechissent ...
Bougent et perçoivent
Evoluent dans un environnement
Agissent sur l'environnement
(plus ou moins ...)
[Ferber 1999, Drogoul 2009]
ville
fourmis
moustique
individu
arbre
[Drogoul Treuil 2008]
Modèle multi-agents
Un méta-modèle plus qu'un modèle
flexibilité de représentation & emboitement d'échelle !
KISS
KIDS
Stylisé
Particulier
[Sanders & Banos 2011, 2013, Banos 2013]
Une variété de pratiques
peu de règles
beaucoup de règles
espace simplifié
espace réaliste
Exemples SMA
GAMA (gaml)
Netlogo (logo)
plateformes SMA
ou java/scala
6 exemples
KISS
KIDS
Stylisé
Particulier
MicMac
& une grande diversité de besoins en calculs : Grille & HPC !
"épidémiologie"
MicMac
[Banos et al. 2015]
agents = personnes & avion & villes ; couplage avec ODE
4 stratégies à explorer
2 objectifs à minimiser (écon. vs épi.)
pas de données
Question : Quel est la combinaison de stratégies (quarantaine, évitement, responsabilisation ind., protection ind.) qui permet de limiter à la fois les pertes économiques, et la diffusion de l'épidémie dans un tel système ?
~ 5/10 minutes d'exécution
1 simulation par CPU
KISS
KIDS
Stylisé
Particulier
M03
épidémiologie
MicMac
Mo
[Maneerat et al. 2017]
3
agents = moustiques & nids
résolution inf. 1m
exécution : + 12 heures
+ 50 paramètres
1 simulation = 1 cpu
16 Go Ram
DOE : LHS sur grille EGI
500000 sim, ~20 ans calculs
Objectif : Comprendre et lutter contre l'émergence et la diffusion de la Dengue dans les milieux urbains
Moma
Mode
Momos
Micro
Macro
[Misslin 2017]
résolution 30m,
ville entière
[Daudé et al. 2017]
[Cebeillac et al. 2017]
résolution inf. 1m, quartier 10km²
paysage synthétique
agent: individu mobile avec agenda
résolution 30m,
ville entière
données: twitter
modèle
surrogate
exploration
exploration
indice env.
2011 & 2019
ou ?
comment ?
quand ?
KISS
KIDS
Stylisé
Particulier
5AD
géo. santé
MicMac
M03
5Ad
[Cottineau et al. 2020, à paraitre]
~ 25 minutes d'exécution
~ 3 Go ram par simulation
1 core, mais multithreading possible
test : 100.000 execution
calibrage: 200.000 executions
% personnes en bonne santé
agents: personnes / 8.16 M agents mobiles, en interaction
espace: IDF à 1km x 1km
données: nombreuses, et à différentes dates (NPPS, CSP 18 catégories, OD, baromètre santé, etc.)
mesure d'inégalité entre les extrême des groupe d'éducation à sexe et âge égal
1 modèle changement d'opinion
5 paramètres
3 objectifs à minimiser
4 scénarii de mobilité (random, données, etc.)
Etudier l'effet de la segregation sociale dans l'évolution des comportements de santé sur une journée type de 24h.
Question : Arrive-t-on à reproduire de façon cohérente les données et l'inégalité de comportement de santé en fonction des groupes sociaux ?
KISS
KIDS
Stylisé
Particulier
SimpopLocal
MicMac
archéologie
5AD
M03
SimpopLocal
[Schmitt 2014, Schmitt et al. 2015]
Question : La production et la diffusion de l'innovation
est il un mécanisme nécessaire pour produire une hiérarchisation crédible du système de peuplement en 4000 ans au néolithique ?
agents: villes & innovations
7 paramètres libres
4 mécanismes
très peu de données en entrée/sorties
1 loi empirique à reproduire
Espace
système de peuplements
SimpopLocal
1 simulation = 1 coeur
1 Go Ram
~ 5/10 minutes d'exécution
500 millions de simulation
eq. 20 ans de calculs
4000 cpu EGI Biomed
Calibration
Analyse de sensibilité
NSGA 2 - Ilôts
CP-Profile
1 simulation = 1 coeur
1 Go Ram
~ 1/2 minutes d'exécution
eq. 12 ans calcul par profil
15 jours de calculs (profil x 6)
4000 cpu EGI Biomed
[Schmitt et al. 2015]
[Reuillon et al. 2015]
réécriture modèle
1 objectif : f = max(01,02,03)
3 objectifs : (temps, forme, taille)
obj. f est impossible si 0 innovations
KISS
KIDS
Stylisé
Particulier
SimpopLocal
MicMac
ATP
5AD
M03
archéologie
Rin ATP
1 simulation = 1 coeur
1 Go Ram
~ 20 minutes d'exécution
... campagne en cours ...
Objectif : Simuler pour mieux comprendre les règles de circulation des archéomatériaux (craies) depuis les carrières jusqu'aux sites de construction, en Normandie, entre le 11ème - 15ème siècle
agents: carrières et sites
espace :
données : très peu, fait stylisés & ordre de grandeurs
observable : volume par type de matériaux par type de batiments
processus
ordre de grandeurs
acteurs / objets
modèle(s)
simulation(s)
interdisciplinarité
KISS
KIDS
Stylisé
Particulier
SimpopLocal
MicMac
ATP
5AD
M03
ESCAPE
risques & santé
Escape
Objectif : Le projet ESCAPE a pour objectif de développer un système d’aide à la modélisation et à la simulation d’évacuation de villes afin d’évaluer des scénarios de gestion de crise.
[Daudé et al. 2019]
2016
Trois démonstrateurs :
Rouen (risque tech),
Hanoï et val d’Authion (risque nat)
agents: automobiles, bus, piétons, organisations, etc.
mécanismes: pop synthétique, agenda, multimodalité, arbres décisions, etc.
données : traffic (voiture, transports en communs), Insee, EMD, etc.
1 simulation = 1 coeur
~ 8/16 Go Ram
+30 minutes
Explorer
Explorer pour discuter
Des conceptions complémentaires de la réalité
Explorer pour faire des choix
Les choix
générent des chemins
expliquant le même pattern
1
2
Deconstruire & reconstruire pour mieux comprendre ...
Know where and when
parameters and mechanisms break
Look back and challenge choices
Share your results
and challenge others
( )
Cumulative knowledge
( )
( , )
( )
connaitre et agir sur la dépendance au chemin
[Grimm2016, Cottineau2016]
Explorer pour comprendre
le "laboratoire virtuel", un agitateur d'idées
mais pas que ...
comportements attendus / simulés ?
défaillances ?
robustesse(s) ?
Bénéfices de l'exploration
Autrement dit, un processus systématique qui stimule l'effet de surprise.
a) la saine confrontation des points de vue
L'exploration des modèles revient donc à organiser :
b) la mesure des écarts entre comportements internes attendus et simulés
c) la chasse aux bugs et cas limites
Les racines du mal
... curse dimensionality ...
... non linéarité ...
... stochasticité ...
Les quatre cavaliers de l'apocalypse
... équifinalité ...
Une exploration directe est impossible
diversité de formes et d'évolutions
un résultat n'est jamais sûr
un état final est atteignable de
1000 façon différentes
par 1000 personnes différentes
[chapron, exmodelo 2019 ]
Important en shs,
"cumulativité des connaissances"
[pumain 2005 ]
Analyse de sensibilité ?
"By exploring the sensitivity of model output to changes in parameters, we learn about the relative importance of the various mechanisms represented in the model and how robust the model output is to parameter uncertainty."
- sensibilité locale
- sensibilité globale
"Sensitivity analysis (SA) is used to explore the influence of varying inputs on the outputs of a simulation model (Ginot et al. 2006).
[Thiele2014]
Comment ?
Sensibilité locale - OAT
évaluation à l'oeil
"Face Validity"
stratégie / DOE
"One-Variable-At-A-Time"
- peu fiable
- couteux en temps
- limité
- difficilement reproductible
"Tinkering" de Papert & Retsnick
- ludique
- interactif
- exploratoire
- incrémental
- essai erreur
Comment ?
Une première étape pour systématiser OAT ?
=> Sensibilité Globale
un modèle simple,
un plan d'expérience complet :
P1 x P2 x P3
500ko
3 graphiques
sorties systématiques
Comment ?
Durée & Volumétrie impossible à gérer
1 er problème - Explosion combinatoire
Comment ?
2 ème problème - "Curse Dimensionality"
dimensions
couverture à nb points égal
Comment ?
Une première solution, des méthodes plus sioux.
http://reseau-mexico.fr/
Comment ?
Une deuxième solution, changer d'approche !
Organiser une mise en tension entre les
choix Input - Output
modèle
(mécanismes, paramètres)
données, patterns / faits stylisés
choix Input
choix Output
Comment ?
Des critères quantifiés pour "guider"
une exploration automatisé
Quelle mise en tension ?
choix Output
Example "Ants"
"random walk"
Example "Ants"
Utilisation de traces ou "phéromones"
Alignement avec les traces les plus fortes
Example "Ants"
evaporation
diffusion
t
t + 1
Example "Ants"
exemple de dynamique
Example "Ants"
1 - Télécharger Netlogo
2 - Lancer Netlogo
3 - Ouvrir le modèle Ants
File > Model Library > ants
4 - jouer
Exploration
plan complet simple
Example "Ants"
Le BehaviorSpace
Utilisation de traces ou "phéromones"
Example "Ants"
Le BehaviorSpace : config 4810 simulations
Utilisation de traces ou "phéromones"
Example "Ants"
Résultats et script disponible sur github
Example "Ants"
Mesurer le rôle de l'aléatoire dans les simulations ?
diffusionRate = 25.0
evaporationRate = 25.0
population = 125.0
x
[ ]
10
10
50
100
1000
S
output : [ time_t1 ,time_t2, time_t3]
S
x
10
( mediane time_tx( ) ) * 100
S
x
10
( mediane time_tx( ) ) * 100
S
x
50
S
x
( mediane time_tx( ) ) * 100
S
x
100
S
x
( mediane time_tx( ) ) * 100
S
x
1000
S
x
= replications
Example "Ants"
Mesurer le rôle de l'aléatoire dans les simulations ?
100 * médiane de 10,50,100,1000 réplications
Exploration
guidé => optimisation
Example "Ants"
Que veut on tester/savoir ?
Quelle valeurs de (diffusion, evaporation) minimise le temps de consommation des trois tas de nourriture ?
ticks quand
<= 0
ticks quand
<= 0
ticks quand
<= 0
trois objectifs
Comment ?
Example "Ants"
Utilisation de traces ou "phéromones"
Le Behavior Search
Disponible avec Netlogo depuis la version 6.0.1
Windows: Run "app\behaviorsearch\behaviorsearch_headless.bat".
Mac: Run "behaviorsearch/behaviorsearch_gui.command" .
Linux: Run "./Behaviorsearch" .
Example "Ants"
Le Behavior Search
Très lent ...
Example "Ants"
Aller encore plus loin ...
"High Performance Computing"
1954 - 2017
Wait ? Really ?
1993
Accès aux ressources
( dès juin 2010 )
workflow
distribue
rapatrie
plan
d'expérience
... de nombreux aller retours entre modèles et résultats ...
discussions hyp.
Example "Ants"
Aller plus loin encore avec OpenMOLE
Créer des "chaînes de traitements"
parallélisables, reproductibles, simples (ou complexes) sans
aucune connaissance des technologies HPC
val i = Val[Double]
val res = Val[Double]
val exploration =
ExplorationTask(i in (0.0 to 100.0 by 1.0))
val model =
ScalaTask("val res = i * 2") set (
inputs += i,
outputs += (i, res)
)
val env = LocalEnvironment(4)
exploration -< (model on env hook ToStringHook())
Plusieurs types de plan d'expériences : Plan complet, LSH, Analyse de sensibilités, Algorithmes Evolutionnaires, etc.
Plusieurs tâches différentes !
Support de multiples technologies HPC : Cluster, grille de calcul, etc.
Langage de scripts (DSL) simple et flexible pour composer les workflow
Example "Ants"
1 - Ouvrir votre navigateur (accèder à OpenMOLE)
ip : 142.132.168.193
port : entre 8081 et 8088
https://142.132.168.193:8081
ex : utilisateur 1
2 - [ndlr : description de l'interface]
3 - [ndlr : ouverture et run d'un projet marketplace ]
4 - [ndlr : telecharger le modèle .nlogo ants ]
Example "Ants"
Netlogo | Openmole |
---|---|
population | population |
diffusion-rate | diffusionRate |
evaporation-rate | evaporationRate |
seed | seed |
final-ticks-food1 | food1 |
final-ticks-food2 | food2 |
final-ticks-food3 | food3 |
Mapping des paramètres entre OpenMOLE et Netlogo
Tâche Netlogo 6 :
DOE simple plan complet :
- diffusionRate in [1.0 et 100.0 par 10.0)
- evaporationRate entre [1.0 et 100.0 par 10.0]
- seed = random number * 10
Example "Ants"
http://openmole.org
// Define the input variables
val gPopulation = Val[Double]
val gDiffusionRate = Val[Double]
val gEvaporationRate = Val[Double]
val seed = Val[Int]
val i = Val[Double]
// Define the output variables
val food1 = Val[Double]
val food2 = Val[Double]
val food3 = Val[Double]
val exploration =
ExplorationTask(
(gDiffusionRate in (1.0 to 100.0 by 10.0)) x
(gEvaporationRate in (1.0 to 100.0 by 10.0)) x
(seed in (UniformDistribution[Int]() take 5)))
// Define the NetlogoTask
val cmds = Seq("random-seed ${seed}", "run-to-grid")
val ants =
NetLogo5Task(workDirectory / "ants.nlogo", cmds) set (
// Map the OpenMOLE variables to NetLogo variables
netLogoInputs += (gPopulation, "gpopulation"),
netLogoInputs += (gDiffusionRate, "gdiffusion-rate"),
netLogoInputs += (gEvaporationRate, "gevaporation-rate"),
netLogoOutputs += ("final-ticks-food1", food1),
netLogoOutputs += ("final-ticks-food2", food2),
netLogoOutputs += ("final-ticks-food3", food3),
gPopulation:= 100.0,
// The seed is used to control the initialisation of the random number generator of NetLogo
inputs += seed,
outputs += (seed, gDiffusionRate, gEvaporationRate)
)
val saveHook = AppendToCSVFileHook(workDirectory / "ant_exploration.csv")
val env = LocalEnvironment(4)
exploration -< (ants on env) hook saveHook
Example "Ants"
à une optimisation multi-critères ...
SPATIAL SAMPLING
Echelle micro ("batiments")
Echelle meso ("population")
Extension de l'analyse de sensibilité
au domaine spatial
SPATIAL SAMPLING dans OpenMOLE
Autres échantillonnages : BlocksGridSpatialSamplingTask, ExpMixtureThresholdSpatialSamplingTask, PercolationGridSpatialSamplingTask, ReactionDiffusionSpatialTask
(Voir documentation)
Application à Ants : effet des obstacles / types d'obstacle sur les dynamiques du modèle
Pour aller plus loin
références et entrées vers + de biblio
[Thiele2014] Thiele, Jan C., Kurth, Winfried and Grimm, Volker (2014) 'Facilitating Parameter Estimation and Sensitivity Analysis of Agent-Based Models: A Cookbook Using NetLogo and 'R'' Journal of Artificial Societies and Social Simulation 17 (3) 11 <http://jasss.soc.surrey.ac.uk/17/3/11.html>. doi: 10.18564/jasss.2503
[Rey2015] REY-COYREHOURCQ, Sébastien (2015, October 13) "Une plateforme intégrée pour la construction et l’évaluation de modèles de simulation en géographie" Thèse Paris 1. https://zenodo.org/record/50212
[Banos2016] Banos, Arnaud (2016) Modéliser c'est apprendre : Itinéraire d'un géographe, Edition Matériologique
[Cottineau2016] Cottineau, Clémentine, Rey-Coyrehourcq Sébastien (2016) "Back to the future of multi modelling" , Conférence RGS , slides
[Chérel2015] Chérel G., Cottineau C., Reuillon R., 2015, « Beyond Corroboration : Strengthening Model Validation by Looking for Unexpected Patterns. », PLoS ONE 10(9), e0138212. doi:10.1371/journal.pone.0138212
[Cottineau2015] Cottineau C., Reuillon R., Chapron P., Rey-Coyrehourcq S., Pumain D., 2015, "A Modular Modelling Framework for Hypotheses Testing in the Simulation of Urbanisation.", Systems, 3, Numéro Spécial "Agent-Based Modelling of City Systems", 348-377. DOI : 10.3390/systems3040348
[Cottineau2015] Cottineau C., Chapron P., Reuillon R., 2015, “Growing models from the bottom up. An evaluation-based incremental modelling method (EBIMM) applied to the simulation of systems of cities”, Journal of Artificial Societies and Social Simulation (JASSS), Vol. 18, No. 4, 9. DOI : 10.18564/jasss.2828.
[Banos2016] Banos, A., Lang, C., & Marilleau, N. (2016). Agent-based spatial simulation with NetLogo Volume 2: Advanced Concepts. Elsevier. url
[Reuillon2015] Reuillon, R., Schmitt, C., De Aldama, R., & Mouret, J.-B. (2015). A New Method to Evaluate Simulation Models: The Calibration Profile (CP) Algorithm. Journal of Artificial Societies and Social Simulation, 18(1), 12. Retrieved from http://jasss.soc.surrey.ac.uk/18/1/12.html
[Schmitt2015] Schmitt, C., Rey, S., Reuillon, R., & Pumain, D. (2015). Half a billion simulations: Evolutionary algorithms and distributed computing for calibrating the SimpopLocal geographical model. Environment and Planning B., 42(2), 300–315. url
[Reuillon2013] Reuillon, R., Leclaire, M., & Rey-Coyrehourcq, S. (2013). OpenMOLE, a workflow engine specifically tailored for the distributed exploration of simulation models. Future Generation Computer Systems, 29(8), 1981–1990. https://doi.org/http://dx.doi.org/10.1016/j.future.2013.05.003
++ Volker GRIMM !! ++
++ David O'Sullivan !! ++
[Delay2015] Delay E., « Réflexions géographiques sur l’usage des systèmes multi-agents dans la compréhension des processus d’évolution des territoires viticoles de fortes pentes : Le cas de la Côte Vermeille et du Val di Cembra », Thèse de doctorat, Université de Limoges, Limoges, 2015. HAL-SHA
Crédits icones
NounProject CC Commons :
Indigo, David, Icon Fair, Corpus Delicti, Daniel Aczel, Mikicon, Iconic, Fuat Sanli, Sergey Demushkin, Chanut is Industries
Atelier MAGIS / Ants
By sebastien rey coyrehourcq
Atelier MAGIS / Ants
- 333