Results 1  10
of
36
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 prespecified, small way. This notion generalizes the classical binary reflected Gray code scheme for listing nbit binary numbers so that ..."
Abstract

Cited by 81 (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 prespecified, small way. This notion generalizes the classical binary reflected Gray code scheme for listing nbit 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. ...
Hamiltonian Triangulations for Fast Rendering
, 1994
"... Highperformance rendering engines in computer graphics are often pipelined, and their speed is bounded by the rate at which triangulation data can be sent into the machine. To reduce the data rate, it is desirable to order the triangles so that consecutive triangles share a face, meaning that only ..."
Abstract

Cited by 65 (8 self)
 Add to MetaCart
Highperformance rendering engines in computer graphics are often pipelined, and their speed is bounded by the rate at which triangulation data can be sent into the machine. To reduce the data rate, it is desirable to order the triangles so that consecutive triangles share a face, meaning that only one additional vertex need be transmitted to describe each triangle. Such an ordering exists if and only if the dual graph of the triangulation contains a Hamiltonian path. In this paper, we consider several problems concerning triangulations with Hamiltonian duals. Specifically, we ffl Show that any set of n points in the plane has a Hamiltonian triangulation, and give two optimal \Theta(n log n) algorithms for constructing such a triangulation. We have implemented and tested both algorithms. ffl Consider the special case of sequential triangulations, where the Hamiltonian cycle is implied, and prove that certain nondegenerate point sets in the plane do not admit a sequential triangulati...
Generating Linear Extensions Fast
"... One of the most important sets associated with a poset P is its set of linear extensions, E(P) . "ExtensionFast.html" 87 lines, 2635 characters One of the most important sets associated with a poset P is its set of linear extensions, E(P) . In this paper, we present an algorithm to generate all of t ..."
Abstract

Cited by 36 (6 self)
 Add to MetaCart
One of the most important sets associated with a poset P is its set of linear extensions, E(P) . "ExtensionFast.html" 87 lines, 2635 characters One of the most important sets associated with a poset P is its set of linear extensions, E(P) . In this paper, we present an algorithm to generate all of the linear extensions of a poset in constant amortized time; that is, in time O(e(P)) , where e ( P ) =  E(P) . The fastest previously known algorithm for generating the linear extensions of a poset runs in time O(n e(P)) , where n is the number of elements of the poset. Our algorithm is the first constant amortized time algorithm for generating a ``naturally defined'' class of combinatorial objects for which the corresponding counting problem is #Pcomplete. Furthermore, we show that linear extensions can be generated in constant amortized time where each extension differs from its predecessor by one or two adjacent transpositions. The algorithm is practical and can be modified to efficiently count linear extensions, and to compute P(x < y) , for all pairs x,y , in time O( n^2 + e ( P )).
A Gray Code for the Ideals of a Forest Poset
 Journal of Algorithms
"... We present two algorithms for listing all ideals of a forest poset. These algorithms generate ideals in a Gray Code manner; that is, consecutive ideals differ by exactly one element. Both algorithms use storage O(n), where n is the number of elements in the poset. On each iteration, the first algori ..."
Abstract

Cited by 16 (3 self)
 Add to MetaCart
We present two algorithms for listing all ideals of a forest poset. These algorithms generate ideals in a Gray Code manner; that is, consecutive ideals differ by exactly one element. Both algorithms use storage O(n), where n is the number of elements in the poset. On each iteration, the first algorithm does a partial traversal of the current ideal being listed and runs in time O(nN ), where N is the number of ideals of the poset. The second algorithm mimics the first, but eliminates the traversal and runs in time O(N ). This algorithm has the property that the amount of computation between successive ideals is O(1); such algorithms are said to be loopless. 1 Introduction Gray Codes find application in Electrical Engineering, Computer Science, and Mathematics. The classical Binary Reflected Gray Code is a way of listing all 2 n length n bitstrings so that successive bitstrings differ by a single bit. Here we consider bitstrings as the characteristic vectors of the ideals of a parti...
The Advantages of Forward Thinking in Generating Rooted and Free Trees (Extended Abstract)
 IN 10TH ANNUAL ACMSIAM SYMPOSIUM ON DISCRETE ALGORITHMS (SODA
, 1999
"... We present a new approach to the exhaustive generation of rooted and free trees of n nodes. Our algorithms have the following features: (1) They are optimal in the sense of using linear space and having running times that are proportional to the number of trees produced. (2) They use a natural repr ..."
Abstract

Cited by 10 (0 self)
 Add to MetaCart
We present a new approach to the exhaustive generation of rooted and free trees of n nodes. Our algorithms have the following features: (1) They are optimal in the sense of using linear space and having running times that are proportional to the number of trees produced. (2) They use a natural representation of the trees, the parent array. (3) They can generate the trees in many different orders, including reverse lexicographic order. (4) They are recursive, not iterative. (5) They can be easily modified to generate restricted classes of trees and still preserve properties (1)(4). The possible restrictions are: (a) in the case of rooted trees, upper bounds on the number of children of a node and lower and upper bounds on the height of the tree; and (b) in the case of free trees, upper bounds on the degree of a node and lower and upper bounds on the diamet...
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 wellformed parenthesis strings and combinations in O(1) time per object. The generation of combinations is done "inplace", that is, taking O(n) space to generate combinations of n elements out of r elements. Previou ..."
Abstract

Cited by 8 (1 self)
 Add to MetaCart
this paper. As examples of this approach, we present new algorithms for generating wellformed parenthesis strings and combinations in O(1) time per object. The generation of combinations is done "inplace", 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 nbit 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 7 (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 nbit 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 nbit 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 nbit binary strings in which each string differs from its successor in exactly one bit. By applying the binary Gray code, a variety of problems...
A Calculus of Random Generation
, 1993
"... A systematic approach to the random generation of labelled combinatorial objects is presented. It applies to structures that are decomposable, i.e., formally specifiable by grammars involving union, product, set, sequence, and cycle constructions. ..."
Abstract

Cited by 6 (0 self)
 Add to MetaCart
A systematic approach to the random generation of labelled combinatorial objects is presented. It applies to structures that are decomposable, i.e., formally specifiable by grammars involving union, product, set, sequence, and cycle constructions.
On the asymptotic number of plane curves and alternating knots, Experiment
 Math
"... Abstract. We present a conjecture for the powerlaw exponent in the asymptotic number of types of plane curves as the number of selfintersections goes to infinity. In view of the description of prime alternating links as flype equivalence classes of plane curves, a similar conjecture is made for th ..."
Abstract

Cited by 4 (0 self)
 Add to MetaCart
Abstract. We present a conjecture for the powerlaw exponent in the asymptotic number of types of plane curves as the number of selfintersections goes to infinity. In view of the description of prime alternating links as flype equivalence classes of plane curves, a similar conjecture is made for the asymptotic number of prime alternating knots. The rationale leading to these conjectures is given by quantum field theory. Plane curves are viewed as configurations of loops on a random planar lattices, that are in turn interpreted as a model of 2d quantum gravity with matter. The identification of the universality class of this model yields the conjecture. Since approximate counting or sampling planar curves with more than a few dozens of intersections is an open problem, direct confrontation with numerical data yields no convincing indication on the correctness of our conjectures. However, our physical approach yields a more general conjecture about connected systems of curves. We take advantage of this to design an original and feasible numerical test, based on recent perfect samplers for large planar maps.
On Sampling Integer Points In Polyhedra
, 2000
"... . We investigate the problem of sampling integer points in rational polyhedra provided an oracle for counting these integer points. When dimension is bounded, this assumption is justified in view of a recent algorithm due to Barvinok [B1,B2,BP]. We show that the exactly uniform sampling is possib ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
. We investigate the problem of sampling integer points in rational polyhedra provided an oracle for counting these integer points. When dimension is bounded, this assumption is justified in view of a recent algorithm due to Barvinok [B1,B2,BP]. We show that the exactly uniform sampling is possible in full generality, when the oracle is called polynomial number of times. Further, when Barvinok's algorithm is used, polylog number of calls suffices.