Búsqueda en Anchura

Preview:

Citation preview

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.

• Se tiene un árbol en un estado inicial y se cuenta con cuatro metas: M1, M2, M3 y M4.

• Se introduce A como primer elemento de la lista.

• 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.

• 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.

• AC tampoco es una meta y es eliminado de la lista.

• Se introducen los hijos de C al final de la lista.

• 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.

• 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

• Se siguen eliminando los nodos que no son estados meta y agregando a los hijos al final de la lista.

• 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.

• Se encuentra la meta M1 y se detiene el algoritmo al haber alcanzado el éxito.

• 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.

Recommended