Policy-Based Benchmarking of Weak Heaps and Their Relatives,

In this paper we describe an experimental study where we evaluated the practical efficiency of three worst-case efficient priority queues: 1) a weak heap that is a binary tree fulfilling half-heap ordering, 2) a weak queue that is a forest of perfect weak heaps, and 3) a run-relaxed weak queue that extends a weak queue by allowing some nodes to violate half-heap ordering. All these structures support Delete and Delete-min in logarithmic worst-case time. A weak heap supports Insert and Decrease in logarithmic worst-case time, whereas a weak queue reduces the worst-case running time of Insert to O(1), and a run-relaxed weak queue that of both Insert and Decrease to O(1). As competitors to these structures, we considered a binary heap, a Fibonacci heap, and a pairing heap. Generic programming techniques were heavily used in the code development. For benchmarking purposes we developed several component frameworks that could be instantiated with different policies.

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

[2]  Kurt Mehlhorn,et al.  Review of algorithms and data structures: the basic toolbox by Kurt Mehlhorn and Peter Sanders , 2011, SIGA.

[3]  S. Edelkamp ReportTechnical 54 Faster than Pairing and Fibonacci Heaps : Rank-Relaxed Weak Queues , 2009 .

[4]  Ingo Wegener,et al.  On the Performance of WEAK-HEAPSORT , 2000, STACS.

[5]  Ronald D. Dutton,et al.  Weak-heap sort , 1993, BIT.

[6]  Ingo Wegener BOTTOM-UP-HEAPSORT, a New Variant of HEAPSORT, Beating, on an Average, QUICKSORT (if n is not Very Small) , 1993, Theor. Comput. Sci..

[7]  Amos Fiat,et al.  Algorithms - ESA 2009 , 2009, Lecture Notes in Computer Science.

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

[9]  Andrei Alexandrescu,et al.  Modern C++ design: generic programming and design patterns applied , 2001 .

[10]  Jyrki Katajainen,et al.  Experiences with the Design and Implementation of Space-Efficient Deques , 2001, Algorithm Engineering.

[11]  Donald E. Knuth,et al.  The Art of Computer Programming: Volume 3: Sorting and Searching , 1998 .

[12]  Jyrki Katajainen,et al.  Relaxed Weak Queues: An Alternative to Run-Relaxed Heaps , 2005 .

[13]  Donald E. Knuth,et al.  Sorting and Searching , 1973 .

[14]  John T. Stasko,et al.  Pairing heaps: experiments and analysis , 1987, CACM.

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

[16]  Robert E. Tarjan,et al.  The pairing heap: A new form of self-adjusting heap , 2005, Algorithmica.

[17]  Ronald L. Rivest,et al.  Introduction to Algorithms, third edition , 2009 .

[18]  Robert E. Tarjan,et al.  Relaxed heaps: an alternative to Fibonacci heaps with applications to parallel computation , 1988, CACM.

[19]  Giuseppe Cattaneo,et al.  Algorithm engineering , 1999, CSUR.

[20]  Rodrigo Paredes,et al.  Graphs for Metric Space Searching , 2008 .

[21]  Ronald L. Rivest,et al.  Introduction to Algorithms , 1990 .

[22]  Donald E. Knuth,et al.  The Art of Computer Programming, Volume I: Fundamental Algorithms, 2nd Edition , 1997 .

[23]  Mark R. Brown,et al.  Implementation and Analysis of Binomial Queue Algorithms , 1978, SIAM J. Comput..

[24]  Donald E. Knuth,et al.  The art of computer programming, volume 3: (2nd ed.) sorting and searching , 1998 .

[25]  Jyrki Katajainen,et al.  Project proposal: A meldable, iterator-valid priority queue , 2006 .

[26]  Kurt Mehlhorn,et al.  The LEDA Platform of Combinatorial and Geometric Computing , 1997, ICALP.

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

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

[29]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[30]  Amr Elmasry Violation Heaps: A Better Substitute for Fibonacci Heaps , 2008, ArXiv.

[31]  Kurt Mehlhorn,et al.  LEDA: a platform for combinatorial and geometric computing , 1997, CACM.