Classic cycle-joining techniques have found widespread application in creating universal cycles for a diverse range of combinatorial objects, such as shorthand permutations, weak orders, orientable sequences, and various subsets of $k$-ary strings, including de Bruijn sequences. In the most favorable scenarios, these algorithms operate with a space complexity of $O(n)$ and require $O(n)$ time to generate each symbol in the sequences. In contrast, concatenation-based methods have been developed for a limited selection of universal cycles. In each of these instances, the universal cycles can be generated far more efficiently, with an amortized time complexity of $O(1)$ per symbol, while still using $O(n)$ space. This paper introduces $\mathit{concatenation~trees}$, which serve as the fundamental structures needed to bridge the gap between cycle-joining constructions based on the pure cycle register and corresponding concatenation-based approaches. They immediately demystify the relationship between the classic Lyndon word concatenation construction of de Bruijn sequences and a corresponding cycle-joining based construction. To underscore their significance, concatenation trees are applied to construct universal cycles for shorthand permutations and weak orders in $O(1)$-amortized time per symbol. Moreover, we provide insights as to how similar results can be obtained for other universal cycles including cut-down de Bruijn sequences and orientable sequences.
翻译:经典的循环连接技术已广泛应用于构建多种组合对象的通用循环,例如简写排列、弱序、可定向序列以及各种k元字符串子集(包括德布鲁因序列)。在最优情况下,这些算法具有O(n)的空间复杂度,每生成一个序列符号需要O(n)的时间。相比之下,基于级联的方法仅针对有限的通用循环类型得到开发。在这些实例中,通用循环能以更高的效率生成,每符号均摊时间复杂度为O(1),同时仍保持O(n)的空间复杂度。本文引入**级联树**这一基础结构,旨在弥合基于纯循环寄存器的循环连接构造与相应级联方法之间的鸿沟。该结构即刻揭示了经典李登词级联构造德布鲁因序列与对应循环连接构造之间的内在关联。为彰显其重要性,我们将级联树应用于构建简写排列和弱序的通用循环,实现每符号O(1)均摊时间。此外,本文还探讨了如何将类似方法推广至其他通用循环(如截断德布鲁因序列与可定向序列)的构造。