Questions
Given a undirected weighted graph ,
divide the set of edges
into two equally-sized disjoint subsets
and
(such that
) thus obtaining two subgraphs
and
.
Recursively, find the MSF
of
and
of
.
Then ``merge" the two forests into one
and run the kruskal's algorithm on it to find an MSF for
the original graph
. A subgraph is recursively split into two until
the number of edges in it
becomes less than or equal to
in which case Kruskal's algorithm
is employed to find a MSF for the subgraph.
Argue in a few sentences that this algorithm produces an MSF of graph .
Notice that algorithm is based on successively eliminating
edges from the graph.
You simply need to prove that
those edges which are discarded could not belong to the MSF of
.
That is, if an edge in a subgraph
of
does not belong to
the MSF of
, then that edge does not belong
to the MSF of
either. For the purpose of this proof, assume that
all weights are distinct, and therefore,
has a unique MSF.
What is the time complexity of this algorithm. Do you see any advantage of this algorithm over basic Kruskal's algorithm if you wanted to employ a parallel/multicore system.