Function matching: Algorithms, applications, and a lower bound

Amihood Amir, Yonatan Aumann, Richard Cole, Moshe Lewenstein, Ely Porat

Research output: Contribution to journalArticle


We introduce a new matching criterion - function matching - that captures several different applications. The function matching problem has as its input a text T of length n over alphabet Σ T and a pattern P = P[1]P[2] ⋯ P[m] of length m over alphabet Σ P. We seek all text locations i for which, for some function f : Σ P > Σ T (f may also depend on i), the m-length substring that starts at i is equal to f(P[1])f(P[2])⋯f(P[m]). We give a randomized algorithm which, for any given constant k, solves the function matching problem in time O(n log n) with probability 1/n k of declaring a false positive. We give a deterministic algorithm whose time is O(n|Σ P|log m) and show that it is almost optimal in the newly formalized convolutions model. Finally, a variant of the third problem is solved by means of two-dimensional parameterized matching, for which we also give an efficient algorithm.

Original languageEnglish (US)
Pages (from-to)929-942
Number of pages14
JournalLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
StatePublished - Dec 1 2003



  • Color indexing
  • Function matching
  • Parameterized matching
  • Pattern matching
  • Protein folding
  • Register allocation

ASJC Scopus subject areas

  • Theoretical Computer Science
  • Computer Science(all)

Cite this