Results 1  10
of
11
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. ...
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 )).
Generating Linear Extensions of Posets by Transpositions
 J. Combinatorial Theory (B
, 1992
"... This paper considers the problem of listing all linear extensions of a partial order so that successive extensions differ by the transposition of a single pair of elements. A necessary condition is given for the case when the partial order is a forest. A necessary and sufficient condition is given f ..."
Abstract

Cited by 27 (2 self)
 Add to MetaCart
This paper considers the problem of listing all linear extensions of a partial order so that successive extensions differ by the transposition of a single pair of elements. A necessary condition is given for the case when the partial order is a forest. A necessary and sufficient condition is given for the case where the partial order consists of disjoint chains. Some open problems are mentioned. 1 Introduction Many combinatorial objects can be represented by permutations subject to various restrictions. The set of linear extensions of a poset can be viewed as a set of permutations of the elements of the poset. If the Hasse diagram of the poset consists of two disjoint chains, then the linear extension permutations correspond to combinations. If the poset consists of disjoint chains, then the linear extension permutations correspond to multiset permutations. The extensions of the poset that is the product of a 2element chain with an nelement chain correspond to "ballot sequences" of ...
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 19 (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...
Generating Necklaces
, 1992
"... A kcolor, nbead necklace is an equivalence class of kary ntuples 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 19 (6 self)
 Add to MetaCart
A kcolor, nbead necklace is an equivalence class of kary ntuples 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 ntuples which includes, among other things, the lexicographically smallest element of each kcolor, nbead 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 kcolor, nbead 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 byproduct of our anal...
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...
On Parallel Generation of Combinations in Associative Processor Architectures
"... In this paper two new parallel algorithms are presented for generation of (n,k)combinations. Computations run in associative processor models. Objects are generated in lexicographic order, with O(1) time per object, in two different representations. The first algorithm uses the conventional represe ..."
Abstract

Cited by 6 (5 self)
 Add to MetaCart
In this paper two new parallel algorithms are presented for generation of (n,k)combinations. Computations run in associative processor models. Objects are generated in lexicographic order, with O(1) time per object, in two different representations. The first algorithm uses the conventional representation of combinations while the second algorithm generates combinations in the form of binary vectors and therefore is particularly well suited for row/column masks generation in associative processors. The algorithms may be also used for generation of related combinatorial objects like combinations with repetitions and integer compositions.
Shift Gray Codes
, 2009
"... Combinatorial objects can be represented by strings, such as 21534 for the permutation (1 2) (3 5 4), or 110100 for the binary tree corresponding to the balanced parentheses (()()). Given a string s = s1s2⋯sn, the rightshift operation ��→ shift(s, i, j) replaces the substring sisi+1⋯sj by si+1⋯sjsi ..."
Abstract

Cited by 4 (4 self)
 Add to MetaCart
Combinatorial objects can be represented by strings, such as 21534 for the permutation (1 2) (3 5 4), or 110100 for the binary tree corresponding to the balanced parentheses (()()). Given a string s = s1s2⋯sn, the rightshift operation ��→ shift(s, i, j) replaces the substring sisi+1⋯sj by si+1⋯sjsi. In other words, si is rightshifted into position j by applying the permutation (j j −1 ⋯ i) to the indices of s. Rightshifts include prefixshifts (i = 1) and adjacenttranspositions (j = i + 1). A fixedcontent language is a set of strings that contain the same multiset of symbols. Given a fixedcontent language, a shift Gray code is a list of its strings where consecutive strings differ by a shift. This thesis asks if shift Gray codes exist for a variety of combinatorial objects. This abstract question leads to a number of practical answers. The first prefixshift Gray code for multiset permutations is discovered, and it provides the first algorithm for generating multiset permutations in O(1)time while
ConstantWeight Gray Codes for Local Rank Modulation
, 2010
"... We consider the local rankmodulation scheme in which a sliding window going over a sequence of realvalued variables induces a sequence of permutations. Local rankmodulation is a generalization of the rankmodulation scheme, which has been recently suggested as a way of storing information in flas ..."
Abstract

Cited by 4 (4 self)
 Add to MetaCart
We consider the local rankmodulation scheme in which a sliding window going over a sequence of realvalued variables induces a sequence of permutations. Local rankmodulation is a generalization of the rankmodulation scheme, which has been recently suggested as a way of storing information in flash memory. We study constantweight Gray codes for the local rankmodulation scheme in order to simulate conventional multilevel flash cells while retaining the benefits of rank modulation. We provide necessary conditions for the existence of cyclic and cyclic optimal Gray codes. We then specifically study codes of weight 2 and upper bound their efficiency, thus proving that there are no such asymptoticallyoptimal cyclic codes. In contrast, we study codes of weight 3 and efficiently construct codes which are asymptoticallyoptimal. We conclude with a construction of codes with asymptoticallyoptimal rate and weight asymptotically half the length, thus having an asymptoticallyoptimal charge difference between adjacent cells.
Code Enumeration of Families of Integer Partitions
 JOURNAL OF COMBINATORIAL THEORY, SERIES A
"... In this paper we show that the elements of certain families of integer partitions can be listed in a minimal change, or Gray code, order. In particular, we construct Gray code listings for the classes Pδ(n,k) and D(n,k) of partitions of n into parts of size at most k in which, for Pδ(n,k), the parts ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
In this paper we show that the elements of certain families of integer partitions can be listed in a minimal change, or Gray code, order. In particular, we construct Gray code listings for the classes Pδ(n,k) and D(n,k) of partitions of n into parts of size at most k in which, for Pδ(n,k), the parts are congruent to one modulo δ and, for D(n,k), the parts are distinct. The change required between successive partitions is the increase of one part by δ (or the addition of δ ones) and the decrease of one part by δ (or the removal of δ ones), where, in the case of D(n,k), δ = 1.