Esistenza
Ogni grafo non orientato e connesso ammette almeno un MST.
Algoritmi · Grafi pesati
Dato un grafo non orientato, connesso e pesato, un albero ricoprente minimo collega tutti i vertici senza cicli e minimizza la somma dei pesi.
T = (V, ET) deve essere ricoprente, connesso e aciclico, con |ET| = |V| − 1.
w(T) = Σe∈ET w(e) → min
“Minimum” si riferisce al peso totale, non al numero di archi: ogni albero ricoprente ne ha già esattamente |V| − 1. Se il grafo è disconnesso non esiste un singolo MST, ma una foresta ricoprente minima.
Ogni grafo non orientato e connesso ammette almeno un MST.
Se tutti i pesi sono distinti l’MST è unico; pesi uguali possono produrre più soluzioni ottime.
Sono ammessi: non esiste il problema di ripetere un ciclo, perché la soluzione è un albero.
Per ogni taglio che rispetta gli archi già scelti, un arco di peso minimo che attraversa il taglio può appartenere a un MST. È la giustificazione di Prim e Kruskal.
In un ciclo, un arco strettamente più pesante degli altri non appartiene ad alcun MST: togliendolo il grafo resta connesso e costa meno.
| Aspetto | Prim | Kruskal |
|---|---|---|
| Crescita | Un solo albero, da una sorgente | Una foresta che si fonde |
| Scelta greedy | Arco minimo tra albero e resto | Arco globale minimo che non crea ciclo |
| Struttura chiave | Coda di priorità | Disjoint Set Union |
| Preferibile | Grafi densi o rappresentazioni per adiacenza | Grafi sparsi già espressi come lista di archi |
Confronta i due algoritmi sullo stesso grafo. Gli archi verdi sono accettati, quello arancione è in esame e i rossi vengono scartati perché chiuderebbero un ciclo.
0
Entrambi mantengono un insieme A di archi contenuto in almeno un MST. Prim considera il taglio fra i vertici già raggiunti e gli altri; Kruskal considera un taglio che separa le due componenti dell’arco candidato. In entrambi i casi l’arco più leggero che attraversa quel taglio è sicuro. Per induzione, dopo |V| − 1 scelte A è un albero ricoprente minimo.
| Implementazione | Tempo | Spazio ausiliario | Osservazione |
|---|---|---|---|
| Prim · matrice + scansione | Θ(|V|²) | Θ(|V|) | Buono per grafi densi. |
| Prim · liste + heap binario | O(|E| log |V|) | O(|V| + |E|) | Ogni aggiornamento usa la coda di priorità. |
| Kruskal · sort + DSU | O(|E| log |E|) | O(|V| + |E|) | Il sort domina; log |E| = O(log |V|) nei grafi semplici. |
Con union by rank e path compression, le operazioni DSU costano O(α(|V|)) ammortizzato, praticamente costante. Il simulatore usa scansioni esplicite per rendere ogni candidato visibile; la tabella descrive le implementazioni efficienti.
Progettazione preliminare di cavi, tubazioni o strade con costo totale minimo.
Tagliare gli archi più pesanti dell’MST separa gruppi distanti.
L’MST compare in euristiche per TSP metrico e reti di connessione.
Sul grafo classico, prevedi costo e archi prima di eseguire entrambi gli algoritmi.
Cambia la sorgente di Prim: il costo cambia? E gli archi scelti con pesi uguali?
Prova il grafo disconnesso e spiega perché il risultato è una foresta, non un MST.