Section 5.3: Structure–type d’un modèle NetLogo Up Chapitre 5: Développer un MMA avec NetLogo Section 5.5: Application : Dynamiques des stratégies dans l’oligopole de Cournot 

5.4 Un premier exemple : un modèle simpliste de prédateur–proie

Nous allons développer un modèle très simple avec des moutons se déplaçant sur une prairie (le Monde) et se nourrissant d’herbe présente sur des patches de couleur verte (qui forment les endroits de la prairie avec de l’herbe). Le modèle contiendra les éléments suivants :
Les prédateurs ici seront les moutons et la proie, l’herbe qui pousse sur les patches. Les tutoriels de NetLogo contiennent un exemple plus complet avec des loups et des moutons. Ici, nous aurons besoin d’un seul type d’agents : les moutons.
Note : Nous indiquons par (*) les paramètres qui doivent être fixés dans l’interface graphique.
Nous allons maintenant développer ce modèle très simple en suivant la structure-type qui a été présentée dans la section 5.3↑.

5.4.1 Les déclarations

Déclaration des variables globales :
globals [
Nous aurons aussi des variables fixées dans l’interface qui seront de ce fait des variables globales (voir ci-dessous).
Nous devons déclarer le seul type d’agents que nous avons dans ce modèle :
breed [moutons mouton]
et déclarer les caractéristiques de chaque mouton :
moutons-own [energie]
Chaque mouton a un niveau d’énergie. Nous aurions pu aussi donner une quantité d’herbe à chaque patch, qui aurait pu augmenter grâce à la epoudde de l’herbe et diminuer quand un mouton en mange
patches-own [herbe]
mais pour simplifier nous allons supposer que le mouton mange toute l’herbe disponible sur le patch et quand l’herbe repousse, tout le patch devient vert à nouveau. Remarquons que nous n’avons pas besoin de déclarer les patches comme des agents car ils sont créés par NetLogo dès la création du Monde.

5.4.2 Les initialisations

Nous allons préparer le modèle pour l’exécution grâce à la procédure setup qui sera exécutée par le bouton «Setup» que nous allons inclure dans l’interface graphique.
to setup 
 end 
Nous allons initialiser les patches en mettant de l’herbe sur tous. Chaque patch contient une variable par défaut pcolor (patch color) qui correspond à sa couleur que nous allons demander aux patches de la fixer à la couleur verte :
to setup-patches 
end
Remarque : Netlogo nous facilite la vie en créant un ensemble d’agents patches qui nous permet de leur parler.
Nous devons maintenant créer et initialiser nos moutons dans la commande setup-moutons :
to setup-moutons
end
Les moutons se placeront aléatoirement dans le Monde grâce aux coordonnées aleatoires obtenues par les instructions NetLogo correspondantes :
Le nombre initialement fixé de moutons sont créés et placés dans le Monde formé de patches qui contiennent tous de l’herbe au début de la simulation. Les moutons pourrons maintenant vivre dans cet environnement de période en période.

5.4.3 L’exécution des périodes

Les opérations qui vont se répéter de période en période sont définies dans la commande go :
to go   ; execution par le bouton »Go!« tant qu’il est enfonce
 end
Pour compléter le modèle nous devons écrire toutes ces commandes (voir ci-dessous).

5.4.4 L’interface graphique

NetLogo vient avec des outils très commode pour créer une interface graphique permettant de fixer les paramètres et conditions initiales du modèle et pour observer son évolution en temps réel. On peut ainsi ajouter à l’interface des champs d’entrée dans lesquelles nous allons pouvoir mettre la valeur de la variable correspondant ou des curseurs pour contraindre les valeurs que peut fixer l’utilisateur (on définit alors le minimum, le maximum et le pas que doit faire la valeur à chaque cran du curseur). On peut appeler des procédures grâce aux boutons sur lesquels peut cliquer l’utilisateur (il en faut en général au moins deux : un pour setup et un pour go). On peut inclure des «moniteurs» qui permettent de lire la valeur d’une variable pendant l’exécution du modèle, ainsi que des graphiques pour en observer l’évolution dans le temps. On peut aussi étudier l’évolution de la distribution d’une caractéristique de agents grâce à un histogramme.
Pour notre modèle, nous devons créer l’interface graphique avec au moins (voir Figure 5.3↓) :
On peut compléter ces éléments par des graphiques pour observer l’évolution de
figure images/exemple-moutons-screen.png
Figure 5.3 Une interface possible pour l’exemple

5.4.5 Vision d’ensemble du modèle

Nous avons donc un modèle herbe–moutons avec :
Le code complet du modèle, contenant les autres procédures dont nous avons besoin et des commentaires détaillés peut être consultée dans le fichier NetLogo proposé sur la page web qui accompagne cet ouvrage [T]  [T] http://yildizoglu.fr/livre-complexite/. Nous avons délibérément gardé ce modèle très simple, le lecteur est invité à l’enrichir librement.

5.4.6 Initialisation et actualisation des graphiques

Les graphiques pour observer l’évolution des variables se créent d’abord dans l’interface utilisateur; Depuis la version 5, NetLogo actualise automatiquement les données représentées sur les graphiques :

 Section 5.3: Structure–type d’un modèle NetLogo Up Chapitre 5: Développer un MMA avec NetLogo Section 5.5: Application : Dynamiques des stratégies dans l’oligopole de Cournot 
Sommaire
(c) Murat Yildizoglu, 2021-