Losowanie dwóch ciągów znaków polega na przeplataniu znaków w nowy ciąg znaków, utrzymując porządek znaków każdego łańcucha. Na przykład, MISSISSIPPI
jest losowanie MISIPP
i SSISI
. Nazwijmy kwadrat ciągów, jeśli jest to tasowanie dwóch identycznych ciągów. Na przykład ABCABDCD
jest kwadratowy, ponieważ jest to przetasowanie ABCD
i ABCD
, ale ciąg ABCDDCBA
nie jest kwadratowy.
Czy istnieje szybki algorytm określający, czy łańcuch jest kwadratowy, czy trudny do NP? Oczywiste podejście do programowania dynamicznego wydaje się nie działać.
Nawet następujące przypadki szczególne wydają się trudne: (1) ciągi, w których każdy znak występuje najwyżej cztery sześć razy, oraz (2) ciągi zawierające tylko dwa różne znaki. Jak zauważa Per Austrin poniżej, specjalny przypadek, w którym każda postać występuje najwyżej cztery razy, można zmniejszyć do 2SAT.
Aktualizacja: ten problem ma inną formułę, która może ułatwić sprawdzenie twardości.
Rozważmy wykres G, którego wierzchołki są liczbami całkowitymi od 1 do n; zidentyfikuj każdą krawędź za pomocą rzeczywistego odstępu między jej punktami końcowymi. Mówimy, że dwie krawędzie G są zagnieżdżone, jeśli jeden przedział prawidłowo zawiera drugi. Na przykład krawędzie (1,5) i (2,3) są zagnieżdżone, ale (1,3) i (5,6) nie są, a (1,5) i (2,8) nie. Dopasowanie w G nie jest zagnieżdżone, jeśli nie ma zagnieżdżonej pary krawędzi. Czy istnieje szybki algorytm określający, czy G ma nie zagnieżdżone idealne dopasowanie, czy też jest to trudny NP?
Odtasowywanie łańcucha jest równoznaczne ze znalezieniem idealnego dopasowania bez zagnieżdżenia w rozłącznym związku kliki (z krawędziami między równymi znakami). W szczególności rozpakowywanie łańcucha binarnego jest równoznaczne ze znalezieniem idealnego dopasowania nie zagnieżdżonego w rozłącznym połączeniu dwóch klik. Ale nawet nie wiem, czy ten problem jest trudny dla grafów ogólnych, czy łatwy dla jakichkolwiek interesujących klas grafów.
Nie jest to łatwe algorytm wielomianowy czas, aby znaleźć idealny innych niż przekraczania skojarzeń.
Aktualizacja (24 czerwca 2013 r.): Problem został rozwiązany! Istnieją teraz dwa niezależne dowody, że identyfikacja ciągów kwadratowych jest NP-kompletna.
W listopadzie 2012 r. Sam Buss i Michael Soltys ogłosili redukcję z 3-partycji , co pokazuje, że problem jest trudny nawet w przypadku ciągów znaków składających się z 9-znakowego alfabetu. Zobacz „Unshuffling a Square is NP-Hard ”, Journal of Computer System Sciences 2014.
W czerwcu 2013 r. Romeo Rizzi i Stéphane Vialette opublikowali redukcję od najdłuższego wspólnego problemu podsekwencji . Patrz „ Rozpoznawanie słów, które są kwadratami dla losowego produktu ”, Proc. VIII Międzynarodowe Sympozjum Informatyczne w Rosji , Springer LNCS 7913, s. 235–245.
Istnieje również prostszy dowód na to, że znalezienie niedopasowanych idealnych dopasowań jest trudne dla NP, ze względu na Shuai Cheng Li i Ming Li w 2009 roku. Patrz „ O dwóch otwartych problemach wzorów 2-interwałowych ”, Theoretical Computer Science 410 (24–25 ): 2410–2423, 2009.