Inspirations Contexte : la plate-forme MadKit La plate-forme TurtleKit

La plate-forme TurtleKit

Fabien MICHEL

LIRMM / SMILE

Master 2 - Moteurs de simulation

Fabien MICHEL TurtleKit Inspirations Contexte : la plate-forme MadKit La plate-forme TurtleKit Plan

1 Inspirations Le langage Logo La revolution´ StarLogo

2 Contexte : la plate-forme MadKit MadKit : vue gen´ erale´ Les outils de simulation de la plate-forme MadKit

3 La plate-forme TurtleKit TurtleKit : Vue gen´ erale´ TurtleKit API Exemples de simulations complexes TurtleKit vs. autres

Fabien MICHEL TurtleKit Inspirations Le langage Logo Contexte : la plate-forme MadKit La revolution´ StarLogo La plate-forme TurtleKit Plan

1 Inspirations Le langage Logo La revolution´ StarLogo

2 Contexte : la plate-forme MadKit MadKit : vue gen´ erale´ Les outils de simulation de la plate-forme MadKit

3 La plate-forme TurtleKit TurtleKit : Vue gen´ erale´ TurtleKit API Exemples de simulations complexes TurtleKit vs. autres

Fabien MICHEL TurtleKit Inspirations Le langage Logo Contexte : la plate-forme MadKit La revolution´ StarLogo La plate-forme TurtleKit Le langage Logo : Origines

Qu’est-ce que le Logo ? ”Logo is the name for a philosophy of education and a continually evolving family of programming languages that aid in its realization.” - Harold Abelson - Apple Logo, 1982

Au tout debut´ milieu des annees´ 60, (mathematicien)´ ayant travailler avec Jean Piaget (psychologue) a` Geneve` co-fonde le MIT avec Marvin Minsky. . . Papert (et une equipe´ du MIT) cree´ la premiere` version de Logo en 1967 (”Lisp sans parenthese”)`

Fabien MICHEL TurtleKit Inspirations Le langage Logo Contexte : la plate-forme MadKit La revolution´ StarLogo La plate-forme TurtleKit Le langage Logo : Origines

Qu’est-ce que le Logo ? ”Logo is the name for a philosophy of education and a continually evolving family of programming languages that aid in its realization.” - Harold Abelson - Apple Logo, 1982

Au tout debut´ milieu des annees´ 60, Seymour Papert (mathematicien)´ ayant travailler avec Jean Piaget (psychologue) a` Geneve` co-fonde le MIT avec Marvin Minsky. . . Papert (et une equipe´ du MIT) cree´ la premiere` version de Logo en 1967 (”Lisp sans parenthese”)`

Fabien MICHEL TurtleKit Inspirations Le langage Logo Contexte : la plate-forme MadKit La revolution´ StarLogo La plate-forme TurtleKit Le langage Logo : origines

Origines MIT fin des annees´ 60 Objectif : diriger un robot depuis un ordinateur avec des commandes simples (avance, recule, etc.)

Un robot...... qui dessine

Fabien MICHEL TurtleKit Inspirations Le langage Logo Contexte : la plate-forme MadKit La revolution´ StarLogo La plate-forme TurtleKit Le langage Logo : principes

carateristiques´ d’une tortue logo propriet´ es´ : orientation, stylo (on/off) capacites´ : avancer, reculer, tourner

exemples de mots de base

Fabien MICHEL TurtleKit Inspirations Le langage Logo Contexte : la plate-forme MadKit La revolution´ StarLogo La plate-forme TurtleKit Le langage Logo : principes

creation´ d’un nouveau mot

Fabien MICHEL TurtleKit Inspirations Le langage Logo Contexte : la plate-forme MadKit La revolution´ StarLogo La plate-forme TurtleKit Le langage Logo : principes

et ainsi de suite. . .

Fabien MICHEL TurtleKit Inspirations Le langage Logo Contexte : la plate-forme MadKit La revolution´ StarLogo La plate-forme TurtleKit Le langage Logo : principes

vers des mots plus complexes

Fabien MICHEL TurtleKit Inspirations Le langage Logo Contexte : la plate-forme MadKit La revolution´ StarLogo La plate-forme TurtleKit Plan

1 Inspirations Le langage Logo La revolution´ StarLogo

2 Contexte : la plate-forme MadKit MadKit : vue gen´ erale´ Les outils de simulation de la plate-forme MadKit

3 La plate-forme TurtleKit TurtleKit : Vue gen´ erale´ TurtleKit API Exemples de simulations complexes TurtleKit vs. autres

