Jump to content

Suffix automaton

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by David Eppstein (talk | contribs) at 23:55, 21 February 2016 (carry out proposed merge from directed acyclic word graph, different name for same topic). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Non-deterministic suffix automaton for the word "suffix". Epsilon transitions are shown grey.

In computer science, a suffix automaton or directed acyclic word graph is a finite automaton that recognizes the set of suffixes of a given string. It can be thought of as a compressed form of the suffix tree, a data structure that efficiently represents the suffixes of the string. For example, a suffix automaton for the string "suffix" can be queried for other strings; it will report "true" for any of the strings "suffix", "uffix", "ffix", "fix", "ix" and "x", and "false" for any other string.[1]

The suffix automaton of a set of strings U has at most 2Q − 2 states, where Q is the number of nodes of a prefix-tree representing the strings in U.[2]

Suffix automata have applications in approximate string matching.[1]

See also

References

  1. ^ a b Navarro, Gonzalo (2001), "A guided tour to approximate string matching" (PDF), ACM Computing Surveys, 33 (1): 31–88, doi:10.1145/375360.375365
  2. ^ Mohri, Mehryar; Moreno, Pedro; Weinstein, Eugene (September 2009), "General suffix automaton construction algorithm and space bounds", Theoretical Computer Science, 410 (37): 3553–3562, doi:10.1016/j.tcs.2009.03.034

Additional reading