Algorithms for subsequence combinatorics

A subsequence is obtained from a string by deleting any number of characters; thus in contrast to a substring, a subsequence is not necessarily a contiguous part of the string. Counting subsequences under various constraints has become relevant to biological sequence analysis, to machine learning, t...

Full description

Saved in:
Bibliographic Details
Published inTheoretical computer science Vol. 409; no. 3; pp. 394 - 404
Main Authors Elzinga, Cees, Rahmann, Sven, Wang, Hui
Format Journal Article
LanguageEnglish
Published Oxford Elsevier B.V 28.12.2008
Elsevier
Subjects
Online AccessGet full text
ISSN0304-3975
1879-2294
1879-2294
DOI10.1016/j.tcs.2008.08.035

Cover

More Information
Summary:A subsequence is obtained from a string by deleting any number of characters; thus in contrast to a substring, a subsequence is not necessarily a contiguous part of the string. Counting subsequences under various constraints has become relevant to biological sequence analysis, to machine learning, to coding theory, to the analysis of categorical time series in the social sciences, and to the theory of word complexity. We present theorems that lead to efficient dynamic programming algorithms to count (1) distinct subsequences in a string, (2) distinct common subsequences of two strings, (3) matching joint embeddings in two strings, (4) distinct subsequences with a given minimum span, and (5) sequences generated by a string allowing characters to come in runs of a length that is bounded from above.
ISSN:0304-3975
1879-2294
1879-2294
DOI:10.1016/j.tcs.2008.08.035