Việc xáo trộn hai chuỗi được hình thành bằng cách xen kẽ các ký tự thành một chuỗi mới, giữ các ký tự của mỗi chuỗi theo thứ tự. Ví dụ, MISSISSIPPI
là một sự xáo trộn của MISIPP
và SSISI
. Hãy để tôi gọi một chuỗi vuông nếu nó là một chuỗi hai chuỗi giống nhau. Ví dụ, ABCABDCD
là hình vuông, bởi vì nó là sự xáo trộn của ABCD
và ABCD
, nhưng chuỗi ABCDDCBA
không phải là hình vuông.
Có một thuật toán nhanh để xác định xem một chuỗi là hình vuông hay là NP-hard? Phương pháp lập trình động rõ ràng dường như không hoạt động.
Ngay cả các trường hợp đặc biệt sau đây cũng có vẻ khó: (1) chuỗi trong đó mỗi ký tự xuất hiện tối đa bốn sáu lần và (2) chuỗi chỉ có hai ký tự riêng biệt. Như Per Austrin chỉ ra dưới đây, trường hợp đặc biệt trong đó mỗi nhân vật xuất hiện tối đa bốn lần có thể giảm xuống còn 2SAT.
Cập nhật: Vấn đề này có một công thức khác có thể làm cho một bằng chứng độ cứng dễ dàng hơn.
Xét đồ thị G có các đỉnh là các số nguyên từ 1 đến n; xác định mỗi cạnh với khoảng thực giữa các điểm cuối của nó. Chúng ta nói rằng hai cạnh của G được lồng nhau nếu một khoảng đúng chứa khoảng kia. Ví dụ, các cạnh (1,5) và (2,3) được lồng nhau, nhưng (1,3) và (5,6) thì không, và (1,5) và (2,8) thì không. Khớp trong G không được lồng nếu không có cặp cạnh nào được lồng. Có một thuật toán nhanh để xác định xem G có khớp hoàn hảo không lồng nhau không, hay đó là vấn đề NP-hard?
Xáo trộn một chuỗi tương đương với việc tìm kiếm một kết hợp hoàn hảo không lồng nhau trong một liên kết rời rạc (có các cạnh giữa các ký tự bằng nhau). Cụ thể, việc xáo trộn một chuỗi nhị phân tương đương với việc tìm kiếm một kết hợp hoàn hảo không lồng nhau trong một liên kết rời rạc của hai cụm. Nhưng tôi thậm chí không biết vấn đề này là khó đối với các biểu đồ chung hay dễ đối với bất kỳ lớp biểu đồ thú vị nào.
Có một thuật toán đa thức thời gian dễ dàng để tìm ra các kết hợp không giao nhau hoàn hảo .
Cập nhật (ngày 24 tháng 6 năm 2013): Vấn đề đã được giải quyết! Hiện tại có hai bằng chứng độc lập xác định chuỗi vuông là NP-Complete.
Vào tháng 11 năm 2012, Sam Buss và Michael Soltys đã tuyên bố giảm từ 3 phân vùng , điều này cho thấy vấn đề khó khăn ngay cả đối với các chuỗi trên bảng chữ cái 9 ký tự. Xem "Xáo trộn một hình vuông là NP-Hard ", Tạp chí Khoa học hệ thống máy tính 2014.
Vào tháng 6 năm 2013, Romeo Rizzi và Stéphane Vialette đã công bố một sự giảm bớt từ vấn đề tiếp theo phổ biến dài nhất . Xem " Nhận biết các từ là hình vuông cho sản phẩm xáo trộn ", Proc. Hội thảo khoa học máy tính quốc tế lần thứ 8 ở Nga , Springer LNCS 7913, trang 235 trừ245.
Ngoài ra còn có một bằng chứng đơn giản hơn cho thấy việc tìm kiếm các kết hợp hoàn hảo không lồng nhau là NP-hard, do Shuai Cheng Li và Ming Li vào năm 2009. Xem " Về hai vấn đề mở của các mẫu 2 khoảng ", Khoa học máy tính lý thuyết 410 (24 Thay25 ): 2410 Vang2423, 2009.