0% ont trouvé ce document utile (0 vote)
12 vues4 pages

Modélisation avec NetLogo : Agents et Espaces

Le document traite de la modélisation à base d'agents, en se concentrant sur les approches entité-centrées et orientées-espace. Il présente des outils comme NetLogo pour simuler des systèmes complexes, ainsi que des concepts tels que les automates cellulaires et les modèles de réaction-diffusion. Enfin, il illustre des exemples pratiques de modélisation, notamment le modèle de Lotka-Volterra pour les interactions entre proies et prédateurs.

Transféré par

Haritiana Raj
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
12 vues4 pages

Modélisation avec NetLogo : Agents et Espaces

Le document traite de la modélisation à base d'agents, en se concentrant sur les approches entité-centrées et orientées-espace. Il présente des outils comme NetLogo pour simuler des systèmes complexes, ainsi que des concepts tels que les automates cellulaires et les modèles de réaction-diffusion. Enfin, il illustre des exemples pratiques de modélisation, notamment le modèle de Lotka-Volterra pour les interactions entre proies et prédateurs.

Transféré par

Haritiana Raj
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Modélisation à base d’agents

 Modélisation entité-centrée
Modélisation discrète d’un ensemble d’ entités
Modélisation « comportementale »
– description des actions locales de ces entités
– description des interactions locales entre les entités
Netlogo pour la modélisation & la – description des interactions locales entre les entités et leur environnement

simulation à base d’agents


 Modélisation orientée-espace
Modélisation spatiale de l’ environnement des entités
Modélisation « géométrique »
– description des propriétés spatiales de l’environnement
– support du déplacement des entités
– support des relations de voisinage entre les entités
Modélisation « comportementale »
– description de la dynamique propre de l’environnement
– support de la diffusion de traces déposées par les entités

Modélisation comportementale Modélisation géométrique

 Logo & les tortues  Automates cellulaires


langage créé en 1967 par W. Feurzeig et S. Papert développés dans les anneés 40 par
objectif éducatif – S. M. Ulam : constructions graphiques engendrées à partir de règles simples
– simplicité du langage J. von Neumann : conception d’une machine auto-réplicatrice, le kinématon
– feedback visuel permettant le débuggage
– tortue robotisée (Irving)  Propriétés
Discrétisation
to square
– spatiale : espace décomposé en une grille de cellules
repeat 4 [forward 50 right 90 ]
– temporelle : évolution par pas de temps discrets
end
Parallélisme
– les cellules évoluent simultanément et de manière indépendante
to flower Localité
repeat 36 [right 10 square] – chaque cellule évolue en fonction de son propre état et de celui d’un ensemble
end fini de cellules voisines
Homogénéité
– la topologie des cellules est régulière
to spiral :size :angle – la relation de voisinage est uniforme
if :size > 100 [stop] – les règles de transition sont identiques pour toutes les cellules
forward :size
right :angle
spiral :size + 2 :angle
end

Modélisation géométrique Modélisation géométrique


Automate à 1 dimension Automate à 2 dimensions

 Caractéristiques  Modèle de réaction-diffusion


tableau de cellules à une dimension développé par A. Turing (début des années 50)
chaque cellule prend ses valeurs dans l’ensemble {0, 1} proposé comme cause de différents patterns liés à l'embryogenèse
le voisinage d’une cellule se réduit aux deux cellules adjacentes
 Combinaison de
règles de transition simples
– l’automate progresse par générations successives une réaction dans chaque cellule entre des substances chimiques qui se
– l’état d’une cellule à la génération suivante est fonction de son état et de l’état comportent comme des activateurs et des inhibiteurs
de ses voisines à la génération courante la diffusion des substances entre cellules voisines
– toutes les cellules changent d’état de manière synchrone

 Exemple
– f(111)=0 f(110)=0 "a #a 2 "2 a
= $ µa a + Da 2 + # 0
– f(101)=0 f(100)=1 "t h "x
– f(011)=0 f(010)=0 "h "2 h
= #' a 2 $ µh h + Dh 2
– f(001)=1 f(000)=0 "t "x
modélise un processus de diffusion simple !
[Meinhardt & Klingler 1987]
! Modèle de formation de patterns périodiques
[Meinhardt]

1
NetLogo NetLogo : les entités du modèle
([Link]/netlogo)

 « Environnement de modélisation programmable pour la


