Ho un grafico collegato non orientato con i bordi non pesati. Come posso costruire uno spanning tree (la soluzione potrebbe non essere unica) in modo tale che la somma delle profondità di tutti i nodi sia ridotta al minimo? Ovviamente, questo non sta trovando l'albero di copertura minimo, poiché il "peso" dei bordi varia in realtà in base alla profondità del bambino.Ricerca di uno spanning tree che riduca al minimo la somma delle profondità dei nodi
Penso che, data una radice designata, l'albero con la somma minima di profondità possa essere formato collegando avidamente tutto ciò che è possibile collegare come bambini, a ciascun nodo in un ordine di ampiezza. Pertanto, troverò l'albero con profondità totale minima applicando la stessa procedura N volte, designando ciascuno dei nodi N come root e scegliendo il minimo tra i N candidati. È un algoritmo valido? Per favore, fai notare se è sbagliato o se esiste qualcosa di più efficiente.
Approccio interessante. 'O (n^2)' è abbastanza buono, se l'algoritmo è valido. –
Sembra valido per me. Ottimo algoritmo –
Spanning tree in realtà non ha un nodo root, quindi il concetto di profondità del nodo non mi è chiaro. Forse per profondità di nodo vuoi dire il diametro dell'albero o la profondità se radicata al primo nodo che hai visitato nell'algoritmo Prim? –