In the past thirty years, numerous algorithms for building the suffix array of a string have been proposed. In 2021, the notion of suffix array was extended from strings to DFAs, and it was shown that the resulting data structure can be built in $ O(m^2 + n^{5/2}) $ time, where $ n $ is the number of states and $ m $ is the number of edges [SODA 2021]. Recently, algorithms running in $ O(mn) $ and $ O(n^2\log n) $ time have been described [CPM 2023]. In this paper, we improve the previous bounds by proposing an $ O(n^2) $ recursive algorithm inspired by Farach's algorithm for building a suffix tree [FOCS 1997]. To this end, we provide insight into the rich lexicographic and combinatorial structure of a graph, so contributing to the fascinating journey which might lead to solve the long-standing open problem of building the suffix tree of a graph.
翻译:在过去三十年间,针对字符串后缀数组的构建提出了众多算法。2021年,后缀数组的概念从字符串扩展至确定有限自动机(DFA),并证明该数据结构可在$ O(m^2 + n^{5/2}) $时间内构建,其中$ n $为状态数,$ m $为边数[SODA 2021]。近期,有文献描述了运行时间为$ O(mn) $和$ O(n^2\log n) $的算法[CPM 2023]。本文通过提出一种受Farach后缀树构建算法[FOCS 1997]启发的$ O(n^2) $递归算法,改进了此前的研究界。为此,我们深入揭示了图结构丰富的词典序与组合性质,从而为构建图后缀树这一长期悬而未决的开放问题贡献了探索性研究。