simulation de phénomènes naturels et sociaux » Des cellules (patchs)
permet le prototypage rapide de modèles de systèmes complexes réparties selon une grille carrée fixe : pxcor, pycor, pzcor
support de diffusion de signaux vers les cellules voisines : diffuse,
 Extension du langage Logo neighbors
support des agents et de la concurrence
très large répertoire de primitives prédéfinies Des agents (turtles)
localisés dans l’environnement : xcor, ycor, zcor
 Caractéristiques de la plate-forme visibles : color, shape, size, label
constructeur d’interfaces mobiles : forward (fd), back (bk), left (lt), right (rt)
visualisation en 2D et/ou 3D de différentes espèces : breed
tracé de graphes sensibles à l’environnement : uphill, downhill, patch-at
inspection des agents sensibles aux autres agents : turtles-here, turtles-at
éditeur de formes capacités d’action : stamp
calibrage
import et export Un ordonnanceur (observer)
simulations participatives en réseau
contrôle le déroulement de la simulation
très grande librairie de modèles
gère l’activation des cellules et des agents

NetLogo : la modélisation de l’espace et du temps Retour sur l’automate 1D (1/2)

 Modélisation discrète de l’espace


;; déclaration de variables
quadrillage de cellules carrées globals [ row ]
patches-own [ on? ]

;; initialisation - procédure d’observer


to setup
clear-all ;; réinitialise l’affichage
set row max-pycor ;; initialise la ligne courante
ask patches with [pycor = row] ;; initialise la première ligne de cellules
[
set on? (random 2 = 0) ;; initialise l’état de la cellule
color-patch ;; peint la cellule en noir ou en blanc
]
end

;; mise à jour de la couleur des patchs - procédure de patch


to color-patch
ifelse on? ;; si la cellule est allumée
[ set pcolor white ] ;; colorie la cellule en blanc
 Modélisation discrète du temps [ set pcolor black ] ;; sinon colorie la cellule en noir
end
déroulement de la simulation par itérations successives
la procédure setup initialise le modèle
la procédure go appelée de manière répétitive exécute la simulation

Retour sur l’automate 1D (2/2) Retour sur l’automate 2D (1/2)

;; exécute une itération de la simulation - procédure d’observer ;; déclaration de variables


to go patches-own [a h si]
ask patches with [ pycor = row ] ;; applique la règle sur la ligne courante
[ ;; initialisation
let left-on? on?-of patch-at -1 0 ;; la cellule gauche est-elle allumée ? to setup
let right-on? on?-of patch-at 1 0 ;; la cellule droite est-elle allumée ? ca
ask patches [
;; met à jour la cellule du dessous en fonction de l’état de la cellule set a 1 ;; initialise l’activateur
;; et de ses deux voisines set h 1 ;; initialise l’inhibiteur
set on?-of patch-at 0 -1 set si RA * (0.99 + random-float 0.02) ;; un peu d’hétérogénéité
( left-on? and (not on?) and (not right-on?)) or color-patch ;; colorie les patchs
((not left-on?) and (not on?) and right-on?) ]
] end
;; passe à la ligne suivante
set row (row - 1) ;; colorie les patchs en fonction de la concentration en activateur ou
;; met à jour la couleur des cellules qui viennent de changer d’état ;; inhibiteur
ask patches with [ pycor = row ] to color-patch
[ color-patch ] ifelse (a?)
end [ set pcolor scale-color green a 0 10 ] ;; affiche l’activateur
[ set pcolor scale-color red h 0 10 ] ;; affiche l’inhibiteur
end

2
Retour sur l’automate 2D (2/2) Un modèle plus complexe : proies et prédateurs

;; exécute une itération de la simulation


 Le modèle de Lotka et Volterra [1926]
to go
;; demande à chaque patch de mettre à jour les quantités
;; d’activateur et d’inhibiteur en appliquant les équa. diffs.
ask patches [
set a a + si * (a * a + BA) / h - RA * a
set h h + si * a * a - RB * h
]
;; diffusion aux patchs voisins
diffuse a diff_a ;; de l’activateur
diffuse h diff_h ;; de l’inhibiteur

;; recolorie les patchs


