J'ai fait quelques recherches et il me semble qu'il me manque une petite partie de cet algorithme. Je comprends comment fonctionne une recherche en largeur d'abord, mais je ne comprends pas comment exactement cela me mènera à un chemin spécifique, au lieu de simplement me dire où chaque nœud individuel peut aller. Je suppose que le moyen le plus simple d'expliquer ma confusion est de donner un exemple:
Par exemple, disons que j'ai un graphique comme celui-ci:
Et mon objectif est d'aller de A à E (toutes les arêtes ne sont pas pondérées).
Je commence par A, car c'est mon origine. Je fais la queue A, puis je retire immédiatement A de la file d'attente et je l'explore. Cela donne B et D, car A est connecté à B et D.Je file donc à la fois B et D.
Je retire B de la file d'attente et l'explore, et constate que cela mène à A (déjà exploré), et C, donc je file C. Je retire alors D de la file d'attente et constate que cela mène à E, mon objectif. Je retire alors C de la file d'attente et constate que cela mène également à E, mon objectif.
Je sais logiquement que le chemin le plus rapide est A-> D-> E, mais je ne sais pas exactement comment la recherche en largeur d'abord aide - comment dois-je enregistrer des chemins de sorte que lorsque j'ai terminé, je puisse analyser les résultats et voir que le chemin le plus court est A-> D-> E?
Notez également que je n'utilise pas réellement d'arbre, donc il n'y a pas de nœuds "parents", seulement des enfants.