Simulation d’un banc de poissons à l’aide de règles locales simples : séparation, alignement et cohésion.
Les poissons apparaissent dynamiquement dans l’environnement selon les paramètres de la simulation.
Un mode ralenti permet d’observer plus facilement les comportements du banc et les décisions de l’agent.
Le joueur peut contrôler un poisson directement.
Affichage d’informations de débogage, vecteurs, ce qui permet de mieux comprendre le comportement des agents.
Les paramètres de simulation peuvent être modifiés pendant l’exécution pour observer leur impact sur le comportement collectif.
Ajout de plusieurs plans de fond défilant à des vitesses différentes pour donner de la profondeur à la scène.
Affichage des poissons de manière procédurale.
Représentation visuelle du courant marin pour enrichir le décor les poissons qui passent dedans se font alors emporter.
Ajout d’éléments de décor animés pour rendre l’environnement plus vivant et plus crédible.
Évolution visuelle des poissons au cours du temps afin de renforcer l’aspect organique.
- Vecteur opposé à la direction moyenne des voisins proches afin d’éviter les collisions.
- Vecteur correspondant à la direction moyenne des voisins afin de suivre le mouvement global du banc.
- Vecteur orienté vers le centre des voisins proches afin de rester groupé avec le banc.
- Vecteur opposé au mur lorsqu’un poisson s’en approche.
- Vecteur de fuite, vecteur opposé à la direction vers le danger.
- Vecteur orienté vers le point d’intérêt le plus proche (ex. : nourriture).
REINFORCE est une méthode d’apprentissage par renforcement basée sur les gradients de politique. L’agent observe un état s, choisit une action a, puis met à jour sa politique en fonction de la récompense obtenue.
s : état observé
a : action choisie
θ : paramètres du modèle
Au début nous voulions faire le Reinforce sur les trois cercles de perception. (séparation,Alignement,cohésion)
Finalement nous le faisons sur 3 paramètres : l'intérêt, la peur et la bordure.
Avant l’apprentissage, les comportements reposaient uniquement sur les règles des boids et sur des comportements définis à la main, les poissons n'allaient pas forcément vers la nourriture.
Après entraînement, l’agent apprend à mieux exploiter ses perceptions pour se déplacer vers la nourriture la plus proche.
Le parallélisme permet de séparer plusieurs tâches coûteuses du programme : Il est utilisé avec Reinforce afin d'avoir une meilleure estimation du theta.
- Simulation / logique des boids
- Rendu SDL et interface
- Apprentissage par renforcement
- réunions régulières pour débattre des structures de données, de l’architecture du projet et des choix de modélisation.
- Git pour le versionnement
- Un diagramme de Gantt pour planifier les étapes
- Un cahier de suivi / auto-évaluation pour garder une trace du travail réalisé
- Boids et systèmes multi-agents
- Comportements collectifs
- REINFORCE
- Banc de poissons crédible
- Apprentissage de certaines décisions
- Simulation claire et visualisable
- Émergence à partir de règles simples
- Importance de la récompense en apprentissage par renforcement
- Fort lien entre IA et ingénierie logicielle
- Apprentissage plus robuste
- Simulation multi-agent plus poussée