30. Árbol de expansión mínima

Un árbol de expansión mínima conecta todos los vértices de un grafo ponderado utilizando aristas del grafo y logrando el menor costo total posible, sin formar ciclos.

30.1 Introducción

Cuando una red ofrece muchas conexiones posibles, quizá no necesitemos conservarlas todas. Si el objetivo es mantener comunicados todos los puntos con el menor costo total de instalación, buscamos un árbol de expansión mínima.

También se lo denomina árbol generador mínimo o MST, por Minimum Spanning Tree. Es una estructura fundamental en diseño de redes, cableado, transporte y agrupamiento de datos.

30.2 Recordatorio: árbol generador

Un árbol generador de un grafo no dirigido y conectado:

  • incluye todos los vértices;
  • utiliza únicamente aristas del grafo original;
  • es conectado;
  • no contiene ciclos;
  • con V vértices posee exactamente V − 1 aristas.

Un grafo puede tener muchos árboles generadores. El MST es aquel cuya suma de pesos es mínima.

30.3 Definición formal

Sea G = (V, E) un grafo no dirigido, conectado y ponderado. Un árbol generador T es mínimo si:

peso(T) = Σ peso(e), para e ∈ E(T)

peso(T) ≤ peso(T′) para todo árbol generador T′ de G

Se minimiza el costo total de las aristas elegidas, no la distancia entre un origen y cada destino.

30.4 Condiciones de existencia

Todo grafo no dirigido, ponderado y conectado tiene al menos un árbol de expansión mínima.

G conectado ⇒ G posee al menos un MST

Si el grafo está desconectado, no existe un árbol capaz de cubrir todos sus vértices. En ese caso se obtiene un bosque de expansión mínima, con un MST para cada componente.

30.5 Los pesos pueden ser negativos

A diferencia de Dijkstra, los algoritmos de MST admiten pesos negativos. Una arista negativa simplemente resulta muy conveniente, siempre que su selección no impida formar un árbol.

Como un árbol no contiene ciclos y siempre utiliza V − 1 aristas, no existe el problema de repetir indefinidamente un ciclo para reducir el costo.

30.6 Simulación interactiva: construye un MST

Pulsa cerca de las aristas para seleccionarlas. Debes conectar los siete vértices con seis aristas, sin ciclos y con costo total mínimo.

Selecciona 6 aristas sin formar ciclos.
Aristas0 / 6
Costo0
ConectadoNo
CicloNo
Costo mínimo
ResultadoIncompleto

Verde indica un árbol seleccionado, rosa una selección con ciclo y celeste un MST. Los botones de ejemplo se calculan a partir de todas las combinaciones posibles del grafo.

30.7 El objetivo es global

Elegir siempre la arista más barata sin ninguna condición puede formar un ciclo o dejar aislada una parte del grafo. La decisión debe preservar la posibilidad de conectar todos los vértices.

No basta minimizar cada elección por separado: el conjunto final debe ser un árbol generador.

30.8 Propiedad del corte

Un corte divide los vértices en dos conjuntos no vacíos. Una arista cruza el corte cuando tiene un extremo en cada lado.

La arista de menor peso que cruza un corte es segura para algún MST.

Si esa arista mínima es única, pertenece a todos los MST. Esta propiedad fundamenta las decisiones voraces de Prim y Kruskal.

30.9 Por qué funciona la propiedad del corte

Supongamos que un MST no contiene la arista mínima e que cruza el corte. Al agregar e aparece un ciclo. Ese ciclo debe contener otra arista f que también cruza el corte.

Podemos eliminar f y conservar la conectividad. Como e no pesa más que f, el nuevo árbol no es más costoso y también es mínimo.

30.10 Propiedad del ciclo

La propiedad complementaria ayuda a descartar aristas:

La arista estrictamente más pesada de un ciclo no pertenece a ningún MST.

Si estuviera elegida, podría reemplazarse por otra arista del ciclo de menor peso, manteniendo la conectividad y reduciendo el costo total.

30.11 Unicidad

