Concept

Algorithme de recherche best-first

Résumé
La recherche best-first (littéralement : le meilleur en premier) est un algorithme de recherche qui parcourt un graphe en explorant le nœud le plus "prometteur" selon une règle spécifique. Judea Pearl décrit la recherche best-first comme l'estimation de la qualité d'un nœud n par une "fonction heuristique d'évaluation qui, en général, peut dépendre de la description de n, de l'état d'arrivée, des informations amassées par l'algorithme au moment de l'évaluation et, surtout, de connaissances supplémentaires à propos du problème". Certains auteurs utilisent le terme best-first pour désigner spécifiquement une recherche dont l'heuristique essaie de prédire la distance entre la fin d'un chemin et la solution, de sorte à explorer en priorité le chemin le plus proche de la solution. Ce type précis de recherche est nommé best-first glouton. La sélection du meilleur candidat à l'exploration est typiquement implémentée en utilisant une . L'algorithme A* est un exemple de recherche best-first. Ce type de recherche est souvent utilisée pour rechercher des chemins en optimisation combinatoire. OUVERT = ensemble contenant uniquement l'état initial Tant que OUVERT n'est pas vide Répéter
  1. Retirer le meilleur élément de OUVERT. Soit N cet élément ;
  2. Si N est l'état d'arrivée, remonter le chemin depuis N (par parentés successives) et retourner le chemin ;
  3. Créer les successeurs de N ;
  4. Évaluer ces successeurs, les ajouter à OUVERT en mémorisant leur parent. Fin Répéter Noter que cette version de l'algorithme n'est pas complète : elle ne trouve pas toujours un chemin possible entre deux nœuds même s'il en existe un. Par exemple, l'algorithme boucle s'il arrive dans une impasse : un nœud dont le seul successeur est son parent. Dans ce cas, l'algorithme retourne vers le parent, ajoute le nœud-impasse à OUVERT, et ainsi de suite. La version ci-dessous étend l'algorithme en utilisant un ensemble additionnel FERME, contenant tous les nœuds déjà évalués et qui ne seront plus explorés. On évite ainsi les boucles infinies en n'explorant pas deux fois un même nœud.
À propos de ce résultat
Cette page est générée automatiquement et peut contenir des informations qui ne sont pas correctes, complètes, à jour ou pertinentes par rapport à votre recherche. Il en va de même pour toutes les autres pages de ce site. Veillez à vérifier les informations auprès des sources officielles de l'EPFL.