-completeness di riconoscere la differenza di due permutazioni


21

Shor ha dichiarato, nel suo commento alla risposta anonima delle alci a questa domanda Riesci a identificare la somma di due permutazioni in tempo polinomiale? , che è completo per identificare la differenza di due permutazioni. Sfortunatamente, non vedo una riduzione diretta dal problema della somma di permutazione ed è utile avere la riduzione della completezza N P per il problema della differenza di permutazione.NPNP

Differenza di permutazione:

ISTANZA: una matrice di numeri interi positivi.A[1...n]

Domanda: esistono due permutazioni e σ dei numeri interi positivi 1 , 2 , . . . , n tale che | π ( i ) - σ ( i ) | = A [ i ] per 1 i n ?πσ1,2,...,n|π(i)σ(i)|=A[i]1in

Qual è la riduzione per dimostrare la completezza di riconoscere la differenza di due permutazioni?NP

EDIT 10-9-2014 : il commento di Shor fornisce una riduzione che dimostra la completezza di quando gli elementi della sequenza A sono contrassegnati con differenze. Tuttavia, non vedo una facile riduzione del mio problema in cui tutti gli elementi di A sono i valori assoluti delle differenze.NPAA

UPDATE: Il problema di differenza di permutazione sembra essere -Complete anche se uno dei due permutazioni è sempre la permutazione identità. La prova di durezza di questo caso speciale è molto gradita. Quindi, sono interessato alla completezza di N P di questa versione limitata:NPNP

Differenza di permutazione limitata: ISTANZA: una matrice di numeri interi positivi.A[1...n]

Domanda: esiste una permutazione degli interi positivi 1 , 2 , . . . , n tale che | π ( i ) - i | = A [ i ] per 1 i n ?π1,2,...,n|π(i)i|=A[i]1in

Aggiornamento 2 : il problema con restrizioni è efficacemente decidibile, come mostrato dalla risposta di mjqxxxx. La complessità computazionale del problema originale non è dimostrata.

EDIT 6/6/16 : Sono interessato a determinare se questa semplificazione della differenza di permutazione è NP-completa:

Differenza di permutazione limitata:

ISTANZA : un multiset di numeri interi positivi.A

DOMANDA : esiste una permutazione degli interi positivi 1 , 2 , . . . , n tale che A = { | π ( i ) - i | : 1 i n } ?π1,2,...,nA={|π(i)i|:1in}


Perché non chiedere direttamente a Peter? @Peter
caozhu

Intendi per e-mail? Lo farò.
Mohammad Al-Turkistany,

Potrei mancare qualcosa, ma questo problema non può essere rappresentato come un 2-SAT e quindi essere risolto nel tempo polifunzionale? Possiamo supporre WLOG che una delle permutazioni sia l'identità (suppongo che A [i] sia calcolato ciclicamente; dovrebbe importare molto?), E quindi possiamo rappresentare la seconda con una matrice . Essere una matrice di permutazione è una congiunzione delle clausole di due variabili che affermano che non ce ne sono due in una riga o in una colonna; e poi dire che la differenza è nelle posizioni di pi (i) da i è A [i] è l'OR dei due posti possibili in cui può trovarsi.x[i,j]
Noam

@Noam Grazie per il tuo commento. Idea interessante. Non ci ho pensato. Tuttavia, non è ovvio per me se porterà all'algoritmo del tempo polinomiale, in particolare che ci viene dato solo il valore assoluto delle differenze.
Mohammad Al-Turkistany,

1
Sì, sembra che la differenza tra il conteggio del divario ciclicamente o in valore assoluto possa avere importanza.
Noam,

Risposte:


5

Il problema ristretto, in cui una delle permutazioni è l'identità, è certamente in . Costruisci il grafico bipartito in cui ciascun vertice i V 1 = { 1 , 2 , , n } è collegato agli elementi j V 2 = { 1 , 2 , , n } tale che | i - j | = A [ i ] . Quindi la permutazione desiderata σPiV1={1,2,,n}jV2={1,2,,n}|ij|=A[i]σesiste se e solo se il grafico ha una corrispondenza perfetta (cioè una corrispondenza con bordi), che può essere determinata in tempo polinomiale.n


