Question

Yes this is homework. I was wondering if someone could explain the process of Sollin's (or Borůvka's) algorithm for determining a minimum spanning tree. Also if you could explain how to determine the number of iterations in the worst case, that would be great.

Was it helpful?

Solution

On a top level, the algorithm works as follows:

  • Maintain that you have a number of spanning trees for some subgraphs. Initially, every vertex of the graph is a m.s.t. with no edges.
  • In each iteration, for each of your spanning trees, find a cheapest edge connecting it to another spanning tree. (This is a simplification.)

The worst case in terms of iterations is that you always merge pairs of trees. In that case, the number of trees you have will halve in each iteration, so the number of iterations is logarithmic in the number of nodes.

Also note that there is a special trick involved in choosing the edges to add: if you were not careful, you might introduce a circle when tree A connects to tree B, tree B connects to tree C and tree C connects to tree A. (This can only happen if all three edges chosen have the same weight. The trick is to have an arbitrary but fixed tie-breaker, like a fixed order of the edges.)

So there, that's my back-of-index-card overview.

OTHER TIPS

I'm using the layman's terminology.

  • First select a vertex
  • Check all the edges from that vertex and select one with the minimum weight
  • Do this for all the vertices ( some edges may be selected more than once)
  • You will get connected components.
  • From these connected components select one edge with minimum weight.

Your spanning tree with minimum weight will be formed

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top