Yo uso la formulación equivalente user17410:
Entrada: vectores X = { x 1 , ... , x m } sobre { 0 , 1 } n , n es parte de la entrada
Pregunta: ¿Hay dos subconjuntos diferentes A , B ⊆ X tales que
∑ x ∈ A x = ∑ x ∈ B xnX={x1,…,xm}{0,1}nn
A,B⊆X
∑x∈Ax=∑x∈Bx
La prueba de dureza involucra muchas reducciones intermedias que siguen la misma "cadena" utilizada para probar la dureza del problema estándar EQUAL SUBSET SUM:
X3c SUBSET SUM ≤ PARTITION ≤ PARTITION par-impar ≤ EQUAL SUBSET SUM≤≤≤≤
(Todavía lo estoy revisando, así que puede estar mal :)
PASO 1
El siguiente problema ( SUMA DEL SUBSETO DEL VECTOR 0-1 ) es NP-completo: dado , x i vectores sobre { 0 , 1 } ny un vector de suma objetivo t , decida si hay A ⊆ X tal que
∑ x ∈ A x = t Prueba : reducción directa de la CUBIERTA EXACTA POR 3-SETS (X3C): dado un conjunto de n elementos Y = { yX={x1,…,xm}xi{0,1}ntA⊆X
∑x∈Ax=t
n y una colección
C de
m tres elementos subconjuntos
C = { C 1 , . . . , C m } construimos la configuración de instancia 0-1 VECTOR SUM correspondiente
x i [ j ] = 1 si y solo si el elemento
j está incluido en
C i ;
t = [ 1 , 1 , . . .1Y={y1,...,yn}CmC={C1,...,Cm}xi[j]=1jCi .
t=[1,1,...1]
PASO 2
Encontrar dos subconjuntos de suma igual entre m 0-1 vectores sobre { 0 , 1 } n , es equivalente a encontrar dos subconjuntos de suma igual A , B de vectores con elemento de tamaño acotado x 1 . . . x m donde m a x { x i } = O ( ( m n ) k ) para k fijo .A,Bm{0,1}nA,Bx1...xmmax{xi}=O((mn)k)k
Por ejemplo el conjunto de vectores:
x1 2 1 0 1
x2 1 2 3 1
Es equivalente a los vectores 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, los vectores 0-1 se agrupan (si selecciona un vector del grupo x2 y lo agrega al subconjunto , entonces se ve obligado a incluir en A los otros dos y colocar el último en el subconjunto B ) y las sumas se hacen en unario (esta es la razón por la cual los vectores no binarios correspondientes deben contener elementos que están polinómicamente delimitados con respecto a m n ).AABmn
Entonces, el siguiente problema es NP-completo.
PASO 3
El siguiente problema ( 0-1 PARTICIÓN VECTORIAL ) es NP-completo: dado , x i vectores sobre { 0 , 1 } n deciden si X puede dividirse en dos subconjuntos B 1 , B 2 tal que
∑ x ∈ B 1 x = ∑ x ∈ B 2 xB={x1,…,xm}xi{0,1}nXB1,B2
∑x∈B1x=∑x∈B2x
Prueba : Reducción de 0-1 SUMA DEL VECTOR: dado
y el vector de suma objetivo t ; sea S = ∑ x i , agregamos a X los siguientes vectores: b ′ = - t + 2 S y b ″ = t + SX={x1,…,xm}tS=∑xiXb′=−t+2Sb′′=t+S: .B=X∪{b′,b′′}
( ) Suponga que existe A ⊆ X tal que ∑ x ∈ A x = t ; establecemos B 1 = A ∪ { b ′ } y B 2 = B ∖ B 1 = X ∖ { A } ∪ { b ″ } ; tenemos
∑ 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 = 2 S
∑x∈B1=b′+∑x∈Ax=t−t+S=2S
∑x∈B2=b′′+∑x∈X∖Ax=b′′+S−∑x∈Ax=2S
( ) Suponga que B 1 y B 2 tienen la misma suma. b ′ , b ″ no pueden pertenecer al mismo conjunto (de lo contrario, su suma es ≥ 3 S y los elementos del otro conjunto no pueden "equilibrarla"). Supongamos que b ′ = - t + 2 S ∈ B 1 ; tenemos:⇐B1B2b′,b′′≥3Sb′=−t+2S∈B1
−t+2S+∑x∈B1∖{b′}x=t+S+∑x∈B2∖{b′′}x
Por lo tanto tenemos que tener y B 1 ∖ { b ' } es una solución válida para el 0-1 VECTOR SUM.∑x∈B1∖{b′}x=tB1∖{b′}
Solo permitimos 0-1 vectores en el conjunto , por lo que los vectores b ' , b ″ deben estar "representados en unario" como se muestra en el PASO 2.Bb′,b′′
PASO 3
El problema es todavía NP-completo si los vectores se numeran de los dos subconjuntos X 1 , X 2 deben tener el mismo tamaño y se requiere que X 1 contenga exactamente uno de x 2 i - 1 , x 2 i para 1 ≤ i ≤ n (entonces, por la restricción de igual tamaño , el otro elemento del par debe incluirse en X 2 ) ( 0-1 VECTOR INCLUSO-PARTICIÓN ).x1,...,x2nX1,X2X1x2i−1,x2i1≤i≤nX2
Prueba: La reducción es de 0-1 PARTICIÓN DE VECTOR y es similar a la reducción de PARTICIÓN a PARTICIÓN INCLUSO. Si son m vectores sobre { 0 , 1 } n reemplaza cada vector con dos vectores sobre { 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
Debido al elemento , los vectores x ′ 2 i - 1 y x ′ 2 i no pueden estar contenidos en el mismo subconjunto; y una solución válida para la PARTICIÓN INCLUSIVA DEL VECTOR 0-1 corresponde a una solución válida de la PARTICIÓN DEL VECTOR 0-1 original (solo seleccione los elementos 2m + 1..2m + n de cada vector de la solución descartando los vectores que contienen todos ceros en esas posiciones).2ix′2i−1x′2i
ETAPA 4
0-1 VECTOR IGUAL SUBSET SUM (el problema en la pregunta) es NP-complete: reducción de 0-1 VECTOR PARTICIÓN INCLUSIVA similar a la reducción de EVEN-ODD PARTITION a EQUAL SUM SUBSET, como se demostró en Gerhard J. Woeginger , Zhongliang Yu, sobre el problema de igual subconjunto de suma : dado un conjunto ordenado de 2 m vectores sobre { 0 , 1 } n , construimos un conjunto Y de 3 m vectores sobre { 0 ,A={x1,...,x2m}2m{0,1}nY3m .{0,1}2m+n
Para cada vector construimos un vector y 2 i - 1 sobre { 0 , 1 } 2 m + n de esta manera: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}
Para cada vector construimos un vector y 2 i sobre { 0 , 1 } 2 m + n de esta manera: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}
Mapeamos el elemento parax2m
1 2 ... ... m m+1 m+2 ... . 2m 2m+1 ... 2m+n
------------------------------------------------------
2 0 ... ... 0 0 0 1 x_{2m}
Finalmente agregamos elementos ficticios: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
Observe nuevamente que los vectores que contienen valores pueden representarse en "unario" usando un grupo de vectores 0-1 como se muestra en el PASO 2.>1
tiene dos subconjuntos disjuntos Y 1 , Y 2 que tienen la misma suma si y solo si X tiene una partición par-impar. YY1,Y2X