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 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
Automate cellulaire Les automates cellulaires Présentation des automates cellulaires 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
Automate cellulaire Les automates cellulaires Présentation des automates cellulaires 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
Automate cellulaire Les automates cellulaires Présentation des automates cellulaires 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
Jeu de la Vie Les automates cellulaires Le jeu de la Vie Définition du jeu de la Vie (Conway1969) 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
Jeu de la Vie Les automates cellulaires Le jeu de la Vie Définition du jeu de la Vie (Conway1969) 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
Jeu de la Vie Les automates cellulaires Le jeu de la Vie Définition du jeu de la Vie (Conway1969) 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
Jeu de la Vie Les automates cellulaires Le jeu de la Vie Définition du jeu de la Vie (Conway1969) 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
Jeu de la Vie Les automates cellulaires Le jeu de la Vie Définition du jeu de la Vie (Conway1969) 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
Jeu de la Vie : Exemple Le jeu de la Vie E. ADAM University of Valenciennes La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH 9 / 29
Jeu de la Vie : Programmation 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
Jeu de la Vie : Programmation 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
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
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
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
Programmation Java du jeu de la Vie 2/3 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 vivante ; / 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 / s t a t i c f i n a l i n t s o u s P o p u l a t i o n = 1 ; / 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 / s t a t i c f i n a l i n t s u r P o p u l a t i o n = 4 ; / s e u i l minimum à p a r t i r d u q u e l 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 m i n P o p R e g e n e r a t r i c e = 3 ; / s e u i l maximum à p a r t i r d u q u e l 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 m a x P o pregeneratrice = 3 ; / r é f é r e n c e à l a g r i l l e des c e l l u l e / C e l l u l e [ ] [ ] g r i l l e ; C e l l u l e (){ } C e l l u l e ( C e l l u l e [ ] [ ] g r i l l e, i n t x, i n t y, / coordonnee de l a c e l l u l e dans l a g r i l l eboolean / v i v a n t e ) { } i n t x, y ; / d é t e r m i n e l e p r o c h a i n é t a t de l a c e l l u l e en f o n c t i o n des c e l l u l e s v o i s i n e s / v o i d e v o l u e r ( ) { } / surcharge de clone, 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 c l o n e ( ) { O b ject o = n u l l ; t r y { o = s u p e r. c l o n e ( ) ; } catch ( CloneNotSupportedException e ) { System. e r r. p r i n t l n ( e ) ; } r e t u r n o ; } } E. ADAM University of Valenciennes La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH 12 / 29
Programmation Java du jeu de la Vie 3/3 c l a s s TableauGraphique extends JFrame { / g r i l l e a l i n s t a n t t / C e l l u l e [ ] [ ] g r i l l e ; / 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 mortes 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 (){} / g r i l l e a l i n s t a n t t 1 / C e l l u l e [ ] [ ] g r i l l e A n c i e n n e ; / t a i l l e de l a g r i l l e / i n t 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 / i n t n b C e l l u l e s I n i t i a l e s = 1 0 ; / zone 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 / double tempo = 0 ; / p l a c e au h a s a r d des c e l l u l e s v i v a n t e s dans l e s g r i l l e s / v o i d i n i t H a s a r d (){} / d e s s i n de l a g r i l l e e t des c e l l u l e s / v o i d d e s s i n G r i l l e ( Graphics2D g2d ) {} / c o p i e l a g r i l l e a l i n s t a n t t dans 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, double 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 / zone de d e s s i n,... Appel 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
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
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
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
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
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
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
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
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 patches own [ v i v a n t e? v o i s i n e s V i v a n t e s ] ; ; 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 chance 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 100.0 < 3 5. 0 [ n a i s s a n c e C e l l ] [ 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 16 / 29
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 s e t v i v a n t e? t r u e s e t p c o l o r c o u l e u r C e l l end ; ; mort > c o u l e u r du fond to m o r t C e l l s e t v i v a n t e? f a l s e s e t p c o l o r c o u l e u r F o n d end E. ADAM University of Valenciennes La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH 17 / 29
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 end ; ; demande aux c e l l u l e s de compter 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 [ s e t 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 [ i f e l s e v o i s i n e s V i v a n t e s = 3 [ n a i s s a n c e C e l l ] [ i f v o i s i n e s V i v a n t e s!= 2 [ m o r t C e l l ] ] ] E. ADAM University of Valenciennes La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH 18 / 29
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 34 2 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
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 34 2 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
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
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
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
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
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
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
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
Tutorial NetLogo : Jeu de la Vie 4/7 Gestion des couleurs par glisseurs 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
Tutorial NetLogo : Jeu de la Vie 4/7 Gestion des couleurs par glisseurs 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
Tutorial NetLogo : Jeu de la Vie 4/7 Gestion des couleurs par glisseurs 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
Tutorial NetLogo : Jeu de la Vie 4/7 Gestion des couleurs par glisseurs 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
Tutorial NetLogo : Jeu de la Vie 5/7 Gestion des couleurs par glisseurs 2/2 Créer un bouton nommé recolorer associé aux cellules ( Patches ) Associer le bouton au code suivant : i f e l s e v i v a n t e? [ s e t p c o l o r c o u l e u r C e l l ] [ s e t p c o l o r c o u l e u r F o n d ] E. ADAM University of Valenciennes La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH 23 / 29
Tutorial NetLogo : Jeu de la Vie 5/7 Gestion des couleurs par glisseurs 2/2 Créer un bouton nommé recolorer associé aux cellules ( Patches ) Associer le bouton au code suivant : i f e l s e v i v a n t e? [ s e t p c o l o r c o u l e u r C e l l ] [ s e t p c o l o r c o u l e u r F o n d ] E. ADAM University of Valenciennes La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH 23 / 29
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 : ( count p a t c h e s with [ v i v a n t e? ] / count 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
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 : ( count p a t c h e s with [ v i v a n t e? ] / count 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
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 : ( count p a t c h e s with [ v i v a n t e? ] / count 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
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 : ( count p a t c h e s with [ v i v a n t e? ] / count 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
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 avec des c e l l u l e s mortes 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 par 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 patch at 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 par 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 patch at 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
Art Cellulaire Les automates cellulaires 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
Art Cellulaire Les automates cellulaires 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
Art Cellulaire Les automates cellulaires 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
Art Cellulaire Les automates cellulaires 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
Art cellulaire Art Cellulaire : Exemple monochrome E. ADAM University of Valenciennes La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH 27 / 29
Art Cellulaire coloré Les automates cellulaires Art cellulaire 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 : C i (0, 2 C i 1 + 0, 3 C i + 0, 6 C i+1 ) mod 100 R i C i sin(t π/480) V i (100 C i ) sin(t π/480) B i 90 0, 8 C i E. ADAM University of Valenciennes La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH 28 / 29
Art Cellulaire coloré Les automates cellulaires Art cellulaire 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 : C i (0, 2 C i 1 + 0, 3 C i + 0, 6 C i+1 ) mod 100 R i C i sin(t π/480) V i (100 C i ) sin(t π/480) B i 90 0, 8 C i E. ADAM University of Valenciennes La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH 28 / 29
Art Cellulaire coloré Les automates cellulaires Art cellulaire 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 : C i (0, 2 C i 1 + 0, 3 C i + 0, 6 C i+1 ) mod 100 R i C i sin(t π/480) V i (100 C i ) sin(t π/480) B i 90 0, 8 C i E. ADAM University of Valenciennes La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH 28 / 29
Art Cellulaire : Exemple coloré Art cellulaire E. ADAM University of Valenciennes La Programmation Orientée Agent Les Agents RéactifsUVHC/ISTV-LAMIH 29 / 29