220 likes | 466 Views
Pattern Matching Longest Common Subsequence. Bill Robertson Zac Livingston John Garvin Bradley Wagner Nick Becker. Agenda. Introduction Pattern Matching String Matching Dynamic Programming Longest Common Subsequence Application 1 Application 2 Application n Future Areas of Interest.
E N D
Pattern MatchingLongest Common Subsequence Bill Robertson Zac Livingston John Garvin Bradley Wagner Nick Becker
Agenda • Introduction • Pattern Matching • String Matching • Dynamic Programming • Longest Common Subsequence • Application 1 • Application 2 • Application n • Future Areas of Interest
Introduction • Present real-world scenario or interesting application • Grab audience
Pattern Matching • Main objective • Issues to be solved • Basic overview
History • Timeline preferable • History of problems solved by pattern matching
Areas of Application • Application areas • Types of pattern matching
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
Dynamic Programming • Overview • Motivation of Area • Key requirements • Alternatives (greedy algorithms)
Longest Common Subsequence • Algorithm intro • Analysis • Correctness? …proofs, etc. • Walk through pseudocode • Step through example
LCS algorithm, step one LCS(X=“All your base”, Y=“are belong to us”)
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’
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’
LCS algorithm, step one Len(Y) LCS(“ll your base”, “are belong to us”) “A” + LCS(“ll your base”, “re belong to us”) Len(X) LCS(X=“All your base”, Y=“are belong to us”) LCS(“All your base”, “re belong to us”)
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: len[i,j] len[i,j-1] dir[i,j] “” 0 0 0 0 0 0 1 1 1 1 0 0 0
LCS algorithm--finding length LCS-find: ... ... ... 0 0 0 0 0 0 1 1 1 1 0 0 0
Asymptotic complexity LCS-length: ... O(?) ... O(?) ... O(?) Total: O(mn)
Asymptotic complexity LCS-find: ... O(?) ... O(?) ... Total: O(m+n)
Correctness • Proof sketch
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
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
Conclusion • Summarize what the audience should have learned