Você está na página 1de 6

o

k
|

c
o
k |

Hacia adelante
Hacia atrs
Cruzada
Cuerdas
RProf c/G.Dirigido
t 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
Color o | c k
t o | o
d 1 2 3 4 12 6 7
f 14 11 10 5 13 9 8
yex.Ady() |
k

o |
c

Escogiendo los nodos en orden alfabtico:


G:
Foresta de recorrido - Gt:
t= 1 2 3 4 5 6 7 8 9 10 11 12 13 14
( ( ( ( ) ( ( ) ) ) ) ( ) )
o | c c | k k o
f[]>d[o]
f[]<d[k]
f[]<d[k]
RProf c/G.Dirigido Estructura de Parntesis
Se muestran los eventos de descubrimiento de cuerdas hacia adelante y cruzadas.
Condiciones para el etiquetado de cuerdas:
En RProf_visit(V x) {
()
yex.Ady() {
if (color[y]==blanco) {
t[y]=x; // xy es un arco cubriente en la foresta de recorrido.
Etiqueta[xy]=cubriente;
Rprof_visit(y);
}
elseif (color[y]==gris) Etiqueta[xy]=hacia_atras;
elseif (f[y]>d[x]) Etiqueta[xy]=hacia_adelante;
else Etiqueta[xy]=cruzada;
}
()
}
o
k
|

c
o
k
|

RProf c/G.NoDirigido
t 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
Color o | c k
t o | c
d 1 2 3 4 6 5 8
f 14 13 12 11 7 10 9
yex.Ady() |
c
k

|
c

c
k

Escogiendo los nodos en orden alfabtico:


El nodo desde el que se acaba de invocar RProf_visit
vuelve a aparecer ac por la duplicidad de la arista:
eo.Ady() & oe.Ady() (a menos que se evite tal
duplicidad en la L.Ady. del grafo NoDirigido). Sin
embargo, el retorno no es considerado cuerda por
cuanto ya fue descubierto como cubriente.
G:
Foresta de recorrido - Gt:
t= 1 2 3 4 5 6 7 8 9 10 11 12 13 14
( ( ( ( ( ( ) ( ) ) ) ) ) )
o | c k k c | o
RProf c/G.NoDirigido Estructura de Parntesis
x y x y
x
y
x
y
En G.NoDir.
En G.Dir.
Arcos Cubrientes
Cuerda hacia adelante
Arcos Cubrientes
Cuerda hacia atrs
Debido a que el grafo es no-dir.,
Rprof_visit(y) hallar a xey.Ady()
&& color[x]==gris, por lo tanto
Etiqueta[xy]=hacia_atrs.
Debido a que el grafo es no-dir.,
Rprof_visit(y) hallar a xey.Ady() &&
color[x]==blanco, por lo tanto
Etiqueta[xy]=cubriente. El recorrido
continuar por los arcos cubrientes
tardos en sentido contrario, hasta
volver al inicio, el cual estar gris
y se etiquetar esa ltima cuerda
hacia atrs.
No se muestran los eventos de descubrimiento de cuerdas hacia adelante y
cruzadas, porue todas las cuerdas son hacia atrs!
C
u
e
r
d
a
c
r
u
z
a
d
a
C
u
b
r
i
e
n
t
e
Cubrientes
tardos
Ejercicios:
1. Repita RProf sobre el grafo dirigido, escogiendo los nodos en orden alfabtico inverso. Compare&contraste las forestas
de recorrido resultantes: qu propiedades se mantienen y cules no (cantidad de rboles en la foresta, deteccin de
ciclos y circuitos feed-forward, cantidad de cuerdas cruzadas, etc.)?
2. Repita RProf sobre el grafo no-dirigido, escogiendo los nodos en orden alfabtico inverso. Compare&contraste las
forestas resultantes: qu propiedades se mantienen y cules no (cantidad de rboles en la foresta, deteccin de ciclos
y circuitos feed-forward, cantidad de cuerdas cruzadas, etc.)?
3. Escriba un algoritmo que reciba el vector t y un nodo q, y devuelva el camino desde la raz del rbol que contiene a q
hasta q mismo. Por ejemplo, para el recorrido mostrado en la 1ra diapositiva, RProf_path(t,c) debe devolver: <o,|,,c>
a) Escriba una versin recursiva de I RProf_path(V[] t, V q) D la complejidad temporal de su algoritmo.
b) Escriba una versin iterativa de I RProf_path(V[] t, V q) D la complejidad temporal de su algoritmo
4. Considere la siguiente estructura de parntesis de un recorrido en profundidad y conteste lo siguiente:
a) Diagrame la foresta de recorrido. Reconstruya los vectores t, d, f
b) Cuntos rboles tiene la foresta de recorrido y qu altura tiene cada rbol?
c) En qu intervalo de t estuvo Y gris? De qu color estaba Z en t=6?
d) Cuntas cuerdas hay?
5. Un punto circular en un grafo es un nodo que cae en un ciclo del grafo. Use o modifique RProf para calcular el vector de
bits C, tal que C[ueV] = 1 u es un punto circular y 0 si no lo es. D la complejidad temporal de su algoritmo.
a) Corra su algoritmo sobre el grafo dirigido de la 1ra diapositiva, escogiendo los nodos en orden alfabtico y luego en
orden alfabtico inverso. Devuelven el mismo vector C? Bajo qu condiciones se puede garantizar que RProf halle
correctamente todos los puntos circulares de un grafo dirigido?
b) Corra su algoritmo sobre el grafo no dirigido de la 3ra diapositiva, escogiendo los nodos en orden alfabtico y luego
en orden alfabtico inverso. Devuelven el mismo vector C? Bajo qu condiciones se puede garantizar que RProf
halle correctamente todos los puntos circulares de un grafo no dirigido?
t= 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
6. En un grafo dirigido, un nodo se dice Totalmente Conectado si existe algn camino desde l hacia todos los dems nodos
del grafo. Use o modifique RProf y/o RProf_visit para determinar si un nodo dado es Totalmente Conectado o no. D la
complejidad temporal de su algoritmo.
a) Corra su algoritmo sobre el grafo de la 1ra diapositiva, para el nodo o.
b) Corra su algoritmo sobre el grafo de la 1ra diapositiva, para el nodo .
7. En un grafo dirigido, un nodo se dice Completamente Alcanzable si existe algn camino desde todos los dems nodos del
grafo hasta l. Use o modifique RProf y/o RProf_visit para determinar si un nodo dado es Completamente Alcanzable o
no. D la complejidad temporal de su algoritmo.
a) Corra su algoritmo sobre el grafo de la 1ra diapositiva, para el nodo o.
b) Corra su algoritmo sobre el grafo de la 1ra diapositiva, para el nodo .
Ejercicios:

Você também pode gostar