✨Bài toán xâu con chung dài nhất

Bài toán xâu con chung dài nhất

Đây là bài toán tìm một xâu (string) hoặc nhiều xâu là xâu con của hai hoặc nhiều xâu. Không nên nhầm lẫn giữa bài toán này với Bài toán chuỗi con chung dài nhất.

Ví dụ

Xâu con dài nhất của "ABAB", "BABA" và "ABBA" là các xâu "AB" và "BA" với độ dài bằng 2. Các xâu con khác (có độ dài ngắn hơn là "A" và "B").

ABAB ||| BABA || ABAA

Định nghĩa bài toán

  • Định nghĩa: Cho hai xâu S độ dài m và xâu T độ dài n, tìm xâu có độ dài lớn nhất là xâu con của cả hai xâu S và T.
  • Tổng quát hóa bài toán này là bài toán tìm xâu con k-chung (k-common substring problem): Cho một tập xâu S = {S_1,..., S_K}, trong đó |S_i|=n_i và Σn_i = N. Với mỗi giá trị k thỏa mãn 2 ≤ kK, tìm các xâu con chung dài nhất của ít nhất k xâu.

Thuật toán

Có thể tìm độ dài và vị trí bắt đầu của các xâu con dài nhất của S và T trong \Theta(n+m) bằng cách sử dụng Cây hậu tố khái quát (Generalized suffix tree). Ngoài ra cũng có thể giải quyết bài toán theo phương pháp Quy hoạch động với độ phức tạp \Theta(nm).

Độ phức tạp của bài toán tổng quát tương ứng là \Theta(n_1 +... + n_K)\Theta(n_1·...·n_K).

Cây hậu tố

phải|[[Cây hậu tố tổng quát cho các xâu "ABAB", "BABA" và "ABBA", được đánh số tương ứng 0, 1 và 2.]]

Quy hoạch động

Có thể tìm các hậu tố (suffix) dài nhất của các tiền tố (prefix) của các xâu. Hậu tố dài nhất được định nghĩa:

\mathit{LCSuff}(S_{1..p}, T_{1..q}) = \begin{cases} \mathit{LCSuff}(S_{1..p-1}, T_{1..q-1}) + 1 & \mathrm{if} \; S[p] = T[q] \\ 0 & \mathrm{otherwise} \end{cases}

Ví dụ với hai xâu "ABAB" và "BABA":

Hậu tố dài nhất của các tiền tố có thể của các xâu ST chính là xâu con dài nhất của chúng. Các xâu con này được đánh dấu theo đường chéo, màu đỏ trong bảng. Ví dụ: các xâu con dài nhất là "BAB" và "ABA":

\mathit{LCSubstr}(S, T) = \max_{1 \leq i \leq m, 1 \leq j \leq n} \mathit{LCSuff}(S_{1..i}, T_{1..j}) \;

Có thể mở rộng phương pháp này để tìm xâu con dài nhất của nhiều xâu hơn nữa bằng cách đưa thêm 1 chiều vào bảng cho mỗi xâu mới.

Mã giả

function LCSubstr(S[1..m], T[1..n]) L:= array(0..m, 0..n) z:= 0 ret:= {} for i:= 1..m for j:= 1..n if S[i] = T[j] if i = 1 or j = 1 L[i,j]:= 1 else L[i,j]:= L[i-1,j-1] + 1 if L[i,j] > z z:= L[i,j] ret:= {} if L[i,j] = z ret:= ret ∪ {S[i-z+1..i]} return ret Thuật toán dùng quy hoạch động có độ phức tạp là O(m n).

