AccueilđŸ‡«đŸ‡·Chercher

MĂ©taheuristique

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).

Il existe un grand nombre de mĂ©taheuristiques diffĂ©rentes, allant de la simple recherche locale Ă  des algorithmes complexes de recherche globale. Ces mĂ©thodes utilisent cependant un haut niveau d’abstraction, leur permettant d’ĂȘtre adaptĂ©es Ă  une large gamme de problĂšmes diffĂ©rents.

Les mĂ©taheuristiques (M) sont souvent des algorithmes utilisant un Ă©chantillonnage probabiliste. Elles tentent de trouver l’optimum global (G) d’un problĂšme d’optimisation difficile (avec des discontinuitĂ©s — D —, par exemple), sans ĂȘtre piĂ©gĂ© par les optima locaux (L).

Généralités

Terminologies

On parle de mĂ©ta, du grec ÎŒÎ”Ï„ÎŹ « au-delĂ  » (comprendre ici « Ă  un plus haut niveau »), heuristique, du grec Î”áœ‘ÏÎŻÏƒÎșΔÎčÎœ / heuriskein, qui signifie « trouver ». En effet, ces algorithmes se veulent des mĂ©thodes gĂ©nĂ©riques pouvant optimiser une large gamme de problĂšmes diffĂ©rents, sans nĂ©cessiter de changements profonds dans l’algorithme employĂ©.

Une terminologie lĂ©gĂšrement diffĂ©rente considĂšre que les mĂ©ta-heuristiques sont une forme d’algorithmes d’optimisation stochastique, hybridĂ©s avec une recherche locale. Le terme mĂ©ta est donc pris au sens oĂč les algorithmes peuvent regrouper plusieurs heuristiques. On rencontre cette dĂ©finition essentiellement dans la littĂ©rature concernant les algorithmes Ă©volutionnaires, oĂč elle est utilisĂ©e pour dĂ©signer une spĂ©cialisation. Dans le cadre de la premiĂšre terminologie, un algorithme Ă©volutionnaire hybridĂ© avec une recherche locale sera plutĂŽt dĂ©signĂ© sous le terme d’algorithme mĂ©mĂ©tique.

Les mĂ©taheuristiques sont souvent inspirĂ©es par des systĂšmes naturels, qu’ils soient pris en physique (cas du recuit simulĂ©), en biologie de l’évolution (cas des algorithmes gĂ©nĂ©tiques) ou encore en Ă©thologie (cas des algorithmes de colonies de fourmis ou de l’optimisation par essaims particulaires).

Nomenclature

Le but d’une mĂ©taheuristique est de rĂ©soudre un problĂšme d’optimisation donnĂ© : elle cherche un objet mathĂ©matique (une permutation, un vecteur, etc.) minimisant (ou maximisant) une fonction objectif, qui dĂ©crit la qualitĂ© d’une solution au problĂšme.

L’ensemble des solutions possibles forme l’espace de recherche. L’espace de recherche est au minimum bornĂ©, mais peut ĂȘtre Ă©galement limitĂ© par un ensemble de contraintes.

Exemple de front de Pareto dans un problĂšme nĂ©cessitant la minimisation de deux objectifs (f1 et f2). Les points A et B sont « non dominĂ©s » alors que le point C n’est optimum pour aucun des objectifs.

Les mĂ©taheuristiques manipulent une ou plusieurs solutions, Ă  la recherche de l’optimum, la meilleure solution au problĂšme. Les itĂ©rations successives doivent permettre de passer d’une solution de mauvaise qualitĂ© Ă  la solution optimale. L’algorithme s’arrĂȘte aprĂšs avoir atteint un critĂšre d’arrĂȘt, consistant gĂ©nĂ©ralement en l’atteinte du temps d’exĂ©cution imparti ou en une prĂ©cision demandĂ©e.

Une solution ou un ensemble de solutions est parfois appelĂ© un Ă©tat, que la mĂ©taheuristique fait Ă©voluer via des transitions ou des mouvements. Si une nouvelle solution est construite Ă  partir d’une solution existante, elle est sa voisine. Le choix du voisinage et de la structure de donnĂ©e le reprĂ©sentant peut ĂȘtre crucial.

Lorsqu’une solution est associĂ©e Ă  une seule valeur, on parle de problĂšme mono-objectif, lorsqu’elle est associĂ©e Ă  plusieurs valeurs, de problĂšme multi-objectifs (ou multi-critĂšres). Dans ce dernier cas, on recherche un ensemble de solutions non dominĂ©es (le « front de Pareto »), solutions parmi lesquelles on ne peut dĂ©cider si une solution est meilleure qu’une autre, aucune n’étant systĂ©matiquement infĂ©rieure aux autres sur tous les objectifs.