Forse mi manca qualcosa, ma qualsiasi abbinamento perfetto non funzionerà. Devi dimostrare l'esistenza di un perfetto abbinamento limitato. Si consideri un intero che si verifica due volte in array di input A . L'abbinamento perfetto che corrisponde alla permutazione deve avere due bordi con differenza assoluta k . Il tuo algoritmo NON dimostra l'esistenza di tale corrispondenza limitata. Questo è ciò che rende il problema difficile e possibilmente NP-completo. kAk
Mohammad Al-Turkistany,

2
@ MohammadAl-Turkistany: Credo che se allora u i , u jV 1 sono collegati ai nodi v i + A [ i ] , v i - A [ i ] , v j + A [ j ] , v j - A [ j ]V 2A[i]=A[j]=kui,ujV1vi+A[i],viA[i],vj+A[j],vjA[j]V2con differenze assolute . L'accoppiamento perfetto comprenderà almeno un bordo da u i e un bordo da u j . Sono arrivato alla stessa conclusione alcune volte fa pensando al problema originale, ma seguendo un altro modo: ho visto che è facile formulare il problema limitato come una formula 2-SAT (se vuoi posso aggiungere una risposta con esso , ma l'idea di mjqxxxx è migliore). kuiuj
Marzio De Biasi,

@MarzioDeBiasi Perché questo approccio (e il tuo) non funziona per il problema originale (senza restrizioni)?
Mohammad Al-Turkistany,

@mjqxxx Vedo che il tuo approccio risolve il caso limitato. Perché non può essere esteso per risolvere efficacemente il problema originale?
Mohammad Al-Turkistany,

@ MohammadAl-Turkistany: perché nel problema originale gli elementi della prima permutazione (gli nella versione limitata) non sono fissi, e usando lo stesso approccio si finisce con un grafico tripartito (e nel mio approccio 2-SAT con a δ i ( n ) ( π i ( n + A [ i ] ) π i ( n - A [ i ] ) ) ... che non è una clausola 2-CNF). iδi(n)(πi(n+A[i])πi(nA[i]))
Marzio De Biasi,

0

Ecco una variazione leggermente interessante in cui il problema è semplice: invece di un set di base di , consenti qualsiasi sottoinsieme di { 1 , 2 , 4 , 8 , ... } . L'obiettivo è ancora trovare una permutazione π in modo che A = { | π ( 2 k ) - 2 k | : 2 kΩ } dove Ω{1,2,3,,n}{1,2,4,8,}πA={|π(2k)2k|:2kΩ}Ωè il terreno stabilito. Il vantaggio principale qui è che il nuovo set di terra forza ogni elemento di ad essere 2 k 1 - 2 k 2 per qualche k 1 , k 2 , e se k 1k 2 , allora k 1 e k 2 sono determinati da questo differenza. Ne consegue che per ogni differenza | 2 k 1 - 2 k 2 | in A , possiamo dedurre che π ( 2 kA2k12k2k1,k2k1k2k1k2|2k12k2|A oπ(2 k 2 )=2 k 1 (o entrambi).π(2k1)=2k2π(2k2)=2k1

Risolvere in modo efficace questa variazione semplificata è quindi più o meno di routine. Inizia costruendo la multigrafia bipartita non orientata dove L e R sono copie distinte del set di terra e aggiungi i bordi ( 2 k 1 , 2 k 2 ) e ( 2 k 2 , 2 k 1 ) quando | 2 k 1 - 2 k 2 | appare inG=(LR,E)LR(2k1,2k2)(2k2,2k1)|2k12k2| con k 1k 2 . Dichiaro che quanto segue è equivalente:Ak1k2

  1. C'è una permutazione con differenze AπA
  2. Ogni vertice in ha grado 0 o 2G

In realtà non lo dimostrerò a causa del tempo, ma non è poi così male allenarsi da soli. Quello è semplice. Quello 21221GLRGGπLR

Puoi definire l'algoritmo sopra come una domanda di abbinamento perfetta e immagino che ci siano altre riduzioni a 2-SAT. Tuttavia, non vedo come estendere questi approcci al problema originale.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.