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.
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.
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
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
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
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
Parcours et population
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
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
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 :
- NP-complétude ;
- nombreux optima locaux ;
- discontinuités ;
- contraintes fortes ;
- non-dérivabilité ;
- temps de calcul de la fonction objectif prohibitif ;
- solution approchée souhaitée ;
- etc.
Tests
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 :
- problÚmes de tournée de véhicules ;
- optimisation de réseaux mobiles UMTS ;
- gestion du trafic aérien[6]
- optimisation des plans de chargement des cĆurs de rĂ©acteurs nuclĂ©aires ;
- calibrationâŻ;
- etc.
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.
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 :
- Les algorithmes Ă©volutionnistes, parmi lesquels :
- les stratĂ©gies dâĂ©volution,
- les algorithmes génétiques,
- les algorithmes à évolution différentielle,
- les algorithmes Ă estimation de distribution,
- les systĂšmes immunitaires artificiels,
- la recomposition de chemin (Path relinking en anglais)
- Shuffled Complex Evolution (Duan et al. 1992)
- le recuit simulé,
- les algorithmes de colonies de fourmis,
- Les algorithmes dâoptimisation par essaims particulaires,
- la recherche avec tabous,
- la méthode GRASP.
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.
- 1952 : premiers travaux sur lâutilisation de mĂ©thodes stochastiques pour lâoptimisation[8].
- 1954 : Barricelli effectue les premiĂšres simulations du processus dâĂ©volution et les utilise sur des problĂšmes dâoptimisation gĂ©nĂ©raux[9].
- 1965 : Rechenberg conçoit le premier algorithme utilisant des stratĂ©gies dâĂ©volution[10].
- 1966 : Fogel, Owens et Walsh proposent la programmation Ă©volutionnaire[11].
- 1970 : Hastings propose lâalgorithme de Metropolis-Hastings, permettant dâĂ©chantillonner nâimporte-quelle distribution de probabilitĂ©[12].
- 1970 : John Horton Conway conçoit le jeu de la vie, lâautomate cellulaire le plus connu Ă ce jour.
- 1975 : travaillant sur les automates cellulaires, Holland propose les premiers algorithmes génétiques[13].
- 1980 : Smith utilise la programmation génétique[14].
- 1983 : sâappuyant sur les travaux dâHastings, Kirkpatrick, Gelatt et Vecchi conçoivent le recuit simulĂ©[15].
- 1985 : indĂ©pendamment de ceux-ci, ÄernĂœ propose le mĂȘme algorithme[16].
- 1986 : La premiÚre mention du terme méta-heuristique est faite par Fred Glover, lors de la conception de la recherche tabou[17] :
- « 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. »
- 1986 : Farmer, Packard et Perelson travaillent sur les systĂšmes immunitaire artificiels[18].
- 1988 : la premiĂšre confĂ©rence sur les algorithmes gĂ©nĂ©tiques est organisĂ©e Ă lâuniversitĂ© de lâIllinois Ă Urbana-Champaign.
- 1988 : des travaux sur le comportement collectif des fourmis trouvent une application en intelligence artificielle[19].
- 1988 : Koza dépose son premier brevet sur la programmation génétique[20].
- 1989 : Goldberg publie un des livres les plus connus sur les algorithmes génétiques[21].
- 1989 : Evolver, le premier logiciel dâoptimisation par algorithmes gĂ©nĂ©tiques est publiĂ© par la sociĂ©tĂ© Axcelis.
- 1989 : le terme algorithme mémétique apparait[22].
- 1991 : Les algorithmes de colonie de fourmis sont proposées par Marco Dorigo, dans sa thÚse de doctorat[23].
- 1993 : le terme « Evolutionary Computation » (calcul évolutionnaire en français) se répand, avec la parution de la revue éponyme, publiée par le Massachusetts Institute of Technology.
- 1995 : Feo et Resende proposent la méthode GRASP (pour Greedy randomized adaptive search procedure, « procédure de recherche gloutonne aléatoire adaptative » en français)[24].
- 1995 : Kennedy et Eberhart conçoivent lâoptimisation par essaims particulaires[25] - [26].
- 1996 : MĂŒhlenbein et PaaĂ proposent les algorithmes Ă estimation de distribution[27].
- 1997 : Storn et Price proposent un algorithme à évolution différentielle[28].
- 1997 : Rubinstein conçoit la mĂ©thode de lâentropie croisĂ©e[29].
- 1999 : Boettcher propose lâoptimisation extrĂȘmale[30].
- 2000 : premiers algorithmes génétiques interactifs[31].
Extensions
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
- 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.
- 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.
- El-Ghazali Talbi, A taxonomy of hybrid metaheuristics, Journal of Heuristics, volume 8, no 2, pages 541-564, septembre 2002
- (en) exemples de fonctions de tests pour mĂ©taheuristiques dâoptimisation de problĂšmes continus.
- 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.
- (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)
- (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 )
- Robbins, H. and Monro, S., A Stochastic Approximation Method, Annals of Mathematical Statistics, vol. 22, pp. 400-407, 1951
- Barricelli, Nils Aall, Esempi numerici di processi di evoluzione, Methodos, pp. 45-68, 1954
- Rechenberg, I., Cybernetic Solution Path of an Experimental Problem, Royal Aircraft Establishment Library Translation, 1965
- Fogel, L., Owens, A.J., Walsh, M.J., Artificial Intelligence through Simulated Evolution, Wiley, 1966
- W.K. Hastings. Monte Carlo Sampling Methods Using Markov Chains and Their Applications, Biometrika, volume 57, no 1, pages 97-109, 1970
- Holland, John H., Adaptation in Natural and Artificial Systems, University of Michigan Press, Ann Arbor, 1975
- Smith, S.F., A Learning System Based on Genetic Adaptive Algorithms, PhD dissertation (University of Pittsburgh), 1980
- S. Kirkpatrick, C. D. Gelatt et M. P. Vecchi, Optimization by Simulated Annealing, Science, volume 220, no 4598, pages 671-680, 1983
- 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
- Fred GLover, Future Paths for Integer Programming and Links to Artificial Intelligence, Comput. & Ops. Res.Vol. 13, No.5, pp. 533-549, 1986
- J.D. Farmer, N. Packard and A. Perelson, The immune system, adaptation and machine learning, Physica D, vol. 22, pp. 187--204, 1986
- 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
- Koza, John R. Non-Linear Genetic Algorithms for Solving Problems. United States Patent 4,935,877. Filed May 20, 1988. Issued June 19, 1990
- Goldberg, David E., Genetic Algorithms in Search, Optimization and Machine Learning, Kluwer Academic Publishers, Boston, MA., 1989
- P. Moscato, On Evolution, Search, Optimization, Genetic Algorithms and Martial Arts : Towards Memetic Algorithms, Caltech Concurrent Computation Program, C3P Report 826, 1989.
- M. Dorigo, Optimization, Learning and Natural Algorithms, ThĂšse de doctorat, Politecnico di Milano, Italie, 1992.
- Feo, T., Resende, M., Greedy randomized adaptive search procedure, Journal of Global Optimization, tome 42, page 32--37, 1992
- 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
- Kennedy, J. et Eberhart, R. C., Particle swarm optimization, Proceedings of IEEE International Conference on Neural Networks, Piscataway, NJ. pp. 1942-1948, 1995
- 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
- 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
- Rubinstein, R.Y., Optimization of Computer simulation Models with Rare Events, European Journal of Operations Research, 99, 89-112, 1997
- Stefan Boettcher, Allon G. Percus, "Extremal Optimization : Methods derived from Co-Evolution", Proceedings of the Genetic and Evolutionary Computation Conference (1999)
- 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
- (en) Working Group on Metaheuristics of the Association of European Operational Research Societies (EURO), formerly referred to as 'EU/ME'
- (en) Metaheuristic network
Logiciels et frameworks