Sie sind auf Seite 1von 5

rboles de recubrimiento mnimo

Sea G=(V, E) un grafo conexo y ponderado.


Se llama rbol de recubrimiento de G al subgrafo que incluye todos los vrtices de G
y que es conexo y acclico.
Se llama rbol de recubrimiento mnimo de G, al rbol de recubrimiento de G tal que
la suma de los pesos de todos sus arcos es mnima.
Ejemplo: La lnea gruesa muestra un rbol de recubrimiento mnimo del grafo G.

Tcnica Greedy
Un algoritmo greedy (voraz, vido, codicioso, avaro, devorador o goloso) es aquel
que, para resolver un problema, sigue una metaheurstica consistente en elegir la
opcin que parece mejor en cada paso con la esperanza de llegar a una solucin
general ptima. Estos algoritmos operan en fases, en cada fase se toma una
decisin que parece buena, sin importar las consecuencias futuras.
El principio es: La suma de los ptimos locales es el ptimo global.
Normalmente la tcnica se aplica a problemas de optimizacin.
Presentamos dos algoritmos Greedy para hallar el rbol de recubrimiento mnimo de
un grafo conexo y ponderado G.

El algoritmo de Kruskal (Joseph Bernard Kruskal 1956)


Entrada: Un grafo G=(V, E) conexo ponderado.
Salida: Un rbol T de recubrimiento mnimo para G.
En cada paso se elige la opcin obvia: el arco de menor peso (que an no haya sido
seleccionado y que no de lugar a un ciclo).
Debe notarse que durante el desarrollo del algoritmo el grafo subyacente no
necesariamente es un rbol.
A0 { }
V0 { }
PARA k = 1 hasta |V| -1
Ak Ak-1 { (vi,vj) }
Vk Vk-1 { vi, vj }

donde (vi,vj) es un arco de menor peso en E Ak-1


tal que Tk=(Vk, Ak) es acclico

FinPARA
Devolver T|V| -1

El algoritmo de Prim (Robert Clay Prim 1957)


Entrada: Un grafo G=(V, E) conexo ponderado.
Salida: Un rbol T de recubrimiento mnimo para G.
Se marca un vrtice elegido al azar.
En cada paso se elige la opcin obvia: el arco de menor peso, de entre todos los
arcos con un vrtice no marcado y el otro vrtice marcado. Una vez elegido el arco,
se marca el vrtice no marcado del arco elegido.
V0 { v0 }
donde v0 es un vrtice arbitrario de G.
T0 { }
PARA k = 1 hasta |V| -1
Vk Vk-1 { (vj) }
Tk Tk-1 { (vi,vj) }
donde (vi,vj) es el arco de menor peso tal que
vj est en V - Vk-1 y vj es adyacente a algn vrtice vi en Vk-1
FinPARA
Devolver T|V| -1

A continuacin presentamos un ejemplo de corrida del Algoritmo de Kruskal (tomado


del libro de Cormen) (note que cuando un arco es de menor peso, pero da lugar a un
ciclo se lo ignora):

A continuacin presentamos un ejemplo de corrida del Algoritmo de Prim (tomado del


libro de Cormen):

Resultado 3:
Los Algoritmos de Kruskal y de Prim obtienen un rbol de recubrimiento.
Prueba:
Sabemos que la entrada a los algoritmos es un grafo G conexo con |V| vrtices.
Y, por construccin de los algoritmos, obtenemos como salida un subgrafo G acclico
con |V| -1 arcos.
Mostraremos que G es conexo y que tiene |V| vrtices.
En efecto, supongamos que G tiene T1,, Tr componentes.
Sean |V1|,,|Vr| el nmero de vrtices de estos componentes.
Sabemos por construccin- que no hay ciclos en G. Por lo tanto tampoco hay ciclos
en cada componente Ti. Y como cada componente Ti es conexo entonces, por
definicin, cada Ti es un rbol.
Por el resultado 2, cada Ti tiene |Vi| -1 arcos.
Sumemos los arcos de todos los rboles Ti, que obviamente deben igualar los arcos
del grafo G. Es decir:
r

i 1

(|Vi| - 1) = |V| - 1. (*)


r

Como

i 1

(|Vi| - 1) =

i 1

|Vi| - r. La relacin (*), que es cierta, no es otra que:

|Vi| - r = |V| - 1.

|Vi| = |V| - 1 + r

i 1
r
i 1

Es decir:
(que es cierta)

Supongamos que r 2, entonces:


r

|Vi| = |V| - 1 + r |V| - 1 + 2

Es decir:

|Vi| |V| + 1

Lo cual es imposible pues G se obtiene

i 1
r
i 1

de G que slo tiene |V| vrtices.


As pues, r = 1. Con lo que:
i) G es conexo (de r=1 slo componente), y
r

ii)

i 1

|Vi| = |V| -1 + 1 = |V|. Es decir, el nmero de vrtices de G es |V|.

Por lo tanto, como G es acclico, conexo y de |V| vrtices, resulta ser un rbol de
recubrimiento para G.

Das könnte Ihnen auch gefallen