Altküme Toplamını Bölüme Nasıl Azaltabilirim?


20

Belki bu oldukça basit ama bu indirgeme konusunda biraz sorun yaşıyorum. Ben azaltmak isteyen Alt Küme Sum için Partition ancak şu anda ben ilişki görmüyorum!

Levin Reduction kullanarak bu sorunu azaltmak mümkün müdür?

Eğer anlamadıysanız açıklama için yazın!

Yanıtlar:


19

Let bir alt kümesi toplamı, bir örneği olarak numaralarının listesi (multiset) 'dir ve hedef toplamıdır. Let . Let eklenerek oluşturulan listesi olması için .(L,B)LBS=LLS+B,2SBL

(1) bir alt liste varsa için toplanmasıyla , ardından iki eşit parçaya bölünmüştür edilebilir: ve . Aslında, ilk kısım ve ikincisi .B L M { 2 S - B } L M { S + B } B + ( 2 S - B ) = 2 S ( S - B ) + ( S + B ) = 2 SMLBLM{2SB}LM{S+B}B+(2SB)=2S(SB)+(S+B)=2S

Eğer (2) , iki eşit parçaya bölünmüştür edilebilir , daha sonra bir alt liste bulunmaktadır için toplanmasıyla . Gerçekten de, ve her parça 2S'ye , iki eleman farklı parçalara aittir. Genelliği kaybetmeden, . Öğelerin geri kalan aittir ve toplamı .P 1 , P 2 L B ( S + B ) + ( 2 S - B ) = 3 S 2 S 2 S - B P 1 P 1 L BLP1,P2LB(S+B)+(2SB)=3S2S2SBP1P1LB


2
Ancak standart alt küme toplamı sorunu tüm tamsayıları kullanır ve bölümleme sorunu sadece negatif olmayan tamsayılar kullanır ...
gukoff

SUBSET-SUM, negatif olmayan tamsayılarla bile NP tamamlanmış, örneğin 3SAT'tan kaynaklanan azalma negatif olmayan tamsayılarla sonuçlanır. Ayrıca, muhtemelen SUBSET-SUM tamsayıdan negatif olmayan tamsayı SUBSET-SUM'a doğrudan bir azalma vardır.
Yuval Filmus

1
Evet, biliyorum ve bu azaltma çok kolay. Sadece "varsayılan" formdaki alt küme toplamı olmadığına dikkat edin. :)
gukoff

Misiniz o da iş eğer olan ? olarak , gibi L{B,S-B}| {B,S-B}| =B| L| =BLL{B,SB}|{B,SB}|=B|L|=B
Meraklı

1
@Issam Olmazdı, bu PARTITION örneği her zaman çözümüne sahip olurdu . L,{B,SB}
Yuval Filmus

1

@Yuval Filmus tarafından belirtilen cevap yanlıştır (SADECE negatif tamsayı yoksa doğrudur). Aşağıdaki çoklu seti düşünün:

{5,2,2,2,2,2}

ve hedef toplam . Alt küme olmadığını biliyoruz. Şimdi, bölüm sorunu için örnek oluşturuyoruz. Eklenen iki yeni öğe ve . Çoklu küme şimdi: ve toplam toplam .2 σ - t = 12 σ + t = 3 { - 5 , 2 , 2 , 2 , 2 , 2 , 3 , 12 } 2022σt=12σ+t=3

{5,2,2,2,2,2,3,12}
20

Bölümleme sorunu alt kümesini vererek cevabı çözmektedir. Burada, 2 yeni eleman aynı alt kümede bulunmaktadır (toplamın yarısına bölünmenin başka bir yolu yoktur). Bu nedenle, bu karşı bir örnektir. Doğru cevap aşağıdaki gibidir:

{2,2,2,2,2}

Değeri olan bir öğe ekleyin . Çoklu setin toplam toplamı artık . Toplam 2 alt kümesi verecek bölüm problemini çözün . Bölümden yalnızca biri yeni öğeyi içerecektir. Toplamı olan diğer bölümü seçiyoruz ve alt küme problemini bölüm problemine indirgeyerek çözdük. Bu ne bağlantı açıklar.2tσ2ttt


1
Ancak, Yuval'ın cevabına yaptığı bir yorumda söylediği gibi , pozitif tamsayılarla kısıtlasak bile alt küme toplamı NP- eksiktir. Yani negatif sayı olmadığını varsayabiliriz.
David Richerby

1
Evet, katılıyorum, pozitif tamsayılarda bile alt küme toplamı NP-tamamlanmış. Herhangi bir tamsayı için daha eksiksiz bir kanıt sağlıyordum.
Rohit Kumar Jena

