8/19/2019 Tema Recorridos
1/19
Recorridos 1
1 2
35
4 15
30
20
25
50
45
10
25
40
55
s t
a c
b d2
3 3
4
1
2
3
2
Recorridos en grafosRecorridos en grafos
8/19/2019 Tema Recorridos
2/19
Recorridos 2
Indice
• Introducción.• Búsqueda primero en profundidad.•
Búsqueda primero en anchura.• Usos de los recorridos.
– i!rafos ac"clicos.
– #rden topoló!ico.
8/19/2019 Tema Recorridos
3/19
Recorridos 3
Introducción
• Recorrido$ procedimiento sistem%tico dee&ploración de un !rafo mediante el e&amende todos sus '(rtices ) aristas.
• Un recorrido es eficiente si 'isita todos los'(rtices ) aristas en un tiempo proporcional asu número* esto es* en tiempo lineal.
8/19/2019 Tema Recorridos
4/19
Recorridos 4
Búsqueda primero en profundidad• Analogía$ deambular en un laberinto con una
cuerda ) un bote de pintura* para no perderse. – +e selecciona un '(rtice inicial s de ,* al que se fi-a un e&tremo de
la cuerda ) se pinta s como 'isitado. +e asi!na s a u /'(rtice encurso0.
– +e recorre , considerando una arista arbitraria /u* v0. +i la arista /u*v0 conduce a una '(rtice v )a 'isitado se retorna inmediatamente al'(rtice u.
– +i /u* v0 conduce a un '(rtice no 'isitado v* entonces se e&tiende lacuerda ) se fi-a en v. +e pinta v como 'isitado ) se asi!na a u /'(rtice en curso0* repitiendo el mismo procedimiento anterior.
– +i todas las aristas incidentes a un '(rtice conducen a '(rtices )a'isitados* se enrolla la cuerda 'uelta atr%s a la arista que condu-o au ) se repite el procedimiento anterior para las aristas incidentes queno se han recorrido antes.
– l proceso termina cuando la 'uelta atr%s conduce al '(rtice inicial s
) no ha) m%s aristas incidentes sin e&plorar desde s.
8/19/2019 Tema Recorridos
5/19
Recorridos 5
Búsqueda primero en profundidad• Animación
a b
d e
c
a b
d e
c
a b
d e
c
a b
d e
c
a b
d e
c
a b
d e
c
8/19/2019 Tema Recorridos
6/19
Recorridos 6
Búsqueda primero en profundidad• l recorrido B es una !eneraliación del recorrido
preorden de un %rbol.• +e pueden identificar cuatro tipos de aristas durante el
recorrido$ – Aristas de descubrimiento$ son aquellas aristas que conducen al
descubrimiento de nue'os '(rtices. ambi(n se les llama aristas de
árbol . – Aristas de retorno$ son las aristas que conducen a '(rtices
antecesores )a 'isitados en el %rbol.
– Aristas de avance$ son las aristas que conducen a '(rticesdescendientes en el %rbol.
– Aristas de cruce$ son aristas que conducen a un '(rtice que no esancestro de otro o a '(rtices que est%n en diferentes %rboles.
• as aristas de descubrimiento forman un %rbol decubrimiento de los componentes conectados del '(rtice
inicial s.
8/19/2019 Tema Recorridos
7/19
Recorridos 7
6l!oritmo recursi'o Brecorre7!rafo7bpp/0
8
for cada '(rtice v
marca9v:;+I?
for cada '(rtice v
if /marca9v:;;+I0B/v0?
@
B/u0
8
marca9u:;=I+I6#?
for cada '(rtice v ad)acente a u
if /marca9v:;;+I0
B/v0?@
• #rden de comple-idad del recorrido en profundidad$
– Aon lista de ad)acencia* se recorre cada elemento de lista una'e* #/n e0.
– Aon matri de ad)acencia* para cada nodo se buscan susad)acentes* #/n20.
8/19/2019 Tema Recorridos
8/19
Recorridos 8
6l!oritmo recursi'o B
• 6pplet de animación del recorrido B
http://var/www/apps/conversion/tmp/scratch_6/DFS%5CDFSjar.htmlhttp://var/www/apps/conversion/tmp/scratch_6/DFS%5CDFSjar.htmlhttp://var/www/apps/conversion/tmp/scratch_6/DFS%5CDFSjar.html
8/19/2019 Tema Recorridos
9/19
8/19/2019 Tema Recorridos
10/19
Recorridos 10
Búsqueda primero en anchura• Animación
a b
d e
c
C
a b
d e
c
C 1
1
1
a b
d e
c
C 1
1
1 2
8/19/2019 Tema Recorridos
11/19
Recorridos 11
Búsqueda primero en anchura• l recorrido B6 es una !eneraliación del recorrido por
ni'eles de un %rbol.• +e pueden identificar dos tipos de aristas durante el
recorrido$ – Aristas de descubrimiento$ son aquellas aristas que conducen al
descubrimiento de nue'os '(rtices.
– Aristas de cruce$ son aristas que conducen a un '(rtice )a'isitado.
• as aristas de descubrimiento forman un %rbol decubrimiento de los componentes conectados del '(rtice
inicial s.
8/19/2019 Tema Recorridos
12/19
Recorridos 12
6l!oritmo B6B6/v0
8 marca9v: ; =I+I6#? InsertaAola/v, A0 while not s=ac"aAola/A0 8
u ; +uprimirAola/A0?
for cada nodo y ad)acente a u 8if /marca9 y:;;+I0 8
marca9 y: ; =I+I6#? InsertaAola/ y* A0?
@
@ @@
recorre7!rafo7bpa/0
8 for cada '(rtice v
marca9v:;+I?
for cada '(rtice v
if /marca9v:;;+I0
B6/v0?
@
• #rden de comple-idad del recorrido en anchura$ – Aon lista de ad)acencia$ #/n e0. – Aon matri de ad)acencia$ #/n20.
8/19/2019 Tema Recorridos
13/19
Recorridos 13
>ecorrido B6• 6pplet de animación del recorrido B6
http://var/www/apps/conversion/tmp/scratch_6/DFS%5CBFSjar.htmlhttp://var/www/apps/conversion/tmp/scratch_6/DFS%5CBFSjar.htmlhttp://var/www/apps/conversion/tmp/scratch_6/DFS%5CBFSjar.html
8/19/2019 Tema Recorridos
14/19
Recorridos 14
Usos de los >ecorridos• 6mbos recorridos se pueden usar para resol'er los si!uientes problemas$
– robar que , es conectado.
– #btener un %rbol de e&pansión de ,. – #btener los componentes conectados de ,. – #btener un camino entre dos '(rtices dados de ,* o indicar que no e&iste tal camino.
• l recorrido B se usa para$ – #btener un ciclo en ,* o indicar que , no tiene ciclos.
• l recorrido B6 se usa para$
– #btener para cada '(rtice v de ,* el número m"nimo de aristas de cualquier camino entre s ) v.
8/19/2019 Tema Recorridos
15/19
8/19/2019 Tema Recorridos
16/19
Recorridos 16
i!rafos ac"clicos• Un !rafo es ac"clico si durante un recorrido B no
e&isten aristas de 'uelta atr%s o retorno.• 6l!oritmo$ recorrer el di!rafo usando B )
numerando los nodos nue'os en el recorrido. +i enal!ún momento en una arista de retorno un nodo
descendiente tiene un ni'el de profundidad menorque el antecesor* entonces e&iste un ciclo.
1
5
3 4
2
E F
arista de retorno
8/19/2019 Tema Recorridos
17/19
Recorridos 17
#rden topoló!ico• Ordenamiento topológico de un digrafo acíclico$ orden lineal de los '(rtices coloc%ndolos a lo lar!o
de una l"nea horiontal de tal manera que todas las aristas ten!an una dirección de iquierda a
derecha.• -emplo$ las tareas de un pro)ecto de construcción.• 6l!oritmo$ usar una 'ersión modificada de B.
orden7topolo!ico/'0 GD orden in'erso DG8
marca9':;=I+I6#? for cada '(rtice H en lista7ad)acencia/'0
if /marca9H:;;+I0 orden7topolo!ico/H0? imprime/'0?
@
8/19/2019 Tema Recorridos
18/19
Recorridos 18
#rden topoló!ico• Ejemplo
• Orden topológico:
1 2 3 4 5 E
1 3 2 4 5 E
2 1 5 3 4 E
1
5
3
4
2
E
1 2 3 4 5 E
8/19/2019 Tema Recorridos
19/19
Recorridos 19
Indice
1. Introducción.2. efiniciones.
3. >ecorridos en !rafos.
4. 6l!oritmos de caminos m%s cortos.
5. rbol de cubrimiento de costo m"nimo.
E. Jlu-o en redes. Jlu-o m%&imo.
http://tema_dijkstra.ppt/http://tema_mst.ppt/http://tema_flujoredes.ppt/http://tema_flujoredes.ppt/http://tema_mst.ppt/http://tema_dijkstra.ppt/