サブセット合計をパーティションに減らすにはどうすればよいですか?


20

たぶんこれは非常に簡単ですが、この削減を得るのに苦労しています。Subset SumPartitionに減らしたいのですが、現時点では関係がわかりません!

レビン削減を使用してこの問題を減らすことは可能ですか?

わかりにくい場合は、説明を書いてください!

回答:


19

ましょうサブセット和、のインスタンスでLは数値のリスト(マルチセット)であり、そしてBは、目標合計です。S = Lとしましょう。してみましょうLは、追加することによって形成され、リストもS + Bを2 S(L,B)LBS=LL LをS+B,2SBL

サブリストがある場合(1)に加算Bは、その後、L ':2つの等しい部分に分割することができるM { 2 S - B }及びL M { S + B }。実際、最初の部分の合計はB + 2 S B = 2 Sになり、2番目の部分の合計はS B + S + BMLBLM{2SB}LM{S+B}B+(2SB)=2S(SB)+(S+B)=2S

(2)を2つの等しい部分P 1P 2に分割できる場合、Bに加算するLのサブリストがあります。実際、S + B + 2 S B = 3 Sであり、各部分の合計は2 Sであるため、2つの要素は異なる部分に属します。一般性を失うことなく、2 S - B P 1P 1の残りの要素は次のものに属しますLP1,P2LB(S+B)+(2SB)=3S2S2SBP1P1へと合計 BLB


2
しかし、標準のサブセット合計問題ではすべての整数が使用され、パーティション問題では負でない整数のみが使用されます
...-gukoff

SUBSET-SUMは、負でない整数でもNP完全です。たとえば、3SATからの削減は、負でない整数になります。また、整数SUBSET-SUMから非負の整数SUBSET-SUMへの直接的な減少がある可能性があります。
ユヴァルフィルマス

1
はい、わかります。この削減は非常に簡単です。「デフォルト」形式のサブセット合計ではないことに注意してください。:)
グコフ

もしそれがまた動作しますか であり、L{BS-B}?として| {BSB}| =B、たとえば| L| =BLL{B,SB}|{B,SB}|=B|L|=B
好奇心が

1
@Issamそうではありませんが、このPARTITIONインスタンスには常に解ます。L,{B,SB}
ユヴァルフィルマス14

1

によって言及された答え @Yuval Filmusがは間違っています(負の整数がない場合のみ正しいです)。次のマルチセットを検討してください。

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

ターゲットの合計はです。サブセットがないことがわかっています。次に、パーティション問題のインスタンスを作成します。追加した2つの新しい要素である2 σ - T = 12およびσ + T = 3。:マルチセットは今である { - 5 2 2 2 2 2 3 12 }との総和であります22σt=12σ+t=3

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

パーティションの問題は、サブセット与える回答解決 2つの新しい要素が同一サブセット(半分の和に分割する他の方法が存在しない)であり、ここ。したがって、これは反例です。正解は次のとおりです。

{2,2,2,2,2}

その値は要素の追加。マルチセットの合計は、現在2 tです。合計tの 2つのサブセットを与えるパーティション問題を解きます。パーティションの1つだけに新しい要素が含まれます。合計がtである他のパーティションを選択し、サブセットの問題をパーティションの問題に減らすことで解決しました。これがリンクの説明です。2tσ2ttt


1
しかし、Yuvalが彼の答えに対するコメントで述べているように、正の整数に制限しても、サブセットの合計はNP完全です。したがって、負の数はないと仮定できます。
デビッドリチャービー

1
はい、同意します。正の整数の場合でも、サブセットの合計はNP完全です。私は整数に対してより完全な証明を提供していました。
ロヒトクマールイエナ

1
「より完全な証拠を提供するだけ」で、既存の回答が間違っていると誤って主張している。
デビッドリチャービー

1
負の整数では機能しないという意味で間違っています。:)平和:)
ロヒトクマールイェーナ

1

これは簡単な証明です:

SET-PARTITIONが多項式時間で検証できることは簡単にわかります。パーティションP1,P2与えられた場合P 2は2つを合計し、それらの合計が互いに等しいことを確認します。これは明らかに多項式時間検証です(合計は多項式演算であり、最大で|X|多くの合計)。

証明の核心は、SUBSETSUMをPARTITIONに減らすことです。そのために設定された所定のXと値t(サブセット和クエリ)新たなセットを形成X=X{s2t}s=xXx。これが削減であることを確認するには:

  • )いくつかが存在すると仮定SXするようt=xSx次に我々はだろう

    st=xS{s2t}x,
    st=xX(S{s2t})x
    、我々はそれであろうS{s2t}およびX(S{s2t})のパーティションを形成X

  • )パーティションが存在すると仮定するP1,P2XようxP1x=xP2x。通知、この誘導自然のパーティションP1及びP2Xように我々はWLOGその

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

t=xSxP1=S{s2t}, P2=X(S{s2t}) and conversely from a partition P1,P2 we can form a soltuion t=xP1{s2t}x and therefore the mapping f:(X,t)X is a reduction (because (X,t) is in the language/set SUBSETSUM X=f(X,t) is in the language/set PARTITION) and it is clear to see that the transformation was done in polynomial time.


0

Subset Sum:

Input: {a1,a2,...,am} s.t M={1..m} and ai are non negative integer and S⊆{1..k} and Σai(i∈S) = t

Partition:

Input: {a1,a2,...,am} and S⊆ {1,· · ·,m} s.t Σai(i∈S) = Σaj(j∉S)

Partition Np Proof: if prover provides a partitions(P1,P2) for verifier, verifier can easily calculate the sum of P1 and P2 and check if the result is 0 in linear time.

NP_Hard: SubsetSum ≤p PARTITION

Let x be input of SubsetSum and x=〈a1,a2,...,am,t〉 and Σai(i from 1 to m) = a

Case1: 2t >= a:

Let f(x)=〈a1,a2,...,am,am+1〉 where am+1= 2t−a

We want to show that x∈SubsetSum ⇔ f(x)∈PARTITION

so there exist S⊆ {1,...,m} s.t T = {1..m} - S and Σai(i∈T) = a-t

and Let T' = {1...m,m+1} - S so Σaj(j∈T') = a-t+2t-a = t

which is exactly Σai(i∈S)= t and it shows f(x)∈PARTITION

now We also will show that f(x)∈PARTITION ⇔ x∈SubsetSum

so there exist S⊆ {1,...,m,m+1} s.t T = {1,...,m,m+1} - S and Σai (i∈T)= [a+(2t-a)-t]=t

and it shows Σai(i∈T) = Σaj(j∈S) so m+1∈T and S⊆ {1,· · ·,m} and Σai(i∈S)= t

so x∈SubsetSum

Case 2: 2t =< a :

we can check same but just this time am+1 is a−2t


-3

this link has a good description of both reductions, partition to subset-sum and subset-sum to partition. I think it is more obvious than YUVAL's answer. useful link


4
Please do not post link-only answers. If the content at the link changes or becomes unavailable, your answer will become useless. Please amend your answer so that it is useful, even if the link is unavailable (for instance, restating the content in your own words and providing the link as reference and source).
Tom van der Zanden
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.