VLDB 2026 Research / reviewers in the wild / expert
Dominik Kempa
dblp:54/11279
· DBLP profile ↗
46ranked-venue papers
17as first author
16since 2021 · last 2026
0000-0003-2286-7417ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Theory of computation · 34 · 16 first-author · 15 since 2021Graphics, computer vision, multimedia, augmented reality and games · 10 · 1 first-author · 1 since 2021Databases, data management, data science and information retrieval · 8 · 1 first-author · 1 since 2021
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2026 | Engineering Fast and Space-Efficient Recompression from SLP-Compressed TextabstractCompressed indexing enables powerful queries over massive and repetitive textual datasets using space proportional to the compressed input. While theoretical advances have led to highly efficient index structures, their practical construction remains a bottleneck, especially for complex components like recompression RLSLP — a grammar-based representation crucial for building powerful text indexes that support widely used suffix and LCP array queries. Ankith Reddy Adudodla, Dominik Kempa |
ALENEX | 2 |
| 2026 | Hardness of Frequency-Related Queries on Compressed StringsabstractCompressed indexing is a recent trend in the design of data structures that aims to support fundamental string queries in space proportional to the size of the data in compressed form. One of the most popular compression frameworks in this field is grammar compression. A length-n string T ∈ Σⁿ (where Σ is any finite set of size up to |Σ| = |T|^𝒪(1)) represented using a context-free grammar of size |G| can be augmented to support random access queries (given any i ∈ [1..n], return T[i]) in 𝒪(|G| log^𝒪(1) n) space and 𝒪(log^𝒪(1) n) time. Numerous other queries, including pattern matching, longest common extension, lexicographical predecessor/successor, Burrows-Wheeler Transform, suffix array, and even suffix tree queries, can also be supported within the same bounds. Despite this progress, one fundamental class of queries has remained elusive: frequency-related queries, such as reporting the number of occurrences of a symbol c ∈ Σ in a substring T(b..e] (the so-called rank query), or simply checking whether c occurs in T(b..e] (the symbol occurrence query). To date, no fully general structure achieving 𝒪(|G| log^𝒪(1) n) space and 𝒪(log^𝒪(1) n) query time is known. In this work, we establish new conditional lower bounds for frequency-related problems: - We prove that answering rank and symbol occurrence queries on grammar-compressed texts in polylogarithmic time using a 𝒪(|G| log^𝒪(1) n)-space structure that is constructible from the input grammar in 𝒪(|G| log^𝒪(1) n) time would imply an 𝒪(n² log^𝒪(1) n)-time algorithm for Boolean Matrix Multiplication (BMM), where the best known algorithms achieve 𝒪(n^{2.371339}) time. Our result is achieved using a more general lower bound for efficiently answering a batch of rank and symbol occurrence queries. - We generalize the above result, showing that even LZ78-compressed strings cannot support efficient rank queries. Since LZ78 is provably weaker than grammar compression, this yields a stronger result: rank and symbol occurrence queries remain hard for a wider class of compressors. We further show that achieving even additive approximations of rank queries would imply faster BMM algorithms. - After establishing hardness of rank and symbol occurrence queries, we consider a broader class of frequency-related queries and show that, under the popular Orthogonal Vectors (OV) conjecture, other problems, including range distinct counting and range mode frequency queries, also cannot be efficiently supported in compressed space. In summary, we develop new techniques for reasoning about computation over compressed data, and establish tight connections between compressed indexing and long-standing problems in fine-grained complexity. This sheds new light on compressed indexing by isolating a new class of frequency-related queries whose complexity hinges on known hard problems. Rajat De, Dominik Kempa |
ESA | 2 |
| 2026 | Optimal Random Access and Conditional Lower Bounds for 2D Compressed StringsabstractCompressed indexing is a powerful technique that enables efficient querying over data stored in compressed form, significantly reducing memory usage and often accelerating computation. While extensive progress has been made for one-dimensional strings, many real-world datasets (such as images, maps, and adjacency matrices) are inherently two-dimensional. Unfortunately, naively applying 1D techniques to 2D data leads to suboptimal results, as fundamental structural repetition is lost during linearization. This motivates the development of native 2D compressed indexing methods that preserve both compression and query efficiency. Rajat De, Dominik Kempa |
SODA | 2 |
| 2026 | Tight Lower Bounds for Central String Queries in Compressed SpaceabstractIn this work, we study the limits of compressed data structures, i.e., structures that support various queries on an input text \(T \in \Sigma^n\) while using space proportional to the size of \(T\) in compressed form. Nearly all fundamental queries can currently be efficiently supported in \(\mathcal{O}(\delta(T)\log^{\mathcal{O}(1)} n)\) space, where \(\delta(T)\) is the substring complexity—a strong compressibility measure that lower-bounds the optimal space required to represent the text [Kociumaka, Navarro, Prezza; IEEE Trans. Inf. Theory 2023]. In contrast, the optimal query time for compressed data structures has been characterized only for the basic random access problem. Dominik Kempa, Tomasz Kociumaka |
SODA | 1 |
| 2026 | Explaining the Inherent Tradeoffs for Suffix Array Functionality: Equivalences between String Problems and Prefix Range QueriesabstractWe study the fundamental question of how efficiently suffix array entries can be accessed when the array cannot be stored explicitly. The suffix array \(\mathrm{SA}_T[1..n]\) of a text \(T\) of length \(n\) encodes the lexicographic order of its suffixes and underlies numerous applications in pattern matching, data compression, and bioinformatics. Previous work established one-way reductions showing how suffix array queries can be answered using, for example, rank queries on the Burrows—Wheeler Transform. More recently, a new class of prefix queries was introduced, together with reductions that, among others, transform a simple tradeoff for prefix-select queries into a suffix array tradeoff matching state-of-the-art space and query-time bounds, while achieving sublinear construction time. For binary texts, the resulting data structure achieves space \(\mathcal{O}(n)\) bits, preprocessing time \(\mathcal{O}(n/\sqrt{\log n})\), preprocessing space \(\mathcal{O}(n)\) bits, and query time \(\mathcal{O}(\log^\epsilon n)\) for any constant \(\epsilon \gt 0\). However, whether these bounds could be improved using different techniques has remained open. Dominik Kempa, Tomasz Kociumaka |
SODA | 1 |
| 2026 | Wavelet Forests RevisitedabstractRank and select queries are basic operations on sequences, with applications in compressed text indexes and other space-efficient data structures. One of the standard data structures supporting these queries is the wavelet tree. In this paper, we study wavelet forests, that is, wavelet-tree structures based on the fixed-block compression boosting technique. Such structures partition the input sequence into fixed-size blocks and build a separate wavelet tree for each block. Previous work showed that this approach yields strong practical performance for rank queries. We extend wavelet forests to support select queries. We show that select support can be added with little additional space overhead and that the resulting structures remain practically efficient. In experiments on a range of non-repetitive and repetitive inputs, wavelet forests are competitive with, and in most cases outperform, standalone wavelet-tree implementations. We also study the effect of internal parameters, including superblock size and navigational data, on select-query performance. Eric Chiu, Dominik Kempa |
SEA | 2 |
| 2026 | Fast Select Queries Using Hybrid BitvectorsabstractOne of the central problems in the design of compressed data structures is the efficient support for rank and select queries on bitvectors. These two operations form the backbone of more complex data structures used for the compact representation of texts, trees, graphs, or grids. One effective solution is the so-called hybrid bitvector implementation, which partitions the input bitvector into blocks and adaptively selects an encoding method - such as run-length, plain, or minority encoding - based on local redundancy. Experiments have shown that hybrid bitvectors achieve excellent all-around performance on repetitive and non-repetitive inputs. Current hybrid bitvector implementations, however, support only rank queries (i.e., counting the number of ones up to a given position) and lack support for select queries (which ask for the position of a given occurrence of a given bit), which limits their applicability. In this paper, we propose a method to add support for select queries to hybrid bitvectors, and we evaluate the resulting implementation on repetitive and non-repetitive inputs. Our results show that hybrid bitvectors offer very strong all-around performance, combining high query speed with space efficiency and remaining consistently on or near the Pareto frontier. Eric Chiu, Dominik Kempa |
SEA | 2 |
| 2025 | Word Break on SLP-Compressed TextsabstractWord Break is a prototypical factorization problem in string processing: Given a word$w$of length$N$and a dictionary$\mathcal{D}=\{d_{1},\ d_{2},\ \ldots,\ d_{K}\}$of$K$strings, determine whether we can partition$w$into words from$\mathcal{D}$. We propose the first algorithm that solves the Word Break problem over the SLP-compressed input text$w$. Specifically, we show that, given the string$w$represented using an SLP of size$g$we can solve the Word Break problem in$\mathcal{O}(g\cdot m^{\omega}+M)$time, where$m=\max_{i=1}^{K}\vert d_{i}\vert M=\sum_{i=1}^{K}\vert d_{i}\vert$, and$\omega\geq 2$is the matrix multiplication exponent. We obtain our algorithm as a simple corollary of a more general result: We show that in$\mathcal{O}(g\cdot m^{\omega}+M)$time, we can index the input text$w$so that solving the Word Break problem for any of its substrings takes$\mathcal{O}(m^{2}\log N)$time (independent of the substring length). Our second contribution is a lower bound: We prove that, unless the Combinatorial$k$-Clique Conjecture fails, there is no combinatorial algorithm for Word Break on SLP-compressed strings running in$\mathcal{O}(g\cdot m^{2-\epsilon}+M)$time for any$\epsilon > 0$. Rajat De, Dominik Kempa |
DCC | 2 |
| 2025 | On the Hardness Hierarchy for the O(n√log n) Complexity in the Word RAMabstractIn this work, we study the relative hardness of fundamental problems with state-of-the-art word RAM algorithms that take $O(n\sqrt{\log n})$ time for instances described in $Θ(n)$ machine words ($Θ(n\log n)$ bits). This complexity class, one of six hardness levels identified by Chan and Pătraşcu [SODA 2010], includes diverse problems from several domains: Counting Inversions, string processing problems (BWT Construction, LZ77 Factorization, Longest Common Substring, Batched Longest Previous Factor Queries, Batched Inverse Suffix Array Queries), and computational geometry tasks (Orthogonal Range Counting, Orthogonal Segment Intersection). We offer two main contributions: We establish new links between the above string problems and Dictionary Matching, a classic task solvable using the Aho-Corasick automaton. We restrict Dictionary Matching to instances with $O(n)$ binary patterns of length $m = O(\log n)$ each, and we prove that, unless these instances can be solved in $o(n\sqrt{\log n})$ time, the aforementioned string problems cannot be solved faster either. Via further reductions, we extend this hardness to Counting Inversions (a fundamental component in geometric algorithms) and thus to Orthogonal Range Counting and Orthogonal Segment Intersection. This hinges on String Nesting, a new problem which is equivalent to Dictionary Matching and can be reduced to Counting Inversions in three steps. Together, our results unveil a single problem, with two equivalent formulations, that underlies the hardness of nearly all major problems currently occupying the $O(n\sqrt{\log n})$ level of hardness. These results drastically funnel further efforts to improve the complexity of near-linear problems. As an auxiliary outcome of our framework, we also prove that the alphabet in several central string problems can be efficiently reduced to binary. Dominik Kempa, Tomasz Kociumaka |
STOC | 1 |
| 2024 | Lempel-Ziv (LZ77) Factorization in Sublinear TimeabstractLempel-Ziv (LZ77) factorization is a fundamental problem in string processing: Greedily partition a given string$T$from left to right into blocks (called phrases) so that each phrase is either the leftmost occurrence of a single letter or the longest prefix of the unprocessed suffix that has another occurrence earlier in the text. This simple routine has numerous applications. Most importantly, the LZ77 factorization is the central component and the computational bottleneck of most existing compression algorithms (utilized in formats like zip, pdf, and png). LZ77 is also a widely used algorithmic tool for the detection of repetitions and periodicities in strings, and the centerpiece of many powerful compressed indexes that enable computation directly over compressed data. LZ77 factorization is one of the most studied problems in string processing. In the 47 years since its inception, numerous efficient algorithms were developed for different models of computation, including parallel, GPU, external-memory, and quantum. Remarkably, however, the complexity of the most basic problem is still not settled: All existing algorithms in the RAM model run in$\Omega(n)$time, which is a$\Theta(\log n)$factor away from the lower bound of$\Omega(n/\log n)$(following simply from the necessity to read the entire input, which takes$\Theta(n/\log n)$space for any$T\in\{0,1\}^{n})$. Sublinear-time algorithms are known for nearly all other fundamental problems on strings, but LZ77 seems resistant to all currently known techniques. We present the first$o(n)$-time algorithm for constructing the LZ77 factorization, breaking the linear-time barrier present for nearly 50 years. More precisely, we show that, in the standard RAM model, it is possible to compute the LZ77 factorization of a given length-$n$string$T\in \{0,1\}^{n}$in$\mathcal{O}(n/\sqrt{\log n})=o(n)$time and using the optimal$O(n/\log n)$working space. Our algorithm generalizes to larger alphabets$\Sigma=[0.. \sigma),\text{ where }\sigma=n^{\mathcal{O}2(1)}$. The runtime and working space then become$\mathcal{O}((n\log\sigma)/\sqrt{\log n})$and$\mathcal{O}(n/\log_{\sigma}n)$, respectively. To achieve this sublinear-time LZ77 algorithm, we prove a more general result: We show that, for any constant$\epsilon\in(0,1)$and string$T\in[0..\sigma)^{n}$, in$\mathcal{O}((n\log\sigma)/\sqrt{\log n})$time and using$\mathcal{O}(n/\log_{\sigma}n)$working space, we can construct an index of optimal size$\mathcal{O}(n/\log_{\sigma}n)$that, given any substring$P=T[j.. j+\ell)$specified with a pair$(j,\ell)$, computes the leftmost occurrence of$P$in$T$in$O(\log^{\epsilon}n)$time. In other words, we solve the indexing/online variant of the LZ77 problem, where we can efficiently query the phrase length starting at any position. Our solution is based on a new type of queries that we call prefix range minimum queries or prefix RMQ. After developing an efficient solution for these queries, we provide a general reduction showing that any new tradeoff for the prefix RMQ implies a new tradeoff for an index finding leftmost occurrences (and hence a new LZ77 factorization algorithm). Dominik Kempa, Tomasz Kociumaka |
FOCS | 1 |
| 2024 | Grammar Boosting: A New Technique for Proving Lower Bounds for Computation over Compressed DataabstractComputation over compressed data is a new paradigm in the design of algorithms and data structures that can reduce space usage and speed up computation by orders of magnitude. One of the most frequently employed compression frameworks, capturing many practical compression methods (such as the Lempel-Ziv family, dictionary methods, and others), is grammar compression. In this framework, a string T of length N is represented as a context-free grammar of size n whose language contains only the string T. In this paper, we focus on studying the limitations of these techniques. Previous work focused on proving lower bounds for algorithms and data structures operating over grammars constructed using algorithms that achieve the approximation ratio ρ = O (polylog N) (since finding the smallest grammar representation is NP-hard, every polynomial-time grammar compressor can be viewed as an approximation algorithm). Unfortunately, for many grammar compressors we either have ρ = ω (polylog N) or it is not known whether ρ = O(polylog N) holds. In their seminal paper, Charikar, Lehman, Liu, Panigrahy, Prabhakaran, Sahai, and Shelat [IEEE Trans. Inf. Theory 2005] studied seven popular grammar compression algorithms: RePair, Greedy, LongestMatch, Sequential, Bisection, LZ78, and α-Balanced. Only one of them (α-Balanced) is known to achieve ρ = O(polylog N). Rajat De, Dominik Kempa |
SODA | 2 |
| 2023 | Collapsing the Hierarchy of Compressed Data Structures: Suffix Arrays in Optimal Compressed SpaceabstractThe last two decades have witnessed a dramatic increase in the amount of highly repetitive datasets consisting of sequential data (strings, texts). Processing these massive amounts of data using conventional data structures is infeasible. This fueled the development of compressed text indexes, which efficiently answer various queries on a given text, typically in polylogarithmic time, while occupying space proportional to the compressed representation of the text. There exist numerous structures supporting queries ranging from simple “local” queries, such as random access, through more complex ones, including longest common extension (LCE) queries, to the most powerful queries, such as the suffix array (SA) functionality. Alongside the rich repertoire of queries followed a detailed study of the trade-off between the size and functionality of compressed indexes (see: Navarro; ACM Comput. Surv. 2021). It is widely accepted that this hierarchy of structures tells a simple story: the more powerful the queries, the more space is needed. On the one hand, random access, the most basic query, can be supported using $\mathcal{O}\left(\delta \log \frac{n \log \sigma}{\delta \log n}\right)$ space (where n is the length of the text, $\sigma$ is the alphabet size, and $\delta$ is the text’s substring complexity), which is known to be the asymptotically smallest space sufficient to represent any string with parameters $n, \sigma$, and $\delta$ (Kociumaka, Navarro, and Prezza; IEEE Trans. Inf. Theory 2023). The other end of the hierarchy is occupied by indexes supporting the suffix array queries. The currently smallest one takes $\mathcal{O}\left(r \log \frac{n}{r}\right)$ space, where $r \geq \delta$ is the number of runs in the Burrows-Wheeler Transform of the text (Gagie, Navarro, and Prezza; J. ACM 2020). We present a new compressed index, referred to as $\delta$ SA, that supports the powerful SA functionality and needs only $\mathcal{O}\left(\delta \log \frac{n \log \sigma}{\delta \log n}\right)$ space. This collapses the hierarchy of compressed data structures into a single point: The space required to represent the text is simultaneously sufficient to efficiently support the full SA functionality. Since suffix array queries are the most widely utilized queries in string processing and data compression, our result immediately improves the space complexity of dozens of algorithms, which can now be executed in $\delta$-optimal compressed space. The $\delta$-SA supports both suffix array and inverse suffix array queries in $\mathcal{O}\left(\log ^{4+\epsilon} n\right)$ time (where $\epsilon \gt 0$ is any predefined constant). Our second main result is an $\mathcal{O}(\delta$ polylog $n)$-time construction of the $\delta$-SA from the Lempel-Ziv (LZ77) parsing of the text. This is the first algorithm that builds an SA index in compressed time, i.e., time nearly linear in the compressed input size. For highly repetitive texts, this is up to exponentially faster than the previously best algorithm, which builds an $\mathcal{O}\left(r \log \frac{n}{r}\right)$-size index in $\mathcal{O}(\sqrt{\delta n}$ polylog $n)$ time. To obtain our results, we develop numerous new techniques of independent interest. This includes deterministic restricted recompression, $\delta$-compressed string synchronizing sets, and their construction in compressed time. We also improve many other auxiliary data structures; e.g., we show the first $\mathcal{O}\left(\delta \log \frac{n \log \sigma}{\delta \log n}\right)$-size index for LCE queries along with its efficient construction from the LZ77 parsing. Dominik Kempa, Tomasz Kociumaka |
FOCS | 1 |
| 2023 | Breaking the 𝒪(n)-Barrier in the Construction of Compressed Suffix Arrays and Suffix TreesabstractThe suffix array, describing the lexicographical order of suffixes of a given text, and the suffix tree, a path-compressed trie of all suffixes, are the two most fundamental data structures for string processing, with plethora of applications in data compression, bioinformatics, and information retrieval. For a length-n text, however, they use Θ(n log n) bits of space, which is often too costly. To address this, Grossi and Vitter [STOC 2000] and, independently, Ferragina and Manzini [FOCS 2000] introduced space-efficient versions of the suffix array, known as the compressed suffix array (CSA) and the FM-index. Sadakane [SODA 2002] then showed how to augment them to obtain the compressed suffix tree (CST). For a length-n text over an alphabet of size σ, these structures use only Dominik Kempa, Tomasz Kociumaka |
SODA | 1 |
| 2022 | An Upper Bound and Linear-Space Queries on the LZ-End ParsingabstractLempel–Ziv (LZ77) compression is the most commonly used lossless compression algorithm. The basic idea is to greedily break the input string into blocks (called “phrases”), every time forming as a phrase the longest prefix of the unprocessed part that has an earlier occurrence. In 2010, Kreft and Navarro introduced a variant of LZ77 called LZ-End, that additionally requires the previous occurrence of each phrase to end at the boundary of an already existing phrase. Due to its excellent practical performance as a compression algorithm and a compressed index, they conjectured that it achieves a compression that can be provably upper-bounded in terms of the LZ77 size. Despite the recent progress in understanding such relation for other compression algorithms (e.g., the run-length encoded Burrows–Wheeler transform), no such result is known for LZ-End. We prove that for any string of length n, the number ze of phrases in the LZ-End parsing satisfies , where z is the number of phrases in the LZ77 parsing. This puts LZ-End among the strongest dictionary compressors and solves a decade-old open problem of Kreft and Navarro. Using our techniques we also derive bounds for other variants of LZ-End and with respect to other compression measures. Our second contribution is a data structure that implements random access queries to the text in space and time. This is the first linear-size structure on LZ-End that efficiently implements such queries. All previous data structures either incur a logarithmic penalty in the space or have slow queries. We also show how to extend these techniques to support longest-common-extension (LCE) queries. Dominik Kempa, Barna Saha |
SODA | 1 |
| 2022 | Dynamic suffix array with polylogarithmic queries and updatesabstractThe suffix array SA[1..n] of a text T of length n is a permutation of {1, …, n} describing the lexicographical ordering of suffixes of T and is considered to be one of the most important data structures for string processing, with dozens of applications in data compression, bioinformatics, and information retrieval. One of the biggest drawbacks of the suffix array is that it is very difficult to maintain under text updates: even a single character substitution can completely change the contents of the suffix array. Thus, the suffix array of a dynamic text is modelled using suffix array queries, which return the value SA[i] given any i ∈ [1..n]. Dominik Kempa, Tomasz Kociumaka |
STOC | 1 |
| 2021 | Fast and Space-Efficient Construction of AVL Grammars from the LZ77 Parsingabstractis the length of the input text. Despite these advantages, AVL grammars are thought to be too large to be practical. We present a new technique for rapidly constructing a small AVL grammar from an LZ77 or LZ77-like parse. Our algorithm produces grammars that are always at least five times smaller than those produced by the original algorithm, and usually not more than double the size of grammars produced by the practical Re-Pair compressor [Larsson and Moffat, Proc. IEEE, 2000]. Our algorithm also achieves low peak RAM usage. By combining this algorithm with recent advances in approximating the LZ77 parsing, we show that our method has the potential to construct a run-length BWT in about one third of the time and peak RAM required by other approaches. Overall, we show that AVL grammars are surprisingly practical, opening the door to much faster construction of key compressed data structures. Dominik Kempa, Ben Langmead |
ESA | 1 |
| 2020 | Resolution of the Burrows-Wheeler Transform ConjectureabstractThe Burrows-Wheeler Transform (BWT) is an invertible text transformation that permutes symbols of a text according to the lexicographical order of its suffixes. BWT is the main component of popular lossless compression programs (such as bzip2) as well as recent powerful compressed indexes (such as r-index [Gagie et al., J. ACM, 2020]), central in modern bioinformatics. The compression ratio of BWT is quantified by the number r of equal-letter runs. Despite the practical significance of BWT, no non-trivial bound on the value of r is known. This is in contrast to nearly all other known compression methods, whose sizes have been shown to be either always within a polylogn factor (where n is the length of text) from z, the size of Lempel-Ziv (LZ77) parsing of the text, or significantly larger in the worst case (by a nεfactor for ). In this paper, we show that r=O(zlog2n) holds for every text. This result has numerous implications for text indexing and data compression; for example: (1) it proves that many results related to BWT automatically apply to methods based on LZ77, e.g., it is possible to obtain functionality of the suffix tree in O(zpolylog n) space; (2) it shows that many text processing tasks can be solved in the optimal time assuming the text is compressible using LZ77 by a sufficiently large polylogn factor; (3) it implies the first non-trivial relation between the number of runs in the BWT of the text and its reverse. In addition, we provide an O(z polylog n)-time algorithm converting the LZ77 parsing into the run-length compressed BWT. To achieve this, we develop a number of new data structures and techniques of independent interest. In particular, we introduce a notion of compressed string synchronizing sets (generalizing the recently introduced powerful technique of string synchronizing sets [STOC 2019]) and show how to efficiently construct them. Next, we propose a new variant of wavelet trees for sequences of long strings, establish a nontrivial bound on their size, and describe efficient construction algorithms. Finally, we describe new indexes that can be constructed directly from the LZ77-compressed text and efficiently support pattern matching queries on substrings of the text. Dominik Kempa, Tomasz Kociumaka |
FOCS | 1 |
| 2019 | Optimal Construction of Compressed Indexes for Highly Repetitive TextsabstractWe propose algorithms that, given the input string of length n over integer alphabet of size σ, construct the Burrows–Wheeler transform (BWT), the permuted longest-common-prefix (PLCP) array, and the LZ77 parsing in O(n/ logσ n + r polylog n) time and working space, where r is the number of runs in the BWT of the input. These are the essential components of many compressed indexes such as compressed suffix tree, FM-index, and grammar and LZ77-based indexes, but also find numerous applications in sequence analysis and data compression. The value of r is a common measure of repetitiveness that is significantly smaller than n if the string is highly repetitive. Since just accessing every symbol of the string requires Ω(n/ logσ n) time, the presented algorithms are time and space optimal for inputs satisfying the assumption n/r ∊ Ω(polylog n) on the repetitiveness. For such inputs our result improves upon the currently fastest general algorithms of Belazzougui (STOC 2014) and Munro et al. (SODA 2017) which run in O(n) time and use O(n/ logσ n) working space. We also show how to use our techniques to obtain optimal solutions on highly repetitive data for other fundamental string processing problems such as: Lyndon factorization, construction of run-length compressed suffix arrays, and some classical “textbook” problems such as computing the longest substring occurring at least some fixed number of times. Dominik Kempa |
SODA | 1 |
| 2019 | String synchronizing sets: sublinear-time BWT construction and optimal LCE data structureabstractBurrows–Wheeler transform (BWT) is an invertible text transformation that, given a text T of length n, permutes its symbols according to the lexicographic order of suffixes of T. BWT is one of the most heavily studied algorithms in data compression with numerous applications in indexing, sequence analysis, and bioinformatics. Its construction is a bottleneck in many scenarios, and settling the complexity of this task is one of the most important unsolved problems in sequence analysis that has remained open for 25 years. Given a binary string of length n, occupying O(n/logn) machine words, the BWT construction algorithm due to Hon et al. (SIAM J. Comput., 2009) runs in O(n) time and O(n/logn) space. Recent advancements (Belazzougui, STOC 2014, and Munro et al., SODA 2017) focus on removing the alphabet-size dependency in the time complexity, but they still require Ω(n) time. Despite the clearly suboptimal running time, the existing techniques appear to have reached their limits. Dominik Kempa, Tomasz Kociumaka |
STOC | 1 |
| 2019 | Fixed Block Compression Boosting in FM-Indexes: Theory and Practice
Simon Gog, Juha Kärkkäinen, Dominik Kempa, Matthias Petri, Simon J. Puglisi |
Algorithmica | 3 |
| 2018 | Hybrid Indexing RevisitedabstractHybrid indexing is a recent approach to text indexing that allows the space-usage of conventional text indexes (e.g., suffix trees, suffix arrays, FM-indexes) to scale well with the text size, n, when z, the size of the Lempel-Ziv parsing of the text, is small relative to n. The price for this improved scalability is that an upper bound M on the pattern length that can be searched for must be declared at index construction time. Because the size of the resulting index contains an O(Mz) term, M must be kept reasonably small, though it has been shown that M ≈ 100 leads to acceptable performance in some genomic applications. However, despite its promise, the practical performance of hybrid indexing relative to other compressed index data structures is poorly understood. This paper addresses that need, detailing experiments that show hybrid indexing — when carefully implemented — to be significantly smaller and faster than alternative approaches on a broad range of data of different levels of compressibility. We also describe practical extensions to hybrid indexing that obviate the restriction on M, supporting search for patterns of arbitrary length. Héctor Ferrada, Dominik Kempa, Simon J. Puglisi |
ALENEX | 2 |
| 2018 | String Attractors: Verification and OptimizationabstractString attractors [STOC 2018] are combinatorial objects recently introduced to unify all known dictionary compression techniques in a single theory. A set $Γ\subseteq [1..n]$ is a $k$-attractor for a string $S\in[1..σ]^n$ if and only if every distinct substring of $S$ of length at most $k$ has an occurrence straddling at least one of the positions in $Γ$. Finding the smallest $k$-attractor is NP-hard for $k\geq3$, but polylogarithmic approximations can be found using reductions from dictionary compressors. It is easy to reduce the $k$-attractor problem to a set-cover instance where string's positions are interpreted as sets of substrings. The main result of this paper is a much more powerful reduction based on the truncated suffix tree. Our new characterization of the problem leads to more efficient algorithms for string attractors: we show how to check the validity and minimality of a $k$-attractor in near-optimal time and how to quickly compute exact and approximate solutions. For example, we prove that a minimum $3$-attractor can be found in optimal $O(n)$ time when $σ\in O(\sqrt[3+ε]{\log n})$ for any constant $ε>0$, and $2.45$-approximation can be computed in $O(n)$ time on general alphabets. To conclude, we introduce and study the complexity of the closely-related sharp-$k$-attractor problem: to find the smallest set of positions capturing all distinct substrings of length exactly $k$. We show that the problem is in P for $k=1,2$ and is NP-complete for constant $k\geq 3$. Dominik Kempa, Alberto Policriti, Nicola Prezza, Eva Rotenberg |
ESA | 1 |
| 2018 | At the roots of dictionary compression: string attractorsabstractA well-known fact in the field of lossless text compression is that high-order entropy is a weak model when the input contains long repetitions. Motivated by this fact, decades of research have generated myriads of so-called dictionary compressors: algorithms able to reduce the text’s size by exploiting its repetitiveness. Lempel-Ziv 77 is one of the most successful and well-known tools of this kind, followed by straight-line programs, run-length Burrows-Wheeler transform, macro schemes, collage systems, and the compact directed acyclic word graph. In this paper, we show that these techniques are different solutions to the same, elegant, combinatorial problem: to find a small set of positions capturing all distinct text’s substrings. We call such a set a string attractor. We first show reductions between dictionary compressors and string attractors. This gives the approximation ratios of dictionary compressors with respect to the smallest string attractor and allows us to uncover new asymptotic relations between the output sizes of different dictionary compressors. We then show that the k-attractor problem — deciding whether a text has a size-t set of positions capturing all substrings of length at most k — is NP-complete for k≥ 3. This, in particular, includes the full string attractor problem. We provide several approximation techniques for the smallest k-attractor, show that the problem is APX-complete for constant k, and give strong inapproximability results. To conclude, we provide matching lower and upper bounds for the random access problem on string attractors. The upper bound is proved by showing a data structure supporting queries in optimal time. Our data structure is universal: by our reductions to string attractors, it supports random access on any dictionary-compression scheme. In particular, it matches the lower bound also on LZ77, straight-line programs, collage systems, and macro schemes, and therefore essentially closes (at once) the random access problem for all these compressors. Dominik Kempa, Nicola Prezza |
STOC | 1 |
| 2017 | Engineering External Memory Induced Suffix SortingabstractSuffix sorting — determining the lexicographical order of all the suffixes of a string — is one of the most important problems in string processing. The resulting data structure is called the suffix array (SA) and underpins dozens of applications in bioinformatics, data compression, and information retrieval. When the size of the input string or the SA exceeds that of internal memory (RAM), an external memory (EM) suffix sorting algorithm must be used. The most scalable of these EM methods is due to Bingmann et al. (Proc. ALENEX 2013), and is essentially a careful disk-based implementation of the so-called induced sorting technique used by the fastest RAM suffix sorting algorithms. In this paper we show how to greatly improve the efficiency of induced suffix sorting in external memory via a non-trivial reorganization of the computation involved. Our experiments show this new approach to be twice as fast as state-of-the-art methods, while, just as significantly, using a third of the disk memory. We also demonstrate the efficacy of our implementation for handling strings on large alphabets (with many millions of distinct symbols), which is important, e.g., for applications in natural language processing and information retrieval, but unaddressed by previous EM suffix sorting implementations. Our implementation uses a (EM) radix heap data structure and, as a side result of independent interest, we introduce a new operation for radix heaps and other monotone priority queues called min-comp, which we believe to be useful for many other applications, including discrete event simulation and sweep line algorithms, even in internal memory. Juha Kärkkäinen, Dominik Kempa, Simon J. Puglisi, Bella Zhukova |
ALENEX | 2 |
| 2017 | LZ-End Parsing in Compressed SpaceabstractWe present an algorithm that constructs the LZ-End parsing (a variation of LZ77) of a given string of length n in O(n log l) expected time and O(z + l) space, where z is the number of phrases in the parsing and l is the length of the longest phrase. As an option, we can fix l (e.g., to the size of RAM) thus obtaining a reasonable LZ-End approximation with the same functionality and the length of phrases restricted by l. This modified algorithm constructs the parsing in streaming fashion in one left to right pass on the input string w.h.p. and performs one right to left pass to verify the correctness of the result. Experimentally comparing this version to other LZ77-based analogs, we show that it is of practical interest. Dominik Kempa, Dmitry Kosolobov |
DCC | 1 |
| 2017 | LZ-End Parsing in Linear TimeabstractWe present a deterministic algorithm that constructs in linear time and space the LZ-End parsing (a variation of LZ77) of a given string over an integer polynomially bounded alphabet. Dominik Kempa, Dmitry Kosolobov |
ESA | 1 |
| 2017 | On the Size of Lempel-Ziv and Lyndon FactorizationsabstractLyndon factorization and Lempel-Ziv (LZ) factorization are both important tools for analysing the structure and complexity of strings, but their combinatorial structure is very different. In this paper, we establish the first direct connection between the two by showing that while the Lyndon factorization can be bigger than the non-overlapping LZ factorization (which we demonstrate by describing a new, non-trivial family of strings) it is never more than twice the size. Juha Kärkkäinen, Dominik Kempa, Yuto Nakashima 0001, Simon J. Puglisi, Arseny M. Shur |
STACS | 2 |
| 2017 | Engineering External Memory LCP Array Construction: Parallel, In-Place and Large AlphabetabstractThe suffix array augmented with the LCP array is perhaps the most important data structure in modern string processing. There has been a lot of recent research activity on constructing these arrays in external memory. In this paper, we engineer the two fastest LCP array construction algorithms (ESA 2016) and improve them in three ways. First, we speed up the algorithms by up to a factor of two through parallelism. Just 8 threads is sufficient for making the algorithms essentially I/O bound. Second, we reduce the disk space usage of the algorithms making them in-place: The input (text and suffix array) is treated as read-only and the working disk space never exceeds the size of the final output (the LCP array). Third, we add support for large alphabets. All previous implementations assume the byte alphabet. Juha Kärkkäinen, Dominik Kempa |
SEA | 2 |
| 2016 | Faster, MinuterabstractThe FM index (Ferragina & Manzini, J. ACM, 2005) is a widely-used compresseddata structure that stores a string T in a compressed form that also supports fast pattern matching queries. Fixed-block boosting is a relatively straightforward technique that achieves optimal index size in theory, but to date it is unclear how best to translate the method into practice. In this paper we describe several new techniques for implementing fixed-block boosting efficiently. The new indexes are consistently fast and small relative to the state-of-the-art, and thus make a good "off-the-shelf" choice for most applications. Simon Gog, Juha Kärkkäinen, Dominik Kempa, Matthias Petri, Simon J. Puglisi |
DCC | 3 |
| 2016 | Faster External Memory LCP Array ConstructionabstractThe suffix array, perhaps the most important data structure in modern string processing, needs to be augmented with the longest-common-prefix (LCP) array in many applications. Their construction is often a major bottleneck especially when the data is too big for internal memory. We describe two new algorithms for computing the LCP array from the suffix array in external memory. Experiments demonstrate that the new algorithms are about a factor of two faster than the fastest previous algorithm. Juha Kärkkäinen, Dominik Kempa |
ESA | 2 |
| 2016 | LCP Array Construction Using O(sort(n)) (or Less) I/Os
Juha Kärkkäinen, Dominik Kempa |
SPIRE | 2 |
| 2016 | Lempel-Ziv Decoding in External Memory
Djamal Belazzougui, Juha Kärkkäinen, Dominik Kempa, Simon J. Puglisi |
SEA | 3 |
| 2016 | Tighter bounds for the sum of irreducible LCP values
Juha Kärkkäinen, Dominik Kempa, Marcin Piatkowski |
Theor. Comput. Sci. | 2 |
| 2015 | Tighter Bounds for the Sum of Irreducible LCP Values
Juha Kärkkäinen, Dominik Kempa, Marcin Piatkowski |
CPM | 2 |
| 2015 | Parallel External Memory Suffix Sorting
Juha Kärkkäinen, Dominik Kempa, Simon J. Puglisi |
CPM | 2 |
| 2015 | Diverse Palindromic Factorization Is NP-complete
Hideo Bannai, Travis Gagie, Shunsuke Inenaga, Juha Kärkkäinen, Dominik Kempa, Marcin Piatkowski, Simon J. Puglisi, Shiho Sugimoto |
DLT | 5 |
| 2014 | String Range Matching
Juha Kärkkäinen, Dominik Kempa, Simon J. Puglisi |
CPM | 2 |
| 2014 | Lempel-Ziv Parsing in External MemoryabstractIn the 35 years since its discovery, the Lempel-Ziv factorization (or LZ77 parsing) has become a fundamental method for data compression and string processing. In many applications, computation of the factorization is a time-space bottleneck. However, and despite the increasing need to apply LZ77 to massive data sets (for both storage and indexing), no algorithm to date scales to inputs that exceed the size of RAM. In this paper we describe the first algorithms for computing the LZ77 parsing efficiently using external memory. Juha Kärkkäinen, Dominik Kempa, Simon J. Puglisi |
DCC | 2 |
| 2014 | Hybrid Compression of Bitvectors for the FM-IndexabstractCompressed bit vectors supporting rank and select operations are the workhorse of compressed data structures. We propose a hybrid scheme for implementing compressed bit vectors, which divides the bit vector into blocks and then chooses the encoding of each block separately from a number of different encoding methods. Hybrid encoding is particularly suitable for bit vectors that have lots of local and regional variation, such as those present in the FM-index, a popular compressed data structure for pattern matching. We propose a specific hybrid combination of three simple encoding methods for FM-index bit vectors achieving superior space-time tradeoffs in experiments. Juha Kärkkäinen, Dominik Kempa, Simon J. Puglisi |
DCC | 2 |
| 2014 | Faster Sparse Suffix SortingabstractThe sparse suffix sorting problem is to sort b=o(n) arbitrary suffixes of a string of length n using o(n) words of space in addition to the string. We present an O(n) time Monte Carlo algorithm using O(b.log(b)) space and an O(n.log(b)) time Las Vegas algorithm using O(b) space. This is a significant improvement over the best prior solutions of [Bille et al., ICALP 2013]: a Monte Carlo algorithm running in O(n.log(b)) time and O(b^(1+e)) space or O(n.log^2(b)) time and O(b) space, and a Las Vegas algorithm running in O(n.log^2(b)+b^2.log(b)) time and O(b) space. All the above results are obtained with high probability not just in expectation. Tomohiro I, Juha Kärkkäinen, Dominik Kempa |
STACS | 3 |
| 2014 | LCP Array Construction in External Memory
Juha Kärkkäinen, Dominik Kempa |
SEA | 2 |
| 2013 | Lempel-Ziv factorization: Simple, fast, practicalabstractFor decades the Lempel-Ziv (LZ77) factorization has been a cornerstone of data compression and string processing algorithms, and uses for it are still being uncovered. For example, LZ77 is central to several recent text indexing data structures designed to search highly repetitive collections. However, in many applications computation of the factorization remains a bottleneck in practice. In this paper we describe simple and fast algorithms for computing the LZ77 factorization. These new methods consistently outperform all previous approaches in practice, use less memory, and still offer strong worstcase performance guarantees. A common feature of the new algorithms is their avoidance of the longest-common-prefix array, essential to nearly all prior art. Dominik Kempa, Simon J. Puglisi |
ALENEX | 1 |
| 2013 | Linear Time Lempel-Ziv Factorization: Simple, Fast, Small
Juha Kärkkäinen, Dominik Kempa, Simon J. Puglisi |
CPM | 2 |
| 2013 | Lightweight Lempel-Ziv Parsing
Juha Kärkkäinen, Dominik Kempa, Simon J. Puglisi |
SEA | 2 |
| 2012 | Slashing the Time for BWT InversionabstractInverting the Burrows-Wheeler transform (BWT) is a bottleneck in BWT-based decompressors. The state-of-the-art inversion algorithm runs in linear time but is slow in practice due to CPU-cache misses. For more than a decade these cache misses have been thought to be inherent to BWT inversion. We show how to reduce the number of cache misses by a factor of nearly two, and simultaneously the cost of cache misses by another factor of two, obtaining a consistent speed up by a factor of 2.3-4. We can do even better if the data is highly repetitive. We describe an algorithm that achieves an asymptotic reduction in cache misses in theory and is the fastest algorithm in practice for such data. Juha Kärkkäinen, Dominik Kempa, Simon J. Puglisi |
DCC | 2 |
| 2012 | Grammar Precompression Speeds Up Burrows-Wheeler Compression
Juha Kärkkäinen, Pekka Mikkola, Dominik Kempa |
SPIRE | 3 |