Finding the Leftmost Critical Factorization on Unordered Alphabet
我们提出了一个线性时间和空间算法计算一个给定的字符串的最左临界分解的无序字母表。
2016-04-11 cs.DS
Computing the Parameterized Burrows--Wheeler Transform Online
参数化字符串是字符串的一种概括,因为它们的字符来自两个不同的字母表,其中一个被认为是静态字符的字母表,另一个被认为是参数字符的字母表。如果在所有字符上存在双射,使得双射将一个字符串转换为另一个字符串,同时保持静态字符(即,其表现为静态字母表上的标识)。Ganguly等人[SODA 2017]提出了参数化Burrows-Wheeler变换(pBWT)作为Burrows-Wheeler变换的变体,用于空间高效的参数化模式匹配。在本文中,我们提出了一个算法,通过从右到左逐个读取给定输入字符串的字符来在线计算pBWT。我们的算法工作在$O(|Π| \log n / \log \log n)$摊销时间为每个输入字符,其中$n$和$Π$分别表示输入字符串的大小和参数字符的字母表。
2022-08-31 cs.DS
Counting Distinct Square Substrings in Sublinear Time
本文首次在打包字符串模型下提出次线性时间算法,通过长周期run的隐式表示、layer run的金字塔形组合性质以及稀疏Lyndon根技术,在$O(n/\log_σn)$时间内统计长度为$n$的字符串中不同平方子串的数量。
2025-09-02 cs.DS
Linear Time Inference of Strings from Cover Arrays using a Binary Alphabet
封面是最流行的形式之一,在字符串,随着时间的推移引起了人们的关注。在本文中,我们专注于问题的线性时间推断的字符串覆盖数组使用尽可能最小的字母表。我们提出了一个算法,可以重建一个字符串$x$在一个两个字母的字母表,只要一个有效的覆盖数组$C$作为输入。该算法利用覆盖数组的几个有趣的组合性质和边界数组与覆盖数组之间的一个有趣关系来实现这一点。我们的算法在线性时间内运行。
2011-08-27 cs.DM cs.DS
Lempel-Ziv Factorization May Be Harder Than Computing All Runs
研究了在有序字母表上计算的决策树模型中计算Lempel-Ziv分解和所有游程的集合(=最大重复次数)的复杂性。已知这两个问题都可以通过RAM算法在$O(n\logσ)$时间内解决,其中$n$是输入字符串的长度,$σ$是其中不同字母的数量。我们证明了构造Lempel-Ziv因子分解所需的比较次数的$Ω(n\logσ)$下限,从而得出结论,使用Lempel-Ziv因子分解计算游程的流行技术是可行的。Ziv因子分解无法实现$o(n\logσ)$时间界限。与此相反,我们展示了一个$O(n)$决策树算法,发现所有运行在一个字符串。因此,在决策树模型中,游程问题比Lempel-Ziv分解更容易。因此,我们支持的猜想,有一个线性RAM算法找到所有运行。
2014-09-19 cs.DS
A Simple Algorithm for Computing the Document Array
我们提出了一个简单的算法,用于计算给定字符串集合及其后缀数组作为输入的文档数组。我们的算法运行在线性时间使用恒定的额外空间字符串从常数字母表。
2019-11-02 cs.DS
Fast Computation of Abelian Runs
给定单词$w$和Parikh向量$\mathcal{P}$,$w$中周期$\mathcal{P}$的阿贝尔游程是具有阿贝尔周期$\mathcal{P}$的$w$的子串的最大出现。我们的主要结果是一个在线算法,给定一个词$w$的长度$n$在基数$σ$的字母表和一个Parikh向量$\mathcal{P}$,返回所有的阿贝尔运行周期$\mathcal{P}$在$w$在时间$O(n)$和空间$O(σ+p)$,其中$p$是规范的$\mathcal{P}$,即,其组成部分的总和。我们还提出了一种在线算法,对于任何给定的范数$p$,该算法计算$w$中范数$p$周期的所有阿贝尔运行,时间为$O(np)$。最后,我们给出了计算$w$的全部阿贝尔游程的$O(n^2)$ -时间离线随机算法。它的确定性对应部分在$O(n^2\logσ)$时间中运行。
2015-12-22 cs.DS
Unclustered BWTs of any Length over Non-Binary Alphabets
本文证明在大小至少为3的字母表上,对任意长度n都存在BWT完全无聚类(恰好n个run)的项链,并给出数量下界,与二进制情形下仍待解决的Artin原根猜想问题形成对比。
2025-08-28 cs.DM cs.DS cs.FL
Optimal Square Detection Over General Alphabets
正方形(对于某些字符串$x$,形式为$xx$的片段)可以说是字符串中最自然的重复类型。关于平方的基本算法问题是检查给定长度为$n$的字符串是否是无平方的,也就是说,不包含这种形式的片段。Main和Lorentz [J. Algorithms 1984]为这个问题设计了一个$\mathcal{O}(n\log n)$时间算法,并证明了一个匹配的下界,假设所谓的通用字母表,这意味着该算法只允许检查两个字符是否相等。但是,它们的下限还假设字符串中存在$Ω(n)$不同的符号。作为一个开放性问题,他们问如果限制字母表的大小,是否有更快的算法。克劳什莫尔(Theor)Comput. Sci. 1986年]设计了一个线性时间算法恒定大小的字母表,并结合最近的结果,他的方法实际上意味着这样的算法线性排序的字母表。最近,Ellert和Fischer [ICALP 2021]通过为一般有序字母表设计线性时间算法,即假设字符的线性顺序允许恒定的时间顺序比较,大大放松了这一假设。然而,1984年Main和Lorentz的公开问题对于一般(无序)字母表仍然没有解决。在本文中,我们表明,测试平方自由的长度$n$字符串的大小PDMATHAMR一般字母表可以做$\mathcal{O}(n\log σ)$比较,不能做$o(n\log σ)$比较。我们补充这个结果与$\mathcal{O}(n\log σ)$时间算法…
2023-03-13 cs.DS
Efficiently computing runs on a trie
一个最大的重复,或运行,在一个字符串中,是一个最大的周期子串,其最小的周期是最多一半的长度。在本文中,我们考虑运行,对应于一个trie上的路径,或者换句话说,在一个有根的边标记树的路径的端点必须是一个后代/祖先的其他。对于一个trie与$n$边缘,我们表明,运行的数量小于$n$。我们还显示了一个渐近下界上的最大密度的运行尝试:$\lim_{n\rightarrow\infty}ρ_\mathcal{T}(n)/n \geq 0.993238$其中$ρ_{\mathcal{T}}(n)$是运行的最大数量在一个trie与$n$边缘。此外,我们还显示了一个$O(n\log \log n)$时间和$O(n)$空间算法,找到所有运行。
2021-04-20 cs.DS
Space Efficient Linear Time Lempel-Ziv Factorization on Constant~Size~Alphabets
我们提出了一种新的算法,用于计算线性时间内给定长度$N$的字符串的Lempel-Ziv分解(LZ 77),该算法仅利用工作空间的$N\log N + O(1)$位,即,单个整数数组,用于常量大小的整数字母表。这极大地改善了线性时间LZ 77分解(Kärkkäinen et al. CPM 2013)的最佳空间要求,它需要两个长度为$N$的整数数组。计算实验表明,尽管算法的复杂度增加,但算法的速度仅为以前最快的线性时间算法的两倍左右。
2013-10-05 cs.DS
Alternative Algorithms for Lyndon Factorization
我们提出了两种变化的杜瓦尔算法计算林登分解的一个字。第一种算法是针对小字母表的情况设计的,并且对于包含字母表中最小字符的串,能够跳过字符串的显著部分。实验结果表明,该算法比Duval的原算法速度快十倍以上,在长DNA串的情况下也有明显的提高。第二个算法,给定一个长度为$ρ$的游程编码字符串$R$,计算$R$在$O(ρ)$时间和恒定空间中的林登因子分解。
2014-07-11 cs.DS
Optimal Time and Space Construction of Suffix Arrays and LCP Arrays for Integer Alphabets
后缀数组和LCP数组是广泛用于各种字符串处理的最基本的数据结构之一。考虑了整数字母表上长度为$N$的只读字符串的两个问题:对于$1 \leq σ\leq N$,字符串包含$σ$不同字符,后缀数组的构造,以及后缀数组和LCP数组的同时构造.对于字RAM模型,我们提出的算法来解决这两个问题,在$O(N)$的时间,通过使用$O(1)$额外的字,这是最佳的时间和空间。额外的字意味着除了输入字符串和输出后缀数组和LCP数组的空间之外所需的空间。我们的贡献改进了以前最有效的算法,[Nong,TOIS 2013]使用$σ+O(1)$额外单词的$O(N)$时间和[Franceschini和Muthukrishnan,ICALP 2007]使用$O(1)$额外单词的$O(N \log N)$时间,用于构建后缀数组,并且它改进了以前在$O(N)$时间中运行的最有效的解决方案,该解决方案使用$σ+ O(1)$额外的字来构造后缀数组和LCP数组,[Nong,TOIS 2013]和[Manzini,SWAT 2004]的组合。
2019-07-13 cs.DS
Fast Computation of $k$-Runs, Parameterized Squares, and Other Generalised Squares
本文证明 $k$-错配重复输出规模为 $O(nk\log k)$,并据此给出 $O(nσ\log σ)$ 枚举与 $O(n\log n)$ 计数不等价参数化平方的算法。
2025-09-02 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
Compact Approximation of Lattice Functions with Applications to Large-Alphabet Text Search
我们提出了一个非常简单的随机数据结构,存储从上面的一个格值函数的近似。计算函数值需要恒定的步骤数,并且错误概率可以与空间使用相平衡,就像在Bloom过滤器中一样。该结构特别适合于在其大多数域上处于底层的函数。然后,我们将展示如何使用我们的方法来存储在一个紧凑的方式坏字符移位函数的变体的博耶-摩尔文本搜索算法。因此,我们获得了这些算法的实际实现,可以用于大型字母表,如Unicode排序规则元素,与一个小的设置时间。本文中描述的想法已在MG 4J项目(http://mg4j.dsi.unimi.it/)中根据GNU通用公共许可证作为自由软件实现。
2003-06-11 cs.DS
Efficiently Testing Simon's Congruence
西蒙同余$\sim_k$定义如下:如果两个词具有相同的长度不超过$k$的同余集合,则它们是$\sim_k$等价的。我们提出了一种算法,计算,给定两个字$s$和$t$,最大的$k$,其中$s\sim_k t$。我们的算法运行在线性时间$O(|s|+|t|)$时,输入的单词是在整数字母表$\{1,\ldots,|s|+|t|\}$(或其他字母,可以在线性时间排序)。这种方法也导致在一般字母表的情况下的最佳算法。我们的结果是基于一种新的组合方法和一系列有效的数据结构。
2021-03-15 cs.DS cs.FL
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
Computing Lempel-Ziv Factorization Online
我们提出了一个算法,计算Lempel-Ziv因式分解的一个字$W$的长度$n$上的一个字母表$Σ$的大小$σ$在线在以下意义上:它读取$W$从左边开始,并在读取每个$r = O(\log_σ n)$字符的$W$,更新Lempel-Ziv因式分解。该算法需要$O(n \log σ)$位空间和O(n \log^2 n)时间。该算法的基础是一个稀疏后缀树结合小波树。
2012-11-30 cs.DS
Algorithms for Longest Common Abelian Factors
在本文中,我们考虑的问题,计算两个给定的字符串之间的最长公共阿贝尔因子(LCAF)。我们提出了一个简单的$O(σ~ n^2)$时间算法,其中$n$是字符串的长度和$σ$是字母表的大小,和一个次二次运行时间的解决方案的二进制字符串的情况下,都有线性空间的要求。此外,我们提出了一个修改后的算法,应用一些有趣的技巧和实验表明,由此产生的算法运行速度更快。
2015-02-28 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 palindromes on a trie in linear time
Trie树$\mathcal{T}$是一棵有根树,每条边由字母表中的单个字符标记,并且来自同一节点的外出边的标签是相互不同的。给定一个具有$n$边的trie树$\mathcal{T}$,在$n$中整数字母表的大小为多项式的情况下,给出了如何在$O(n)$时间内计算$\mathcal{T}$上所有不同的回文和所有最大的回文.这改进了Funakoshi等人[PCS 2019]的最新$O(n \log h)$时间算法,其中$h$是$\mathcal{T}$的高度。利用我们的新算法,可以在$O(n)$时间内容易地获得给定trie树$\mathcal{T}$的具有后缀链接的eertree。此外,我们的基于trie的$O(n)$空间数据结构允许我们在输出最佳时间报告所有不同的回文和最大回文在trie $\mathcal{T}$中表示的查询字符串。这是对现有(朴素)解决方案的改进,该解决方案使用总的$O(n^2)$预处理时间和空间,分别为trie $\mathcal{T}$中的每个字符串预先计算和存储所有不同的回文和最大回文,并在查询时在输出最佳时间中报告它们。
2022-11-10 cs.DS
Computing the optimal BWT of very large string collections
众所周知,在大多数实现中,字符串集合的Burrows-Wheeler-Transform(BWT)的确切形式取决于集合中字符串的输入顺序。对输入集合的字符串重新排序会影响等字母串$r$的数量,这可能是基于BWT的数据结构(如FM索引或$r$索引)的最重要参数。Bentley、Gibney和Mrsachan [ESA 2020]介绍了一种线性时间算法,用于计算输入集合的排列,该排列产生所得到的BWT的最小运行次数。在本文中,我们提出了第一个保证Burrows-Wheeler变换具有最小运行次数(optBWT)的工具,通过组合i)从字符串集合构建BWT的算法(基于SAIS的[Cenzato等人,SPIRE 2021]或BCR [Bauer等人,CPM 2011]); ii)在[Cox等人,Bioinformatics,2012];以及iii)Bentley等人的算法。我们在真实数据和模拟数据上都给出了结果,表明$r$在输入顺序方面取得的改进是显著的,并且通过计算最佳BWT产生的开销可以忽略不计,使得我们的工具在运行时间和空间使用方面与其他BWT计算工具竞争。特别是,在实际数据上,optBWT仅在$1.39\times$减速的情况下获得高达31倍的运行次数。源代码可在https://github.com/davidecenzato/optimalBWT.git上获得。
2022-12-02 cs.DS
On computing the $2$-vertex-connected components of directed graphs
本文研究了有向图的$2$ -点连通分支($2$ -vccs)的计算问题。我们提出了两个新的算法来解决这个问题。第一个算法在$O(mn^{2})$时间内运行,第二个在$O(nm)$时间内运行。此外,我们证明了Erimskii和Svetlov的旧算法在$O(nm^{2})$时间内运行。本文研究了$2$ -vccs与支配树之间的关系。我们还提出了一个在$O(n^{3}m)$时间内计算有向图的$3$ -顶点连通分量($3$-vccs)的算法,并证明了有向图的$k$ -顶点连通分量($k$-vccs)可以在$O(mn^{2k-3})$时间内计算.最后,我们考虑我们的新算法的三个应用,这是问题的近似算法的问题是近似的问题的推广的最小的$2$ -点连通生成子图的$2$ -点连通有向图。
2014-01-23 cs.DS
Space-Efficient Re-Pair Compression
Re-Pair是一种有效的基于语法的压缩方案,在实践中获得了很高的压缩率。令$n$、$σ$和$d$分别为最终语法的文本长度、字母表大小和字典大小。在他们的原始论文中,作者展示了如何在预期的线性时间内计算Re-Pair文法,并在文本之上计算工作空间的$5n + 4σ^2 + 4d + \sqrt{n}$单词。在这项工作中,我们提出了两个算法改进的空间,他们原来的解决方案。我们的模型假设一个记忆字的$\lceil\log_2 n\rceil$位和一个可重写的输入文本组成的$n$这样的话。我们的第一个算法运行在预期的$\mathcal O(n/ε)$时间,并使用$(1+ε)n +\sqrt n$字的空间上的任何参数$0<ε\leq 1$提前选择的文本。我们的第二个算法在预期的$\mathcal O(n\log n)$时间内运行,并将空间改进为$n +\sqrt n$字。
2016-11-04 cs.DS
Linear Algorithms for Computing the Lyndon Border Array and the Lyndon Suffix Array
我们考虑在一个给定的字符串$\s{s}$的长度$n$在一个有限的全序字母表中找到重复的结构和固有的模式的问题。字符串$\s{s}$的边界$\s{u}$既是$\s{s}$的前缀又是后缀,使得$\s{u} \not= \s{s}$。字符串$\s{s}$的边界数组的计算,即$\s{s}$的每个前缀的边界,与字符串匹配问题密切相关:给定一个字符串$\s{w}$,找到它在$\s{s}$中的所有出现。{ \itshape Lyndon字}是原始字(即,它不是另一个词的幂),这对于它的共轭类的词典编纂顺序是最小的(即,通过字母的循环旋转获得的单词集合)。本文结合这些概念引入了$\s{s}$的\emph{Lyndon Border Array} $\mathcal L β$,它的第$i$项$\mathcal L β(\s{s})[i]$是$\s{s}[1 \dd i]$的最长边的长度,它也是一个林登词.我们提出了线性时间和线性空间算法计算$\mathcal L β(\s{s})$。%,在二进制和有界字母表的情况下。此外,我们介绍了\emph{Lyndon Suffix Array},并通过修改高和Aluru \cite{KA03}的有效后缀数组技术,概述了其建设的线性时间和空间算法。
2015-06-23 cs.DS
Duel and sweep algorithm for order-preserving pattern matching
给定文本$T$和字母表$Σ$上的模式$P$,经典的精确匹配问题搜索文本$T$中模式$P$的所有出现。与精确匹配问题不同,保序模式匹配(OPPM)考虑的是元素的相对顺序,而不是它们的真实值。在本文中,我们提出了一个有效的算法OPPM问题使用的“双扫描”范式。我们的算法运行在$O(n + m\log m)$时间一般和$O(n + m)$时间的假设下,字符串中的字符可以排序在线性时间的字符串大小。我们还进行了实验,并表明我们的算法是基于KMP的算法更快。最后,我们介绍了二维保序模式匹配,并给出了一种双扫描算法,该算法在双阶段运行于$O(n^2)$时间内,在扫描时间运行于$O(n^2 m)$时间内,并带有$O(m^3)$预处理时间。
2017-05-26 cs.DS
Improved Algorithms for Computing $k$-Sink on Dynamic Path Networks
我们提出了一种新的方法来寻找$k$ -sink的动态路径网络一般的边缘容量。我们的第一个算法在$O(n \log n + k^2 \log^4 n)$时间内运行,其中$n$是给定路径上的顶点数,我们的第二个算法在$O(n \log^3 n)$时间内运行。总之,它们改进了Arumugam等人提出的针对所有$k$值的先前最有效的$O(kn \log^2 n)$时间算法。在所有的边缘具有相同的容量的情况下,我们再次提出了两个算法,运行在$O(n + k^2 \log^2n)$时间和$O(n \log n)$时间,分别,和他们一起改善了以前最好的$O(kn)$时间算法由于Higashikawa等人。对于所有值的$k$。
2016-09-06 cs.DS
Pattern matching under DTW distance
在这项工作中,我们考虑动态时间规整(DTW)距离下的模式匹配的问题,潜在的应用在分析生物数据产生的第三代测序的动机。为了测量两个字符串之间的DTW距离,必须将它们“扭曲”,即将字符串中的某些字母加倍以获得两个等长字符串,然后将相应位置的字母之间的距离相加。当字母之间的距离是整数时,我们证明了对于m次运行的模式P和n次运行的文本T:1。有一个O(m + n)时间的算法,它计算从P到T的DTW距离最多为1的所有位置; 2.有一个O(kmn)时间算法,它计算从P到T的DTW距离最多为k的所有位置。作为第二个结果的推论,我们还导出了字母表上一般度量的近似算法。
2022-08-31 cs.DS
Minimal unique palindromic substrings after single-character substitution
回文是一个字符串,它的正反读都是一样的。如果$w$在$T$中只出现一次,并且$w$的任何适当回文子串在$T$中至少出现两次,则字符串$T$的回文子串$w$被称为$T$的最小唯一回文子串(MUPS)。MUPS用于回答最短唯一回文子串问题,这是由分子生物学激发的[Inoue et al.,2018年]。给定长度为$n$的字符串$T$,可以在$O(n)$时间内计算$T$的所有MUPS。在本文中,我们研究的问题,更新的MUPS的设置时,输入字符串$T$中的一个字符被替换为另一个字符。我们首先分析了当一个字符被替换时,MUPS变化的数目$d$,并表明$d$在$O(\log n)$中。此外,我们提出了一种算法,使用$O(n)$时间和空间的预处理,并更新的MUPS在$O(\logσ+ (\log\log n)^2 + d)$时间,其中$σ$是字母表的大小。我们还提出了一个变体的算法,它运行在最佳的$O(1+d)$时间时,字母表的大小是恒定的。
2021-10-02 cs.DS
Computing the diameter polynomially faster than APSP
提出了一种新的计算加权有向图直径的随机算法。该算法在$\Ot(M^{\w/(\w+1)}n^{(\w^2+3)/(\w+1)})$时间内运行,其中$\w < 2.376$是快速矩阵乘法的指数,$n$是图的顶点数,边权值是$\{-M,...,0,...,M\}$中的整数。对于有界整数权重,运行时间为$O(n^{2.561})$,如果为$\w=2+o(1)$,则为$\Ot(n^{7/3})$。这是第一个计算整数加权有向图的直径的算法,比任何已知的所有对最短路径(APSP)算法都要快。对于有界整数权重,对于$\w$的当前值,APSP的最快算法在$O(n^{2.575})$时间内运行,如果$\w=2+o(1)$,则在$\Ot(n^{2.5})$时间内运行。对于$\{1,...,M\}$中具有{ \em正}整数权重的有向图,我们得到了一个确定性算法,该算法在$\Ot(Mn^\w)$时间内计算直径。这扩展了一个简单的$\Ot(n^\w)$算法计算直径的{ \em无向}有向图的正整数加权设置,是第一个算法在此设置的时间复杂度匹配的最快已知直径算法{ \em无向}图。直径算法是更一般结果的结果。我们构造的算法,对于任何给定的整数$d$,报告所有有序的顶点对的距离{ \em最多} $d$。因此,可以使用二分法搜索最小的$d$来计算直径,其中所有对都被报告。
2011-01-13 cs.DS
Decompressing Lempel-Ziv Compressed Text
我们考虑使用尽可能接近输入的大小$z$的工作空间来解压缩长度为$n$的字符串$S$的Lempel-Ziv 77表示的问题。该问题的民间传说解决方案在$O(n)$时间内运行,但需要随机访问整个解压缩文本。另一种民间传说的解决方案是将LZ 77转换为大小为$O(z\log(n/z))$的语法,然后在线性时间内流式传输$S$。在本文中,我们表明,$O(n)$时间和$O(z)$工作空间可以实现恒定大小的字母表。在大小为$σ$的一般字母表上,我们描述了(i)对于任何$0\leq δ\leq 1$实现$O(n\log^δσ)$时间和$O(z\log^{1-δ}σ)$空间的折衷,以及(ii)实现$O(n)$时间和$O(z\log\log (n/z))$空间的解决方案。后一种解决方案,特别是,占主导地位的民俗算法的问题。更一般地说,我们的解决方案可以提取$S$的任何指定的子序列,而在线性运行时间和工作空间之上的开销很小。作为一个直接的推论,我们表明,我们的技术产生LZ 77压缩文本的模式匹配问题的改进结果。
2019-11-04 cs.DS
Subsequence Covers of Words
该研究提出新型单词覆盖s-cover,给出多项式有界字母表下的s-cover检测及常数字母表下最短s-cover的线性时间算法,并给出s-本原词长度的指数上下界且改进了已有上界。
2025-09-06 cs.DS
Computing the k Nearest-Neighbors for all Vertices via Dijkstra
给出了一个有向图$G = (V,E)$,图中的$n$顶点和$m$边都是正的,边的权值是正的,图的参数是$k >0$ .我们展示了如何计算,为每个顶点$v \in V$,其$k$最近的邻居。该算法在$O( k ( n \log n + m ) )$时间内运行,并对Dijkstra的最短路径算法进行了一定程度的修改。这个结果可能是民间传说,但我们无法找到它的参考资料-因此,这张纸条。
2016-07-26 cs.DS
Fully-Functional Suffix Trees and Optimal Text Searching in BWT-runs Bounded Space
自千年之交以来,索引高度重复的文本-如基因组数据库,软件库和版本化文本集合-已成为一个重要的问题。重复文本的相关可压缩性度量是r,其Burrows-Wheeler变换(BWT)中的运行次数。Run-Length FM索引是最早的重复集合索引之一,使用O(r)空间,能够有效地计算文本中长度为m的模式的出现次数(使用当前技术,以每个模式符号的对数时间为单位)。然而,它无法在以r为界的空间内有效地定位这些事件的位置。在本文中,我们关闭这个长期存在的问题,展示了如何扩展游程长度FM索引,使其能够在O(r)空间内有效地定位occ出现时间复杂度为O(m + occ),时间复杂度为O(m)。(r log log w(σ + n/r))空间,用于在RAM机器上具有w = Ω(log n)位的字的σ大小的字母表上的长度为n的文本。在这个空间内,我们的索引也可以在最佳时间内计数,O(m)。将空间乘以O(w/ log σ),我们支持O(dm log(σ)/we)和O(dm log(σ)/we + occ)时间的计数和定位,这在压缩设置中是最优的,以前在压缩空间中没有得到。我们还描述了一个使用O(rlog(n/r))空间的结构,该结构在几乎最优的时间O(log(n/r)+ ` log(σ)/w)内替换文本并提取长度为`的任何文本子串。在这个空间内,我们同样提供了直接存取后缀数组,反后缀数组,和最长的公共前…
2019-07-04 cs.DS
Efficient Interactive Coding Achieving Optimal Error Resilience Over the Binary Channel
给定计算Alice和Bob的私有输入$x, y$的函数$f(x, y)$的无噪声协议$π_0$,交互式编码的目标是构造计算$f$的错误弹性协议$π$,使得即使通信的某部分被对抗性地破坏,双方仍然学习$f(x, y)$。理想情况下,所得到的方案$π$应该是正速率的、计算高效的,并且实现最佳的差错恢复。虽然在大字母表上的交互式编码是很好理解的,但在二进制字母表上的情况仍然是模糊的。目前,在二进制字母表上实现比大字母表方案的平凡适应更高的差错恢复能力的已知方案仍然是次优差错恢复能力[EKS 20],或者是具有指数通信复杂性的最优差错恢复能力[GZ 22]。在这项工作中,我们构建了一个计划,实现最优的所有三个参数:我们的协议是积极的速率,计算效率高,弹性最佳的$\frac16 - ε$对抗错误。我们的协议采用了一种新型的代码,我们称之为分层代码,这可能是独立的利益。像树代码一样,分层代码允许编码器以在线方式编码消息,但定义在图上而不是树上。
2022-07-03 cs.DS cs.IT math.IT
Linear pattern matching on sparse suffix trees
将多个字符打包到一个计算机字中是压缩字符串表示并加速其处理的一种简单而自然的方法。利用这个想法,我们提出了一个压缩字符串的索引,基于{ \em稀疏后缀树} \cite{KU-96}适当定义的后缀链接。假设,在标准的单位成本RAM模型下,一个字最多可以存储$\log_σn$字符($σ$是字母表大小),我们的索引占用$O(n/\log_σn)$空间,即与压缩字符串本身相同的空间。所得到的模式匹配算法在时间$O(m+r^2+r\cdot occ)$中运行,其中$m$是模式的长度,$r$是存储在字中的字符的实际数目,而$occ$是模式出现的数目。
2011-03-14 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
Computing the Girth of a Planar Graph in Linear Time
图的围长是图的所有简单圈的最小权。研究了n结点无权无向平面图围长的确定问题。这个问题的第一个非平凡算法,由Djidjev给出,运行时间为O(n ^{5/4} log n)。时间复杂度为O(n log^2 n)。Weimann和Yuster进一步将运行时间减少到O(n log n)。在本文中,我们在O(n)时间内解决了这个问题。
2013-04-26 cs.DS
Computing minimum cuts in hypergraphs
我们研究超图连通性的算法和结构方面。给定一个超图$H=(V,E)$,其中有$n = |V|$,$m = |E|$和$p = \sum_{e \in E} |e|$,计算$H$中全局最小割的最佳算法对于无能力约束的情况在时间$O(np)$中运行,对于有能力约束的情况在$O(np + n^2 \log n)$时间中运行.我们展示了以下新结果。1.给定一个无容量限制的超图$H$和一个整数$k$,我们描述了一个算法,在$O(p)$时间运行,找到一个子超图$H'$的程度之和$O(kn)$,保持所有的边连通性$k$($k$ -稀疏)。这将Nagamochi和Ibaraki的相应结果从图推广到超图。使用这种稀疏化,我们得到一个$O(p + λn^2)$时间算法计算的$H$的全球最小切割$λ$是最小的切割值。2.我们将Matula关于图的论证推广到超图,并得到了在$O(\frac{1}ε (p \log n + n \log^2 n))$时间内有容量限制的超图的全局最小割的$(2+ε)$ -逼近. 3.证明了在$O(np + n^2 \log n)$时间和$O(p)$空间中可以计算出一个有能力超图的所有全局最小割的超仙人掌表示。我们利用顶点排序的想法,以获得我们的结果。与图不同,我们观察到超图有几种不同的排序,它们产生不同的见解。
2017-05-14 cs.DS
Computing LZ77 in Run-Compressed Space
本文证明了文本T { \in n ^n}的LZ 77分解可以在O(Rlog n)位的工作空间和O(nlog R)时间内计算,R是T的Burrows-Wheeler变换的游程数.对于极端重复的输入,工作空间可以低至O(log n)位:比文本本身小。作为我们的结果的直接后果,我们表明,一类重复意识的自我索引的基础上的游程编码的BWT和LZ 77的组合可以建立在内置的渐近最佳O(R + z)字的工作空间,z是LZ 77解析的大小。
2015-10-21 cs.DS
Lightweight Lempel-Ziv Parsing
我们介绍了一种新的方法,LZ 77分解,使用O(n/d)的工作空间和O(dn)的时间为任何d >= 1(多对数字母表大小)的字。我们还描述了轻量级LZ 77因子分解的替代方法的精心设计的实现。大量的实验表明,新算法在大多数情况下是优越的,特别是在最低的内存水平和高度重复的数据。作为算法的一部分,我们描述了新的方法来计算匹配统计,这可能是独立的利益。
2013-02-06 cs.DS
Quadratic-Time Hardness of LCS and other Sequence Similarity Measures
两个重要的序列之间的相似性度量是最长公共子序列(LCS)和动态时间弯曲距离(DTWD)。在各种应用中,对两个给定序列的这些测量的计算是中心任务。简单的动态规划算法在$O(n^2)$时间内解决了这些任务,尽管进行了大量的研究,但没有已知的具有显著更好的最坏情况上限的算法。在本文中,我们证明了一个$O(n^{2-ε})$时间算法,对于某些$ε>0$,用于计算长度为$n$的两个序列的LCS或DTWD在一个恒定大小的字母表,驳斥了流行的强指数时间假设(SETH)。此外,我们表明,计算LCS的$k$字符串的大小$O(k)$的字母表不能在$O(n^{k-ε})$的时间,任何$ε>0$,SETH下。最后,我们还解决了近似的DTWD的两个字符串在真正的次二次时间的时间复杂度。
2015-01-29 cs.CC cs.DS
An $O(n^2)$ Algorithm for Computing Optimal Continuous Voltage Schedules
动态电压调节技术允许处理器动态设置其速度,以降低能耗。在连续模型中,处理器可以以任何速度运行,而在离散模型中,处理器只能以作为输入的有限数量的速度运行。目前计算连续模型最优调度的最佳算法是在$O(n^2\log n)$时间上运行,用于调度$n$作业。在本文中,我们提高了运行时间$O(n^2)$通过加快计算的s-时间表使用更精细的数据结构。对于离散模型,我们将最优调度的计算从当前最优的$O(dn\log n)$改进为$O(n\log \max\{d,n\})$,其中$d$是允许速度的数目。
2014-08-26 cs.DS
Efficiently Computing Edit Distance to Dyck Language
给定一个字符串$σ$在字母表$Σ$上,和一个语法$G$定义在相同的字母表上,需要多少最小数量的修复:插入,删除和替换,以将$σ$映射到$G$的有效成员?本文针对$Dyck(s)$研究了这一基本问题。$Dyck(s)$是一种基本的上下文无关文法,它用s种不同类型的括号表示平衡括号语言,在上下文无关语言理论的发展中起着举足轻重的作用。计算编辑距离$Dyck(s)$显着推广字符串编辑距离问题,并有许多应用程序,从修复半结构化的文档,如XML的内存检查,自动编译器优化,自然语言处理等。在本文中,我们给出了第一个近线性时间算法的编辑距离计算$Dyck(s)$,实现了非平凡的近似因子$O(\frac{1}ε\log{OPT}(\log{n})^{\frac{1}ε})$在$O(n^{1+ε}\log{n})$时间。事实上,给定存在一个算法,用于计算在$α(n)$时间内输入大小为$n$的字符串编辑距离,并具有$β(n)$ -近似因子,我们可以设计一个算法,用于在$\tilde{O}(n^{1+ε}+α(n))$中运行的$Dyck(s)$的编辑距离问题,并实现$O(\frac{1}εβ(n)\log{OPT})$的近似因子。我们表明,有效地近似编辑距离$Dyck(s)$的框架,可以适用于许多其他语言。我们说明这一点,考虑各种内存检查语言,其中包括有效的成绩单栈,队列,优先级队列,双端队列等,因此,…
2013-11-12 cs.DS cs.FL
An Improved Combinatorial Algorithm for Boolean Matrix Multiplication
我们提出了一个新的组合算法三角形查找和布尔矩阵乘法,运行在$\hat{O}(n^3/\log^4 n)$时间,其中$\hat{O}$符号抑制聚(loglog)的因素。这改进了Chan提出的在$\hat{O}(n^3/\log^3 n)$时间内运行的最佳组合算法。该算法推广了Chan算法的分治策略。此外,我们提出了一个通用的框架,检测三角形图和计算布尔矩阵乘法。粗略地说,如果我们能有效地找到给定实例的“容易部分”,我们就能比$n^3$更快地解决整个问题。
2015-05-26 cs.DS
Online Computation of Palindromes and Suffix Trees on Tries
Joint Graduate School of Mathematics for Innovation, Kyushu University(九州大学数学创新联合研究生院);NTT Communication Science Laboratories(NTT通信科学实验室);Department of Computer and Network Engineering, University of Electro-Communications(电子通信大学计算机与网络工程系);Department of Informatics, Kyushu University(九州大学信息学系);M&D Data Science Center, Institute of Integrated Research, Institute of Science Tokyo(东京科学大学综合研究研究所M&D数据科学中心)
本文提出亚二次算法在线计算动态Trie中的回文和后缀树,支持叶节点的增删操作。
2026-01-23 cs.DS
Streaming Algorithms For Computing Edit Distance Without Exploiting Suffix Trees
编辑距离是一种通过计算将一个字符串转换为另一个字符串所需的最小字符插入、删除和替换次数来量化两个字符串彼此相似程度的方法。在本文中,我们研究的计算问题的编辑距离计算一对字符串之间的距离是有界的参数$k\ll n$。本文提出了两种计算编辑距离的流算法:一种是按时间运行的$O(n+k^2)$,另一种是按时间运行的$n+O(k^3)$。通过写$n+O(k^3)$,我们想强调每个输入符号的操作数是一个小常数。特别是,运行时间不依赖于字母表的大小,算法应该很容易实现。以前的一个流算法与运行时间$O(n+k^4)$中给出的文件,目前的作者(STOC'16)。最好的离线算法在时间上运行$O(n+k^2)$(Landau等人,1998年),这是已知的最佳下的强指数时间假设。
2016-07-13 cs.CC cs.DS
An efficient sampling algorithm for difficult tree pairs
是否存在一个多项式时间算法来计算扩展有序二叉树对之间的旋转距离是一个悬而未决的问题。计算任意一对树(S,T)之间的旋转距离的问题可以有效地归结为计算一对困难的树(S ',T')之间的旋转距离的问题,其中没有已知的第一步保证是最小长度路径的开始。我们表明,这是可能的,这样做的效率,并提出这样一个算法,运行时间$O(n^4)$。
2020-01-17 cs.DS
Substring Compression Variations and LZ78-Derivates
本文提出了在整数字母表上线性时间内计算LZ78、LZD和LZMW分解的算法,并构建了可线性时间解决子串压缩问题的数据结构,同时给出了lexparse和closed分解的相关结果。
2024-09-23 cs.DS
Longest Common Subsequence in Sublinear Space
我们提出了第一个计算最长公共子序列长度的$\mathrm{o}(n)$-空间多项式时间算法。给定两个长度为$n$的字符串,该算法以$\mathrm{O}(n^{3})$时间和$\mathrm{O}\left(\frac{n \log^{1.5} n}{2^{\sqrt{\log n}}}\right)$位空间运行。
2020-09-18 cs.DS
Parallel algorithm for pattern matching problems under substring consistent equivalence relations
给定一个文本和一个字母表上的模式,模式匹配问题搜索该模式在文本中的所有出现。等价关系$\approx$称为子串一致等价关系(SCER),如果对于两个字符串$X$和$Y$,$X \approx Y$意味着所有$1 \le i \le j \le |X|$的$|X| = |Y|$和$X[i:j] \approx Y[i:j]$。在本文中,我们提出了一个有效的并行算法的模式匹配下的任何SCER使用“双扫描”的范例。对于长度为$m$的模式和长度为$n$的文本,我们的算法在$O(ξ_m^\mathrm{t} \log^2 m)$时间和$O(ξ_m^\mathrm{w} \cdot n \log^2 m)$工作中运行,在优先并发读并发写并行随机存取机(P-CRCW PRAM)上进行$O(τ_n^\mathrm{t} + ξ_m^\mathrm{t} \log^2 m)$时间和$O(τ_n^\mathrm{w} + ξ_m^\mathrm{w} \cdot m \log^2 m)$工作预处理。
2022-07-27 cs.DS
The "Runs" Theorem
我们给出了一个新的特征的最大重复(或运行)的字符串的基础上林登字。这个特征导致了所谓的“游程”猜想(Kolpakov \& Kucherov(FOCS '99))的证明,该猜想指出长度为$n$的字符串中游程$ρ(n)$的最大数量小于$n$。考虑到过去15年来为解决这个问题所做的大量努力,证明非常简单,并且大大提高了我们对串如何发生的理解。此外,我们还得到了长度为$n$的字符串中游程的最大指数和$σ(n)$的$3n$的上界,改进了Crochemore等人(JDA 2012)的$4.1n$的最佳已知界,以及相关问题的其他改进界。的特征也产生了一个新的,概念上简单的线性时间算法计算所有的运行在一个字符串。我们的算法的一个显着特点是,不同于所有现有的线性时间算法,它不利用字符串的Lempel-Ziv分解。我们还建立了林登树的运行和节点之间的关系,这为Kociumaka等人最近解决的2周期查询问题提供了一个简单的最优解决方案。
2015-06-03 cs.DM cs.DS