rboles
Gregorio Hernndez Pealver UPM
Teora de Grafos
Propiedades Entre cada par de vrtices existe un camino nico. Toda arista es puente. Un rbol de n vrtices tiene n-1 aristas Todo rbol no trivial tiene al menos dos hojas
16
13
Recorrido en profundidad
c a d b g f h e Camino: a Camino: a,b Camino: a,b,f Camino: a,b,f,h Camino: a,b,f,h,e Camino: a,b,f,h,e,c Camino: a,b,f,h,e,c,d Camino: a,b,f,h,e,c Camino: a,b,f,h,e Camino: a,b,f,h,e,g
Recorrido en anchura
c a d b g f h e Frente: a Frente: b,g,d,c Frente: g,d,c,f Frente: d,c,f,e Frente: c,f,e,h Frente: f,e,h Frente: e,h Frente: h
RBOL CON RAZ Existe r tal que para todo v hay un camino rv r
G. Tarry
Cada vez que entramos en un pasadizo, dejamos dos marcas al comienzo. Cuando llegamos a una bifurcacin nueva dejamos una marca en el pasadizo que nos llev hasta all; en cambio, si es una bifurcacin que ya habamos visitado antes, dejamos tres marcas. Cuando lleguemos a una bifurcacin tenemos que continuar por los pasadizos que no tengan ninguna marca o los que tengan una sola.
r RBOL CON RAZ r r u RBOL CON RAZ rbol binario rbol m-ario Cada padre a lo ms m hijos u
v z
Recorrido en profundidad
v u w y z x t w 0 v 1
Recorrido en profundidad
Proposicin 1 Si e=ab no es arista de T, df(a)< df(b) entonces a es ascendiente de b en el rbol T x 3 4 u 2 w 0 v 1
u 2
Cuando la bsqueda alcanza a la arista e est disponible. Como e T la bsqueda debe visitar b antes de retroceder ms all de a
x 3 4
y 6
y 6
Recorrido en profundidad
Aplicaciones
v x y w x v y u w v x z t z t
v u w y
x t z
v u w y
x t z
Dem. ) Si r tiene slo un hijo v el subrbol Tv es generador de G-r, luego G-r es conexo
w 1
x 3
) Si r tiene dos hijos x,w entonces todos los caminos de x a w pasan por r luego por (Prop. 2) r es un vrtice corte
u 2
z 4 u t 5 y 6
w 00 v 10 u 20 x 33 z 43
) Supongamos que l(b) < df(a) para todo hijo b de a r Dos vrtices cualesquiera de Ta se pueden unir por un camino que no pasa por v. as por (Prop 2) v no es vrtice-corte
a t 53 y 63
Proposicin 4
r
entonces no hay ninguna arista roja de retroceso que enlace los descendientes de b con los ascendientes de a. En particular TODOS los caminos de b a r pasan por el vrtice a. Luego a es vrtice-corte
a b
Clculo de l(z)
Para todo vrtice v de T, l(v) es el menor de los siguientes valores: df(v) df(z) para todo z unido a v por una arista de retroceso l(y) para todo hijo y de v Esto permite calcular las etiquetas l al tiempo que se construye T
Complejidad O(q)
Bloques
Sea G un grafo. Un bloque de G es un subgrafo conexo maximal tal que ninguno de sus vrtices es vrtice-corte Los bloques de un grafo G pueden ser:
ALGORITMO (BLOQUES)
Entrada: G, grafo conexo Salida: Los bloques de G Se calculan T, rbol DFS y K, conjunto de vrtices-corte Se inicia el contador de bloques i:=0 Para cada v vrtice corte de K (en orden decreciente de df) Para cada hijo z de v en el rbol T Si l(z) df(v) y llamamos Tz subrbol de raz z i:=i+1 Bi:= V(Tz) {v} T:= T- V(Tz) Devolver los conjuntos B1, B2, , Bs G-{B1,, Bs} bloques de G
Complejidad O(q)
C 3 4 4 6 3 7 7 L ={1, 2, 3, 4, 5, 6, 7, 8, 9}
9
6 8 5
3, 4, 4, 6, 3, 7, 7
4 Cdigo de longitud n - 2 Clave: arista primer elemento de C con menor de L que no est en C
8 5 7 6
Clave: vecino de la hoja con menor etiqueta hasta que restan slo dos vrtices
N de cdigos es nn 2
C 3 4 4 6 3 7 7
3
C 3 4 4 6 3 7 7
9
L ={1, 2, 3, 4, 5, 6, 7, 8, 9}
L ={1, 2, 3, 4, 5, 6, 7, 8, 9}
4
8 5 7 6
8 5 7 6
N de cdigos es nn 2
N de cdigos es nn 2
C 3 4 4 6 3 7 7
3
C 3 4 4 6 3 7 7
9
L ={1, 2, 3, 4, 5, 6, 7, 8, 9}
L ={1, 2, 3, 4, 5, 6, 7, 8, 9}
4
8 5 7 6
8 5 7 6
N de cdigos es nn 2
N de cdigos es nn 2
C 3 4 4 6 3 7 7
3
C 3 4 4 6 3 7 7
9
L ={1, 2, 3, 4, 5, 6, 7, 8, 9}
L ={1, 2, 3, 4, 5, 6, 7, 8, 9}
4
8 5 7 6
8 5 7 6
N de cdigos es nn 2
N de cdigos es nn 2
C 3 4 4 6 3 7 7 L ={1, 2, 3, 4, 5, 6, 7, 8, 9}
9
Frmula de Cayley El n de rboles etiquetados de n vrtices es nn 2 . (El grafo completo Kn tiene nn 2 rboles generadores diferentes) Cuntos grafos simples hay con n vrtices etiquetados? No etiquetados 4 n=4
n 2 2
8 5 7 6
38
Complejidad de un algoritmo
Mide el trabajo realizado para resolver un problema utilizando ese algoritmo
tiempo de ejecucin, espacio de almacenamiento en funcin del tamao de los datos de entrada en el peor caso, en media
Modelo RAM real Un n real se almacena en una unidad de memoria Operaciones primitivas de coste unitario Coste del algoritmo T(n) T(n) O(f(n)) kN, aR+, tales que T(n) af(n) nk rdenes de funciones de coste: O(logn), O(n), O(nlogn), O(n2), Algoritmo eficiente == Coste polinmico
Complejidad de un problema
Complejidad
2 8 32 100
log n 1 3 5 6
n 2 8 32 100
n2 4 64 1024 104
Un siglo tiene 3,1109 segundos Si la edad del Universo es de 15000 millones de aos, el big-bang ocurri hace 4,51017 segundos