Matemática Discretapara Engenheiros

Estruturas, provas e intuição

EN | PT

Busca em Largura (BFS)

Parte 2 — A Ideia Central (Camadas + Fila)

Série: Busca em Largura (BFS) Parte 2 de 8

A Ideia Central da BFS


Antes de escrever código, precisamos entender a geometria do algoritmo.

Busca em Largura não é simplesmente visitar vizinhos.

Ela é a exploração sistemática de um grafo em camadas de distância.

A BFS se expande a partir de um vértice fonte como uma onda.

Camadas de Distância


Seja G = (V, E) e seja s ∈ V um vértice fonte.

Defina a função distância δ(s, v) como o menor número de arestas em qualquer caminho de s até v.

Agora defina as camadas:

Li = { v ∈ V ∣ δ(s, v) = i }

Esses conjuntos particionam os vértices alcançáveis:

  • L0 = {s}
  • L1 = vizinhos de s
  • L2 = vértices a distância 2
  • L3, e assim por diante

Essa estrutura em camadas é o coração geométrico da BFS.

Por que as Camadas Importam


A BFS garante: se um vértice é descoberto na camada Li, então não existe caminho mais curto até esse vértice.

Por quê?

Porque a BFS explora todos os vértices a distância i antes de explorar qualquer vértice a distância i + 1.

Isso não é acidental. É imposto pela fila.

A Disciplina da Fila


A BFS usa uma fila.

Fila = Primeiro a Entrar, Primeiro a Sair (FIFO).

  • Vértices são enfileirados quando descobertos.
  • Vértices são desenfileirados na mesma ordem em que foram inseridos.

Essa regra simples força o algoritmo a respeitar as camadas.

A Interpretação de Frente de Onda


Pense na BFS como uma onda se expandindo a partir de s.

No passo i:

  • Todos os vértices em Li são processados.
  • Seus vizinhos ainda não descobertos tornam-se Li+1.

A fronteira entre o conjunto explorado e o não explorado é chamada de frente de onda.

Essa interpretação explica tanto a correção quanto a optimalidade.

Interpretação para Engenharia


Por que isso funciona:

  • Todas as arestas têm o mesmo peso (grafo não ponderado).
  • A distância é medida pela contagem de arestas.
  • A ordem FIFO preserva primeiro as menores distâncias.

Portanto:

d[v] = δ(s, v)

para todo vértice alcançável v.

Conclusão: a BFS é um algoritmo de caminho mínimo para grafos não ponderados.

Resumo Conceitual


A essência da BFS:

BFS = Geometria em camadas + Disciplina FIFO + Expansão em frente de onda

Não é travessia por acaso. É travessia por estrutura métrica.

Próxima: Parte 3 — O Algoritmo (Pseudocódigo CLRS)

Agora que compreendemos a ideia central do BFS — camadas e a fila FIFO — avançamos para a estrutura formal. Na Parte 3, apresentamos o pseudocódigo clássico do CLRS e definimos o estado preciso mantido para cada vértice.