A Constant-Time Algorithm for Middle Levels Gray Codes

For any integer  n ≥ 1 , a middle levels Gray code is a cyclic listing of all n -element and ( n + 1 ) -element subsets of { 1 , 2 , … , 2 n + 1 } such that any two consecutive sets differ in adding or removing a single element. The question whether such a Gray code exists for any  n ≥ 1 has been th...

Full description

Saved in:
Bibliographic Details
Published inAlgorithmica Vol. 82; no. 5; pp. 1239 - 1258
Main Authors Mütze, Torsten, Nummenpalo, Jerri
Format Journal Article
LanguageEnglish
Published New York Springer US 01.05.2020
Springer Nature B.V
Subjects
Online AccessGet full text

Cover

Loading…
More Information
Summary:For any integer  n ≥ 1 , a middle levels Gray code is a cyclic listing of all n -element and ( n + 1 ) -element subsets of { 1 , 2 , … , 2 n + 1 } such that any two consecutive sets differ in adding or removing a single element. The question whether such a Gray code exists for any  n ≥ 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. ACM Trans. Algorithms , 14(2):29 pp., 2018] this existence proof was turned into an algorithm that computes each new set in the Gray code in time  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  O ( 1 ) on average, and the required space is  O ( n ) .
Bibliography:ObjectType-Article-1
SourceType-Scholarly Journals-1
ObjectType-Feature-2
content type line 14
ISSN:0178-4617
1432-0541
DOI:10.1007/s00453-019-00640-2