Universal cycles for combinatorial structures
Discrete Mathematics
The Art of Computer Programming, Volume 4, Fascicle 2: Generating All Tuples and Permutations (Art of Computer Programming)
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
An explicit universal cycle for the (n-1)-permutations of an n-set
ACM Transactions on Algorithms (TALG)
Hamilton cycles in restricted rotator graphs
IWOCA'11 Proceedings of the 22nd international conference on Combinatorial Algorithms
Hi-index | 0.00 |
A universal cycle for the k-permutations of 〈n〉 = {1, 2, ..., n} is a circular string of length (n)k that contains each k-permutation exactly once as a substring. Jackson (Discrete Mathematics, 149 (1996) 123-129) proved their existence for all k ≤ n - 1. Knuth (The Art of Computer Programming, Volume 4, Fascicle 2, Addison-Wesley, 2005) pointed out the importance of the k = n - 1 case, where each (n - 1)- permutation is "shorthand" for exactly one permutation of 〈n〉. Ruskey-Williams (ACM Transactions on Algorithms, in press) answered Knuth's request for an explicit construction of a shorthand universal cycle for permutations, and gave an algorithm that creates successive symbols in worst-case O(1)-time. This paper provides two new algorithmic constructions that create successive blocks of n symbols in O(1) amortized time within an array of length n. The constructions are based on: (a) an approach known to bell-ringers for over 300 years, and (b) the recent shift Gray code by Williams (SODA, (2009) 987-996). For (a), we show that the majority of changes between successive permutations are full rotations; asymptotically, the proportion of them is (n - 2)/n.