Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
16 views9 pages

2-Dynamic Programming and LCS Intro-12-01-2024

The document discusses the longest common subsequence problem in computational biology. It defines the problem, provides an intuitive brute force solution, and describes an optimal dynamic programming solution that uses recursion and two-dimensional arrays to compute the length and reconstruction of the longest common subsequence in quadratic time and space.

Uploaded by

Basketball
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
16 views9 pages

2-Dynamic Programming and LCS Intro-12-01-2024

The document discusses the longest common subsequence problem in computational biology. It defines the problem, provides an intuitive brute force solution, and describes an optimal dynamic programming solution that uses recursion and two-dimensional arrays to compute the length and reconstruction of the longest common subsequence in quadratic time and space.

Uploaded by

Basketball
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 9

LCS

Longest Common Subsequence (LCS)


• DNA analysis, two DNA string comparison.
• DNA string: a sequence of symbols A,C,G,T.
• S=ACCGGTCGAGCTTCGAAT
• Subsequence (of X): is X with some symbols left out.
• Z=CGTC is a subsequence of X=ACGCTAC.
• Common subsequence Z (of X and Y): a subsequence of X and also a
subsequence of Y.
• Z=CGA is a common subsequence of both X=ACGCTAC and Y=CTGACA.
• Longest Common Subsequence (LCS): the longest one of common
subsequences.
• Z' =CGCA is the LCS of the above X and Y.
• LCS problem: given X=<x1, x2,…, xm> and Y=<y1, y2,…, yn>, find their
LCS.

2
LCS Intuitive Solution –brute force
• List all possible subsequences of X, check whether
they are also subsequences of Y, keep the longer
one each time.
• Each subsequence corresponds to a subset of the
indices {1,2,…,m}, there are 2m. So exponential.

3
LCS DP –step 1: Optimal Substructure
• Characterize optimal substructure of LCS.
• Theorem 15.1: Let X=<x1, x2,…, xm> (= Xm) and
Y=<y1, y2,…,yn> (= Yn) and Z=<z1, z2,…, zk> (= Zk) be
any LCS of X and Y,
• 1. if xm= yn, then zk= xm= yn, and Zk-1 is the LCS of Xm-1 and
Yn-1.
• 2. if xm yn, then zk  xm implies Z is the LCS of Xm-1 and Yn.
• 3. if xm yn, then zk  yn implies Z is the LCS of Xm and Yn-1.

4
LCS DP –step 2:Recursive Solution
• What the theorem says:
• If xm= yn, find LCS of Xm-1 and Yn-1, then append xm.
• If xm  yn, find LCS of Xm-1 and Yn and LCS of Xm and Yn-1, take
which one is longer.
• Overlapping substructure:
• Both LCS of Xm-1 and Yn and LCS of Xm and Yn-1 will need to
solve LCS of Xm-1 and Yn-1.
• c[i,j] is the length of LCS of Xi and Yj .

c[i,j]= 0 if i=0, or j=0


c[i-1,j-1]+1 if i,j>0 and xi= yj,
max{c[i-1,j], c[i,j-1]} if i,j>0 and xi  yj,
5
LCS DP-- step 3:Computing the Length of LCS

• c[0..m,0..n], where c[i,j] is defined as above.


• c[m,n] is the answer (length of LCS).
• b[1..m,1..n], where b[i,j] points to the table entry
corresponding to the optimal subproblem solution
chosen when computing c[i,j].
• From b[m,n] backward to find the LCS.

6
LCS computation example

7
LCS DP Algorithm

8
LCS DP –step 4: Constructing LCS

You might also like