1
"Sadece daha eksiksiz bir kanıt sağlamak" ve yanlış bir şekilde mevcut bir cevabın yanlış olduğunu iddia etmek.
David Richerby

1
Negatif tamsayılar için çalışmadığı anlamında yanlıştır. :) Barış :)
Rohit Kumar Jena

1

İşte açık bir kanıt:

SET-PARTITION'ın polinom zamanında doğrulanabildiğini görmek kolaydır; bir bölümü sadece ve toplamlarının birbirine eşit olduğunu doğrular, ki bu açıkça bir polinom zaman doğrulamasıdır (çünkü toplamlama bir polinom operasyonudur ve sadece en fazla çok sayıda toplam gerçekleştiriyoruz).P1,P2|X|

İspatın özü SUBSETSUM'u BÖLÜM'e indirmektir; bu amaçla küme ve bir değer (alt küme toplamı sorgusu) verildiğinde yeni bir küme burada . Bunun bir azalma olduğunu görmek için:XtX=X{s2t}s=xXx

  • ( vardır varsayalım) bir şekilde sonra bu olurdu ve ve bir bölümü oluşturmasınıSXt=xSx

    st=xS{s2t}x,
    st=xX(S{s2t})x
    S{s2t}X(S{s2t})X

  • ( ) bir bölüm olduğunu varsayalım ve öyle ki . , doğal bir ve bölümünü dikkat edin, böylece WLOGP1,P2XxP1x=xP2xP1P2X

    s2t+xP1x=xP2x
    s2t+xP1x+xP1x=xP2x+xP1x=s
    s2t+2xP1x=s
    xP1x=t

Bu nedenle, bir çözeltiden bir parition oluşturabilen , ve tersine bir çözümünü ve dolayısıyla bir azalmadır (çünkü dilde / set SUBSETSUM Leftrightarrow dilde / set PARTITION'da) ve dönüşümün gerçekleştiğini görmek açık polinom zamanı.t=xSxP1=S{s2t}P2=X(S{s2t})P1,P2t=xP1{s2t}xf:(X,t)X(X,t)X=f(X,t)


0

Altküme Toplamı:

Girdi: {a1, a2, ..., am} st M = {1..m} ve ai negatif olmayan bir tamsayı ve S⊆ {1..k} ve Σai (i∈S) = t

Bölme:

Girdi: {a1, a2, ..., am} ve S⊆ {1, · · · m} st Σai (i∈S) = Σaj (j∉S)

Bölüm Np Kanıtı: prover doğrulayıcı için bir bölüm (P1, P2) sağlıyorsa, doğrulayıcı P1 ve P2'nin toplamını kolayca hesaplayabilir ve sonucun doğrusal zamanda 0 olup olmadığını kontrol edebilir.

NP_Hard: SubsetSum ≤p BÖLÜMÜ

X, SubsetSum ve x = 〈a1, a2, ..., am, t〉 ve Σai (i 1'den m'ye) = a

Durum1: 2t> = a:

F (x) = 〈a1, a2, ..., am, am + 1〉 olsun + am = 1 = 2t − a

X∈SubsetSum ⇔ f (x) ARTPARTITION olduğunu göstermek istiyoruz.

yani S⊆ {1, ..., m} st T = {1..m} - S ve Σai (i∈T) =

ve Bırak T '= {1 ... m, m + 1} - S so Σaj (j∈T') = a-t + 2t-a = t

tam olarak Σai (i∈S) = t'dir ve f (x) gösterir showsPARTITION

şimdi f (x) ARTPARTITION ⇔ x∈SubsetSum

yani S⊆ {1, ..., m, m + 1} st T = {1, ..., m, m + 1} - S ve Σai (i∈T) = [a + (2t-a) var ) -t] = t

ve Σai (i∈T) = Σaj (j∈S) gösterir, böylece m + 1∈T ve S⊆ {1, · · ·, m} ve Σai (i∈S) = t

yani x∈SubsetSum

Durum 2: 2t = <a :

kontrol edebiliriz ama sadece bu sefer + 1 − 2t


-3

bu bağlantının hem indirgeme, alt küme toplamına bölüm ve alt küme toplamına bölümü iyi bir açıklaması vardır. Bence bu YUVAL'ın cevabından daha açık . faydalı link


4
Lütfen yalnızca bağlantı yanıtları göndermeyin. Bağlantıdaki içerik değişirse veya kullanılamaz hale gelirse, cevabınız işe yaramaz hale gelir. Lütfen yanıtınızı, bağlantı kullanılamıyor olsa bile yararlı olacak şekilde değiştirin (örneğin, içeriği kendi kelimelerinizle yeniden ifade etmek ve bağlantıyı referans ve kaynak olarak sağlamak).
Tom van der Zanden
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.