Dans certains cas, le but recherchĂ© est explicitement de trouver un ensemble d’optimums « satisfaisants ». L’algorithme doit alors trouver l’ensemble des solutions de bonne qualitĂ©, sans nĂ©cessairement se limiter au seul optimum : on parle de mĂ©thodes multimodales.

Concepts généraux

Comportement d’une mĂ©taheuristique. Le graphique reprĂ©sente les distributions des valeurs des optimums trouvĂ©s (sur un grand nombre d’exĂ©cutions) : l’algorithme passe d’une population de solution trĂšs dispersĂ©e (A) Ă  une population plus centrĂ©e sur l’optimum trouvĂ© (B).

Les métaheuristiques ne nécessitent pas de connaissances particuliÚres sur le problÚme optimisé pour fonctionner, le fait de pouvoir associer une (ou plusieurs) valeurs à une solution est la seule information nécessaire.

En pratique, elles ne devraient ĂȘtre utilisĂ©es que sur des problĂšmes ne pouvant ĂȘtre optimisĂ©s par des mĂ©thodes mathĂ©matiques. UtilisĂ©es en lieu et place d’heuristiques spĂ©cialisĂ©es, elles montrent gĂ©nĂ©ralement de moins bonnes performances.

Les métaheuristiques sont souvent employées en optimisation combinatoire, mais on en rencontre également pour des problÚmes continus ou mixtes (problÚmes à variables discrÚtes et continues).

Certaines mĂ©taheuristiques sont thĂ©oriquement « convergentes » sous certaines conditions. Il est alors garanti que l’optimum global sera trouvĂ© en un temps fini, la probabilitĂ© de ce faire augmentant asymptotiquement avec le temps. Cette garantie revient Ă  considĂ©rer que l’algorithme se comporte au pire comme une recherche alĂ©atoire pure (la probabilitĂ© de tenter toutes les solutions tendant vers 1). Cependant, les conditions nĂ©cessaires sont rarement vĂ©rifiĂ©es dans le cadre d’applications rĂ©elles. En pratique, la principale condition de convergence est de considĂ©rer que l’algorithme est ergodique (qu’il peut atteindre n’importe quelle solution Ă  chaque mouvement), mais on se satisfait souvent d’une quasi-ergodicitĂ© (si la mĂ©taheuristique peut atteindre n’importe quelle solution en un nombre fini de mouvements).

Les mĂ©taheuristiques sont des algorithmes « anytime », capables de proposer une solution (mĂȘme mauvaise) Ă  chaque itĂ©ration.

Organisation générale

Les trois phases d’une mĂ©taheuristique itĂ©rative. Les points rouges reprĂ©sentent l’échantillonnage de la fonction objectif (ici Ă  une dimension).

D’une maniĂšre gĂ©nĂ©rale, les mĂ©taheuristiques s’articulent autour de plusieurs notions :

  • Voisinage ;
  • Diversification/exploration ;
  • Intensification/exploitation ;
  • MĂ©moire et apprentissage.

Voisinage

Le voisinage d'une solution est un sous-ensemble de solutions qu'il est possible d'atteindre par une série de transformations données. Par extension on désigne parfois par le terme « voisinage » l'ensemble des transformations considérées.

Un voisinage simple pour le problÚme du voyageur de commerce sera, par exemple, l'ensemble des solutions qu'il est possible de construire en permutant deux villes dans une solution donnée.

La notion de voisinage est sans doute le principe gĂ©nĂ©ral le plus utilisĂ© pour la conception d’heuristiques. Pour les problĂšmes combinatoires, le voisinage a un impact important sur le comportement des mĂ©taheuristiques, alors que pour des problĂšmes continus, la notion mĂȘme de voisinage est plus difficile Ă  cerner.

Bien qu’il n’existe que trĂšs peu de rĂ©sultats thĂ©oriques sur l’adĂ©quation entre un voisinage et un problĂšme discret donnĂ©, il peut ĂȘtre possible d’en calculer des indicateurs empiriques, comme la rugositĂ©[1]. Les techniques les plus classiques concernant la dĂ©finition d’un voisinage tournent autour des notions de permutations, de chaĂźnes d’éjections et d’optimisations partielles.

Intensification, diversification, apprentissage

Les notions d'intensification et de diversification sont liées à l'utilisation de la fonction objectif et aux processus aléatoires. Combinées avec la notion de mémoire, elles permettent de positionner les différents aspects des métaheuristiques entre eux.

