Results 1 - 10
of
10
A Survey of Combinatorial Gray Codes
- SIAM Review
, 1996
"... The term combinatorial Gray code was introduced in 1980 to refer to any method for generating combinatorial objects so that successive objects differ in some pre-specified, small way. This notion generalizes the classical binary reflected Gray code scheme for listing n-bit binary numbers so that ..."
Abstract
-
Cited by 59 (2 self)
- Add to MetaCart
The term combinatorial Gray code was introduced in 1980 to refer to any method for generating combinatorial objects so that successive objects differ in some pre-specified, small way. This notion generalizes the classical binary reflected Gray code scheme for listing n-bit binary numbers so that successive numbers differ in exactly one bit position, as well as work in the 1960's and 70's on minimal change listings for other combinatorial families, including permutations and combinations. The area of combinatorial Gray codes was popularized by Herbert Wilf in his invited address at the SIAM Discrete Mathematics Conference in 1988 and his subsequent SIAM monograph in which he posed some open problems and variations on the theme. This resulted in much recent activity in the area and most of the problems posed by Wilf are now solved. In this paper, we survey the area of combinatorial Gray codes, describe recent results, variations, and trends, and highlight some open problems. ...
Flipping Edges on Triangulations
, 1996
"... In this paper we study the problem of flipping edges in triangulations of polygons and point sets. We prove that if a polygon Q n has k reflex vertices, then any triangulation of Q n can be transformed to another triangulation of Q n with at most O(n + k 2 ) flips. We produce examples of polygons ..."
Abstract
-
Cited by 32 (6 self)
- Add to MetaCart
In this paper we study the problem of flipping edges in triangulations of polygons and point sets. We prove that if a polygon Q n has k reflex vertices, then any triangulation of Q n can be transformed to another triangulation of Q n with at most O(n + k 2 ) flips. We produce examples of polygons with two triangulations T and T such that to transform T to T requires O(n 2 ) flips. These results are then extended to triangulations of point sets. We also show that any triangulation of an n point set always has n - 4 2 edges that can be flipped. 1. Introduction Let P n = {v 1 , ..., v n } be a collection of points on the plane. A triangulation of P n is a partitioning of the convex hull Conv(P n ) of P n into a set of triangles T = {t 1 , ..., t m } with disjoint interiors in such a way that the vertices of each triangle t of T are points of P n . The elements of P n will be called the vertices of T and the edges of the triangles t 1 , ..., t m of T will be called the edges...
Generating Necklaces
, 1992
"... A k-color, n-bead necklace is an equivalence class of k-ary n-tuples under rotation. In this paper, we analyze an algorithm due to Fredricksen, Kessler, and Maiorana (FKM), to show that necklaces can be generated in constant amortized time. We also present a new approach to generating necklaces whic ..."
Abstract
-
Cited by 18 (6 self)
- Add to MetaCart
A k-color, n-bead necklace is an equivalence class of k-ary n-tuples under rotation. In this paper, we analyze an algorithm due to Fredricksen, Kessler, and Maiorana (FKM), to show that necklaces can be generated in constant amortized time. We also present a new approach to generating necklaces which we conjecture can also be implemented in constant amortized time. The FKM algorithm generates a list of n-tuples which includes, among other things, the lexicographically smallest element of each k-color, n-bead necklace. Previously it had been shown only that the list contains at most O(n \Delta N (k; n)) elements, where N (k; n) is the number of k-color, n-bead necklaces, and that successive elements can be generated in worst case time O(n), giving a bound of O(n 2 \Delta N (k; n)) on the time for the algorithm. We show that the number of elements generated by the FKM algorithm approaches (k=(k \Gamma 1)) \Delta N (k; n) and the total time is only O(N (k; n)). A by-product of our anal...
Self-Organizing Data Structures
- In
, 1998
"... . We survey results on self-organizing data structures for the search problem and concentrate on two very popular structures: the unsorted linear list, and the binary search tree. For the problem of maintaining unsorted lists, also known as the list update problem, we present results on the competit ..."
Abstract
-
Cited by 16 (0 self)
- Add to MetaCart
. We survey results on self-organizing data structures for the search problem and concentrate on two very popular structures: the unsorted linear list, and the binary search tree. For the problem of maintaining unsorted lists, also known as the list update problem, we present results on the competitiveness achieved by deterministic and randomized on-line algorithms. For binary search trees, we present results for both on-line and off-line algorithms. Self-organizing data structures can be used to build very effective data compression schemes. We summarize theoretical and experimental results. 1 Introduction This paper surveys results in the design and analysis of self-organizing data structures for the search problem. The general search problem in pointer data structures can be phrased as follows. The elements of a set are stored in a collection of nodes. Each node also contains O(1) pointers to other nodes and additional state data which can be used for navigation and self-organizati...
Generating Binary Trees by Transpositions
- Journal of Algorithms
, 1995
"... Let T(n) denote the set of all bitstrings with n 1's and n 0's that satisfy the property that in every prefix the number of 0's does not exceed the number of 1's. This is a well known representation of binary trees. We consider algorithms for generating the elements of T(n) that satisfy one of the f ..."
Abstract
-
Cited by 14 (4 self)
- Add to MetaCart
Let T(n) denote the set of all bitstrings with n 1's and n 0's that satisfy the property that in every prefix the number of 0's does not exceed the number of 1's. This is a well known representation of binary trees. We consider algorithms for generating the elements of T(n) that satisfy one of the following constraints: (a) successive bitstrings differ by the transposition of two bits, or (b) successive bitstrings differ by the transposition of two adjacent bits. In case (a) a constant average time generation algorithm is presented. In case (b) we show that such generation is possible if and only if n is even or n ! 5. A constant average time algorithm is presented in this case as well. 1 Introduction Binary Trees are of fundamental importance in computer science. In recent years there has been some interest in algorithms that generate all binary trees with a fixed number of nodes (for example, Ruskey and Hu [17], Proskurowski [10], Zaks [20], Pallo [9], Zerling [21]) or restricted cl...
O(1) Time Algorithms for Combinatorial Generation by Tree Traversal
- The Computer Journal
, 1999
"... this paper. As examples of this approach, we present new algorithms for generating well-formed parenthesis strings and combinations in O(1) time per object. The generation of combinations is done "in-place", that is, taking O(n) space to generate combinations of n elements out of r elements. Previou ..."
Abstract
-
Cited by 7 (1 self)
- Add to MetaCart
this paper. As examples of this approach, we present new algorithms for generating well-formed parenthesis strings and combinations in O(1) time per object. The generation of combinations is done "in-place", that is, taking O(n) space to generate combinations of n elements out of r elements. Previous algorithms take O(r) space to represent a combination by a binary vector of size r
A Gray Code for Necklaces of Fixed Density
- SIAM J. Discrete Math
, 1997
"... A necklace is an equivalence class of binary strings under rotation. In this paper, we present a Gray code listing of all n-bit necklaces with d ones so that (i) each necklace is listed exactly once by a representative from its equivalence class and (ii) successive representatives, including the las ..."
Abstract
-
Cited by 6 (0 self)
- Add to MetaCart
A necklace is an equivalence class of binary strings under rotation. In this paper, we present a Gray code listing of all n-bit necklaces with d ones so that (i) each necklace is listed exactly once by a representative from its equivalence class and (ii) successive representatives, including the last and the first in the list, differ only by the transposition of two bits. The total time required is O(nN (n; d)), where N (n; d) denotes the number of n-bit binary necklaces with d ones. This is the first algorithm for generating necklaces of fixed density which is known to achieve this time bound. 1 Introduction In a combinatorial family, a Gray code is an exhaustive listing of the objects in the family so that successive objects differ only in a small way [Wil]. The classic example is the binary reflected Gray code [Gra], which is a list of all n-bit binary strings in which each string differs from its successor in exactly one bit. By applying the binary Gray code, a variety of problems...
An O(1) Time Algorithm for Generating Multiset Permutations
- Proceedings of the 10th International Symposium on Algorithms and Computation
, 1999
"... Abstract. We design an algorithm that generates multiset permutations in O(1) time from permutation to permutations, using only data structures of arrays. The previous O(1) time algorithm used pointers, causing O(n) time to access an element in a permutation, where n is the size of permutations. The ..."
Abstract
-
Cited by 4 (0 self)
- Add to MetaCart
Abstract. We design an algorithm that generates multiset permutations in O(1) time from permutation to permutations, using only data structures of arrays. The previous O(1) time algorithm used pointers, causing O(n) time to access an element in a permutation, where n is the size of permutations. The central idea in our algorithm is tree traversal. We associate permutations with the leaves of a tree. By traversing this tree, going up and down and making changes when necessary, we spend O(1) time from permutation to permutation. Permutations are generated in a one-dimensional array. 1
Untangling binary trees via rotations
- Comput. J
"... In this paper we present a polynomial time algorithm for finding the shortest sequence of rotations that converts one binary tree into another when both binary trees are of a restricted form. The initial tree must be a degenerate tree, where every node has exactly one child, and the destination bina ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
In this paper we present a polynomial time algorithm for finding the shortest sequence of rotations that converts one binary tree into another when both binary trees are of a restricted form. The initial tree must be a degenerate tree, where every node has exactly one child, and the destination binary tree must also be degenerate, of a more restricted nature. Previous work on rotation distance has focused on approximation algorithms. Our algorithm is the only known non-trivial polynomial time algorithm for exact rotation distance between special cases of binary trees. 1.
INHERENTLY PARALLEL GEOMETRIC COMPUTATIONS
- PARALLEL PROCESSING LETTERS
, 2004
"... A new computational paradigm is described which offers the possibility of superlinear (and sometimes unbounded) speedup, when parallel computation is used. The computations involved are subject only to given mathematical constraints and hence do not depend on external circumstances to achieve superl ..."
Abstract
- Add to MetaCart
A new computational paradigm is described which offers the possibility of superlinear (and sometimes unbounded) speedup, when parallel computation is used. The computations involved are subject only to given mathematical constraints and hence do not depend on external circumstances to achieve superlinear performance. The focus here is on geometric transformations. Given a geometric object A with some property, it is required to transform A into another object B which enjoys the same property. If the transformation requires several steps, each resulting in an intermediate object, then each of these intermediate objects must also obey the same property. We show that in transforming one triangulation of a polygon into another, a parallel algorithm achieves a superlinear speedup. In the case where a convex decomposition of a set of points is to be transformed, the improvement in performance is unbounded, meaning that a parallel algorithm succeeds in solving the problem as posed, while all sequential algorithms fail.

