Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Guillermo Palma
Plan
Recorre los lados de un grafo desde los vértices del grafo hasta lo
más profundo posible.
Se recorre los lados del vértice más recientemente visitado que no
haya sido visitado antes.
Cuando no se puede recorrer más allá de un vértice, se escoge el
anteriormente visitado (backtrack).
Se aplica a todos los vértices del grafo.
El algoritmo termina cuando visita a todos los vértices.
El grafo subgrafo predecesor que genera puede tener varios árboles.
Al principio todos los vértices son coloreados de blanco y cuando de
termina de visitarlos se colorea de negro.
Los vértices tienen dos tiempos:
1. un tiempo inicial cuando fueron descubiertos.
2. un tiempo final cuando terminan de ser examinado.
Hay un versión que es similar a BFS pero usa una pila en vez de cola.
Guillermo Palma Búsqueda en profundidad 2 / 31
Subgrafo predecesor de la búsqueda en profundidad
Definición
Sea G (V , E ) un digrafo o un grafo no dirigido, en el se ejecuta el
algoritmo de búsqueda en profundidad. Se define el subrafo predecesor
G (Vpred , Epred ) generado por la búsqueda en profundidad como:
Gpred = (V , Epred )
Epred = {(vpred , v ) : v ∈ V ∧ vpred 6= NIL}
Procedimiento dfsVisit(G , v )
1 inicio
2 tiempo ← tiempo + 1 ; /* se empieza a explorar v */
3 v .d ← tiempo ; /* tiempo inicial */
4 v .color ← GRIS ;
5 para cada (u ∈ G .adyacentes[v ]) hacer
6 si (u.color = BLANCO) entonces
7 u.pred ← v ;
8 dfsVisit(G , u)
u v w
1/
x y z
Figura 1: Se alcanza el vértice u. Fuente [1].
u v w
1/ 2/
x y z
Figura 2: Se alcanza el vértice v . Fuente [1].
u v w
1/ 2/
3/
x y z
Figura 3: Se alcanza el vértice y . Fuente [1].
u v w
1/ 2/
4/ 3/
x y z
Figura 4: Se alcanza el vértice x. Fuente [1].
u v w
1/ 2/
4/5 3/
x y z
Figura 5: Se cierra el vértice x. Fuente [1].
u v w
1/ 2/
4/5 3/
x y z
Figura 6: Se cierra el vértice x. Fuente [1].
u v w
1/ 2/
4/5 3/6
x y z
Figura 7: Se cierra el vértice y . Fuente [1].
u v w
1/ 2/7
4/5 3/6
x y z
Figura 8: Se cierra el vértice v . Fuente [1].
u v w
1/8 2/7
4/5 3/6
x y z
Figura 9: Se cierra el vértice u. Fuente [1].
u v w
1/8 2/7 9/
4/5 3/6
x y z
Figura 10: Se alcanza el vértice w . Fuente [1].
u v w
1/8 2/7 9/
u v w
1/8 2/7 9/
u v w
1/8 2/7 9/12
y z s t
3/6 2/9 1/10 11/16
s t
z v u
y w
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
(s (z (y (x x) y) (w w) z) s) (t (v v) (u u) t)
Prueba
Por el Teorema del paréntesis se cumple que v es descendiente de un
vértice u.
u v w u v w
1/ 2/ 1/ 2/
4/ 3/
x y z x y z
(a) Se alcanza el vértice v . (b) Se alcanza el vértice x.
u v w
1/8 2/7 9/12
F B C
B
4/5 3/6 10/11
x y z
Figura 16: Bosque resultante de la ejecución de DFS en la Figura 13, con los
lados clasificados. Fuente [1].
s t
C B
F C
z v u
B C
y w
C
Teorema
En un bosque generado por DFS en un grafo no dirigido G , cada lado
de G o es tree edge o es un back edge.