Você está na página 1de 3

Qu tienen en comn?

rboles generadores mnimos (MST)


Gregorio Hernndez Pealver UPM
Teora de Grafos

Electrificacin de Moravia (1926) Red de fibra ptica

Grafos ponderados
(G ,w)
1 a 3 b 4 f 6 5 d 3 5 6 g 4 c 2 e 1 2 h

rboles generadores mnimos


R+
1 a 3 b 4 f 6 5 d 3 5 6 g 4 c 2 e 1 2 h
1 2 3 5 Y la arista de menor peso de un ciclo? 7 4

w:A

Un rbol generador mnimo de G, MST(G), es un rbol generador con el menor peso posible.
1. En general no es nico 2. La arista de mayor peso de un ciclo no pertenece a MST(G).

Peso de un subgrafo H=(V 1 , A 1 )

w (H) = w(e)
e A1

Distancia en un grafo ponderado

d: V V

R+

w(G) = 42

d(u,v)=min{w(C) | C camino de u a v}

d(a,h) = 5

(G,w)

rboles generadores mnimos


Un rbol generador mnimo de G, MST(G), es un rbol generador con el menor peso posible. 1 a 3 b 4 f 6 5 d 3 5 6 g 4
6 5 4 7

Algoritmos para calcular MST


Algoritmo de Prim
1 a 3 b 4 f 6 5 d 3 5 c 2 6 g 4 e 1 2 h 1. Seleccionar un vrtice arbitrario u. 2. Hacer S={u} y T= . 3. Mientras S V: a) Elegir v VS vecino de un z S con w(vz) mnimo b) Insertar v en S. c) Insertar vz en T. Estrategia: Se parte de un vrtice y se van alcanzando los dems, de uno en uno, del modo ms econmico posible

c 2 e 1 2 h

3. Un conjunto C de aristas de G es un corte si existe una particin (V1, V2 ) de V tal que C contiene todas las aristas con un extremo en V1 y otro en V2 . 4. La arista de menor peso de un corte pertenece a MST(G).
Y la arista de mayor peso de un corte?

(G,w)

(G,w)

Algoritmo de Prim
Primera aproximacin

Complejidad

Algoritmo de Prim
Segunda aproximacin

Complejidad

En el paso 3, si S tiene k vrtices hay n-k vrtices en V-S. Por tanto, necesitamos hallar la arista de mnimo peso entre k(n-k) aristas. Como k(n-k)<(n-1)2, el coste resulta O(n2). Pero el bucle del paso 3 se repite n-1 veces luego la complejidad es

Una buena estructura de datos mejora la complejidad


Consideremos las listas S y V-S . A cada vrtice z de V-S le etiquetamos inicialmente as: t(z)=w(uz) si existe la arista uz, t(z)= si no existe Ahora en el paso 3, se elige el vrtice z de V-S con etiqueta mnima, se halla v S tal que t(z)= w(vz) , se aade z a S y se actualizan las etiquetas: Si x Z hacemos t(x):=min{t(x), w(vx)}

O(n3)

1 a 3 b 4 f 6 5 d 3 5

c 2 6 g 4 e 1 2 h

S: d V-S: a b c e f g h 5 6 5 6 S: d a V-S: b c e f g h 3 1 5 3 6 S: d a c e V-S: b f g h 3 5 1 2


a 3 b 4

1 6 5 d 3 5 f

c 2 6 g 4 e 1 2 h

S: d a c e g V-S: b f 3 4 S: d a c e g h V-S: b f 3 4

h 2

S: d a c V-S: b e f g h 3 2 5 3 6

S: d a c e g h b V-S: f 4

Algoritmo de Prim

Complejidad

Algoritmos para calcular MST


