State Complexity of Single-Word Pattern Matching in Regular Languages
Abstract
The state complexity $$\kappa (L)$$ of a regular language L is the number of states in the minimal deterministic finite automaton recognizing L. In a general pattern-matching problem one has a set T of texts and a set P of patterns; both T and P are sets of words over a finite alphabet $$\varSigma $$. The matching problem is to determine whether any of the patterns appear in any of the texts, as prefixes, or suffixes, or factors, or subsequences. In previous work we examined the state complexity of these problems when both T and P are regular languages, that is, we computed the state complexity of the languages
,
,
, and
, where
is the shuffle operation. It turns out that the state complexities of these languages match the naïve upper bounds derived by composing the state complexities of the basic operations used in each expression. However, when P is a single word w, and $$\varSigma $$ has two or more letters, the bounds are drastically reduced to the following:
;
;
; and
. The bounds for factor and subsequence matching are the same as the naïve bounds, but this is not the case for prefix and suffix matching. For unary languages, we have a tight upper bound of $$m+n-2$$ in all four cases.
Origin | Files produced by the author(s) |
---|