MAPS 10 - Oléron
06/2017
Résultats et script disponible sur github
Des conceptions complémentaires de la réalité
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]
le "laboratoire virtuel", un agitateur d'idées
mais pas que ...
comportements attendus / simulés ?
défaillances ?
robustesse(s) ?
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
"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]
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
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
Durée & Volumétrie impossible à gérer
1 er problème - Explosion combinatoire
2 ème problème - "Curse Dimensionality"
dimensions
couverture à nb points égal
Une première solution, des méthodes plus sioux.
http://reseau-mexico.fr/
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
Des critères quantifiés pour "guider"
une exploration automatisé
Quelle mise en tension ?
choix Output
"random walk"
Utilisation de traces ou "phéromones"
Alignement avec les traces les plus fortes
evaporation
diffusion
t
t + 1
exemple de dynamique
Le BehaviorSpace
Utilisation de traces ou "phéromones"
Le BehaviorSpace : config 4810 simulations
Utilisation de traces ou "phéromones"
Utilisation de traces ou "phéromones"
Résultats et script disponible sur github
Mesurer le rôle de l'aléatoire dans les simulations ?
100 * médiane de 10,50,100,1000 réplications
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
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" .
Le Behavior Search
Très lent ...
Aller plus loin : R et NetLogo avec RNetlogo
Résultats et script disponible sur github
Aller plus loin : R et NetLogo avec RNetlogo
Aller encore plus loin ...
"High Performance Computing"
1954 - 2017
Wait ? Really ?
1993
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
Aller plus loin encore avec OpenMOLE
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
D'un plan d'expérience simple ...
à une optimisation multi-critères ...
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
NounProject CC Commons :
Indigo, David, Icon Fair, Corpus Delicti, Daniel Aczel, Mikicon, Iconic, Fuat Sanli, Sergey Demushkin, Chanut is Industries