서브 세트 합계를 파티션으로 줄이려면 어떻게해야합니까?


20

어쩌면 이것은 매우 간단하지만이 축소를 얻는 데 어려움이 있습니다. Subset SumPartition 으로 줄이고 싶지만 현재 관계가 보이지 않습니다!

Levin Reduction을 사용하여이 문제를 줄일 수 있습니까?

이해가되지 않으면 설명을 작성하십시오!

답변:


19

하자 (,) 서브 세트 합계의 인스턴스 번호 목록 (MULTISET)이며, 목표 합이다. 이라고하자 에스=. S를 S + B , 2 S - BL' 에 더한리스트 라고 합시다 .에스+,2에스

(1) B에 합산 된 서브리스트 이있는 경우 , L 'M { 2 S - B }L M { S + B }의 두 부분으로 나눌 수 있습니다 . 실제로 첫 번째 부분은 B + ( 2 S - B ) = 2 S 이고 두 번째 부분은 ( S - B ) + ( S + B미디엄BLM{2SB}LM{S+B}B+(2SB)=2S(SB)+(S+B)=2S 입니다.

(2) L 가 2 개의 동일한 부분 로 분할 될 수 있다면 , B에 합산되는 LP1,P2 의 서브리스트가 존재한다 . 실제로 ( S + B ) + ( 2 S B ) = 3 S 이고 각 부분의 합이 2 S 이기 때문에 두 요소는 서로 다른 부분에 속합니다. 일반성의 손실없이 2 S - B P 1 . 의 나머지 요소 P (1) 에 속하는LB(S+B)+(2SB)=3S2S2SBP1P1L 합산하십시오.


2
그러나 표준 부분 집합 합계 문제는 모든 정수를 사용하고 파티션 문제는 음이 아닌 정수만 사용합니다.
gukoff

SUBSET-SUM은 음이 아닌 정수로도 NP- 완료됩니다. 예를 들어 3SAT에서의 감소는 음이 아닌 정수로 끝납니다. 또한 정수 SUBSET-SUM에서 음이 아닌 정수 SUBSET-SUM으로 직접 축소 될 수 있습니다.
Yuval Filmus

1
예, 알고 있습니다.이 축소는 매우 쉽습니다. "기본"형식의 하위 집합 합계가 아니라는 점에 유의하십시오. :)
gukoff

L 이면 작동합니까?L{B,S-B}? 로| {B,SB}| =B와 같이| L| =BLL{B,SB}|{B,SB}|=B|L|=B
호기심

1
@Issam 이것은 PARTITION 인스턴스가 항상 솔루션 갖지 않을 것 입니다. L,{B,SB}
Yuval Filmus

1

@Yuval Filmus 가 언급 한 답변 이 올바르지 않습니다 (음수가 아닌 경우에만 정확합니다). 다음과 같은 다중 집합을 고려하십시오.

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

대상 합계이다 . 우리는 부분 집합이 없다는 것을 알고 있습니다. 이제 파티션 문제에 대한 인스턴스를 생성합니다. 추가 된 2 개의 새로운 요소는 2 σ - t = 12σ + t = 3 입니다. 다중 집합은 이제 { 5 , 2 , 2 , 2 , 2 , 2 , 3 , 12 } 이고 총 합은 20 입니다.22σt=12σ+t=3

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

분할 문제는 부분 집합을 제공하는 답을 해결합니다. 여기서, 2 개의 새로운 요소는 동일한 부분 집합에 있습니다 (합을 반으로 나누는 다른 방법은 없습니다). 따라서 이것은 반대의 예입니다. 정답은 다음과 같습니다.

{2,2,2,2,2}

값이 인 요소를 추가하십시오 . 다중 집합의 총합은 이제 2 t 입니다. 합계의 두 부분 집합 줄 것 파티션 문제 해결 t을 . 파티션 중 하나에 만 새 요소가 포함됩니다. 합이 t 인 다른 파티션을 선택하고 파티션 문제로 축소하여 부분 집합 문제를 해결했습니다. 이것이 링크가 설명하는 것입니다.2tσ2ttt


