You are on page 1of 7

qwertyuiopasdfghjklzxcvbn

mqwertyuiopasdfghjklzxcv
bnmqwertyuiopasdfghjklzx
cvbnmqwertyuiopasdfghjkl
Algoritmo Kruskal
Estructuras Computacionales III
zxcvbnmqwertyuiopasdfghj
klzxcvbnmqwertyuiopasdfg
hjklzxcvbnmqwertyuiopasd
fghjklzxcvbnmqwertyuiopa
sdfghjklzxcvbnmqwertyuio
pasdfghjklzxcvbnmqwertyu
iopasdfghjklzxcvbnmqwert
yuiopasdfghjklzxcvbnmqwe
rtyuiopasdfghjklzxcvbnmq
wertyuiopasdfghjklzxcvbn
mqwertyuiopasdfghjklzxcv
bnmqwertyuiopasdfghjklzx
Luis Alejandro Arellano Lpez

El algoritmo de kruskal es un algoritmo de recubrimiento minimo conexo


ponderado, o sea que va unir todos los nodos formando un rbol, tomando la
aristas que tengan un peso que siempre sea menor. Este 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.
El algoritmo se basa en una propiedad clave de los rboles que permite estar
seguros de si un arco debe pertenecer al rbol o no, y usar esta propiedad para
seleccionar cada arco. Ntese en el algoritmo, que siempre que se aade un
arco (u,v), ste ser siempre la conexin ms corta (menor coste) alcanzable
desde el nodo u al resto del grafo G. As que por definicin ste deber ser
parte del rbol. Este algoritmo es de tipo voraz (tambin llamado greedy) ya
que a cada paso, ste selecciona el arco ms barato y lo aade al subgrafo.
Este tipo de algoritmos pueden no funcionar para resolver otro tipo de
problemas, por ejemplo para encontrar la ruta ms corta entre los nodos a y b.
CARACTERSTICAS

Algoritmo basado en las aristas


Agregar las aristas , uno a la vez, en orden de peso creciente
El algoritmo mantiene A un bosque de rboles. Una arista es aceptada
si se conecta vrtices de distintos rboles
Necesitamos una estructura de datos que mantiene una particin, es
decir ,a coleccin de conjuntos disjuntos

EJEMPLO
1- Tenemos un grafo como observamos las aristas son los conectores entre
dos vrtices o nodos ( bolitas de color mbar y estn enumeradas del 1
al 8) estas contienen un peso. luego elegimos la arista con menor peso
(marcada de rojo)

2- A este proceso de aristas se le suma el siguiente arista que sea


menor(obviamente diferente al que habamos elegido) con peso en este
caso 29

3- elegimos a otra que tenga el menor peso (en este caso 31)

4- nos ubicamos el los vrtices 2 y 8 , si en la arista que los conecta


hubiera 32 como peso no se debe elegir ya que debe ser un rbol que
es un grafo no cclico (no forma un ciclo o una cerradura de vrtices).
por lo tanto y en este ejemplo el 32 esta en el vrtice 2 y 5.

5- seguimos tomando las aristas y que no formen un ciclo, estas tratan de


conectar todos los vrtices

6- En este punto del proceso vemos que como caso especial


que habamos visto, no tomamos la arista de los vrtices 2 y 3,
pues formara un ciclo

7- Finalmente se han unido los vertices, sin formar un cilco en las aristas

ALGORITMO
1
mtodo Kruskal(Grafo):
2
inicializamos MST como vaco
3
inicializamos estructura unin-find
4
ordenamos las aristas del grafo por peso de menor a
mayor.
5
para cada arista e que une los vrtices u y v
6
si u y v no estn en la misma componente
7
agregamos la arista e al MST
8
realizamos la unin de las componentes
de u y v

You might also like