Source author record

Tomohiro I

Explore this author’s publications, collaborators and research topics. This catalog record has not been claimed by its author.

ResearcherUnclaimed source record

Catalog footprint

Research overview

17works
1topics
4close collaborators

Published work

17 publications

preprint2026arXiv

Space-efficient SLP encoding for O(log⁡N)O(\log N)-time random access

A Straight-Line Program (SLP) GG for a string TT is a context-free grammar (CFG) that derives TT only, which can be considered as a compressed representation of TT. In this paper, we show how to encode GG in n⌈lg⁡N⌉+(n+n′)⌈lg⁡(n+σ)⌉+4n−2n′+o(n)n \lceil \lg N \rceil + (n + n') \lceil \lg (n+σ) \rceil + 4n - 2n' + o(n) bits to support random access queries of extracting T[p..q]T[p..q] in worst-case O(log⁡N+q−p)O(\log N + q - p) time, where NN is the length of TT, σσ is the alphabet size, nn is the number of variables in GG and n′≤nn' \le n is the number of symmetric centroid paths in the DAG representation for GG. The time complexity is almost optimal because Verbin and Yu [CPM 2013] proved that O(log⁡N)O(\log N) term cannot be significantly improved in general with poly(n)\mathrm{poly}(n)-space data structures. We also present alternative encodings that achieve the same random access time with n⌈lg⁡N⌉+n⌈lg⁡(n+σ)⌉+5n+n′+o(n)n \lceil \lg N \rceil + n \lceil \lg (n+σ) \rceil + 5n + n' + o(n) or n⌈lg⁡N⌉+n⌈lg⁡(n+σ)⌉+5n−n′+σ+o(n+σ)n \lceil \lg N \rceil + n \lceil \lg (n+σ) \rceil + 5n - n' + σ+ o(n+σ) bits of space.

preprint2022arXiv

Computing Longest (Common) Lyndon Subsequences

Given a string TT with length nn whose characters are drawn from an ordered alphabet of size σσ, its longest Lyndon subsequence is a longest subsequence of TT that is a Lyndon word. We propose algorithms for finding such a subsequence in O(n3)O(n^3) time with O(n)O(n) space, or online in O(n3σ)O(n^3 σ) space and time. Our first result can be extended to find the longest common Lyndon subsequence of two strings of length nn in O(n4σ)O(n^4 σ) time using O(n3)O(n^3) space.

preprint2022arXiv

Substring Complexities on Run-length Compressed Strings

Let ST(k)S_{T}(k) denote the set of distinct substrings of length kk in a string TT, then the kk-th substring complexity is defined by its cardinality ∣ST(k)∣|S_{T}(k)|. Recently, δ=max⁡{∣ST(k)∣/k:k≥1}δ= \max \{ |S_{T}(k)| / k : k \ge 1 \} is shown to be a good compressibility measure of highly-repetitive strings. In this paper, given TT of length nn in the run-length compressed form of size rr, we show that δδ can be computed in Csort(r,n)\mathit{C}_{\mathsf{sort}}(r, n) time and O(r)O(r) space, where Csort(r,n)=O(min⁡(rlg⁡lg⁡r,rlg⁡rn))\mathit{C}_{\mathsf{sort}}(r, n) = O(\min (r \lg\lg r, r \lg_{r} n)) is the time complexity for sorting rr O(lg⁡n)O(\lg n)-bit integers in O(r)O(r) space in the Word-RAM model with word size Ω(lg⁡n)Ω(\lg n).

preprint2021arXiv

PHONI: Streamed Matching Statistics with Multi-Genome References

Computing the matching statistics of patterns with respect to a text is a fundamental task in bioinformatics, but a formidable one when the text is a highly compressed genomic database. Bannai et al. gave an efficient solution for this case, which Rossi et al. recently implemented, but it uses two passes over the patterns and buffers a pointer for each character during the first pass. In this paper, we simplify their solution and make it streaming, at the cost of slowing it down slightly. This means that, first, we can compute the matching statistics of several long patterns (such as whole human chromosomes) in parallel while still using a reasonable amount of RAM; second, we can compute matching statistics online with low latency and thus quickly recognize when a pattern becomes incompressible relative to the database.

preprint2020arXiv

Practical Random Access to SLP-Compressed Texts

Grammar-based compression is a popular and powerful approach to compressing repetitive texts but until recently its relatively poor time-space trade-offs during real-life construction made it impractical for truly massive datasets such as genomic databases. In a recent paper (SPIRE 2019) we showed how simple pre-processing can dramatically improve those trade-offs, and in this paper we turn our attention to one of the features that make grammar-based compression so attractive: the possibility of supporting fast random access. This is an essential primitive in many algorithms that process grammar-compressed texts without decompressing them and so many theoretical bounds have been published about it, but experimentation has lagged behind. We give a new encoding of grammars that is about as small as the practical state of the art (Maruyama et al., SPIRE 2013) but with significantly faster queries.

preprint2016arXiv

Deterministic sub-linear space LCE data structures with efficient construction

Given a string SS of nn symbols, a longest common extension query LCE(i,j)\mathsf{LCE}(i,j) asks for the length of the longest common prefix of the iith and jjth suffixes of SS. LCE queries have several important applications in string processing, perhaps most notably to suffix sorting. Recently, Bille et al. (J. Discrete Algorithms 25:42-50, 2014, Proc. CPM 2015: 65-76) described several data structures for answering LCE queries that offers a space-time trade-off between data structure size and query time. In particular, for a parameter 1≤τ≤n1 \leq τ\leq n, their best deterministic solution is a data structure of size O(n/τ)O(n/τ) which allows LCE queries to be answered in O(τ)O(τ) time. However, the construction time for all deterministic versions of their data structure is quadratic in nn. In this paper, we propose a deterministic solution that achieves a similar space-time trade-off of O(τmin⁡{log⁡τ,log⁡nτ})O(τ\min\{\logτ,\log\frac{n}τ\}) query time using O(n/τ)O(n/τ) space, but significantly improve the construction time to O(nτ)O(nτ).

preprint2016arXiv

Dynamic index and LZ factorization in compressed space

In this paper, we propose a new \emph{dynamic compressed index} of O(w)O(w) space for a dynamic text TT, where w=O(min⁡(zlog⁡Nlog⁡∗M,N))w = O(\min(z \log N \log^*M, N)) is the size of the signature encoding of TT, zz is the size of the Lempel-Ziv77 (LZ77) factorization of TT, NN is the length of TT, and M≥3NM \geq 3N is an integer that can be handled in constant time under word RAM model. Our index supports searching for a pattern PP in TT in O(∣P∣fA+log⁡wlog⁡∣P∣log⁡∗M(log⁡N+log⁡∣P∣log⁡∗M)+occlog⁡N)O(|P| f_{\mathcal{A}} + \log w \log |P| \log^* M (\log N + \log |P| \log^* M) + \mathit{occ} \log N) time and insertion/deletion of a substring of length yy in O((y+log⁡Nlog⁡∗M)log⁡wlog⁡Nlog⁡∗M)O((y+ \log N\log^* M)\log w \log N \log^* M) time, where fA=O(min⁡{log⁡log⁡Mlog⁡log⁡wlog⁡log⁡log⁡M,log⁡wlog⁡log⁡w})f_{\mathcal{A}} = O(\min \{ \frac{\log\log M \log\log w}{\log\log\log M}, \sqrt{\frac{\log w}{\log\log w}} \}). Also, we propose a new space-efficient LZ77 factorization algorithm for a given text of length NN, which runs in O(NfA+zlog⁡wlog⁡3N(log⁡∗N)2)O(N f_{\mathcal{A}} + z \log w \log^3 N (\log^* N)^2) time with O(w)O(w) working space.

preprint2016arXiv

Fully dynamic data structure for LCE queries in compressed space

A Longest Common Extension (LCE) query on a text TT of length NN asks for the length of the longest common prefix of suffixes starting at given two positions. We show that the signature encoding G\mathcal{G} of size w=O(min⁡(zlog⁡Nlog⁡∗M,N))w = O(\min(z \log N \log^* M, N)) [Mehlhorn et al., Algorithmica 17(2):183-198, 1997] of TT, which can be seen as a compressed representation of TT, has a capability to support LCE queries in O(log⁡N+log⁡ℓlog⁡∗M)O(\log N + \log \ell \log^* M) time, where ℓ\ell is the answer to the query, zz is the size of the Lempel-Ziv77 (LZ77) factorization of TT, and M≥4NM \geq 4N is an integer that can be handled in constant time under word RAM model. In compressed space, this is the fastest deterministic LCE data structure in many cases. Moreover, G\mathcal{G} can be enhanced to support efficient update operations: After processing G\mathcal{G} in O(wfA)O(w f_{\mathcal{A}}) time, we can insert/delete any (sub)string of length yy into/from an arbitrary position of TT in O((y+log⁡Nlog⁡∗M)fA)O((y+ \log N\log^* M) f_{\mathcal{A}}) time, where fA=O(min⁡{log⁡log⁡Mlog⁡log⁡wlog⁡log⁡log⁡M,log⁡wlog⁡log⁡w})f_{\mathcal{A}} = O(\min \{ \frac{\log\log M \log\log w}{\log\log\log M}, \sqrt{\frac{\log w}{\log\log w}} \}). This yields the first fully dynamic LCE data structure. We also present efficient construction algorithms from various types of inputs: We can construct G\mathcal{G} in O(NfA)O(N f_{\mathcal{A}}) time from uncompressed string TT; in O(nlog⁡log⁡nlog⁡Nlog⁡∗M)O(n \log\log n \log N \log^* M) time from grammar-compressed string TT represented by a straight-line program of size nn; and in O(zfAlog⁡Nlog⁡∗M)O(z f_{\mathcal{A}} \log N \log^* M) time from LZ77-compressed string TT with zz factors. On top of the above contributions, we show several applications of our data structures which improve previous best known results on grammar-compressed string processing.

preprint2016arXiv

Longest Common Extensions with Recompression

Given two positions ii and jj in a string TT of length NN, a longest common extension (LCE) query asks for the length of the longest common prefix between suffixes beginning at ii and jj. A compressed LCE data structure is a data structure that stores TT in a compressed form while supporting fast LCE queries. In this article we show that the recompression technique is a powerful tool for compressed LCE data structures. We present a new compressed LCE data structure of size O(zlg⁡(N/z))O(z \lg (N/z)) that supports LCE queries in O(lg⁡N)O(\lg N) time, where zz is the size of Lempel-Ziv 77 factorization without self-reference of TT. Given TT as an uncompressed form, we show how to build our data structure in O(N)O(N) time and space. Given TT as a grammar compressed form, i.e., an straight-line program of size n generating TT, we show how to build our data structure in O(nlg⁡(N/n))O(n \lg (N/n)) time and O(n+zlg⁡(N/z))O(n + z \lg (N/z)) space. Our algorithms are deterministic and always return correct answers.

preprint2015arXiv

Constructing LZ78 Tries and Position Heaps in Linear Time for Large Alphabets

We present the first worst-case linear-time algorithm to compute the Lempel-Ziv 78 factorization of a given string over an integer alphabet. Our algorithm is based on nearest marked ancestor queries on the suffix tree of the given string. We also show that the same technique can be used to construct the position heap of a set of strings in worst-case linear time, when the set of strings is given as a trie.

preprint2015arXiv

Efficiently Finding All Maximal αα-gapped Repeats

For α≥1α\geq 1, an αα-gapped repeat in a word ww is a factor uvuuvu of ww such that ∣uv∣≤α∣u∣|uv|\leq α|u|; the two factors uu in such a repeat are called arms, while the factor vv is called gap. Such a repeat is called maximal if its arms cannot be extended simultaneously with the same symbol to the right or, respectively, to the left. In this paper we show that the number of maximal αα-gapped repeats that may occur in a word is upper bounded by 18αn18αn. This allows us to construct an algorithm finding all the maximal αα-gapped repeats of a word in O(αn)O(αn); this is optimal, in the worst case, as there are words that have Θ(αn)Θ(αn) maximal αα-gapped repeats. Our techniques can be extended to get comparable results in the case of αα-gapped palindromes, i.e., factors uvuTuvu^\mathrm{T} with ∣uv∣≤α∣u∣|uv|\leq α|u|.

preprint2013arXiv

Computing convolution on grammar-compressed text

The convolution between a text string SS of length NN and a pattern string PP of length mm can be computed in O(Nlog⁡m)O(N \log m) time by FFT. It is known that various types of approximate string matching problems are reducible to convolution. In this paper, we assume that the input text string is given in a compressed form, as a \emph{straight-line program (SLP)}, which is a context free grammar in the Chomsky normal form that derives a single string. Given an SLP S\mathcal{S} of size nn describing a text SS of length NN, and an uncompressed pattern PP of length mm, we present a simple O(nmlog⁡m)O(nm \log m)-time algorithm to compute the convolution between SS and PP. We then show that this can be improved to O(min⁡{nm,N−α}log⁡m)O(\min\{nm, N-α\} \log m) time, where α≥0α\geq 0 is a value that represents the amount of redundancy that the SLP captures with respect to the length-mm substrings. The key of the improvement is our new algorithm that computes the convolution between a trie of size rr and a pattern string PP of length mm in O(rlog⁡m)O(r \log m) time.

preprint2013arXiv

Detecting regularities on grammar-compressed strings

We solve the problems of detecting and counting various forms of regularities in a string represented as a Straight Line Program (SLP). Given an SLP of size nn that represents a string ss of length NN, our algorithm compute all runs and squares in ss in O(n3h)O(n^3h) time and O(n2)O(n^2) space, where hh is the height of the derivation tree of the SLP. We also show an algorithm to compute all gapped-palindromes in O(n3h+gnhlog⁡N)O(n^3h + gnh\log N) time and O(n2)O(n^2) space, where gg is the length of the gap. The key technique of the above solution also allows us to compute the periods and covers of the string in O(n2h)O(n^2 h) time and O(nh(n+log⁡2N))O(nh(n+\log^2 N)) time, respectively.

preprint2013arXiv

Efficient Lyndon factorization of grammar compressed text

We present an algorithm for computing the Lyndon factorization of a string that is given in grammar compressed form, namely, a Straight Line Program (SLP). The algorithm runs in O(n4+mn3h)O(n^4 + mn^3h) time and O(n2)O(n^2) space, where mm is the size of the Lyndon factorization, nn is the size of the SLP, and hh is the height of the derivation tree of the SLP. Since the length of the decompressed string can be exponentially large w.r.t. n,mn, m and hh, our result is the first polynomial time solution when the string is given as SLP.

preprint2013arXiv

Faster Compact On-Line Lempel-Ziv Factorization

We present a new on-line algorithm for computing the Lempel-Ziv factorization of a string that runs in O(Nlog⁡N)O(N\log N) time and uses only O(Nlog⁡σ)O(N\logσ) bits of working space, where NN is the length of the string and σσ is the size of the alphabet. This is a notable improvement compared to the performance of previous on-line algorithms using the same order of working space but running in either O(Nlog⁡3N)O(N\log^3N) time (Okanohara & Sadakane 2009) or O(Nlog⁡2N)O(N\log^2N) time (Starikovskaya 2012). The key to our new algorithm is in the utilization of an elegant but less popular index structure called Directed Acyclic Word Graphs, or DAWGs (Blumer et al. 1985). We also present an opportunistic variant of our algorithm, which, given the run length encoding of size mm of a string of length NN, computes the Lempel-Ziv factorization on-line, in O(m⋅min⁡{(log⁡log⁡m)(log⁡log⁡N)log⁡log⁡log⁡N,log⁡mlog⁡log⁡m})O\left(m \cdot \min \left\{\frac{(\log\log m)(\log \log N)}{\log\log\log N}, \sqrt{\frac{\log m}{\log \log m}} \right\}\right) time and O(mlog⁡N)O(m\log N) bits of space, which is faster and more space efficient when the string is run-length compressible.

Research graph

See the researcher in context

Open full explorer

Inspect adjacent papers, topics, institutions and collaborators without losing the researcher page.

Building this map preview

BZPEER is loading the nearby papers, people, topics and institutions for this page.