# Lecture19 - γ xy if character x is matched to character y...

This preview shows pages 1–12. Sign up to view the full content.

CSE 421 Algorithms Richard Anderson Lecture 19 Longest Common Subsequence

This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document
Longest Common Subsequence C=c 1 …c g is a subsequence of A=a 1 …a m if C can be obtained by removing elements from A (but retaining order) LCS(A, B): A maximum length sequence that is a subsequence of both A and B ocurranec occurrence attacggct tacgacca
Determine the LCS of the following strings BARTHOLEMEWSIMPSON KRUSTYTHECLOWN

This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document
String Alignment Problem Align sequences with gaps Charge δ x if character x is unmatched • Charge γ xy if character x is matched to character y CAT TGA   AT CAGAT AGGA Note: the problem is often expressed as a minimization problem, with γ xx = 0 and δ x > 0
LCS Optimization A = a 1 a 2 …a m • B = b 1 b 2 …b n Opt[ j, k] is the length of LCS(a 1 a 2 a j , b 1 b 2 …b k )

This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document
Optimization recurrence If a j = b k , Opt[ j,k ] = 1 + Opt[ j-1, k-1 ] If a j != b k , Opt[ j,k] = max(Opt[ j-1,k], Opt[ j,k-1])
Give the Optimization Recurrence for the String Alignment Problem Charge δ x if character x is unmatched • Charge

This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document

This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document

This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: γ xy if character x is matched to character y xy x y Opt[ j, k] = Let a j = x and b k = y Express as minimization Dynamic Programming Computation Code to compute Opt[j,k] Storing the path information A[1. .m], B[1. .n] for i := 1 to m Opt[i, 0] := 0; for j := 1 to n Opt[0,j] := 0; Opt[0,0] := 0; for i := 1 to m for j := 1 to n if A[i] = B[j] { Opt[i,j] := 1 + Opt[i-1,j-1]; Best[i,j] := Diag; } else if Opt[i-1, j] >= Opt[i, j-1] { Opt[i, j] := Opt[i-1, j], Best[i,j] := Left; } else { Opt[i, j] := Opt[i, j-1], Best[i,j] := Down; } a 1 …a m b 1 …b n How good is this algorithm? • Is it feasible to compute the LCS of two strings of length 100,000 on a standard desktop PC? Why or why not. Observations about the Algorithm • The computation can be done in O(m+n) space if we only need one column of the Opt values or Best Values • The algorithm can be run from either end of the strings...
View Full Document

## This note was uploaded on 02/25/2012 for the course CSE 421 taught by Professor Richardanderson during the Fall '06 term at University of Washington.

### Page1 / 12

Lecture19 - γ xy if character x is matched to character y...

This preview shows document pages 1 - 12. Sign up to view the full document.

View Full Document
Ask a homework question - tutors are online