La diversification (ou exploration, synonyme utilisĂ© presque indiffĂ©remment dans la littĂ©rature des algorithmes Ă©volutionnaires) dĂ©signe les processus visant Ă  rĂ©colter de l'information sur le problĂšme optimisĂ©. L'intensification (ou exploitation) vise Ă  utiliser l'information dĂ©jĂ  rĂ©coltĂ©e pour dĂ©finir et parcourir les zones intĂ©ressantes de l'espace de recherche. La mĂ©moire est le support de l'apprentissage, qui permet Ă  l'algorithme de ne tenir compte que des zones oĂč l'optimum global est susceptible de se trouver, Ă©vitant ainsi les optima locaux.

Les mĂ©taheuristiques progressent de façon itĂ©rative, en alternant des phases d'intensification, de diversification et d'apprentissage, ou en mĂȘlant ces notions de façon plus Ă©troite. L'Ă©tat de dĂ©part est souvent choisi alĂ©atoirement, l'algorithme se dĂ©roulant ensuite jusqu'Ă  ce qu'un critĂšre d'arrĂȘt soit atteint.

Les notions d'intensification et de diversification sont prĂ©pondĂ©rantes dans la conception des mĂ©taheuristiques, qui doivent atteindre un Ă©quilibre dĂ©licat entre ces deux dynamiques de recherche. Les deux notions ne sont donc pas contradictoires, mais complĂ©mentaires, et il existe de nombreuses stratĂ©gies mĂȘlant Ă  la fois l'un et l'autre des aspects.

Classification

Les mĂ©taheuristiques peuvent ĂȘtre classĂ©es de nombreuses façons. Ce diagramme tente de prĂ©senter oĂč se placent quelques-unes des mĂ©thodes les plus connues. Un Ă©lĂ©ment prĂ©sentĂ© Ă  cheval sur diffĂ©rentes catĂ©gories indique que l'algorithme peut ĂȘtre placĂ© dans l'une ou l'autre classe, selon le point de vue adoptĂ©.

Parcours et population

Principe général des métaheuristiques (a) à population, et (b) à parcours.

Les mĂ©taheuristiques les plus classiques sont celles fondĂ©es sur la notion de parcours. Dans cette optique, l’algorithme fait Ă©voluer une seule solution sur l’espace de recherche Ă  chaque itĂ©ration. La notion de voisinage est alors primordiale.

Les plus connues dans cette classe sont le recuit simulĂ©, la recherche avec tabous, la recherche Ă  voisinage variable, la mĂ©thode GRASP ou encore les mĂ©thode de bruitage. Ces mĂ©thodes peuvent ĂȘtre comparĂ©es avec la mĂ©thode classique du hill-climbing

Dans cette classification, l’autre approche utilise la notion de population. La mĂ©taheuristique manipule un ensemble de solutions en parallĂšle, Ă  chaque itĂ©ration.

On peut citer les algorithmes gĂ©nĂ©tiques, l’optimisation par essaims particulaires, les algorithmes de colonies de fourmis.

La frontiĂšre est parfois floue entre ces deux classes. On peut ainsi considĂ©rer qu’un recuit simulĂ© oĂč la tempĂ©rature baisse par paliers, a une structure Ă  population. En effet, dans ce cas on manipule un ensemble de points Ă  chaque palier, il s’agit simplement d’une mĂ©thode d’échantillonnage particuliĂšre.

Emploi de mémoire

Les mĂ©taheuristiques utilisent l’historique de leur recherche pour guider l’optimisation aux itĂ©rations suivantes.

Dans le cas le plus simple, elles se limitent Ă  considĂ©rer l’état de la recherche Ă  une itĂ©ration donnĂ©e pour dĂ©terminer la prochaine itĂ©ration : il s’agit alors d’un processus de dĂ©cision markovien, et on parlera de mĂ©thode sans mĂ©moire. C’est le cas de la plupart des mĂ©thodes de recherche locale.

Beaucoup de mĂ©taheuristiques utilisent une mĂ©moire plus Ă©voluĂ©e, que ce soit sur le court terme (solutions visitĂ©es rĂ©cemment, par exemple) ou sur le long terme (mĂ©morisation d’un ensemble de paramĂštres synthĂ©tiques dĂ©crivant la recherche).

Fonction objectif statique ou dynamique

La plupart des mĂ©taheuristiques utilisent la fonction objectif en l’état, et font Ă©voluer leur comportement de recherche de l’optimum. Cependant, certains algorithmes, comme la recherche locale guidĂ©e, modifient la reprĂ©sentation du problĂšme, en incorporant l’information collectĂ©e durant la recherche, directement au sein de la fonction objectif.