Fabien MICHEL TurtleKit Inspirations Le langage Logo Contexte : la plate-forme MadKit La revolution´ StarLogo La plate-forme TurtleKit La revolution´ StarLogo

L’idee´ de Debut´ des annees´ 90 : Multi-Logo “beyond the centralized mindset” un processus par tortue sur une architecture multi-processeur (nombreux problemes)` 1993/1994 : StarLogo (seulement mac au debut,´ ecrit´ en lisp) + Les patchs : ajout d’une dynamique environnementale (diffusion/evaporation)´

Fabien MICHEL TurtleKit Inspirations Le langage Logo Contexte : la plate-forme MadKit La revolution´ StarLogo La plate-forme TurtleKit La revolution´ StarLogo

L’idee´ de Mitchel Resnick Debut´ des annees´ 90 : Multi-Logo “beyond the centralized mindset” un processus par tortue sur une architecture multi-processeur (nombreux problemes)` 1993/1994 : StarLogo (seulement mac au debut,´ ecrit´ en lisp) + Les patchs : ajout d’une dynamique environnementale (diffusion/evaporation)´

Fabien MICHEL TurtleKit Inspirations Le langage Logo Contexte : la plate-forme MadKit La revolution´ StarLogo La plate-forme TurtleKit La revolution´ StarLogo

L’idee´ de Mitchel Resnick Debut´ des annees´ 90 : Multi-Logo “beyond the centralized mindset” un processus par tortue sur une architecture multi-processeur (nombreux problemes)` 1993/1994 : StarLogo (seulement mac au debut,´ ecrit´ en lisp) + Les patchs : ajout d’une dynamique environnementale (diffusion/evaporation)´

Fabien MICHEL TurtleKit Inspirations Le langage Logo Contexte : la plate-forme MadKit La revolution´ StarLogo La plate-forme TurtleKit La revolution´ StarLogo 1994

Fabien MICHEL TurtleKit Inspirations Le langage Logo Contexte : la plate-forme MadKit La revolution´ StarLogo La plate-forme TurtleKit La revolution´ StarLogo

aujourd’hui StarLogo version 2.21 (2006) (beaucoup de modeles)` OpenStarLogo ( ? ?) StarLogo TNG (programmation graphique pour l’education)´ NetLogo (des tonnes de modeles)`

Fabien MICHEL TurtleKit Inspirations MadKit : vue gen´ erale´ Contexte : la plate-forme MadKit Les outils de simulation de la plate-forme MadKit La plate-forme TurtleKit Plan

1 Inspirations Le langage Logo La revolution´ StarLogo

2 Contexte : la plate-forme MadKit MadKit : vue gen´ erale´ Les outils de simulation de la plate-forme MadKit

3 La plate-forme TurtleKit TurtleKit : Vue gen´ erale´ TurtleKit API Exemples de simulations complexes TurtleKit vs. autres

Fabien MICHEL TurtleKit Inspirations MadKit : vue gen´ erale´ Contexte : la plate-forme MadKit Les outils de simulation de la plate-forme MadKit La plate-forme TurtleKit MadKit www.madkit.org

Caracteristiques´ Plate-forme pour le developpement/d´ eploiement´ de SMA Micro-noyau ecrit´ en Java (distribuable P2P) Basee´ sur le modele` AGR :

