127 research outputs found
An algebraic approach to the prefix model analysis of binary trie structures and set intersection algorithms
AbstractThe trie, or digital tree, is a standard data structure for representing sets of strings over a given finite alphabet. Since Knuth's original work (1973), these data structures have been extensively studied and analyzed. In this paper, we present an algebraic approach to the analysis of average storage and average time required by the retrieval algorithms of trie structures under the prefix model. This approach extends the work of Flajolet et al. for other models which, unlike the prefix model, assume that no key in a sample set is the prefix of another. As the main application, we analyze the average running time of two algorithms for computing set intersections
The Problem of Mutual Exclusion: A New Distributed Solution
In both centralized and distributed systems, processes cooperate and compete with each other to access the system resources. Some of these resources must be used exclusively. It is then required that only one process access the shared resource at a given time. This is referred to as the problem of mutual exclusion. Several synchronization mechanisms have been proposed to solve this problem. In this thesis, an effort has been made to compile most of the existing mutual exclusion solutions for both shared memory and message-passing based systems. A new distributed algorithm, which uses a dynamic information structure, is presented to solve the problem of mutual exclusion. It is proved to be free from both deadlock and starvation. This solution is shown to be economical in terms of the number of message exchanges required per critical section execution. Procedures for recovery from both site and link failures are also given
Dynamic algorithms in D.E. Knuth's model: a probabilistic analysis
AbstractBy dynamic algorithms we mean algorithms that operate on dynamically varying data structures (dictionaries, priority queues, linear lists) subject to insertions I, deletions D, positive (negative) queries Q+ (Q−). Let us remember that dictionaries are implementable by unsorted or sorted lists, binary search trees, priority queues by sorted lists, binary search trees, binary tournaments, pagodas, binomial queues and linear lists by sorted or unsorted lists, etc. At this point the following question is very natural in computer science: for a given data structure, which representation is the most efficient? In comparing the space or time costs of two data organizations A and B for the same operations, we cannot merely compare the costs of individual operations for data of given sizes: A may be better than B on some data, and vice versa on others. A reasonable way to measure the efficiency of a data organization is to consider sequences of operations on the structure. Françon (1978, 1979) Knuth (1977) discovered that the number of possibilities for the ith insertion or negative query is equal to i, but that for deletions and positive queries this number depends on the size of the data structure. Answering the questions raised by Françon and Knuth is the main object of this paper more precisely, we show •how to obtain limiting processes;•how to compute explicitly the average costs;•how to obtain variance estimates;•that the costs coverage as n → ∞ to random variables, either Gaussian or depending on Brownian excursion functionals (the limiting distributions are, therefore, completely described).To our knowledge such a complete analysis has never been done before dynamic algorithms in Knuth's model
Recommended from our members
An alternative architecture for performing basic computer arithmetical operations
The arithmetic portions of almost all modern processor architectures are of very similar design. We use the term "traditional" to describe this design, the primary characteristics of which are native support for integer and floating-point number types and special disjoint instructions and hardware for each supported type. Decades of refinement have endowed this traditional arithmetic architecture with high performance, but also certain inherent limitations.
The highly-specific instruction sets and circuitry that provide optimized performance for supported number types, also make it difficult to synthesize unsupported number types and manipulate them in an efficient manner. This trait also applies when using supported number types for arbitrary ranges greater than those directly implemented by the processor.
In this thesis we present an alternative to the traditional computer arithmetic architecture, designed to address the limitations of the traditional approach while preserving most of its benefits.
Instead of the specific number representation support provided by the instructions, hardware and native data types in a traditional ALU/FPU pair, we define a single data type, the XLU digit that forms a base from which other number types may be easily derived, along with a set of instruction primitives from which basic arithmetic operations may be efficiently realized.
Our data type has a signed-digit representation, which allows algorithms for addition, subtraction and multiplication to achieve a high degree of parallelism at the primitive instruction level. The instruction primitives and algorithms are designed to hide or eliminate as much branching as possible, further increasing instruction-level independence.
We provide details of the data type, an overview of the set of instruction primitives, and a discussion of how to use those instruction primitives to perform basic arithmetic algorithms for addition, subtraction and multiplication. We also give examples for three derived number representations; integer, fixed-point and floating-point numbers.
We believe that our approach of building from a unified base provides flexibility and scalability beyond that of the traditional arithmetic architecture.
Our data type, the XLU digit, and the primitive operations to manipulate it may be implemented with modest amounts of circuitry, and this, together with the highly parallel nature of the entire design means that many XLU circuit blocks can be realized in the same silicon area as one traditional ALU/FPV pair. An ALU or FPU may only work when it has the correct type to work on, whereas we believe any and all XLUs available to the processor can be kept busy almost all of the time, achieving greater utilization of the available silicon
Study of Two Competing Index Mechanisms: Prefix B+-tree and Trie Structures
This thesis deals with two competing index mechanisms, namely, prefix B+-trees and trie structures, which are useful for handling varying size keys in document retrieval systems. Refinements and variants of these two indexing methods are studied. Tradeoffs of storage requirements and retrieval time or performance benefits and maintainance difficulties for various refining approaches are examined.Computing and Information Scienc
Publishing Your Prototype Tool on the Web: PUPTOL, a Framework
We describe an approach to reduce the effort involved in disseminating prototype academic (command-line) tools for wider use and inspection. This helps in preserving the effort involved in the development of such tools, and in raising the standards in computer science for conducting repeatable experiments. For this purpose we propose a light-weight, flexible framework to make such tools available via web forms
- …