La búsqueda ancho primero (breadth-first) es una de las estrategias más sencillas. Esta estrategia se basa en expandir primero los nodos que se encuentran en igual profundidad en el árbol de búsqueda.
Primero se expande la raíz (el estado inicial) luego todos los sucesores de aquel generando un nuevo conjunto de nodos, que son todos expandidos, y así sucesivamente. Se puede decir que siempre se elige un nodo de profundidad d antes que uno de profundidad d+1. En este proceso se ignoran los estados ya expandidos anteriormente (para evitar caer en círculos).
En nuestro ejemplo de ir de A hasta E, la figura anterior muestra la expansión hasta C. Con la estrategia primero con amplitud deberíamos elegir B que se expande en E y A. Ahora el algoritmo cuenta con los nodos {E, D, F}(omitimos las A ya que fueron visitadas) y debe expandirlos, en este caso en el momento que intente expandir E verá que es la solución y finalizará la búsqueda. En gráfico vemos la continuación ancho primero del árbol de la figura anterior

Expansión ancho primero
Con respecto a las preguntas dadas anteriormente puede decirse que la búsqueda ancho primero es completa, si existe una solución la hallará. Además, si el costo de cada acción es el mismo entonces encuentra la mejor solución (la más cercana). Dado que esta estrategia empieza primero con los nodos de distancia 1, luego los de distancia 2 y así hasta llegar a la solución (si existe).
El problema de esta estrategia se encuentra en el costo computacional de la misma. Si dado un estado se producen b nuevos estados mediante la aplicación de la función de estados sucesores, entonces se dice que b es el factor de ramificación del árbol de búsqueda. Si el factor de ramificación no es igual para cada estado, se puede tomar un factor de ramificación promedio. Supongamos b dicho factor de ramificación para un árbol dado y supongamos que la solución se encuentra en la profundidad p . Entonces en la profundidad uno tenemos b nodos, en la profundidad dos tenemos b nodos más por cada uno de los anteriores b2 y en profundidad tres b3 y en profundidad cuatro b4. En definitiva la cantidad de nodos expandidos para encontrar una solución de profundidad p es:

Claramente la complejidad de la búsqueda ancho primero es exponencial tanto en tiempo como en uso de memoria. Russel y Norvig[1] muestran una tabla ejemplo de lo que pasaría con un árbol cuyo factor de ramificación es b =10 consumiendo un milisegundo cada expansión y cien bytes cada nodo:
|
Profundidad
|
Nodos
|
Tiempo
|
Memoria
|
|
0
|
1
|
1 milisegundo
|
100 bytes
|
|
2
|
111
|
0.1 segundo
|
11 Kb
|
|
4
|
11.111
|
11 segundos
|
1 Mb
|
|
6
|
106
|
18 minutos
|
111 Mb
|
|
8
|
108
|
31 horas
|
11 GB
|
|
10
|
1010
|
128 días
|
1 terabyte
|
|
12
|
1012
|
35 años
|
111 terabytes
|
|
14
|
1014
|
3500 años
|
11111 terabytes
|
Claramente resulta inadmisible esperar 3500 años y usar 11.111 terabytes de memoria para resolver un problema cuya solución se haya en la profundidad 14.
Una estrategia similar es la denominada búsqueda de costo uniforme, a diferencia de ancho primero en esta búsqueda se expande siempre el nodo de menor costo de camino. Si llamamos g(n) al costo del camino para el nodo n , se puede ver que la búsqueda ancho primero es una búsqueda de costo uniforme donde g(n) es igual a la profundidad de n. Es el caso en el cual todas las operaciones tienen igual costo. La búsqueda por costo uniforme encuentra siempre la mejor solución a no ser que el costo del camino disminuya al aumentar la profundidad del nodo. Esto último no ocurre si el costo de los operadores no es negativo.
[1]Artificial Intelligence a modern approach (1996)