Le modele` Agent/Groupe/Roleˆ

Fabien MICHEL TurtleKit Inspirations MadKit : vue gen´ erale´ Contexte : la plate-forme MadKit Les outils de simulation de la plate-forme MadKit La plate-forme TurtleKit MadKit www.madkit.org Le “bureau” MadKit

Fabien MICHEL TurtleKit Inspirations MadKit : vue gen´ erale´ Contexte : la plate-forme MadKit Les outils de simulation de la plate-forme MadKit La plate-forme TurtleKit Plan

1 Inspirations Le langage Logo La revolution´ StarLogo

2 Contexte : la plate-forme MadKit MadKit : vue gen´ erale´ Les outils de simulation de la plate-forme MadKit

3 La plate-forme TurtleKit TurtleKit : Vue gen´ erale´ TurtleKit API Exemples de simulations complexes TurtleKit vs. autres

Fabien MICHEL TurtleKit Inspirations MadKit : vue gen´ erale´ Contexte : la plate-forme MadKit Les outils de simulation de la plate-forme MadKit La plate-forme TurtleKit Les outils de simulation de la plate-forme MadKit integration´ dans MadKit d’un noyau de gestion du temps [Michel et al. 01] Agent/Groupe/Roleˆ pour la simulation

Fabien MICHEL TurtleKit TurtleKit : Vue gen´ erale´ Inspirations TurtleKit API Contexte : la plate-forme MadKit Exemples de simulations complexes La plate-forme TurtleKit TurtleKit vs. autres Plan

1 Inspirations Le langage Logo La revolution´ StarLogo

2 Contexte : la plate-forme MadKit MadKit : vue gen´ erale´ Les outils de simulation de la plate-forme MadKit

3 La plate-forme TurtleKit TurtleKit : Vue gen´ erale´ TurtleKit API Exemples de simulations complexes TurtleKit vs. autres

Fabien MICHEL TurtleKit TurtleKit : Vue gen´ erale´ Inspirations TurtleKit API Contexte : la plate-forme MadKit Exemples de simulations complexes La plate-forme TurtleKit TurtleKit vs. autres TurtleKit

En quelques mots plate-forme ecrite´ en java (au plus pres` des mots logo) realis´ ee´ avec MadKit Avantages : Agent/Groupe/Roleˆ messages fonctionnalites´ MadKit facile a` etendre´ et surtout, controleˆ total sur la simulation

Fabien MICHEL TurtleKit TurtleKit : Vue gen´ erale´ Inspirations TurtleKit API Contexte : la plate-forme MadKit Exemples de simulations complexes La plate-forme TurtleKit TurtleKit vs. autres TurtleKit

En quelques mots plate-forme ecrite´ en java (au plus pres` des mots logo) realis´ ee´ avec MadKit Avantages : Agent/Groupe/Roleˆ messages fonctionnalites´ MadKit facile a` etendre´ et surtout, controleˆ total sur la simulation

Fabien MICHEL TurtleKit TurtleKit : Vue gen´ erale´ Inspirations TurtleKit API Contexte : la plate-forme MadKit Exemples de simulations complexes La plate-forme TurtleKit TurtleKit vs. autres TurtleKit

En quelques mots plate-forme ecrite´ en java (au plus pres` des mots logo) realis´ ee´ avec MadKit Avantages : Agent/Groupe/Roleˆ messages fonctionnalites´ MadKit facile a` etendre´ et surtout, controleˆ total sur la simulation

Fabien MICHEL TurtleKit TurtleKit : Vue gen´ erale´ Inspirations TurtleKit API Contexte : la plate-forme MadKit Exemples de simulations complexes La plate-forme TurtleKit TurtleKit vs. autres TurtleKit

En quelques mots plate-forme ecrite´ en java (au plus pres` des mots logo) realis´ ee´ avec MadKit Avantages : Agent/Groupe/Roleˆ messages fonctionnalites´ MadKit facile a` etendre´ et surtout, controleˆ total sur la simulation

Fabien MICHEL TurtleKit TurtleKit : Vue gen´ erale´ Inspirations TurtleKit API Contexte : la plate-forme MadKit Exemples de simulations complexes La plate-forme TurtleKit TurtleKit vs. autres TurtleKit

En quelques mots plate-forme ecrite´ en java (au plus pres` des mots logo) realis´ ee´ avec MadKit Avantages : Agent/Groupe/Roleˆ messages fonctionnalites´ MadKit facile a` etendre´ et surtout, controleˆ total sur la simulation

Fabien MICHEL TurtleKit TurtleKit : Vue gen´ erale´ Inspirations TurtleKit API Contexte : la plate-forme MadKit Exemples de simulations complexes La plate-forme TurtleKit TurtleKit vs. autres TurtleKit

En quelques mots plate-forme ecrite´ en java (au plus pres` des mots logo) realis´ ee´ avec MadKit Avantages : Agent/Groupe/Roleˆ messages fonctionnalites´ MadKit facile a` etendre´ et surtout, controleˆ total sur la simulation

Fabien MICHEL TurtleKit TurtleKit : Vue gen´ erale´ Inspirations TurtleKit API Contexte : la plate-forme MadKit Exemples de simulations complexes La plate-forme TurtleKit TurtleKit vs. autres TurtleKit

Fabien MICHEL TurtleKit TurtleKit : Vue gen´ erale´ Inspirations TurtleKit API Contexte : la plate-forme MadKit Exemples de simulations complexes La plate-forme TurtleKit TurtleKit vs. autres TurtleKit

Fabien MICHEL TurtleKit TurtleKit : Vue gen´ erale´ Inspirations TurtleKit API Contexte : la plate-forme MadKit Exemples de simulations complexes La plate-forme TurtleKit TurtleKit vs. autres TurtleKit : moteur de simulation AGR

Fabien MICHEL TurtleKit TurtleKit : Vue gen´ erale´ Inspirations TurtleKit API Contexte : la plate-forme MadKit Exemples de simulations complexes La plate-forme TurtleKit TurtleKit vs. autres TurtleKit

Fabien MICHEL TurtleKit TurtleKit : Vue gen´ erale´ Inspirations TurtleKit API Contexte : la plate-forme MadKit Exemples de simulations complexes La plate-forme TurtleKit TurtleKit vs. autres TurtleKit

Fabien MICHEL TurtleKit TurtleKit : Vue gen´ erale´ Inspirations TurtleKit API Contexte : la plate-forme MadKit Exemples de simulations complexes La plate-forme TurtleKit TurtleKit vs. autres TurtleKit

Fabien MICHEL TurtleKit TurtleKit : Vue gen´ erale´ Inspirations TurtleKit API Contexte : la plate-forme MadKit Exemples de simulations complexes La plate-forme TurtleKit TurtleKit vs. autres TurtleKit

Fabien MICHEL TurtleKit TurtleKit : Vue gen´ erale´ Inspirations TurtleKit API Contexte : la plate-forme MadKit Exemples de simulations complexes La plate-forme TurtleKit TurtleKit vs. autres TurtleKit

Fabien MICHEL TurtleKit TurtleKit : Vue gen´ erale´ Inspirations TurtleKit API Contexte : la plate-forme MadKit Exemples de simulations complexes La plate-forme TurtleKit TurtleKit vs. autres Plan

1 Inspirations Le langage Logo La revolution´ StarLogo

2 Contexte : la plate-forme MadKit MadKit : vue gen´ erale´ Les outils de simulation de la plate-forme MadKit

3 La plate-forme TurtleKit TurtleKit : Vue gen´ erale´ TurtleKit API Exemples de simulations complexes TurtleKit vs. autres

Fabien MICHEL TurtleKit TurtleKit : Vue gen´ erale´ Inspirations TurtleKit API Contexte : la plate-forme MadKit Exemples de simulations complexes La plate-forme TurtleKit TurtleKit vs. autres TurtleKit Exemple de comportement : la termite electronique´

Fabien MICHEL TurtleKit TurtleKit : Vue gen´ erale´ Inspirations TurtleKit API Contexte : la plate-forme MadKit Exemples de simulations complexes La plate-forme TurtleKit TurtleKit vs. autres TurtleKit : exemple de code

StarLogo vs. TurtleKit

Fabien MICHEL TurtleKit TurtleKit : Vue gen´ erale´ Inspirations TurtleKit API Contexte : la plate-forme MadKit Exemples de simulations complexes La plate-forme TurtleKit TurtleKit vs. autres TurtleKit : API turtle API

Fabien MICHEL TurtleKit TurtleKit : Vue gen´ erale´ Inspirations TurtleKit API Contexte : la plate-forme MadKit Exemples de simulations complexes La plate-forme TurtleKit TurtleKit vs. autres TurtleKit : API turtle API

Fabien MICHEL TurtleKit TurtleKit : Vue gen´ erale´ Inspirations TurtleKit API Contexte : la plate-forme MadKit Exemples de simulations complexes La plate-forme TurtleKit TurtleKit vs. autres TurtleKit : API turtle API

Fabien MICHEL TurtleKit TurtleKit : Vue gen´ erale´ Inspirations TurtleKit API Contexte : la plate-forme MadKit Exemples de simulations complexes La plate-forme TurtleKit TurtleKit vs. autres

TurtleKit : API turtle API

Fabien MICHEL TurtleKit TurtleKit : Vue gen´ erale´ Inspirations TurtleKit API Contexte : la plate-forme MadKit Exemples de simulations complexes La plate-forme TurtleKit TurtleKit vs. autres TurtleKit : API turtle

API

Fabien MICHEL TurtleKit TurtleKit : Vue gen´ erale´ Inspirations TurtleKit API Contexte : la plate-forme MadKit Exemples de simulations complexes La plate-forme TurtleKit TurtleKit vs. autres TurtleKit : Termites demo´

Fabien MICHEL TurtleKit TurtleKit : Vue gen´ erale´ Inspirations TurtleKit API Contexte : la plate-forme MadKit Exemples de simulations complexes La plate-forme TurtleKit TurtleKit vs. autres TurtleKit : ecrire´ ses propres observers Etendre´ la classe observer (1. pour les patchs)

Fabien MICHEL TurtleKit TurtleKit : Vue gen´ erale´ Inspirations TurtleKit API Contexte : la plate-forme MadKit Exemples de simulations complexes La plate-forme TurtleKit TurtleKit vs. autres TurtleKit : ecrire´ ses propres observers Etendre´ la classe observer (2. pour les turtles)

Fabien MICHEL TurtleKit TurtleKit : Vue gen´ erale´ Inspirations TurtleKit API Contexte : la plate-forme MadKit Exemples de simulations complexes La plate-forme TurtleKit TurtleKit vs. autres Plan

1 Inspirations Le langage Logo La revolution´ StarLogo

2 Contexte : la plate-forme MadKit MadKit : vue gen´ erale´ Les outils de simulation de la plate-forme MadKit

3 La plate-forme TurtleKit TurtleKit : Vue gen´ erale´ TurtleKit API Exemples de simulations complexes TurtleKit vs. autres

Fabien MICHEL TurtleKit TurtleKit : Vue gen´ erale´ Inspirations TurtleKit API Contexte : la plate-forme MadKit Exemples de simulations complexes La plate-forme TurtleKit TurtleKit vs. autres

TurtleKitUn : exemple modele` pour d’utilisation l’emergence´ avanc multi-niveauxee´ [Beurier 05]

