Quelles sont les limites de l' algorithme d'escalade ? Comment surmonter ces limites?
Quelles sont les limites de l' algorithme d'escalade ? Comment surmonter ces limites?
Comme @nbro l'a déjà dit, Hill Climbing est une famille d' algorithmes de recherche locale . Donc, quand vous avez dit Escalade dans la question, j'ai supposé que vous parliez de l'escalade standard. La version standard de la montée de côte a certaines limites et se retrouve souvent bloquée dans le scénario suivant:
Pour résoudre ces problèmes, de nombreuses variantes d'algorithmes de montée de côte ont été développées. Ce sont les plus couramment utilisés:
Le succès des algorithmes de montée de colline dépend de l'architecture du paysage de l'espace d'état. Chaque fois qu'il y a peu de maxima et de plateaux, les variantes des algorithmes de recherche de montée de colline fonctionnent très bien. Mais dans le monde réel, les problèmes ont un paysage qui ressemble plus à une famille très dispersée de porcs-épics chauves sur un sol plat, avec des porcs-épics miniatures vivant à l'extrémité de chaque aiguille de porc-épic (comme décrit dans le 4ème chapitre du livre Intelligence artificielle: A Approche moderne). Les problèmes NP-Hard ont généralement un nombre exponentiel de maxima locaux pour rester bloqués.
Des algorithmes donnés ont été développés pour surmonter ces types de problèmes:
Ouvrage de référence - Intelligence artificielle: une approche moderne
L'escalade n'est pas un algorithme, mais une famille d'algorithmes de «recherche locale». Les algorithmes spécifiques qui entrent dans la catégorie des algorithmes "d'escalade" sont 2-opt, 3-opt, 2.5-opt, 4-opt ou, en général, tout N-opt. Voir le chapitre 3 de l'article « Le problème du voyageur de commerce: une étude de cas dans l'optimisation locale » (par David S. Johnson et Lyle A. McGeoch) pour plus de détails sur certains de ces algorithmes de recherche locale (appliqués au TSP).
Ce qui différencie un algorithme de cette catégorie de l'autre, c'est la «fonction de voisinage» qu'ils utilisent (en termes simples, la façon dont ils trouvent des solutions voisines à une solution donnée). Notez que, dans la pratique, ce n'est pas toujours le cas: souvent ces algorithmes ont plusieurs implémentations différentes.
La limitation la plus évidente des algorithmes d'escalade est due à leur nature, c'est-à-dire qu'il s'agit d'algorithmes de recherche locaux. Par conséquent, ils ne trouvent généralement que des maxima (ou minima) locaux . Donc, si l'un de ces algorithmes a déjà convergé vers un minimum local (ou maximum) et, dans la solution ou l'espace de recherche, il y a, à proximité de cette solution trouvée, une meilleure solution, aucun de ces algorithmes ne pourra le trouver meilleure solution. Ils seront essentiellement piégés.
Les algorithmes de recherche locaux ne sont généralement pas utilisés seuls. Ils sont utilisés comme sous-routines d'autres algorithmes méta-heuristiques, comme le recuit simulé, la recherche itérative locale ou dans l'un des algorithmes ant-colony. Donc, pour surmonter leurs limites, nous ne les utilisons généralement pas seuls, mais nous les utilisons en conjonction avec d'autres algorithmes, qui ont une nature probabiliste et peuvent trouver des minima ou des maxima globaux (par exemple, n'importe lequel des algorithmes ant-colony).
la source