arXivDaily arXiv每日学术速递 周一至周五更新
arXiv周末暂无论文更新,休息一下吧,周末愉快~~
arXiv 1902.02187cs.DS
收藏

尝试的顶树压缩

Top Tree Compression of Tries

Philip Bille, Inge Li Gørtz, Paweł Gawrychowski, Gad M. Landau, Oren Weimann

摘要:

我们提出了一种基于顶树压缩的压缩表示[ICALP 2013],它适用于标准的、基于比较的指针机计算模型,并支持高效的前缀搜索查询。也就是说,我们展示了如何预处理一组字符串的总长度$n$在一个字母表的大小$σ$到一个压缩的数据结构的最坏情况下的最佳大小$O(n/\log_σn)$,给定一个模式字符串$P$的长度$m$确定如果$P$是一个前缀的字符串之一的时间$O(\min(m\log σ,m + \log n))$。我们表明,这个查询时间实际上是最优的,无论大小的数据结构。现有的解决方案要么使用$Ω(n)$空间,要么依赖于字RAM技术,例如制表、散列、地址算术或字级并行,因此不能在指针机器上工作。我们的结果是第一个解决方案的指针机器,实现最坏情况下的$o(n)$空间。一路上,我们开发了几个有趣的数据结构,工作在一个指针机器和独立的利益。这些包括一个最佳的数据结构随机访问的语法压缩字符串和一个最佳的数据结构的一个变种的水平祖先的问题。

英文摘要:

We present a compressed representation of tries based on top tree compression [ICALP 2013] that works on a standard, comparison-based, pointer machine model of computation and supports efficient prefix search queries. Namely, we show how to preprocess a set of strings of total length $n$ over an alphabet of size $σ$ into a compressed data structure of worst-case optimal size $O(n/\log_σn)$ that given a pattern string $P$ of length $m$ determines if $P$ is a prefix of one of the strings in time $O(\min(m\log σ,m + \log n))$. We show that this query time is in fact optimal regardless of the size of the data structure. Existing solutions either use $Ω(n)$ space or rely on word RAM techniques, such as tabulation, hashing, address arithmetic, or word-level parallelism, and hence do not work on a pointer machine. Our result is the first solution on a pointer machine that achieves worst-case $o(n)$ space. Along the way, we develop several interesting data structures that work on a pointer machine and are of independent interest. These include an optimal data structures for random access to a grammar-compressed string and an optimal data structure for a variant of the level ancestor problem.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