Giải quyết siêu dây chính xác


18

Những gì được biết về độ phức tạp chính xác của vấn đề siêu dây ngắn nhất? Nó có thể được giải quyết nhanh hơn so với O(2n) ? Có các thuật toán đã biết giải quyết siêu chuỗi ngắn nhất mà không giảm xuống TSP không?

CẬP NHẬT: O() triệt tiêu các yếu tố đa thức.

Vấn đề siêu chuỗi ngắn nhất là một vấn đề có câu trả lời là chuỗi ngắn nhất chứa mỗi chuỗi từ một chuỗi các chuỗi đã cho. Câu hỏi là về việc mở rộng tối ưu hóa một vấn đề NP-hard nổi tiếng Shortest Superopes (Garey và Johnson, tr.228).


5
"Vấn đề siêu dây" là gì?
Jeffε

Tôi có nghĩa là vấn đề siêu dây ngắn nhất, tôi đã sửa nó. Cảm ơn bạn!
Alex Golovnev

10
Được rồi, "vấn đề siêu dây ngắn nhất" là gì? Tôi có thể nghĩ ra một số vấn đề xứng đáng với cái tên đó, và một vài vấn đề khác phải được gọi là " vấn đề siêu hậu quả ngắn nhất " nhưng có lẽ không có trong thực tế. Hãy cho chúng tôi một số bối cảnh, xin vui lòng!
Jeffε

1
Khu vực vấn đề của bạn là gì? ví dụ: nếu bạn tìm kiếm siêu chuỗi ngắn nhất trong phân mảnh bộ gen, vì phân mảnh bộ gen tạo ra các biểu đồ chiều rộng cây bị ràng buộc, bạn có thể có thuật toán nhanh, nhưng nếu bạn chỉ quan tâm đến các thuật toán có sẵn nhanh hơn, câu trả lời của bạn là không, ngoại trừ bạn có thể có thuật toán nhanh hơn trong TSP (vì giảm đơn giản), Cũng có thuật toán trong đồ thị chiều rộng cây giới hạn cục bộ. O(2n)
Saeed

1
@AlexGolovnev, Có bạn là đúng đây là ATSP, nhưng đối với giáp treewidth tôi nghĩ là tốt để xem cs.bme.hu/~dmarx/papers/marx-warsaw-fpt2 hoặc nếu bạn muốn biết thêm về họ là tốt quá thấy thuật toán Định lý meta
Saeed

Câu trả lời:


5

Giả sử các chuỗi có độ dài đa thức trong , thì có, có ít nhất mộtngiải pháp thời gian. Lý do là sự giảm nổi tiếng từ bài toán siêu chuỗi phổ biến ngắn nhất sang ATSP với trọng số nguyên có kích thước đa thức, do đó bạn có thể giải quyết bằng phép nội suy đa thức nếu bạn có thể đếm các chu kỳ Hamilton trong một đa giác có hướng. Vấn đề thứ hai có22nΩ(n/logn)giải pháp thời gian. Bjorklund 20122nΩ(n/logn)

Việc giảm từ ATSP với trọng số wuv cho mỗi cặp đỉnh đến chu kỳ Hamilton được tính như sau:u,v

Đối với , nơi w tổng là một trên ràng buộc trên tất cả các khoản tiền của n trọng trong trường hợp ATSP, xây dựng một đồ thị G r nơi bạn thay thế mỗi trọng lượng w u v với r w u v cung từr=1,2,,wsumwsumnGrwuvrwuv đến v .uv

Bằng cách giải toán chu trình Hamilton cho mỗi , bạn có thể thông qua phép nội suy đa thức xây dựng một đa thức w sum l = 0 a l r l với một l bằng với số lần tham quan TSP trong biểu đồ trọng số ban đầu l . Do đó định vị l nhỏ nhất sao choGrl=0wsumalrlalll khác không giải quyết vấn đề.al


Cảm ơn rất nhiều! Tôi không biết mối liên hệ này với việc đếm chu kỳ Hamilton.
Alex Golovnev

@AlexGolovnev: Nhưng mức giảm ít nhiều giống như trong kết quả Kohn, Gottlieb, Kohn mà bạn đã trích dẫn trong câu trả lời của chính mình? Nó là một phép nhúng đơn giản của nửa số tổng nhỏ trên các số nguyên. Nhưng dù sao, cảm ơn bạn đã khiến tôi nhận ra rằng phiên bản tiếp theo của bài báo của tôi nên nêu rõ điều này.
Andreas Bjorklund