Il est donc possible de classer les mĂ©taheuristiques selon qu’elles utilisent une fonction objectif statique (qui demeure inchangĂ©e tout au long de l’optimisation) ou dynamique (quand la fonction objectif est modifiĂ©e au cours de la recherche).

Nombre de structures de voisinage

La plupart des mĂ©taheuristiques utilisĂ©es dans le cadre des problĂšmes d’optimisation combinatoire utilisent une seule structure de voisinage. Cependant, des mĂ©thodes comme la recherche Ă  voisinage variable permettent de changer de structure en cours de recherche.

Implicite, explicite, directe

Les mĂ©taheuristiques peuvent ĂȘtre qualifiĂ©es d’explicites (E, ici sur une somme de deux gaussiennes), d’implicites (I) ou de directes (D), selon la façon dont elles gĂšrent la transition entre deux itĂ©rations.
Exemple de métaheuristique directe: la méthode de recherche par motifs appliquée sur la fonction de Broyden.

En considĂ©rant les mĂ©taheuristiques comme des mĂ©thodes itĂ©ratives utilisant un Ă©chantillonnage de la fonction objectif comme base d’apprentissage (dĂ©finition plus particuliĂšrement adaptĂ©e aux mĂ©taheuristiques Ă  populations) apparaĂźt le problĂšme du choix de l’échantillonnage[2].

Dans la trĂšs grande majoritĂ© des cas, cet Ă©chantillonnage se fait sur une base alĂ©atoire, et peut donc ĂȘtre dĂ©crit via une distribution de probabilitĂ©s. Il existe alors trois classes de mĂ©taheuristiques, selon l’approche utilisĂ©e pour manipuler cette distribution.

La premiĂšre classe est celle des mĂ©thodes implicites, oĂč la distribution de probabilitĂ© n’est pas connue a priori. C’est le cas par exemple des algorithmes gĂ©nĂ©tiques, oĂč le choix de l’échantillonnage entre deux itĂ©rations ne suit pas une loi donnĂ©e, mais est fonction de rĂšgles locales.

Par opposition, on peut donc classer les mĂ©thodes explicites, qui utilisent une distribution de probabilitĂ© choisie Ă  chaque itĂ©ration. C’est le cas des algorithmes Ă  estimation de distribution.

Dans cette classification, le recuit simulĂ© occupe une place particuliĂšre, puisqu’on peut considĂ©rer qu’il Ă©chantillonne la fonction objectif en utilisant directement celle-ci comme distribution de probabilitĂ© (les meilleures solutions ayant une probabilitĂ© plus grande d’ĂȘtre tirĂ©es). Il n’est donc ni explicite ni implicite, mais plutĂŽt « direct ».

Évolutionnaire ou non

On trouve parfois une classification prĂ©sentant les algorithmes d’optimisations stochastiques comme Ă©tant « Ă©volutionnaires » (ou « Ă©volutionnistes ») ou non. L’algorithme sera considĂ©rĂ© comme faisant partie de la classe des algorithmes Ă©volutionnaires s’il manipule une population via des opĂ©rateurs, selon un algorithme gĂ©nĂ©ral donnĂ©.

Cette façon de prĂ©senter les mĂ©taheuristiques dispose d’une nomenclature adaptĂ©e : on parlera d’opĂ©rateurs pour toute action modifiant l’état d’une ou plusieurs solutions. Un opĂ©rateur construisant une nouvelle solution sera dĂ©nommĂ© gĂ©nĂ©rateur, alors qu’un opĂ©rateur modifiant une solution existante sera appelĂ© mutateur.

Dans cette optique, la structure générale des algorithmes évolutionnaires enchaßne des étapes de sélection, de reproduction (ou croisement), de mutation et enfin de remplacement. Chaque étape utilise des opérateurs plus ou moins spécifiques.

Taxinomie de l’hybridation

Taxinomie des métaheuristiques hybrides.

On parle d’hybridation quand la mĂ©taheuristique considĂ©rĂ©e est composĂ©e de plusieurs mĂ©thodes se rĂ©partissant les tĂąches de recherche. La taxinomie des mĂ©taheuristiques hybrides se sĂ©pare en deux parties : une classification hiĂ©rarchique et une classification plate. La classification est applicable aux mĂ©thodes dĂ©terministes aussi bien qu’aux mĂ©taheuristiques[3].