Algoritmo de Kruskal
1 a 3 b 4 f 6 5 d 3 5 c 2 6 g 4 e 1 2 h 1. Hacer T= . 2. Mientras T no sea generador: a) Elegir una arista uv tal que T uv no tenga ciclos y w(uv) sea mnimo. b) Insertar uv en T. Estrategia: Se eligen aristas de la forma ms barata, sin formar ciclos Preproceso: Ordenar las aristas de G por su peso

Ahora, en cada paso el mnimo se calcula entre n-k etiquetas. As el coste del clculo de todos los mnimos es

n (n 1) (n 1) + (n 2) + ... +1 = O (n2 ) 2
El n total de actualizaciones de etiquetas es q, pues cada arista se considera slo una vez. Por tanto el coste total es O(n2) + O(q) = O(n2)

(G,w)

Algoritmo de Kruskal

Complejidad

Algoritmo de Kruskal

Complejidad
a b c d e f g h

Preproceso. Ordenar las aristas por su peso O(q logq) Paso 2. Hay que elegir la arista de menor peso que no forme ciclo con las aristas previamente elegidas. Este paso se efecta n-1 veces. Cmo detectar que no se forme un ciclo? Asignando etiquetas a los vrtices de modo que vrtices de la misma componente conexa reciban la misma etiqueta. 1 a 3 b 4 f 6 5 d 3 5

c 2 6 g 4 e 1 2 h

1 2 3 4 5 6 7 8 1 2 1 4 5 6 7 8 1 2 1 4 5 6 5 8 1 2 1 4 5 6 5 5 1 2 1 4 1 6 1 1 1 1 1 4 1 6 1 1 1 1 1 4 1 1 1 1 1 1 1 1 1 1 1 1

(G,)

Algoritmo de Kruskal

Complejidad

Algoritmo de Kruskal

Demostracin

Preproceso. Ordenar las aristas por su peso O(q logq) Paso 2. Coste de las comparaciones: Se hace una comparacin por arista O(q) Coste de las actualizaciones en las etiquetas: En el peor de los casos se actualizan los n vrtices en cada uno de los n-1 pasos. En total O(n2) Coste total O(q logq) + O(q) + O(n2) = O(n2+ q log q)

Sea T el rbol que se obtiene en el algoritmo Primero. T es rbol generador Segundo. T es de peso mnimo? Supongamos que no . S rbol de peso mnimo con ms aristas en T (en orden) ek la 1 tal que ek T, ek S S+ ek contiene un nico ciclo C, ek C Como T es rbol, existe e* C, e* T, peso de ek? En su momento w(ek) mnimo luego w(ek)w(e*) Formamos el grafo S*=S+ek-e* S* tiene n-1 aristas, es conexo y su peso es w(S*) w(S) Adems tiene una arista ms (ek) en comn con T que el rbol S Contradiccin con S!

Algoritmo de Borvka
Estrategia: Se toma un bosque generador F y se une cada componente de F con otra por una arista de mnimo peso 2 6 g 4 e 1 2 h 1. F bosque trivial con los vrtices de G 2. Mientras F no sea conexo, repetir Para cada componente F de F elegir la arista de mnimo peso que la conecta con otra (S=conjunto de estas aristas) Aadir S al bosque F

Otros problemas sobre rboles generadores Dado un grafo ponderado que representa las conexiones entre ciertos nodos, disear un rbol generador que: - Minimice la mxima distancia entre nodos.
RBOL GENERADOR DE DIMETRO MNIMO

1 a 3 b 4 f 6 5 d 3 5

- Indique cules son las caminos mnimos desde un nodo a los restantes.
RBOL GENERADOR DE CAMINOS MNIMOS

- Minimice la diferencia entre pesos de sus aristas.


RBOL GENERADOR UNIFORME

- Conecte slo una parte de los nodos (vrtices terminales)


RBOL MNIMO DE STEINER

- Minimice la suma de los pesos de TODOS los caminos


RBOL de RUTAS CON MNIMO COSTE (MRCT)

(G,w)

Você também pode gostar