Efficient implementation of graph algorithms using contraction

The (<italic>component</italic>) <italic>merging problem</italic> is a new graph problem. Versions of this problem appear as bottlenecks in various graph algorithms. A new data structure solves this problem efficiently, and two special cases of the problem have even more efficient solutions based on other data structures. The performance of the data structures is sped up by introducing a new algorithmic tool called <italic>packets</italic>. The algorithms that use these solutions to the component merging problem also exploit new properties of two existing data structures. Specifically, Β-trees can be used simultaneously as a priority queue and a concatenable queue. Similarly, F-heaps support some kinds of split operations with no loss of efficiency. An immediate application of the solution to the simplest version of the merging problem is an &Ogr;(<italic>t</italic>(<italic>m</italic>, <italic>n</italic>)) algorithm for finding minimum spanning trees in undirected graphs <italic>without</italic> using F-heaps, where <italic>t</italic>(<italic>m</italic>, <italic>n</italic>) = <italic>m</italic>log<subscrpt>2</subscrpt>log<subscrpt>2</subscrpt>log<subscrpt>d</subscrpt><italic>n</italic>, the graph has <italic>n</italic> vertices and <italic>m</italic> edges, and <italic>d</italic> = max(<italic>m</italic>/<italic>n</italic>, 2). Packets also improve the F-heap minimum spanning tree algorithm, giving the fastest algorithm currently known for this problem. The efficient solutions to the merging problem and the new observation about F-heaps lead to an &Ogr;(<italic>n</italic>(<italic>t</italic>(<italic>m</italic>, <italic>n</italic>) + <italic>n</italic>log<italic>n</italic>)) algorithm for finding a maximum weighted matching in general graphs. This settles an open problem posed by Tarjan [ 15, p. 123], where the weaker bound of <italic>O</italic>(<italic>nm</italic> log (<italic>n</italic><supscrpt>2</supscrpt>/<italic>m</italic>)) was conjectured.

[1]  Manuel Blum,et al.  Time Bounds for Selection , 1973, J. Comput. Syst. Sci..

[2]  Robert E. Tarjan,et al.  Finding optimum branchings , 1977, Networks.

[3]  Robert E. Tarjan,et al.  A Linear-Time Algorithm for a Special Case of Disjoint Set Union , 1985, J. Comput. Syst. Sci..

[4]  Journal of the Association for Computing Machinery , 1961, Nature.

[5]  Jean Vuillemin,et al.  A data structure for manipulating priority queues , 1978, CACM.

[6]  Alfred V. Aho,et al.  The Design and Analysis of Computer Algorithms , 1974 .

[7]  Harold N. Gabow,et al.  A scaling algorithm for weighted matching on general graphs , 1985, 26th Annual Symposium on Foundations of Computer Science (sfcs 1985).

[8]  Andrew Chi-Chih Yao,et al.  An O(|E| log log |V|) Algorithm for Finding Minimum Spanning Trees , 1975, Inf. Process. Lett..

[9]  Francesco Maffioli,et al.  A note on finding optimum branchings , 1979, Networks.

[10]  Robert E. Tarjan,et al.  Efficient Algorithms for a Family of Matroid Intersection Problems , 1984, J. Algorithms.

[11]  Jack Edmonds,et al.  Maximum matching and a polyhedron with 0,1-vertices , 1965 .

[12]  Donald Ervin Knuth,et al.  The Art of Computer Programming , 1968 .

[13]  Donald B. Johnson,et al.  Efficient Algorithms for Shortest Paths in Sparse Networks , 1977, J. ACM.

[14]  Zvi Galil,et al.  Efficient Implementation of Graph Algorithms Using Contraction , 1984, FOCS.

[15]  Donald E. Knuth,et al.  The art of computer programming: sorting and searching (volume 3) , 1973 .

[16]  Robert E. Tarjan,et al.  Fibonacci heaps and their uses in improved network optimization algorithms , 1984, JACM.

[17]  Robert E. Tarjan,et al.  Data structures and network algorithms , 1983, CBMS-NSF regional conference series in applied mathematics.

[18]  Silvio Micali,et al.  Priority queues with variable priority and an O(EV log V) algorithm for finding a maximal weighted matching in general graphs , 1982, 23rd Annual Symposium on Foundations of Computer Science (sfcs 1982).

[19]  Harold Neil Gabow,et al.  Implementation of algorithms for maximum matching on nonbipartite graphs , 1973 .

[20]  Silvio Micali,et al.  Priority queues with variable priority and an O(EV log V) algorithm for finding a maximal weighted matching in general graphs , 1982, 23rd Annual Symposium on Foundations of Computer Science (sfcs 1982).

[21]  Robert E. Tarjan,et al.  Efficient algorithms for finding minimum spanning trees in undirected and directed graphs , 1986, Comb..

[22]  Robert E. Tarjan,et al.  Finding Minimum Spanning Trees , 1976, SIAM J. Comput..

[23]  S. Micali,et al.  Priority queues with variable priority and an O(EV log V) algorithm for finding a maximal weighted matching in general graphs , 1982, FOCS 1982.

[24]  Robert E. Tarjan,et al.  A linear-time algorithm for a special case of disjoint set union , 1983, J. Comput. Syst. Sci..

[25]  Toshihide Ibaraki,et al.  An Algorithm for Finding K Minimum Spanning Trees , 1981, SIAM J. Comput..