Fabien MICHEL TurtleKit TurtleKit : Vue gen´ erale´ Inspirations TurtleKit API Contexte : la plate-forme MadKit Exemples de simulations complexes La plate-forme TurtleKit TurtleKit vs. autres TurtleKit : exemple d’utilisation avancee´

Un modele` inspiree´ de l’embryogenie´ [Beurier 06]

Fabien MICHEL TurtleKit TurtleKit : Vue gen´ erale´ Inspirations TurtleKit API Contexte : la plate-forme MadKit Exemples de simulations complexes La plate-forme TurtleKit TurtleKit vs. autres TurtleKit : exemple d’utilisation avancee´

Un modele` inspiree´ de l’embryogenie´

Fabien MICHEL TurtleKit TurtleKit : Vue gen´ erale´ Inspirations TurtleKit API Contexte : la plate-forme MadKit Exemples de simulations complexes La plate-forme TurtleKit TurtleKit vs. autres Plan

1 Inspirations Le langage Logo La revolution´ StarLogo

2 Contexte : la plate-forme MadKit MadKit : vue gen´ erale´ Les outils de simulation de la plate-forme MadKit

3 La plate-forme TurtleKit TurtleKit : Vue gen´ erale´ TurtleKit API Exemples de simulations complexes TurtleKit vs. autres

