Ich verwende die äquivalente Formulierung user17410:
Eingabe: Vektoren X = { x 1 , … , x m } über { 0 , 1 } n , n ist Teil der Eingabe
Frage: Gibt es zwei verschiedene Teilmengen A , B ⊆ X, so dass
∑ x ∈ A x = ∑ x ∈ B xnX={x1,…,xm}{0,1}nn
A,B⊆X
∑x∈Ax=∑x∈Bx
Der Härtenachweis beinhaltet viele Zwischenreduktionen, die der gleichen "Kette" folgen, die zum Nachweis der Härte des Standardproblems EQUAL SUBSET SUM verwendet wird:
X3C ≤ SUBSET SUM PARTITION ≤ Gerade-Ungerade - PARTITION ≤ EQUAL SUBSET SUM≤≤≤
(Ich überprüfe es immer noch, damit es falsch sein kann :)
SCHRITT 1
Das folgende Problem ( 0-1 VECTOR SUBSET SUM ) ist NP-vollständig: Wenn , x i Vektoren über { 0 , 1 } n und ein Zielsummenvektor t gegeben sind , entscheiden Sie, ob es existiert A ⊆ x , so daß
Σ x ∈ A x = t Proof : Direktreduktion von EXACT COVER BY 3-SETS (X3C): ein Satz von gegebenen n Elemente Y = { yX={x1,…,xm}xi{0,1}ntA⊆X
∑x∈Ax=t
n und eine Sammlung
C von
mY={y1,...,yn}Cm drei Elementen Subsets
erstellen wir die entsprechende 0-1 VECTOR SUM-Instanzeinstellung
x i [ j ] = 1, wenn und nur wenn das Element
j in
C i enthalten ist ;
t = [ 1 , 1 , . . ] .
C={C1,...,Cm}xi[j]=1jCit=[1,1,...1]
SCHRITT 2 Das
Finden von zwei gleichen Summenteilmengen unter m 0-1 Vektoren über { 0 , 1 } n entspricht dem Finden von zwei gleichen Summenteilmengen A , B von Vektoren mit einem Element der begrenzten Größe x 1 . . . x m mit m a x { x i } = O ( ( m n ) k ) für festes k .A,Bm{0,1}nA,Bx1...xmmax{xi}=O((mn)k)k
Zum Beispiel die Menge der Vektoren:
x1 2 1 0 1
x2 1 2 3 1
Entspricht den 0-1 Vektoren:
x1 1 1 0 1 1 0 0 0 0
1 0 0 0 0 1 0 0 0
0 0 0 0 1 1 0 0 0
^ ^
+-- 0 elsewhere
x2 1 1 1 1 0 0 1 0 0
0 1 1 0 0 0 0 1 0
0 0 1 0 0 0 0 0 1
0 0 0 0 0 0 1 1 1
^ ^ ^
+-- 0 elsewhere
Informell werden die 0-1-Vektoren gruppiert (wenn Sie einen Vektor der x2-Gruppe auswählen und zu Untergruppe hinzufügen , müssen Sie die anderen beiden in A aufnehmen und die letzten in Untergruppe B einfügen ) und die Summen werden in erstellt unär (dies ist der Grund, warum die entsprechenden nicht-binären Vektoren Elemente enthalten müssen, die in Bezug auf m n polynomiell begrenzt sind ).AABmn
Das folgende Problem ist also NP-vollständig.
SCHRITT 3
Das folgende Problem ( 0-1 VECTOR PARTITION ) ist NP-vollständig: Wenn , x i Vektoren über { 0 , 1 } n gegeben sind, entscheidet dies, ob X in zwei Teilmengen B 1 aufgeteilt werden kann. B 2 so, dass
∑ x ∈ B 1 x = ∑ x ∈ B 2 xB={x1,…,xm}xi{0,1}nXB1,B2
∑x∈B1x=∑x∈B2x
Beweis : Reduktion von 0-1 VEKTORSUMME: gegebenes
und der Zielsummenvektor t ; sei S = ∑ x i , addieren wir zu X die folgenden Vektoren: b ′ = - t + 2 S und b ″ = t + SX={x1,…,xm}tS=∑xiXb′=−t+2Sb′′=t+S: .B=X∪{b′,b′′}
( ) Angenommen , dass es existiert A ⊆ X , so daß Σ x ∈ A x = t ; wir setzen B 1 = A ∪ { b ′ } und B 2 = B ∖ B 1 = X ∖ { A } ∪ { b ″ } ; wir haben
∑ x ∈ B 1 = b ′ + ∑ x ∈ A⇒A⊆X∑x∈Ax=tB1=A∪{b′}B2=B∖B1=X∖{A}∪{b′′}Σ x ∈ B 2 = b " + Σ x ∈ X ∖ A x = b " + S - Σ x ∈ A
∑x∈B1=b′+∑x∈Ax=t−t+S=2S
∑x∈B2=b′′+∑x∈X∖Ax=b′′+S−∑x∈Ax=2S
( ) Angenommen, B 1 und B 2 haben die gleiche Summe. b ' , b' ' können nicht beide zu derselben Menge gehören (andernfalls ist ihre Summe ≥ 3 S und kann nicht durch die Elemente in der anderen Menge "ausgeglichen" werden). Nehmen wir an, dass b ' = - t + 2 S ∈ B 1 ; wir haben:⇐B1B2b′,b′′≥3Sb′=−t+2S∈B1
−t+2S+∑x∈B1∖{b′}x=t+S+∑x∈B2∖{b′′}x
Wir müssen also und B 1 ∖ { b ′ } ist eine gültige Lösung für die 0-1-VEKTORSUMME.∑x∈B1∖{b′}x=tB1∖{b′}
Wir erlauben nur 0-1 Vektoren in dem Satz , also Vektoren , b ' , b " müssen„in unäre dargestellt“ , wie in Schritt 2 gezeigt ist .Bb′,b′′
SCHRITT 3
Das Problem ist noch NP-vollständig , wenn die Vektoren aus nummeriert sind und die beiden Teilmengen X 1 , X 2 müssen gleich groß sein, und wir fordern, dass X 1 genau eines von x 2 i - 1 , x 2 i für 1 ≤ i ≤ n enthält (also durch die Bedingung gleicher Größe) muss das andere Element des Paares in X enthalten seinx1,...,x2nX1,X2X1x2i−1,x2i1≤i≤n ) enthalten sein (0-1 VECTOR EVEN-ODD PARTITION).X2
Beweis: Die Verkleinerung erfolgt von 0-1 VECTOR PARTITION und ähnelt der Verkleinerung von PARTITION auf EVEN-ODD PARTITION. Wenn sind m Vektoren über { 0 , 1 } n Ersetzen Sie jeden Vektor durch zwei Vektoren über { 0 , 1 } 2 n + 2 m :X={x1,...,xm}m{0,1}n{0,1}2n+2m
1 2 n
--------------------
x_i b_1 b_2 ... b_n
becomes:
1 2 ... 2i ... 2m
--------------------------
x'_2i-1 0 0 ... 1 ... 0 b_1 b_2 ... b_n 0 0 ... 0
x'_2i 0 0 ... 1 ... 0 0 0 ... 0 b_1 b_2 ... b_n
Aufgrund des -Elements können die Vektoren x ' 2 i - 1 und x ' 2 i nicht in derselben Teilmenge enthalten sein; und eine gültige Lösung für die 0-1 VECTOR EVEN-ODD PARTITION entspricht einer gültigen Lösung der ursprünglichen 0-1 VECTOR PARTITION (wählen Sie einfach die Elemente 2m + 1..2m + n jedes Vektors der Lösung aus und verwerfen Sie Vektoren, die alle enthalten Nullen in diesen Positionen).2ix′2i−1x′2i
SCHRITT 4
0-1 VECTOR EQUAL SUBSET SUM (das Problem in der Frage) ist NP-vollständig: Reduktion von 0-1 VECTOR EVEN-ODD PARTITION ähnlich der Reduktion von EVEN-ODD PARTITION auf EQUAL SUM SUBSET, wie in Gerhard J. Woeginger bewiesen , Zhongliang Yu, auf dem Gleich-Subset-sum Problem : Bei einer gegebenen Satz bestellen von 2 m Vektoren über { 0 , 1 } n bilden wir eine Menge Y von 3 m Vektoren über { 0 ,A={x1,...,x2m}2m{0,1}nY3m{0,1}2m+n .
x2i−1,1≤i≤my2i−1{0,1}2m+n
1 2 ... i i+1 ... m m+1 m+2 ... m+i ... 2m 2m+1 ... 2m+n
------------------------------------------------------
0 0 ... 2 0 ... 0 0 0 1 0 x_{2i-1}
x2i,1≤i≤m−1y2i{0,1}2m+n auf diese Weise :
1 2 ... i i+1 ... m m+1 m+2 ... m+i ... 2m 2m+1 ... 2m+n
------------------------------------------------------
0 0 ... 0 2 ... 0 0 0 1 0 x_{2i}
x2m zu
1 2 ... ... m m+1 m+2 ... . 2m 2m+1 ... 2m+n
------------------------------------------------------
2 0 ... ... 0 0 0 1 x_{2m}
Schließlich fügen wir hinzu m Dummy-Elemente:
1 2 ... ... m m+1 m+2 ... ... 2m 2m+1 ... 2m+n
------------------------------------------------------
4 0 ... ... 0 0 0 0 0 ... 0
0 4 ... ... 0 0 0 0 0 ... 0
...
0 0 ... ... 4 0 0 0 0 ... 0
Beachten Sie erneut, dass Vektoren Werte enthalten > 1 kann unter Verwendung einer Gruppe von 0-1 Vektoren wie in SCHRITT 2 gezeigt "unär" dargestellt werden.
Y. hat zwei disjunkt Y.1, Y2 Teilmengen mit gleicher Summe genau dann, wenn X hat eine gerade-ungerade Partition.