StarLogo
Plan
Introduction
La plateforme
Exemple d’un programme
Démonstration
Conclusion
Introduction
Plusieurs plate-formes multi-agents existent :
les plate-formes de simulation,
les plate-formes de développement
et les plate-formes d'exécution.
Starlogo : plate-forme de simulation
créé par Mitchell Resnick au MIT dans les années 90.
conception de systèmes multi-agents auto-organisés. ( basé sur le Logo)
portage en Java a été effectué (disponibilité sur toutes les plateformes et non pas uniquement sur Macintosh , clarification de l'aspect orienté objets du langage, construction rapide des applets qui peuvent être montrés sur le Web. )
modélisation des comportements collectifs ou émergents, survenant tant dans les domaines du vivant que dans les sciences sociales (une agrégation de cellules, la propagation d'un feu de forêt, un traffic de voitures ou encore une recherche de nourriture par des termites. )
La plateforme
Notion de décentralisation
systèmes organisés sans organisateur et coordonnés sans coordonnateur
Exemple : Le vol en formation des oiseaux, les embouteillages de voitures, le marché économique ou le comportement d'une fourmilière,…
Système auto-organisés
Interaction locale ajoutée les unes aux autres -> ordre (impression d’actions centralisées)
Capacité cognitive individuelle limitée mais en groupe le comportement peut être complexe et parait organisé (exemple : les fourmis)
Stalogo offre au programmeur trois entités différentes :
les tortues (les agents),
les patches (l'environnement) et
l'observateur (le superviseur).
La plateforme
Les tortues
Éléments principaux
Entités colorées sur l’écran principal
Exemple : tortues, fourmis, termites, …
Les patches
Environnement des tortues
Cases de l’écran principal
Interaction des tortues avec l’environnement
Exemple : mettre de le nourriture dans l’environnement ou laisser des phéromones
L’observateur
superviseur
Extérieur au monde des tortues
Gestion des programmes dans StarLogo
Intervention possible même lorsque le programme est lancé
La plateforme
4 fenêtres de commandes visibles 2 à 2 dans le centre de commandes,
La plateforme
La fenêtre «Turtle command center» :
Exécution immédiate des commandes simples et de procédures relatives aux tortues.
Exemple : taper forward 10 dans la fenêtre «Turtle command center», on verra alors un joli cercle, indiquant que vos tortues ont toutes avancé de 10 pas.
La fenêtre «Turtle procedures» :
Écriture de toutes les procédures concernant les tortues.
Exemple :
To set up to demarrer Setcolor red setc red Forward 10 fd 10
End end
Les procédures ne peuvent lancées immédiatement dans la fenêtre
Pour exécuter les procédures :
Taper le nom de la procédure dans la fenêtre «Turtle command center»
Créer un bouton de lancement de la procédure
La plateforme
La fenêtre «observer command center» :
Exécution immédiate des commandes qui y sont tapées.
Exécution immédiate des procédures en tapant leurs noms.
l'observateur peut agir sur le monde des tortues en créant de nouvelles tortues, en nettoyant l'écran de visualisation, ou en monitorant les événements
Exemple :
taper clear-turtles dans cette fenêtre, alors toutes les tortues seront effacées de l'écran.
taper create-turtles 10, alors va apparaître un point au centre de l'écran correspondant aux nouvelles tortues.
La fenêtre «observer procedures» :
Écriture les procédures relatives à l'observateur.
Procédures qui permettent de gérer un programme dans Starlogo
Les procédures ne peuvent lancées immédiatement dans la fenêtre
Commandes importantes : ask-turtles et ask-patches pour passer des ordres aux tortues et aux patches
Exemple :
To set up clear-all
create-turtles 20
ask-patches [set-patchcolor red]
ask-turtles [setc blue fd 5]
end
La plateforme
Les patches
Pas de commandes spécifiques aux patchs
Les commandes relatives aux patchs sont :
soit, des commandes qui peuvent être exécutées par les tortues
soit, des commandes utilisées par l'observateur (principalement).
Utilisation des patches
la commande ask-patches ou d'une de ses variantes.
Vérifier si la commande est associée aux tortues ou à l’observateur pour savoir où l’utiliser.
Exemple :
L'utilisation des patchs par l'observateur nécessite la commande ask-patches ou une variante(mettre dans la fenêtre «Observer procedures» .
to demarrer
ask-patches [ifelse xcor < 0 [setpc red] [setpc blue]]
end
(Patches < 0 rouge sinon bleu
Xcor commande relative aux tortues mais setpc sont relatives a l’observateur
C’est le type de derniere commande qui détermine ou mettre la procédure ici c’est l’observateur le destinataire)
Commande associée aux tortues (à mettre dans la fenêtre «Turtle procedures» ) to demarrer
ask-turtles [demarrer-tortues] // dire aux tortues lancer la procedure demarrer tortues end
to demarrer-tortues
patch-setup //demmarage des patches end
Exemple de code
Beaucoup de fonctions clés :
Fd (Forward) : Avance les tortues d’une etape
Setc (SetColor) : Couleur des tortues
Jump : Nombre de mouvements des tortues
Seth (setheading) : Angle de direction
Rt (right turn) : Tourner à droite d’un certain angle
Exemple de programme
Les termites
Une termite erre aléatoirement
Si elle trouve du bois elle le prend
Puis continue d’errer
Si elle en trouve un autre
Elle pose le premier dans une “pile” avec d’autres Regroupement de tous le morceaux de bois
Classification
Explication du code
to setup setc red
seth random 360 jump random 200 end
to go
search-for-chip ; chercher du bois find-new-pile ; trouver un autre bois find-empty-spot ; trouver une place libre end
to search-for-chip
if pc = yellow ; si elle trouve du bois [stamp black ; enleve le bois du schema
setc orange ; couleur orange pendant le transport jump 20
stop] ; on quitte wiggle
search-for-chip end
Etat initial Etat final
Conclusion
Développement de starLogo en 3D en cours
Bonne plateforme de simulation
(S’adapte à de nombreux domaines)
Pas d’acquisition de connaissances
(Agents réactifs)
Bibliographie
www.ades.cnrs.fr/IMG/ppt/Sem-GRANIT_MPiron_02-fevr-06.ppt
www.sm.u-bordeaux2.fr/~rodrigue/starlogo/main.html
www.samuel.landau.free.fr/pub/enseignements/ENSTA00-01/TD-6/
education.mit.edu/starlogo/
www.lirmm.fr/~jq/Cours/3cycle/module/sujet2002.html