Exploration de modèles
multi-agents
Etienne Delay
Sébastien Rey Coyrehourcq
MAPS 10 - Oléron
06/2017
Résultats et script disponible sur github
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
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"
Le BehaviorSpace
Utilisation de traces ou "phéromones"
Example "Ants"
Le BehaviorSpace : config 4810 simulations
Utilisation de traces ou "phéromones"
Example "Ants"
Utilisation de traces ou "phéromones"
Résultats et script disponible sur github
Example "Ants"
Mesurer le rôle de l'aléatoire dans les simulations ?
100 * médiane de 10,50,100,1000 réplications
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 plus loin : R et NetLogo avec RNetlogo
Résultats et script disponible sur github
Example "Ants"
Aller plus loin : R et NetLogo avec RNetlogo
Example "Ants"
Aller encore plus loin ...
"High Performance Computing"
1954 - 2017
Wait ? Really ?
1993
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"
Aller plus loin encore avec OpenMOLE
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
D'un plan d'expérience simple ...
Example "Ants"
à une optimisation multi-critères ...
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
exploration modele MAPS
By sebastien rey coyrehourcq
exploration modele MAPS
- 947