Un grafo puede tener uno o varios árboles de expansión mínima. Si todos los pesos de las aristas son diferentes, el MST es único.

Pesos todos distintos ⇒ MST único
Pesos repetidos ⇒ puede haber uno o varios MST

Los pesos repetidos no garantizan múltiples soluciones; solo hacen posible que existan empates.

30.12 Prim y Kruskal

AlgoritmoConstrucciónDecisión segura
PrimHace crecer un único árbol desde un origenArista más barata que sale del árbol
KruskalUne componentes de un bosqueArista global más barata que no crea ciclo

Ambos producen un MST, aunque pueden elegir árboles diferentes cuando hay empates.

30.13 Validar un árbol generador mínimo

Primero debemos verificar que la selección sea un árbol generador. Después se compara su costo con el mínimo conocido.

function esMST(vertices, aristas, conectado, tieneCiclo, costoMinimo) {
  const costo = aristas.reduce((suma, arista) =>
    suma + arista.peso, 0
  );

  return conectado &&
         !tieneCiclo &&
         aristas.length === vertices.length - 1 &&
         costo === costoMinimo;
}

Tener V − 1 aristas no es suficiente por sí solo: todavía debemos comprobar conectividad o ausencia de ciclos.

30.14 MST y caminos mínimos

Un MST minimiza la suma total del árbol. Un árbol de caminos mínimos minimiza por separado la distancia desde un origen hacia cada vértice.

ProblemaObjetivoOrigen
Árbol de expansión mínimaMenor costo total para conectar todoNo necesita raíz
Árbol de caminos mínimosMejores rutas desde una fuente

El camino entre dos vértices dentro de un MST no tiene por qué ser el camino mínimo del grafo original.

30.15 Sensibilidad a cambios

Si cambia el peso de una arista, el MST puede mantenerse o cambiar. Las propiedades de corte y ciclo ayudan a analizarlo sin recalcular todas las combinaciones.

  • Reducir mucho una arista externa puede hacerla segura para un corte.
  • Aumentar una arista del MST puede convertirla en la más pesada de un ciclo alternativo.
  • Los empates pueden crear o eliminar soluciones alternativas.

30.16 Complejidad general

Enumerar todos los árboles generadores es inviable en grafos grandes. Los algoritmos voraces evitan esa búsqueda exhaustiva.

AlgoritmoImplementación habitualTiempo
PrimLista de adyacencia y montículoO(E log V)
KruskalOrdenamiento y Union-FindO(E log E)

30.17 Aplicaciones

  • Diseño de redes eléctricas, de fibra o tuberías.
  • Conexión de sedes con costo total mínimo.
  • Construcción aproximada de redes de transporte.
  • Agrupamiento jerárquico de datos.
  • Eliminación de conexiones redundantes.
  • Base para algoritmos de aproximación más complejos.

30.18 Errores comunes

  • Aplicar el concepto directamente a un grafo dirigido.
  • Olvidar comprobar que el grafo sea conectado.
  • Elegir las V − 1 aristas más baratas sin evitar ciclos.
  • Confundir MST con árbol de caminos mínimos.
  • Suponer que los pesos negativos son inválidos.
  • Creer que pesos repetidos implican necesariamente varios MST.
  • Minimizar el costo de una ruta en vez del costo total del árbol.

30.19 Qué debes recordar de este tema

  • Un MST conecta todos los vértices sin ciclos.
  • Utiliza exactamente V − 1 aristas.
  • Minimiza la suma total de pesos.
  • La propiedad del corte identifica aristas seguras.
  • La propiedad del ciclo permite descartar aristas pesadas.
  • Con pesos distintos, el MST es único.
  • Prim y Kruskal son los algoritmos clásicos para construirlo.

30.20 Conclusión

El árbol de expansión mínima conserva la conectividad global con el menor costo total. Sus propiedades de corte y ciclo justifican algoritmos voraces eficientes y evitan enumerar una cantidad enorme de árboles posibles.

En el próximo tema estudiaremos el algoritmo de Prim, que construye un MST haciendo crecer un único árbol.