mengenali perbedaan dua permutasi


21

Shor menyatakan, dalam komentarnya pada jawaban moose anonim untuk pertanyaan ini Bisakah Anda mengidentifikasi jumlah dua permutasi dalam waktu polinomial? , bahwa -complete untuk mengidentifikasi perbedaan dua permutasi. Sayangnya, saya tidak melihat pengurangan langsung dari masalah jumlah permutasi dan berguna untuk memiliki pengurangan - untuk masalah perbedaan permutasi.NPNP

Perbedaan Permutasi:

INSTAN: Array dari bilangan bulat positif.A[1...n]

PERTANYAAN: Apakah ada dua permutasi dan dari bilangan bulat positif sedemikian rupa sehingga untuk ?πσ1,2,...,n|π(i)σ(i)|=A[i]1in

Apa pengurangan untuk membuktikan - mengenali perbedaan dua permutasi?NP

EDIT 2014/10/09 : komentar Shor memberikan pengurangan yang membuktikan -completeness ketika unsur-unsur dari urutan yang ditandatangani perbedaan. Namun, saya tidak melihat pengurangan yang mudah untuk masalah saya di mana semua elemen adalah nilai absolut dari perbedaan.NPAA

UPDATE: Masalah Perbedaan Permutasi tampaknya lengkap bahkan jika salah satu dari dua permutasi selalu permutasi identitas. Bukti kekerasan dari kasus khusus ini sangat disambut baik. Jadi, saya tertarik pada versi terbatas ini:NPNP

Perbedaan Permutasi Terbatas: INSTANSI: Array dari bilangan bulat positif.A[1...n]

PERTANYAAN: Apakah ada permutasi dari bilangan bulat positif sedemikian rupa sehingga untuk ?π1,2,...,n|π(i)i|=A[i]1in

Pembaruan 2 : Masalah yang dibatasi ditentukan secara efisien seperti yang ditunjukkan oleh jawaban mjqxxxx. Kompleksitas komputasi dari masalah aslinya tidak terbukti.

EDIT 9/6/16 : Saya tertarik untuk menentukan apakah penyederhanaan Perbedaan Permutasi ini adalah NP-complete:

Perbedaan Permutasi Terbatas:

Instance : Sebuah multiset bilangan bulat positif.A

PERTANYAAN : Apakah ada permutasi dari bilangan bulat positif sehingga ?1 , 2 , . . . , n A = { | π ( i ) - i | : 1 i n }π1,2,...,nA={|π(i)i|:1in}


Mengapa tidak bertanya langsung kepada Peter? @ Peter
caozhu

Apakah yang Anda maksud dengan Email? Saya akan melakukan itu.
Mohammad Al-Turkistany

Saya mungkin kehilangan sesuatu tetapi tidak bisakah masalah ini direpresentasikan sebagai 2-SAT dan karenanya diselesaikan dalam polytime? Kita dapat mengasumsikan WLOG bahwa salah satu permutasi adalah identitas (saya mengasumsikan di sini bahwa A [i] dihitung secara siklis; haruskah itu sangat berarti?), Dan kemudian kita dapat mewakili yang kedua dengan matriks . Menjadi matriks permutasi adalah konjungsi dari klausa dua variabel yang menyatakan bahwa tidak ada dua yang terletak di baris atau di kolom; dan kemudian mengatakan bahwa perbedaannya ada di lokasi pi (i) dari i adalah A [i] adalah OR dari dua tempat yang memungkinkan.x[i,j]
Noam

@Noam Terima kasih atas komentar Anda. Ide yang menarik. Saya tidak memikirkannya. Namun, tidak jelas bagi saya apakah akan mengarah ke algoritma waktu polinomial terutama bahwa kita hanya diberi nilai absolut dari perbedaan.
Mohammad Al-Turkistany

1
Ya, tampaknya perbedaan antara menghitung kesenjangan secara siklikal atau nilai absolut dapat menjadi masalah.
Noam

Jawaban:


5

Masalahnya dibatasi, di mana salah satu permutasi adalah identitas, tentu di . Bangun grafik bipartit di mana setiap simpul i V 1 = { 1 , 2 , , n } terhubung ke elemen (s) j V 2 = { 1 , 2 , , n } sedemikian rupa sehingga | i - j | = A [ i ] . Kemudian permutasi yang diinginkan σPiV1={1,2,,n}jV2={1,2,,n}|ij|=A[i]σada jika dan hanya jika grafik memiliki pencocokan sempurna (yaitu pencocokan dengan edge), yang dapat ditentukan dalam waktu polinomial.n