8

Tôi đã nghiên cứu vấn đề và tôi tìm thấy một số kết quả. Chuỗi siêu phổ biến ngắn nhất (SCS) có thể được giải quyết trong thời gian chỉ với không gian đa thức ( Kohn, Gottlieb, Kohn2n ; Karp ; Bax, Franklin ).

Xấp xỉ được biết đến gần nhất là 21130 ( Paluch ).

Tính gần đúng nhất của nén là 34 ( Paluch ).

Nếu SCS có thể được xấp xỉ bởi một yếu tố trên bảng chữ cái nhị phân, thì nó có thể được xấp xỉ bởi một yếu tố ααα trên bất kỳ bảng chữ cái nào ( Vassilevska-Williams ).

SCS không thể được xấp xỉ với tỷ lệ tốt hơn 1.0029 trừ khi P = NP ( Karpinki, Schmied ).

Nén tối đa không thể xấp xỉ với tỷ lệ tốt hơn 1.0048 trừ khi P = NP ( Karpinki, Schmied ).

Tôi sẽ biết ơn bất kỳ bổ sung và đề xuất.


5

Đây là vấn đề siêu dây ngắn nhất: bạn đang trao chuỗi s 1 , ... , s n trên một số bảng chữ cái Σ và bạn muốn tìm chuỗi ngắn hơn Σ chứa mỗi s i là một dãy ký tự liên tiếp, tức là một chuỗi con.ns1,,snΣΣsi

Khi chúng ta nói về các thuật toán chính xác cho vấn đề, việc tìm độ dài của siêu chuỗi ngắn nhất tương đương với việc tìm mức nén tối đa C là tổng của tất cả các chuỗi trùng lặp liên tiếp trong siêu chuỗi cuối cùng, tức là C = i | s i | - L .LCC=i|si|L

Theo như tôi biết, thuật toán chính xác nhanh nhất để chạy siêu dây ngắn nhất trong ( 2 n ), nơi n là số các chuỗi. Đây là một thuật toán lập trình động đơn giản tương tự như thuật toán lập trình động cho đường dẫn dài nhất (và các vấn đề khác):O2nn

Đối với mỗi tập hợp con của chuỗi và chuỗi v trong S, chúng tôi tính toán nén tối đa trên tất cả các siêu chuỗi trên S trong đó v là chuỗi đầu tiên xuất hiện trong siêu chuỗi, lưu trữ chuỗi này dưới dạng C (( v , S )). Chúng tôi thực hiện điều này bằng cách trước tiên xử lý tất cả các tập hợp con chỉ có một phần tử và sau đó xây dựng các giá trị C (( v , S )) cho các tập hợp con S trên chuỗi k từ các chuỗi trên k - 1SvSSvv,Sv,SSkk1 chuỗi. Đặc biệt:

Đối với mỗi chuỗi chúng ta nhìn vào tất cả các tập con S ' trên k - 1 chuỗi mà không làm bao gồm u và thiết lập giá trị cho ( u , uS ' ) đến mức tối đa trên dây v trong S ' của tổng mức tối đa trùng lặp của u với v với C (( v , S )).uSk1uu,uSvSuvv,S

Thời gian chạy cuối cùng không quá O ( ) trong đó l là độ dài chuỗi tối đa.n22n+n2ll

Có các thuật toán tốt hơn nếu bạn giả sử rằng nhỏ, hoặc các cặp trùng lặp nhỏ, kích thước bảng chữ cái nhỏ, v.v., nhưng tôi không biết bất kỳ thuật toán nào nhanh hơn 2 n .l2n


5
OP biết thuật toán, ông yêu cầu giải pháp nhanh hơn. O(2n)
Saeed

2
như tôi đã nói, tôi không tin một giải pháp nhanh hơn được biết đến.
virgi

1
@virgi, cảm ơn bạn rất nhiều! Thuật toán của bạn rất hay. Nhưng tôi nghĩ rằng nguyên tắc loại trừ bao gồm cung cấp cho chúng tôi ngay cả thuật toán với không gian đa thức cho bài toán Siêu chuỗi. Tôi thực sự thú vị trong các thuật toán nhanh hơn, có thể có một số hạn chế (bảng chữ cái nhỏ, câu trả lời ngắn, v.v.). Cảm ơn rât nhiều! O(2n)
Alex Golovnev
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.