View
2.753
Download
0
Category
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