Recorrido en anchura y profundidad de grafos: explicación y algoritmos
1.
2. Recorrer un grafo significa tratar de alcanzar
todos los nodos que estén relacionados con uno
que llamaremos nodo de salida. Existen
básicamente dos técnicas para recorrer un grafo:
El recorrido en anchura
El recorrido en profundidad.
3. Supone recorrer el grafo, a partir de un nodo dado,
en niveles, es decir, primero los que están a una
distancia de un arco del nodo de salida, después los
que están a dos arcos de distancia, y así
sucesivamente hasta alcanzar todos los nodos a los
que se pudiese llegar desde el nodo salida.
El recorrido genera un árbol.
Si el grafo no es conexo el recorrido genera un
bosque de arboles (un árbol por componente
conexa).
Se puede aplicar en grafos dirigidos.
4. Cuando se quiera hacer una exploración
parcial de un grafo infinito o muy grande
Para hallar el camino más corto desde un
punto de un grafo a otro
Si hay que encontrar una solución partiendo
de una situación inicial y efectuando el menor
número de pasos posibles
5. Procedimiento RA(v: nodo)
Q ������ colaVacia
Marca[v] visitado
añadir(v,Q)
Mientras Q no estáVacía hacer
U primero(Q)
eliminar(u,Q)
Para cada vértice w adyacente a u hacer
Si marca[w] ≠ visitado entonces
marca[w] visitado
añadir(w,Q)
fSi
Fpara
Fmientras
FProcedimiento
6. Algoritmo que asegure el recorrido en todas
las componentes conexas:
Procedimiento RecorridoAnchura(G:grafo)
Para cada v ∈ V hacer
Marcar[v] no visitado
Fpara
Para cada v ∈ V hacer
Si marcar[v] ≠ visitado entonces
RA(v)
fSi
Fpara
Fprocedimiento