Sto pensando al seguente problema da un po 'di tempo e non ho trovato una soluzione polinomiale per questo. Solo fonte bruta. Ho cercato di ridurre anche un problema NP-Complete senza successo.
Ecco il problema :
Hai un set ordinato di coppie di numeri interi positivi.
La seguente operazione può essere applicata ad una coppia: Swap(pair)
. Scambia gli elementi della coppia, quindi diventerà
Quando una coppia nel set viene scambiata, il set viene automaticamente riordinato (la coppia scambiata è fuori posto e verrà spostata al suo posto nel set).
Il problema consiste nel vedere se esiste una sequenza che, a partire da una coppia, scambia l'intero set, con la seguente condizione:
Dopo che una coppia viene scambiata, la coppia successiva da scambiare deve essere la coppia successiva o quella precedente nel set.
Sarebbe bello trovare una soluzione temporale polinomiale a questo problema, o una riduzione di un problema NP-Complete in esso.
Nota:
è già un problema decisionale. Non voglio sapere quale sia la sequenza: solo se esiste una sequenza.
Esempio di come il set viene ordinato dopo aver scambiato una coppia
Se cambio la prima coppia, diventa: e dopo aver ordinato il set (posizionando la coppia ordinata nella sua nuova posizione), abbiamo:
Quindi devo scambiare la coppia (predecessore) o ( 7 , 8 ) (successore) e ripetere il processo fino a quando tutte le coppie non vengono scambiate (se possibile).
Importante:
non è possibile scambiare una coppia già scambiata.
Se esiste una sequenza di operazioni di "scambio", tutte le coppie devono essere rinominate una volta e una sola volta.
Esempio in cui non è possibile scambiare tutte le coppie
( 1 , 4 ) ( 3 , 2 ) ( 5 , 5 )