El algoritmo
de Kruskal es un algoritmo de la teoría de grafos
para encontrar un árbol recubridor
mínimo en un grafo conexo y ponderado. Es decir, busca un
subconjunto de aristas que, formando un árbol, incluyen todos los vértices y
donde el valor total de todas las aristas del árbol es el mínimo. Si el grafo
no es conexo, entonces busca un bosque expandido mínimo (un árbol expandido
mínimo para cada componente conexa). El algoritmo de Kruskal es un
ejemplo de algoritmo voraz.
Un
ejemplo de árbol expandido mínimo. Cada punto representa un vértice, el cual
puede ser un árbol por sí mismo. Se usa el Algoritmo para buscar las distancias
más cortas (árbol expandido) que conectan todos los puntos o vértices.
Funciona
de la siguiente manera:
- se crea un bosque B (un conjunto de árboles), donde cada vértice del grafo es un árbol separado
- se crea un conjunto C que contenga a todas las aristas del grafo
- mientras C es no vacío
- eliminar una arista de peso mínimo de C
- si esa arista conecta dos árboles diferentes se añade 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
expansión mínimo del grafo.
Este
algoritmo fue publicado por primera vez en Proceedings of the American
Mathematical Society, pp. 48–50 en 1956, y fue escrito por Joseph Kruskal
Referencias:
Kruskal (En linea) http://es.wikipedia.org/wiki/Algoritmo_de_Kruskal
Consulta 23 de Septiembre de 2012
No hay comentarios:
Publicar un comentario