La classification hierarchique se fonde sur le niveau (bas ou haut) de l’hybridation et sur son application (en relais ou concurrente). Dans une hybridation de bas niveau, une fonction donnĂ©e d’une mĂ©taheuristique (par exemple, la mutation dans un algorithme Ă©volutionnaire) est remplacĂ©e par une autre mĂ©taheuristique (par exemple une recherche avec tabou). Dans le cas du haut niveau, le fonctionnement interne « normal » des mĂ©taheuristiques n’est pas modifiĂ©. Dans une hybridation en relais, les mĂ©taheuristiques sont lancĂ©es les unes aprĂšs les autres, chacune prenant en entrĂ©e la sortie produite par la prĂ©cĂ©dente. Dans la concurrence (ou coĂ©volution), chaque algorithme utilise une sĂ©rie d’agents coopĂ©rants ensembles.

Cette premiÚre classification dégage quatre classes générales :

  • bas niveau et relais (abrĂ©gĂ© LRH en anglais),
  • bas niveau et coĂ©volution (abrĂ©gĂ© LCH),
  • haut niveau et relais (HRH),
  • haut niveau et coĂ©volution (HCH).

La seconde partie dégage plusieurs critÚres, pouvant caractériser les hybridations :

  • si l’hybridation se fait entre plusieurs instances d’une mĂȘme mĂ©taheuristique, elle est homogĂšne, sinon, elle est hĂ©tĂ©rogĂšne ;
  • si les mĂ©thodes recherchent dans tout l’espace de recherche, on parlera d’hybridation globale, si elles se limitent Ă  des sous-parties de l’espace, d’hybridation partielle ;
  • si les algorithmes mis en jeu travaillent tous Ă  rĂ©soudre le mĂȘme problĂšme, on parlera d’approche gĂ©nĂ©rale, s’ils sont lancĂ©s sur des problĂšmes diffĂ©rents, d’hybridation spĂ©cialisĂ©e.

Ces diffĂ©rentes catĂ©gories peuvent ĂȘtre combinĂ©es, la classification hierarchique Ă©tant la plus gĂ©nĂ©rale.

Applications

Les mĂ©taheuristiques sont souvent employĂ©es pour leur facilitĂ© de programmation et de manipulation. Elles sont en effet facilement adaptables Ă  tout type de problĂšme d’optimisation. Toutefois, elles sont le plus judicieusement employĂ©es sur des problĂšmes d’optimisation difficile, oĂč des mĂ©thodes d’optimisation plus classiques (mĂ©thodes dĂ©terministes, notamment) montrent leurs limites.

De façon gĂ©nĂ©rale, on peut considĂ©rer que des problĂšmes prĂ©sentant les caractĂ©ristiques suivantes sont assez propices Ă  l’utilisation de mĂ©taheuristiques :

Tests

Exemple de problÚme test à minimiser (présenté ici pour deux variables).

Pour tester une mĂ©taheuristique, une premiĂšre Ă©tape consiste Ă  utiliser des fonctions mathĂ©matiques spĂ©cialement conçues[4]. Les algorithmes sont Ă©valuĂ©s sur la base d’un ensemble de fonctions, plus ou moins difficiles, puis comparĂ©s entre eux.

Les mĂ©taheuristiques Ă©tant gĂ©nĂ©ralement stochastiques, les tests doivent en principe ĂȘtre rĂ©pĂ©tĂ©s un grand nombre de fois, puis exploitĂ©s via des mĂ©thodes statistiques. Cependant, cette pratique reste relativement peu rĂ©pandue dans la littĂ©rature spĂ©cialisĂ©e.

ProblÚmes réels

Dans un numéro spécial de la revue scientifique European Journal of Operational Research, consacré aux applications des métaheuristiques[5], les éditeurs ont constaté que la majorité des 20 articles publiés le furent dans deux domaines : les problÚmes d'ordonnancement et de logistique. Les méthodes les plus utilisées appartiennent à la famille des algorithmes évolutionnaires, souvent hybridés avec des méthodes de recherche locale.

Quelques exemples de problÚmes concrets, optimisés via des métaheuristiques :

Avantages et inconvénients

Les mĂ©taheuristiques Ă©tant trĂšs gĂ©nĂ©ralistes, elles peuvent ĂȘtre adaptĂ©es Ă  tout type de problĂšme d’optimisation pouvant se rĂ©duire Ă  une « boĂźte noire ». Elles sont souvent moins puissantes que des mĂ©thodes exactes sur certains types de problĂšmes. Elles ne garantissent pas non plus la dĂ©couverte de l’optimum global en un temps fini. Cependant, un grand nombre de problĂšmes rĂ©els n’est pas optimisable efficacement par des approches purement mathĂ©matiques, les mĂ©taheuristiques peuvent alors ĂȘtre utilisĂ©es avec profit.

