numara ataması


10

Verilen numaraları şekilde bir sayı atama olduğunu bir permütasyon olan bu şekildekA1A2...Aki=1kAi=k(2k+1)i1,i2,...,i2k1,2,...,2k

i1+i2A1i3+i4A2...i2k1+i2kAk

?

Etkili bir algoritma bulamıyorum ve bu sorunu çözüyor. Kombinatoryal bir problem gibi görünüyor. Benzer bir NP-Complete sorununu bulamadım. Bu problem bilinen bir NP-Complete problemine benziyor mu yoksa polinom algoritmasıyla çözülebilir mi?


Sorun konusunda ilerleme kaydettiniz mi?
Yuval Filmus

Ben belirtmeyi unutmuşumA1A2...Ak
Gprime

İlgili problem , ayrıca tatmin edici bir cevap olmadan. (İlk bakışta nasıl ilişkili oldukları net olmayabilir, ancak ise, problem 1 2 N permütasyon bulmaya eşdeğerdir,böylece i 2 a - 1 - i 2 a = A i .K=2N12Ni2a1i2a=Ai
Peter Shor

Yanıtlar:


8

Bu sorun kesinlikle NP-tamamlanmıştır.

Tüm garip olduğunu varsayalım . O zaman biliyoruz ki i 2 j - 1 + i 2 j = A j tek, ve biri çift diğeri tek. Biz varsayabiliriz garip ve bile olduğunu. İzin vererek ve , bu eşdeğer olduğunu gösterebilir iki permütasyon istemek, veAji2j1+i2j=Aji2j1i2ji2j1i2jπj=12(i2j1+1)σj=12(i2j)πσ, of the numbers 1n such that πj+σj=12(Aj+1).

This problem is known to be NP-complete; see this cstheory.se problem and this paper of W. Yu, H. Hoogeveen, and J. K. Lenstra referenced in the answer.


6

Here is a hint to get you started: since the sum of all numbers from 1 to 2k is exactly k(2k+1), a solution is possible only if in fact i1+i2=A1, i3+i4=A2 and so on. So given i1 we know i2, and so on. Also, 3Aj4k1.


So how should I choose i1 to begin with? Im not seeing the solution. But thanks for the property 3Aj4k1
gprime

2
If the Ai are sorted, we know 3A1, 10A1+A2, 21A1+A2+A3, and so forth. Are these criteria, together with iAi=k(2k+1), enough? If they are, there might possibly be a simple algorithm for this problem.
Peter Shor

Yeah, they are sorted. I will try to use this...
gprime

@PeterShor You must also consider limits from the opposite direction, i.e. 4n1An,8n6An1+An, and so on and so forth. Looking at the problem anecdotally, it appears a simple greedy algorithm should discover solutions when they exist, and fail precisely when they don't - but I'm having trouble proving it.
torquestomp

@torquestomp: You're raising a good point. In fact, the limits from one direction also imply the limits from the other, but that's not at all obvious at first sight. I looked at a similar problem, and couldn't figure out a simple algorithm (but it also looked to me like the analog of these criteria was indeed enough).
Peter Shor

0

It's a matching problem, and so can be solved using Edmond's algorithm. See wikipedia


1
The Stackexchange idea is to have a Q&A that's as complete as reasonably possible. Would you be able to expand you answer to be more than just a link to wikipedia?
Luke Mathieson

Can you elaborate? I am failing to see how i can use that algorithms to solve my question.
gprime

1
Aslında bana göre NP-complete olan 3 eşlemeli özel bir durum gibi görünüyor. Bu, OP probleminin NP-tam olduğu anlamına gelmez.
Peter Shor

Could it be maybe a bipartite matching? I will look into the 3-matching to see if i can figure it out. Thanks!
gprime
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.