29
Kruskal’s algorithm Randy Consuegra Universidad del Norte 19 de septiembre de 2015 Randy C (UniNorte) Kruskal’s algorithm 19 de septiembre de 2015 1 / 29

Kruskal's Algotithm

Embed Size (px)

DESCRIPTION

Presentacion en LaTeX sobre el algoritmo de Kruskal para grafos.

Citation preview

Page 1: Kruskal's Algotithm

Kruskal’s algorithm

Randy Consuegra

Universidad del Norte

19 de septiembre de 2015

Randy C (UniNorte) Kruskal’s algorithm 19 de septiembre de 2015 1 / 29

Page 2: Kruskal's Algotithm

Indice

1 KruskalIntroduccionAlgoritmoEjemplosValidezAplicacionesReferencias

Randy C (UniNorte) Kruskal’s algorithm 19 de septiembre de 2015 2 / 29

Page 3: Kruskal's Algotithm

Kruskal

Indice

1 KruskalIntroduccionAlgoritmoEjemplosValidezAplicacionesReferencias

Randy C (UniNorte) Kruskal’s algorithm 19 de septiembre de 2015 3 / 29

Page 4: Kruskal's Algotithm

Kruskal Introduccion

Indice

1 KruskalIntroduccionAlgoritmoEjemplosValidezAplicacionesReferencias

Randy C (UniNorte) Kruskal’s algorithm 19 de septiembre de 2015 4 / 29

Page 5: Kruskal's Algotithm

Kruskal Introduccion

Introduccion

Kruskal

Es un algoritmo MST (minimum spanning tree) voraz descubierto porJoseph Kruskal, que trabajaba en Math Center (Bell-Labs) en 1956.

Idea Basica

Recorrer todos los vertices en orden creciente de peso.

Randy C (UniNorte) Kruskal’s algorithm 19 de septiembre de 2015 5 / 29

Page 6: Kruskal's Algotithm

Kruskal Introduccion

Introduccion

Procedimiento

1 Elegir una arista con el menor peso.

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

3 Continue hasta que un arbol expandido sea obtenido.

Randy C (UniNorte) Kruskal’s algorithm 19 de septiembre de 2015 6 / 29

Page 7: Kruskal's Algotithm

Kruskal Introduccion

Introduccion

Procedimiento

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

Randy C (UniNorte) Kruskal’s algorithm 19 de septiembre de 2015 7 / 29

Page 8: Kruskal's Algotithm

Kruskal Introduccion

Introduccion

Complejidad

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

Randy C (UniNorte) Kruskal’s algorithm 19 de septiembre de 2015 8 / 29

Page 9: Kruskal's Algotithm

Kruskal Algoritmo

Indice

1 KruskalIntroduccionAlgoritmoEjemplosValidezAplicacionesReferencias

Randy C (UniNorte) Kruskal’s algorithm 19 de septiembre de 2015 9 / 29

Page 10: Kruskal's Algotithm

Kruskal Algoritmo

.

Figura: Pseudocodigo

Randy C (UniNorte) Kruskal’s algorithm 19 de septiembre de 2015 10 / 29

Page 11: Kruskal's Algotithm

Kruskal Ejemplos

Indice

1 KruskalIntroduccionAlgoritmoEjemplosValidezAplicacionesReferencias

Randy C (UniNorte) Kruskal’s algorithm 19 de septiembre de 2015 11 / 29

Page 12: Kruskal's Algotithm

Kruskal Ejemplos

.

Figura: Fig: Ejemplo 1

Randy C (UniNorte) Kruskal’s algorithm 19 de septiembre de 2015 12 / 29

Page 13: Kruskal's Algotithm

Kruskal Ejemplos

Algoritmo

.

Figura: Fig: Inicio

Randy C (UniNorte) Kruskal’s algorithm 19 de septiembre de 2015 13 / 29

Page 14: Kruskal's Algotithm

Kruskal Ejemplos

Algoritmo

.

Figura: Fig: Elegimos (1,3)