La notion d’efficacitĂ© se rapporte gĂ©nĂ©ralement Ă  deux objectifs contradictoires : la vitesse et la prĂ©cision. La vitesse est souvent mesurĂ©e en nombre d’évaluations de la fonction objectif, qui est la plupart du temps la partie la plus gourmande en temps de calcul. La prĂ©cision se rapporte Ă  la distance entre l’optimum trouvĂ© par la mĂ©taheuristique et l’optimum rĂ©el, soit du point de vue de la solution, soit de celui de la valeur. Bien souvent, un algorithme rapide est peu prĂ©cis, et inversement.

GĂ©nĂ©ralement, un choix doit ĂȘtre fait quant au critĂšre d’arrĂȘt adĂ©quat. Un nombre d’évaluation ou un temps imparti est souvent utilisĂ©, mais on peut Ă©galement choisir d’atteindre une valeur donnĂ©e de la fonction objectif (le but Ă©tant alors de trouver une solution associĂ©e). Il est Ă©galement possible de choisir des critĂšres dĂ©pendants du comportement de l’algorithme, comme une dispersion minimale de la population de points ou un paramĂštre interne appropriĂ©. En tout Ă©tat de cause, le choix du critĂšre d’arrĂȘt influencera la qualitĂ© de l’optimisation.

Le thĂ©orĂšme du « no free lunch » explique qu’aucune instance de mĂ©taheuristique ne peut prĂ©tendre ĂȘtre la meilleure sur tous les problĂšmes. Une mĂ©taheuristique (M) n’est performante que pour une classe de problĂšme (P) donnĂ©e.

L’utilisation de mĂ©taheuristiques peut paraĂźtre relativement simple, en premiĂšre approche, mais il est souvent nĂ©cessaire d’adapter l’algorithme au problĂšme optimisĂ©. Tout d’abord, principalement dans le cadre de l’optimisation combinatoire, le choix de la reprĂ©sentation des solutions manipulĂ©es peut ĂȘtre crucial. Ensuite, la plupart des mĂ©taheuristiques disposent de paramĂštres dont le rĂ©glage n’est pas nĂ©cessairement trivial. Enfin, obtenir de bonnes performances passe gĂ©nĂ©ralement par une Ă©tape d’adaptation des diverses Ă©tapes de l’algorithme (initialisation, notamment). En pratique, seul le savoir-faire et l’expĂ©rience de l’utilisateur permet de gĂ©rer ces problĂšmes.

Il est admis que, d’un point de vue trĂšs gĂ©nĂ©ral, aucune mĂ©taheuristique n’est rĂ©ellement meilleure qu’une autre. En effet, une mĂ©taheuristique ne peut prĂ©tendre ĂȘtre plus efficace sur tous les problĂšmes, bien que certaines instances (c’est-Ă -dire l’algorithme lui-mĂȘme, mais aussi un choix de paramĂštres et une implĂ©mentation donnĂ©e) puissent ĂȘtre plus adaptĂ©es que d’autres sur certaines classes de problĂšmes. Cette constatation est dĂ©crite par le thĂ©orĂšme du no free lunch (« pas de dĂ©jeuner gratuit »).

En derniĂšre analyse, il est parfois possible que le choix de la reprĂ©sentation des solutions, ou plus gĂ©nĂ©ralement des mĂ©thodes associĂ©es Ă  la mĂ©taheuristique, ait plus d’influence sur les performances que le type d’algorithme lui-mĂȘme. En pratique, cependant, les mĂ©taheuristiques se montrent plus puissantes que les mĂ©thodes de parcours exhaustif ou de recherche purement alĂ©atoire.

Variantes

Liste de métaheuristiques

Les métaheuristiques les plus connues sont :

Il existe un trĂšs grand nombre d’autres mĂ©taheuristiques. La recherche dans le domaine Ă©tant trĂšs active, il est impossible de produire une liste exhaustive des diffĂ©rentes mĂ©taheuristiques d’optimisation. La littĂ©rature spĂ©cialisĂ©e montre un grand nombre de variantes et d’hybridations entre mĂ©thodes, particuliĂšrement dans le cas des algorithmes Ă©volutionnaires.

Les spĂ©cialistes du domaine s'accordent cependant Ă  tenter de rĂ©duire l'emploi de mĂ©taphores prĂ©textant amener Ă  de « nouveaux » algorithmes[7]. Les raisons invoquĂ©es sont l'absence d'utilitĂ© des mĂ©taphores, le fait qu'elles masquent l'absence de nouveautĂ© ou une validation expĂ©rimentale non rigoureuse.

Historique

Chronologie des principales mĂ©taheuristiques, le nom est indiquĂ© suivi de l’acronyme anglais entre parenthĂšses.

