Results 1  10
of
13
Integer Priority Queues with Decrease Key in . . .
 STOC'03
, 2003
"... We consider Fibonacci heap style integer priority queues supporting insert and decrease key operations in constant time. We present a deterministic linear space solution that with n integer keys support delete in O(log log n) time. If the integers are in the range [0,N), we can also support delete i ..."
Abstract

Cited by 26 (2 self)
 Add to MetaCart
We consider Fibonacci heap style integer priority queues supporting insert and decrease key operations in constant time. We present a deterministic linear space solution that with n integer keys support delete in O(log log n) time. If the integers are in the range [0,N), we can also support delete in O(log log N) time. Even for the special case of monotone priority queues, where the minimum has to be nondecreasing, the best previous bounds on delete were O((log n) 1/(3−ε) ) and O((log N) 1/(4−ε)). These previous bounds used both randomization and amortization. Our new bounds a deterministic, worstcase, with no restriction to monotonicity, and exponentially faster. As a classical application, for a directed graph with n nodes and m edges with nonnegative integer weights, we get single source shortest paths in O(m + n log log n) time, or O(m + n log log C) ifC is the maximal edge weight. The later solves an open problem of Ahuja, Mehlhorn, Orlin, and
A New Approach to AllPairs Shortest Paths on RealWeighted Graphs
 Theoretical Computer Science
, 2003
"... We present a new allpairs shortest path algorithm that works with realweighted graphs in the traditional comparisonaddition model. It runs in O(mn+n time, improving on the longstanding bound of O(mn + n log n) derived from an implementation of Dijkstra's algorithm with Fibonacci heaps. Her ..."
Abstract

Cited by 26 (2 self)
 Add to MetaCart
