Algoritmo efficiente per l'esistenza di permutazione con sequenza di differenze?


12

Questa domanda è motivata da questo post, riesci a identificare la somma di due permutazioni nel tempo polinomiale? e il mio interesse per le proprietà computazionali delle permutazioni.

Una sequenza di differenze di una permutazione π di numeri 1 , 2 , ... n + 1 si forma trovando la differenza tra ogni due numeri adiacenti nella permutazione π . In altre parole, a i = | π ( i + 1 ) - π ( i ) | per 1 i na1,a2,anπ1,2,n+1πai=|π(i+1)π(i)|1in

Ad esempio, la sequenza è la sequenza delle differenze di permutazione 2 3 4 1 . Mentre le sequenze 2 , 2 , 3 e 3 , 1 , 2 non sono la sequenza delle differenze di alcuna permutazione dei numeri 1 , 2 , 3 , 4 .1,1,323412,2,33,1,21,2,3,4

Esiste un algoritmo efficiente per determinare se una determinata sequenza è la sequenza delle differenze per alcune permutazioni o è NP-difficile?π

EDIT : otteniamo un problema computazionalmente equivalente se formuliamo il problema usando permutazioni circolari.

EDIT2 : Cross pubblicato su MathOverflow, Quanto è difficile ricostruire una permutazione dalla sua sequenza di differenze?

EDIT3 Premiato con il premio per lo schizzo di prova e accetterei la risposta dopo aver ottenuto la prova formale completa.

EDIT 4 : la bella prova di completezza di di Marzio è stata pubblicata sull'Electronic Journal of Combinatorics .NP


1
Forse un altro (suono, ma più?) Banale commento è che se l' sono una permutazione di [ 1 .. n ] (tutti i valori sono distinti), allora il problema è quello di verificare che la sequenza è un'etichettatura graziosa della linea di n + 1 nodi che è risolvibile in tempo polinomiale. ai[1..n]n+1
Marzio De Biasi,

2
@MarzioDeBiasi Penso che condividi la mia passione per i problemi di permutazione. Spero di aver trovato il problema di permutazione più semplice dal punto di vista computazionale :)
Mohammad Al-Turkistany,

2
:-) ... Preferirei dire che il mio commento proviene direttamente dalle ore trascorse invano sul grazioso problema dell'etichettatura degli alberi ... tuttavia ho un'idea confusa di una possibile riduzione NP-completa per il tuo problema; se riesco a formalizzarlo, posterò una risposta.
Marzio De Biasi,

@MarzioDeBiasi Ho trovato questo interessante commento di Shor affermando che il tuo problema, la pianificazione del lavoro con un problema di collo di bottiglia , equivale a un caso speciale del mio problema. Ecco il commento di Shor: se , il problema equivale a trovare una permutazione di 1 ... 2 N in modo che i 2 a - 1 - i 2 a = A iK=2N1...2Ni2a1i2a=Ai . Questo fornisce un'altra prova del -completeness del mio problema. NP
Mohammad Al-Turkistany,

Risposte:


10

Questo è uno schizzo di una possibile riduzione per dimostrare che è NP-difficile:

ai...11111...

21112112111

 a_i seq.:     1 1 1  2  1 1  2   1  1  1  forces
 permutation: 1 2 3 4 _ 6 7 8 _ 10 11 12 13 (or its decreasing equivalent)
 (from 4 you cannot go back to 2,
 from 8 you cannot go back to 6)

I fori devono essere riempiti nel resto della permutazione.

3) usando un 1SEQ abbastanza grande, seguito da un 1SEQ con alcuni buchi, seguito da un altro 1SEQ di grandi dimensioni è possibile costruire una linea forzata ;

4) mettendo insieme molte linee forzate è possibile costruire un grafico a griglia di permutazione in cui i nodi corrispondono ai numeri mancanti nella permutazione forzata sottostante.

Ad esempio la sequenza 1111111112111111111112111111111, forza il seguente grafico a griglia di permutazione 5x7:

29 30 31 32 33 34 35
22 23 24    26 27 28
15 16 17 18 19 20 21
 8  9 10    12 13 14   
 1  2  3  4  5  6  7

w×wa,b|ab|=kw

G

GG

7) è possibile riempire tutti i fori (ovvero completare la permutazione) se e solo se il grafico della griglia originale ha un ciclo hamiltoniano

EDIT: 27 luglio 2013

Ho cercato di dimostrare formalmente la completezza NP del problema: ho introdotto un nuovo problema (problema Crazy Frog ) che è NPC. Il problema della ricostruzione della permutazione dalle differenze equivale al "problema della rana pazza 1-D senza cellule bloccate" (che è anche NPC).

Per i dettagli della riduzione, vedi la mia domanda / risposta su "Due varianti del percorso hamiltoniano" o scarica una bozza della prova "Quando una rana incontra una permutazione" :)) (Sto ancora controllando / completandola)


Bene, sono sicuro che questo porterà a una soluzione, il gadget di selezione è sicuramente realizzabile.
domotorp,

@domotorp: l'ho pubblicato (nei prossimi giorni posterò i dettagli di selezione / sincronizzazione della parte); forse contiene un errore che non vedo, tuttavia scommetto $ 1 che l'intera riduzione può essere notevolmente semplificata :-)
Marzio De Biasi

@MarzioDeBiasi Bella visualizzazione. Sembra che tu sia sulla buona strada. Potresti per favore pubblicare la tua risposta su MathOverflow in quanto vi è un notevole interesse per il problema?
Mohammad Al-Turkistany,

@MarzioDeBiasi Potresti pubblicare la tua risposta finale (formale) prima della scadenza della taglia?
Mohammad Al-Turkistany,

@ MohammadAl-Turkistany: sono appena tornato da un viaggio, proverò a formalizzare (e verificherò con un CSP) i gadget nei prossimi giorni.
Marzio De Biasi,
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.