🐜 Colonie de Fourmis
Observez l'optimisation par colonie de fourmis (ACO) résoudre le problème du plus court chemin. Les fourmis déposent des phéromones sur les meilleurs itinéraires ; l'évaporation efface les traces plus faibles. Intelligence stigmergique émergente en temps réel.
À propos de l'Optimisation par Colonie de Fourmis
L'Optimisation par Colonie de Fourmis (ACO) est une métaheuristique probabiliste inspirée du comportement de recherche de nourriture des fourmis réelles, introduite par Marco Dorigo en 1992. Lorsque les fourmis cherchent de la nourriture, elles explorent d'abord au hasard, mais déposent un signal chimique appelé phéromone sur leurs traces. Les chemins plus courts sont parcourus plus fréquemment, donc la phéromone s'y accumule plus vite ; les autres fourmis suivent préférentiellement les traces de phéromone les plus fortes, créant une boucle de rétroaction positive qui converge vers le chemin le plus court. L'ACO a été appliqué avec succès au Problème du Voyageur de Commerce, au routage de véhicules, au routage réseau en télécommunications, et à l'optimisation du repliement des protéines.
La simulation place un ensemble de villes (nœuds) sur un canvas et libère une colonie de fourmis virtuelles qui construisent des circuits de manière probabiliste, guidées à la fois par la force de la phéromone et l'inverse de la distance de l'arête. Vous pouvez ajuster le nombre de fourmis, le taux d'évaporation de la phéromone (ρ), l'importance relative de la phéromone (α) par rapport à la distance (β), et observer comment ces paramètres arbitrent entre la vitesse de convergence et le risque de rester bloqué dans un optimum local.
Questions Fréquentes
Comment les fourmis choisissent-elles quelle arête emprunter ?
À chaque nœud, une fourmi sélectionne la prochaine ville de manière probabiliste à l'aide de la formule Pᵢⱼ = (τᵢⱼ𝑚 ⋅ ηᵢⱼᵇ) / Σ(τ𝕪𝓂 ⋅ η𝕪𝓂), où τᵢⱼ est le niveau de phéromone sur l'arête (i,j), ηᵢⱼ = 1/dᵢⱼ est l'heuristique (distance inverse), α contrôle l'influence de la phéromone, et β contrôle l'influence de la distance. Fixer α=0 donne un algorithme glouton du plus proche voisin ; fixer β=0 repose entièrement sur la phéromone accumulée sans tenir compte de la distance.
Qu'est-ce que l'évaporation des phéromones et pourquoi est-elle importante ?
Après chaque itération, la phéromone sur toutes les arêtes est réduite d'un facteur (1−ρ), où ρ est le taux d'évaporation, typiquement compris entre 0,01 et 0,5. Sans évaporation, l'algorithme se figerait sur la première solution correcte trouvée et n'explorerait jamais d'alternatives, car la phéromone ne ferait que s'accumuler sans jamais diminuer. L'évaporation agit comme un mécanisme d'oubli qui empêche la convergence prématurée et permet à la colonie de s'adapter si les conditions changent — un peu comme la phéromone réelle qui se dégrade au soleil et au vent.
Comment l'ACO se compare-t-il aux algorithmes génétiques ?
Les deux sont des métaheuristiques basées sur une population qui évitent de rester piégées dans des optima locaux grâce à l'exploration. L'ACO construit les solutions de manière incrémentale et partage l'information via des traces de phéromone (une forme de communication indirecte appelée stigmergie), tandis que les algorithmes génétiques opèrent sur des solutions candidates complètes et partagent l'information via des opérateurs de croisement et de mutation. L'ACO tend à mieux performer sur les problèmes basés sur des chemins (routage, séquencement), tandis que les algorithmes génétiques sont plus flexibles pour les problèmes ayant des structures de solution non séquentielles.
Qu'est-ce que le Problème du Voyageur de Commerce ?
Le Problème du Voyageur de Commerce (PVC) demande : étant donné N villes, quel est le circuit fermé le plus court qui visite chaque ville exactement une fois et revient au point de départ ? Il est NP-difficile, ce qui signifie qu'aucun algorithme exact en temps polynomial connu n'existe pour un grand N ; le nombre de circuits possibles croît comme (N−1)!/2. Pour 20 villes, cela représente plus de 60 000 milliards de circuits. L'ACO trouve généralement des solutions quasi optimales bien plus rapidement qu'une recherche exhaustive, ce qui le rend pratique pour des problèmes logistiques réels comportant des centaines ou des milliers de villes.
Que contrôle le taux d'évaporation ρ ?
Un taux d'évaporation élevé (ρ proche de 1) signifie que la phéromone se dissipe rapidement, gardant toutes les arêtes presque également attractives et encourageant une large exploration mais ralentissant la convergence. Un taux faible (ρ proche de 0) laisse la phéromone s'accumuler sur de nombreuses itérations, renforçant les meilleurs chemins trouvés tôt mais risquant la stagnation. En pratique, des valeurs de 0,1 à 0,3 tendent à bien équilibrer exploration et exploitation pour des instances de PVC de taille moyenne.
Quel est le rôle des paramètres α et β ?
α est l'exposant qui contrôle avec quelle force les fourmis favorisent les arêtes à forte phéromone ; β contrôle avec quelle force elles favorisent les arêtes courtes (coût faible). Avec β=5 et α=1 (valeurs typiques de l'article original de Dorigo), l'heuristique de distance domine au début lorsque la phéromone est uniforme, donnant des circuits initiaux raisonnables, tandis que la phéromone déplace progressivement l'équilibre. Fixer α trop haut fait reposer l'algorithme trop lourdement sur des dépôts de phéromone précoces, potentiellement médiocres.
L'ACO peut-il résoudre d'autres problèmes que le routage ?
Oui — l'ACO a été adapté à la coloration de graphes, à l'ordonnancement d'ateliers, à la prédiction de structure des protéines, et même à l'optimisation continue (ACOR). Dans le routage réseau, le routage basé sur les fourmis (ABR) envoie des « paquets éclaireurs » qui sondent les chemins et déposent une phéromone numérique, redirigeant dynamiquement le trafic autour des congestions. Cisco a mis en œuvre des variantes de cette idée dans des algorithmes de routage adaptatif pour les réseaux de télécommunications.
Qu'est-ce que la stigmergie ?
La stigmergie est une coordination indirecte par modification de l'environnement — les agents communiquent en modifiant l'environnement partagé plutôt que par signalisation directe. Les traces de phéromone des fourmis en sont l'exemple canonique : chaque fourmi répond aux traces laissées par les fourmis précédentes, et sa propre trace influence les fourmis futures, sans contrôleur central. La stigmergie est aussi observée dans la construction des termitières, la construction des nids de guêpes, et a inspiré des architectures d'informatique distribuée.
Quelles sont les limites de l'ACO ?
L'ACO peut souffrir de stagnation, où toutes les fourmis convergent vers un circuit sous-optimal et la diversité de phéromone s'effondre. Il nécessite aussi un réglage minutieux des paramètres (α, β, ρ, nombre de fourmis), et sa vitesse de convergence est généralement plus lente que celle d'algorithmes spécialisés pour des problèmes bien étudiés comme le PVC. Les systèmes ACO hybrides qui combinent la recherche par fourmis avec des heuristiques d'amélioration locale (mouvements 2-opt ou 3-opt) performent généralement bien mieux que l'ACO pur sur de grandes instances.
Combien de fourmis faut-il utiliser ?
Une règle empirique courante consiste à utiliser une fourmi par ville. Davantage de fourmis augmentent la diversité des solutions et réduisent le risque de convergence prématurée, mais augmentent aussi le calcul par itération. Les recherches ont montré que pour le PVC, 10 à 50 fourmis donnent souvent de bons résultats sur des instances allant jusqu'à 200 villes, tandis que de très grandes instances peuvent bénéficier de centaines de fourmis avec un calcul parallèle. Le nombre idéal interagit avec ρ : une évaporation plus rapide peut compenser un nombre de fourmis plus faible en maintenant la diversité.
Ajustez le poids de la phéromone, l'évaporation et la force de dépôt pour observer les fourmis converger vers le plus court chemin dans une exécution d'optimisation par colonie de fourmis.
3D · Three.js / WebGL renderer · 60 IPS cible · fonctionne entièrement côté client, sans installation