Randy C (UniNorte) Kruskal’s algorithm 19 de septiembre de 2015 14 / 29

Page 15: Kruskal's Algotithm

Kruskal Ejemplos

Algoritmo

.

Figura: Fig: Elegimos (4,6)

Randy C (UniNorte) Kruskal’s algorithm 19 de septiembre de 2015 15 / 29

Page 16: Kruskal's Algotithm

Kruskal Ejemplos

Algoritmo

.

Figura: Fig: Elegimos (2,5)

Randy C (UniNorte) Kruskal’s algorithm 19 de septiembre de 2015 16 / 29

Page 17: Kruskal's Algotithm

Kruskal Ejemplos

Algoritmo

.

Figura: Fig: Elegimos (3,6)

Randy C (UniNorte) Kruskal’s algorithm 19 de septiembre de 2015 17 / 29

Page 18: Kruskal's Algotithm

Kruskal Ejemplos

Algoritmo

.

Figura: Fig: Elegimos (2,3), fin

Randy C (UniNorte) Kruskal’s algorithm 19 de septiembre de 2015 18 / 29

Page 19: Kruskal's Algotithm

Kruskal Validez

Indice

1 KruskalIntroduccionAlgoritmoEjemplosValidezAplicacionesReferencias

Randy C (UniNorte) Kruskal’s algorithm 19 de septiembre de 2015 19 / 29

Page 20: Kruskal's Algotithm

Kruskal Validez

Validez

Sea T el arbol generador encontrado por el algoritmo, y sea Tcualquier otro arbol generador del grafo G = (V ,E ). Tenemos quedemostrar que w(E(T)) ≤ w(E(T )).Con este fin, denotamos las aristas de T por e′1 , e′2,...e

′n−1 de manera

que w(e′1) ≤ w(e′2) ≤ ... ≤ w(e′n−1) (la rama e′i ya ha sido anotada paraalgun e′j en el algoritmo, por lo tanto tiene dos nombres). De forma

similar sean e′1 , e′2,...e′n−1.

Randy C (UniNorte) Kruskal’s algorithm 19 de septiembre de 2015 20 / 29

Page 21: Kruskal's Algotithm

Kruskal Validez

Validez

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

w(e′i) ≤ w(ei) (1)

Este paso muestra que T es un arbol generador minimal. Para unacontradiccion, suponemos que (1) no es cierto, y sea i el menor ındicepara el que esto no funciona, es decir w(e′i) > w(ei).

Randy C (UniNorte) Kruskal’s algorithm 19 de septiembre de 2015 21 / 29

Page 22: Kruskal's Algotithm

Kruskal Validez

Validez

Consideramos los conjuntos:

E’ = {e′1, e′2, ..., e′i−1}

E = {e1, e2, ..., ei}.Los grafos (V , E) y (V ,E’) no contienen ciclos y ademas |E’| = i− 1 ,∣∣∣E∣∣∣ = i.

Para la contradiccion deseada es suficiente demostrar que existe unaarista e ∈ E para la cual el grafo (V,E′ ∪ {e}) no contiene ningun ciclo.

Randy C (UniNorte) Kruskal’s algorithm 19 de septiembre de 2015 22 / 29

Page 23: Kruskal's Algotithm

Kruskal Validez

Validez

Entonces obtenemos que w(e) ≤ w(e′i) ≤ w(e′i) y esto significa quecometimos un error en el algoritmo en el momento en que seconsidero la arista e. No habıa razon para despreciar e antes, yhubieramos tenido que seleccionarla en vez de considerar la rama e′i.

Por lo tanto es suficiente demostrar lo siguiente: Si E’, E ⊆(V2

)son dos

conjuntos de aristas, tales que el grafo (V, E) no tienen ningun ciclo y

|E’| <∣∣∣E∣∣∣, entonces alguna arista e ∈ E conecta vertices de distintas

componentes del grafo (V,E′). Esto se puede hacer a partir de unsimple argumento de conteo.