ask patches [ color-patch ]
end  Problèmes
besoin de tester les modèles et théories manipulées dans le domaine
besoin de représenter des niveaux différents
besoin de représenter les comportements des entités du système et pas
seulement le résultat de ces comportements
besoin d'expliquer l'émergence de structures spatio-temporelles
besoin d’enrichir les modèles de manière incrémentale

Comparaison modèle discret / modèle continu Modèle agent : des loups et des moutons

 Des interactions localisées ou un calcul global peuvent


conduire à des dynamiques qualitativement différentes
« Dans des conditions où les équations continues prédisent l’extinction de
la population, les individus s’auto-organisent en zones adaptatives
spatio-temporellement localisées, ce qui assure leur survie et leur
développement » [Shnerb et al., PNAS 2000]

Déclarations de variables Initialisation

;; déclaration d’une nouvelle espèce « moutons » to setup


breed [ sheep a-sheep ] ca
;; déclaration d’une nouvelle espèce « loups » ask patches [
breed [ wolves wolf ] set countdown random grass-regrowth-time
turtles-own [ energy ] ifelse (random 2) = 0 [ set pcolor brown ][ set pcolor green ]
;; pour éviter que deux loups n’attrapent le même mouton ]
sheep-own [ grabbed? ]
;; compte à rebours avant la repousse de l’herbe set-default-shape sheep "sheep »
patches-own [ countdown ] ;; création & initialisation d’agents moutons
create-custom-sheep initial-number-sheep [
set energy random (2 * sheep-gain-from-food)
turtles setxy random-xcor random-ycor
energy set grabbed? false
]

;; création & initialisation d’agents loups


sheep wolves set-default-shape wolves "wolf"
grabbed? create-custom-wolves initial-number-wolves [
set energy random (2 * wolf-gain-from-food)
setxy random-xcor random-ycor
]

do-plot
end

3
Boucle générale Comportements génériques

to go ;; tourne d’un angle compris entre -50 et +50° puis avance


;; teste si fin de la simulation to move
if not any? turtles [ stop ] rt random-float 50 - random-float 50
;; activation des moutons fd 1
ask sheep [ end
move
set energy energy - 1 ;; essaye de se reproduire
eat-grass to reproduce [ reproduce-rate ]
reproduce sheep-reproduce ;; tirage aléatoire
death if random-float 100 < reproduce-rate [
] ;; partage de l’énergie avec le descendant
;; activation des loups set energy (energy / 2)
ask wolves [ ;; création d’un clone
move hatch 1 [
set energy energy - 1 rt random-float 360
catch-sheep fd 1
reproduce wolf-reproduce ]
death ]
] end
;; activation de l’herbe
ask patches [ ;; meurt quand l’énergie devient nulle
grow-grass to death
] if energy < 0 [ die ]
do-plot end
end

Broutage et repousse de l’herbe Prédation

;; broutage ;; comportement de prédation


to eat-grass to catch-sheep
;; s’il y a de l’herbe (patch vert) ;; choisit un mouton au hasard sur le patch courant parmi ceux qui ne sont
if pcolor = green [ ;; pas déjà attrapés
;; colore le patch en brun let prey one-of (sheep-here with [not grabbed?])
set pcolor brown ;; si le loup en a attrapé un...
;; gagne de l’énergie if prey != nobody [
set energy energy + sheep-gain-from-food ;; il se le réserve,
] set grabbed?-of prey true
end ;; il demande (poliment) au mouton de mourir...
ask prey [ die ]
;; repousse de l’herbe ;; et il en retire plein de glucides, de lipides et de protéines
to grow-grass set energy energy + wolf-gain-from-food ]
;; si le patch est brun end
if pcolor = brown [
;; si le compteur arrive à 0
ifelse countdown <= 0
[ set pcolor green ;; l’herbe repousse
set countdown grass-regrowth-time ] ;; le compteur est réinitialisé
[ set countdown (countdown - 1) ] ;; décrémente le compteur
]
end

Affichage de courbes

;; procédure d’affichage
to do-plot
;; sélectionne le graphique
set-current-plot "populations »
;; sélectionne le tracé
set-current-plot-pen "sheep"
;; affiche un nouveau point
plot count sheep
;; sélectionne le tracé
set-current-plot-pen "wolves"
;; affiche un nouveau point
plot count wolves
;; sélectionne le tracé
set-current-plot-pen "grass / 4"
;; affiche un nouveau point
plot count patches with [ pcolor = green ] / 4
end

Vous aimerez peut-être aussi