Ministère de l’Enseignement Supérieur Et de la Recherche Scientifique Université des Sciences et de la Technologie d’Oran - Mohamed Boudiaf Faculté des Sciences - Département d’Informatique Le recuit simulé Module : Optimisation Avancée Master2 RFIA Présentée par : BENDAHOUA Sarah Professeur responsable : Mr BENYETTOU Mohamed 2012-2013 Recuit simulé Sommaire 1. Introduction…………………………………………………………….. 3 2. Historique………………………………………………......................... 4 3. Heuristiques et méta-heuristiques …………………………………..... 4 3.1. Les heuristiques………………………………………………….. 4 3.2. Les méta-heuristiques…………………………………………… 4 4. La méthode de descente………………………………………………... 4 5. Définition du recuit simulé……………………………………………. 5 6. Algorithmes……………………………………………………………... 5 6.1. L’algorithme de Metropolis…………………………………….. 5 6.2. L’algorithme du recuit simulé………………………………….. 6 6.3. L’état initial de l’algorithme……………………………………. 7 6.4. Principes généraux………………………………………………. 7 6.5. Paramètre de température……………………………………... 8 6.6. Schéma de refroidissement ………………………………............... 8 7. Exemple d’application…………………………………………............ 9 8. Domaine d’application………………………………………............... 10 9. Avantages et inconvénient…………………………………............... 10 9.1. Les avantages..………………………………………….............. 10 9.2. Les inconvénients……………………………………................ 11 10.Conclusion………………………………………………………........... 11 11.Bibliographie…………………………………………………….......... 12 2 Recuit simulé 1. Introduction : Les problèmes NP-complets d'optimisation combinatoire sont caractérisés par une complexité exponentielle ou factorielle, par conséquent ; il est impossible d'énumérer toutes les solutions possibles car cela dépasse la capacité de calcul de n'importe quel ordinateur. Il est donc très difficile de trouver la solution optimale. Les méthodes approchées ou heuristiques, sont bien adaptées à un couplage avec un modèle de simulation de flux et dans les cas ou le problème est complexe avec une très forte combinatoire. Elles présentent l'avantage d'un temps de calcul réduit mais ne donnent aucune information sur la qualité de la solution trouvée. Pour résoudre des problèmes difficiles (par exemple ceux qui présentent de nombreux extrema locaux pauvres), des techniques ont été conçues pour déterminer des solutions qui ne sont pas rigoureusement optimales, mais qui s’en approchent. Ces méthodes se basent généralement sur des phénomènes physiques, biologiques, socio-psychologiques ou font appel au hasard. Les domaines d’application sont vastes et s’étendent souvent bien au-delà des problèmes pour lesquels elles ont été initialement conçues. L’objectif principal est de recenser les méthodes d'optimisation algorithmiques susceptibles d'améliorer la recherche d'une solution optimale. En effet, comme on l'a vu lors des expérimentations pour des productions de type multiproduit, il semble être difficile de trouver par une relation quelconque une solution théorique qui satisfasse les critères. Nous allons donc plutôt nous diriger vers une approche algorithmique couplée à la simulation, afin d'optimiser le pilotage de la ligne de production. Les Métaheuristique sont le plus souvent des recherches locales modifiées pour éviter les minima locaux. Leur conception commence par l’étude d’une recherche locale classique (définition d’un voisinage, avec transformations simples), que l’on promeut ensuite en une méthode plus puissante si elle s’avère insuffisante. Il s’agit de méthodes très générales, dans lesquelles plusieurs composants doivent être précisés en fonction du problème à traiter. La méthode du recuit simulé, conçu pour chercher un optimum global parmi plusieurs minimas locaux. 3 Recuit simulé 2. Historique : La méthode de recuit simulé réalisées par Metropolis et al. (1953) pour simuler l'évolution de ce processus de recuit physique (Metropolis53). Elle a été mise au point par trois chercheurs de la société IBM. Kirkpatrick, C.D. Gelatt et M.P. Vecchi en 1983 au Etats-Unis, et indépendamment par V. Černy en 1985 en Slovaquie. L’utilisation pour la résolution des problèmes d'optimisation combinatoire est beaucoup plus récente. Le recuit simulé est la première méta-heuristique qui a été proposée. 3. Heuristiques et méta-heuristiques : 3.1. Les heuristiques : une heuristique est un algorithme qui fournit rapidement (en temps polynomial) une solution réalisable, pas nécessairement optimale, pour un problème d'optimisation NP-difficile. Une heuristique, ou méthode approximative, est donc le contraire d'un algorithme exact qui trouve une solution optimale pour un problème donné. 3.2. Les méta-heuristiques: Une métaheuristique est un algorithme d’optimisation visant à résoudre des problèmes d’optimisation difficile (souvent issus des domaines de la recherche opérationnelle, de l'ingénierie ou de l'intelligence artificielle) pour lesquels on ne connaît pas de méthode classique plus efficace. Les métaheuristiques sont généralement des algorithmes stochastiques itératifs, qui progressent vers un optimum global, c'est-à-dire l'extremum global d'une fonction, par échantillonnage d’une fonction objectif. Elles se comportent comme des algorithmes de recherche, tentant d’apprendre les caractéristiques d’un problème afin d’en trouver une approximation de la meilleure solution (d'une manière proche des algorithmes d'approximation). 4. La méthode de descente : La méthode de recherche locale la plus élémentaire est la méthode de descente. On peut la schématiser comme suit : Procédure descente_simple (solution initiale s) Répéter : Choisir s’ dans N(s) 4 Recuit simulé Si f(s’) < f(s) alors s ← s’ Jusqu’à ce que f(s’) ≥ f(s), s’ є S Fin. 5. Définition du recuit simulé: Le recuit simulé repose sur une analogie avec la métallurgie et le recuit des métaux : un métal refroidi trop vite présente de nombreux défauts qui correspondent à des excédents d'énergie interne. L'objectif du recuit est de minimiser ces excédents de façon à obtenir une configuration d'énergie minimale. Pour le réaliser, on réchauffe le métal ce qui a pour effet d'augmenter encore l'énergie interne, mais un réglage judicieux de la température de refroidissement permet de sortir de l'état initial et d'obtenir finalement une énergie interne plus faible. L'application de ce principe à l'optimisation est le suivant : Il est possible, contrairement à un algorithme de recherche locale, d'accepter une dégradation de la fonction objectif avec une certaine probabilité, sachant que cette dégradation pourra entraîner une amélioration ultérieurement. Cette méthode d’optimisation s’appuie sur les travaux de [Metropolis, 1953] qui permettent de décrire l’évolution de l’équilibre thermodynamique d’un système. Figure 2 : Recuit simulé. On accepte d’augmenter l’énergie avec la probabilité e-∆E/T, Où T est la température courante du système. 6. Algorithmes : 6.1. L’algorithme de Metropolis : Dans l'algorithme de Metropolis, on part d'une configuration donnée, et on lui fait subir une modification aléatoire. Si cette modification fait diminuer la fonction objectif (ou 5 Recuit simulé énergie du système), elle est directement acceptée ; Sinon, elle n’est pas acceptée qu’avec une probabilité égale à 𝐞𝐱𝐩(− ∆𝑬⁄𝑻) (avec E : énergie, et T : température), cette règle est appelé critère de Metropolis. 6.2. L’algorithme du recuit simulé : Le recuit engendrer simulé une applique séquence itérativement de l’algorithme configurations qui de tendent Metropolis, vers pour l'équilibre thermodynamique. L’énergie du système est représentée par un réel arbitraire T, la température. A partir d’une recherche locale quelconque pour un problème, on obtient une méthode de recuit comme suit : 1) Choisir une température de départ T et une solution initiale s=s0 ; 2) générer une solution aléatoire dans le voisinage de la solution actuelle s0 → s’, s’ є V(s), au lieu de chercher la meilleur ou la première solution voisine améliorante comme dans une recherche locale classique ; 3) On calcule la variation de coût ∆ƒ = ƒ(s’) – ƒ(s0) ; 4) Si ∆ƒ ≤ 0, le coût diminue et on effectue la transformation améliorante comme dans une recherche locale (s 0 :=s’); 5) Si ∆ƒ > 0, le coût remonte, c’est un rebond, qu’on va pénaliser d’autre plus que la température est basse et que ∆ƒ est grand. Une fonction exponentielle a les propriétés désirées. On calcule une probabilité d’acceptation a = e -∆ƒ/T , puis on tire au sort p dans [0,1]. Si p ≤ a, la transformation est déclarée acceptée, bien qu’elle dégrade le coût, et on fait s 0 :=s’. Sinon, la transformation est rejetée : on garde s pour l’itération suivante. 6) Pour assurer la convergence (analogie de la balle qui rebondit de moins en moins), T est diminuée lentement à chaque itération, par exemple T :=k.T, k=0.999 par exemple. On peut aussi décroître T par paliers. Pour être efficace, un recuit doit diminuer T assez lentement, en plusieurs milliers ou dizaines de milliers d’itérations. Il dure en tout cas beaucoup plus longtemps qu’une recherche locale, puisque les transformations améliorante de cette dernière sont diluées parmi de nombreux rebonds. 6 Recuit simulé 7) On s’arrête quand T atteint un seuil fixe ε, proche de 0. Présentation de l’algorithme en pseudo-code (minimisation de f) : Début Engendrer la solution initiale s(0) Mini = s(0) Répéter Choix de s(i) є V(s(i)) Calcul de ∆d = f(s(i)) - f(Mini) Si ∆d < 0 Alors Mini = s(i) /* idem algorithme de la descente */ Sinon tirer p dans [0,1] suivant une distribution uniforme Si p ≤ e (-∆d/T) Alors Mini = s(i) Sinon s(i) est rejetée T = g(T) /* solution moins bonne */ /* avec g décroissante, par exemple T=0.9995 . T */ Jusqu’à ce que T proche de 0 Fin 6.3. Etat initial de l’algorithme : La solution initiale peut être prise au hasard dans l'espace des solutions possibles. À cette solution correspond une énergie initiale . Cette énergie est calculée en fonction du critère que l'on cherche à optimiser. Une température initiale élevée est également choisie. Ce choix est alors totalement arbitraire et va dépendre de la loi de décroissance utilisée. 6.4. Principes généraux : • L’idée est d’effectuer un mouvement selon une distribution de probabilité qui dépend de la qualité des différents voisins : – Les meilleurs voisins ont une probabilité plus élevée ; 7 Recuit simulé – Les moins bons ont une probabilité plus faible. • On utilise un paramètre, appelé la température (notée T) : – T élevée : tous les voisins ont à peu près la même probabilité d’être acceptés. – T faible : un mouvement qui dégrade la fonction de coût a une faible probabilité d’être choisi. – T=0 : aucune dégradation de la fonction de coût n’est acceptée. • La température varie au cours de la recherche : T est élevée au début, puis diminue et finit par tendre vers 0. 6.5. Paramètre de température : • Le paramètre T (température) est un réel positif. • La température permet de contrôler l’acceptation des dégradations : – Si T est grand, les dégradations sont acceptées avec une probabilité plus grande. – A la limite, quand T tend vers l’infini, tout voisin est systématiquement accepté. – Inversement, pour T=0, une dégradation n’est jamais acceptée. • La fonction qui spécifie l’évolution de la température est appelé le schéma de refroidissement. 6.6. Schéma de refroidissement : • La fonction qui spécifie l’évolution de la température est appelé le schéma de refroidissement (cooling schedule). • Dans le recuit simulé standard la température décroît par paliers. • Par exemple, on pourrait avoir trois paramètres : la température initiale, la longueur d’un palier (nombre d’itérations avant de changer la température) et le coefficient de décroissance (si décroissance géométrique). • On peut aussi utiliser d’autres schémas de refroidissement : – On peut faire décroître la température à chaque itération. – On utilise parfois une température constante (algorithme de Metropolis). – On peut utiliser des schémas plus complexes, dans lesquels la température peut parfois remonter. 8 Recuit simulé 7. Exemple d’application : La méthode la plus utilisée aujourd’hui est celle du « Recuit Simulé » Cette méthode, très populaire ces dernières années a permis de résoudre des problèmes très complexes du type « voyageur de commerce » où les méthodes déterministes sont rapidement piégées dans des minima locaux. L’algorithme va donc tenter de minimiser la longueur totale du chemin, en modifiant l’ordre des villes à parcourir. Le but est alors de trouver le circuit hamiltonien de coût minimal dans un graphe. L’énergie représentera la distance totale à parcourir, et un état du système représentera le chemin entre les villes. L’algorithme va donc tenter de minimiser la longueur totale du chemin, en modifiant l’ordre des villes à parcourir. Soit le graphe suivant représentant un ensemble de villes : Figure 3: Un ensemble de villes (nœuds) reliés entre eux par des routes (arcs). La solution la plus simple est de parcourir les villes dans l’ordre : Total=26 Figure 4: Une première solution (parcours suivant l'ordre des villes). Total=21 Figure 5: Le résultat donné par l’algorithme glouton (se délacer d’un sommet vers son plus 9 Recuit simulé proche voisin). Total=22 Figure 6: Le résultat obtenu en échangeant les sommets 2 et 3. Dans la Figure 6 : Le résultat obtenu en échangeant les sommets 2 et 3, la distance totale a augmenté. Pour une heuristique classique cette solution est rejetée car la distance doit être minimisée, mais le recuit simulé poura l’accepter si la température est encore élevée, et cette solution qui est « mauvaise » par rapport à la première va lui permettre de trouver une solution meilleure : Total=18 Figure 7: Le résultat obtenu en échangeant les sommets 5 et 2. En résumé : Le recuit simulé, en acceptant une mauvaise solution, à réussi à échapper au minima local et à obtenir une solution meilleure. 8. Domaine d’application : L’optimisation combinatoire (ordonnancement) la CAO (conception de circuits, placement de composants) Le traitement d'images (restitution d’images brouillées) Le routage des paquets dans les réseaux ; Le problème du voyageur de commerce ; le problème du sac à dos. ➥ Cette méthode est très utilisée dans les milieux industriels. 10 Recuit simulé 9. Avantages et Inconvénients : 9.1. Les avantage : Le principal avantage du Recuit simulé est donc de pouvoir sortir d'un minimum local, en fonction d'une probabilité d'acceptation liée à une fonction exponentielle, appelée transformation de Gibbs-Boltzmann. Facile à implémenter. Donne généralement de bonnes solutions par rapport aux algorithmes de recherche classiques. Peut être utilisé dans la plupart des problèmes d'optimisation. 9.2. Les inconvénients : Elle présente l'inconvénient de faire intervenir des paramètres intrinsèques au recuit simulé: la valeur initiale de la température et le coefficient de décroissance de la température. présente plusieurs modèles de recuit en fonction de ses différents paramètres. non-convergence vers l'optimum peut se rencontrer assez vite. L'impossibilité de savoir si la solution trouvée est optimale. Dégradation des performances pour les problèmes où il y a peu de minimas locaux (comparé avec les heuristiques classiques comme la descente du gradient par exemple). La difficulté de déterminer la température initiale. Très coûteuse en temps de calcul. 10. Conclusion : Nous avons vu que les heuristiques classiques n'étaient pas très satisfaisantes pour résoudre les problèmes d’optimisation, car les solutions générées n’étaient pas de bonne qualité. L’intelligence artificielle s’est donc tournée vers la nature pour créer de nouvelles méthodes : plus générales et plus efficaces. On peut dire que le recuit simulé est une bonne solution pour trouver des solutions acceptables à certains problèmes NP complets, en particulier le problème du voyageur de commerce. 11 Recuit simulé 11. Bibliographie : Marie-Éléonore Marmion. Recherche locale et optimisation combinatoire : De l’analyse structurelle d’un problème à la conception d’algorithmes efficaces. Université Lille 1, École Doctorale Sciences Pour l’Ingénieur Université Lille Nordde-France Laboratoire d’Informatique Fondamentale de Lille (UMR CNRS 8022) Centre de Recherche INRIA Lille - Nord Europe. 2011. Algorithmes de minimisation Sébastien Charnoz & Adrian Daerr Université Paris 7 Denis Diderot CEA Sacla. AI Methods - Simulated Annealing [Rapport] : complément de cours / aut. Kendall Graham / CS - Nottingham University. Les métaheuristiques en optimisation combinatoire [Rapport] : Mémoire de fin d'etudes / aut. Autin Baptiste / Conservatoire National Des Arts et Metiers. - PARIS : [s.n.], 2006. Méthode du recuit simulé [Rapport] : complément TD/TP Recherche stochastique / aut. Olivier D.. - 2001. Optimization by Simulated Annealing [Article] / aut. Kirkpatrick, Gelatt et Vecchi // Science,New Series. - 13 Mai 1988. - 4598. - pp. 671-680. Simulated Annealing [Rapport] / aut. LIACS / Natural Computing Group; Leiden University. -2009. http://fr.wikipedia.org/w/index.php?title=Recuit_simulé&oldid=81934443. Algorithmes de graphes. Philippe Lacomme – Christian Prins – Marcs Servaux. 2e édition 2003. 12