Está en la página 1de 29

Kruskals algorithm

Randy Consuegra
Universidad del Norte

19 de septiembre de 2015

Randy C (UniNorte)

Kruskals algorithm

19 de septiembre de 2015

1 / 29

Indice

Kruskal
Introduccion
Algoritmo
Ejemplos
Validez
Aplicaciones
Referencias

Randy C (UniNorte)

Kruskals algorithm

19 de septiembre de 2015

2 / 29

Kruskal

Indice

Kruskal
Introduccion
Algoritmo
Ejemplos
Validez
Aplicaciones
Referencias

Randy C (UniNorte)

Kruskals algorithm

19 de septiembre de 2015

3 / 29

Kruskal

Introducci
on

Indice

Kruskal
Introduccion
Algoritmo
Ejemplos
Validez
Aplicaciones
Referencias

Randy C (UniNorte)

Kruskals algorithm

19 de septiembre de 2015

4 / 29

Kruskal

Introducci
on

Introduccion

Kruskal
Es un algoritmo MST (minimum spanning tree) voraz descubierto por
Joseph Kruskal, que trabajaba en Math Center (Bell-Labs) en 1956.
Idea Basica
Recorrer todos los vertices en orden creciente de peso.

Randy C (UniNorte)

Kruskals algorithm

19 de septiembre de 2015

5 / 29

Kruskal

Introducci
on

Introduccion

Procedimiento
1 Elegir una arista con el menor peso.
2

En cada etapa elija una arista sin seleccionar, que no cree un ciclo.

Continue hasta que un arbol expandido sea obtenido.

Randy C (UniNorte)

Kruskals algorithm

19 de septiembre de 2015

6 / 29

Kruskal

Introducci
on

Introduccion

Procedimiento
NOTA: Si el grafo tiene p vertices, entonces el algoritmo terminara
despues de elegir p-1 vertices.
Si el grafo no es conexo, hay que examinar todas las aristas sin encontrar
el arbol de expansion.

Randy C (UniNorte)

Kruskals algorithm

19 de septiembre de 2015

7 / 29

Kruskal

Introducci
on

Introduccion

Complejidad
El tiempo de ejecucion de este programa esta dominado por el consumo de
tiempo al procesar las aristas de la cola de prioridad
Su complejidad es n = (Alog(A))

Randy C (UniNorte)

Kruskals algorithm

19 de septiembre de 2015

8 / 29

Kruskal

Algoritmo

Indice

Kruskal
Introduccion
Algoritmo
Ejemplos
Validez
Aplicaciones
Referencias

Randy C (UniNorte)

Kruskals algorithm

19 de septiembre de 2015

9 / 29

Kruskal

Algoritmo

.
Figura: Pseudocodigo
Randy C (UniNorte)

Kruskals algorithm

19 de septiembre de 2015

10 / 29

Kruskal

Ejemplos

Indice

Kruskal
Introduccion
Algoritmo
Ejemplos
Validez
Aplicaciones
Referencias

Randy C (UniNorte)

Kruskals algorithm

19 de septiembre de 2015

11 / 29

Kruskal

Ejemplos

.
Figura: Fig: Ejemplo 1

Randy C (UniNorte)

Kruskals algorithm

19 de septiembre de 2015

12 / 29

Kruskal

Ejemplos

Algoritmo

.
Figura: Fig: Inicio
Randy C (UniNorte)

Kruskals algorithm

19 de septiembre de 2015

13 / 29

Kruskal

Ejemplos

Algoritmo

.
Figura: Fig: Elegimos (1,3)
Randy C (UniNorte)

Kruskals algorithm

19 de septiembre de 2015

14 / 29

Kruskal

Ejemplos

Algoritmo

.
Figura: Fig: Elegimos (4,6)
Randy C (UniNorte)

Kruskals algorithm

19 de septiembre de 2015

15 / 29

Kruskal

Ejemplos

Algoritmo

.
Figura: Fig: Elegimos (2,5)
Randy C (UniNorte)

Kruskals algorithm

19 de septiembre de 2015

16 / 29

Kruskal

Ejemplos

Algoritmo

.
Figura: Fig: Elegimos (3,6)
Randy C (UniNorte)

Kruskals algorithm

19 de septiembre de 2015

17 / 29

Kruskal

Ejemplos

Algoritmo

.
Figura: Fig: Elegimos (2,3), fin
Randy C (UniNorte)

Kruskals algorithm

19 de septiembre de 2015

18 / 29

Kruskal

Validez

Indice

Kruskal
Introduccion
Algoritmo
Ejemplos
Validez
Aplicaciones
Referencias

Randy C (UniNorte)

Kruskals algorithm

19 de septiembre de 2015

19 / 29

Kruskal

Validez

Validez

Sea T el arbol generador encontrado por el algoritmo, y sea Tb


cualquier otro arbol generador del grafo G = (V , E ). Tenemos que
demostrar que w (E(T)) w (E(Tb )).
Con este fin, denotamos las aristas de T por e01 , e02 ,...e0n1 de manera
que w(e01 ) w(e02 ) ... w(e0n1 ) (la rama e0i ya ha sido anotada para
alg
un e0j en el algoritmo, por lo tanto tiene dos nombres). De forma
similar sean b
e01 , b
e02 ,...b
e0n1 .

Randy C (UniNorte)

Kruskals algorithm

