AccueilđŸ‡«đŸ‡·Chercher

Recherche locale (optimisation)

En algorithmique, la recherche locale est une mĂ©thode gĂ©nĂ©rale utilisĂ©e pour rĂ©soudre des problĂšmes d'optimisation, c'est-Ă -dire des problĂšmes oĂč l'on cherche la meilleure solution dans un ensemble de solutions candidates. La recherche locale consiste Ă  passer d'une solution Ă  une autre solution proche dans l'espace des solutions candidates (l'espace de recherche) jusqu'Ă  ce qu'une solution considĂ©rĂ©e comme optimale soit trouvĂ©e, ou que le temps imparti soit dĂ©passĂ©.

Exemple introductif

On prend comme exemple le problĂšme du voyageur de commerce, qui consiste, Ă©tant donnĂ© une liste de villes et les distances entre celles-ci, Ă  trouver un circuit qui passe par toutes les villes, et qui est le plus court possible. Autrement dit, l'ensemble des solutions admissibles est l’ensemble des circuits qui passent par toutes les villes, et l'objectif est la minimisation de la longueur. On peut considĂ©rer que l'on se place sur un graphe non orientĂ© dont les sommets sont les villes, et les arĂȘtes sont des routes entre les villes.

Un algorithme de recherche locale simple, appelĂ© 2-opt, est le suivant : partir d'un circuit quelconque, et itĂ©rer la recherche suivante. Prendre deux arĂȘtes (A,B) et (C,D), et les remplacer par les arĂȘtes par (A,D) et (B,C). Si ce nouveau circuit est plus court le conserver et continuer, sinon reprendre le circuit prĂ©cĂ©dent et essayer une autre paire d'arĂȘtes.

On peut arrĂȘter l'algorithme lorsque toutes les paires d'arĂȘtes ont Ă©tĂ© testĂ©es. La solution obtenue n'est pas garantie d'ĂȘtre optimale, mais peut tout de mĂȘme ĂȘtre utile et de qualitĂ©.

Description

Notion de voisinage

Un algorithme de recherche locale part d'une solution candidate et la dĂ©place de façon itĂ©rative vers une solution voisine[1]. Cette mĂ©thode est applicable seulement si une notion de voisinage est dĂ©finie sur l'espace de recherche. Par exemple, le voisinage d'un arbre recouvrant est un autre arbre recouvrant qui diffĂšre seulement par un nƓud. Pour le problĂšme SAT, les voisins d'une bonne affectation sont habituellement les affectations qui diffĂšrent seulement par la valeur d'une variable. Le mĂȘme problĂšme peut avoir plusieurs dĂ©finitions diffĂ©rentes de voisinage ; l'optimisation locale avec des voisinages qui limitent les changements Ă  k composantes de la solution est souvent appelĂ©e k-optimale.

Habituellement, chaque solution candidate a plus d'une solution voisine ; le choix de celle vers laquelle se dĂ©placer est pris en utilisant seulement l'information sur les solutions voisines de la solution courante, d'oĂč le terme de recherche locale. Quand le choix de la solution voisine est fait uniquement en prenant celle qui maximise le critĂšre, la mĂ©taheuristique prend le nom de hill climbing (escalade de colline).

CritĂšre d’arrĂȘt

Le critĂšre d'arrĂȘt de la recherche locale peut ĂȘtre une limite en durĂ©e. Une autre possibilitĂ© est de s'arrĂȘter quand la meilleure solution trouvĂ©e par l'algorithme n'a pas Ă©tĂ© amĂ©liorĂ©e depuis un nombre donnĂ© d'itĂ©rations. Les algorithmes de recherche locale sont des algorithmes sous-optimaux puisque la recherche peut s'arrĂȘter alors que la meilleure solution trouvĂ©e par l'algorithme n'est pas la meilleure de l'espace de recherche. Cette situation peut se produire mĂȘme si l'arrĂȘt est provoquĂ© par l'impossibilitĂ© d'amĂ©liorer la solution courante car la solution optimale peut se trouver loin du voisinage des solutions parcourues par l'algorithme.

Utilisations

Les algorithmes de recherche locale sont largement utilisés dans les problÚmes d'optimisation difficiles, tels que les problÚmes informatiques (en particulier l'intelligence artificielle), mathématiques, de recherche opérationnelle, d'ingénierie et de bio-informatique.

Exemples

Les problĂšmes suivants se prĂȘtent bien Ă  l'utilisation de la recherche locale :

  1. le problùme de couverture de sommets dans lequel une solution est un arbre recouvrant un graphe simple et l'objectif est de trouver la solution avec le nombre de nƓuds minimum ;
  2. le problĂšme du voyageur de commerce oĂč une solution est un cycle contenant tous les nƓuds du graphe et l'objectif est de minimiser la longueur totale du cycle ;
  3. le problĂšme SAT oĂč une solution est une association et l'objectif est de maximiser le nombre de clauses vĂ©rifiĂ©es par l'association ; dans ce cas, la solution finale est celle qui satisfait toutes les clauses.

Beaucoup de problĂšmes peuvent ĂȘtre formulĂ©s de plusieurs maniĂšres en termes d'espace de recherche et d'objectif. Par exemple, pour le problĂšme du voyageur de commerce une solution peut ĂȘtre un cycle et le critĂšre Ă  maximiser la combinaison du nombre de nƓuds et de la longueur du cycle. Mais une solution peut aussi ĂȘtre un chemin, et le transformer en cycle peut faire partie de l'objectif.

Articles connexes

  • Algorithme anytime, la plupart des recherches locales sont anytime, c'est-Ă -dire que l'on peut les arrĂȘter avant la terminaison de l'algorithme et obtenir la solution courante.

Notes et références

  1. Bilel Derbel, « Optimisation Combinatoire (Méthodes approchées) (présentation) », sur Laboratoire d'informatique fondamentale de Lille (LIFL)

Bibliographie

  • (en) Cet article est partiellement ou en totalitĂ© issu de l’article de WikipĂ©dia en anglais intitulĂ© « Local search » (voir la liste des auteurs).
  • Hoos, H.H. and Stutzle, T. (2005) Stochastic Local Search: Foundations and Applications, Morgan Kaufmann.
Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplĂ©mentaires peuvent s’appliquer aux fichiers multimĂ©dias.