Bài tập lớn Thiết kế và Phân tích Thuật toán

30 1K 2
Bài tập lớn Thiết kế và Phân tích Thuật toán

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Bài toán tìm xâu con chung dài nhất Chương 1. Giới thiệu “Tìm xâu con chung dài nhất bằng cây hậu tố” Chương 2. Cây hậu tố Để đảm bảo luôn dựng được cây hậu tố người ta thường thêm một kí tự đặc biệt vào cuối xâu S, gọi là kí tự kết thúc, để không có bất cứ hậu tố nào là tiền tố của hậu tố khác. Kí tự này phải không xuất hiện trong xâu ban đầu, người ta thường chọn một kí tự không có trong bảng chữ cái. Trong các tài liệu thường kí hiệu là .

Bài tập lớn Thiết kế và Phân tích Thuật toán Đề số 8: Bài toán tìm xâu con chung dài nhất Sinh viên : Lê Ngọc Minh Lớp : Khoa học máy tính Khoá : 52 SHSV : 20071946 Hà Nội, tháng 11/2010 Mục lục Chương 1. Giới thiệu 3 Chương 2. Cây hậu tố 4 2.1. Khái niệm 4 2.2. Biểu diễn cây hậu tố trong máy tính 5 2.3. Giải thuật dựng cây hậu tố Ukkonen 6 2.3.1. Cây hậu tố ngầm định (implicit suffix tree) 6 2.3.2. Dựng cây hậu tố ngầm định 7 2.3.3. Liên kết hậu tố (suffix link) 9 2.3.4. Tăng tốc thuật toán sử dụng liên kết hậu tố 9 2.3.5. Thuật toán dựng cây hậu tố ngầm định trong thời gian tuyến tính 12 2.3.6. Dựng cây hậu tố thực sự 13 Chương 3. Cây hậu tố tổng quát 14 3.1. Khái niệm 14 3.2. Biểu diễn cây hậu tố tổng quát trong máy tính 14 3.3. Dựng cây hậu tố tổng quát trong thời gian tuyến tính 15 Chương 4. Bài toán tìm xâu con chung dài nhất 16 4.1. Khái niệm 16 4.2. Tìm xâu con chung dài nhất của hai xâu 16 4.3. Tìm xâu con chung dài nhất của nhiều hơn hai xâu 16 4.3.1. Tính số C(v) 17 Chương 5. Chương trình thử nghiệm 18 5.1. Kết quả thử nghiệm 18 5.2. Hướng dẫn cài đặt chương trình 19 5.3. Hướng dẫn sử dụng chương trình 19 5.3.1. Trực quan hoá cây hậu tố 19 5.3.2. Tìm xâu con chung dài nhất của các xâu lớn 20 5.3.3. Sinh xâu lớn 21 5.4. Hướng dẫn biên dịch mã nguồn 21 5.5. Mã nguồn chương trình 27 Phụ lục A. Tài liệu tham khảo 28 Phụ lục B. Danh mục hình 29 Phụ lục C. Danh mục thuật ngữ 30 Chương 1. Giới thiệu “Tìm xâu con chung dài nhất bằng cây hậu tố” Chương 2. Cây hậu tố 2.1. Khái niệm Định nghĩa: Cây hậu tố T của chuỗi m kí tự S là cây có hướng, có gốc có các tính chất sau: • Các đường đi từ gốc đến lá tương ứng 1-1 với các hậu tố của S. • Mỗi nút trong, trừ nút gốc, có ít nhất là hai con. • Mỗi cạnh được gán nhãn là một xâu con khác rỗng của S. • Không có hai cạnh nào của cùng một nút có nhãn bắt đầu bằng cùng một kí tự Ví dụ, chuỗi xabxac có cây hậu tố như Hình 1. Đường đi từ gốc đến nút là 1 tương ứng với toàn bộ xâu còn đường đi từ gốc đến nút lá 5 cho ta xâu ac, bắt đầu ở vị trí 5 của xâu S. Định nghĩa của cây hậu tố không đảm báo một cây như vậy luôn tồn tại với mọi xâu S. Nếu một hậu tố của S lại là tiền tố của một hậu tố khác thì đường đi từ gốc đến nó sẽ không kết thúc bởi một nút lá. Ví dụ, nếu bỏ chữ c trong xâu S, hậu tố xa là tiền tố của hậu tố xabxa nên không có đường đi nào từ gốc đến lá tương ứng với xa. Để đảm bảo luôn dựng được cây hậu tố người ta thường thêm một kí tự đặc biệt vào cuối xâu S, gọi là kí tự kết thúc, để không có bất cứ hậu tố nào là tiền tố của hậu tố khác. Kí tự này phải không xuất hiện trong xâu ban đầu, người ta thường chọn một kí tự không có trong bảng chữ cái. Trong các tài liệu thường kí hiệu là $. Một số khái niệm liên quan đến cây hậu tố: • Nhãn của một đường đi bắt đầu từ gốc là xâu nhận được bằng cách ghép các xâu dọc theo đường đi theo thứ tự. • Nhãn đường đi của một nút là nhãn của đường đi bắt đầu từ gốc đến nút đó • Độ sâu chuỗi của một nút là độ dài nhãn đường đi của nút đó • Độ sâu nút (node-depth) của một nút là số nút trên đường đi từ gốc đến nút đó • Nhãn của một đường đi kết thúc ở giữa cạnh (u, v) chia nhãn của (u, v) tại một điểm được định nghĩa là nhãn của u ghép với các kí tự trong nhãn của (u, v) từ đầu đến điểm chia. Hình 1: Cây hậu tố của chuỗi xabxac Ví dụ trong Hình 1, nhãn của w là xa, nhãn của u là a và xâu xabx là nhãn của đường đi từ gốc đến giữa cạnh (w, 1). 2.2. Biểu diễn cây hậu tố trong máy tính Theo cách đơn giản nhất, mỗi cạnh của cây được gán nhãn đúng bằng một xâu con của S. Do tổng chiều dài tất cả các xâu con vào cỡ O(m 2 ) nên giới hạn dưới cho thời gian tính của thuật toán dựng cây cũng là O(m 2 ). Để giảm kích thước bộ nhớ và đạt được thời gian tính nhỏ hơn, ta biểu diễn cạnh của cây bằng chỉ số đầu và chỉ số cuối của nó trong xâu S. Như vậy mỗi cạnh chỉ cần hai số để gán nhãn và số cạnh tối đa là 2m-1 nên bộ nhớ yêu cầu là O(m). Hình 2: Cây bên trái là một phần của cây hậu tố cho chuỗi S=abcdefabcuvw với nhãn của cạnh được viết tường minh. Cây bên phải biểu diễn nhãn sử dụng hai chỉ số. Lưu ý rằng cạnh có nhãn 2,3 cũng có thể được gán nhãn 8,9 Để cho đơn giản, các hình vẽ và diễn giải sau đây vẫn coi như nhãn của cạnh là cả xâu con của chuỗi. 2.3. Giải thuật dựng cây hậu tố Ukkonen Báo cáo này sẽ tiếp cận giải thuật Ukkonen theo cách trước hết trình bày một giải thuật đơn giản, dễ hiểu nhưng kém hiệu quả sau đó sẽ tăng tốc dần bằng các quan sát bổ sung và các mẹo cài đặt. 2.3.1. Cây hậu tố ngầm định (implicit suffix tree) Định nghĩa: Cây hậu tố ngầm định của xâu S là cây nhận được từ cây hậu tố của S sau các bước xử lí: 1. Xoá tất cả các kí tự kết thúc $ trong các nhãn 2. Xoá các cạnh không có nhãn 3. Xoá các nút có ít hơn 2 con Ví dụ với chuỗi xabxa$ có cây hậu tố như Hình 3, nếu bỏ kí tự kết thúc $, xâu xabxa có một số hậu tố là tiền tố của hậu tố khác nên chúng ta cần xoá một số cạnh và nút để được cây hậu tố ngầm định như Hình 4. Xét trường hợp chuỗi xabxac, do kí tự c chỉ xuất hiện duy nhất một lần ở cuối xâu nên cây hậu tố ngầm định cũng là cây hậu tố. Giải thuật Ukkonen gồm hai bước: 1. Dựng cây hậu tố ngầm định của xâu S 2. Chuyển cây hậu tố ngầm định thành cây hậu tố thật sự Hình 3: Cây hậu tố cho chuỗi xabxa$ Hình 4: Cây hậu tố ngầm định cho xâu xabxa 2.3.2. Dựng cây hậu tố ngầm định Giải thuật chia làm m pha, mỗi bước ta cố gắng thêm một kí tự của xâu S vào cây. Gọi cây tại pha thứ i là I i , đầu tiên ta có cây I 1 với một cạnh duy nhất chứa S 1 . Pha i+1 được chia nhỏ thành i+1 bước mở rộng trong đó ta thêm kí tự S i+1 vào hậu tố S[j i] của xâu S[1 i]. Tại bước mở rộng j, xét đường đi từ gốc có nhãn β=S[j i] và thực hiện một trong ba luật mở rộng sau: 1. N u ế β là nhãn c a m t nútủ ộ lá: kí t Sự i+1 đ c thêm vào c nh n i v i nút lá đó.ượ ạ ố ớ 2. N u không có đ ng đi nào t ế ườ ừ β b t đ u b ng Sắ ầ ằ i+1 nh ng có ít nh t m t đ ng đi n i ti p ư ấ ộ ườ ố ế β: tr ng h p này ta c n thêm m t c nh có nhãn là Sườ ợ ầ ộ ạ i+1 , nếu β k t thúc gi a m t c nh thì m tế ở ữ ộ ạ ộ nút m i cũng c n đ c t o.ớ ầ ượ ạ 3. N u ế có đ ng ườ đi n i ti pố ế β b t đ u b ng ắ ầ ằ S i+1 : không làm gì và chuy n sang b c ti p theo.ế ướ ế T i b c m r ng i+1 c a pha i+1, ạ ướ ở ộ ủ β là xâu r ng, thu t toán đ n gi n thêm kí t Sỗ ậ ơ ả ự i+1 bên d i nútướ g c (tr khi nó đã đó).ố ừ ở Xét ví d trong ụ Hình 5 và Hình 6, b n h u t đ u tiên k t thúc nút lá nh ng h u t cu i cùng chố ậ ố ầ ế ở ư ậ ố ố ỉ g m kí t x k t thúc bên trong m t c nh. Khi thêm kí t th sáu b, b n h u t đ u tiên đ c m r ngồ ự ế ộ ạ ự ứ ố ậ ố ầ ượ ở ộ b ng lu t 1, h u t th năm s d ng lu t 2 và v i h u t th 6 là lu t 3.ằ ậ ậ ố ứ ử ụ ậ ớ ậ ố ứ ậ Hình 5: Cây hậu tố ngầm định cho xâu axabx trước khi kí tự thứ 6, b, được thêm Hình 6: Cây hậu tố ngầm định sau khi thêm kí tự b D th y r ng ta có th tìm đi m k t thúc c a m i h u t trong i+1 h u t c a xâu S[1 i] b ng cáchễ ấ ằ ể ể ế ủ ỗ ậ ố ậ ố ủ ằ duy t cây t g c v i chi phí th i gian là O(|ệ ừ ố ớ ờ β|). Sau khi đã tìm đ c đi m k t thúc c a h u t , thao tácượ ể ế ủ ậ ố m r ng ch c n th i gian h ng s .ở ộ ỉ ầ ờ ằ ố V i cách làm này, s phép toán c b n c n th c hi n là ớ ố ơ ả ầ ự ệ , do đó đ ph cộ ứ t p tính toán vào kho ng O(nạ ả 3 ). Rõ ràng thu t toán này không th c t vì có nh ng cách làm đ n gi nậ ự ế ữ ơ ả h n đ tìm xâu con chung dài nh t trong th i gian O(nơ ể ấ ờ 2 ) trong tr ng h p t i nh t. Chúng ta s xem xétườ ợ ồ ấ ẽ cách c i ti n gi i thu t trong các ph n sau.ả ế ả ậ ầ 2.3.3. Liên k t h u t (suffix link)ế ậ ố Định nghĩa: Gọi xα là một xâu bất kì, x là một kí tự và α là một xâu (có thể rỗng). Xét nút trong v có nhãn là xα, nếu có một nút khác s(v) có nhãn là α, một con trỏ từ v đến s(v) gọi là một liên kết hậu tố. Trong Hình 1 (trang 5), nút v có nhãn xa do đó s(v) là nút có nhãn a, tồn tại một liên kết từ v đến s(v). Trường hợp này α chỉ gồm một kí tự. Trường hợp đặc biệt khi α là xâu rỗng, liên kết được trỏ đến nút gốc. Nút gốc không được coi là nút trong và không có liên kết hậu tố nào bắt đầu từ nó. Bổ đề: Nếu một nút trong mới v có nhãn xα được thêm trong lần mở rộng thứ j của pha i+1 thì hoặc một đường đi có nhãn α đã tồn tại trong cây hoặc một nút trong mới có nhãn α sẽ được thêm trong lần mở rộng tiếp theo, j+1 của cùng pha i+1. CHỨNG MINH: Nút trong mới được tạo ra chỉ khi trường hợp mở rộng thứ hai xảy ra, nghĩa là đường đi có nhãn xα tiếp nối bởi một kí tự khác kí tự S i+1 , ta gọi kí tự đó là c. Ở bước mở rộng thứ j+1, ta cố gắng thêm xâu αS i+1 vào cây, rõ ràng đường đi có nhãn α đã tồn tại và tiếp nối bởi kí tự c. Có hai trường hợp xảy ra: • Nếu đường đi có nhãn α chỉ được tiếp nối bằng kí tự c mà không phải kí tự nào khác hay nói cách khác chỉ tồn tại đường đi αc mà không tồn tại đường đi αd với mọi d khác c. Luật mở rộng thứ hai được áp dụng và tạo ra nút s(v) có nhãn α. • Nếu đường đi có nhãn α còn hai hoặc nhiều hơn kí tự tiếp nối, chẳng hạn αc, αd, chắc chắn đã tồn tại nút có nhãn α. Vậy, bổ đề được chứng minh. Hệ quả: Trong giải thuật Ukkonen, mỗi nút trong mới được tạo ra sẽ có một liên kết hậu tố khi pha tiếp theo kết thúc. CHỨNG MINH: Định lí được chứng minh bằng quy nạp. • Cây đầu tiên, I 1 , thoả mãn định lí vì không chứa nút trong nào. • Giả sử định lí đúng với cây I i , ta cần chứng minh nó vẫn đúng với cây I i+1 . • Theo bổ đề trên, nếu một nút trong v được tạo ra trong bước mở rộng j, nút s(v) của nó sẽ được tạo ra hoặc tìm thấy trong bước mở rộng j+1. Bước mở rộng cuối cùng thêm xâu chỉ gồm kí tự S i+1 nên không tạo ra nút trong mới nào. Vậy, hệ quả được chứng minh. Ta thấy khi xây dựng xong cây I i+1 , mọi nút trong của nó đều có liên kết hậu tố, ta có hệ quả tiếp theo. Hệ quả: Với mọi cây hậu tố ngầm định I i , nếu một nút trong có nhãn xα thì có một nút khác của cây I i có nhãn α. Dựa vào liên kết hậu tố, ta có thể tăng tốc thuật toán để đạt được độ phức tạp tính toán thực tế hơn. 2.3.4. Tăng tốc thuật toán sử dụng liên kết hậu tố Trong giải thuật đầu tiên, tại pha i+1, bước mở rộng j ta cần tìm đường đi β có nhãn S[j i] mất thời gian O(|β|). Liên kết hậu tố có thể được sử dụng để giảm độ phức tạp của bước này xuống hằng số. Đường đi có nhãn S[1 i] chắc chắn phải kết thúc ở lá vì nó là đường đi dài nhất trong cây I i . Khi xây dựng cây I i ta lưu lại nút lá tương ứng với toàn bộ xâu đang xét S[1 i]. Bước bổ sung đầu tiên của pha i+1 lấy nút lá này và áp dụng luật bổ sung thứ nhất do đó chỉ cần thời gian hằng số. Đặt S[1 i] = xα và (v, 1) là cạnh đến nút lá, nhãn của cạnh là γ, bước mở rộng tiếp theo thuật toán cần tìm đường đi có nhãn là S[2 i] = α. Nếu v là nút gốc, ta duyệt cây từ gốc theo thuật toán trước. Nếu v không phải nút gốc thì có một liên kết hậu tố từ v đến nút s(v), ta bắt đầu duyệt cây từ nút s(v). Đường đi từ vị trí hiện tại có nhãn γ là đường đi từ gốc có nhãn α. Tại bước mở rộng thứ j với j > 2 ta cũng làm tương tự. Khác biệt duy nhất là nếu xâu S[j-1 i] là nhãn của một nút trong, khi đó ta theo liên kết hậu tố của nút này. Kể cả khi xâu S[j-1 i] kết thúc ở một nút lá thì nút cha của nó hoặc là một nút trong (do đó có liên kết hậu tố) hoặc là nút gốc. Vậy ta không bao giờ phải đi ngược lên quá một cạnh. Hình 7: Bước mở rộng j>1 trong pha i. Đi lên tối đa là một cạnh từ cuối đường đi S[j-1 i] đến nút v sau đó theo liên kết hậu tố đến s(v), đi xuống theo đường đi có nhãn γ rồi áp dụng luật bổ sung phù hợp để thêm hậu tố S[j i+1]. Việc tìm đường đi có nhãn γ theo cách thông thường cần thời gian O(|γ|), do đường đi nhãn γ chắc chắn tồn tại và không có hai cạnh nào cũng xuất phát từ một đỉnh có nhãn bắt đầu bằng cùng một kí tự nên ta có thể dựa vào kí tự đầu của nhãn và độ dài của cạnh để tìm ra điểm kết thúc của đường đi trong thời gian tỉ lệ với số nút trên đường đi. Định lí: Gọi (v, s(v)) là một liên kết hậu tố, độ sâu nút của v tối đa là lớn hơn độ sâu nút của s(v) một đơn vị. CHỨNG MINH: Với mỗi nút tổ tiên trong của v có nhãn xβ đều có liên kết hậu tố đến nút có nhãn β. Tuy nhiên xβ là xâu con của nhãn của v nên β là xâu con của nhãn của s(v) hay nói cách khác tổ tiên [...]... gian thực hiện của thuật toán là O(m) Hình 9: Hình ảnh quá trình thực hiện của thuật toán Mỗi dòng là một giai đoạn trong thuật toán, mỗi số là một bước mở rộng tường minh được thực hiện 2.3.6 Dựng cây hậu tố thực sự Cây hậu tố ngầm định cuối cùng Im có thể được chuyển thành cây hậu tố thực sự trong thời gian O(m) Ta chỉ việc thêm kí tự $ vào cuối xâu S và thực hiện thuật toán, kết quả là một cây... tính vào độ dài xâu Hình 12: Đồ thị thời gian dựng cây hậu tố phụ thuộc vào kích thước xâu Kích thước tính theo đơn vị 4Kb, thời gian tính theo giây Hình 13 cho thấy thời gian giải bài toán k-xâu con chung lần lượt với 2, 3, 4, 5 xâu có độ dài bằng nhau Đồ thị thể hiện rất rõ sự phụ thuộc tuyến tính của thuật toán vào tích của số xâu và độ dài xâu Chương trình thử nghiệm được cài đặt bằng ngôn ngữ C, chạy... 11 Hình 9: Hình ảnh quá trình thực hiện của thuật toán Mỗi dòng là một giai đoạn trong thuật toán, mỗi số là một bước mở rộng tường minh được thực hiện .13 Hình 10: Cây hậu tố cùng với các liên kết hậu tố cho hai chuỗi xabxa và abxbx 14 Hình 11: Cây hậu tố tổng quát cho hai xâu xabxa và abxbx cùng với các liên kết hậu tố trong bộ nhớ (các chỉ số bắt đầu từ 0) ... viện và phần mềm: • GTK+ (http://www.gtk.org/, GNU LGPL 2.1) • GraphViz (http://www.graphviz.org/, Common Public License) Mã nguồn chương trình sẽ được tải lên Google Code (http://code.google.com/p/cs-suffix-tree/) dưới giấy phép GNU GPL v3 Phụ lục A Tài liệu tham khảo [1] Dan Gusfield, Algorithms on Strings, Trees and Sequences, 1997 [2] Thầy Nguyễn Đức Nghĩa, Slide môn học Thiết kế và phân tích thuật. .. kết thúc và tạo ra nút mới v Tạo nút con của v nối với nó bằng cạnh Sk[i+1] Sau khi thực hiện xong bước trên bước mở rộng đầu tiên của giai đoạn i+1 đã hoàn thành, ta có thể đi theo nút cha của v, theo liên kết hậu tố v.v để thực hiện các bước mở rộng tiếp theo Lưu ý rằng trong trường hợp thứ 2 ta cũng cần đảm bảo liên kết hậu tố của v sẽ được thiết lập trong bước mở rộng tiếp theo Chương 4 Bài toán. .. sand 3 3 and 4 3 and 5 2 an Tồn tại thuật giải cho bài toán tìm tất cả các giá trị l(k) cùng với các xâu con tương ứng trong thời gian tuyến tính O(N) [7] Thật đáng ngạc nhiên là một lượng lớn thông tin như vậy lại có thể được trích ra trong thời gian chỉ tỉ lệ thuận với thời gian đọc xâu Tuy nhiên đây là một giải thuật phức tạp, tài liệu này chỉ xin trình bày giải thuật có độ phức tạp thời gian O(KN)... Đến đây hiệu quả của thuật toán đã được cải thiện đáng kể tuy nhiên ta vẫn có thể  giảm độ  phức   tạp tính toán xuống thời gian hằng số bằng một vài nhận xét nhỏ 2.3.5.  Thuật toán dựng cây hậu tố ngầm định trong thời gian tuyến tính Nhận xét 1: Luật mở rộng số 3 kết thúc mỗi pha CHỨNG MINH: Nếu luật số 3 được áp dụng nghĩa là đường đi có nhãn S[j i] chắc chắn được nối tiếp   bằng kí tự Si+1 nên  tất cả các đường đi có nhãn S[k i] với k > j cũng vậy và luật thứ 3 tiếp tục được áp...của v có liên kết hậu tố đến một tổ tiên của s(v) Mỗi tổ tiên của v có nhãn đường đi khác nhau (do nhãn trên các cạnh là xâu khác rỗng) nên các tổ tiên của s(v) được liên kết hậu tố trỏ đến cũng khác nhau Ta có một đơn ánh giữa tập các xâu trên đường đi từ gốc đến v (lực lượng của tập này là độ sâu nút của v) trừ nút gốc và tập các xâu trên đường đi từ gốc đến s(v) (lực... của một pha là m. Cộng với mỗi lần đi theo liên kết hậu tố độ sâu nút giảm tối đa là một nên tổng số lần  giảm độ sâu nút là 2m. Độ sâu của nút hiện tại không thể quá m nên tổng cộng số bước đi xuống trong   cả pha không quá 3m. Vậy thời gian tính toán của mỗi pha là O(m) Tổng cộng có m pha nên ta có ngay bổ đề tiếp theo: Bổ đề: Thuật toán Ukkonen có thể được thực hiện trong thời gian O(m2) Đến đây hiệu quả của thuật toán đã được cải thiện đáng kể tuy nhiên ta vẫn có thể... hiệu quả thuật toán: thay vì cập nhật nhãn của các nút lá một cách tường minh, ta gán nhãn cho các nút lá (lưu ý rằng trong cài đặt nhãn của nút lá là một cặp số nguyên) là (p, m) Trong đó p là vị trí bắt đầu của xâu con và m là độ dài xâu S, thay thế cho vị trí cuối xâu đang xét Như vậy trong pha i+1 ta không cần thực hiện ji bước mở rộng tường minh đầu tiên Định lí: Sử dụng liên kết hậu tố và các nhận

Ngày đăng: 12/07/2014, 15:20

Từ khóa liên quan

Mục lục

  • Chương 1. Giới thiệu

  • Chương 2. Cây hậu tố

    • 2.1. Khái niệm

    • 2.2. Biểu diễn cây hậu tố trong máy tính

    • 2.3. Giải thuật dựng cây hậu tố Ukkonen

      • 2.3.1. Cây hậu tố ngầm định (implicit suffix tree)

      • 2.3.2. Dựng cây hậu tố ngầm định

      • 2.3.3. Liên kết hậu tố (suffix link)

      • 2.3.4. Tăng tốc thuật toán sử dụng liên kết hậu tố

      • 2.3.5. Thuật toán dựng cây hậu tố ngầm định trong thời gian tuyến tính

      • 2.3.6. Dựng cây hậu tố thực sự

      • Chương 3. Cây hậu tố tổng quát

        • 3.1. Khái niệm

        • 3.2. Biểu diễn cây hậu tố tổng quát trong máy tính

        • 3.3. Dựng cây hậu tố tổng quát trong thời gian tuyến tính

        • Chương 4. Bài toán tìm xâu con chung dài nhất

          • 4.1. Khái niệm

          • 4.2. Tìm xâu con chung dài nhất của hai xâu

          • 4.3. Tìm xâu con chung dài nhất của nhiều hơn hai xâu

            • 4.3.1. Tính số C(v)

            • Chương 5. Chương trình thử nghiệm

              • 5.1. Kết quả thử nghiệm

              • 5.2. Hướng dẫn cài đặt chương trình

              • 5.3. Hướng dẫn sử dụng chương trình

                • 5.3.1. Trực quan hoá cây hậu tố

                • 5.3.2. Tìm xâu con chung dài nhất của các xâu lớn

                • 5.3.3. Sinh xâu lớn

Tài liệu cùng người dùng

Tài liệu liên quan