Eine Mischung aus zwei Zeichenfolgen wird gebildet, indem die Zeichen in eine neue Zeichenfolge eingefügt werden, wobei die Zeichen der einzelnen Zeichenfolgen in der angegebenen Reihenfolge bleiben. Zum Beispiel MISSISSIPPI
ist ein Shuffle von MISIPP
und SSISI
. Lassen Sie mich einen String als Quadrat bezeichnen, wenn er aus zwei identischen Strings besteht. Zum Beispiel ABCABDCD
ist quadratisch, weil es sich um ein Shuffle von ABCD
und handelt ABCD
, aber die Zeichenfolge ABCDDCBA
ist nicht quadratisch.
Gibt es einen schnellen Algorithmus, um festzustellen, ob eine Zeichenfolge quadratisch ist, oder ist sie NP-hart? Der offensichtliche Ansatz der dynamischen Programmierung scheint nicht zu funktionieren.
Auch werden die folgenden besonderen Fälle schwer sein: (1) Zeichenkette , in denen jedes Zeichen höchstens erscheint vier sechs Mal, und (2) Saiten mit nur zwei unterschiedlichen Charakteren. Wie Per Austrin weiter unten ausführt, kann der Sonderfall, in dem jedes Zeichen höchstens viermal vorkommt, auf 2SAT reduziert werden.
Update: Dieses Problem hat eine andere Formulierung, die einen Härtenachweis erleichtern kann.
Man betrachte einen Graphen G, dessen Eckpunkte die ganzen Zahlen 1 bis n sind. Identifizieren Sie jede Kante mit dem tatsächlichen Abstand zwischen ihren Endpunkten. Wir sagen, dass zwei Kanten von G verschachtelt sind, wenn ein Intervall das andere enthält. Zum Beispiel sind die Kanten (1,5) und (2,3) verschachtelt, aber (1,3) und (5,6) nicht und (1,5) und (2,8) nicht. Eine Übereinstimmung in G ist nicht verschachtelt, wenn kein Kantenpaar verschachtelt ist. Gibt es einen schnellen Algorithmus, um festzustellen, ob G eine nicht verschachtelte perfekte Übereinstimmung aufweist, oder ist das Problem NP-schwer?
Das Entmischen eines Strings entspricht dem Auffinden einer nicht verschachtelten perfekten Übereinstimmung in einer disjunkten Cliquen-Union (mit Kanten zwischen gleichen Zeichen). Insbesondere eine unshuffling binär ist entsprechende Zeichenfolge eine nicht verschachtelte perfekte Abstimmung in disjunkter Vereinigung von zu finden zwei Cliquen. Aber ich weiß nicht einmal, ob dieses Problem für allgemeine Grafiken oder für interessante Grafikklassen schwierig ist.
Es gibt einen einfachen Polynom-Zeit-Algorithmus, um perfekte Nicht- Kreuzungs- Übereinstimmungen zu finden .
Update (24.06.2013): Das Problem ist behoben! Es gibt nun zwei unabhängige Beweise dafür, dass die Identifizierung quadratischer Zeichenfolgen NP-vollständig ist.
Im November 2012 kündigten Sam Buss und Michael Soltys eine Reduzierung von 3-Partitionen an , was zeigt, dass das Problem selbst für Zeichenfolgen über ein 9-stelliges Alphabet schwierig ist. Siehe "Ein Quadrat zu mischen ist NP-schwer ", Journal of Computer System Sciences 2014.
Im Juni 2013 veröffentlichten Romeo Rizzi und Stéphane Vialette eine Reduktion des längsten gemeinsamen Folgeproblems . Siehe " Zum Erkennen von Wörtern, die Quadrate für das Shuffle-Produkt sind ", Proc. 8. Internationales Informatik-Symposium in Russland , Springer LNCS 7913, S. 235–245.
Es gibt auch einen einfacheren Beweis , dass die Suche nach nicht-verschachteltem perfekt passenden NP-schwer ist , aufgrund Shuai Cheng Li und Ming Li im Jahr 2009. Siehe „ Auf zwei offene Problemen von 2-Intervall - Muster “, Theoretische Informatik 410 (24-25 ): 2410–2423, 2009.