The “Common Substring Alignment” problem is defined as follows. The input consists of a set of strings S 1, S 2…, S c , with a common substring appearing at least once in each of them, and a target string T. The goal is to compute similarity of all strings S i with T, without computing the part of the common substring over and over again. In this paper we consider the Common Substring Alignment problem for the LCS (Longest Common Subsequence) similarity metric. Our algorithm gains its efficiency by exploiting the sparsity inherent to the LCS problem. Let Y be the common substring, n be the size of the compared sequences, L y be the length of the LCS of T and Y, denoted |LCS[ T, Y]|, and L be max{|LCS[ T, S i ]|}. Our algorithm consists of an O( nL y ) time encoding stage that is executed once per common substring, and an O( L) time alignment stage that is executed once for each appearance of the common substring in each source string. The additional running time depends only on the length of the parts of the strings that are not in any common substring.
Read full abstract