どのようにオレンジジュースの軽いサブセット和パーティショニング?

cs.stackexchange https://cs.stackexchange.com/questions/6111

質問

ることを非常に簡単ないので困ること。を削減したい サブセット和仕切り この時間があると思いますか関係!

が削減できることでこの問題をLevin削減?

だが理解できないような書きのための明確化!

役に立ちましたか?

解決

$(l、b)$をサブセット合計のインスタンスとします。ここで、$ l $は数字のリスト(マルチセット)、$ b $はターゲット合計です。 $ s = sum l $とします。 $ l '$を$ s+b、2s-b $に$ l $を追加することにより形成されたリストとします。

(1)サブリスト$ m Subseteq L $が$ b $に合計されている場合、$ l '$は2つの等しい部分に分割できます:$ m cup {2s-b } $と$ l setminus m cup {s+b } $。実際、最初の部分は$ b+(2s-b)= 2s $に合計され、2番目は$(sb)+(s+b)= 2s $になります。

(2)$ l '$を2つの等しい部分$ p_1、p_2 $に分割できる場合、$ l $のサブリストが$ b $になります。実際、$(s+b)+(2s-b)= 3s $であり、各部分は$ 2s $に合計されるため、2つの要素は異なる部分に属します。一般性を失うことなく、$ 2SB in p_1 $。 $ p_1 $の残りの要素は$ l $に属し、合計$ b $に属します。

他のヒント

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

$$\{-5, 2, 2, 2, 2, 2\} $$

また、目標の合計は$ -2 $です。サブセットがないことを知っています。次に、パーティション問題のインスタンスを構築します。追加された2つの新しい要素は、$ 2 sigma-t = 12 $と$ sigma+t = 3 $です。マルチセットは次のとおりです。$$ {-5、2、2、2、2、2、3、12 } $$で、合計は20ドルです。

パーティションの問題は、サブセット$$ {2、2、2、2、2、2 } $$を与える答えを解決します。2つの新しい要素は同じサブセットにあります(合計の半分に分割する他の方法はありません) 。したがって、これはカウンターの例です。正解は次のとおりです。

値が2t- sigma $である要素を追加します。マルチセットの合計額は2t $ $になりました。 3 $ t $の2つのサブセットを与えるパーティションの問題を解決します。パーティションの1つのみが新しい要素を含みます。合計が$ t $である他のパーティションを選択し、パーティションの問題に縮小することでサブセットの問題を解決しました。これが何であるかです リンク 説明します。

ここに簡単な証拠があります:

セットパーティションが多項式時間で検証できることは簡単にわかります。パーティションが与えられます $ p_1、p_2 $ 2つを合計して、それらの合計が互いに等しいことを確認してください。これは明らかに多項式時間の検証です(合計は多項式操作であり、せいぜいパフォーマンスしているため $ | x | $ 多くの合計)。

証明の中核は、Subsetsumをパーティションに削減することです。その目的に与えられたセット $ x $ と値 $ t $ (サブセット合計クエリ)新しいセットを形成します $ x '= x cup {s-2t } $ どこ $ s = sum_ {x in x} x $. 。これが削減であることを確認するには:

  • ($ は$を意味します )いくつかが存在すると仮定します $ s Subset x $ そのような $ t = sum_ {x in s} x $ それから私たちはそれを持っているでしょう begin {equation*} st = sum_ {x in s cup {s-2t }} x、 end {equation*} begin {equation*} st = sum_ {x in x ' setminus(s cup {s-2t })} x end {equation*}そして、私たちはそれを持っているでしょう $ s cup {s-2t } $$ x ' setMinus(s cup {s-2t })$ のパーティションを形成します $ x '$

  • ($ expliedby $)パーティションがあると仮定します $ p_1 '、p_2' $$ x '$ そのような $ sum_ {x in p_1 '} x = sum_ {x in p_2'} x $. 。これが自然なパーティションを誘導することに注意してください $ p_1 $$ p_2 $$ x $ そのようなwlog私たちはそれを持っています begin {equation*} s-2t+ sum_ {x in p_1} x = sum_ {x in p_2} x end {equation*} begin {equation*} s-2t+ sum_ {x in p_1} x+ sum_ {x in p_1} x = sum_ {x in p_2} x+ sum_ {x in p_1} x = s end {式*} begin {equation*} s-2t+2 sum_ {x in p_1} x = s end {equation*} begin {equation*} は sum_ {x in p_1} x = t end {equation*}

したがって、ソリューションから $ t = sum_ {x in s} x $ 私たちは協定を結ぶことができます $ p_1 = s cup {s-2t } $, $ p_2 = x ' setMinus(s cup {s-2t })$ 逆にパーティションから $ p_1 '、p_2' $ ソルチュオンを形成できます $ t = sum_ {x in p_1 ' setminus {s-2t }} x $ したがって、マッピング $ f:(x、t) rightarrow x '$ 削減されます(なぜなら $(x、t)$ 言語/set subsetsumにあります $ leftrightarrow x '= f(x、t)$ 言語/セットパーティションにあります)そして、変換が多項式時間で行われたことを確認することは明らかです。

サブセット合計:

入力:{a1、a2、...、am} st m = {1..m}およびaiは非負の整数であり、{1..k}とσai(i∈)= t

パーティション:

入力:{a1、a2、...、am} ands⊆{1、···、m}

パーティションNP証明: Proverが検証剤にパーティション(P1、P2)を提供する場合、検証剤はP1とP2の合計を簡単に計算し、結果が線形時間で0かどうかを確認できます。

NP_HARD:SubsetSum≤pパーティション

xをsubsetsumとx = <a1、a2、...、am、t>およびσai(1からmからm)= aの入力とします。

case1:2t> = a:

f(x)= <a1、a2、...、am、am+1> where am+1 = 2t -a

私たちはそれを見せたいです x∈Subsetsum⇔F(x)∈Partition

したがって、s⊆{1、...、m} st t = {1..m} - sおよびσai(i∈)= atが存在します。

t '= {1 ... m、m+1} -ssoσaj(j∈T')= a-t+2t-a = t

これは正確にσai(i∈)= tであり、f(x)∈Partitionを示します

今、私たちはそれを示します f(x)∈Partition⇔x∈Subsetsum

したがって、s⊆{1、...、m、m+1} st t = {1、...、m、m+1} - sおよびσai(i∈)= [a+(2t -a )-t] = t

そして、それはσai(i∈T)=σaj(j∈S)しているので、m+1∈Tとs⊆{1、・・・・、m}およびσai(i∈S)= tを示しています

したがって、x∈Subsetsum

ケース2:2T = <a :

同じチェックできますが、今回は+1がa -2tです

このリンクも内容も削減パーティションの中にあるサブセット-和およびサブセット-和がありました。だと思っています明らかなよ YUVAL"の答えです。役立つリンク

ライセンス: CC-BY-SA帰属
所属していません cs.stackexchange
scroll top