2012-07-22 4 views
0

J'ai trouvé cette implémentation de recherche d'étoiles dans la bibliothèque boost. Il indique que cette implémentation trouve les distances les plus courtes entre le sommet de départ et tous les autres sommets. Cependant, je veux seulement la distance la plus courte entre le sommet de départ et la fin. Comment puis-je accomplir cela?Modification de la recherche d'étoile A de la bibliothèque de graphes boost

+0

S'il trouve la distance du début à tous les autres sommets, alors ce n'est pas A * ... plus que probable, la documentation est trompeuse, et l'algorithme PEUT trouver la distance du début à tous les autres sommets, mais si vous lui fournissez un sommet de fin, il utilisera A * pour trouver le meilleur chemin entre le début et la fin. –

Répondre

0

Dans la mise en œuvre, il y a probablement une boucle avec état

while (openQueue != empty) 
    ...pop bestCostVertex, etc. 

Si vous tordre la condition

while (openQueue != empty && bestCostVertex != endVertex) 

où bestCostVertex est le sommet à sauté hors de la openQueue, les vertex en les openQueue sont traitées seulement jusqu'à ce que vous trouviez l'endVertex.

Questions connexes