Fabien MICHEL TurtleKit TurtleKit : Vue gen´ erale´ Inspirations TurtleKit API Contexte : la plate-forme MadKit Exemples de simulations complexes La plate-forme TurtleKit TurtleKit vs. autres TurtleKit vs. autres

Avantages rappels MadKit Java (pas un seul fichier, heritage,´ etc.) plate-forme faite pour etreˆ etendue´ mais surtout. . .

Fabien MICHEL TurtleKit TurtleKit : Vue gen´ erale´ Inspirations TurtleKit API Contexte : la plate-forme MadKit Exemples de simulations complexes La plate-forme TurtleKit TurtleKit vs. autres TurtleKit vs. autres

Avantages rappels MadKit Java (pas un seul fichier, heritage,´ etc.) plate-forme faite pour etreˆ etendue´ mais surtout. . .

Fabien MICHEL TurtleKit TurtleKit : Vue gen´ erale´ Inspirations TurtleKit API Contexte : la plate-forme MadKit Exemples de simulations complexes La plate-forme TurtleKit TurtleKit vs. autres TurtleKit vs. autres

Avantages rappels MadKit Java (pas un seul fichier, heritage,´ etc.) plate-forme faite pour etreˆ etendue´ mais surtout. . .

Fabien MICHEL TurtleKit TurtleKit : Vue gen´ erale´ Inspirations TurtleKit API Contexte : la plate-forme MadKit Exemples de simulations complexes La plate-forme TurtleKit TurtleKit vs. autres TurtleKit vs. autres

Avantages rappels MadKit Java (pas un seul fichier, heritage,´ etc.) plate-forme faite pour etreˆ etendue´ mais surtout. . .

Fabien MICHEL TurtleKit TurtleKit : Vue gen´ erale´ Inspirations TurtleKit API Contexte : la plate-forme MadKit Exemples de simulations complexes La plate-forme TurtleKit TurtleKit vs. autres TurtleKit possede` un vrai modele` temporel ! !

le pas de temps est explicite

Fabien MICHEL TurtleKit