557,810 research outputs found
A constant-time algorithm for middle levels Gray codes
For any integer a middle levels Gray code is a cyclic listing of
all -element and -element subsets of such that
any two consecutive subsets differ in adding or removing a single element. The
question whether such a Gray code exists for any has been the subject
of intensive research during the last 30 years, and has been answered
affirmatively only recently [T. M\"utze. Proof of the middle levels conjecture.
Proc. London Math. Soc., 112(4):677--713, 2016]. In a follow-up paper [T.
M\"utze 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 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 on average, and the required space is
Efficient computation of middle levels Gray codes
For any integer a middle levels Gray code is a cyclic listing of
all bitstrings of length that have either or entries equal to
1 such that any two consecutive bitstrings in the list differ in exactly one
bit. The question whether such a Gray code exists for every has been
the subject of intensive research during the last 30 years, and has been
answered affirmatively only recently [T. M\"utze. Proof of the middle levels
conjecture. Proc. London Math. Soc., 112(4):677--713, 2016]. In this work we
provide the first efficient algorithm to compute a middle levels Gray code. For
a given bitstring, our algorithm computes the next bitstrings in the
Gray code in time , which is
on average per bitstring provided that
- …