Generating linear extensions of posets by transpositions
Journal of Combinatorial Theory Series B
Universal cycles for combinatorial structures
Discrete Mathematics
Generating Linear Extensions Fast
SIAM Journal on Computing
A Gray Code for Necklaces of Fixed Density
SIAM Journal on Discrete Mathematics
Generating multiset permutations in constant time
Journal of Algorithms
A Survey of Combinatorial Gray Codes
SIAM Review
Journal of the ACM (JACM)
Discrete Mathematics
Permutation Generation Methods
ACM Computing Surveys (CSUR)
Introduction To Automata Theory, Languages, And Computation
Introduction To Automata Theory, Languages, And Computation
Introduction to Formal Language Theory
Introduction to Formal Language Theory
An O(1) Time Algorithm for Generating Multiset Permutations
ISAAC '99 Proceedings of the 10th International Symposium on Algorithms and Computation
A loopless algorithm for generating the permutations of a multiset
Theoretical Computer Science - Random generation of combinatorial objects and bijective combinatorics
Exhaustive generation of combinatorial objects by ECO
Acta Informatica
The Art of Computer Programming, Volume 4, Fascicle 3: Generating All Combinations and Partitions
The Art of Computer Programming, Volume 4, Fascicle 3: Generating All Combinations and Partitions
The Art of Computer Programming, Volume 4, Fascicle 2: Generating All Tuples and Permutations (Art of Computer Programming)
The Art of Computer Programming, Volume 4, Fascicle 4: Generating All Trees--History of Combinatorial Generation (Art of Computer Programming)
Generating balanced parentheses and binary trees by prefix shifts
CATS '08 Proceedings of the fourteenth symposium on Computing: the Australasian theory - Volume 77
Gray codes for reflectable languages
Information Processing Letters
Loopless generation of multiset permutations using a constant number of variables by prefix shifts
SODA '09 Proceedings of the twentieth Annual ACM-SIAM Symposium on Discrete Algorithms
Random Generation and Enumeration of Proper Interval Graphs
WALCOM '09 Proceedings of the 3rd International Workshop on Algorithms and Computation
De Bruijn sequences and De Bruijn graphs for a general language
Information Processing Letters
Generating gray codes in o(1) worst-case time per word
DMTCS'03 Proceedings of the 4th international conference on Discrete mathematics and theoretical computer science
De Bruijn sequences for the binary strings with maximum density
WALCOM'11 Proceedings of the 5th international conference on WALCOM: algorithms and computation
Shift gray codes
Generating combinations by prefix shifts
COCOON'05 Proceedings of the 11th annual international conference on Computing and Combinatorics
Ranking and loopless generation of k-ary dyck words in cool-lex order
IWOCA'11 Proceedings of the 22nd international conference on Combinatorial Algorithms
Cool-lex order and k-ary Catalan structures
Journal of Discrete Algorithms
The coolest order of binary strings
FUN'12 Proceedings of the 6th international conference on Fun with Algorithms
A Gray code for fixed-density necklaces and Lyndon words in constant amortized time
Theoretical Computer Science
Hi-index | 0.00 |
A bubble language is a set of binary strings with a simple closure property: The first 01 of any string can be replaced by 10 to obtain another string in the set. Natural representations of many combinatorial objects are bubble languages. Examples include binary string representations of k-ary trees, unit interval graphs, linear-extensions of B-posets, binary necklaces and Lyndon words, and feasible solutions to knapsack problems. In co-lexicographic order, fixed-weight binary strings are ordered so that their suffixes of the form 10^i occur (recursively) in the order i=max,max-1,...,min+1,min for some values of max and min. In cool-lex order the suffixes occur (recursively) in the order max-1,...,min+1,min,max. This small change has significant consequences. We prove that the strings in any bubble language appear in a Gray code order when listed in cool-lex order. This Gray code may be viewed from two different perspectives. On one hand, successive binary strings differ by one or two transpositions, and on the other hand, they differ by a shift of some substring one position to the right. This article also provides the theoretical foundation for many efficient generation algorithms, as well as the first construction of fixed-weight binary de Bruijn sequences; results that will appear in subsequent articles.