Abstract
A pattern is a finite string of constant and variable symbols. A pattern p represents a language L(p) of all finite strings of constant symbols that can be generated from p by substituting a constant string for each variable in p. The k-variable pattern-finding problem, k ≥ 1, is to find, for a given set S of finite constant strings, a longest pattern p of k variables such that L(p) contains S. A polynomial-time algorithm for the one-variable pattern-finding problem has been found by Angluin using the data structure called pattern automata. A straightforward generalization of this algorithm to the two-variable case involves a sub-problem of finding common paths of pattern automata. It is proved that this subproblem in the generalized algorithm is NP-hard.
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have