Lorsque nous utilisons A * (ou tout autre meilleur algorithme de recherche de chemin), nous disons que l'heuristique utilisée doit être admissible , c'est-à-dire qu'elle ne doit jamais surestimer la longueur (ou les déplacements) réels du chemin de la solution.
Comment une heuristique admissible assure-t-elle une solution optimale? Je recherche de préférence une explication intuitive.
Si vous le souhaitez, vous pouvez expliquer en utilisant l' heuristique de distance de Manhattan du 8-puzzle.
Réponses:
Alors que la réponse d'Anton est absolument parfaite, permettez-moi d'essayer de fournir une réponse alternative: être admissible signifie que l'heuristique ne surestime pas l'effort pour atteindre le but, c'est-à-dire pour tout n dans l'espace d'état (dans le casse-tête 8, cela signifie juste pour toute permutation des tuiles et l'objectif que vous envisagez actuellement) où h ∗ ( n ) est le coût optimal pour atteindre la cible.h(n)≤h∗(n) n h∗(n)
Je pense que la réponse la plus logique pour voir pourquoi fournit des solutions optimales si h ( n ) est admissible est parce qu'il trie tous les nœuds en OUVERT dans l'ordre croissant de f ( n ) = g ( n ) + h ( n ) et, aussi , car il ne s'arrête pas lors de la génération de l'objectif mais lors de son expansion:A∗ h(n) f(n)=g(n)+h(n)
Et c'est essentiellement tout ce que vous trouverez dans la preuve originale de Nilsson et al.
J'espère que cela t'aides,
la source
Si la fonction heuristique n'est pas admissible, alors nous pouvons avoir une estimation qui est plus grande que le coût réel du trajet d'un nœud à un nœud cible. Si cette estimation de coût de chemin plus élevé se trouve sur le chemin de moindre coût (que nous recherchons), l'algorithme ne l'explorera pas et il peut trouver un autre chemin (pas le moindre coût) vers l'objectif.
Regardez cet exemple simple.
Soit et G respectivement les nœuds de départ et de but . Soit h ( N ) une estimation de la longueur du chemin du nœud N à G , ∀ N dans le graphique. De plus, soit c ( N , X i ) la fonction de coût de pas du nœud N à son voisin X i , ∀ N et i = 1 .. m , où mA G h(N) N G ∀N c(N,Xi) N Xi ∀N i=1..m m est le nombre de voisins de (c'est-à-dire une fonction qui renvoie le coût du bord entre le nœud NN N et l'un de ses voisins).
Que l'heuristique soit
Cette fonction heuristique n'est pas admissible, car h ( C ) = 4 > c ( C , G ) = 2H
la source