Randy C (UniNorte) Kruskal’s algorithm 19 de septiembre de 2015 23 / 29

Page 24: Kruskal's Algotithm

Kruskal Validez

Validez

Sea V1,V2, ...,VS el conjunto de vertices de las componentes del grafo(V,E′). Tenemos : ∣∣∣∣E′ ∩ (Vj

2

)∣∣∣∣ ≥ |Vj| − 1,

Y sumando estas desigualdades sobre j obtenemos |E′| ≥ n-s. Por otrolado, como E no tiene ciclos, obtenemos:∣∣∣∣E ∩ (Vj

2

)∣∣∣∣ ≤ |Vj| − 1,

Y por lo tanto como maximo n-s aristas de E estan contenidas en

algunas componentes de Vj. Pero como suponemos que |E’| <∣∣∣E∣∣∣,

existe una rama e ∈ E que esta entre dos componentes distintasQ.E.D.

Randy C (UniNorte) Kruskal’s algorithm 19 de septiembre de 2015 24 / 29

Page 25: Kruskal's Algotithm

Kruskal Aplicaciones

Indice

1 KruskalIntroduccionAlgoritmoEjemplosValidezAplicacionesReferencias

Randy C (UniNorte) Kruskal’s algorithm 19 de septiembre de 2015 25 / 29

Page 26: Kruskal's Algotithm

Kruskal Aplicaciones

Aplicaciones

”La aplicacion tıpica de este problema es el diseno de redes telefonicas.Una empresa con diferentes oficinas, trata de trazar lıneas de telefono paraconectarlas unas con otras. La companıa telefonica le ofrece estainterconexion, pero ofrece tarifas diferentes o costes por conectar cada parde oficinas. Como conectar entonces las oficinas al mınimo coste total.”

Randy C (UniNorte) Kruskal’s algorithm 19 de septiembre de 2015 26 / 29

Page 27: Kruskal's Algotithm

Kruskal Aplicaciones

Aplicaciones

”La formulacion del MST tambien ha sido aplicada para hallar solucionesen diversas areas (diseno de redes de transporte, diseno de redes detelecomunicaciones - TV por cable, sistemas distribuidos, interpretacion dedatos climatologicos, vision artificial - analisis de imagenes - extraccion derasgos de parentesco, analisis de clusters y busqueda de superestructurasde quasar, plegamiento de proteınas, reconocimiento de celulas cancerosas,y otros).”Otra aplicacion es para resolver el problema del viajante

Randy C (UniNorte) Kruskal’s algorithm 19 de septiembre de 2015 27 / 29

Page 28: Kruskal's Algotithm

Kruskal Referencias

Indice

1 KruskalIntroduccionAlgoritmoEjemplosValidezAplicacionesReferencias

Randy C (UniNorte) Kruskal’s algorithm 19 de septiembre de 2015 28 / 29

Page 29: Kruskal's Algotithm

Kruskal Referencias

Referencias

1 Kruskal’s Algorithm. (s. f.). Recuperado el 20 de septiembre, de 2014de http://goo.gl/Cuav7d

2 Algoritmo de Kruskal. (s. f.). Recuperado el 20 de septiembre, de2014 de http://goo.gl/YJG7kx

3 Kruskal’s Algorithm. (s. f.). Recuperado el 20 de septiembre, de 2014de http://goo.gl/Us75rA

4 Greedy Algorithms Set 2 (Kruskal’s Minimum Spanning TreeAlgorithm). (s. f.). Recuperado el 20 de septiembre, de 2014 dehttp://goo.gl/Y8ZVxw

5 Joseph Kruskal. (s. f.). Recuperado el 20 de septiembre, de 2014 dehttp://goo.gl/8YfVWc

6 Applications of Kruskal and Prim’s algorithms. (s. f.). Recuperado el20 de septiembre, de 2014 de http://goo.gl/NTJM5V

Randy C (UniNorte) Kruskal’s algorithm 19 de septiembre de 2015 29 / 29