Optimisation par colonies de fourmis Ant colony Optimization Nicolas Fayolle Guillaume Martinez Nicolas Seydoux 5IL- OC Présentation: 1. 2. 3. 4. 5. Introduction a. Métaheuristique b. Pourquoi les fourmis? Principe général a. Comportement des fourmis b. Fourmis réelles et virtuelles c. Principe de l’algorithme d. Intensification et diversification Une illustration : Voyageur de commerce a. Transformation de notre problème en TSP b. Résolution du TSP obtenu Performances & Compléxité Améliorations I - Introduction 1. Métaheuristique: ➢ Algorithme d’optimisation ➢ Algorithme itératif qui progresse vers un optimum global. ➢ Tente d’apprendre les caractéristiques d’un problème afin de trouver une approximation de la meilleure solution I - Introduction 2. Pourquoi les fourmis? ➢ ➢ ➢ ➢ ➢ Comportement collectif Comportement indépendant: hétérarchie Chaque fourmi est aidée par la communauté Chaque fourmi aide au bon fonctionnement Pistes de phéromones II - Principe général 1. Comportement des fourmis II - Principe général 2. Fourmis réelles et virtuelles Points communs ➢ ➢ ➢ ➢ ➢ Chacune trouve une solution Marquage de la piste avec des phéromones Évaporation des phéromones Recherche du plus court chemin Prise de décision aléatoires Différences ➢ ➢ ➢ ➢ ➢ Monde non-continu Mémoire (parcours, performances, ...) Quantité de phéromones proportionnelle à la qualité de la solution Mise à jour à la fin du parcours Retour en arrière II - Principe général 3. Principe de l’algorithme Pas de phéromone = Choix aléatoire ➢ ➢ Trouver une solution en utilisant les critères de choix: visibilité, quantité de phéromones, aléatoire Mise à jour des quantité de phéromones (dépôt et évaporation) Critère de d’arrêt (nb d’itérations) Initialisation Itération Arrêt II - Principe général 4. Intensification et diversification ❖ Paramètre d’intensification: Suivre la piste de phéromones ❖ Paramètre de diversification: Prendre une direction aléatoire III - Voyageur de commerce TSP Trouver un circuit hamiltonien de longueur minimale dans un graphe G=(X,U) 4 1 1 2 3 2 3 4 1 4 2 5 4 2 3 III - Voyageur de commerce Conventions et implémentation m = nombre total de fourmis Ti,j(t) = le taux de phéromones sur l’arc i, j à l’instant t n = nombre de ville (soit |X| ) Vi,j = 1/Di,j = la visibilité d’une ville j quand on est sur une ville i Lk = distance parcouru par la foumi k Chaque fourmi mémorise l’ensemble des villes parcourues mise à jour des phéromones se fera à chaque fin de cycle (circuit hamiltonien) III - Voyageur de commerce Initialisation m = 5 et Ti,j(0) = 0 p = 0.5 = coefficient d’évaporation des phéromones ● ● ● 1 fourmi ⇔ 1 ville parcours aléatoire du graphe on stocke les valeurs des distances A=13, B=18, C=14, D=12, E=12 Q = 100 = quantité de phéromones disponibles pour chaque fourmis a = 1 = coefficient d’importance des phéromones b = 1 = coefficient d’importance de la visibilité 1 1 2 3 2 3 4 1 4 2 5 4 4 2 3 III - Voyageur de commerce Choix de transition Pour déterminer sur quelle ville j une fourmi k présente en i va aller on utilise la formule: p= (Ti,j)^a * (Vi,j)^b (Ti,l)^a*(Vi,l)^b avec l appartenant à l’ ensemble des villes non parcouru p(A1→2)(1) = 23.16 * 1 / 40.06 p(A1→3)(1) = 21.58 * 0.25 / 40.06 p(A1→4)(1) = 12.7 *0.25/ 40.06 p(A1→5)(1) = 16.66 * 0.5 / 40.06 = 0.58 ✓ = 0.13 = 0.08 = 0.21 p(A2→3)(1) = 8.33 * 0.5 / 18.37 p(A2→4)(1) = 29.91 * 0.33 / 18.37 p(A2→5)(1) = 12.7 *0.33/ 18.37 = 0.23 = 0.54 ✓ = 0.23 p(A4→3)(1) = 15.47 * 0.5 / 23.755 p(A4→5)(1) = 16.02 * 1 / 23.755 = 0.33 ✓ = 0.67 A: 1→ 2 → 4 → 3 → 5 → 1 = 12 III - Voyageur de commerce mise à jour des phéromones fin de cycle: Ti,j(t+n) = p * Ti,j(t) + ∆Ti,j(t) ∆Ti,j(t) = ∆Tki,j(t) avec Tk taux de phéromones déposés par une fourmi ∆Tai,j(1) = 100/10 = 10 ∆Tbi,j(1) = 100/11 = 9.09 ∆Tci,j(1) = 100/10 = 10 ∆Tdi,j(1) = 100/8 = 12.5 ∆Tei,j(1) = 100/12 = 8.33 ∆T1,2(1) = 49.92 ∆Tki,j(t) = Q/Lk T1,2(2) = 0.5 * 23.16 + 49.92 = 61.5 III - Voyageur de commerce Fin de cycle et Résolution fin de cycle: ● MAJ du minimum ○ si convergence ⇒ arrêt ○ sinon RAZ mémoire et nouveau cycle Arrêt de l’algorithme: ● nombre de cycle ● stagnation de la solution l’algorithme converge vite vers : 1→ 2 → 3 → 4 → 5 → 1 IV - Performances ❖ Version originale ➢ ➢ Performances correctes sur des petites instances du TSP Dépassée par les solveurs dédiés sur les grosses instances ❖ Évolutions ➢ ➢ ➢ Grosses améliorations des performances sur les problèmes statiques Avancées dans le domaine des algorithmes dynamiques Adaptées aux problèmes où la recherche locale est peu efficaces V - Améliorations ❖ Équilibrer exploitation et exploration ➢ Favoriser l’émergence de bonnes solutions ➢ Empêcher la convergence prématurée ❖ Modifier la gestion des phéromones ➢ on-line/off-line ➢ Coefficients multiplicateurs ➢ Sélection V.1 - Élitisme ❖ Stratégie “off-line” ❖ Axée sur l’exploitation ❖ Mise en avant du meilleur circuit ➢ IB ou BS V.1.a - ASrank ❖ Mise à jour sélective des phéromones ➢ ➢ Seules les meilleures fourmis laissent leur trace L’importance de la mise à jour dépend du classement de la solution de la fourmi V.1.b MMAS : Max-Min AS ❖ Introduction d’une borne sur le marquage ➢ Quantité de phéromone sur un élément comprise entre τmin et τmax ➢ Explicitation de la borne min des autres algorithmes ➢ La borne supérieure évolue avec l’exploration ❖ Évolution de la règle d’élitisme ➢ IB au début ➢ BS à une fréquence croissante ❖ Initialisation du marquage à la borne max ➢ Favorise l’exploration initiale V.1.c ACS: AC System ❖ Accent sur l’exploitation ➢ ➢ Mise en avant de l’expérience passée Fort coefficient élitiste ❖ Choix pseudo-aléatoire proportionnel ➢ Choix potentiellement uniquement basé sur heuristique et phéromones ❖ Mise à jour dynamique des phéromones ➢ ➢ Consommation des phéromones par les fourmis Diversifie les chemins pour une itération V.2 - Recherche locale ❖ Approches complémentaires ➢ Affine les solutions trouvées par la métaheuristique ➢ Les algorithmes ACO tendent à produire des solutions grossières ➢ Celles-ci sont de très bonnes candidates pour lancer une recherche locale V.3 - Problèmes dynamiques ❖ AntNet Version:originale Algorithme de routage ➢ ➢ ➢ ➢ ➢ Marquage aux correctes Performances phéromones sur des pourpetites chaque instances arc de sadu valeur TSP pour chaque Dépassé par les solveurs dédiés sur les grosses instances sommet Évaluation du chemin en fonction du nombre de sauts, du débit des arcs empruntés et du trafic Pas de mise à jour off-line des phéromones Valeur heuristique pour un arc réévaluée à chaque passage Conclusion Ce qu’il faut retenir - Algorithme à population, itératif et à mémoire Choix aléatoire paramétrable entre exploration et exploitation Algorithme décentralisé adapté aux problèmes dynamique Couplable avec de la recherche locale Merci de votre attention Sources - Ant colony optimization theory: A survey [Marc Dorigo, Christian Blum] - 2005 A survey on optimization metaheuristics, [Ilhem Boussaïd, Julien Lepagnot, Patrick Siarry] 2012 The ant colony optimization metaheuristic : algorithms applications, and advances [Marc Dorigo] Optimisation par colonies de fourmis [Andrea Costanzo, Thé Van Luong, Guillaume Marill] 2006