1
그러나 Yuval이 그의 답변에 대한 의견에서 언급했듯이 양의 정수로 제한하더라도 부분 집합 합계는 NP- 완전입니다. 따라서 음수가 없다는 것을 가정 할 수 있습니다.
David Richerby

1
예, 양의 정수의 경우에도 부분 집합 합계가 NP- 완전하다는 데 동의합니다. 나는 정수에 대해 더 완벽한 증거를 제공하고있었습니다.
Rohit Kumar Jena

1
"보다 완벽한 증거를 제공"하고 기존 답변이 잘못되었다고 잘못 주장합니다.
David Richerby

1
음의 정수에서는 작동하지 않는다는 점에서 올바르지 않습니다. :) Peace :)
Rohit Kumar Jena

1

다음은 간단한 증거입니다.

SET-PARTITION이 다항식 시간으로 검증 될 수 있음을 쉽게 알 수 있습니다. 분할 P1,P2 주어지면 , P 2는 단지 2 를 합산하고 그 합이 서로 다름인지 확인합니다. 이는 분명히 다항식 시간 검증입니다 (합산은 다항식 연산이므로 우리는 최대 |X| 많은 합산 만 수행하기 때문입니다 ).

증거의 핵심은 SUBSETSUM을 PARTITION으로 줄이는 것입니다. 주어진 세트 X 와 값 t (하위 집합 합 쿼리)가 주어진 끝에 , 우리는 새로운 세트 X=X{s2t} 여기서 s=xXx . 이것이 축소임을 확인하려면 다음을 수행하십시오.

  • () t = x S x 와 같은 SX 가 있다고 가정 하면 s t = x S { s 2 t } x , s t = x X ( S { s 2 t } ) x 우리는 S {t=xSx

    st=xS{s2t}x,
    st=xX(S{s2t})x
    S{s2t}X(S{s2t}) X ' 의 파티션을 형성X

  • (P1,P2XxP1x=xP2xP1P2X

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

t=xSxP1=S{s2t}P2=X(S{s2t})P1,P2t=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

부분 집합 :

입력 : {a1, a2, ..., am} st M = {1..m} 및 ai는 음수가 아닌 정수이며 S⊆ {1..k} 및 Σai (i∈S) = t

분할:

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

Partition Np Proof : 검증자가 검증 자에게 파티션 (P1, P2)을 제공하면 검증자는 P1과 P2의 합을 쉽게 계산하고 선형 시간에서 결과가 0인지 확인할 수 있습니다.

NP_Hard : SubsetSum ≤p PARTITION

x에 SubsetSum을 입력하고 x = 〈a1, a2, ..., am, t〉를 입력하고 Σai (i에서 1에서 m까지) = a

사례 1 : 2t> = a :

f (x) = 〈a1, a2, ..., am, am + 1〉 (여기서 am + 1 = 2t−a)

x∈SubsetSum ⇔ f (x) ∈PARTITION 을 보여주고 싶습니다.

따라서 S⊆ {1, ..., m} st T = {1..m}-S 및 Σai (i∈T) = at

T '= {1 ... m, m + 1}-S이므로 Σaj (j∈T') = a-t + 2t-a = t

정확히 Σai (i∈S) = t이고 f (x) ∈PARTITION

이제 우리는 또한 f (x) ∈PARTITION ⇔ x∈SubsetSum

따라서 S⊆ {1, ..., m, m + 1}이 존재합니다. st T = {1, ..., m, m + 1}-S와 Σai (i∈T) = [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 :

우리는 동일하게 확인할 수 있지만 이번에는 am + 1은 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
링크 전용 답변을 게시하지 마십시오. 링크의 내용이 변경되거나 사용할 수 없게되면 답변이 쓸모 없게됩니다. 링크를 사용할 수없는 경우에도 유용하도록 답변을 수정하십시오 (예를 들어, 자신의 말로 콘텐츠를 복원하고 링크를 참조 및 소스로 제공).
Tom van der Zanden
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.