A constant-time algorithm for middle levels Gray codes
Abstract
For any integer $n\geq 1$ a middle levels Gray code is a cyclic listing of all $n$-element and $(n+1)$-element subsets of $\{1,2,\ldots,2n+1\}$ such that any two consecutive subsets differ in adding or removing a single element. The question whether such a Gray code exists for any $n\geq 1$ has been the subject of intensive research during the last 30 years, and has been answered affirmatively only recently [T. Mütze. Proof of the middle levels conjecture. Proc. London Math. Soc., 112(4):677--713, 2016]. In a follow-up paper [T. Mütze and J. Nummenpalo. An efficient algorithm for computing a middle levels Gray code. To appear in ACM Transactions on Algorithms, 2018] this existence proof was turned into an algorithm that computes each new set in the Gray code in time $\mathcal{O}(n)$ on average. In this work we present an algorithm for computing a middle levels Gray code in optimal time and space: each new set is generated in time $\mathcal{O}(1)$ on average, and the required space is $\mathcal{O}(n)$.
- Publication:
-
arXiv e-prints
- Pub Date:
- June 2016
- DOI:
- 10.48550/arXiv.1606.06172
- arXiv:
- arXiv:1606.06172
- Bibcode:
- 2016arXiv160606172M
- Keywords:
-
- Computer Science - Discrete Mathematics;
- Mathematics - Combinatorics