09/30/03
Pattern MatchingLongest Common SubsequenceBill RobertsonZac LivingstonJohn GarvinBradley WagnerNick 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
LCS(X=“All your base”, Y=“are belong to us”)
“A” + LCS(X=“ll your base”, Y=“re belong to us”)
‘A’=’a’
Len(Y)
Len(X)
09/30/03
LCS algorithm, step one
LCS(X=“All your base”, Y=“are belong to us”)
LCS(X=“ll your base”, Y=“are belong to us”)
LCS(X=“All your base”, Y=“re belong to us”)
max
‘A’≠’a’
Len(Y)
Len(X)
09/30/03
LCS algorithm, step one
LCS(X=“All your base”, Y=“are belong to us”)
“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”)
Len(Y)
Len(X)
09/30/03
LCS algorithm--building table
LCS-Length:
len[0,length(X)] 0len[length(Y),0] 0for 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
0
0
0 1 1 1 1
09/30/03
LCS algorithm--finding length
LCS-find:.........
0 0 0 0 0
0
0
0
0 1 1 1 1
09/30/03
Asymptotic complexity
LCS-length:... O(?)... O(?)... O(?)
Total: O(mn)
09/30/03
Asymptotic complexity
LCS-find:... O(?)... 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
Top Related