[!NOTE] Algoritmo de busca em largura O algoritmo de busca em largura, ou busca em largura, é um método para explorar um grafo visitando todos os seus vértices e arestas de forma sistemática. O algoritmo começa em um vértice raiz arbitrário e visita todos os vértices que estão a uma distância de 1 da raiz, depois todos aqueles que estão a uma distância de 2, e assim por diante, até que todos os vértices alcançáveis tenham sido visitados. O algoritmo usa uma fila para armazenar os vértices que ainda precisam ser visitados e marca cada vértice com um número de ordem quando é descoberto. O algoritmo termina quando a fila está vazia. ![[Breadth-First-Search-Algorithm.gif]] O pseudo-algoritmo abaixo mostra a execução deste algoritmo ```python procedure BFS(G, root) is let Q be a queue label root as explored Q.enqueue(root) while Q is not empty do v := Q.dequeue() if v is the goal then return v for all edges from v to w in G.adjacentEdges(v) do if w is not labeled as explored then label w as explored w.parent := v Q.enqueue(w) ``` **:: Referência ::** # Implementations - - [[Algoritmo de busca em largura em Python]]