Efficient implementation of graph algorithms using contraction
- 1 July 1989
- journal article
- Published by Association for Computing Machinery (ACM) in Journal of the ACM
- Vol. 36 (3) , 540-572
- https://doi.org/10.1145/65950.65954
Abstract
The ( component ) merging problem 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 packets . 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 Ο( t ( m , n )) algorithm for finding minimum spanning trees in undirected graphs without using F-heaps, where t ( m , n ) = m log 2 log 2 log d n , the graph has n vertices and m edges, and d = max( m / n , 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 Ο( n ( t ( m , n ) + n log n )) 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 O ( nm log ( n 2 / m )) was conjectured.Keywords
This publication has 10 references indexed in Scilit:
- Fibonacci heaps and their uses in improved network optimization algorithmsJournal of the ACM, 1987
- Efficient algorithms for finding minimum spanning trees in undirected and directed graphsCombinatorica, 1986
- A linear-time algorithm for a special case of disjoint set unionJournal of Computer and System Sciences, 1985
- Data Structures and Network AlgorithmsPublished by Society for Industrial & Applied Mathematics (SIAM) ,1983
- A data structure for manipulating priority queuesCommunications of the ACM, 1978
- Efficient Algorithms for Shortest Paths in Sparse NetworksJournal of the ACM, 1977
- Finding Minimum Spanning TreesSIAM Journal on Computing, 1976
- An 0(|E|loglog|V|) algorithm for finding minimum spanning treesInformation Processing Letters, 1975
- Time bounds for selectionJournal of Computer and System Sciences, 1973
- Maximum matching and a polyhedron with 0,1-verticesJournal of Research of the National Bureau of Standards Section B Mathematics and Mathematical Physics, 1965