« La recherche avec tabou peut ĂȘtre vue comme une "mĂ©ta-heuristique", superposĂ©e Ă  une autre heuristique. L'approche vise Ă  Ă©viter les optimums locaux par une stratĂ©gie d'interdiction (ou, plus gĂ©nĂ©ralement, de pĂ©nalisation) de certains mouvements. »

Extensions

Exemple de problĂšme d’optimisation continue, dynamique et bruitĂ©e.

Les mĂ©taheuristiques, de par leur nature flexible, se prĂȘtent particuliĂšrement Ă  des extensions. On peut ainsi trouver des adaptations pour des problĂšmes plus complexe que l’optimisation mono-objectif :

  • problĂšmes multi-objectifs (plusieurs objectifs contradictoires doivent ĂȘtre optimisĂ©s de concert),
  • optimisation multi-modale (plusieurs optimums doivent ĂȘtre trouvĂ©s),
  • optimisation en environnement incertain (un bruit est prĂ©sent sur la valeur renvoyĂ©e par la fonction objectif, ou sur le passage des paramĂštres Ă  celle-ci),
  • hybridations entre mĂ©taheuristiques,
  • hybridations avec des mĂ©thodes exactes,
  • problĂšmes dynamiques (la fonction objectif change durant le temps de l’optimisation),
  • gestion de contraintes fortement non-linĂ©aires,
  • combinaison des problĂšmes prĂ©cĂ©dents,
  • etc.

Références

  1. V. Angel, La rugositĂ© des paysages : une thĂ©orie pour la difficultĂ© des problĂšmes d’optimisation combinatoire relativement aux mĂ©taheuristiques, thĂšse de doctorat de l’universitĂ© de Paris-Sud, Orsay, 1998.
  2. J. Dréo, J.-P. Aumasson, W. Tfaili, P. Siarry, Adaptive Learning Search, a new tool to help comprehending metaheuristics, to appear in the International Journal on Artificial Intelligence Tools.
  3. El-Ghazali Talbi, A taxonomy of hybrid metaheuristics, Journal of Heuristics, volume 8, no 2, pages 541-564, septembre 2002
  4. (en) exemples de fonctions de tests pour mĂ©taheuristiques d’optimisation de problĂšmes continus.
  5. W. Dullaert, M. Sevaux, K. Sörensen et J. Springael, Applications of metaheuristics, numéro spécial du European Journal of Operational Research, no 179, 2007.
  6. (en) Nicolas Durand, David Gianazza, Jean-Baptiste Gotteland et Jean-Marc Alliot, Metaheuristics for Air Traffic Management, John Wiley & Sons, coll. « Computer Engineering Series / Métaheuristics set » (no 2), , 214 p. (ISBN 978-1-84821-810-9, lire en ligne)
  7. (en) Claus Aranha, Christian L. Camacho VillalĂłn, Felipe Campelo et Marco Dorigo, « Metaphor-based metaheuristics, a call for action: the elephant in the room », Swarm Intelligence,‎ (ISSN 1935-3820, DOI 10.1007/s11721-021-00202-9, lire en ligne, consultĂ© le )
  8. Robbins, H. and Monro, S., A Stochastic Approximation Method, Annals of Mathematical Statistics, vol. 22, pp. 400-407, 1951
  9. Barricelli, Nils Aall, Esempi numerici di processi di evoluzione, Methodos, pp. 45-68, 1954
  10. Rechenberg, I., Cybernetic Solution Path of an Experimental Problem, Royal Aircraft Establishment Library Translation, 1965
  11. Fogel, L., Owens, A.J., Walsh, M.J., Artificial Intelligence through Simulated Evolution, Wiley, 1966
  12. W.K. Hastings. Monte Carlo Sampling Methods Using Markov Chains and Their Applications, Biometrika, volume 57, no 1, pages 97-109, 1970
  13. Holland, John H., Adaptation in Natural and Artificial Systems, University of Michigan Press, Ann Arbor, 1975
  14. Smith, S.F., A Learning System Based on Genetic Adaptive Algorithms, PhD dissertation (University of Pittsburgh), 1980
  15. S. Kirkpatrick, C. D. Gelatt et M. P. Vecchi, Optimization by Simulated Annealing, Science, volume 220, no 4598, pages 671-680, 1983
  16. V. Cerny, A thermodynamical approach to the travelling salesman problem : an efficient simulation algorithm Journal of Optimization Theory and Applications, volume45, pages 41-51, 1985
  17. Fred GLover, Future Paths for Integer Programming and Links to Artificial Intelligence, Comput. & Ops. Res.Vol. 13, No.5, pp. 533-549, 1986
  18. J.D. Farmer, N. Packard and A. Perelson, The immune system, adaptation and machine learning, Physica D, vol. 22, pp. 187--204, 1986
  19. F. Moyson, B. Manderick, The collective behaviour of Ants : an Example of Self-Organization in Massive Parallelism, Actes de AAAI Spring Symposium on Parallel Models of Intelligence, Stanford, Californie, 1988
  20. Koza, John R. Non-Linear Genetic Algorithms for Solving Problems. United States Patent 4,935,877. Filed May 20, 1988. Issued June 19, 1990
  21. Goldberg, David E., Genetic Algorithms in Search, Optimization and Machine Learning, Kluwer Academic Publishers, Boston, MA., 1989
  22. P. Moscato, On Evolution, Search, Optimization, Genetic Algorithms and Martial Arts : Towards Memetic Algorithms, Caltech Concurrent Computation Program, C3P Report 826, 1989.
  23. M. Dorigo, Optimization, Learning and Natural Algorithms, ThĂšse de doctorat, Politecnico di Milano, Italie, 1992.
  24. Feo, T., Resende, M., Greedy randomized adaptive search procedure, Journal of Global Optimization, tome 42, page 32--37, 1992
  25. Eberhart, R. C. et Kennedy, J., A new optimizer using particle swarm theory, Proceedings of the Sixth International Symposium on Micromachine and Human Science, Nagoya, Japan. pp. 39-43, 1995
  26. Kennedy, J. et Eberhart, R. C., Particle swarm optimization, Proceedings of IEEE International Conference on Neural Networks, Piscataway, NJ. pp. 1942-1948, 1995
  27. MĂŒlhenbein, H., Paaß, G., From recombination of genes to the estimation of distribution I. Binary parameters, Lectures Notes in Computer Science 1411: Parallel Problem Solving from Nature, tome PPSN IV, pages 178--187, 1996
  28. Rainer Storn, Kenneth Price, Differential Evolution – A Simple and Efficient Heuristic for global Optimization over Continuous Spaces, Journal of Global Optimization, volume 11, no 4, pages 341-359, 1997
  29. Rubinstein, R.Y., Optimization of Computer simulation Models with Rare Events, European Journal of Operations Research, 99, 89-112, 1997
  30. Stefan Boettcher, Allon G. Percus, "Extremal Optimization : Methods derived from Co-Evolution", Proceedings of the Genetic and Evolutionary Computation Conference (1999)
  31. Takagi, H., Active user intervention in an EC Search, Proceesings of the JCIS 2000


