2. Búsqueda en Anchura
(Breadth – First)
Algoritmo:
1. Definir una Lista L con los nodos iniciales. En cualquier momento
asumir que L es una lista de los nodos que no han sido examinado.
2. Si L está vacía, falla. De otro modo, se toma un nodo N de L.
3. Si N es una meta. Regrese el nodo y el trayecto desde el nodo
inicial al nodo N.
4. Si N no es una meta. Elimine N de L y añada todos los hijos al
final de L de N, etiquetándolos con la trayectoria desde el inicio.
Retorne al paso 2.
3. • Se tiene un árbol en un
estado inicial y se cuenta
con cuatro metas:
M1, M2, M3 y M4.
5. • Se comprueba que A no es
una meta y se elimina de la
lista.
• Se introducen los hijos de
A en la lista recorriendo el
árbol de izquierda a
derecha y manteniendo la
información del recorrido.
Es decir AB y AC.
6. • AB no muestra ninguna
meta así que se saca de la
lista.
• Se analizan los hijos de B
y se introducen al final de
la lista como ABD y ABE.
7. • AC tampoco es una meta y
es eliminado de la lista.
• Se introducen los hijos de
C al final de la lista.
8. • Se siguen sacando de la
lista aquellos nodos que no
dan como resultado una
meta.
• En este caso se introducen
al final de la lista los hijos
de D.
• Los nuevos nodos
introducidos a la lista son
H e I.
9. • ABE no muestra ninguna
meta y se elimina de la
lista.
• Al introducir los hijos de E
al final de la lista se puede
ver que ha aparecido uno
de los nodos meta. En este
caso el nodo es M1
10. • Se siguen eliminando los
nodos que no son estados
meta y agregando a los
hijos al final de la lista.
11.
12.
13.
14. • En este punto se elimina
ABEJ y se introducen los
hijos de J al final de la lista
y al frente queda ABEM1 lo
que da como resultado el
éxito.
15. • Se encuentra la meta M1 y
se detiene el algoritmo al
haber alcanzado el éxito.
16. • Se traza el camino desde
el origen hacia la meta:
• A B E M1
• El algoritmo de búsqueda
en anchura se detiene al
encontrar un nodo meta sin
importar cual sea este.
• En el caso hipotético de
que M1 no hubiese sido un
nodo meta el algoritmo
habría continuado sacando
nodos del frente de la lista
e introduciendo hijos al
final de la misma hasta
hallar una meta. En este
caso M2.