We present a new allpairs shortest path algorithm that works with realweighted graphs in the traditional comparisonaddition model. It runs in O(mn+n time, improving on the longstanding bound of O(mn + n log n) derived from an implementation of Dijkstra's algorithm with Fibonacci heaps. Here m and n are the number of edges and vertices, respectively.
Dynamic Ordered Sets with Exponential Search Trees
 Combination of results presented in FOCS 1996, STOC 2000 and SODA
, 2001
"... We introduce exponential search trees as a novel technique for converting static polynomial space search structures for ordered sets into fullydynamic linear space data structures. This leads to an optimal bound of O ( √ log n/log log n) for searching and updating a dynamic set of n integer keys i ..."
Abstract

Cited by 26 (1 self)
 Add to MetaCart
We introduce exponential search trees as a novel technique for converting static polynomial space search structures for ordered sets into fullydynamic linear space data structures. This leads to an optimal bound of O ( √ log n/log log n) for searching and updating a dynamic set of n integer keys in linear space. Here searching an integer y means finding the maximum key in the set which is smaller than or equal to y. This problem is equivalent to the standard text book problem of maintaining an ordered set (see, e.g., Cormen, Leiserson, Rivest, and Stein: Introduction to Algorithms, 2nd ed., MIT Press, 2001). The best previous deterministic linear space bound was O(log n/log log n) due Fredman and Willard from STOC 1990. No better deterministic search bound was known using polynomial space.
Stream sampling for varianceoptimal estimation of subset sums
 In ACMSIAM Symposium on Discrete Algorithms
, 2009
"... From a high volume stream of weighted items, we want to maintain a generic sample of a certain limited size k that we can later use to estimate the total weight of arbitrary subsets. This is the classic context of online reservoir sampling, thinking of the generic sample as a reservoir. We present ..."
Abstract

Cited by 6 (5 self)
 Add to MetaCart
From a high volume stream of weighted items, we want to maintain a generic sample of a certain limited size k that we can later use to estimate the total weight of arbitrary subsets. This is the classic context of online reservoir sampling, thinking of the generic sample as a reservoir. We present an efficient reservoir sampling scheme, VarOptk, that dominates all previous schemes in terms of estimation quality. VarOptk provides variance optimal unbiased estimation of subset sums. More precisely, if we have seen n items of the stream, then for any subset size m, our scheme based on k samples minimizes the average variance over all subsets of size m. In fact, the optimality is against any offline scheme with k samples tailored for the concrete set of items seen. In addition to optimal average variance, our scheme provides tighter worstcase bounds on the variance of particular subsets than previously possible. It is efficient, handling each new item of the stream in O(log k) time, which is optimal even on the word RAM. Finally, it is particularly well suited for combination of samples from different streams in a distributed setting. 1
On adaptive integer sorting
 In 12th Annual European Symposium on Algorithms, ESA 2004
, 2004
"... Abstract. This paper considers integer sorting on a RAM. We show that adaptive sorting of a sequence with qn inversions is asymptotically equivalent to multisorting groups of at most q keys, and a total of n keys. Using the recent O(n √ log log n) expected time sorting of Han and Thorup on each set, ..."
Abstract

Cited by 4 (0 self)
 Add to MetaCart
Abstract. This paper considers integer sorting on a RAM. We show that adaptive sorting of a sequence with qn inversions is asymptotically equivalent to multisorting groups of at most q keys, and a total of n keys. Using the recent O(n √ log log n) expected time sorting of Han and Thorup on each set, we immediately get an adaptive expected sorting time of O(n √ log log q). Interestingly, for any positive constant ε, we show that multisorting and adaptive inversion sorting can be performed in (log n)1−ε linear time if q ≤ 2. We also show how to asymptotically improve the running time of any traditional sorting algorithm on a class of inputs much broader than those with few inversions. 1
SuperC: Parsing All of C by Taming the Preprocessor
"... C tools, such as source browsers, bug finders, and automated refactorings, need to process two languages: C itself and the preprocessor. The latter improves expressivity through file includes, macros, and static conditionals. But it operates only on tokens, making it hard to even parse both language ..."
Abstract

Cited by 4 (0 self)
 Add to MetaCart
C tools, such as source browsers, bug finders, and automated refactorings, need to process two languages: C itself and the preprocessor. The latter improves expressivity through file includes, macros, and static conditionals. But it operates only on tokens, making it hard to even parse both languages. This paper presents a complete, performant solution to this problem. First, a configurationpreserving preprocessor resolves includes and macros yet leaves static conditionals intact, thus preserving a program’s variability. To ensure completeness, we analyze all interactions between preprocessor features and identify techniques for correctly handling them. Second, a configurationpreserving parser generates a wellformed AST with static choice nodes for conditionals. It forks new subparsers when encountering static conditionals and merges them again after the conditionals. To ensure performance, we present a simple algorithm for tabledriven ForkMerge LR parsing and four novel optimizations. We demonstrate the effectiveness of our approach on the x86 Linux kernel.
A scaling algorithm for maximum weight matching in bipartite graphs
 IN: PROCEEDINGS 23RD ACMSIAM SYMPOSIUM ON DISCRETE ALGORITHMS (SODA
"... Given a weighted bipartite graph, the maximum weight matching (MWM) problem is to find a set of vertexdisjoint edges with maximum weight. We present a new scaling algorithm that runs in O(m √ n log N) time, when the weights are integers within the range of [0, N]. The result improves the previous b ..."
Abstract

Cited by 4 (0 self)
 Add to MetaCart
Given a weighted bipartite graph, the maximum weight matching (MWM) problem is to find a set of vertexdisjoint edges with maximum weight. We present a new scaling algorithm that runs in O(m √ n log N) time, when the weights are integers within the range of [0, N]. The result improves the previous bounds of O(Nm √ n) by Gabow and O(m √ n log (nN)) by Gabow and Tarjan over 20 years ago. Our improvement draws ideas from a not widely known result, the primal method by Balinski and Gomory.
Scaling algorithms for approximate and exact maximum weight matching
, 2011
"... The maximum cardinality and maximum weight matching problems can be solved in time Õ(m √ n), a bound that has resisted improvement despite decades of research. (Here m and n are the number of edges and vertices.) In this article we demonstrate that this “m √ n barrier ” is extremely fragile, in the ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
The maximum cardinality and maximum weight matching problems can be solved in time Õ(m √ n), a bound that has resisted improvement despite decades of research. (Here m and n are the number of edges and vertices.) In this article we demonstrate that this “m √ n barrier ” is extremely fragile, in the following sense. For any ɛ> 0, we give an algorithm that computes a (1 − ɛ)approximate maximum weight matching in O(mɛ −1 log ɛ −1) time, that is, optimal linear time for any fixed ɛ. Our algorithm is dramatically simpler than the best exact maximum weight matching algorithms on general graphs and should be appealing in all applications that can tolerate a negligible relative error. Our second contribution is a new exact maximum weight matching algorithm for integerweighted bipartite graphs that runs in time O(m √ n log N). This improves on the O(Nm √ n)time and O(m √ n log(nN))time algorithms known since the mid 1980s, for 1 ≪ log N ≪ log n. Here N is the maximum integer edge weight. 1
Melding Priority Queues
 In Proc. of 9th SWAT
, 2004
"... We show that any priority queue data structure that supports insert, delete, and findmin operations in pq(n) time, when n is an upper bound on the number of elements in the priority queue, can be converted into a priority queue data structure that also supports fast meld operations with essentially ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
We show that any priority queue data structure that supports insert, delete, and findmin operations in pq(n) time, when n is an upper bound on the number of elements in the priority queue, can be converted into a priority queue data structure that also supports fast meld operations with essentially no increase in the amortized cost of the other operations. More specifically, the new data structure supports insert, meld and findmin operations in O(1) amortized time, and delete operations in O(pq(n) + α(n, n)) amortized time, where α(m, n) is a functional inverse of the Ackermann function. The construction is very simple, essentially just placing a nonmeldable priority queue at each node of a unionfind data structure. We also show that when all keys are integers in the range [1, N], we can replace n in the bound stated above by min{n, N}. Applying this result to nonmeldable priority queue data structures obtained recently by Thorup, and by Han and Thorup, we obtain meldable RAM priority queues with O(log log n) amortized cost per operation, or O ( √ log log n) expected amortized cost per operation, respectively. As a byproduct, we obtain improved algorithms for the minimum directed spanning tree problem in graphs with integer edge weights: A deterministic O(m log log n) time algorithm and a randomized O(m √ log log n) time algorithm. These bounds improve, for sparse enough graphs, on the O(m + n log n) running time of an algorithm by Gabow, Galil, Spencer and Tarjan that works for arbitrary edge weights.