Eu uso a formulação equivalente user17410:
Entrada: vetores over , faz parte da entrada
Pergunta: Existem dois subconjuntos diferentes tais que
nX={x1,…,xm}{0,1}nn
A , B ⊆ X
∑x∈Ax=∑x∈Bx
A prova de dureza envolve muitas reduções intermediárias que seguem a mesma "cadeia" usada para provar a dureza do problema padrão EQUAL SUBSET SUM:
X3C SUBSET SUM PARTITION par-ímpar PARTITION EQUAL SUBSET SUM≤≤≤≤
(Ainda estou verificando para que possa estar errado :)
PASSO 1
O seguinte problema ( 0-1 VETOR SUBSET SUM ) é NP-complete: dado , vetores sobre e um vetor de soma alvo , decida se houver tal que
Prova : Redução direta da TAMPA EXATA POR 3 SETS (X3C): dado um conjunto de elementos e uma coleção de três subconjuntos de elementos criamos a configuração de instância 0-1 VECTOR SUM correspondente se e somente se o elementox i { 0 , 1 } n t Um ⊆ X Σ x ∈ Um x = t n Y = { y 1 , . . . , Y n } C m C = { C 1 , . . . , C m } x iX={x1,…,xm}xi{0,1}ntA⊆X
∑x∈Ax=t
nY={y1,...,yn}CmC={C1,...,Cm}j C i t = [ 1 , 1 , . . .1 ]xi[j]=1jestá incluído no ; .
Cit=[1,1,...1]
PASSO 2
Encontrar dois subconjuntos de somas iguais entre 0-1 vetores acima de , é equivalente a encontrar dois subconjuntos de somas iguais de vetores com elemento de tamanho delimitado onde para fixo .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
Por exemplo, o conjunto de vetores:
x1 2 1 0 1
x2 1 2 3 1
É equivalente aos vetores 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, os vetores 0-1 são agrupados (se você selecionar um vetor do grupo x2 e adicioná-lo ao subconjunto , será forçado a incluir em os outros dois e colocar o último no subconjunto ) e as somas serão feitas em unário (esta é a razão pela qual os vetores não binários correspondentes devem conter elementos que são polinomialmente limitados em relação a ).A B m nAABmn
Portanto, o seguinte problema é NP-completo.
ETAPA 3
O seguinte problema ( 0-1 PARCÇÃO DO VETOR ) é NP-completo: dado , vetores sobre decidem se pode ser particionado em dois subconjuntos modo que
x i { 0 , 1 } n X B 1 , B 2 Σ x ∈ B 1 x = Σ x ∈ B 2 xB={x1,…,xm}xi{0,1}nXB1,B2
∑x∈B1x=∑x∈B2x
t S = ∑ x i b ″ = t + SX={x1,…,xm}tS=∑xiXb′=−t+2Sb′′=t+SB=X∪{b′,b′′}
( ) Suponha que exista tal que ; definimos e ; temos
Um ⊆ X Σ x ∈ Um x = t B 1 = Uma ∪ { 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
( ) Suponha que e tenham soma igual. não podem pertencer ao mesmo conjunto (caso contrário, sua soma é e não podem ser "equilibrados" pelos elementos do outro conjunto). Suponha que ; temos: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
Por isso temos de ter e é uma solução válida para o 0-1 VETOR SUM.B 1 ∖ { b ′ }∑x∈B1∖{b′}x=tB1∖{b′}
Nós permitimos apenas 0-1 vetores no conjunto ; portanto, os vetores devem ser "representados em unário", como mostrado na ETAPA 2.b ′ , b ″Bb′,b′′
ETAPA 3
O problema ainda é NP-completo se os vetores são numerados de e os dois subconjuntos devem ter tamanho igual e exigimos que contenha exatamente um de para (portanto, pela restrição de tamanho igual, o outro elemento do par deve ser incluído em ) ( 0-1 PARTIÇÃO MESMO DE VETOR DO VETOR ).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:: A redução é de 0-1 PARTIÇÃO DE VETOR e é semelhante à redução de PARTIÇÃO para PARTIÇÃO MESMO. Se são vectores sobre substitua cada vector com dois vectores de mais de :m { 0 , 1 } n { 0 , 1 } 2 n + 2 mX={x1,...,xm}m{0,1}n{ 0 , 1 }2 n + 2 m
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
Devido ao elemento , os vetores e não podem estar contidos no mesmo subconjunto; e uma solução válida para a PARTIÇÃO MESMO VECTOR 0-1 VETOR corresponde a uma solução válida da PARTIÇÃO VETORIAL 0-1 original (basta escolher os elementos 2m + 1..2m + n de cada vetor da solução descartando vetores que contenham todos zeros nessas posições).x ′ 2 i - 1 x ′ 2 i2ix′2i−1x′2i
PASSO 4
Soma de subconjunto igual a 0-1 de VETOR (o problema na questão) é NP-completa: redução de PARTIÇÃO MÉDIA DE VETOR DE 0-1 semelhante à redução de PARTIÇÃO MÉDIA DE VETOR A PARTIDO DE SOMA IGUAL, como provado em Gerhard J. Woeginger , Zhongliang Yu, No problema de soma de subconjuntos iguais : dado um conjunto ordenado de vetores acima de , construímos um defina de vetores sobre .2 m { 0 , 1 } n Y 3 m { 0 , 1 } 2 m + nA={x1,...,x2m}2m{0,1}nY3m{0,1}2m+n
Para cada vetor , construímos um vetor sobre desta maneira:y 2 i - 1 { 0 , 1 } 2 m + nx2i−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 vetor , construímos um vetor sobre desta maneira:y 2 i { 0 , 1 } 2 m + nx2i,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 parax2m
1 2 ... ... m m+1 m+2 ... . 2m 2m+1 ... 2m+n
------------------------------------------------------
2 0 ... ... 0 0 0 1 x_{2m}
Finalmente, adicionamos elementos fictícios: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 novamente que vetores contendo valores podem ser representados em "unário" usando um grupo de 0-1 vetores, como mostrado no PASSO 2.>1
Y 1 , Y 2 XY tem dois subconjuntos disjuntos com soma igual se e somente se tiver uma partição ímpar. Y1,Y2X