LCS Problem

  • 1,097 views
Uploaded on

Longest common subsequence

Longest common subsequence

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,097
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
39
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. TÌM CHUỖI CON CHUNG DÀI NHẤT Hoang V.Nguyen
  • 2. Nội dung  Đặc tả bài toán  Đánh giá các giải pháp  Giải pháp đề xuất  Demo  Tài liệu tham khảo  Thảo luậnHoang V.Nguyen 7/1/2010 2
  • 3. Đặc tả bài toán  Khái niệm chuỗi con: Cho chuỗi X=x1x2x3 …xn. S là chuỗi thu được từ X bằng cách bỏ đi một vài ký tự trong X được gọi là chuỗi con của X.  Ví dụ: X= computer science. S= co u r s e => course Trình tự các ký tự được đảm bảo không thay đổiHoang V.Nguyen 7/1/2010 3
  • 4. Đặc tả bài toán Cho X={x1, x2, x3, …, xn} là tập các chuỗi.  Khái niệm chuỗi con chung: CS là chuỗi con chung của các chuỗi trong X nếu CS là chuỗi con của tất các các chuỗi trong X.  LCS là chuỗi con chung dài nhất của các chuỗi trong X nếu:  LCS là chuỗi con chung của các chuỗi trong X.  Và LCS có chiều dài lớn nhất.Hoang V.Nguyen 7/1/2010 4
  • 5. Đặc tả bài toán Bài toán: Tìm chuỗi con chung dài nhất  Input: Tập các chuỗi X={x1, x2, x3, …, xn}.  Output:  Liệt kê tất cả(1) LCS của các chuỗi trong X.  Xác định chiều dài của LCS. ==> Edit Distance.Hoang V.Nguyen 7/1/2010 5
  • 6. Đánh giá các giải pháp Giải pháp 1 - Vét cạn(Bruteforce)  Ý tưởng: Với mỗi chuỗi con của xâu x1 đem kiểm tra với tất cả các xâu còn lại. |X |  Độ phức tạp thời gian: O(2 n1 n ) i 2 i Không có giá trị trong thực hành!Hoang V.Nguyen 7/1/2010 6
  • 7. Đánh giá các giải pháp Giải pháp 2 – Quy hoạch động  Ý tưởng: dựa trên quan hệ đệ quy  Chỉ áp dụng được khi |X| là hằng số: N. N  Độ phức tạp thời gian và không gian: O( n ) i 1 i Chỉ có ý nghĩa với N nhỏ(N=2)Hoang V.Nguyen 7/1/2010 7
  • 8. Đánh giá các giải pháp Giải pháp 2 – Quy hoạch động - C A C A G T A G - 0 0 0 0 0 0 0 0 0 L<i-1,j-1> L<i-1,j> A 0 0 1 1 1 1 1 1 1 G 0 0 1 1 1 2 2 2 2 C 0 1 1 2 2 2 2 2 2 L<i,j-1> L<i,j> T 0 1 1 2 2 2 3 3 3 G 0 1 1 2 2 3 3 3 4 Có tính chất cục bộ A 0 1 2 2 3 3 3 4 4 C 0 1 2 3 3 3 3 4 4 G 0 1 2 3 3 4 4 4 5 O(2m) để tính chiều dài của LCSHoang V.Nguyen 7/1/2010 8
  • 9. Đánh giá các giải pháp Giải pháp 2 – Quy hoạch động - C A C A G T A G Có một phép phân - 0 0 0 0 0 0 0 0 0 hoạch dựa trên độ A 0 0 1 1 1 1 1 1 1 dài của dãy con chung dài nhất. G 0 0 1 1 1 2 2 2 2 C 0 1 1 2 2 2 2 2 2 Dãy con chung là T 0 1 1 2 2 2 3 3 3 một dãy “tăng dần” các điểm “match”. G 0 1 1 2 2 3 3 3 4 A 0 1 2 2 3 3 3 4 4 Trong số các điểm C 0 1 2 3 3 3 3 4 4 match chỉ một vài điểm là quan trọng. G 0 1 2 3 3 4 4 4 5 => Giảm một phần độ phức tạp không gian và thời gianHoang V.Nguyen 7/1/2010 9
  • 10. Đánh giá các giải pháp Luật xác định các match quan trọng: - C A C A G T A G <i,j> là một k-match - 0 0 0 0 0 0 0 0 0 quan trọng nếu j là A 0 0 1 1 1 1 1 1 1 giá trị nhỏ nhất thỏa a[i]=b[j] và chỉ nếu G 0 0 1 1 1 2 2 2 2 low<j<high với: C 0 1 1 2 2 2 2 2 2 +) high = min j T 0 1 1 2 2 2 3 3 3 của <i’,j’> k-match. +) low=min j của G 0 1 1 2 2 3 3 3 4 <i’,j’> (k-1)-match. A 0 1 2 2 3 3 3 4 4 Với i’<i. C 0 1 2 3 3 3 3 4 4 G 0 1 2 3 3 4 4 4 5Hoang V.Nguyen 7/1/2010 10
  • 11. Giải pháp đề xuất  Ý tưởng:  Chỉcó những ký hiệu “match” là thuộc LCS.  Sử dụng tiếp cận tham lam: lấy tối ưu cục bộ. A G C T G A C G A G C T G A C G C A C A G T A C A C A G T AHoang V.Nguyen 7/1/2010 11
  • 12. Giải pháp đề xuất  Thuật toán:  Tiềnxử lý => tạo danh sách các vị trí trong xâu thứ 2.  Vét xâu thứ nhất để xây dựng lcs.  Độ phức tạp thuật toán: O(nlogs) time và O(n) space.Hoang V.Nguyen 7/1/2010 12
  • 13. DemoHoang V.Nguyen 7/1/2010 13
  • 14. Tài liệu tham khảo 1. L. Bergroth, et all A Survey of Longest Common Subsequence Algorithms IEEE 2000 2. D.S. Hirschberg Algorithms for the Longest Common Subsequence Problem ACM 1977 3. D.S. Hirschberg A Linear Space Algorithm for Computing Maximal Common Subsequences ACM 1975 4. Wagner & Fischer The String-to-String Correction Problem ACM1974Hoang V.Nguyen 7/1/2010 14
  • 15. Thảo luậnHoang V.Nguyen 7/1/2010 15