Near-Linear Preprocessing for Range Weighted Longest Increasing Subsequence Queries
Yokohama National University(横滨国立大学)
该研究提出确定性数据结构,实现范围加权LIS查询的近线性预处理,解决相关开放问题,具备高效查询与最优子序列输出能力。
2026-10-16 cs.DS
On Stabbing Queries for Generalized Longest Repeat
一个字符串上的最长重复查询,其动机是在包括计算生物学在内的许多子领域中的应用,要求覆盖特定字符串位置的最长重复子串(点查询)。本文将最长重复查询从点查询扩展到\emph{interval query},允许搜索覆盖任意位置区间的最长重复,从而显著提高了解的可用性。我们的区间查询方法采用了不同的方法,使用从\emph{shortest unique substrings} [1]最近的工作的洞察力,作为以前的工作的点查询的方法在区间查询的设置变得不可行。利用[1]中的关键见解,我们提出了一种索引结构,它可以在最佳的$O(n)$时间和空间中为大小为$n$的字符串构造,使得任何未来的间隔查询都可以在$O(1)$时间内得到回答。此外,我们的解决方案可以找到\emph{all}最长的重复覆盖任何给定的时间间隔使用最佳的$O(occ)$时间,其中$occ$是最长的重复覆盖的数量,给定的时间间隔,而以前的$O(n)$ -时间和空间的工作只能找到一个候选人的每个点查询。与现实世界的生物数据的实验表明,我们的建议是有竞争力的与以前的作品,无论是时间和空间明智的,同时提供了新的功能的间隔查询,而不是点查询提供的以前的作品。
2015-11-07 cs.DS
An Algorithm for the Longest Common Subsequence and Substring Problem
本文提出了最长公共子序列与子串问题,旨在寻找同时为某字符串子序列与另一字符串子串的最长字符串,并提出了一种求解该问题的算法。
2023-08-02 cs.DS
Longest Common Subsequence on Weighted Sequences
本文研究加权序列的最长公共子序列问题。加权序列是经典字符串的扩展,其中在每个位置,字母表中的每个字母都可能以一定的概率出现。先前的结果提供了PTAS,并注意到除非P=NP,否则不可能有FPTAS。在本文中,我们基本上关闭上界和下界之间的差距,提高两者。首先,我们给出了有界字母表的EPTAS(这是最自然的情况),并证明了除非FPT=W,否则不存在无界字母表的EPTAS [1]。此外,根据指数时间假设,我们提供了一个下限,这表明没有显着更好的PTAS可以存在无限的字母。作为一个侧记,我们证明,它是足够的工作,只有一个阈值的一般变体的问题。
2020-07-19 cs.CC cs.DS
Near-Optimal Computation of Runs over General Alphabet via Non-Crossing LCE Queries
最长公共扩展查询(LCE查询)和运行在算法字符串学中无处不在。线性时间算法计算运行和预处理恒定时间LCE查询已经知道了十多年。然而,这些算法假设线性可排序的整数字母表。Bannai et.最近的一篇突破性论文。al. (SODA 2015)展示了这两个概念之间的联系:字符串中的所有运行都可以通过线性数量的LCE查询来计算。Kosolobov(\emph{Inf.\ Process.\ Lett.},2016)是第一个在一般有序字母表上考虑这些问题的人,他提出了一种用于回答$O(n)$ LCE查询的$O(n (\log n)^{2/3})$时间算法。Gawrychowski等人改进了这一结果。al.(CPM 2016接受)到$O(n \log \log n)$时间。在这项工作中,我们注意到一个特殊的\emph{non-crossing}属性的LCE查询要求在运行计算。我们发现,任何$n$这样的非交叉查询可以回答在线$O(n α(n))$的时间,这产生了一个$O(n α(n))$时间算法计算运行。
2016-06-27 cs.DS
Improved Approximation for Longest Common Subsequence over Small Alphabets
研究了最长公共子序列(LCS)问题的可逼近性。求解LCS问题的最快算法在输入长度上的基本二次时间内运行,并且已知在强指数时间假设下,二次运行时间无法被击败。然而,除了在一些有限的情况下,LCS的近似计算没有这样的限制。近似算法也很缺乏。当两个给定的字符串在大小为$k$的字母表上时,返回由两个字符串中出现最频繁的符号形成的子序列实现LCS的$1/k$近似。这是一个开放的问题,是否可以在真正的次二次时间($O(n^{2-δ})$时间常数$δ>0$)实现更好的$1/k$近似。最近的一个结果[Rubinstein and Song SODA'2020]表明,只要输入字符串具有相同的长度,在真正的次二次时间中,在二进制字母表上对LCS的$1/2+ε$近似是可能的。在本文中,我们表明,如果一个$1/2+ε$近似($ε>0$)是可实现的二进制LCS在真正的次二次时间时,输入字符串可以是不平等的,然后为每个常数$k$,有一个真正的次二次时间算法,实现了$1/k+δ$近似$k$ -ary字母表LCS的一些$δ>0$。二进制是最难的。我们还表明,对于每个常数$k$,如果给定$k$进制字母表上的两个长度为\emph{equal}的字符串,则可以在真正的次二次时间内获得某个常数$ε>0$的$1/k+ε$逼近,从而将Rubinstein和Song的结果扩展到所有常数大小的字母表。
2021-05-07 cs.CC cs.DS
Computing Longest (Common) Lyndon Subsequences
给定一个长度为$n$的字符串$T$,其字符来自大小为$σ$的有序字母表,它的最长林登子序列是$T$的最长子序列,该子序列是林登字。我们提出的算法,找到这样一个子序列在$O(n^3)$时间与$O(n)$空间,或在线$O(n^3 σ)$空间和时间。我们的第一个结果可以扩展到使用$O(n^3)$空间在$O(n^4 σ)$时间内找到两个长度为$n$的字符串的最长公共林登子序列。
2022-01-18 cs.DS
Computing All Distinct Squares in Linear Time for Integer Alphabets
给定一个整数字母表上的字符串,我们提出了一个算法,计算属于这个字符串的所有不同的广场在时间线性的字符串长度的集合。作为应用,我们展示了如何在线性时间内计算最小增广后缀树的树拓扑。除此之外,我们详细说明了一个算法计算最长的前一个表在一个简洁的表示使用压缩的工作空间。
2017-02-20 cs.DS
Practical evaluation of Lyndon factors via alphabet reordering
我们评估的影响,不同的字母排序的林登分解的字符串。Pizza & Chili数据集的实验表明,对于大多数字母表重排序,Lyndon因子的数量通常很小,最长Lyndon因子的长度可以与输入字符串一样大,这对于依赖于Lyndon因子数量的算法和索引是不利的。我们目前的结果与随机字母排列,可以作为一个基线,以评估的有效性,设计修改的林登分解的字符串通过字母重排的方法和算法。
2021-08-11 cs.DS
Algorithms for Longest Common Abelian Factors
在本文中,我们考虑的问题,计算两个给定的字符串之间的最长公共阿贝尔因子(LCAF)。我们提出了一个简单的$O(σ~ n^2)$时间算法,其中$n$是字符串的长度和$σ$是字母表的大小,和一个次二次运行时间的解决方案的二进制字符串的情况下,都有线性空间的要求。此外,我们提出了一个修改后的算法,应用一些有趣的技巧和实验表明,由此产生的算法运行速度更快。
2015-02-28 cs.DS
Fixed-Parameter Algorithms for Longest Heapable Subsequence and Maximum Binary Tree
可堆序列是可以排列在“最小堆数据结构“中的数字序列。Byers、Heeringa、Mitzenmacher和Zervas(ANALCO 2011)提出了寻找给定序列的最长可堆子序列,作为已研究的最长递增子序列问题的推广,其复杂性仍然是开放的。最长可堆子序列问题的一个等价公式是在给定的置换有向无环图(置换DAG)中寻找最大二叉树。在这项工作中,我们研究了最长可堆子序列以及最大二叉树的参数化算法。结果表明:1.最长可堆子序列问题可以在$k^{O(\log{k})}n$时间内解决,其中$k$是输入序列中不同值的数量。我们引入了“字母大小”作为一个新的参数在研究的计算问题的置换DAG。我们的最长可堆子序列的结果意味着,在一个给定的置换DAG的最大尺寸的二叉树问题是固定参数的参数时,由字母表的大小易处理的。2.我们表明,相对于一个固定的拓扑顺序的字母表的大小可以计算在多项式时间,承认一个最小-最大的关系,并有一个多面体的描述。3.针对无向图的最大二叉树问题,设计了一个以树宽$w$为参数的固定参数的运行时$w^{O(w)}n$算法.我们的研究结果从参数化算法的角度对理解置换DAG中最长可堆子序列和最大二叉树的复杂性做出了进展。我们相信,我们引入的参数字母表的大小可能是有用的上下文中定义的置换DAG的优化问题。
2021-10-06 cs.DM cs.DS
Lower Bounds and Improved Algorithms for Asymmetric Streaming Edit Distance and Longest Common Subsequence
本文研究了Saks和Seshadhri [SS13]提出的非对称流模型中的编辑距离(ED)和最长公共子序列(LCS)。作为随机访问模型和流模型之间的中间模型,该模型允许对一个字符串进行流访问,并对另一个字符串进行随机访问。我们的第一个主要贡献是系统的研究空间下界的ED和LCS的非对称流模型。以前,在此上下文中没有明确说明的结果,尽管可以从[SW 07][GG 10][EJ08]中最长递增子序列(LIS)的下限推断出LCS的一些下限。然而,这些界限只适用于大的字母表大小。在本文中,我们开发了几种新的技术来处理ED一般和LCS小字母表的大小,从而建立强有力的下界这两个问题。特别是,我们的ED下限在非对称流模型中提供了编辑距离和汉明距离之间的指数分离。我们的下界也扩展到LIS和最长非减序列(LNS)的标准流模型。与以前的结果一起,我们的边界提供了一个几乎完整的图片,这两个问题。作为我们的第二个主要贡献,我们给出了改进的算法ED和LCS在非对称流模型。对于ED,我们将[FHRS 20][CJLZ 20]中的常数因子近似算法的空间复杂度从$\tilde{O}(\frac{n^δ}δ)$改进为$O(\frac{d^δ}δ\;\mathsf{polylog}(n))$,其中$n$是每个字符串的长度,$d$是两个字符串之间的编辑距离.对于LCS,我们给出了二进制字母表上任意常数$δ>0$的空间为$…
2021-10-07 cs.DS
Variants of Constrained Longest Common Subsequence
在这项工作中,我们考虑一个变种的经典最长公共子序列问题称为双约束最长公共子序列(DC-LCS)。给定字母表A上的两个字符串s1和s2,字符串集合Cs,以及从A到N的函数Co,DC-LCS问题在于找到s1和s2的最长子序列s,使得s是Cs中所有字符串的超序列,并且使得A中每个符号a在s中出现的次数的上界为Co(a)。DC-LCS问题为计算生物学中的序列比较问题提供了一个清晰的数学公式,并推广了LCS问题的其他两个约束变体:约束LCS和无重复LCS。我们提出了两个DC-LCS问题的结果。首先,我们说明了一个固定参数的算法,其中的参数是解决方案的长度。其次,当参数为约束串的个数和字母表A的大小时,我们证明了约束LCS问题的参数化困难性结果。这个困难性结果也暗示了DC-LCS问题的参数化困难性(具有相同的参数)和当字母表的大小是常数时的NP-困难性。
2009-12-02 cs.DM cs.DS
Tight Lower Bounds for the Longest Common Extension Problem
最长的常见扩展问题是将给定长度为$n$的字符串预处理成一个数据结构,该数据结构在输入的顶部使用$S(n)$位,并在$T(n)$时间中回答查询$\mathit{LCE}(i,j)$,计算在输入中的位置$i$和$j$处出现的最长字符串的长度。我们证明,权衡$S(n)T(n) = Ω(n\log n)$持有的非均匀细胞探针模型,提供的输入字符串是只读的,每个字母占用一个单独的存储单元,$S(n) = Ω(n)$,和输入字母的大小至少是$2^{8\lceil S(n) / n\rceil}$。众所周知,这种权衡是紧密的。
2017-05-11 cs.DS
Longest Common Extension of a Dynamic String in Parallel Constant Time
TU Dortmund University(多特蒙德工业大学)
本文提出一种动态并行常数时间算法,通过维护同步集层次结构,实现字符串的最长公共扩展查询,支持字符插入和删除操作,并应用于Dyck语言和平方检测。
2026-04-14 cs.DS
Improved Lower Bounds on the Expected Length of Longest Common Subsequences
本研究针对Chvátal-Sankoff常数精确值未知的公开问题,通过优化下界求解算法的运行时、并行化及内存读写方案,改进了σ=2、d=2等多类情形下的最长公共子序列期望长度下界。
2024-07-15 cs.DS
Longest Common Extensions in Trees
字符串中两个索引的最长公共扩展(LCE)是从这两个索引开始的最长相同子串的长度。LCE问题要求将字符串预处理为支持快速LCE查询的紧凑数据结构。在本文中,我们推广的LCE问题的树,并提出了一些应用LCE树尝试和XML数据库。给定一个大小为$n$的带标签和有根树$T$,目标是将$T$预处理成一个紧凑的数据结构,该结构支持$T$中的子路径和子树之间的以下LCE查询。假设$v_1$、$v_2$、$w_1$和$w_2$是$T$的节点,使得$w_1$和$w_2$分别是$v_1$和$v_2$的后代。\begin{itemize} \item $\LCEPP(v_1, w_1, v_2, w_2)$: (path-path $\LCE$) return the longest common prefix of the paths $v_1 \leadsto w_1$ and $v_2 \leadsto w_2$. \item $\LCEPT(v_1, w_1, v_2)$: (path-tree $\LCE$) return maximal path-path LCE of the path $v_1 \leadsto w_1$ and any path from $v_2$ to a descendant leaf. \item $\LCETT(v_1, v_2)$: (tree-tree $…
2015-07-09 cs.DS
Small Longest Tandem Scattered Subsequences
我们考虑的问题,确定串联分散的连续性内的字符串。我们的算法确定了一个最长的子序列,出现两次没有重叠的字符串。该算法基于Hunt-Szymanski算法,因此如果字符串不是自相似的,则其性能会提高。这在大字母表上的字符串上自然发生。我们的算法依赖于新的数据结构,支持动态最长增加的子序列的结果。在这个过程中,我们也得到了改进的算法的递减字符串比较问题。
2020-06-24 cs.DS
An Algorithm for the Longest Common Subsequence and Substring Problem for Multiple Strings
本文针对多字符串场景,提出一种求解最长公共子序列与子串问题的算法,该问题要求找到同时为多个X串的子序列且为多个Y串的子串的最长字符串。
2024-11-24 cs.DS
Optimal Computation of Overabundant Words
在给定序列$x$中观察到的单词$w$的最长正确前缀、最长正确后缀和最长中缀的频率可用于将$w$分类为避免的或过度丰富的。Brendel等人(J Biomol Struct Dyn 1986)描述了该统计模型中用于$w$预期和偏差的定义,并进行了生物学论证。我们最近引入了一种时间最优算法,用于计算整数字母表上给定序列的所有避免单词(Algorithms Mol Biol 2017)。在这篇文章中,我们提出了一个$\mathcal{O}(n)$-时间和$\mathcal{O}(n)$-空间算法计算所有过剩的话在一个序列$x$的长度$n$在一个整数字母表。我们的主要结果是基于一个新的非平凡的组合性质的后缀树$\mathcal{T}$的$x$:$x$的最长中缀是标签的显式节点的$\mathcal{T}$的不同的因素的数目不超过$3n-4$。我们进一步表明,所提出的算法是时间最优的证明,$\mathcal{O}(n)$是一个紧上限的数量过剩的话。最后,我们提出的实验结果,使用合成和真实的数据,证明我们的方法在实践中的有效性和效率。
2017-05-09 cs.DS
The Longest Run Subsequence Problem: Further Complexity Results
最长运行子序列是最近在基因组组装的支架阶段的背景下引入的问题(Schrinner等人,WABI 2020)。该问题要求给定字符串的最大长度子序列,其中每个符号最多包含一个游程(游程是连续相同符号的最大子串)。这个问题已经被证明是NP-难的,并且当参数是定义输入字符串的字母表的大小时,是固定参数易处理的。在本文中,我们进一步调查的问题的复杂性,我们表明,它是固定参数的易处理的,当它是参数化的运行在一个解决方案中,一个较小的参数。此外,我们调查的最长运行子序列的核化复杂性,我们证明了它不承认一个多项式核时,参数化的字母表的大小或运行的数量。最后,我们考虑了最长游程子序列的限制,当每个符号在输入字符串中最多出现两次时,我们证明了它是APX困难的。
2021-06-22 cs.CC cs.DS q-bio.GN
Faster Algorithms for Longest Common Substring
King’s College London(伦敦国王学院);Max Planck Institute for Informatics(马克斯·普朗克计算机科学研究所);University of Warsaw(华沙大学);Samsung R&D Institute Poland(三星波兰研发中心);CWI, Amsterdam(荷兰数学与计算机科学研究中心);Vrije Universiteit, Amsterdam(阿姆斯特丹自由大学)
针对最长公共子串问题,提出字RAM模型下O(n log σ/√log n)时间的亚线性算法(σ=O(1)时);拓展到k-错配LCS问题,给出O(n log^{k-1/2}n)时间算法,突破n log^k n壁垒。
2025-11-17 cs.DS
Longest Common Extensions with Recompression
给定长度为$N$的字符串$T$中的两个位置$i$和$j$,最长公共扩展(LCE)查询询问以$i$和$j$开始的后缀之间的最长公共前缀的长度。压缩LCE数据结构是以压缩形式存储$T$同时支持快速LCE查询的数据结构。在这篇文章中,我们表明,再压缩技术是一个强大的工具,压缩LCE数据结构。我们提出了一个新的压缩LCE数据结构的大小$O(z \lg (N/z))$,支持LCE查询在$O(\lg N)$的时间,其中$z$是Lempel-Ziv 77因式分解的大小没有自引用的$T$。给定$T$作为未压缩的形式,我们将展示如何在$O(N)$时间和空间中构建我们的数据结构。给定$T$作为语法压缩形式,即,一个生成$T$的大小为n的直线程序,我们展示了如何在$O(n \lg (N/n))$时间和$O(n + z \lg (N/z))$空间中建立我们的数据结构。我们的算法是确定性的,总是返回正确的答案。
2016-11-21 cs.DS
On-line Indexing for General Alphabets via Predecessor Queries on Subsets of an Ordered List
文本索引问题是一个基本的算法问题,其中人们希望预处理文本,以便快速定位文本中的模式查询。在动态和在线数据的不断发展的世界中,还需要开发解决方案来索引在线到达的文本,即一次一个字符,并且仍然能够快速定位所述模式。本文提出了一种新的在线索引解决方案,通过在$O(\log \log n + \log\log |Σ|)$最坏情况下每个字符的期望时间,其中$n$是字符串的大小,和$Σ$是字母表中提供一个在线后缀树的结构。这改进了所有先前已知的用于一般字母表的在线后缀树构造,代价是具有预期的运行时间。其主要思想是减少问题的后缀树在线构建一个有趣的变体的顺序维护问题,这可能是独立的利益。在著名的顺序维护问题中,人们希望在插入、删除和顺序查询下维护大小为$n$的动态列表$L$。在顺序查询中,一个查询从$L$获得两个节点,并且必须确定在$L$中哪个节点在另一个节点之前。在有序动态列表问题(POLP)的动态子集上的前驱搜索中,还需要维护$L$的动态子集,使得给定某些$u\in L$,可以在任何子集中快速定位$u$的前驱。本文提供了一种有效的数据结构,能够解决POLP与最坏情况下的预期边界相匹配的RAM模型中的前趋搜索的当前最佳已知的边界,改善了解决方案,可以隐式地从Dietz [Die89]。此外,本文还改进或简化了一些其他应用程序的边界,包括完全持久化数组和订单维护问题。
2012-08-19 cs.DS
A Note on the Longest Common Compatible Prefix Problem for Partial Words
对于部分字$w$,两个位置的最长公共兼容前缀$i,j$(表示为$lccp(i,j)$)是最大的$k$,使得$w[i,i+k-1]\uparrow w[j,j+k-1]$,其中$\uparrow$是部分字的兼容关系(它不是等价关系)。LCCP问题是以这样一种方式预处理部分单词,即任何关于该单词的查询$lccp(i,j)$都可以在$O(1)$时间内得到回答。这是一个自然推广的最长公共前缀(LCP)的问题,其中$O(n)$预处理时间和$O(1)$查询时间的解决方案存在的规则的话。最近F. Blanchet-Sadri and J. Lazarow(LATA 2013).预处理时间为$O(nh+n)$,其中$h$是$w$中的“孔”数。该算法是为固定字母表上的部分单词而设计的,并且相当复杂。我们提出了一个简单的解决方案,这个问题有稍微好一点的运行时间,适用于任何线性排序字母表。我们的预处理是在时间$O(nμ+n)$,其中$μ$是$w$中的孔块的数量。我们的算法使用对齐算法和动态规划的思想。
2013-12-09 cs.DS cs.FL
On Abelian Longest Common Factor with and without RLE
我们认为阿贝尔最长公因子问题在两种情况下:当输入字符串是未压缩的,大小为$n$,当输入字符串是游程编码,其压缩表示的大小最多为$m$。字母表大小由$σ$表示。对于未压缩的问题,我们展示了一个$o(n^2)$ -时间和$\Oh(n)$ -空间算法的情况下,$σ=\Oh(1)$,使一个非平凡的使用制表。对于RLE压缩的问题,我们展示了两个算法:一个工作在$\Oh(m^2σ^2 \log^3 m)$时间和$\Oh(m (σ^2+\log^2 m))$空间,它采用线扫描,和一个工作在$\Oh(m^3)$时间和$\Oh(m)$空间,适用于在一个仔细的方式滑动窗口为基础的方法。后者改进了Sugimoto等人最近开发的先前已知的$\Oh(nm^2)$时间和$\Oh(m^4)$时间算法。(IWOCA 2017)和Grabowski(SPIRE 2017)。
2018-04-18 cs.DS
Longest Common Prefixes with $k$-Errors and Applications
尽管现实世界的文本数据集(如DNA序列)远非均匀随机,但在大多数感兴趣的应用中,平均情况下的字符串搜索算法的性能明显优于最坏情况下的算法。在本文中,我们研究的问题,计算的最长前缀的每个后缀的长度为$n$在一个常数大小的字母表,出现在其他地方的字符串与$k$ -错误的字符串。这个问题已经在海明距离模型下进行了研究。我们的第一个结果是一个改进后的国家的最先进的平均情况下的时间复杂度为非常数$k$,并只使用线性空间下的汉明距离模型。值得注意的是,我们表明,我们的技术可以扩展到编辑距离模型具有相同的时间和空间复杂度。具体来说,我们的算法运行在$\mathcal{O}(n \log^k n \log \log n)$时间平均使用$\mathcal{O}(n)$空间。我们表明,我们的技术是适用于计算生物学和其他地方的几个算法问题。
2018-01-13 cs.DS
Improved space-time tradeoffs for approximate full-text indexing with one edit error
在本文中,我们有兴趣在索引文本的子串匹配查询与一个编辑错误。也就是说,给定一个由$n$字符组成的文本$T$,在一个大小为$σ$的字母表上,我们被要求构建一个回答以下查询的数据结构:找到文本的所有$occ$子串,这些子串与给定的长度为$m$的字符串$q$的编辑距离最多为$1$。在本文中,我们显示了两个新的结果,这个问题。第一个结果,适用于无界字母表,使用$O(n\log^εn)$(其中$ε$是任何常数,使得$0<ε<1$)空间字和时间查询的答案$O(m+occ)$。这提高了同时在空间和时间的结果科尔等人。第二个结果,只适合于一个恒定的字母表,依赖于压缩的文本索引,并在两个变种:第一个变种使用$O(n\log^ε n)$位的空间和答案查询的时间$O(m+occ)$,而第二个变种使用$O(n\log\log n)$位的空间和答案查询的时间$O((m+occ)\log\log n)$。这第二个结果改进了Lam等人(Mumica 2008)和Chan等人(Mumica 2010)之前获得的恒定字母表的最佳结果。
2014-08-21 cs.DS
Constructing LZ78 Tries and Position Heaps in Linear Time for Large Alphabets
我们提出了第一个最坏情况下的线性时间算法来计算一个给定的字符串在一个整数字母表的Lempel-Ziv 78因子分解。我们的算法是基于最近的标记祖先查询的后缀树的给定字符串。我们还表明,同样的技术可以用来构建一组字符串的位置堆在最坏情况下的线性时间,当一组字符串作为一个trie。
2015-01-26 cs.DS
Fast Longest Common Extensions in Small Space
在本文中,我们解决的最长公共扩展(LCE)问题:计算长度$\ell$的任何两个后缀之间的$T\in Σ^n$与$ Σ= \{0, \ldots σ-1\} $的最长公共前缀。我们提出了两个快速和空间有效的解决方案的基础上(Karp-Rabin)\textit{fingerprinting}和\textit{sampling}。我们的第一个数据结构利用梅森素数的属性时,使用的卡普-拉宾哈希函数的模数,并采取$n\lceil \log_2σ\rceil$位的空间。我们的第二种结构适用于任何素数模,并占用$n\lceil \log_2σ\rceil + n/w + w\log_2 n$位空间($ w $存储器字大小)。这两种结构都支持$\mathcal O\left(m\logσ/w \right)$ -时间提取任意长度的$m$文本子串,$\mathcal O(\log\ell)$ -时间LCE查询的高概率,并可以建立在最佳的$\mathcal O(n)$时间。在第一种情况下,我们是第一个结果,表明它是可能的回答LCE查询在$o(n)$时间,而只使用$\mathcal O(1)$字的顶部所需的空间来存储文本。我们的研究结果提高了空间使用率,查询时间和预处理时间的最新技术水平,并且非常实用:我们提出了一个C++实现,在实践中非常快速和节省空间。
2016-07-22 cs.DS
Full-fledged Real-Time Indexing for Constant Size Alphabets
在本文中,我们描述了一个数据结构,支持模式匹配查询的动态到达的文本在一个字母表的恒定大小。每个新的符号都可以在O(1)的最坏情况下前置到$T$。在任何时候,我们都可以在$O(|P|+k)$时间内报告模式$P$在当前文本中的所有出现,其中$|P|$是$P$的长度,$k$是出现的次数。这解决了在字母表大小恒定的假设下,存在用于字符串匹配的实时的【形】索引方法的一个长期存在的公开问题(参见\cite{AmirN08})。
2013-07-06 cs.DS
Sublinear Space Algorithms for the Longest Common Substring Problem
给定$m$文档的总长度$n$,我们考虑的问题,找到一个最长的字符串共同的至少$d \geq 2$的文件。这个问题被称为\emph{longest common substring (LCS) problem},并且具有经典的$O(n)$空间和$O(n)$时间解(Weiner [FOCS'73],Hui [CPM'92])。然而,线性空间的使用在许多应用中是不切实际的。在本文中,我们表明,对于任何权衡参数$1 \leq τ\leq n$,LCS问题可以解决在$O(τ)$空间和$O(n^2/τ)$时间,从而提供了第一个光滑的确定性的时间-空间权衡从常数到线性空间。结果使用了一种新的非常简单的算法,它计算了在$O(n^2/τ)$时间和$O(1)$空间中LCS的$τ$ -加法近似。我们还展示了确定性分支程序的时间-空间权衡下界,这意味着任何确定性RAM算法解决LCS问题的文件,从足够大的字母在$O(τ)$空间必须使用$Ω(n\sqrt{\log(n/(τ\log n))/\log\log(n/(τ\log n)})$时间。
2014-07-02 cs.DS
Longest Common Extensions in Sublinear Space
最长公共扩展问题(LCE问题)是为长度为$n$的输入字符串$T$构造支持LCE $(i,j)$查询的数据结构。这样的查询返回从$T$中的位置$i$和$j$开始的后缀的最长公共前缀的长度。这个经典问题有一个众所周知的解决方案,它使用$O(n)$空间和$O(1)$查询时间。在本文中,我们表明,对于任何权衡参数$1 \leq τ\leq n$,该问题可以解决在$O(\frac{n}τ)$空间和$O(τ)$查询时间。这显著地改进了先前最佳已知的时间-空间权衡,并且几乎匹配最佳已知的时间-空间乘积下限。
2015-04-10 cs.DS
Counting Distinct (Non-)Crossing Substrings in Optimal Time
Kyushu University(九州大学);University of Yamanashi(山梨大学);Institute of Science Tokyo(东京科学大学)
本文提出新的算法,能够在一般有序字母表中以O(n)时间计算所有位置k的C(w,k),在线性可排序字母表中以O(n)时间计算所有位置k的N(w,k),并推导出基于字母表假设和计算模型的最优界。
2026-06-04 cs.DS
Low Space External Memory Construction of the Succinct Permuted Longest Common Prefix Array
最长公共前缀(LCP)数组是索引字符串匹配中的一种通用辅助数据结构。它可以用来加速使用后缀数组(SA)的搜索,并提供底层后缀树拓扑的隐式表示。长度为$n$的字符串的LCP阵列可以表示为长度为$n$的字的阵列,或者在存在SA的情况下,表示为$2n$位加上渐近可忽略的支持数据结构的位向量。已经提出了用于LCP阵列的外部存储器构造算法,但是迄今为止提出的那些算法在外部存储器中具有$O(n)$字(即,$O(n \log n)$位)的空间要求。在某些实际情况下,这种空间要求过于昂贵。我们提出了一个外部存储器算法,用于构建的$2n$位版本的LCP阵列,使用$O(n \log σ)$位的额外空间在外部存储器中时,给定的(压缩)BWT与字母大小$σ$和采样率$O(\log n)$的采样逆后缀阵列。在$σ$通常比$n$小得多或者甚至是常数的情况下,这在实践中通常是显著的空间增益。我们还考虑了计算循环字符串的简洁LCP数组的情况。
2016-03-08 cs.DS
Range Longest Increasing Subsequence and its Relatives
Rutgers University(罗格斯大学);Indian Institute of Science(印度科学学院)
本文提出了针对范围最长递增子序列问题及其变种的高效算法,改进了传统方法的时间复杂度,并在理论基础上证明了算法的最优性。
2025-12-01 cs.DS
Time-Space Trade-Offs for Longest Common Extensions
我们重新审视最长公共扩展(LCE)的问题,也就是说,预处理字符串$T$到一个紧凑的数据结构,支持快速LCE查询。LCE查询采用$T$中的一对$(i,j)$索引,并返回从位置$i$和$j$开始的$T$的后缀的最长公共前缀的长度。我们研究了这个问题的时间-空间权衡,即用于数据结构的空间与回答LCE查询的最坏情况的时间。令$n$为$T$的长度。给定一个参数$τ$,$1 \leq τ\leq n$,我们展示了如何实现$O(\infrac{n}{\sqrtτ})$空间和$O(τ)$查询时间,或$O(\infrac{n}τ)$空间和$O(τ\log({|\LCE(i,j)|}/τ))$查询时间,其中$|\LCE(i,j)|$表示查询返回的LCE的长度。这些边界为LCE问题提供了第一个平滑的权衡,并且当$τ=1$或$τ=n$时,几乎与先前已知的极限相匹配。我们应用的结果,以获得改进的界限的几个应用程序中的LCE问题的计算瓶颈,包括近似字符串匹配和计算回文。我们还提出了一个有效的技术,减少两个字符串的LCE查询一个字符串。最后,我们给出了一个下界的时间-空间积的LCE数据结构中的非均匀细胞探针模型表明,我们的第二个权衡是接近最优的。
2013-04-22 cs.DS
Computing Longest Increasing Subsequence Over Sequential Data Streams
本文提出了一种数据结构--四重邻居表(QN-list),用于支持序列数据流上所有最长递增子序列(LIS)和有约束LIS的实时的查询。由我们的算法构建的QN-List需要$O(w)$空间,其中$w$是时间窗口大小。构建初始QN列表的运行时间需要$O(w\log w)$时间。应用QN-列表时,插入新项目需要$O(\log w)$时间,删除第一个项目需要$O(w)$时间。据我们所知,这是第一个工作,支持LIS枚举和LIS的约束计算,通过使用一个统一的数据结构的实时的顺序数据流。我们的方法优于国家的最先进的方法在时间和空间成本,不仅在理论上,而且经验。
2016-10-11 cs.DS
Efficient LCE Queries and Lexicographic Minimizers on Sliding Suffix Trees
Kyushu University(九州大学)
针对滑动窗口的后缀树,提出线性空间数据结构,支持均摊常数时间窗口移动和最坏常数时间LCE查询,并给出常数时间报告最小化子的替代算法。
2026-07-02 cs.DS
Longest Property-Preserved Common Factor
在本文中,我们介绍了一个新的家庭的字符串处理问题。给定两个或多个字符串,要求我们计算一个所有字符串共有的因子,该因子保持特定属性并具有最大长度。在这里,我们考虑三个基本的字符串属性:无平方因子,周期因子和回文因子在三个不同的设置,一个属性。在第一个设置中,我们给出一个字符串$x$,我们被要求在$x$上构造一个数据结构,回答以下类型的在线查询:给定字符串$y$,找到$x$和$y$共同的最长无平方因子。在第二个设置中,我们给出了$k$字符串和一个整数$1 < k'\leq k$,并要求我们找到至少$k'$字符串共有的最长周期因子。在第三种情况下,我们有两个字符串,我们被要求找到两个字符串共同的最长回文因子。我们提出了所有设置的线性时间的解决方案。我们期望我们的范例可以扩展到其他字符串属性或设置。
2018-10-04 cs.DS
Tight Lower Bounds for Central String Queries in Compressed Space
该研究推导了压缩空间下几乎所有基础字符串查询的紧下界,确立了查询最优时间复杂度的二分性,完善了压缩索引的理论基础,为后续数据结构研究指明方向。
2025-10-22 cs.DS
Internal Shortest Absent Word Queries in Constant Time and Linear Space
给定一个长度为$n$的字符串$T$,在一个大小为$σ$的字母表$Σ\subset \{1,2,\ldots,n^{O(1)}\}$上,我们要对$T$进行预处理,以便给定一个范围$[i,j]$,我们可以返回一个在$Σ$上的最短字符串的表示,该表示在$T$的片段$T[i]\cdots T[j]$中不存在。我们提出了一个$O(n)$空间的数据结构,回答这样的查询在恒定的时间,并可以在$O(n\log_σn)$的时间。
2021-06-03 cs.DS
Run Compressed Rank/Select for Large Alphabets
给定一个长度为$n$的字符串,该字符串由来自字母表$\{0,1,\ldots,σ{-}1\}$的字母组成,使得$2 \le σ\le r$,我们描述了一种数据结构,该数据结构提供$r \le n / \log^{ω(1)} n$,以$r\log\frac{nσ}{r} + o(r\log\frac{nσ}{r})$位存储字符串,并支持在$O(\log\frac{\log(n/r)}{\log\log n})$时间中的选择和访问查询以及在$O(\log\frac{\log(nσ/r)}{\log\log n})$时间中的排名查询。我们表明,$r\log\frac{n(σ-1)}{r} - O(\log\frac{n}{r})$位是必要的任何这样的数据结构,因此,我们的解决方案是简洁的。我们还描述了一个数据结构,它使用$(1 + ε)r\log\frac{nσ}{r} + O(r)$位,其中$ε> 0$是一个任意常数,具有相同的查询时间,但没有限制$r \le n / \log^{ω(1)} n$。通过简单的减少有色前任问题,我们表明,查询时间是最佳的重要情况下$r \ge 2^{\log^δn}$,为任意常数$δ> 0$。我们实施了我们的解决方案,并将其与最先进的解决方案进行了比较,结果显示,最接近的竞争对手消耗的空间要多31-46%。
2018-02-26 cs.DS
Linear-Space Substring Range Counting over Polylogarithmic Alphabets
Bille和Gørtz(2011)最近介绍了子串范围计数的问题,为此我们被要求将具有整数标签的$n$字符的字符串$S$存储在([0,u])中,以便稍后,给定间隔([a,b])和长度为$m$的模式$P$,我们可以快速计数其第一个字符的标签在([a,u])中的$P$的出现次数。b])。他们展示了如何在$\Oh{n \log n / \log \log n}$空间中存储$S$,并在$\Oh{m + \log \log u}$时间中回答查询。我们证明,如果$S$是在一个字母表的大小(\polylog(n)),那么我们可以实现最佳的线性空间。此外,如果(u = n \polylog(n)),则我们还可以将时间减少到$\Oh{m}$。我们的结果给出了位置受限子串计数的线性空间和时间界,以及区间索引子串、间隔索引子串和对齐模式匹配的计数形式.
2012-02-15 cs.DS
Adaptive Learning of Compressible Strings
假设一个oracle知道一个字符串$S$,这个字符串对我们来说是未知的,我们想确定它。oracle可以回答"$s$是$S$的子串吗?".在1995年,Skiena和Sundaram指出,在最坏的情况下,任何算法都需要询问Oracle $σn/4 -O(n)$查询,以便能够重建隐藏字符串,其中$σ$是$S$的字母表的大小,$n$是其长度,并给出了一个算法,该算法花费$(σ-1)n+O(σ\sqrt{n})$查询来重建$S$。本文的主要贡献是在弦是可压缩的情况下改进了上述上界。我们首先提出了一个通用的算法,给定一个(可计算的)压缩器,压缩字符串的$τ$位,执行$q=O(τ)$子串查询,这个算法,但是,在指数时间运行。出于这个原因,本文的第二部分侧重于时间效率更高的算法,其查询的数量是由特定的压缩性措施。我们首先表明,任何字符串的长度$n$在一个整数字母表的大小$σ$与$rle$运行可以重建与$q=O(rle (σ+ \log \frac{n}{rle}))$子串查询线性时间和空间。然后,我们提出了一个算法,花$q \in O(σg\log n)$子串查询和运行在$O(n(\log n + \log σ)+ q)$时间使用线性空间,其中$g$是一个最小的直线程序生成的字符串的大小。
2021-10-19 cs.DS
Deterministic sub-linear space LCE data structures with efficient construction
给定$n$符号的串$S$,最长公共扩展查询$\mathsf{LCE}(i,j)$询问$S$的第$i$和第$j$后缀的最长公共前缀的长度。LCE查询在字符串处理中有几个重要的应用,也许最值得注意的是后缀排序。最近,Bille等人(J. Discrete Algorithms 25:42-50,2014,Proc. CPM 2015:65-76)描述了用于回答LCE查询的若干数据结构,其提供了数据结构大小与查询时间之间的空间-时间权衡。特别地,对于参数$1 \leq τ\leq n$,它们的最佳确定性解决方案是大小为$O(n/τ)$的数据结构,其允许在$O(τ)$时间内回答LCE查询。然而,在$n$中,其数据结构的所有确定性版本的构造时间是二次的。在本文中,我们提出了一个确定性的解决方案,实现了类似的时空权衡$O(τ\min\{\logτ,\log\frac{n}τ\})$查询时间使用$O(n/τ)$空间,但显着提高建设时间$O(nτ)$。
2016-01-29 cs.DS
Small-space encoding LCE data structure with constant-time queries
\emph{longest common extension}(\emph{LCE})问题是预处理长度为$n$的给定字符串$w$,以便快速回答在任何两个给定位置开始的$w$后缀之间的最长公共前缀的长度。在本文中,我们提出了一个数据结构的$O(z τ^2 + \frac{n}τ)$字的空间,回答LCE查询在$O(1)$时间,并可以建立在$O(n \log σ)$时间,其中$1 \leq τ\leq \sqrt{n}$是一个参数,$z$是的Lempel-Ziv 77分解的$w$和$σ$是字母表的大小。这是\emph{encoding}数据结构,即,它在回答查询时不访问输入字符串$w$,因此$w$可以在预处理之后被删除。在这个主要结果的顶部,我们得到进一步的结果使用(变种)我们的LCE数据结构,其中包括以下内容:-对于高度重复的字符串的$zτ^2$长期占主导地位的$\frac{n}τ$,我们得到一个\emph{constant-time and sub-linear space} LCE查询数据结构。- 即使当输入字符串通过Lempel-Ziv 77因子分解不能很好地压缩时,我们仍然可以获得用于合适的$τ$和用于$σ\leq 2^{o(\log n)}$的\emph{constant-time and sub-linear space} LCE数据结构。- Bille等人[J. Disc…
2017-02-24 cs.DS
Improved Bounds for High-Dimensional Equivalence and Product Testing using Subcube Queries
Technion - Israel Institute of Technology(以色列理工学院);University of Haifa(海法大学)
本文在子立方体条件模型下,将n维分布等价性测试的查询复杂度从~O(n^2/ε^2)改进到~O(n/ε^2),并扩展到一般有限字母表;同时得到区间查询模型下~O((log N)/ε^2)的查询复杂度,以及n维分布乘积测试的~O(n/ε^2)查询复杂度,并给出下界。
2026-07-03 cs.DS
Sketching, Streaming, and Fine-Grained Complexity of (Weighted) LCS
我们研究了小字母长度字符串的最长公共子序列问题(LCS)的草图和流算法$|Σ|$。对于判断字符串$x,y$的LCS长度是否至少为$L$的问题,我们得到了$\mathcal{O}(L^{|Σ| - 1} \log L)$的草图大小和流空间使用率。我们还证明了匹配的无条件下界。作为一个应用程序,我们研究了LCS的一个变体,其中每个字母符号都配备了一个权重,作为输入,任务是计算一个共同的子序列的最大总重量。使用我们的草图算法,我们得到了这个问题的$\mathcal{O}(\textrm{min}\{nm, n + m^{\lvert Σ\rvert}\})$时间算法,长度为$n,m$的字符串$x,y$,$n \ge m$。我们证明了最优的运行时间为低阶因素,假设强指数时间假设。
2018-10-02 cs.DS
Longest Common Substring Made Fully Dynamic
在最长公共子串(LCS)问题中,我们给出两个字符串$S$和$T$,每个字符串的长度最多为$n$,我们被要求找到一个最长的字符串,它同时作为$S$和$T$的片段出现。这是计算机科学中一个经典的、研究得很好的问题,有一个已知的$\mathcal{O}(n)$时间解。在这个问题的完全动态版本中,两个字符串中的任何一个都允许编辑操作,并且我们被要求在每个这样的操作之后报告一个LCS。我们提出了这个问题的第一个解决方案,需要每次编辑操作的次线性时间。特别是,我们展示了如何在每次使用$\tilde{\mathcal{O}}(n)$空间的操作之后,以$\tilde{\mathcal{O}}(n^{2/3})$时间(或$\tilde{\mathcal{O}}(\sqrt{n})$时间,如果只允许在两个字符串中的一个中进行编辑)返回LCS。这一系列研究最近由作者[SPIRE 2017]在某种程度上受到限制的动态变量中发起。给出了一个$\tilde{\mathcal{O}}(n)$大小的数据结构,它在$\tilde{\mathcal{O}}(1)$时间内返回两个字符串的LCS。在CPM 2018上,有三篇论文研究了字符串问题的类比限制动态变体。我们表明,我们的技术可以用来获得完全动态算法的几个经典问题的字符串,即,计算最长的重复,最长的回文和最长的林登子串的字符串。之前唯一已知的字符串问题的次线性时间…
2018-07-16 cs.DS
A Data-Structure for Approximate Longest Common Subsequence of A Set of Strings
给定一组$k$字符串$I$,它们的最长公共子序列(LCS)是具有最大长度的字符串,该字符串是$I$中所有字符串的子集。用于该问题的数据结构将$I$预处理为数据结构,使得可以更快地计算具有$I$的字符串的查询字符串集合$Q$的LCS。由于该问题对于任意$k$都是NP难的,因此我们允许一个错误,该错误允许某些字符被其他字符替换。我们用额外的输入$m$来定义问题的近似版本,它是描述输入的正则表达式(regex)的长度,近似因子是算法返回的regex中可能性数量的对数,除以具有最小可能性数量的对数regex。然后,我们使用树型数据结构来实现次线性时间LCS查询。我们还解释了如何将这个想法扩展到最长递增子序列(LIS)问题。
2021-01-12 cs.DS
Optimal Rank and Select Queries on Dictionary-Compressed Text
我们研究的问题,支持查询的字符串$S$的长度$n$内的一个字符串吸引子$S$的大小$γ$有界的空间。最近的工作表明,在$O\left (γ \rm{polylog}\ n \right)$空间内,$S$上的随机访问可以在最佳$O(\log(n/γ)/\log\log n)$时间内得到支持。在本文中,我们将这一结果扩展到\emph{rank}和\emph{select}查询,并提供与我们的上界匹配的字母表的多对数大小的下限。我们的解决方案给出了一个空间-时间权衡的形式,这是更普遍的比以前已知的语法,并提高了现有的界限LZ 77压缩文本的$\log\log n$时间因子在\emph{select}查询。我们还提供了匹配的下限和上限为\emph{partial sum}和\emph{predecessor}查询吸引子有界空间内,并扩展我们的下限,包括导航字典压缩树表示。
2018-12-21 cs.DS
Subsequence Matching and LCS under Cartesian-Tree Equivalence
Kyushu University(九州大学);Joint Graduate School of Mathematics for Innovation, Kyushu University(九州大学数学创新联合研究生院);University of Electro-Communications(电气通信大学)
本文提出Cartesian树匹配下的子序列匹配与最长公共子序列问题,针对不同字母表提出高效算法及时间下限。
2025-12-30 cs.DS
Enhanced Covers of Regular & Indeterminate Strings using Prefix Tables
字符串$x = x[1..n]$的\itbf{cover}是$x$的适当子串$u$,使得$x$可以从$u$的可能重叠的实例构造。最近的一篇论文\cite{FIKPPST13}放宽了这一定义-$x$的一个\itbf{enhanced cover} $u$是$x$的一个边界(也就是说,一个适当的前缀,也是一个后缀),它覆盖了$x$中的{ \it maximum}个位置(不一定是全部)-并提出了计算增强覆盖的有效算法。这些算法依赖于\itbf{border array} $β[1..n]$的先前计算,其中$β[i]$是$x[1..i]$的最长边界的长度,即$1 \le i \le n$。在本文中,我们首先展示了如何使用\itbf{prefix table}来计算增强的覆盖:一个数组$π[1..n]$,使得$π[i]$是$x$的最长子串的长度,该子串从与$x$的前缀匹配的位置$i$开始。与边界数组不同,前缀表是健壮的:它的属性也适用于\itbf{indeterminate strings} --也就是说,字符串定义在字母表$Σ$的{ \it子集}上,而不是$Σ$的单个元素上。因此,我们的算法,除了在实践中更快,更节省空间比那些\cite{FIKPPST13},使我们能够轻松地扩展计算的增强覆盖不确定的字符串。对于规则和不确定的字符串,我们的算法在预期的线性时间内执行。在此过程中,我们建立了…
2015-06-22 cs.DS