Ich habe eine Zeit lang über das folgende Problem nachgedacht und keine polynomielle Lösung dafür gefunden. Nur rohe Quelle. Ich habe versucht, ein NP-Complete-Problem ohne Erfolg zu reduzieren.
Hier ist das Problem :
Sie haben eine sortierte Menge positiver ganzzahliger Paare.
Die folgende Operation kann zu einem Paar angewendet werden: Swap(pair)
. Es tauscht die Elemente des Paares aus, sodass zu
Wenn ein Paar im Set getauscht wird, wird das Set automatisch erneut sortiert (das getauschte Paar ist nicht richtig platziert und wird an seinen Platz im Set verschoben).
Das Problem besteht darin, zu sehen, ob es eine Sequenz gibt, die, beginnend mit einem Paar, den gesamten Satz mit der folgenden Bedingung austauscht:
Nachdem ein Paar getauscht wurde, muss das nächste auszutauschende Paar entweder das Nachfolger- oder das Vorgängerpaar im Satz sein.
Es wäre großartig, eine polynomielle Zeitlösung für dieses Problem zu finden oder ein NP-vollständiges Problem darin zu reduzieren.
Hinweis:
Es ist bereits ein Entscheidungsproblem. Ich möchte nicht wissen, um welche Sequenz es sich handelt: Nur wenn eine Sequenz existiert.
Beispiel, wie das Set nach dem Tausch eines Paares sortiert wird
( 1 , 2 ) ( 3 , 4 ) ( 7 , 8 )
Wenn ich das erste Paar vertausche, wird es zu: , und nach dem Sortieren des Satzes (Platzieren des sortierten Paares an seiner neuen Position) haben wir:
( 3 , 4 ) (5,6) ( 7 , 8 )
Dann muss ich entweder das (Vorgänger) Paar oder ( 7 , 8 ) (Nachfolger) tauschen und den Vorgang wiederholen, bis alle Paare getauscht sind (falls möglich).
Wichtig:
Ein bereits getauschtes Paar kann nicht getauscht werden.
Wenn es eine Folge von 'Swap'-Operationen gibt, müssen alle Paare einmal und nur einmal umbenannt werden.
Beispiel, bei dem nicht alle Paare getauscht werden können
( 1 , 4 ) ( 3 , 2 ) ( 5 , 5 )