A diagonal-based algorithm for the longest common increasing subsequence problem

Abstract The longest common increasing subsequences (LCIS) problem is to find out a common increasing subsequence with the maximal length of two given sequences A and B. In this paper, we propose an algorithm for solving the LCIS problem with O ( ( n + L ( m − L ) ) log ⁡ log ⁡ | Σ | ) time and O(n) space, where m and n denote the lengths of A and B, respectively, m ≤ n , L denotes the LCIS length, and Σ denotes the alphabet set. The main idea of our algorithm is to extend the answer from some previously feasible solutions, in which the domination function is invoked. To accomplish the extension and domination functions, the data structure of the van Emde Boas tree is utilized. From the time complexity, it is obvious that our algorithm is extremely efficient when L is very small or L is close to m. Some experiments are performed to demonstrate the efficiency of our algorithm.

[1]  S. Salzberg,et al.  Alignment of whole genomes. , 1999, Nucleic acids research.

[2]  Chang-Biau Yang,et al.  Efficient merged longest common subsequence algorithms for similar sequences , 2018, Theor. Comput. Sci..

[3]  Hsing-Yen Ann,et al.  A fast and simple algorithm for computing the longest common subsequence of run-length encoded strings , 2008, Inf. Process. Lett..

[4]  Daniel S. Hirschberg,et al.  A linear space algorithm for computing maximal common subsequences , 1975, Commun. ACM.

[5]  Chang-Biau Yang,et al.  Finding the gapped longest common subsequence by incremental suffix maximum queries , 2014, Inf. Comput..

[6]  C. Schensted Longest Increasing and Decreasing Subsequences , 1961, Canadian Journal of Mathematics.

[7]  Sebastian Deorowicz,et al.  Bit-Parallel Algorithm for the Block Variant of the Merged Longest Common Subsequence Problem , 2013, ICMMI.

[8]  Michael J. Fischer,et al.  The String-to-String Correction Problem , 1974, JACM.

[9]  Yahiko Kambayashi,et al.  A longest common subsequence algorithm suitable for similar text strings , 1982, Acta Informatica.

[10]  Peter van Emde Boas,et al.  Preserving Order in a Forest in Less Than Logarithmic Time and Linear Space , 1977, Inf. Process. Lett..

[11]  Lech Duraj A linear algorithm for 3-letter longest common weakly increasing subsequence , 2013, Inf. Process. Lett..

[12]  Sergey Bereg,et al.  Enumerating longest increasing subsequences and patience sorting , 2000, Inf. Process. Lett..

[13]  Kun-Mao Chao,et al.  A fast algorithm for computing a longest common increasing subsequence , 2005, Inf. Process. Lett..

[14]  S. Salzberg,et al.  Versatile and open software for comparing large genomes , 2004, Genome Biology.

[15]  Yoshifumi Sakai A linear space algorithm for computing a longest common increasing subsequence , 2006, Inf. Process. Lett..

[16]  Gerth Stølting Brodal,et al.  Faster algorithms for computing longest common increasing subsequences , 2011, J. Discrete Algorithms.

[17]  Deshi Ye,et al.  Efficient algorithms for finding a longest common increasing subsequence , 2005, J. Comb. Optim..

[18]  Maxime Crochemore,et al.  Fast computation of a longest increasing subsequence and application , 2010, Inf. Comput..

[19]  Daxin Zhu,et al.  A simple linear space algorithm for computing a longest common increasing subsequence , 2016, ArXiv.

[20]  Sebastian Deorowicz,et al.  Bit-Parallel Algorithm for the Constrained Longest Common Subsequence Problem , 2010, Fundam. Informaticae.

[21]  Michael L. Fredman,et al.  On computing the length of longest increasing subsequences , 1975, Discret. Math..

[22]  Donald E. Knuth,et al.  The Art of Computer Programming: Volume 3: Sorting and Searching , 1998 .

[23]  Thomas G. Szymanski,et al.  A fast algorithm for computing longest common subsequences , 1977, CACM.