View
223
Download
1
Embed Size (px)
DESCRIPTION
Presentacion en LaTeX sobre el algoritmo de Kruskal para grafos.
Citation preview
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
Indice
1 KruskalIntroduccionAlgoritmoEjemplosValidezAplicacionesReferencias
Randy C (UniNorte) Kruskal’s algorithm 19 de septiembre de 2015 2 / 29
Kruskal
Indice
1 KruskalIntroduccionAlgoritmoEjemplosValidezAplicacionesReferencias
Randy C (UniNorte) Kruskal’s algorithm 19 de septiembre de 2015 3 / 29
Kruskal Introduccion
Indice
1 KruskalIntroduccionAlgoritmoEjemplosValidezAplicacionesReferencias
Randy C (UniNorte) Kruskal’s algorithm 19 de septiembre de 2015 4 / 29
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
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
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
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
Kruskal Algoritmo
Indice
1 KruskalIntroduccionAlgoritmoEjemplosValidezAplicacionesReferencias
Randy C (UniNorte) Kruskal’s algorithm 19 de septiembre de 2015 9 / 29
Kruskal Algoritmo
.
Figura: Pseudocodigo
Randy C (UniNorte) Kruskal’s algorithm 19 de septiembre de 2015 10 / 29
Kruskal Ejemplos
Indice
1 KruskalIntroduccionAlgoritmoEjemplosValidezAplicacionesReferencias
Randy C (UniNorte) Kruskal’s algorithm 19 de septiembre de 2015 11 / 29
Kruskal Ejemplos
.
Figura: Fig: Ejemplo 1
Randy C (UniNorte) Kruskal’s algorithm 19 de septiembre de 2015 12 / 29
Kruskal Ejemplos
Algoritmo
.
Figura: Fig: Inicio
Randy C (UniNorte) Kruskal’s algorithm 19 de septiembre de 2015 13 / 29
Kruskal Ejemplos
Algoritmo
.
Figura: Fig: Elegimos (1,3)
Randy C (UniNorte) Kruskal’s algorithm 19 de septiembre de 2015 14 / 29
Kruskal Ejemplos
Algoritmo
.
Figura: Fig: Elegimos (4,6)
Randy C (UniNorte) Kruskal’s algorithm 19 de septiembre de 2015 15 / 29
Kruskal Ejemplos
Algoritmo
.
Figura: Fig: Elegimos (2,5)
Randy C (UniNorte) Kruskal’s algorithm 19 de septiembre de 2015 16 / 29
Kruskal Ejemplos
Algoritmo
.
Figura: Fig: Elegimos (3,6)
Randy C (UniNorte) Kruskal’s algorithm 19 de septiembre de 2015 17 / 29
Kruskal Ejemplos
Algoritmo
.
Figura: Fig: Elegimos (2,3), fin
Randy C (UniNorte) Kruskal’s algorithm 19 de septiembre de 2015 18 / 29
Kruskal Validez
Indice
1 KruskalIntroduccionAlgoritmoEjemplosValidezAplicacionesReferencias
Randy C (UniNorte) Kruskal’s algorithm 19 de septiembre de 2015 19 / 29
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
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
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
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
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
Kruskal Aplicaciones
Indice
1 KruskalIntroduccionAlgoritmoEjemplosValidezAplicacionesReferencias
Randy C (UniNorte) Kruskal’s algorithm 19 de septiembre de 2015 25 / 29
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
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
Kruskal Referencias
Indice
1 KruskalIntroduccionAlgoritmoEjemplosValidezAplicacionesReferencias
Randy C (UniNorte) Kruskal’s algorithm 19 de septiembre de 2015 28 / 29
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