J'essaie de faire une implémentation de la recherche de la largeur d'abord (aussi d'autres algorithmes, mais actuellement bfs) en Javascript. Finalement, je veux appliquer tous les algorithmes de recherche sur une grille, pour trouver un chemin depuis le début vers le nœud de but (je sais que bfs n'est pas particulièrement bon dans ce domaine). J'ai fait une implémentation, mais le problème est que je n'ai pas tout l'arbre à l'avance. Ce que je veux, c'est lui donner un startnode et un endnode et, sur cette base, trouver un chemin entre eux.Mise en œuvre de la recherche étendue
Le problème que je rencontre est que lorsque je détermine les carrés-carrés adjacents, il renvoie TOUS les voisins, donc même ceux qui sont déjà traversés. Ce qui le transforme en recherche graphique plutôt qu'en recherche arborescente. Une façon de le résoudre est de se souvenir de tous les chemins afin que je puisse vérifier quels voisins ont déjà été traversés et ne devrait donc pas avoir besoin d'être examiné plus avant. Cependant, comme j'ai appris dans un cours sur les algorithmes de recherche, bfs a une utilisation de la mémoire de tous les nœuds sur le niveau de profondeur actuel. Si je stocke tous les chemins, alors il consomme beaucoup plus de mémoire que ce droit?
Est-il possible de ne conserver en mémoire que les nœuds de la profondeur actuelle sur laquelle bfs recherche, alors que je n'ai pas la structure arborescente à l'avance et que j'évite toujours d'avoir des cycles?
J'espère que je me suis fait comprendre.
Merci à l'avance, Stefan
Cherchez-vous un arbre ou un graphique? On dirait que vous avez vraiment un graphique, mais que vous voulez utiliser un algorithme de recherche basé sur l'arbre - cela ne fonctionnera pas. – BrokenGlass