Fibonacci heaps and their uses in improved network optimization algorithms

@inproceedings{Fredman1987FibonacciHA,
  title={Fibonacci heaps and their uses in improved network optimization algorithms},
  author={Michael L. Fredman and Robert E. Tarjan},
  booktitle={JACM},
  year={1987}
}
In this paper we develop a new data structure for implementing heaps (priority queues). Our structure, <italic>Fibonacci heaps</italic> (abbreviated <italic>F-heaps</italic>), extends the binomial queues proposed by Vuillemin and studied further by Brown. F-heaps support arbitrary deletion from an <italic>n</italic>-item heap in <italic>O</italic>(log <italic>n</italic>) amortized time and all other standard heap operations in <italic>O</italic>(1) amortized time. Using F-heaps we are able to… 
Efficient implementation of graph algorithms using contraction
TLDR
The efficient solutions to the component merging problem and the new observation about F-heaps lead to an &Ogr;(<italic>n</italic>) algorithm for finding a maximum weighted matching in general graphs, giving the fastest algorithm currently known for this problem.
Faster algorithms for the shortest path problem
Efficient implementations of Dijkstra's shortest path algorithm are investigated. A new data structure, called the <italic>radix heap</italic>, is proposed for use in this algorithm. On a network
Concurrent threads and optimal parallel minimum spanning trees algorithm
This paper resolves a long-standing open problem on whether the concurrent write capability of parallel random access machine (PRAM) is essential for solving fundamental graph problems like connected
Cache-oblivious shortest paths in graphs using buffer heap
TLDR
These results appear to give the first non-trivial cache-oblivious bounds for shortest path problems on general graphs and undirected and directed single-source shortest path (SSSP) problems for graphs with non-negative edge-weights.
Cache-Oblivious Buffer Heap and Cache-Efficient Computation of Shortest Paths in Graphs
TLDR
The notion of a slim data structure that captures the situation when only a limited portion of the cache is available to the data structure to retain data between data structural operations is introduced and a buffer heap automatically adapts to such an environment and supports all operations in O(1/λ + 1/B log2 N/λ) amortized block transfers each when the size of the slim cache is λ.
Integer priority queues with decrease key in constant time and the single source shortest paths problem
  • M. Thorup
  • Computer Science, Mathematics
    STOC '03
  • 2003
TLDR
A deterministic linear space solution that with n integer keys support delete in O(log log n) time, which is a deterministic, worst-case, with no restriction to monotonicity, and exponentially faster.
Fibonacci Heaps Revisited
TLDR
This work proposes a version of the Fibonacci heap with the following improvements over the original: each heap is represented by a single heap-ordered tree, instead of a set of trees, and each decrease-key operation does only one cut and a cascade of rank changes.
Finding minimum-cost circulations by canceling negative cycles
TLDR
It is shown that a judicious choice of cycles for canceling leads to a polynomial bound on the number of iterations in this algorithm, which is comparable to those of the fastest previously known algorithms.
Practical Applicability of Advanced Implementations of Priority Queues in Finding Shortest Paths
TLDR
This paper focuses on three implementations of priority queues that are Fibonacci heap, Brodal queue, and strict Fib onacci heap and tries to investigate their applicability in Dijkstra’s algorithm implemented in C++ programing language.
Resolving a Question about Randomized Fibonacci Heaps in the Negative
TLDR
This project studies a randomized variant of Fibonacci heaps where instead of using mark bits, one flips coins in order to determine whether to cascade bringing nodes into the root list, and proves that randomized Fibonaccia heaps, as originally defined, perform worse asymptotically then standard Fibonaci heaps.
...
...

References

SHOWING 1-10 OF 52 REFERENCES
Efficient implementation of graph algorithms using contraction
TLDR
The efficient solutions to the component merging problem and the new observation about F-heaps lead to an &Ogr;(<italic>n</italic>) algorithm for finding a maximum weighted matching in general graphs, giving the fastest algorithm currently known for this problem.
Efficient algorithms for finding minimum spanning trees in undirected and directed graphs
TLDR
This paper uses F-heaps to obtain fast algorithms for finding minimum spanning trees in undirected and directed graphs and can be extended to allow a degree constraint at one vertex.
Applications of Path Compression on Balanced Trees
TLDR
A method for computing functions defined on paths in trees based on tree manipulation techniques first used for efficiently representing equivalence relations, which has an almost-linear running time and is useful for solving certain kinds of pathfinding problems on reducible graphs.
Self-Adjusting Heaps
TLDR
In this paper, two themes in data structure design are explored: amortized computational complexity and self adjustment.
Efficient Algorithms for Graphic Matroid Intersection and Parity (Extended Abstract)
TLDR
Improved algorithms for other problems are obtained, including maintaining a minimum spanning tree on a planar graph subject to changing edge costs, and finding shortest pairs of disjoint paths in a network.
Efficient Algorithms for Shortest Paths in Sparse Networks
TLDR
Algorithms for finding shortest paths are presented which are faster than algorithms previously known on networks which are relatively sparse in arcs, and a class of “arc set partition” algorithms is introduced.
Implementation and Analysis of Binomial Queue Algorithms
TLDR
The binomial queue, a new data structure for implementing priority queues that can be efficiently merged, was recently discovered by Jean Vuillemin and new methods of representing binomial queues are given which reduce the storage overhead of the structure and increase the efficiency of operations on it.
Priority queues with variable priority and an O(EV log V) algorithm for finding a maximal weighted matching in general graphs
  • Z. Galil, S. Micali, H. Gabow
  • Mathematics, Computer Science
    23rd Annual Symposium on Foundations of Computer Science (sfcs 1982)
  • 1982
TLDR
Two generalized types of a priority queue are defined by allowing some forms of changing the priorities of the elements in the queue to be implemented efficiently and used to construct an O(log n) algorithm for finding a maximal weighted matching in general graphs.
...
...