La Programmation Orientée Agent Les Agents Réactifs

publicité
La Programmation Orientée Agent
Les Agents Réactifs
Emmanuel ADAM
Université de Valenciennes et du Hainaut-Cambrésis
UVHC/ISTV-LAMIH
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
1 / 29
Plan
1
Présentation des agents réactifs
2
Les automates cellulaires
Présentation des automates cellulaires
Le jeu de la Vie
Programmation du jeu de la Vie
Programmation Java du jeu de la Vie
Programmation NetLogo du jeu de la Vie
Tutorial NetLogo : Jeu de la Vie
Art cellulaire
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
2 / 29
Présentation des agents réactifs
Présentation des agents réactifs
1/4
Description générale
Les agents réactifs possèdent une représentations très limitée
d’eux-mêmes, de leur environnement, des autres agents.
Une organisation d’agents réactifs n’est pas définie a priori,
elle résulte de leurs activités, de leurs rôles.
émergence
auto-organisation
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
3 / 29
Présentation des agents réactifs
Présentation des agents réactifs
1/4
Description générale
Les agents réactifs possèdent une représentations très limitée
d’eux-mêmes, de leur environnement, des autres agents.
Une organisation d’agents réactifs n’est pas définie a priori,
elle résulte de leurs activités, de leurs rôles.
émergence
auto-organisation
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
3 / 29
Présentation des agents réactifs
Présentation des agents réactifs
2/4
Description générale
Les agents réactifs possèdent un fonctionnement simple :
Stimulii-réponses, actions-réactions
Réponse aux signaux de l’environnement
Communication simple :
Propagation de signaux
Utilisation de l’environnement
Pas de plan global partagé, de mémoire partagée
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
4 / 29
Présentation des agents réactifs
Présentation des agents réactifs
2/4
Description générale
Les agents réactifs possèdent un fonctionnement simple :
Stimulii-réponses, actions-réactions
Réponse aux signaux de l’environnement
Communication simple :
Propagation de signaux
Utilisation de l’environnement
Pas de plan global partagé, de mémoire partagée
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
4 / 29
Présentation des agents réactifs
Présentation des agents réactifs
2/4
Description générale
Les agents réactifs possèdent un fonctionnement simple :
Stimulii-réponses, actions-réactions
Réponse aux signaux de l’environnement
Communication simple :
Propagation de signaux
Utilisation de l’environnement
Pas de plan global partagé, de mémoire partagée
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
4 / 29
Présentation des agents réactifs
Présentation des agents réactifs
3/4
Cadre d’applications
Recherches inspirées de :
Insectes sociaux
fourmis, termites, abeilles, guêpes, . . .
Eco-systèmes
Phytosociologie
Utilisation en :
Simulation d’organisation
Robots collecteur
Résolution distribuée de problème
Recherche du plus court chemin dans un réseau, . . .
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
5 / 29
Présentation des agents réactifs
Présentation des agents réactifs
3/4
Cadre d’applications
Recherches inspirées de :
Insectes sociaux
fourmis, termites, abeilles, guêpes, . . .
Eco-systèmes
Phytosociologie
Utilisation en :
Simulation d’organisation
Robots collecteur
Résolution distribuée de problème
Recherche du plus court chemin dans un réseau, . . .
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
5 / 29
Présentation des agents réactifs
Présentation des agents réactifs
4/4
Applications
Simulations :
d’écoulement de flux (de liquides, de gaz, . . .),
de propriétés magnétiques,
de développement urbain, trafic routier,
de la propagation d’un feu de forêt, . . .
Identification de comportements collectifs, . . .
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
6 / 29
Présentation des agents réactifs
Présentation des agents réactifs
4/4
Applications
Simulations :
d’écoulement de flux (de liquides, de gaz, . . .),
de propriétés magnétiques,
de développement urbain, trafic routier,
de la propagation d’un feu de forêt, . . .
Identification de comportements collectifs, . . .
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
6 / 29
Les automates cellulaires
Présentation des automates cellulaires
Automate cellulaire
Description générale
Premières versions dans les années 1940.
Les automates cellulaires sont des grilles dont les cellules
possèdent des états.
Les automates cellulaires peuvent produire des motifs stables,
périodiques, chaotiques, complexes.
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
7 / 29
Les automates cellulaires
Présentation des automates cellulaires
Automate cellulaire
Description générale
Premières versions dans les années 1940.
Les automates cellulaires sont des grilles dont les cellules
possèdent des états.
Les automates cellulaires peuvent produire des motifs stables,
périodiques, chaotiques, complexes.
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
7 / 29
Les automates cellulaires
Présentation des automates cellulaires
Automate cellulaire
Description générale
Premières versions dans les années 1940.
Les automates cellulaires sont des grilles dont les cellules
possèdent des états.
Les automates cellulaires peuvent produire des motifs stables,
périodiques, chaotiques, complexes.
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
7 / 29
Les automates cellulaires
Le jeu de la Vie
Jeu de la Vie
Définition du jeu de la Vie
(Conway 1969)
Le Jeu de la vie consiste à faire évoluer sur un grille un ensemble
cellules selon les règles suivantes :
Si une cellule active est entourée de moins de 2 cellules :
elle manque de contact et se désactive.
Si une cellule active est entourée de plus de 3 cellules :
elle est en milieu surpeuplé et se désactive.
Si une cellule inactive est entourée de 3 cellules,
alors elle s’active.
Dans les autres cas,
la cellule garde son état.
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
8 / 29
Les automates cellulaires
Le jeu de la Vie
Jeu de la Vie
Définition du jeu de la Vie
(Conway 1969)
Le Jeu de la vie consiste à faire évoluer sur un grille un ensemble
cellules selon les règles suivantes :
Si une cellule active est entourée de moins de 2 cellules :
elle manque de contact et se désactive.
Si une cellule active est entourée de plus de 3 cellules :
elle est en milieu surpeuplé et se désactive.
Si une cellule inactive est entourée de 3 cellules,
alors elle s’active.
Dans les autres cas,
la cellule garde son état.
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
8 / 29
Les automates cellulaires
Le jeu de la Vie
Jeu de la Vie
Définition du jeu de la Vie
(Conway 1969)
Le Jeu de la vie consiste à faire évoluer sur un grille un ensemble
cellules selon les règles suivantes :
Si une cellule active est entourée de moins de 2 cellules :
elle manque de contact et se désactive.
Si une cellule active est entourée de plus de 3 cellules :
elle est en milieu surpeuplé et se désactive.
Si une cellule inactive est entourée de 3 cellules,
alors elle s’active.
Dans les autres cas,
la cellule garde son état.
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
8 / 29
Les automates cellulaires
Le jeu de la Vie
Jeu de la Vie
Définition du jeu de la Vie
(Conway 1969)
Le Jeu de la vie consiste à faire évoluer sur un grille un ensemble
cellules selon les règles suivantes :
Si une cellule active est entourée de moins de 2 cellules :
elle manque de contact et se désactive.
Si une cellule active est entourée de plus de 3 cellules :
elle est en milieu surpeuplé et se désactive.
Si une cellule inactive est entourée de 3 cellules,
alors elle s’active.
Dans les autres cas,
la cellule garde son état.
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
8 / 29
Les automates cellulaires
Le jeu de la Vie
Jeu de la Vie
Définition du jeu de la Vie
(Conway 1969)
Le Jeu de la vie consiste à faire évoluer sur un grille un ensemble
cellules selon les règles suivantes :
Si une cellule active est entourée de moins de 2 cellules :
elle manque de contact et se désactive.
Si une cellule active est entourée de plus de 3 cellules :
elle est en milieu surpeuplé et se désactive.
Si une cellule inactive est entourée de 3 cellules,
alors elle s’active.
Dans les autres cas,
la cellule garde son état.
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
8 / 29
Les automates cellulaires
Le jeu de la Vie
Jeu de la Vie : Exemple
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
9 / 29
Les automates cellulaires
Programmation du jeu de la Vie
Jeu de la Vie : Programmation
Programmation du jeu de la Vie
Un automate cellulaire se programme ”simplement” sur base
d’un langage permettant une gestion rapide des tableaux (C,
Java, . . .).
Il est également possible de se baser sur une plateforme dédiée
à la programmation d’agents réactifs (NetLogo, Madkit,
Swarm, . . .).
L’utilisation d’une plateforme permet l’utilisation de méthodes
et d’outils dédiés à ce type de problème.
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
10 / 29
Les automates cellulaires
Programmation du jeu de la Vie
Jeu de la Vie : Programmation
Programmation du jeu de la Vie
Un automate cellulaire se programme ”simplement” sur base
d’un langage permettant une gestion rapide des tableaux (C,
Java, . . .).
Il est également possible de se baser sur une plateforme dédiée
à la programmation d’agents réactifs (NetLogo, Madkit,
Swarm, . . .).
L’utilisation d’une plateforme permet l’utilisation de méthodes
et d’outils dédiés à ce type de problème.
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
10 / 29
Les automates cellulaires
Programmation du jeu de la Vie
Programmation Java du jeu de la Vie
1/3
Eléments nécessaires pour une programmation Java
En java, il est nécessaire de développer entièrement au moins
2 classes :
une représentation d’une cellule ; une représentation de la
grille.
PB : réutilisation pour d’autres problèmes possibles mais
nécessite beaucoup de modifications.
Pour exempe, deux squelettes de classes Java pour Jeu de la
Vie. . .
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
11 / 29
Les automates cellulaires
Programmation du jeu de la Vie
Programmation Java du jeu de la Vie
1/3
Eléments nécessaires pour une programmation Java
En java, il est nécessaire de développer entièrement au moins
2 classes :
une représentation d’une cellule ; une représentation de la
grille.
PB : réutilisation pour d’autres problèmes possibles mais
nécessite beaucoup de modifications.
Pour exempe, deux squelettes de classes Java pour Jeu de la
Vie. . .
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
11 / 29
Les automates cellulaires
Programmation du jeu de la Vie
Programmation Java du jeu de la Vie
1/3
Eléments nécessaires pour une programmation Java
En java, il est nécessaire de développer entièrement au moins
2 classes :
une représentation d’une cellule ; une représentation de la
grille.
PB : réutilisation pour d’autres problèmes possibles mais
nécessite beaucoup de modifications.
Pour exempe, deux squelettes de classes Java pour Jeu de la
Vie. . .
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
11 / 29
Les automates cellulaires
Programmation du jeu de la Vie
Programmation Java du jeu de la Vie
c l a s s C e l l u l e implements C l o n e a b l e
{
/∗∗ n a t u r e de l a c e l l u l e ∗/
boolean v i v a n t e ;
/∗∗ c o o r d o n n e e de l a
int x , y ;
c e l l u l e dans l a
2/3
/∗∗ r é f é r e n c e à l a g r i l l e
Cellule [ ] [ ] grille ;
d e s c e l l u l e ∗/
C e l l u l e (){ }
Cellule ( Cellule [ ] [ ] grille , int x , int y ,
oolean v i v a n t e ) { }
g r i l l eb∗/
/∗∗ s e u i l à p a r t i r d u q u e l
l a c e l l u l e meurt de s o u s p o p u l a t i o n ∗/
static f i n a l int sousPopulation = 1;
/∗∗ d é t e r m i n e l e p r o c h a i n é t a t de l a
en f o n c t i o n d e s c e l l u l e s v o i s i n e s ∗/
void evoluer () { }
cellule
/∗∗ s u r c h a r g e de c l o n e ,
r e t o u r n e une c o p i e de l a c e l l u l e ∗/
p u b l i c Object clone ()
{
Object o = n u l l ;
/∗∗ s e u i l minimum à p a r t i r d u q u e l
try
{ o = super . clone ( ) ; }
l a c e l l u l e v i t ∗/
s t a t i c f i n a l int minPopRegeneratrice = 3;
catch ( CloneNotSupportedException e )
{ System . e r r . p r i n t l n ( e ) ; }
/∗∗ s e u i l maximum à p a r t i r d u q u e l
return o ;
l a c e l l u l e v i t ∗/
}
s t a t i c f i n a l i n t maxPopRegeneratrice = 3; }
/∗∗ s e u i l à p a r t i r d u q u e l
l a c e l l u l e meurt de s u r p o p u l a t i o n ∗/
static f i n a l int surPopulation = 4;
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
12 / 29
Les automates cellulaires
Programmation du jeu de la Vie
Programmation Java du jeu de la Vie
c l a s s T a b l e a u G r a p h i q u e e x t e n d s JFrame
{
/∗∗ g r i l l e a l ’ i n s t a n t t ∗/
Cellule [ ] [ ] grille ;
/∗∗ g r i l l e a l ’ i n s t a n t t−1∗/
Cellule [ ] [ ] grilleAncienne ;
/∗∗ t a i l l e de l a g r i l l e ∗/
int t a i l l e ;
/∗∗ nb c e l l u l e s v i v a n t e s i n i t i a l e m e n t ∗/
int n b C e l l u l e s I n i t i a l e s = 10;
/∗∗ z o n e de d e s s i n ∗/
JPanel j p a n e l ;
/∗∗ temps d ’ a t t e n t e e n t r e a f f i c h a g e s ∗/
d o u b l e tempo = 0 ;
3/3
/∗∗ i n i t i a l i s e l e s g r i l l e s à t e t t−1 :
a j o u t de c e l l u l e s m o r t e s
e t a p p e l de i n i t H a s a r d ∗/
v o i d i n i t G r i l l e (){}
/∗∗ p l a c e au h a s a r d d e s c e l l u l e s
d a n s l e s g r i l l e s ∗/
v o i d i n i t H a s a r d (){}
vivantes
/∗∗ d e s s i n de l a g r i l l e e t d e s c e l l u l e s ∗/
v o i d d e s s i n G r i l l e ( G r a p h i c s 2 D g2d ) {}
/∗∗ c o p i e l a g r i l l e a l ’ i n s t a n t t
d a n s l a g r i l l e a l ’ i n s t a n t t−1 ∗/
v o i d c o p i e G r i l l e s (){}
/∗∗ demande a t o u t e s l e s c e l l u l e s
/∗∗ c o n s t r u c t e u r i n i t i a l i s a n t l a t a i l l e , de l a g r i l l e t d ’ e v o l u e r ,
l e nombre de c e l l u l e s i n i t i a l e s , l e tempo ,a p p e l l e c o p i e G r i l l e s ∗/
a i n s i que l e s g r i l l e s à t e t t−1∗/
v o i d a n i m G r i l l e ( ) {}
TableauGraphique ( i n t t a i l l e ,
i n t n b C e l l u l e s I n i t i a l e s , d o u b l e tempo ){} /∗∗ a p p e l du d e s s i n de d e s s i n G r i l l e ,
animGrille , attente , et
/∗∗ i n i t i a l i s e l a f e n ê t r e : t a i l l e ,
demande de r e a f f i c h a g e
∗/
z o n e de d e s s i n , . . . A p p e l de i n i t G r i l l e ∗/p u b l i c v o i d p a i n t ( G r a p h i c s g ) {}
v o i d i n i t (){}
}
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
13 / 29
Les automates cellulaires
Programmation du jeu de la Vie
Programmation NetLogo du jeu de la Vie
1/2
Utilisation d’une plateforme multi-agent réactifs : NetLogo
Utilisation de types cellules (patches), agents (turtles) et
grille.
Possibilité d’utiliser des indicateurs dédiés aux états des
cellules, agents (compteurs, graphiques)
Cas particulier de NetLogo : programmation “à la Logo” et
affichage 3D possible. . .
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
14 / 29
Les automates cellulaires
Programmation du jeu de la Vie
Programmation NetLogo du jeu de la Vie
1/2
Utilisation d’une plateforme multi-agent réactifs : NetLogo
Utilisation de types cellules (patches), agents (turtles) et
grille.
Possibilité d’utiliser des indicateurs dédiés aux états des
cellules, agents (compteurs, graphiques)
Cas particulier de NetLogo : programmation “à la Logo” et
affichage 3D possible. . .
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
14 / 29
Les automates cellulaires
Programmation du jeu de la Vie
Programmation NetLogo du jeu de la Vie
1/2
Utilisation d’une plateforme multi-agent réactifs : NetLogo
Utilisation de types cellules (patches), agents (turtles) et
grille.
Possibilité d’utiliser des indicateurs dédiés aux états des
cellules, agents (compteurs, graphiques)
Cas particulier de NetLogo : programmation “à la Logo” et
affichage 3D possible. . .
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
14 / 29
Les automates cellulaires
Programmation du jeu de la Vie
Programmation NetLogo du jeu de la Vie
2/3
NetLogo pour le Jeu de la Vie
Pas d’agent pour les automates cellulaires, utilisation de
cellules (patches) uniquement.
Une cellule possède un état (vivante) et le nombre de ses
voisines vivantes
Si une cellule est morte, elle prend la couleur du fond
Quatre fonctions suffisent alors pour implémenter le jeu de la
Vie.
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
15 / 29
Les automates cellulaires
Programmation du jeu de la Vie
Programmation NetLogo du jeu de la Vie
2/3
NetLogo pour le Jeu de la Vie
Pas d’agent pour les automates cellulaires, utilisation de
cellules (patches) uniquement.
Une cellule possède un état (vivante) et le nombre de ses
voisines vivantes
Si une cellule est morte, elle prend la couleur du fond
Quatre fonctions suffisent alors pour implémenter le jeu de la
Vie.
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
15 / 29
Les automates cellulaires
Programmation du jeu de la Vie
Programmation NetLogo du jeu de la Vie
2/3
NetLogo pour le Jeu de la Vie
Pas d’agent pour les automates cellulaires, utilisation de
cellules (patches) uniquement.
Une cellule possède un état (vivante) et le nombre de ses
voisines vivantes
Si une cellule est morte, elle prend la couleur du fond
Quatre fonctions suffisent alors pour implémenter le jeu de la
Vie.
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
15 / 29
Les automates cellulaires
Programmation du jeu de la Vie
Programmation NetLogo du jeu de la Vie
2/3
NetLogo pour le Jeu de la Vie
Pas d’agent pour les automates cellulaires, utilisation de
cellules (patches) uniquement.
Une cellule possède un état (vivante) et le nombre de ses
voisines vivantes
Si une cellule est morte, elle prend la couleur du fond
Quatre fonctions suffisent alors pour implémenter le jeu de la
Vie.
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
15 / 29
Les automates cellulaires
Programmation du jeu de la Vie
Programmation NetLogo du jeu de la Vie
3/3
I
; ; a t t r i b u t s d ’ une c e l l u l e
; ; − i n d i c a t e u r de v i e
; ; − nb de v o i s i n e s v i v a n t s
p a t c h e s −own [
vivante ?
voisinesVivantes
]
; ; i n i t i a l i s a t i o n de l a g r i l l e
; ; i n i t i a l e m e n t une c e l l u l e a 35% de c h a n c e d ’ e t r e a c t i v e
to i n i t H a s a r d
ask p a t c h e s
[ i f e l s e random−f l o a t 1 0 0 . 0 < 3 5 . 0
[ naissanceCell ]
[ mortCell ] ]
end
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
16 / 29
Les automates cellulaires
Programmation du jeu de la Vie
Programmation NetLogo du jeu de la Vie
3/3
II
; ; n a i s s a n c e −> c o u l e u r de c e l l u l e
to n a i s s a n c e C e l l
set vivante ? true
set pcolor c o u l e u r C e l l
end
; ; mort −> c o u l e u r du f o n d
to m o r t C e l l
set vivante ? f a l s e
set pcolor couleurFond
end
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
17 / 29
Les automates cellulaires
Programmation du jeu de la Vie
Programmation NetLogo du jeu de la Vie
3/3
III
; ; f o n c t i o n n e m e n t de l ’ automate
to go
; ; demande aux c e l l u l e s de c o m p t e r l e nb de v o i s i n s v i v a n t s
ask p a t c h e s
[ set v o i s i n e s V i v a n t e s
count n e i g h b o r s with [ v i v a n t e ? ] ]
; ; demande aux c e l l u l e s de m o d i f i e r l e u r s e t a t s
ask p a t c h e s
[ ifelse voisinesVivantes = 3
[ naissanceCell ]
[ i f v o i s i n e s V i v a n t e s != 2
[ mortCell ] ] ]
end
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
18 / 29
Les automates cellulaires
Programmation du jeu de la Vie
Tutorial NetLogo : Jeu de la Vie
1/7
Création de l’interface de dialogue NetLogo
Au lancement, NetLogo présente une grille vide de 342 cases
centrée.
La cellule (-17,-17) se trouve en bas à gauche et la cellule
(17,17) en haut à droite.
Possibilité de créer des boutons, des ‘glisseurs’, des listes de
choix, des zones d’affichage et des graphiques reportant des
états de cellules ou d’agents, des zones de texte et des labels.
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
19 / 29
Les automates cellulaires
Programmation du jeu de la Vie
Tutorial NetLogo : Jeu de la Vie
1/7
Création de l’interface de dialogue NetLogo
Au lancement, NetLogo présente une grille vide de 342 cases
centrée.
Possibilité de créer des boutons, des ‘glisseurs’, des listes de
choix, des zones d’affichage et des graphiques reportant des
états de cellules ou d’agents, des zones de texte et des labels.
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
19 / 29
Les automates cellulaires
Programmation du jeu de la Vie
Tutorial NetLogo : Jeu de la Vie
2/7
Ajout des boutons
Pour créer un bouton : cliquer sur “Button” et cliquer sur l’endroit
désiré.
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
20 / 29
Les automates cellulaires
Programmation du jeu de la Vie
Tutorial NetLogo : Jeu de la Vie
2/7
Ajout des boutons
Dans “Commands” : indiquer la fonction à lancer ou le code à
exécuter.
Ici, la fonction est initVide
Le texte par défaut du bouton est le nom de la fonction
Le bouton est relatif à la grille (“Observer”)
Dès la fin de l’action, la vue est réinitialisée (“Force view
update after each run”)
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
20 / 29
Les automates cellulaires
Programmation du jeu de la Vie
Tutorial NetLogo : Jeu de la Vie
2/7
Ajout des boutons
Si la commande initVide n’existe pas dans l’onglet “Procedures”,
un problème est détecté. En ré-éditant le bouton (clic droit puis
“Edit”), la raison de l’erreur est présentée.
La fonction sera donnée dans les transparents suivants.
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
20 / 29
Les automates cellulaires
Programmation du jeu de la Vie
Tutorial NetLogo : Jeu de la Vie
3/7
Autres boutons “classiques” du Jeu de la Vie
Créer un bouton pour la fonction “initHasard”.
Créer deux boutons poussoirs (Forever ) pour “ajoutCells”,
“retraitCells”.
Créer deux boutons liés à la méthode “go” :
‘”avancer” d’un pas’ : bouton classique
‘lancer ’ : bouton poussoir
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
21 / 29
Les automates cellulaires
Programmation du jeu de la Vie
Tutorial NetLogo : Jeu de la Vie
3/7
Autres boutons “classiques” du Jeu de la Vie
Créer un bouton pour la fonction “initHasard”.
Créer deux boutons poussoirs (Forever ) pour “ajoutCells”,
“retraitCells”.
Créer deux boutons liés à la méthode “go” :
‘”avancer” d’un pas’ : bouton classique
‘lancer ’ : bouton poussoir
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
21 / 29
Les automates cellulaires
Programmation du jeu de la Vie
Tutorial NetLogo : Jeu de la Vie
3/7
Autres boutons “classiques” du Jeu de la Vie
Créer un bouton pour la fonction “initHasard”.
Créer deux boutons poussoirs (Forever ) pour “ajoutCells”,
“retraitCells”.
Créer deux boutons liés à la méthode “go” :
‘”avancer” d’un pas’ : bouton classique
‘lancer ’ : bouton poussoir
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
21 / 29
Les automates cellulaires
Programmation du jeu de la Vie
Tutorial NetLogo : Jeu de la Vie
3/7
Autres boutons “classiques” du Jeu de la Vie
Créer un bouton pour la fonction “initHasard”.
Créer deux boutons poussoirs (Forever ) pour “ajoutCells”,
“retraitCells”.
Créer deux boutons liés à la méthode “go” :
‘”avancer” d’un pas’ : bouton classique
‘lancer ’ : bouton poussoir
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
21 / 29
Les automates cellulaires
Programmation du jeu de la Vie
Tutorial NetLogo : Jeu de la Vie
Gestion des couleurs par glisseurs
4/7
1/2
Créer un glisseur en positionnant un “Slider ”.
Une fenêtre de dialogue apparaı̂t alors.
Associer le glisseur à la variable globale “couleurCell”.
Permettre de donner à la couleur une valeur allant de 0 à 140 et
donner une valeur initiale de 65.
Associer un autre glisseur à la variable globale “couleurFond” de
valeur initiale 0.
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
22 / 29
Les automates cellulaires
Programmation du jeu de la Vie
Tutorial NetLogo : Jeu de la Vie
Gestion des couleurs par glisseurs
4/7
1/2
Créer un glisseur en positionnant un “Slider ”.
Une fenêtre de dialogue apparaı̂t alors.
Associer le glisseur à la variable globale “couleurCell”.
Permettre de donner à la couleur une valeur allant de 0 à 140 et
donner une valeur initiale de 65.
Associer un autre glisseur à la variable globale “couleurFond” de
valeur initiale 0.
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
22 / 29
Les automates cellulaires
Programmation du jeu de la Vie
Tutorial NetLogo : Jeu de la Vie
Gestion des couleurs par glisseurs
4/7
1/2
Créer un glisseur en positionnant un “Slider ”.
Une fenêtre de dialogue apparaı̂t alors.
Associer le glisseur à la variable globale “couleurCell”.
Permettre de donner à la couleur une valeur allant de 0 à 140 et
donner une valeur initiale de 65.
Associer un autre glisseur à la variable globale “couleurFond” de
valeur initiale 0.
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
22 / 29
Les automates cellulaires
Programmation du jeu de la Vie
Tutorial NetLogo : Jeu de la Vie
Gestion des couleurs par glisseurs
4/7
1/2
Créer un glisseur en positionnant un “Slider ”.
Une fenêtre de dialogue apparaı̂t alors.
Associer le glisseur à la variable globale “couleurCell”.
Permettre de donner à la couleur une valeur allant de 0 à 140 et
donner une valeur initiale de 65.
Associer un autre glisseur à la variable globale “couleurFond” de
valeur initiale 0.
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
22 / 29
Les automates cellulaires
Programmation du jeu de la Vie
Tutorial NetLogo : Jeu de la Vie
Gestion des couleurs par glisseurs
5/7
2/2
Créer un bouton nommé “recolorer ” associé aux cellules
(“Patches”)
Associer le bouton au code suivant :
ifelse vivante ?
[ set pcolor c o u l e u r C e l l ]
[ set pcolor couleurFond ]
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
23 / 29
Les automates cellulaires
Programmation du jeu de la Vie
Tutorial NetLogo : Jeu de la Vie
Gestion des couleurs par glisseurs
5/7
2/2
Créer un bouton nommé “recolorer ” associé aux cellules
(“Patches”)
Associer le bouton au code suivant :
ifelse vivante ?
[ set pcolor c o u l e u r C e l l ]
[ set pcolor couleurFond ]
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
23 / 29
Les automates cellulaires
Programmation du jeu de la Vie
Tutorial NetLogo : Jeu de la Vie
6/7
Ajout d’un moniteur
Un moniteur permet de suivre les états des cellules et des agents.
Il existe des moniteurs numériques et des moniteurs graphiques.
Créer un moniteur en sélectionnant l’outil “monitor ” de nom
‘densité courante’
Dans la zone “reporter ”, placer le code comptant le pourcentage de
cellules vivantes :
( c o u n t p a t c h e s w i t h [ v i v a n t e ? ] / c o u n t p a t c h e s ) ∗ 100
Le calcul est effectué à chaque pas.
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
24 / 29
Les automates cellulaires
Programmation du jeu de la Vie
Tutorial NetLogo : Jeu de la Vie
6/7
Ajout d’un moniteur
Un moniteur permet de suivre les états des cellules et des agents.
Il existe des moniteurs numériques et des moniteurs graphiques.
Créer un moniteur en sélectionnant l’outil “monitor ” de nom
‘densité courante’
Dans la zone “reporter ”, placer le code comptant le pourcentage de
cellules vivantes :
( c o u n t p a t c h e s w i t h [ v i v a n t e ? ] / c o u n t p a t c h e s ) ∗ 100
Le calcul est effectué à chaque pas.
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
24 / 29
Les automates cellulaires
Programmation du jeu de la Vie
Tutorial NetLogo : Jeu de la Vie
6/7
Ajout d’un moniteur
Un moniteur permet de suivre les états des cellules et des agents.
Il existe des moniteurs numériques et des moniteurs graphiques.
Créer un moniteur en sélectionnant l’outil “monitor ” de nom
‘densité courante’
Dans la zone “reporter ”, placer le code comptant le pourcentage de
cellules vivantes :
( c o u n t p a t c h e s w i t h [ v i v a n t e ? ] / c o u n t p a t c h e s ) ∗ 100
Le calcul est effectué à chaque pas.
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
24 / 29
Les automates cellulaires
Programmation du jeu de la Vie
Tutorial NetLogo : Jeu de la Vie
6/7
Ajout d’un moniteur
Un moniteur permet de suivre les états des cellules et des agents.
Il existe des moniteurs numériques et des moniteurs graphiques.
Créer un moniteur en sélectionnant l’outil “monitor ” de nom
‘densité courante’
Dans la zone “reporter ”, placer le code comptant le pourcentage de
cellules vivantes :
( c o u n t p a t c h e s w i t h [ v i v a n t e ? ] / c o u n t p a t c h e s ) ∗ 100
Le calcul est effectué à chaque pas.
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
24 / 29
Les automates cellulaires
Programmation du jeu de la Vie
Tutorial NetLogo : Jeu de la Vie
7/7
3 fonctions sont à ajouter à celles précédemment décrites :
; ; i n i t i a l i s a t i o n de l a g r i l l e a v e c d e s c e l l u l e s m o r t e s
to i n i t V i d e
ask p a t c h e s [ m o r t C e l l ]
end
; ; a j o u t de c e l l u l e s p a r c l i c s o u r i s
to a j o u t C e l l s
w h i l e [ mouse−down ? ]
[ ask p a t c h −a t mouse−x c o r mouse−y c o r [ n a i s s a n c e C e l l ] ]
end
; ; r e t r a i t de c e l l u l e s p a r c l i c s o u r i s
to r e t r a i t C e l l s
w h i l e [ mouse−down ? ]
[ ask p a t c h −a t mouse−x c o r mouse−y c o r [ m o r t C e l l ] ]
end
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
25 / 29
Les automates cellulaires
Art cellulaire
Art Cellulaire
Automate cellulaire à 1 dimension
L’art cellulaire se base sur un automate cellulaire à une
dimension : une ligne
Le temps est représenté par la seconde dimension :
la ligne i + 1 correspond à la ligne i au temps t + 1
Pour une cellule, selon son état et l’état de ses deux voisines,
16 règles de passage possibles.
Dans : OOO, OOI, OIO, OII, IOO, IOI, IIO, III
La cellule centrale devient active (I) ou inactive (O)
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
26 / 29
Les automates cellulaires
Art cellulaire
Art Cellulaire
Automate cellulaire à 1 dimension
L’art cellulaire se base sur un automate cellulaire à une
dimension : une ligne
Le temps est représenté par la seconde dimension :
la ligne i + 1 correspond à la ligne i au temps t + 1
Pour une cellule, selon son état et l’état de ses deux voisines,
16 règles de passage possibles.
Dans : OOO, OOI, OIO, OII, IOO, IOI, IIO, III
La cellule centrale devient active (I) ou inactive (O)
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
26 / 29
Les automates cellulaires
Art cellulaire
Art Cellulaire
Automate cellulaire à 1 dimension
L’art cellulaire se base sur un automate cellulaire à une
dimension : une ligne
Le temps est représenté par la seconde dimension :
la ligne i + 1 correspond à la ligne i au temps t + 1
Pour une cellule, selon son état et l’état de ses deux voisines,
16 règles de passage possibles.
Dans : OOO, OOI, OIO, OII, IOO, IOI, IIO, III
La cellule centrale devient active (I) ou inactive (O)
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
26 / 29
Les automates cellulaires
Art cellulaire
Art Cellulaire
Automate cellulaire à 1 dimension
L’art cellulaire se base sur un automate cellulaire à une
dimension : une ligne
Le temps est représenté par la seconde dimension :
la ligne i + 1 correspond à la ligne i au temps t + 1
Pour une cellule, selon son état et l’état de ses deux voisines,
16 règles de passage possibles.
Dans : OOO, OOI, OIO, OII, IOO, IOI, IIO, III
La cellule centrale devient active (I) ou inactive (O)
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
26 / 29
Les automates cellulaires
Art cellulaire
Art Cellulaire : Exemple monochrome
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
27 / 29
Les automates cellulaires
Art cellulaire
Art Cellulaire coloré
Automate cellulaire à 1 dimension coloré
Il est possible d’introduire la couleur :
La prochaine couleur d’une cellule dépend sa couleur actuelle
et de celles de ses voisines.
Introduction d’une variable de couleur C dans chaque cellule
et calcul des composantes Rouge, V erte et Bleue.
Exemple, avec des constantes et équations arbitraires :
Ci ← (0, 2 × Ci−1 + 0, 3 × Ci + 0, 6 × Ci+1 ) mod 100
Ri ← Ci × sin(t × π/480)
Vi ← (100 − Ci ) × sin(t × π/480)
Bi ← 90 − 0, 8 × Ci
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
28 / 29
Les automates cellulaires
Art cellulaire
Art Cellulaire coloré
Automate cellulaire à 1 dimension coloré
Il est possible d’introduire la couleur :
La prochaine couleur d’une cellule dépend sa couleur actuelle
et de celles de ses voisines.
Introduction d’une variable de couleur C dans chaque cellule
et calcul des composantes Rouge, V erte et Bleue.
Exemple, avec des constantes et équations arbitraires :
Ci ← (0, 2 × Ci−1 + 0, 3 × Ci + 0, 6 × Ci+1 ) mod 100
Ri ← Ci × sin(t × π/480)
Vi ← (100 − Ci ) × sin(t × π/480)
Bi ← 90 − 0, 8 × Ci
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
28 / 29
Les automates cellulaires
Art cellulaire
Art Cellulaire coloré
Automate cellulaire à 1 dimension coloré
Il est possible d’introduire la couleur :
La prochaine couleur d’une cellule dépend sa couleur actuelle
et de celles de ses voisines.
Introduction d’une variable de couleur C dans chaque cellule
et calcul des composantes Rouge, V erte et Bleue.
Exemple, avec des constantes et équations arbitraires :
Ci ← (0, 2 × Ci−1 + 0, 3 × Ci + 0, 6 × Ci+1 ) mod 100
Ri ← Ci × sin(t × π/480)
Vi ← (100 − Ci ) × sin(t × π/480)
Bi ← 90 − 0, 8 × Ci
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
28 / 29
Les automates cellulaires
Art cellulaire
Art Cellulaire : Exemple coloré
E. ADAM
University of Valenciennes
La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH
29 / 29
Téléchargement