Supponiamo di voler creare una rete che interconnetta un insieme di posizioni $V=\{v_1,..,v_n\}$ in modo che per ogni coppia di posizioni esista un percorso che li collega
Alcune coppie di posizioni possono essere collegate direttamente
Stabilire un collegamento diretto tra una coppia di posizioni ha un costo che dipende da vari parametri
<aside> 💡 L’obiettivo è di utilizzare esattamente $n-1$ di questi collegamenti diretti tra coppie di posizioni in modo da connettere l’intera rete e da minimizzare la somma dei costi degli $n-1$ collegamenti stabiliti
</aside>
Input:
<aside> 💡 Sia dato un grafo non direzionato connesso $G=(V,E)$, uno spanning tree (albero ricoprente) di $G$ è un sottoinsieme di archi $T \subseteq E$ tale che $|T|=n-1$ e gli archi in $T$ non formano cicli
</aside>
In altre parole $T$ forma un albero che ha come nodi tutti i nodi di $G$
Sia dato un grafo non direzionato connesso $G=(V,E)$ tale che ad ogni arco $e$ di $G$ è associato un costo $c_e$, per ogni albero ricoprente $T$ di $G$ definiamo il costo di $T$ come $\Sigma_{e \in T}c_e$
<aside> 💡 Sia dato un grafo non direzionato connesso $G=(V,E)$ con costi $c_e$ degli archi a valori reali, un minimum spanning tree (minimo albero ricoprente) è un sottoinsieme di archi $T\subseteq E$ tale che $T$ è un albero ricoprente di costo minimo
</aside>
Il problema di trovare un minimo albero ricoprente non può essere risolto con un algoritmo di forza bruta
Ci sono $n^{n-2}$ alberi ricoprenti del grafo completo $K_n$