Búsqueda primero en amplitud (BFS
)
BFS
(búsqueda primero en amplitud,
búsqueda primero en amplitud) - un método transversal de gráfico, usado muy a menudo en algoritmos simples y avanzados. La búsqueda primero en amplitud funciona recorriendo los niveles individuales del gráfico, comenzando en el nodo de origen y alejándose gradualmente de él. Esto se muestra claramente en la animación.
Para escribir el BFS
más simple, debe poder trabajar con una estructura de datos que le permita tomar desde el principio y ponerlo hasta el final, y también poder almacenar el gráfico en forma de lista de adyacencia (es decir, con una cola).
Descripción formal del algoritmo
1) Coloque el número del vértice desde el que comienza la búsqueda en la cola inicialmente vacía.
2) Extraiga el vértice U
del principio de la cola y márquelo como usado en una matriz separada.
3) Al final de la cola, agregar todos los vértices que podamos alcanzar usando el borde del vértice U,
y que aún no estén etiquetados.
4) Si la cola está vacía, entonces se escanearon todos los nodos del gráfico conectado; de lo contrario, regrese al paso 2.
Complejidad
Dado que el algoritmo visita todos los nodos del gráfico en el peor de los casos, al almacenar el gráfico como listas de adyacencia, la complejidad temporal del algoritmo es O(|V| + |E|)
, donde V
es el conjunto de vértices del gráfico y E
es el conjunto de aristas. En otras palabras, el algoritmo funciona en el peor de los casos para number de aristas + número de vértices.