Bir alt küme toplam değişkeninin karmaşıklığı


9

Altküme toplamı sorununun bu varyantı kolay / biliniyor mu?

Bir tamsayısı ve bir pozitif tamsayı kümesi verildiğinde, her x_i için en fazla k = 2 bit 1 olarak ayarlanmıştır ( x_i = 2 ^ {b_ {i_1} } + 2 ^ {b_ {i_2}}, \; \; b_ {i_1}, b_ {i_2} \ geq 0 ); elemanlarının toplamı m'ye eşit olacak şekilde bir A '\ altete A alt kümesi var mı?mA={x1,x2,...,xn}xik=21xi=2bi1+2bi2,bi1,bi20AAm

İçinde bulunduğu P ? Hala NP eksik mi?

Ve her xi en fazla k=3 bit 1 olarak ayarlanmışsa 1? For k=1 sorun önemsiz olduğunu.

Yanıtlar:


8

için bile hala eksiktir . Bir alt küme toplamı örneği göz önüne alındığında, sayıları bölerek ve bazı ekstra bitler ekleyerek onu bu değişkene dönüştürebiliriz.NPk=2

Birincisi, sorunun tüm sayıların toplamı daha az olacaktır sayısının bazı değerleri için .2mm

Şimdi, bitleri ayarlanmış olan orijinal problemden bir sayısı alalım . Bu sayıyı tam olarak 2 bitlik ayarlanmış sayılarına böleriz, böylece bu sayıların toplamı . Biz bularak, yinelemeli yapabilirsiniz numaraları ilk için özetler bit artı ve rakamlar, bu son bit artı .nkkn+2k+mkk2k+m1kk2k+m1

Bu sayıya ek olarak, soruna sayısını da ekleyeceğiz . Bir çözüm ya bu sayıyı ya da daha önce yapılmış olan tüm sayılarını içermelidir . Orijinal hedef değer ise, yeni hedef değer .2k+mktt+2k+m

Orijinal sorun birden fazla numarası vardı, biz alarak bu işlemi tekrarlayabilirsiniz yeni değeri .k+m+1m

konumundaki bitin ayarlanmasının yalnızca iki yolu vardır : cevap, sayısını veya kadar toplanan tüm numaralarını içerebilir . Böylece, alt küme toplamını alt küme toplam varyantınıza indirdik.k+m2k+mkn+2k+m

Örnek olarak, hedef değerini alalım . Bu sorun, aşağıdaki ikili sayılar alınarak burada sunulan alt küme toplam değişkeni olarak kodlanabilir:{2,3,5}7

2, ve eşlenir . (Burada ekstra bit kullanmak kesinlikle gerekli değildir.)0100 10000 1

3, ve eşlenir1000 00 1,0100 00 10000 00 01

5, ve eşlenir .1000 00 000 1,0010 00 000 10000 00 000 01

Yeni hedef değer .1110 10 010 01

Orijinal sorun bit ile temsil ediliyorsa, dönüştürülen sorunun en fazla biti vardır. Orijinal problem, her biri en fazla bit içeren en fazla numarasına sahip olacaktır , bu nedenle hepsinin toplamı da O (n) 'dir. Dönüştürülmüş sorun olacaktır numaraları (her biri yana bitlik sayı bölünmüş olan bitlik sayı bunların uzunluğu en fazla olmak üzere, Kullandığımız yana için ek bit Dönüştürülen problemin toplam büyüklüğü bittir.nO(n4)O(n)O(n)O(n2)nn+1 2O(n2)nO(n4)


kodlamanın çalışma bandının üstel boyutuna yol açmadığından emin misiniz?
Vor

Hayır, bence dönüştürülmüş problem büyüklükte. Girişte n bit varsa, her biri n bit ayarlanmış en fazla n sayı vardır. Dönüştürülmüş problemde O (n ^ 2) sayıları olacaktır (bir k-bit sayı k + 1 sayılarına bölündüğü için). Her sayı, orijinal problemdeki n sayıların her biri için maksimum toplam artı n biti içerecek şekilde (2n) bit uzunluğundadır. Böylece her sayı, toplam O (n ^ 4) bit için O (2n + n ^ 2) bite sahip olacaktır.
Tom van der Zanden

@TomvaderZanden: Soruda azaltmanızın bir resmini ekledim; doğru yorumlayıp yorumlamadığımı görün
Vor

@TomvaderZanden: bugün tekrar azaltılması bakmak, ama keyfi bir numaradan nasıl belirsizdir ile bitleri set sen içine ayırabilirsiniz için "en yüksek" kısmı toplamları 2 bitlik sayıların . Eğer bir numara olduğunu varsayalım ile set bit; 13 2-bit sayıya ihtiyacınız vardır, ancak 13 1101'dir ve iki bit sayı ile "kaplayamazsınız" (örneğin 3 ve 5 k = 2 olduğu için çalışır). Ben 2-bit sayıların her biri için farklı bir yüksek bit kullanırsanız bu kolayca düzeltilebilir düşünüyorum ; 01111 ... 1'e toplarlar, sonra toplamın olmasına izin veren bir kukla 0000 ... 1 eklersiniz . nkk2knk=13k2k
Vor

Biraz belirsiz, ama bir "endüktif" prosedür kullanılarak kesinlikle mümkündür. Aslında bitine ihtiyacınız yok , sadece ihtiyacınız var . Eğer 13 1 bitlik numaralarını bulmak istiyorsanız toplamı kadar olduğu , o zaman toplamı kadar olduğu 6 sayı bulmalıyız ve 7 ayrıca özetlemek . Biz sunar gerçekten özetliyor . kceil(logk)2423231020+32124
Tom van der Zanden

0

Bu, Vor tarafından sorudan çıkarılan bilgidir.

İçin sorunun NP-tam kalır. Monoton X-SAT'dan hızlı bir azalma buldum ( azaltma şemasına bakın ).k3

Sorun olsa bile NP-tamamlanmış kalır , ayrıntılar için Tom'un cevabına bakın. SUBSET SUM'dan indirgemesinin küçük bir temsili:k=2

resim açıklamasını buraya girin

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.