Pattern Matching Longest Common Subsequence Bill Robertson Zac
Pattern Matching Longest Common Subsequence Bill Robertson Zac Livingston John Garvin Bradley Wagner Nick Becker 09/30/03
Agenda • Introduction • Pattern Matching • String Matching • Dynamic Programming • Longest Common Subsequence • Application 1 • Application 2 • Application n • Future Areas of Interest 09/30/03
Introduction • Present real-world scenario or interesting application • Grab audience 09/30/03
Pattern Matching • Main objective • Issues to be solved • Basic overview 09/30/03
History • Timeline preferable • History of problems solved by pattern matching 09/30/03
Areas of Application • Application areas • Types of pattern matching 09/30/03
String Matching • History • Overview • Highlight various algorithms with respective applications • Mention LCS problem briefly but need background on dynamic programming in order to fully understand 09/30/03
Dynamic Programming • • Overview Motivation of Area Key requirements Alternatives (greedy algorithms) 09/30/03
Longest Common Subsequence • Algorithm intro • Analysis • Correctness? …proofs, etc. • Walk through pseudocode • Step through example 09/30/03
LCS algorithm, step one LCS(X=“All your base”, Y=“are belong to us”) 09/30/03
LCS algorithm, step one Len(Y) “A” + LCS(X=“ll your base”, Y=“re belong to us”) Len(X) LCS(X=“All your base”, Y=“are belong to us”) ‘A’=’a’ 09/30/03
LCS algorithm, step one Len(Y) LCS(X=“ll your base”, Y=“are belong to us”) max Len(X) LCS(X=“All your base”, Y=“re belong to us”) LCS(X=“All your base”, Y=“are belong to us”) ‘A’≠’a’ 09/30/03
LCS algorithm, step one Len(Y) “A” + LCS(“ll your base”, “re belong to us”) LCS(“ll your base”, “are belong to us”) LCS(“All your base”, “re belong to us”) LCS(X=“All your base”, Y=“are belong to us”) Len(X) 09/30/03
LCS algorithm--building table LCS-Length: len[0, length(X)] 0 len[length(Y), 0] 0 for i 1 to length(X): for j 1 to length(Y): if X[i] = Y[j]: len[i, j] len[i-1, j-1] dir[i, j] “ ” else if len[i-1, j] len[i, j-1]: len[i, j] len[i-1, j] dir[i, j] “ ” else: 09/30/03 len[i, j] len[i, j-1] dir[i, j] “ ” 0 0 0 1 1 0 0 0
LCS algorithm--finding length LCS-find: . . 0 0 0 1 1 0 09/30/03
Asymptotic complexity LCS-length: . . . O(? ) Total: O(mn) 09/30/03
Asymptotic complexity LCS-find: . . . O(? ). . . Total: O(m+n) 09/30/03
Correctness • Proof sketch 09/30/03
Applications • Application 1 • Application 2 • Application n • Bioinformatics – Sequence alignment – Secondary protein structure comparison/prediction – DNA microarrays (if we have time during presentation. would be good idea) • Relevance of work and how related to LCS 09/30/03
Future Areas of Interest • Current areas of research and possible directions for work • Future of field and extensions of algorithm • Theoretical lower bound of LCS 09/30/03
Conclusion • Summarize what the audience should have learned 09/30/03
Bibliography 09/30/03
- Slides: 22