TP - IA54 - Boids

Transcription

TP - IA54 - Boids
IA54 - TP
Systèmes multi-agents réactifs
Les Boids de Reynolds
Nicolas Gaud et Franck Gechter
6 novembre 2006
1
Introduction
Ce travaux pratique a pour objectif de vous faire développer une simulation
multi-agents de Boids inspirée du modèle proposé par Reynolds en 19871 .
Cette simulation sera développée en Java et à l’aide de la plate-forme SMA
MadKit 2 .
Un code source vous est fournit avec ce document, il contient les éléments
nécessaire aux développement de cette simulation :
– les différentes classes nécessaire ;
– le projet Eclipse correspondant ;
– les éléments de code à compléter ont été ajoutés à la TODO list du projet,
se reporter à la vue Task de Eclipse.
Tâche à réaliser :
– Fournir le modèle de la simulation.
– Compléter le code de l’implementation.
2
Rappel de cours sur les boids
Trois comportements sont à la base du comportement global d’un boid :
1 http://www.red3d.com/cwr/boids/
2 http://www.madkit.org/
1
La séparation (cf. fig 1) : L’évitement des autres boids (choix d’une force en
1
).
R2
L’alignement (cf. fig 2) : S’aligner avec ses partenaires et adapter sa vitesse,
vecteur vitesse moyen du groupe.
La cohesion (cf. fig 3) : Rester proche de la position moyenne du groupe,
barycentre du groupe.
Un autre comportement de base consiste à éviter les obstacles de l’environnement, il vous est directement fournit.
Fig. 1 – Comportement de séparation du boid
Fig. 2 – Comportement d’alignement du boid
Fig. 3 – Comportement de cohésion du boid
3
3.1
Modélisation organisation de la simulation boids
Modélisation : L’organisation Boid
La figure 4 décrit l’organisation utilisée dans cette simulation et son agentification.
Cette organisation définit les 3 rôles suivant :
Boid : le comportement associé à un boid
2
Environnement : l’environnement de la simulation en charge de fournir les
perceptions aux boids et de calculer le résultat de chaque pas de simulation.
Scheduler : En charge de l’ordonnancement de l’exécution des boids.
3.2
Agentification
Nous disposons dans MadKit de deux grandes catégories d’agent :
AbstractAgent : Agent léger ou non « threadé », requiert l’utilisation d’activateurs
(politique d’exécution) et d’au moins un scheduler.
Agent : Agent lourd ou « threadé ».
Nous allons utilisé conjointement ces deux types architectures. L’environnement et le scheduler seront des agents lourds. Il devront donc se synchroniser
entre eux. Les boids seront des agents légers dont l’ordonnancement sera géré
par le scheduler.
Fig. 4 – Diagramme RIO de l’organisation Boid et son agentification
4
Questions
Ce travaux pratiques vient compléter le TD sur les SMA réactifs : Boids,
Proies et Prédateurs.
– Donnez une description de l’architecture d’un boids (Perception, propriétés,. . .).
– Décrivez le comportement d’un boid ainsi que les trois comportements à
sa base (mise en équation) : séparation, alignement, cohésion.
– Décrivez la structure globale et complétez l’implementation de la simulation proposée.
3