Results 11  20
of
28
Functional Pearls: Explaining Binomial Heaps
, 1999
"... This paper explains binomial heaps, a beautiful data structure for priority queues, using the functional programming language Haskell (Peterson & Hammond, 1997). We largely follow a deductive approach: using the metaphor of a tennis tournament we show that binomial heaps arise naturally through a nu ..."
Abstract

Cited by 5 (4 self)
 Add to MetaCart
This paper explains binomial heaps, a beautiful data structure for priority queues, using the functional programming language Haskell (Peterson & Hammond, 1997). We largely follow a deductive approach: using the metaphor of a tennis tournament we show that binomial heaps arise naturally through a number of logical steps. Haskell supports the deductive style of presentation very well: new types are introduced at ease, algorithms can be expressed clearly and succinctly, and Haskell's type classes allow to capture common algorithmic patterns. The paper aims at the level of an undergraduate student who has experience in reading and writing Haskell programs, and who is familiar with the concept of a priority queue. 2 Priority queues
An Empirical Comparison of Priority Queue Algorithms
"... In the last three decades a considerable amount of research has been pursued in the efficient implementation of the pending event set (PES) associated with discreteevent simulation. The reason is simple: a fast event management has a very crucial impact in the total running time of both sequential ..."
Abstract

Cited by 4 (2 self)
 Add to MetaCart
In the last three decades a considerable amount of research has been pursued in the efficient implementation of the pending event set (PES) associated with discreteevent simulation. The reason is simple: a fast event management has a very crucial impact in the total running time of both sequential and parallel simulations. This report focuses on this problem by studying the empirical performance of a number of solutions to the PES implementation in which we include a complete binary tree described in [26], 1 Introduction The PES is defined as the set of all the events generated during a discreteevent simulation and whose occurrence have not been simulated yet. In order to determine the next event to take place, it is necessary to extract the event with the least time from the PES. We call this operation extractmin. On the other hand, the occurrence of any event during the simulation can produce the insertion of new pending or future events in the PES; insert operation. These two b...
Relaxed weak queues: an alternative to runrelaxed heaps
, 2005
"... Abstract. A simplification of a runrelaxed heap, called a relaxed weak queue, is presented. This new priorityqueue implementation supports all operations as efficiently as the original: findmin, insert, and decrease (also called decreasekey) in O(1) worstcase time, and delete in O(lg n) worstc ..."
Abstract

Cited by 4 (3 self)
 Add to MetaCart
Abstract. A simplification of a runrelaxed heap, called a relaxed weak queue, is presented. This new priorityqueue implementation supports all operations as efficiently as the original: findmin, insert, and decrease (also called decreasekey) in O(1) worstcase time, and delete in O(lg n) worstcase time, n denoting the number of elements stored prior to the operation. These time bounds are valid on a pointer machine as well as on a randomaccess machine. A relaxed weak queue is a collection of at most ⌊lg n ⌋ + 1 perfect weak heaps, where there are in total at most ⌊lg n ⌋ + 1 nodes that may violate weakheap order. In a pointerbased representation of a perfect weak heap, which is a binary tree, it is enough to use two pointers per node to record parentchild relationships. Due to decrease, each node must store one additional pointer. The auxiliary data structures maintained to keep track of perfect weak heaps and potential violation nodes only require O(lg n) words of storage. That is, excluding the space used by the elements themselves, the total space usage of a relaxed weak queue can be as low as 3n + O(lg n) words. ACM CCS Categories and Subject Descriptors. E.1 [Data Structures]: Lists, stacks, and queues; E.2 [Data Storage Representations]: Linked representations;
On the Pending Event Set and Binary Tournaments
"... this paper we study the performance of the very first tournament based complete binary tree. We focus on discreteevent simulation and our results show that this unknown predecessor of heaps can be a more efficient alternative to the fastest pending event set implementations reported in the literatu ..."
Abstract

Cited by 3 (3 self)
 Add to MetaCart
this paper we study the performance of the very first tournament based complete binary tree. We focus on discreteevent simulation and our results show that this unknown predecessor of heaps can be a more efficient alternative to the fastest pending event set implementations reported in the literature. We also extend the idea of binary tournaments to a (2; L)tournament structure which exhibits the property of delaying the processing of events with larger timestamps whilst it keeps similar theoretical performance bounds to the native (2; 1)structure or CBT. This property can be certainly useful in systems where many pending events are expected to be deleted or rescheduled during the simulation. 2 Tournament trees
Dynamic data structures: Finite files, limiting profiles and variance analysis
 Eighteenth Annual Conference on Communication, Control, and Computing, The University of Illinois at Urbana–Champaign
, 1980
"... Abstract Dynamic data structures for priority queues, dictionaries.., are izfl under sequences of arbitrary insert, delete and query operations in various contexts when the universe of keys is finite both exact and asymptotic estimates are provided; when the universe of keys is infinite, a new asymp ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
Abstract Dynamic data structures for priority queues, dictionaries.., are izfl under sequences of arbitrary insert, delete and query operations in various contexts when the universe of keys is finite both exact and asymptotic estimates are provided; when the universe of keys is infinite, a new asymptotic formula is given which makes it possible to analyze rather complex data structures including binomial queues. We conclude by further showing how to derive variance estimates for simple structures.
DiscreteEvent Simulation on the BulkSynchronous Parallel Model
, 1998
"... The bulksynchronous parallel (BSP) model of computing has been proposed to enable the development of portable software which achieves scalable performance across diverse parallel architectures. A number of applications of computing science have been demonstrated to be efficiently supported by the B ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
The bulksynchronous parallel (BSP) model of computing has been proposed to enable the development of portable software which achieves scalable performance across diverse parallel architectures. A number of applications of computing science have been demonstrated to be efficiently supported by the BSP model in practice.
A Generalization of Binomial Queues
 Information Processing Letters
