Esempio di esecuzione dellalgoritmo di Prim 1 v1v1 v5v5 v2v2 v3v3 v4v U = {v 1 } X =Ø 1 v1v1 v5v5 v2v2 v3v3 v4v U = {v 1, v 2 } X = {[v 1,v 2 ]} 1 v1v1 v5v5 v2v2 v3v3 v4v v4v4 1 v1v1 v5v5 v2v2 v3v U = {v 1, v 2, v 5 } X = {[v 1,v 2 ], [v 1,v 5 ]}
1 v1v1 v5v5 v2v2 v3v3 v4v U = {v 1, v 2, v 3, v 5 } X = {[v 1,v 2 ], [v 1,v 5 ], [v 3,v 5 ]} costo: 9 1 v1v1 v5v5 v2v2 v3v3 v4v U = {v 1, v 2, v 3, v 4, v 5 } = V X = {[v 1,v 2 ], [v 1,v 5 ], [v 3,v 5 ], [v 4,v 5 ]} Esempio di esecuzione dellalgoritmo di Prim
Altre soluzioni ammissibili (di costo non inferiore) 1 v1v1 v5v5 v2v2 v3v3 v4v Esempio di esecuzione dellalgoritmo di Prim 1 v1v1 v5v5 v2v2 v3v3 v4v v1v1 v5v5 v2v2 v3v3 v4v costo: 16 costo: 11 costo: 9 Altra soluzione ottima, ottenibile cambiando lato al passo 2
Algoritmo di Prim Prim(G,c) U = {v 1 }; X = While U V do e* = (u,v) = arg min u U, v V\U c uv X = X {e*} U = U {v} Parte con un solo vertice (arbitrario) e nessun arco (sottografo connesso e aciclico, ma non ricoprente) Aggiunge ogni volta larco minimo del taglio individuato dallalbero corrente conserva connessione e aciclicità