19 de septiembre de 2015

20 / 29

Kruskal

Validez

Validez

Veamos que para i =1,...,n-1 aun tenemos


w(e0i ) w(b
ei )

(1)

Este paso muestra que T es un


arbol generador minimal. Para una
contradiccion, suponemos que (1) no es cierto, y sea i el menor ndice
para el que esto no funciona, es decir w(e0i ) > w(b
ei ).

Randy C (UniNorte)

Kruskals algorithm

19 de septiembre de 2015

21 / 29

Kruskal

Validez

Validez

Consideramos los conjuntos:


E = {e01 , e02 , ..., e0i1 }
b = {b
E
e1 , b
e2 , ..., b
ei}
.
b
Los
grafos (V , E) y (V , E) no contienen ciclos y ademas |E| = i 1 ,
b
E = i.
Para la contradiccion deseada es suficiente demostrar que existe una
b para la cual el grafo (V, E0 {e}) no contiene ning
arista e E
un ciclo.

Randy C (UniNorte)

Kruskals algorithm

19 de septiembre de 2015

22 / 29

Kruskal

Validez

Validez

Entonces obtenemos que w(e) w(b


e0i ) w(e0i ) y esto significa que
cometimos un error en el algoritmo en el momento en que se
considero la arista e. No haba raz
on para despreciar e antes, y
hubieramos tenido que seleccionarla en vez de considerar la rama e0i .

b V son dos
Por lo tanto es suficiente demostrar lo siguiente: Si E, E
2
b
conjuntos
un ciclo y
de aristas, tales que el grafo (V, E) no tienen ning
b
b conecta vertices de distintas
|E| < E , entonces alguna arista e E
componentes del grafo (V, E0 ). Esto se puede hacer a partir de un
simple argumento de conteo.

Randy C (UniNorte)

Kruskals algorithm

19 de septiembre de 2015

23 / 29

Kruskal

Validez

Validez
Sea V1 , V2 , ..., VS el conjunto de vertices de las componentes del grafo
(V, E0 ). Tenemos :

 

0
E Vj |Vj | 1,

2
Y sumando estas desigualdades sobre j obtenemos |E0 | n-s. Por otro
b no tiene ciclos, obtenemos:
lado, como E

 


b Vj |Vj | 1,
E

2
b est
Y por lo tanto como maximo n-s aristas de E
an contenidas en
b
algunas componentes de Vj . Pero como suponemos que |E| < E
,
b que esta entre dos componentes distintas
existe una rama e E
Q.E.D.
Randy C (UniNorte)

Kruskals algorithm

19 de septiembre de 2015

24 / 29

Kruskal

Aplicaciones

Indice

Kruskal
Introduccion
Algoritmo
Ejemplos
Validez
Aplicaciones
Referencias

Randy C (UniNorte)

Kruskals algorithm

19 de septiembre de 2015

25 / 29

Kruskal

Aplicaciones

Aplicaciones

La aplicacion tpica de este problema es el dise


no de redes telefonicas.
Una empresa con diferentes oficinas, trata de trazar lneas de telefono para
conectarlas unas con otras. La compa
na telef
onica le ofrece esta
interconexion, pero ofrece tarifas diferentes o costes por conectar cada par
de oficinas. Como conectar entonces las oficinas al mnimo coste total.

Randy C (UniNorte)

Kruskals algorithm

19 de septiembre de 2015

26 / 29

Kruskal

Aplicaciones

Aplicaciones

La formulacion del MST tambien ha sido aplicada para hallar soluciones


en diversas areas (dise
no de redes de transporte, dise
no de redes de
telecomunicaciones - TV por cable, sistemas distribuidos, interpretacion de
datos climatologicos, vision artificial - analisis de imagenes - extraccion de
rasgos de parentesco, analisis de clusters y b
usqueda de superestructuras
de quasar, plegamiento de protenas, reconocimiento de celulas cancerosas,
y otros).
Otra aplicacion es para resolver el problema del viajante

Randy C (UniNorte)

Kruskals algorithm

19 de septiembre de 2015

27 / 29

Kruskal

Referencias

Indice

Kruskal
Introduccion
Algoritmo
Ejemplos
Validez
Aplicaciones
Referencias

Randy C (UniNorte)

Kruskals algorithm

19 de septiembre de 2015

28 / 29

Kruskal

Referencias

Referencias
1

Kruskals Algorithm. (s. f.). Recuperado el 20 de septiembre, de 2014


de http://goo.gl/Cuav7d

Algoritmo de Kruskal. (s. f.). Recuperado el 20 de septiembre, de


2014 de http://goo.gl/YJG7kx

Kruskals Algorithm. (s. f.). Recuperado el 20 de septiembre, de 2014


de http://goo.gl/Us75rA

Greedy Algorithms Set 2 (Kruskals Minimum Spanning Tree


Algorithm). (s. f.). Recuperado el 20 de septiembre, de 2014 de
http://goo.gl/Y8ZVxw

Joseph Kruskal. (s. f.). Recuperado el 20 de septiembre, de 2014 de


http://goo.gl/8YfVWc

Applications of Kruskal and Prims algorithms. (s. f.). Recuperado el


20 de septiembre, de 2014 de http://goo.gl/NTJM5V
Randy C (UniNorte)

Kruskals algorithm

19 de septiembre de 2015

29 / 29

También podría gustarte