👁️ 0 | 🔗 | 💖 | ✨ | 🌍 | ⌚
nhỏ|So sánh hai bản sửa đổi của một tệp ví dụ, dựa trên dãy con chung dài nhất của chúng (màu đen) **Vấn đề chuỗi con chung dài nhất** **(tiếng anh:** **Longest common subsequence -
Đây là bài toán tìm một xâu (string) hoặc nhiều xâu là xâu con của hai hoặc nhiều xâu. Không nên nhầm lẫn giữa bài toán này với Bài toán chuỗi con chung dài nhất.
Bài viết này là **danh sách các thuật toán** cùng một mô tả ngắn cho mỗi thuật toán. ## Thuật toán tổ hợp ### Thuật toán tổ hợp tổng quát * Thuật toán Brent: tìm
nhỏ|Nếu người bán hàng xuất phát từ điểm A, và nếu khoảng cách giữa hai điểm bất kì được biết thì đâu là đường đi ngắn nhất mà người bán hàng có thể thực hiện
**Tuyên bố chung Chính phủ nước Cộng hòa Nhân dân Trung Hoa và Chính phủ nước Nhật Bản** (, ), gọi tắt là **Tuyên bố chung Trung-Nhật**, được chính phủ hai bên ký kết khi
**Lý thuyết độ phức tạp tính toán** (tiếng Anh: _computational complexity theory_) là một nhánh của lý thuyết tính toán trong lý thuyết khoa học máy tính và toán học tập trung vào phân loại
phải|Cây hậu tố cho xâu BANANA. Mỗi xâu con được kết thúc bởi ký tự đặc biệt $. Sáu đường từ gốc đến lá (ký hiệu bởi ô vuông) tương ứng với sáu hậu tố
Trong khoa học máy tính, **thuật toán dòng dữ liệu** là thuật toán để xử lý các dòng dữ liệu trong đó dữ liệu vào được cung cấp dưới dạng một dãy các phần tử,
**Biểu tình bài Nhật tại Trung Quốc năm 2012** là một loạt các cuộc biểu tình bài Nhật Bản được tổ chức ở các thành phố lớn tại Trung Quốc và Đài Loan trong khoảng
**Tranh chấp đất đai tại Đồng Tâm**, được biết đến trên các phương tiện thông tin đại chúng từ năm 2017 là vụ việc tranh chấp đất đai giữa một số người và chính phủ
**_Lâu đài bay của pháp sư Howl_** (tiếng Nhật: ハウルの動く城, Hepburn: _Hauru no Ugoku Shiro_, tiếng Anh: **_Howl's Moving Castle_**), hay **_Lâu đài di động của Howl_**, là một bộ phim điện ảnh hoạt hình
"**Born This Way**" (tạm dịch: _Sinh ra như thế_) là một ca khúc chủ đề và cũng là đĩa đơn đầu tiên trích từ album phòng thu thứ hai cùng tên của nữ ca sĩ
**Omaha**, hay **Bãi Omaha**, là định danh của một trong năm khu vực đổ bộ của quân đội Đồng Minh trong Chiến dịch Neptune - chiến dịch đổ bộ đường biển kết hợp đường không
**Chiến tranh thế giới thứ nhất**, còn được gọi là **Đại chiến thế giới lần thứ nhất**, **Đệ nhất Thế chiến** hay **Thế chiến I**, là một cuộc chiến tranh thế giới bắt nguồn tại
**Nhiễm toan ceton do đái tháo đường** là một trong các cấp cứu nội tiết thường gặp nhất. Ba bất thường sinh học, kết hợp chặt chẽ với nhau được thấy chỉ riêng trong tình
nhỏ| Để tìm kiếm một mục đã cho trong một danh sách theo thứ tự nhất định, có thể sử dụng cả thuật toán [[Tìm kiếm tuần tự|tìm kiếm nhị phân và tuyến tính (bỏ
**Côn trùng** hay còn gọi là **sâu bọ**, là một lớp sinh vật thuộc về ngành động vật không xương sống, chúng có bộ xương ngoài làm bằng kitin. Cơ thể chúng có ba phần
là một ngôn ngữ Đông Á được hơn 125 triệu người sử dụng ở Nhật Bản và những cộng đồng dân di cư Nhật Bản khắp thế giới. Tại Việt Nam nó cũng là một
là một lá cờ hình chữ nhật có nền trắng với một hình tròn màu đỏ lớn (tượng trưng cho mặt trời) nằm ở chính giữa. Trong tiếng Nhật, quốc kỳ được gọi là ,
**Nhật thực** () xảy ra khi Mặt Trăng đi qua giữa Trái Đất và Mặt Trời trên cùng một đường thẳng và quan sát từ Trái Đất, lúc đó Mặt Trăng che khuất hoàn toàn
**Đài Truyền hình Việt Nam** (VTV) là đài truyền hình quốc gia trực thuộc Chính phủ Việt Nam. Trong lịch sử hoạt động của mình, VTV từng vướng phải không ít những sự việc, thậm
Nagorno-Karabakh hiện tại là một nước Cộng hòa độc lập trên thực tế, nhưng trên lý thuyết vẫn là một phần của Cộng hòa Azerbaijan. Cuộc **chiến tranh Nagorno-Karabakh** là cuộc xung đột vũ trang
"**Paparazzi**" (tạm dịch: "_Thợ săn ảnh_") là một bài hát của nữ ca sĩ người Mỹ Lady Gaga thuộc album phòng thu đầu tay của cô, _The Fame_ (2008). Bài hát do hãng đĩa Interscope
**Dọn dẹp bãi biển** hay **làm sạch bãi biển** là một quá trình loại bỏ rác thải rắn, hóa chất và các loại rác hữu cơ lắng đọng trên bãi biển hoặc bờ biển do
Trong toán học, **dãy** là một họ có thứ tự các đối tượng toán học và cho phép lặp lại các phần tử trong đó. Giống như tập hợp, nó chứa các phần tử (hay
**Kim Il-sung** (, truyền thông Việt Nam gọi ông bằng tên Hán-Việt phổ biến hơn tên gốc tiếng Triều Tiên), tên khai sinh là **Kim Song-ju** (, 15 tháng 4 năm 1912 – 8 tháng
thumb|Bản vẽ của một nghệ sĩ về một [[tiểu hành tinh cách nhau vài km va chạm vào Trái Đất. Một tác động như vậy có thể giải phóng năng lượng tương đương với vài
Núi Phú Sĩ (_Fujisan_ 富士山) Nhật Bản là một đảo quốc bao gồm một quần đảo địa tầng trải dọc tây Thái Bình Dương ở Đông Bắc Á, với các đảo chính bao gồm Honshu,
**Sword**, hay **Bãi Sword**, là định danh của một trong năm khu vực đổ bộ của quân Đồng Minh trong Chiến dịch Neptune, mật danh của chiến dịch đổ bộ trong giai đoạn đầu của
**Kinh tế Nhật Bản** là một nền kinh tế thị trường tự do phát triển. Nhật Bản là nền kinh tế lớn thứ ba thế giới theo GDP danh nghĩa và lớn thứ tư theo
**Lửng chó Nhật Bản** (danh pháp hai phần: _Nyctereutes viverrinus_), còn được gọi là , là một loài thuộc họ Chó đặc hữu của Nhật Bản. Đây là một trong hai loài thuộc chi Nyctereutes,
nhỏ|phải|Bản đồ Nhật Bản sau khi sát nhập Hàn Quốc **Sự kiện Nhật Bản sáp nhập Triều Tiên** ( _kankoku heigo_, ) diễn ra vào ngày 29 tháng 8 năm 1910 dựa trên "Hiệp ước
"**Speak Now**" là một bài hát của ca sĩ kiêm sáng tác âm nhạc người Mỹ Taylor Swift nằm trong album phòng thu thứ ba cùng tên của cô (2010). Nó được phát hành trên
**Cộng hòa Dân chủ Nhân dân Triều Tiên** (), gọi ngắn là **Triều Tiên** (, MR: Chosŏn) hay **Bắc Triều Tiên** (, MR: Puk-chosŏn) là một quốc gia ở Đông Á, tạo thành nửa phía
thumb|upright|Swift tại [[giải Quả cầu vàng lần thứ 81 vào năm 2024]] Nữ ca sĩ kiêm nhạc sĩ sáng tác bài hát người Mỹ Taylor Swift là một nhân vật được đưa tin rộng rãi
**Giết con chim nhại** (nguyên tác tiếng Anh: _To Kill a Mockingbird_) là cuốn tiểu thuyết của Harper Lee; đây là cuốn tiểu thuyết rất được yêu chuộng, thuộc loại bán chạy nhất thế giới
**Mèo** đã sống gần gũi với loài người ít nhất 9.500 năm, Cho đến gần đây, mèo được cho rằng đã bị thuần hóa trong thời kỳ Ai Cập cổ đại, nơi chúng được thờ
**Đội Chiến dịch Đặc biệt số 13 (**tiếng Anh: **Special Operation Team No. 13)**, mật danh **Con Nai** (tiếng Anh: **Deer**), hay **Đội Con Nai** (tiếng Anh: **Deer Team**), là một nhóm đặc nhiệm tình
**Con rắn** là một trong những biểu tượng thần thoại lâu đời nhất và phổ biến nhất của thế giới loài người. Loài rắn này đã được kết hợp với một số các nghi lễ
**_Call Me by Your Name_** (tạm dịch: _Gọi em bằng tên anh_) là một bộ phim điện ảnh thuộc thể loại tình cảmchính kịchtuổi mới lớn ra mắt vào năm 2017 do Luca Guadagnino đạo
Kem trị sẹo Collagen có tốt không, giá bao nhiêu đang là câu hỏi mà rất nhiều khách hàng quan tâm. Bài viết sau sẽ cho bạn biết collagen là gì cũng như công dụng
"**Dark Horse**" (tạm dịch: _Ngựa ô_) là một bài hát thu âm bởi ca sĩ - nhạc sĩ người Mỹ Katy Perry hợp tác với rapper Juicy J. Bài hát được phát hành chính thức
Kem trị sẹo Collagen có tốt không, giá bao nhiêu đang là câu hỏi mà rất nhiều khách hàng quan tâm. Bài viết sau sẽ cho bạn biết collagen là gì cũng như công dụng
**_Trò chơi con mực_** (Hangul: , tiếng Anh: _Squid Game_) là một bộ phim truyền hình Hàn Quốc do Hwang Dong-hyuk viết kịch bản và đạo diễn. Phim được Netflix phát hành trực tuyến vào
**Mặt trận Balkan** (28 tháng 7 năm 1914 - 29 tháng 9 năm 1918) hay **Chiến trường Balkan** là một trong những mặt trận của Chiến tranh thế giới thứ nhất, diễn ra trên bán
**Bảo tàng Chứng tích Chiến tranh** (War Remnants Museum) là một bảo tàng vì hòa bình ở số 28 đường Võ Văn Tần, Phường Võ Thị Sáu, Quận 3, Thành phố Hồ Chí Minh. Bảo
**Hình tượng con hổ** hay **Chúa sơn lâm** đã xuất hiện từ lâu đời và gắn bó với lịch sử của loài người. Trong nhiều nền văn hóa khác nhau thế giới, hình ảnh con
Mùa đầu tiên của bộ phim truyền hình Hàn Quốc **Trò chơi con mực** do Hwang Dong-hyuk viết kịch bản và đạo diễn, được Netflix phát hành trực tuyến vào ngày 17 tháng 9 năm
**Vụ ám sát tại Yên Bái** là một vụ nổ súng giết người diễn ra ngày 18 tháng 8 năm 2016, tại trụ sở Tỉnh ủy Yên Bái ở thành phố Yên Bái, tỉnh Yên
**Gold**, hay **Bãi Gold**, là định danh của một trong năm khu vực đổ bộ của quân Đồng Minh trong Chiến dịch Neptune, mật danh của chiến dịch đổ bộ trong giai đoạn đầu của