Voir aussi

Bibliographie

  • (en) El-Ghazali Talbi, Metaheuristics: from design to implementation, Wiley, 2009. (ISBN 978-0-470-27858-1) (624p)
  • (en) Bibliographie d’introduction aux mĂ©taheuristiques (2003)
  • (fr) Jacques Teghem et Marc Pirlot (Ă©diteurs), Optimisation approchĂ©e en recherche opĂ©rationnelle, Hermes, traitĂ© I2C, . (ISBN 2746204622)
  • (fr) Yann Collette, Patrick Siarry, Optimisation multi-objectif, Éd. Eyrolles, Paris, 2002, BrochĂ©, 322 pages, (ISBN 2-212-11168-1).
  • (fr) Johann DrĂ©o, Alain Petrowski, Éric Taillard, Patrick Siarry, MĂ©taheuristiques pour l’optimisation difficile, Français, Éd. Eyrolles, Paris, , BrochĂ©, 356 pages, (ISBN 2-212-11368-4).
  • (en) Pierre Collet, Jean-Philippe Rennard, Introduction to Stochastic Optimization Algorithms, dans Handbook of Research on Nature-Inspired Computing for Economics and Management, Ă©ditĂ© par J.-P. Rennard, IDEA Group Inc, , ReliĂ©, 1100 pages, (ISBN 1591409845).
  • (en) Christian Blum, Andrea Roli, Metaheuristics in combinatorial optimization : Overview and conceptual comparison, ACM Computing Surveys, volume 35, numĂ©ro 3, , pages 268-308. DOI 10.1145/937503.937505
  • Patrick Siarry, Jean-Marc Alliot, SĂ©bastien Aupetit, Sana Ben Hamida et Ilhem BoussaĂŻd, MĂ©taheuristiques, Eyrolles, coll. « Algorithmes », , 515 p. (ISBN 978-2-212-13929-7, lire en ligne)

Liens externes

Sites généralistes

Logiciels et frameworks

Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplĂ©mentaires peuvent s’appliquer aux fichiers multimĂ©dias.