Algorithme de recherche en largeur d'abord (BFS) avec EXEMPLE
โก Rรฉsumรฉ intelligent
La recherche en largeur (BFS) est un algorithme qui parcourt un graphe niveau par niveau, en visitant tous les voisins d'un nลud avant de descendre plus profondรฉment. Il utilise une file FIFO et trouve le chemin le plus court dans les graphes non pondรฉrรฉs sans boucle infinie.
Qu'est-ce que l'algorithme BFS (recherche en largeur d'abord) ?
La recherche en largeur (BFS) est un algorithme utilisรฉ pour explorer des donnรฉes graphiques, parcourir un arbre ou explorer des structures. BFS signifie ยซ recherche en largeur ยป.
L'algorithme visite et marque efficacement tous les nลuds clรฉs d'un graphique de maniรจre prรฉcise dans le sens de l'รฉtendue. Cet algorithme sรฉlectionne un seul nลud (point initial ou source) dans un graphe puis visite tous les nลuds adjacents au nลud sรฉlectionnรฉ. N'oubliez pas que BFS accรจde ร ces nลuds un par un.
Une fois que l'algorithme visite et marque le nลud de dรฉpart, il se dรฉplace vers les nลuds non visitรฉs les plus proches et les analyse. Une fois visitรฉs, tous les nลuds sont marquรฉs. Ces itรฉrations se poursuivent jusqu'ร ce que tous les nลuds du graphe aient รฉtรฉ visitรฉs et marquรฉs avec succรจs.
Qu'est-ce que les parcours graphiques ?
Un parcours de graphique est une mรฉthodologie couramment utilisรฉe pour localiser la position du sommet dans le graphique. Il s'agit d'un algorithme de recherche avancรฉ qui peut analyser le graphique avec rapiditรฉ et prรฉcision tout en marquant la sรฉquence des sommets visitรฉs. Ce processus permet de visiter rapidement chaque nลud d'un graphique sans รชtre enfermรฉ dans une boucle infinie.
L'architecture de l'algorithme BFS
- Dans les diffรฉrents niveaux de donnรฉes, vous pouvez dรฉsigner n'importe quel nลud comme nลud de dรฉpart ou nลud initial pour commencer le parcours. L'algorithme de parcours en largeur (BFS) visitera ce nลud, le marquera comme visitรฉ et l'ajoutera ร la file d'attente.
- Le parcours en largeur (BFS) va maintenant visiter les nลuds les plus proches et non visitรฉs, puis les marquer. Ces valeurs sont รฉgalement ajoutรฉes ร la file d'attente. La file d'attente fonctionne selon le principe suivant : Modรจle FIFO.
- De la mรชme maniรจre, les nลuds les plus proches et non visitรฉs restants sur le graphe sont analysรฉs, marquรฉs et ajoutรฉs ร la file d'attente. Ces รฉlรฉments sont retirรฉs de la file d'attente au fur et ร mesure de leur rรฉception et affichรฉs comme rรฉsultat.
Pourquoi avons-nous besoin de lโalgorithme BFS ?
Il existe de nombreuses raisons d'utiliser l'algorithme BFS pour la recherche dans vos donnรฉes. Voici quelques-uns des aspects les plus importants qui font de cet algorithme le choix idรฉal :
- BFS est utile pour analyser les nลuds dโun graphique et construire le chemin le plus court pour les parcourir.
- BFS peut parcourir un graphique en le plus petit nombre d'itรฉrations.
- L'architecture de l'algorithme BFS est simple et robuste.
- Le rรฉsultat de lโalgorithme BFS prรฉsente un haut niveau de prรฉcision par rapport ร dโautres algorithmes.
- Les itรฉrations BFS sont transparentes et il n'y a aucune possibilitรฉ que cet algorithme se retrouve pris dans un problรจme de boucle infinie.
Comment fonctionne lโalgorithme BFS ?
Le parcours graphique nรฉcessite que l'algorithme visite, vรฉrifie et/ou mette ร jour chaque nลud non visitรฉ dans une structure arborescente. Les parcours de graphique sont classรฉs selon l'ordre dans lequel ils visitent les nลuds du graphique.
L'algorithme BFS dรฉmarre l'opรฉration ร partir du premier nลud ou nลud de dรฉpart d'un graphique et le parcourt minutieusement. Une fois qu'il traverse avec succรจs le nลud initial, le prochain sommet non parcouru du graphique est visitรฉ et marquรฉ.
On peut donc affirmer que tous les nลuds adjacents au sommet courant sont visitรฉs et parcourus lors de la premiรจre itรฉration. Un systรจme de file d'attente simple est utilisรฉ pour implรฉmenter l'algorithme de parcours en largeur (BFS), et il comprend les รฉtapes suivantes :
รtape 1)
Chaque sommet ou nลud du graphique est connu. Par exemple, vous pouvez marquer le nลud comme V.
รtape 2)
Si le sommet V n'est pas accรฉdรฉ, ajoutez-le ร la file d'attente BFS.
รtape 3)
Lancez la recherche BFS et, une fois terminรฉe, marquez le sommet V comme visitรฉ.
รtape 4)
La file d'attente BFS n'est toujours pas vide, supprimez donc le sommet V du graphe de la file d'attente.
รtape 5)
Rรฉcupรฉrez tous les sommets restants du graphe qui sont adjacents au sommet V.
รtape 6)
Pour chaque sommet adjacent, disons V1, s'il n'a pas encore รฉtรฉ visitรฉ, ajoutez V1 ร la file d'attente BFS.
รtape 7)
BFS visitera V1, le marquera comme visitรฉ et le supprimera de la file d'attente.
Exemple d'algorithme BFS
รtape 1)
Vous avez un graphique de sept nombres allant de 0 ร 6.
รtape 2)
0 ou zรฉro a รฉtรฉ marquรฉ comme nลud racine.
รtape 3)
0 est visitรฉ, marquรฉ et insรฉrรฉ dans la structure de donnรฉes de la file d'attente.
รtape 4)
Les nลuds adjacents ร 0 restants et non visitรฉs sont visitรฉs, marquรฉs et insรฉrรฉs dans la file d'attente.
รtape 5)
Les itรฉrations de parcours sont rรฉpรฉtรฉes jusqu'ร ce que tous les nลuds soient visitรฉs.
Rรจgles de l'algorithme BFS
Voici les rรจgles importantes pour l'utilisation de l'algorithme BFS :
- Une file d'attente (FIFO โ Premier entrรฉ, premier sorti) Structure de donnรฉes est utilisรฉ par BFS.
- Vous dรฉsignez n'importe quel nลud du graphe comme racine et vous commencez ร parcourir les donnรฉes ร partir de ce nลud.
- Le parcours en largeur (BFS) parcourt tous les nลuds du graphe et omet les รฉlรฉments manquants.ping les une fois terminรฉs.
- BFS visite un nลud adjacent non visitรฉ, le marque comme terminรฉ et l'insรจre dans une file d'attente.
- Elle supprime le sommet prรฉcรฉdent de la file d'attente si aucun sommet adjacent n'est trouvรฉ.
- L'algorithme BFS itรจre jusqu'ร ce que tous les sommets du graphe soient parcourus avec succรจs et marquรฉs comme terminรฉs.
- Il n'y a aucune boucle provoquรฉe par BFS lors du parcours des donnรฉes depuis n'importe quel nลud.
Applications de l'algorithme BFS
Jetons un coup d'ลil ร certaines des applications rรฉelles dans lesquelles la mise en ลuvre d'un algorithme BFS peut รชtre trรจs efficace.
- Graphiques non pondรฉrรฉs : L'algorithme BFS peut facilement crรฉer le chemin le plus court et un arbre couvrant minimal pour visiter tous les sommets du graphe dans les plus brefs dรฉlais et avec une grande prรฉcision.
- Rรฉseaux P2P : L'algorithme BFS peut รชtre utilisรฉ pour localiser tous les nลuds les plus proches ou voisins dans un rรฉseau pair ร pair. Cela permet de trouver les donnรฉes recherchรฉes plus rapidement.
- Robots d'exploration Web : Les moteurs de recherche ou les robots d'exploration Web peuvent facilement crรฉer plusieurs niveaux d'index en utilisant BFS. L'implรฉmentation de BFS commence ร partir de la source, qui est la page Web, puis visite tous les liens de cette source.
- Systรจmes de navigation : BFS peut aider ร trouver tous les emplacements voisins ร partir de lโemplacement principal ou source.
- Diffusion en rรฉseau : Un paquet diffusรฉ est guidรฉ par l'algorithme BFS pour trouver et atteindre tous les nลuds pour lesquels il possรจde l'adresse.














