Une nuée sans chef d'orchestre
Ce que vous voyez à l'écran n'est piloté par personne. Aucun boid ne connaît la forme du banc, aucune ligne de code ne dessine de trajectoire d'ensemble. Chaque agent ne perçoit que ses proches voisins et réagit à eux, image après image. La nuée — ce mouvement fluide et cohérent — n'est écrite nulle part : elle émerge de règles purement locales. C'est le modèle des boids de Craig Reynolds (1986), et c'est un excellent condensé de ce qu'est un système multi-agents.
Trois règles, appliquées au voisinage
Chaque boid n'obéit qu'à trois pilotages, calculés à partir des seuls agents situés dans son rayon de perception : la séparation (s'écarter des voisins trop proches pour éviter la collision), l'alignement (adopter le cap moyen du voisinage) et la cohésion (se diriger vers le centre de gravité local du groupe). Je pondère ces trois forces, je les additionne, puis je borne l'accélération et la vitesse résultantes. Rien de plus. Toute la richesse du comportement tient dans le dosage de ces trois poussées.
Du local au global : l'émergence
L'intérêt de la démonstration est là : à partir de règles individuelles triviales naît un comportement collectif que personne n'a spécifié. Les boids forment des bancs, se scindent devant un obstacle, se recomposent, ondulent. C'est le principe de l'émergence — le tout fait davantage que la somme des parties. Approchez la souris : elle attire la nuée ; maintenez le bouton et elle la repousse. Vous perturbez un agent, jamais le groupe, et pourtant tout le banc réagit.
Le vrai enjeu technique : trouver ses voisins
Écrire les trois règles est simple. Le point dur, c'est la performance du calcul de voisinage. Naïvement, savoir « qui est proche de qui » demande de comparer chaque boid à tous les autres : un coût en O(n²) qui explose dès quelques centaines d'agents. J'utilise donc une grille spatiale : je range chaque boid dans une case selon sa position, et je ne le compare qu'aux agents des neuf cases voisines. Le calcul redevient linéaire, et la simulation tient ses images par seconde même à plusieurs centaines de boids. Les bords sont toriques (sortir d'un côté fait réapparaître de l'autre), ce qui impose de mesurer les distances « au plus court » à travers ces bords.
Pourquoi cette démo compte pour vos projets
Les systèmes multi-agents dépassent de loin le folklore graphique : flux logistiques, simulation de foules, moteurs de recommandation, ordonnancement, jumeaux numériques. Derrière ce banc d'oiseaux, il y a exactement les questions que je traite sur des projets sérieux : modéliser un comportement complexe avec des règles simples et maîtrisables, et surtout choisir la bonne structure de données pour que le calcul reste rapide quand le volume grandit. Un algorithme juste mais en O(n²) ne passe pas à l'échelle ; c'est ce genre d'arbitrage — clarté du modèle d'un côté, performance mesurée de l'autre — qui fait la différence entre une maquette et un système qui tient en production.