English

On Indexing and Compressing Finite Automata

Data Structures and Algorithms 2020-07-16 v1

Abstract

An index for a finite automaton is a powerful data structure that supports locating paths labeled with a query pattern, thus solving pattern matching on the underlying regular language. In this paper, we solve the long-standing problem of indexing arbitrary finite automata. Our solution consists in finding a partial co-lexicographic order of the states and proving, as in the total order case, that states reached by a given string form one interval on the partial order, thus enabling indexing. We provide a lower bound stating that such an interval requires O(p)O(p) words to be represented, pp being the order's width (i.e. the size of its largest antichain). Indeed, we show that pp determines the complexity of several fundamental problems on finite automata: (i) Letting σ\sigma be the alphabet size, we provide an encoding for NFAs using logσ+2logp+2\lceil\log \sigma\rceil + 2\lceil\log p\rceil + 2 bits per transition and a smaller encoding for DFAs using logσ+logp+2\lceil\log \sigma\rceil + \lceil\log p\rceil + 2 bits per transition. This is achieved by generalizing the Burrows-Wheeler transform to arbitrary automata. (ii) We show that indexed pattern matching can be solved in O~(mp2)\tilde O(m\cdot p^2) query time on NFAs. (iii) We provide a polynomial-time algorithm to index DFAs, while matching the optimal value for p p . On the other hand, we prove that the problem is NP-hard on NFAs. (iv) We show that, in the worst case, the classic powerset construction algorithm for NFA determinization generates an equivalent DFA of size 2p(np+1)12^p(n-p+1)-1, where nn is the number of NFA's states.

Keywords

Cite

@article{arxiv.2007.07718,
  title  = {On Indexing and Compressing Finite Automata},
  author = {Nicola Cotumaccio and Nicola Prezza},
  journal= {arXiv preprint arXiv:2007.07718},
  year   = {2020}
}
R2 v1 2026-06-23T17:08:26.720Z