Saya mungkin kehilangan sesuatu, tetapi kecocokan yang sempurna tidak akan berhasil. Anda harus membuktikan adanya pencocokan sempurna terbatas. Pertimbangkan integer yang terjadi dua kali dalam masukan berbagai A . Pencocokan sempurna yang sesuai dengan permutasi harus memiliki dua sisi dengan perbedaan absolut k . Algoritma Anda TIDAK membuktikan keberadaan pencocokan terbatas tersebut. Inilah yang membuat masalah sulit dan mungkin NP-lengkap. kAk
Mohammad Al-Turkistany

2
@ MohammadAl-Turkistany: Saya pikir jika maka u i , u jV 1 ditautkan ke node 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]V2dengan perbedaan absolut . Pencocokan sempurna akan mencakup setidaknya satu ujung dari u i dan salah satu ujung dari u j . Saya sampai pada kesimpulan yang sama beberapa kali yang lalu sambil memikirkan masalah aslinya, tetapi mengikuti cara lain: Saya melihat bahwa mudah untuk merumuskan masalah terbatas sebagai rumus 2-SAT (jika Anda mau, saya dapat menambahkan jawaban dengan itu , tapi ide mjqxxxx lebih baik). kuiuj
Marzio De Biasi

@MarzioDeBiasi Mengapa pendekatan ini (dan milik Anda) tidak berfungsi untuk masalah asli (tidak dibatasi)?
Mohammad Al-Turkistany

@ mjqxxx Saya melihat bahwa pendekatan Anda menyelesaikan kasus terbatas. Mengapa tidak bisa diperluas untuk secara efisien menyelesaikan masalah aslinya?
Mohammad Al-Turkistany

@ MohammadAl-Turkistany: karena dalam masalah awal elemen permutasi pertama ( dalam versi terbatas) tidak diperbaiki, dan menggunakan pendekatan yang sama Anda berakhir dengan grafik tripartit (dan dalam pendekatan 2-SAT saya dengan a δ i ( n ) ( π i ( n + A [ i ] ) π i ( n - A [ i ] ) ) klausa ... yang bukan klausa 2-CNF). iδi(n)(πi(n+A[i])πi(nA[i]))
Marzio De Biasi

0

Berikut adalah variasi yang agak menarik di mana masalahnya mudah: alih-alih set ground dari , izinkan setiap subset dari { 1 , 2 , 4 , 8 , ... } . Tujuannya masih untuk menemukan permutasi π sehingga A = { | π ( 2 k ) - 2 k | : 2 kΩ } di mana Ω{1,2,3,,n}{1,2,4,8,}πA={|π(2k)2k|:2kΩ}Ωadalah ground set. Keuntungan utama di sini adalah bahwa himpunan ground baru memaksa setiap elemen menjadi 2 k 1 - 2 k 2 untuk beberapa k 1 , k 2 , dan jika k 1k 2 , maka k 1 dan k 2 ditentukan oleh ini perbedaan. Oleh karena itu untuk setiap perbedaan | 2 k 1 - 2 k 2 | dalam A , kita dapat menyimpulkan bahwa π ( 2 kA2k12k2k1,k2k1k2k1k2|2k12k2|A atauπ(2 k 2 )=2 k 1 (atau keduanya).π(2k1)=2k2π(2k2)=2k1

Memecahkan variasi yang disederhanakan ini secara efisien lebih atau kurang rutin. Mulailah dengan membuat multigraf bipartit tidak berarah mana L dan R adalah salinan berbeda dari perangkat ground, dan tambahkan tepi ( 2 k 1 , 2 k 2 ) dan ( 2 k 2 , 2 k 1 ) kapan saja | 2 k 1 - 2 k 2 | muncul diG=(LR,E)LR(2k1,2k2)(2k2,2k1)|2k12k2| dengan k 1k 2 . Saya mengklaim bahwa yang berikut ini setara:Ak1k2

  1. Ada permutasi dengan perbedaan AπA
  2. Setiap simpul dalam memiliki derajat 0 atau 2G

Saya tidak akan benar-benar membuktikan ini karena waktu, tetapi tidak terlalu buruk untuk mengerjakannya sendiri. Itu sangat mudah. Itu 212 sedikit lebih sulit, tetapi tidak terlalu buruk ketika Anda beralasan dengan automorfisme G yang mengirim setiap simpul dalam L ke salinannya dalam R (dan sebaliknya). Bukti yang ada dalam pikiran saya mengarahkan tepi dalam G sehingga semua tepi dalam siklus pergi `` dengan cara yang sama di sekitar siklus '' (setiap simpul nonisolasi memiliki in-degree = out-degree = 1), dan sehingga sebelumnya automorfisme G tetap merupakan automorfisme versi terarah. π kemudian dipilih sesuai dengan tepi yang pergi dari L ke R .21GLRGGπLR

Anda dapat menggunakan algoritme di atas sebagai pertanyaan pencocokan sempurna, dan saya membayangkan ada pengurangan lain pada 2-SAT. Saya tidak melihat bagaimana memperluas pendekatan ini ke masalah aslinya.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.