Sie sind auf Seite 1von 14

Algoritmo de

Kruskal

Joseph B. Kruskal ((29 de enero de 1928 Maplewood, Nueva Jersey, 19
de septiembre de 2010)
1
fue un matemtico y estadstico estadounidense.
Biografa
-Investigador del Math Center (Bell-Labs), en 1956 descubri un algoritmo para la
resolucin del problema del rbol recubridor mnimo
-El objetivo del algoritmo de Kruskal es construir un rbol (subgrafo sin ciclos) formado
por arcos sucesivamente seleccionados de mnimo peso a partir de un grafo con pesos en
los arcos.
-Un rbol (spanning tree) de un grafo es un subgrafo que contiene todos sus vrtices o
nodos.
- Un grafo puede tener mltiples rboles. Por ejemplo, un grafo completo de cuatro nodos
(todos relacionados con todos) tendra 16 rboles.
Otra aplicacin menos obvia es que el rbol de coste total mnimo puede ser usado
como solucin aproximada al problema del viajante de comercio, el cual es NP-
completo. La manera formal de definir este problema es encontrar la trayectoria ms
corta para visitar cada punto al menos una vez. Ntese que si se visitan todos los
puntos exactamente una vez, lo que se tiene es un tipo especial de rbol. En el
ejemplo anterior, 12 de los 16 rboles son trayectorias de este tipo. Si se tiene una
trayectoria que visita algunos vrtices ms de una vez, siempre se puede soltar
algunos nodos del rbol. En general el peso del rbol total mnimo es menor que el del
viajante de comercio, debido a que su minimizacin se realiza sobre un conjunto
estrictamente mayor. Existen diferentes algoritmos y maneras de usar el rbol de coste
total mnimo para encontrar la solucin al problema del viajante de comercio (con
resultados cercanos al ptimo).
Familia: Joseph era hermano del matemtico y estadstico William Kruskal (autor de la
Prueba de Kruskal-Wallis), y del matemtico y fsico Martin Kruskal (autor de las
coordenadas de Kruskal-Szekeres).

Que es el algoritmo de Kruskal?
El algoritmo de Kruskal es un algoritmo
de la teora de grafos para encontrar un
rbol de expansin mnimo en un grafo
conexo y ponderado. Es decir,busca un
subconjunto de aristas que, formando un
rbol, incluyen todos los vrtices y no hay
ciclos y donde el valor total de todas las
aristas del rbol es el mnimo, a esto se le
llama arbol de expansion minimo.

Un ejemplo de rbol expandido
mnimo. Cada punto representa un
vrtice, el cual puede ser un rbol
por s mismo. Se usa el Algoritmo
para buscar las distancias ms cortas
(rbol expandido) que conectan todos
los puntos o vrtices.
Funciona de la siguiente manera:
se crea un bosque B (un conjunto de
rboles), donde cada vrtice del grafo
es un rbol separado
se crea un conjunto C que contenga a
todas las aristas del grafo
mientras C es no vaco
eliminar una arista de peso
mnimo de C
si esa arista conecta dos rboles
diferentes se aade al bosque,
combinando los dos rboles en un
solo rbol
en caso contrario, se desecha la
arista
Al acabar el algoritmo, el bosque
tiene un solo componente, el cual
forma un rbol de expansin mnimo
del grafo.
Complejidad del algoritmo

m el nmero de aristas del grafo y n el nmero de vrtices, el algoritmo de Kruskal
muestra una complejidad O(m log m) o, equivalentemente, O(m log n), cuando se ejecuta
sobre estructuras de datos simples. Los tiempos de ejecucin son equivalentes porque:
-m es a lo sumo n
2
y log n
2
= 2logn es O(log n).
-ignorando los vrtices aislados, los cuales forman su propia componente del rbol
de expansin mnimo, n 2m, as que log n es O(log m).
Se puede conseguir esta complejidad de la siguiente manera: primero se ordenan las
aristas por su peso usando una ordenacin por comparacin (comparison sort) con una
complejidad del orden de O(m log m); esto permite que el paso "eliminar una arista de
peso mnimo de C" se ejecute en tiempo constante. Lo siguiente es usar una estructura de
datos sobre conjuntos disjuntos (disjoint-set data structure) para controlar qu vrtices
estn en qu componentes. Es necesario hacer orden de O(m) operaciones ya que por
cada arista hay dos operaciones de bsqueda y posiblemente una unin de conjuntos.
Incluso una estructura de datos sobre conjuntos disjuntos simple con uniones por rangos
puede ejecutar las operaciones mencionadas en O(m log n). Por tanto, la complejidad total
es del orden de O(m log m) = O(m log n).
Con la condicin de que las aristas estn ordenadas o puedan ser ordenadas en un tiempo
lineal (por ejemplo, mediante el ordenamiento por cuentas o con el ordenamiento Radix),
el algoritmo puede usar estructuras de datos de conjuntos disjuntos ms complejas para
ejecutarse en tiempos del orden de O(m (n)), donde es la inversa (tiene un crecimiento
extremadamente lento) de la funcin de Ackermann.

Demostracin de la correctitud

Sea P un grafo conexo y valuado y sea Y el subgrafo de P producido por el
algoritmo. Y no puede tener ciclos porque cada vez que se aade una arista,
sta debe conectar vrtices de dos rboles diferentes y no vrtices dentro de
un subrbol. Y no puede ser disconexa ya que la primera arista que une dos
componentes de Y debera haber sido aadida por el algoritmo. Por tanto, Y es
un rbol expandido de P.
Sea Y
1
el rbol expandido de peso mnimo de P, el cual tiene el mayor nmero
de aristas en comn con Y. Si Y
1
=Y entonces Y es un rbol de expansin
mnimo. Por otro lado, sea e la primera arista considerada por el algoritmo que
est en Y y que no est en Y
1
. Sean C
1
y C
2
las componentes de P que conecta
la arista e. Ya que Y
1
es un rbol, Y
1
+e tiene un ciclo y existe una arista
diferente f en ese ciclo que tambin conecta C
1
y C
2
. Entonces Y
2
=Y
1
+e-f es
tambin un rbol expandido. Ya que e fue considerada por el algoritmo antes
que f, el peso de e es al menos igual que que el peso de f y ya que Y
1
es un
rbol expandido mnimo, los pesos de esas dos aristas deben ser de hecho
iguales. Por tanto, Y
2
es un rbol expandido mnimo con ms aristas en comn
con Y que las que tiene Y
1
, contradiciendo las hiptesis que se haban
establecido antes para Y
1
. Esto prueba que Y debe ser un rbol expandido de
peso mnimo.
Otros algoritmos para este problema son el algoritmo de Prim y el algoritmo de
Boruvka.

ejemplo



Este es el grafo original. Los nmeros
de las aristas indican su peso.
Ninguna de las aristas est resaltada.
AD y CE son las aristas ms
cortas, con peso 5, y AD se ha
elegido arbitrariamente, por tanto
se resalta.

Sin embargo, ahora es CE
la arista ms pequea que
no forma ciclos, con peso
5, por lo que se resalta
como segunda arista
La siguiente arista, DF
con peso 6, ha sido
resaltada utilizando el
mismo mtodo

La siguientes aristas ms
pequeas son AB y BE, ambas
con peso 7. AB se elige
arbitrariamente, y se resalta.
La arista BD se resalta en
rojo, porque formara un ciclo
ABD si se hubiera elegido.

El proceso contina marcando
las aristas, BE con peso 7.
Muchas otras aristas se marcan
en rojo en este paso: BC
(formara el ciclo BCE), DE
(formara el ciclo DEBA), y FE
(formara el ciclo FEBAD).

Finalmente, el proceso
termina con la arista EG
de peso 9, y se ha
encontrado el rbol
expandido mnimo con
peso total de 39.

Das könnte Ihnen auch gefallen