El documento describe el algoritmo de Kruskal para generar un árbol recubridor mínimo (MST) en un grafo conexo y ponderado. El algoritmo ordena las aristas por peso de menor a mayor y las va agregando al MST siempre que no formen un ciclo, terminando cuando todos los nodos están conectados. Se usa una estructura de datos union-find para verificar eficientemente si nodos pertenecen a la misma componente conexa. El documento también presenta un ejemplo de aplicación del algoritmo para encontrar la conexión óptima entre zonas de una ciudad
2. Joseph B. Kruskal
• 29/Enero/1928 –
19/Septiembre/2010
• Matemático, estadístico y
científico de la computación
y psicometría
• Desarrolló su algoritmo para
resolver el problema del
árbol de coste total mínimo
(MST)
3. El algoritmo de Krutzkal sirve para construir
un árbol (subgrafos sin ciclos) con arcos
sucesivamente seleccionados de
mínimo peso a partir de un grafo con pesos
en los arcos.
4. Características
Genera un árbol recubridor mínimo en un grafo
conexo y ponderado
No se inicia de un nodo al azar (a diferencia del
algoritmo de Prim). Se escoge el nodo de menor
peso (en caso de haber varios de igual peso se
escoge cualquiera)
Si el grafo no es conexo, se genera un bosque
expandido mínimo.
7. Desarrollo general
Se marca la arista de
de menor valor
De las restantes, se
marca la de menor
valor
Repetir lo anterior
siempre que la arista
no forme un ciclo con
con las marcadas
El proceso termina
cuando todos los
nodos del grafo tienen
tienen una arista
marcada
8. UNION-FIND
Es una estructura de datos que modela una
colección de conjuntos disjuntos (disjoint-set)
basado en dos operaciones.
Find(A) Union(A,B)
9. Pseudocódigo
1 método Kruskal(Grafo):
2 inicializamos MST como vacío
3 inicializamos estructura unión-find
4 ordenamos las aristas del grafo por peso de menor a mayor.
5 para cada arista e que une los vértices u y v
6 si u y v no están en la misma componente
7 agregamos la arista e al MST
8 realizamos la unión de las componentes de u y v
10.
11. Ejemplo: Tránsito del Distrito
Metropolitano de Vancouver
Debe unir 8
residencias y
centros
comerciales
Se deben conectar
todas las zonas a
un mínimo costo
Factibilidad de
construcción de las
líneas
Mínimo costo
posible por línea