Albero ricoprente
Un albero di copertura o albero di connessione di un grafo, connesso e con archi non orientati, è un albero che contiene tutti i vertici del grafo, ma degli archi ne contiene soltanto un sottoinsieme, cioè solo quelli necessari per connettere tra loro tutti i vertici con uno e un solo cammino. Infatti ciò che differenzia un grafo da un albero è che in quest'ultimo non sono presenti cammini multipli tra due nodi, nell'immagine sono mostrati in grassetto gli archi che fanno parte di un albero ricoprente mentre gli archi del grafo originario erano tutti gli archi, sia quelli in grassetto che quelli sottili.
L'albero ricoprente è anche noto con il termine inglese spanning tree (ST).
Indice |
[modifica] Albero ricoprente minimo
Nel caso in cui gli archi siano pesati si può definire anche l'albero ricoprente minimo, o minimum spanning tree (MST). Un MST non è altro che un albero ricoprente nel quale sommando i pesi degli archi si ottiene un valore minimo.
[modifica] Definizione formale
Dato un grafo
indiretto, connesso e pesato e assumendo che
sia una funzione peso per
.
Un MST per
è un insieme di archi
che forma un albero, cioè tale che:
, quindi
contiene solo una parte degli archi originali, al limite tutti, ma non di piu'.
è connesso: i nodi sono tutti collegati tra loro.- La somma dei pesi degli archi scelti è la più piccola possibile, cioè:
è minima.
Dalla definizione, si ha che
forma un albero con un sottoinsieme di archi dai pesi minimi, per questo viene chiamato Minimum Spanning Tree.
[modifica] Algoritmi per il calcolo di un MST
[modifica] Algoritmo generico
Dato un grafo
non orientato, connesso e con una funzione peso
, l'algoritmo agisce su un insieme
(con
MST di
) al quale ad ogni passo viene aggiunto un arco
che permette ad
di restare un sottoinsieme del MST finale, un tale arco verrà chiamato safe-edge.

- while
do
safe-edge

- end while
- return A
[modifica] Trovare l'arco corretto
Per trovare l'arco corretto è necessario ricorrere ad alcune definizioni:
Per prima cosa
con
verrà chiamato taglio, e avremo che:
- un arco
attraversa un taglio
se e solo se
. - un albero
rispetta un taglio
se e solo se
che attraversa il taglio.
Un arco
viene definito leggero rispetto ad un taglio
, se è di peso minimo tra tutti gli archi che attraversano quel taglio.
Preso un grafo
non orientato e connesso, una funzione di peso
, un albero
con
MST per
ed infine un taglio
di
ed
.
Allora
è un safe-edge per
.
[modifica] Algoritmi usati nella pratica
Dato un grafo esistono diversi algoritmi per individuare un suo MST, tra questi:
che viene specializzato per implementare i seguenti algoritmi:
[modifica] Applicazioni
Il concetto di albero ricoprente viene utilizzato nelle reti locali, vedi anche Spanning tree (networking).
[modifica] Foresta ricoprente minima
Nel caso in cui il grafo non sia connesso, cioè sia il risultato dell'unione di più grafi connessi, si può ancora definire una Foresta ricoprente minima come l'unione degli alberi ricoprenti individuati sui singoli grafi connessi. In grafi connessi foresta ed albero ricoprente coincidono.

, quindi
è connesso: i nodi sono tutti collegati tra loro.
è minima.
do
safe-edge

.
rispetta un taglio
che attraversa il taglio.