Uso la formulazione equivalente user17410:
Input: vettori over , fa parte dell'input
Domanda: Esistono due diversi sottoinsiemi tali che
nX={x1,…,xm}{0,1}nn
A,B⊆X
∑x∈Ax=∑x∈Bx
La prova di durezza comporta molte riduzioni intermedie che seguono la stessa "catena" utilizzata per dimostrare la durezza del problema SUM SUBSET standard:
X3C SOMMA SUBSET PARTITION EVEN-ODD PARTITION EQUAL SUBSET SUM≤≤≤≤
(Lo sto ancora verificando, quindi potrebbe essere sbagliato :)
PASSO 1
Il seguente problema ( 0-1 SOMMA SUBSET VETTORE ) è NP-completo: dato , vettori su e un vettore di somma target , decidi se esiste tale che
Prova : riduzione diretta da EXACT COVER DI 3-SETS (X3C): dato un insieme di elementi e una raccolta di tre elementi sottoinsiemi costruiamo la corrispondente impostazione dell'istanza VECTOR SUM 0-1 se e solo se l'elementox i { 0 , 1 } n t A ⊆ X ∑ x ∈ A x = tX={x1,…,xm}xi{0,1}ntA⊆X
∑x∈Ax=t
Y = { y 1 , . . . , Y n } C m C = { C 1 , . . . , C m } x i [ j ] = 1 jnY={y1,...,yn}CmC={C1,...,Cm}xi[j]=1jè incluso in ; .
t = [ 1 , 1 , . . .1 ]Cit=[1,1,...1]
PASSAGGIO 2
Trovare due sottoinsiemi di somma uguale tra 0-1 vettori oltre , equivale a trovare due sottoinsiemi di somma uguale di vettori con elemento di dimensione limitata dove per fisso .m { 0 , 1 } n A , B x 1 . . . x m m a x { x i } = O ( ( m n ) k ) kA,Bm{0,1}nA,Bx1...xmmax{xi}=O((mn)k)k
Ad esempio il set di vettori:
x1 2 1 0 1
x2 1 2 3 1
È equivalente ai vettori 0-1:
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
Informalmente i vettori 0-1 sono raggruppati (se si seleziona un vettore del gruppo x2 e lo si aggiunge al sottoinsieme , quindi si è costretti a includere in gli altri due e si inserisce l'ultimo nel sottoinsieme ) e le somme sono fatte in unario (questo è il motivo per cui i corrispondenti vettori non binari devono contenere elementi che sono polinomialmente limitati rispetto a ).A B m nAABmn
Quindi il seguente problema è NP-completo.
PASSAGGIO 3
Il seguente problema ( 0-1 VECTOR PARTITION ) è NP-completo: dato , vettori sopra decide se può essere partizionato in due sottoinsiemi tale che
x i { 0 , 1 } n X B 1 , B 2 ∑ x ∈ B 1 x = ∑ x ∈ B 2 xB={x1,…,xm}xio{0,1}nXB1,B2
∑x∈B1x=∑x∈B2x
Prova : riduzione da 0-1 SOMMA VETTORIALE: dato
e il vettore della somma target ; lascia , aggiungiamo a i seguenti vettori: e : .t S = ∑ x i X b ′ = - t + 2 S b ″ = t + SX={x1,…,xm}tS=∑xiXb′=−t+2Sb′′=t+SB=X∪{b′,b′′}
( ) Supponiamo che esista tale che ; impostiamo e ; abbiamo
A ⊆ X ∑ x ∈ A x = t B 1 = A ∪ { b ′ } B 2 = B ∖ B 1 = X ∖ { A } ∪ { b ″ } ∑ x ∈ B 1 = b ′ + ∑ x ∈ A x = t - t + S = 2 S⇒A⊆X∑x∈Ax=tB1=A∪{b′}B2=B∖B1=X∖{A}∪{b′′}
∑x∈B1=b′+∑x∈Ax=t−t+S=2S
∑x∈B2=b′′+∑x∈X∖Ax=b′′+S−∑x∈Ax=2S
( ) Supponi che e abbiano la stessa somma. non possono entrambi appartenere allo stesso set (altrimenti la loro somma è e non può essere "bilanciata" dagli elementi nell'altro set). Supponiamo che ; noi abbiamo:B 1 B 2 b ′ , b ″ ≥ 3 S b ′ = - t + 2 S ∈ B 1⇐B1B2b′,b′′≥3Sb′=−t+2S∈B1
−t+2S+∑x∈B1∖{b′}x=t+S+∑x∈B2∖{b′′}x
Quindi dobbiamo avere e è una soluzione valida per il 0-1 somma vettoriale.B 1 ∖ { b ′ }∑x∈B1∖{b′}x=tB1∖{b′}
Consentiamo solo 0-1 vettori nell'insieme , quindi i vettori devono essere "rappresentati in unario" come mostrato nel PASSAGGIO 2.b ′ , b ″Bb′,b′′
PASSAGGIO 3
Il problema è ancora NP-completo se i vettori sono numerati da e i due sottoinsiemi devono avere le stesse dimensioni e richiediamo che contenga esattamente uno di per (quindi, in base al vincolo di uguale dimensione, l'altro elemento della coppia deve essere incluso in ) ( 0-1 VECTOR EVEN-ODD PARTITION ).X 1 , X 2 X 1 x 2 i - 1 , x 2 i 1 ≤ i ≤ n X 2x1,...,x2nX1,X2X1x2i−1,x2i1≤i≤nX2
Prova:: la riduzione è compresa tra 0-1 VECTOR PARTITION ed è simile alla riduzione da PARTITION a EVEN-ODD PARTITION. Se sono vettori su sostituisci ogni vettore con due vettori su :m { 0 , 1 } n { 0 , 1 } 2 n + 2 mX={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
A causa dell'elemento , i vettori e non possono essere contenuti nello stesso sottoinsieme; e una soluzione valida per 0-1 VECTOR EVEN-ODD PARTITION corrisponde a una soluzione valida per l'originale 0-1 VECTOR PARTITION (basta selezionare gli elementi 2m + 1..2m + n di ciascun vettore della soluzione scartando i vettori che contengono tutti zeri in quelle posizioni).x ′ 2 i - 1 x ′ 2 i2ix′2i−1x′2i
PASSAGGIO 4
0-1 VECTOR EQUAL SUBSET SUM (il problema nella domanda) è NP-completo: riduzione da 0-1 VECTOR EVEN-ODD PARTITION simile alla riduzione da EVEN-ODD PARTITION a EQUAL SUM SUBSET, come dimostrato in Gerhard J. Woeginger , Zhongliang Yu, Sul problema della somma parziale parziale : dato un set ordinato di vettori sopra , costruiamo un imposta di vettori su .2 m { 0 , 1 } n Y 3 m { 0 , 1 } 2 m + nA={x1,...,x2m}2m{0,1}nY3m{0,1}2m+n
Per ogni vettore costruiamo un vettore sopra in questo modo: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}
Per ogni vettore costruiamo un vettore sopra in questo modo:x2i,1≤i≤m−1y2i{0,1}2m+n
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}
elemento ax2m
1 2 ... ... m m+1 m+2 ... . 2m 2m+1 ... 2m+n
------------------------------------------------------
2 0 ... ... 0 0 0 1 x_{2m}
Infine aggiungiamo elementi fittizi:m
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
Notare ancora che i vettori contenenti valori possono essere rappresentati in "unario" usando un gruppo di 0-1 vettori come mostrato nel PASSAGGIO 2.>1
Y ha due sottoinsiemi disgiunti con somma uguale se e solo se ha una partizione pari-dispari. Y1,Y2X