AN ALGORITHM TO GENERATE ALL SPANNING TREES OF A GRAPH IN ORDER OF INCREASING COST

A minimum spanning tree of an undirected graph can be easily obtained using classical algorithms by Prim or Kruskal. A number of algorithms have been proposed to enumerate all spanning trees of an undirected graph. Good time and space complexities are the major concerns of these algorithms. Most algorithms generate spanning trees using some fundamental cut or circuit. In the generation process, the cost of the tree is not taken into consideration. This paper presents an algorithm to generate spanning trees of a graph in order of increasing cost. By generating spanning trees in order of increasing cost, new opportunities appear. In this way, it is possible to determine the second smallest or, in general, the k-th smallest spanning tree. The smallest spanning tree satisfying some additional constraints can be found by checking at each generation whether these constraints are satisfied. Our algorithm is based on an algorithm by Murty (1967), which enumerates all solutions of an assignment problem in order of increasing cost. Both time and space complexities are discussed.

[1]  G. Minty,et al.  A Simple Algorithm for Listing All the Trees of a Graph , 1965 .

[2]  Katta G. Murty,et al.  Letter to the Editor - An Algorithm for Ranking all the Assignments in Order of Increasing Cost , 1968, Oper. Res..

[3]  Robert E. Tarjan,et al.  Bounds on Backtrack Algorithms for Listing Cycles, Paths, and Spanning Trees , 1975, Networks.

[4]  Harold N. Gabow,et al.  Two Algorithms for Generating Weighted Spanning Trees in Order , 1977, SIAM J. Comput..

[5]  Harold N. Gabow A good algorithm for smallest spanning trees with a degree constraint , 1978, Networks.

[6]  Eugene W. Myers,et al.  Finding All Spanning Trees of Directed and Undirected Graphs , 1978, SIAM J. Comput..

[7]  Christos H. Papadimitriou,et al.  The complexity of the capacitated tree problem , 1978, Networks.

[8]  J.-C. Panayiotopoulos,et al.  Probabilistic analysis of solving the assignment problem for the traveling salesman problem , 1982 .

[9]  Thomas L. Magnanti,et al.  A Polyhedral Intersection Theorem for Capacitated Spanning Trees , 1992, Math. Oper. Res..

[10]  Akihisa Tamura,et al.  EFFICIENTLY SCANNING ALL SPANNING TREES OF AN UNDIRECTED GRAPH , 1993 .

[11]  Sanjiv Kapoor,et al.  Algorithms for Enumerating All Spanning Trees of Undirected and Weighted Graphs , 1995, SIAM J. Comput..

[12]  Reinhard Diestel,et al.  Graph Theory , 1997 .

[13]  Tomomi Matsui A Flexible Algorithm for Generating All the Spanning Trees in Undirected Graphs , 1997, Algorithmica.

[14]  Tomomi Matsui An Algorithm for Finding All the Spanning Trees in Undirected Graphs , 1998 .

[15]  Geir Dahl,et al.  The 2-hop spanning tree problem , 1998, Oper. Res. Lett..

[16]  Sanjiv Kapoor,et al.  An Algorithm for Enumerating All Spanning Trees of a Directed Graph , 2000, Algorithmica.