Está en la página 1de 3

Qu tienen en comn?

Electrificacin de Moravia (1926)

rboles generadores
mnimos (MST)

Red de fibra ptica

Gregorio Hernndez Pealver


UPM
Teora de Grafos

Grafos ponderados
(G ,w)
c

e A1

w (H) = w(e)

5
d

h
4

Un rbol generador mnimo de G, MST(G),


es un rbol generador con el menor peso posible.

R+

w:A

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

rboles generadores mnimos

w(G) = 42

d: V V

d
5

5
d

4
f

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 .

6
g

e
1

2
h

4. La arista de menor peso de un corte


pertenece a MST(G).
Y la arista de mayor peso de un corte?

(G,w)

Y la arista de menor peso de un ciclo?

7
1

3
2

(G,w)

Algoritmos para calcular MST


Algoritmo de Prim

5
d

Estrategia: Se parte de un vrtice y se van


alcanzando los dems, de uno en uno, del
modo ms econmico posible

f
6

d(a,h) = 5

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

Un rbol generador mnimo de G, MST(G),


es un rbol generador con el menor peso posible.

2. La arista de mayor peso de un


ciclo no pertenece a MST(G).

R+

rboles generadores mnimos

1. En general no es nico

Distancia en un grafo ponderado

6
g

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.

(G,w)

4
7

Algoritmo de Prim

Algoritmo de Prim

Complejidad

Complejidad

Primera aproximacin

Segunda aproximacin

En el paso 3, si S tiene k vrtices hay n-k vrtices en V-S. Por

Una buena estructura de datos mejora la complejidad

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).

Consideremos las listas S y V-S .


A cada vrtice z de V-S le etiquetamos inicialmente as:

Pero el bucle del paso 3 se repite n-1 veces luego la complejidad es

O(n3)

5
d

4
f

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

1
a

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)}

6
g

5 6 5 6

e
1

2
h

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

Algoritmo de Prim

1
6

5
d

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

3 1 5 3 6

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

h
4

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

Algoritmos para calcular MST


Algoritmo de Kruskal

Ahora, en cada paso el mnimo se calcula entre n-k etiquetas.


As el coste del clculo de todos los mnimos es

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)

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

Complejidad

n (n 1)
(n 1) + (n 2) + ... +1 =
O (n2 )
2

h
2

1
6

4
f

Preproceso:
Ordenar las aristas de G por su peso

6
g

e
1

2
h

(G,w)

Estrategia: Se eligen aristas de la


forma ms barata, sin formar ciclos

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.

Algoritmo de Kruskal

Algoritmo de Kruskal

Complejidad

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.

d
3

1 2 1 4 5 6 7 8

1 2 3 4 5 6 7 8

6
g

1 2 1 4 5 6 5 8

e
1

2
h

(G,)

Algoritmo de Kruskal

Complejidad

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)

Estrategia: Se toma un bosque generador F


y se une cada componente de F con otra
por una arista de mnimo peso

c
6

5
d

4
f

6
g

e
1

2
h

(G,w)

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

Demostracin

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!

Otros problemas sobre rboles generadores

Algoritmo de Borvka

Algoritmo de Kruskal

1 2 1 4 5 6 5 5

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

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

- 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)

También podría gustarte