CapSolver Reimaginado

Busca em Largura

Busca em Largura

Um algoritmo fundamental de varredura de grafos que explora nós em camadas para investigar sistematicamente todos os vértices alcançáveis a partir de um ponto de início.

Definição

A Busca em Largura (BFS) é uma estratégia sistemática para varrer ou pesquisar estruturas de grafos e árvores visitando nós nível por nível a partir de um nó de origem dado, garantindo que todos os vizinhos imediatos sejam processados antes dos nós mais profundos. Ela utiliza uma fila para gerenciar a fronteira de exploração, que mantém a ordem dos nós descobertos aguardando processamento. A BFS é especialmente eficaz em grafos não ponderados para encontrar o caminho mais curto (em termos de número de arestas) até um nó alvo e para análises orientadas para largura. Essa abordagem garante completude em grafos finitos, ou seja, encontrará uma solução válida se ela existir. A BFS forma a base de muitos algoritmos de grafos e aplicações práticas em redes, IA e análise de dados.

Vantagens

  • Sempre encontra o caminho mais curto em grafos não ponderados devido à sua natureza nível por nível.
  • Garante completude: localizará uma solução se ela existir (em espaços de busca finitos).
  • A ordem de varredura é previsível e sistemática, útil para muitas tarefas analíticas.
  • Fácil de implementar com uma fila padrão.
  • Suporta a construção de árvores de caminho mais curto e várias aplicações algorítmicas.

Desvantagens

  • O uso de memória pode crescer muito, pois armazena todos os nós da fronteira em cada profundidade.
  • Menos eficiente para grafos muito profundos ou grandes em comparação com métodos orientados para profundidade.
  • O desempenho pode piorar em conjuntos de dados altamente interconectados devido às fronteiras amplas.
  • Requer registro adicional para evitar a revisitação de nós em grafos cíclicos.
  • Não é adequada para grafos ponderados sem modificações (por exemplo, o algoritmo de Dijkstra).

Casos de Uso

  • Rastreamento da web e exploração de links estruturados a partir de uma URL inicial.
  • Encontrar rotas ou conexões mais curtas em redes não ponderadas, como grafos sociais.
  • Varredura em ordem de nível de árvores, como expansão em largura em árvores binárias.
  • Descoberta de caminhos mais curtos em IA, planejamento de rotas em robótica e resolução de labirintos.
  • Base para algoritmos avançados de grafos, como verificações de conectividade e estruturas de árvores geradoras.