NetLogo est une plateforme spécifiquement développée pour concevoir des MMA. Il s’agit d’un logiciel libre open source, disponible pour les principaux systèmes d’exploitation. Il est développé par Uri Wilensky et bénéficie du soutien de l’Université de Northwestern. Il résulte de l’extension du langage Logo qui a été initialement développé au MIT, dans les années 70, pour apprendre aux enfants à programmer, dans une démarche de pédagogie active, inspirée par Jean Piaget. Avec le langage Logo, les enfants apprenaient à programmer des tortues à se déplacer sur un écran d’ordinateur. Malgré sa complétude, le langage Logo va se marginaliser du fait de certains de ses limites, mais va préparer le terrain pour le développement d’autres langages basés sur les mêmes principes. NetLogo s’en inspire pour proposer une plateforme et un langage très complets pour la modélisation multi-agents (MMA). Un reste de cet héritage est par exemple le fait que chaque programme NetLogo contient par défaut des agents qui s’appellent des tortues (turtles). Mais il est bien sûr parfaitement possibles d’inclure dans un MMA réalisé avec le NetLogo tous types d’agents (consommateurs, firmes, etc.), avec des caractéristiques différenciées.
NetLogo est donc une plateforme de programmation avec une interface graphique adaptée, formée de trois panneaux (Figure 5.1↓) :
Interface : une interface graphique d’interaction avec le modèle et de représentation des résultats et des états du «Monde»;
Information : une interface d’information pour guider les utilisateurs du modèle;
Code : une interface pour écrire les procédures du modèle (les types, les caractéristiques et les comportements des agents et du système, leurs interactions).
Les choses importantes se passent dans »Code « et les choses amusantes dans »Interface « . On voit en bas du panneau Interface, dans la Figure 5.1↓, le Centre de commande de NetLogo où vous pouvez exécuter des petites instructions.
Nous allons maintenant présenter les composantes principales d’un programme NetLogo.
Un programme NetLogo peut contenir différents types d’agents :
Le »Monde « (World) : il correspond à la représentation spatiale (en 2d ou 3D) de l’environnement modélisé (la surface en noir dans la Figure 5.1↑). Les agents se déplacent dans cet espace si nécessaire. Il est même possible de modéliser un environnement réel, en important des données à partir des systèmes d’informations géographiques (SIG).
Les patches : ce sont les composantes spatiales du »Monde « qui est modélisé. Les agents se déplacent sur les patches et les patches peuvent stocker des variables (les ressources par exemple).
Les tortues (turtles) : ce sont nos agents individuels, ils ont des caractéristiques individuelles, ils se déplacent dans le monde, ils naissent et meurent; ils peuvent être de plusieurs types (déclarés avec l’instruction breed, consommateurs, firmes, etc.) avec des caractéristiques spécifiques à chaque type.
Les liens (links) : il s’agit d’un type particulier d’agent qui relie deux agents et qui est représenté comme une ligne dessinée entre ces agents. Ce lien peut être orienté ou non. Les liens permettent une modélisation très naturelle des réseaux d’agents.
des variables globales (accessibles par tous les agents), correspondant aux propriétés agrégées du système qui résultent de l’interaction des agents ou des variables qui sont communes à tous les agents;
des ensembles d’agents (agent sets) : des listes d’agents de même type, grâce auxquels on peut s’adresser à tous les agents du même type;
des procédures spécialisées (dont setup et go comme nous allons le voir ci-dessous);
des commentaires qui doivent suivre un point-virgule : ; Ceci est un commentaire
de manière à permettre la documentation du code.
Ce chapitre vise à présenter les bases de NetLogo et il devrait vous permettre de mettre le pied à l’étrier, mais il ne nous est pas possible de couvrir toutes les possibilités et les finesses de cette plateforme. Vous pouvez facilement élargir vos compétences grâce à une documentation très riche. En effet, l’un des avantages majeurs de NetLogo est sa documentation très complète qui facilite considérablement son apprentissage :
L’aide de NetLogo (Menu Help, User manual) ;
Des tutoriels;
Le dictionnaire du NetLogo (Menu Help, Dictionary);
Une large librairie de modèles directement accessibles (Menu File, Models Library) et couvrant de nombreuses discipline (étonnamment, les exemples économiques sont encore assez rares).
Par ailleurs, il existe aussi des ouvrages complets couvrant les MMA et les possibilités offertes par NetLogo. La référence principale est devenu celui écrit récemment par l’inventeur même de NetLogo [Wilensky, 2015]. Un duo qui a l’habitude de proposer des formations annuelles à NetLogo a aussi écrit des ouvrages antérieurs assez complets [Railsback, 2012].
Nous allons maintenant introduire les principaux éléments du langage NetLogo que nous allons utiliser pour développer les MMA.
Prev Chapitre 5: Développer un MMA avec NetLogoUp Chapitre 5: Développer un MMA avec NetLogoSection 5.2: Eléments du langage NetLogo Next