Soft Heaps Simplified

In 1998, Chazelle [J. ACM, 47 (2000), pp. 1012--1027] introduced a new kind of meldable heap (priority queue) called the soft heap. Soft heaps trade accuracy for speed: the heap operations are allowed to increase the keys of certain items, thereby making these items bad, as long as the number of bad items in the data structure is at most $\varepsilon m$, where $m$ is the total number of insertions performed so far, and $\varepsilon$ is an error parameter. The amortized time per heap operation is $O(\lg \frac{1}{\varepsilon})$, reduced from $O(\lg n)$, where $n$ is the number of items in the heap. Chazelle used soft heaps in several applications, including a faster deterministic minimum-spanning-tree algorithm and a new deterministic linear-time selection algorithm. We give a simplified implementation of soft heaps that uses less space and avoids Chazelle's dismantling operations. We also give a simpler, improved analysis that yields an amortized time bound of $O(\lg \frac{1}{\varepsilon})$ for each deleti...

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

[2]  Robert E. Tarjan,et al.  Algorithms for Two Bottleneck Optimization Problems , 1988, J. Algorithms.

[3]  R. Tarjan Amortized Computational Complexity , 1985 .

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

[5]  Arnold Schönhage,et al.  Finding the Median , 1976, J. Comput. Syst. Sci..

[6]  Uri Zwick,et al.  Selecting the median , 1995, SODA '95.

[7]  Bernard Chazelle,et al.  The soft heap: an approximate priority queue with optimal error rate , 2000, JACM.

[8]  John W. Backus,et al.  Can programming be liberated from the von Neumann style?: a functional style and its algebra of programs , 1978, CACM.

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

[10]  Bernard Chazelle,et al.  A minimum spanning tree algorithm with inverse-Ackermann type complexity , 2000, JACM.

[11]  Robert E. Tarjan,et al.  Strict fibonacci heaps , 2012, STOC '12.

[12]  Haim Kaplan,et al.  Simple Confluently Persistent Catenable Lists , 2000, SIAM J. Comput..

[13]  Haim Kaplan,et al.  A simpler implementation and analysis of Chazelle's soft heaps , 2009, SODA.

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

[15]  Chris Okasaki,et al.  Purely functional data structures , 1998 .

[16]  Bernard Chazelle,et al.  The discrepancy method - randomness and complexity , 2000 .

[17]  Bernard Chazelle,et al.  The Discrepancy Method , 1998, ISAAC.

[18]  Robert E. Tarjan,et al.  Data-Structural Bootstrapping, Linear Path Compression, and Catenable Heap-Ordered Double-Ended Queues , 1995, SIAM J. Comput..

[19]  Robert E. Tarjan,et al.  Efficiency of a Good But Not Linear Set Union Algorithm , 1972, JACM.

[20]  Gerth Stølting Brodal,et al.  Fast Meldable Priority Queues , 1995, WADS.

[21]  Robert E. Tarjan,et al.  Making Data Structures Persistent , 1989, J. Comput. Syst. Sci..

[22]  Philip N. Klein,et al.  A randomized linear-time algorithm for finding minimum spanning trees , 1994, STOC '94.

[23]  Haim Kaplan,et al.  Thin heaps, thick heaps , 2008, TALG.

[24]  Seth Pettie,et al.  Randomized minimum spanning tree algorithms using exponentially fewer random bits , 2008, TALG.

[25]  Philip N. Klein,et al.  A randomized linear-time algorithm to find minimum spanning trees , 1995, JACM.

[26]  Gerth Stølting Brodal,et al.  Worst-case efficient priority queues , 1996, SODA '96.

[27]  Robert E. Tarjan,et al.  An O(n log log n)-Time Algorithm for Triangulating a Simple Polygon , 1988, SIAM J. Comput..

[28]  Haim Kaplan,et al.  Purely functional, real-time deques with catenation , 1999, JACM.

[29]  Seth Pettie,et al.  An optimal minimum spanning tree algorithm , 2000, JACM.

[30]  Robert E. Tarjan,et al.  Rank-Pairing Heaps , 2009, ESA.