Abstract
We study the problem of finding a longest common increasing subsequence (LCIS) of multiple sequences of numbers. The LCIS problem is a fundamental issue in various application areas, including the whole genome alignment. In this paper we give an efficient algorithm to find the LCIS of two sequences in \(O({\rm min}(r {\rm log} \ell, n \ell +r) {\rm log} {\rm log} n + Sort(n))\) time where n is the length of each sequence andr is the number of ordered pairs of positions at which the two sequences match, ℓ is the length of the LCIS, and Sort(n) is the time to sort n numbers. For m sequences wherem ≥ 3, we find the LCIS in \(O({\rm min}(mr^2, r {\rm log}\ell {\rm log}^m r)+m\cdot \) Sort(n)) time where r is the total number of m-tuples of positions at which the m sequences match. The previous results find the LCIS of two sequences in O(n 2) and\(O(n\ell {\rm log} {\rm log} n+\) Sort(n)) time. Our algorithm is faster when r is relatively small, e.g., for \(r < {\rm min}(n^2/({\rm log} \ell {\rm log}{\rm log} n), n\ell/{\rm log}\ell)\).
Similar content being viewed by others
References
Bespamyatnikh S, Segal M (2000) Enumerating longest increasing subsequences and patience sorting. Inf Process Lett 76(1–2):7–11
Brodal GS, Kaligosi K, Katriel I, Kutz M (2006) Faster algorithms for computing longest common increasing subsequences. In: Proceedings of the 17th annual symposium on combinatorial pattern matching (CPM), pp 330–341
Delcher AL, Kasif S, Fleischmann RD, Peterson J, White O, Salzberg SL (1999) Alignment of whole genomes. Nucleic Acids Res 27:2369–2376
Deogun JS, Yang J, Emagen Ma F (2004) An efficient approach to multiple whole genome alignment. In: Proceedings of the second asia-pacific bioinformatics conference (APBC), pp 113–122
Gabow HN, Bentley JL, Tarjan RE (1984) Scaling and related techniques for geometry problems. In: Proceedings of the 16th ACM symposium on theory of computing (STOC), pp 135–143
Hunt JW, Szymanski TG (1977) A fast algorithm for computing longest common subsequences. Commun ACM 20(5):350–353
Knuth DE (1973) Sorting and searching, the art of computer programming, vol 3. Addison-Wesley, Reading, MA
Kurtz S, Phillippy A, Delcher A, Smoot M, Shumway M, Antonescu C, Salzberg S (2004) Versatile and open software for comparing large genomes. Genome Biol 5(2):R12
Maier D (1978) The complexity of some problems on subsequences and supersequences. J ACM 25(2):322–336
Masek WJ, Paterson M (1980) A faster algorithm computing string edit distances. J Comput Syst Sci 20(1):18–31
Schensted C (1961) Longest increasing and decreasing subsequences. Canad J Math 13:179–191
van Emde Boas P (1975) Preserving order in a forest in less than logarithmic time. In: Proceedings of the 16th symposium on foundations of computer science (FOCS), pp 75–84
Willard DE, Lueker GS (1985) Adding range restriction capability to dynamic data structures. J ACM 32(3):597–617
Yang I-H, Huang C-P, Chao K-M (2005) A fast algorithm for computing a longest common increasing subsequence. Inf Process Lett 93(5):249–253
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Chan, WT., Zhang, Y., Fung, S.P.Y. et al. Efficient algorithms for finding a longest common increasing subsequence. J Comb Optim 13, 277–288 (2007). https://doi.org/10.1007/s10878-006-9031-7
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10878-006-9031-7