Búsqueda en anchura.

           

   En Ciencias de la Computación, Búsqueda en anchura (en inglés BFS - Breadth First Search) es un algoritmo para recorrer o buscar elementos en un grafo (usado frecuentemente sobre árboles). Intuitivamente, se comienza en la raíz (eligiendo algún nodo como elemento raíz en el caso de un grafo) y se exploran todos los vecinos de este nodo. A continuación para cada uno de los vecinos se exploran sus respectivos vecinos adyacentes, y así hasta que se recorra todo el árbol.

   Formalmente, BFS es un algoritmo de búsqueda sin información, que expande y examina todos los nodos de un árbol sistemáticamente para buscar una solución. El algoritmo no usa ninguna estrategia heurística.

   Si las aristas tienen pesos negativos aplicaremos el algoritmo de Bellman-Ford en alguna de sus dos versiones.

 

 

   Procedimiento

  ► Dado un vértice  fuente s, Breadth-first search sistemáticamente explora los vértices de G para “descubrir” todos los vértices alcanzables desde s.

  ► Calcula la distancia (menor número de vértices) desde s a todos los vértices alcanzables.

  ► Después produce un árbol  BF con raíz en s y que contiene a todos los vértices alcanzables.

  ► El camino desde s a cada vértice en este recorrido contiene el mínimo número de vértice. Es el camino más corto medido en número de vértices.

  ► Su nombre se debe a que expande uniformemente la frontera entre lo descubierto y lo no descubierto. Llega a los nodos de distancia k, sólo tras haber llegado a todos los nodos a distancia k-1.

 

   Pseudocódigo

   La nomenclatura adicional utilizada es: Q = Estructura de datos cola.