Separating Sets of Strings by Finding Matching Patterns is Almost Always Hard
This addresses a fundamental computational problem with applications in data mining and computational biology, but it is incremental in analyzing complexity rather than solving it.
The paper tackles the problem of finding a small set of patterns that separate two sets of strings, showing it is NP-complete, W[2]-hard, and APX-hard, and identifies tractable variants through parameterized analysis.
We study the complexity of the problem of searching for a set of patterns that separate two given sets of strings. This problem has applications in a wide variety of areas, most notably in data mining, computational biology, and in understanding the complexity of genetic algorithms. We show that the basic problem of finding a small set of patterns that match one set of strings but do not match any string in a second set is difficult (NP-complete, W[2]-hard when parameterized by the size of the pattern set, and APX-hard). We then perform a detailed parameterized analysis of the problem, separating tractable and intractable variants. In particular we show that parameterizing by the size of pattern set and the number of strings, and the size of the alphabet and the number of strings give FPT results, amongst others.