, 1996
"... We give a generalization of binomial queues involving an arbitrary sequence (mk )k=0;1;2;::: of integers greater than one. Different sequences lead to different worst case bounds for the priority queue operations, allowing the user to adapt the data structure to the needs of a specific application. ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
We give a generalization of binomial queues involving an arbitrary sequence (mk )k=0;1;2;::: of integers greater than one. Different sequences lead to different worst case bounds for the priority queue operations, allowing the user to adapt the data structure to the needs of a specific application. Examples include the first priority queue to combine a sublogarithmic worst case bound for Meld with a sublinear worst case bound for Delete min. Keywords: Data structures; Meldable priority queues. 1 Introduction The binomial queue, introduced in 1978 by Vuillemin [14], is a data structure for meldable priority queues. In meldable priority queues, the basic operations are insertion of a new item into a queue, deletion of the item having minimum key in a queue, and melding of two queues into a single queue. The binomial queue is one of many data structures which support these operations at a worst case cost of O(logn) for a queue of n items. Theoretical [2] and empirical [9] evidence i...
Checking and Certifying Computational Results
, 1994
"... For many years, there has been tremendous interest in methods to make computation more reliable. In this thesis, we explore various techniques that can be implemented in software to help insure the correctness of the output of a program. The basic tool we use is a generalization of the notion of a p ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
For many years, there has been tremendous interest in methods to make computation more reliable. In this thesis, we explore various techniques that can be implemented in software to help insure the correctness of the output of a program. The basic tool we use is a generalization of the notion of a program checker called a certifier. A certifier is given intermediate computations from a program computing an answer in an effort to simplify the checking process. The certifier is constructed in such a way that even if the intermediate computations it is given are incorrect, the certifier will never accept an incorrect output. We have constructed certifiers and program checkers for several common abstract data types including mergeable priority queues and splittable priority queues. We have also constructed a certifier for an abstract data type that allows approximate nearest neighbor queries to be performed efficiently. We have implemented and experimentally evaluated some of these algorithms. In the parallel domain, we have developed both general and problem specific techniques for certifying parallel computation. Lastly, we have formally proven correct a certifier for sorting, and have analyzed the advantages of using certifiers in conjunction with formal program verification techniques. This work forms a thesis presented by Jonathan D. Bright to the faculty of the Department of Computer Science, at the Johns Hopkins University, in partial fulfillment of the requirements for the degree of Doctor of Philosophy, under the supervision of Professor Gregory F. Sullivan. iii Acknowledgements I would like to thank my advisor, Gregory Sullivan, for giving me an excellent research topic for my thesis, and for vastly improving my writing skills during my stay at Hopkins. Also, ...
The Outcome of a Knowhow: a BranchandBound Library
 Solving Combinatorial Optimization Problems in Parallel, LNCS
, 1995
"... Introduction Exact methods used to solve difficult Combinatorial Optimization problems belong to a generic type. Widely used in Operations Research (OR) and Artificial Intelligence (AI), they consist of exploring a search space :  the tree of subproblems generated by recursive partitioning of th ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
Introduction Exact methods used to solve difficult Combinatorial Optimization problems belong to a generic type. Widely used in Operations Research (OR) and Artificial Intelligence (AI), they consist of exploring a search space :  the tree of subproblems generated by recursive partitioning of the initial problem (OR : BranchandBound, denoted B&B and BranchandCut algorithms) ,  the graph of transitions between states (AI : A* algorithm, ff \Gamma fi). Exhaustive search of the space is avoided; the acquisition of knowledge during the search allows to prune certain nodes or to eliminate some parts of the space. But as computational requirements (time and space) grow exponentially with the problem size, the possibilities of overflowing storage or consuming too much time can hang the program before reaching the optimal solution. To deal with this type of exploration which tends to create a combinatorial explos
Abstract On the Power of Structural Violations in Priority Queues
"... We give a priority queue that guarantees the worstcase cost of Θ(1) per minimum finding, insertion, and decrease; and the worstcase cost of Θ(lg n) with at most lg n + O ( √ lg n) element comparisons per deletion. Here, n denotes the number of elements stored in the data structure prior to the ope ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
We give a priority queue that guarantees the worstcase cost of Θ(1) per minimum finding, insertion, and decrease; and the worstcase cost of Θ(lg n) with at most lg n + O ( √ lg n) element comparisons per deletion. Here, n denotes the number of elements stored in the data structure prior to the operation in question, and lg n is a shorthand for max {1,log 2 n}. In contrast to a runrelaxed heap, which allows heaporder violations, our priority queue relies on structural violations. By mimicking a priority queue that allows heaporder violations with one that only allows structural violations, we improve the bound on the number of element comparisons per deletion to lg n + O(lg lg n).