J'utilise la formulation équivalente user17410:
Entrée: vecteurs X = { x 1 , … , x m } sur { 0 , 1 } n , n fait partie de l'entrée
Question: Y a-t-il deux sous-ensembles différents A , B ⊆ X tels que
∑ x ∈ A x = ∑ x ∈ B xnX={x1,…,xm}{0,1}nn
A,B⊆X
∑x∈Ax=∑x∈Bx
La preuve de dureté implique de nombreuses réductions intermédiaires qui suivent la même "chaîne" utilisée pour prouver la dureté du problème standard EQUAL SUBSET SUM:
X3c SUBSET SUM de l'PARTITION ≤ pair-impair PARTITION ≤ EQUAL SUM SUBSET≤≤≤≤
(Je suis toujours en train de le vérifier donc ça peut être faux :)
ÉTAPE 1
Le problème suivant ( 0-1 VECTOR SUBSET SUM ) est NP-complet: étant donné les vecteurs , x i sur { 0 , 1 } n et un vecteur de somme cible t , décidez s'il y a A ⊆ X tel que
∑ x ∈ A x = t Preuve : réduction directe de la COUVERTURE EXACTE PAR 3 ENSEMBLES (X3C): étant donné un ensemble de n éléments Y = { yX={x1,…,xm}xi{0,1}ntA⊆X
∑x∈Ax=t
n et un ensemble
C de
m trois éléments de
C = { C 1 , . . . , C m } nous construisons le paramètre d'instance 0-1 VECTOR SUM correspondant
x i [ j ] = 1 si et seulement si l'élément
j est inclus dans
C i ;
t = [ 1 , 1 , . . .1Y={y1,...,yn}CmC={C1,...,Cm}xi[j]=1jCi .
t=[1,1,...1]
ÉTAPE 2
Trouver deux sous-ensembles à somme égale parmi m vecteurs 0-1 sur { 0 , 1 } n , équivaut à trouver deux sous-ensembles à somme égale A , B de vecteurs avec un élément de taille bornée x 1 . . . x m où m a x { x i } = O ( ( m n ) k ) pour k fixe .A,Bm{0,1}nA,Bx1...xmmax{xi}=O((mn)k)k
Par exemple l'ensemble des vecteurs:
x1 2 1 0 1
x2 1 2 3 1
Est équivalent aux vecteurs 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
Informellement, les vecteurs 0-1 sont regroupés (si vous sélectionnez un vecteur du groupe x2 et l'ajoutez au sous-ensemble , vous êtes alors obligé d'inclure dans A les deux autres et de mettre le dernier dans le sous-ensemble B ) et les sommes sont faites dans unaire (c'est la raison pour laquelle les vecteurs non binaires correspondants doivent contenir des éléments qui sont polynomialement liés par rapport à m n ).AABmn
Le problème suivant est donc NP-complet.
ÉTAPE 3
Le problème suivant ( 0-1 VECTOR PARTITION ) est NP-complet: étant donné , x i vecteurs sur { 0 , 1 } n décident si X peut être partitionné en deux sous-ensembles B 1 , B 2 tel que
∑ x ∈ B 1 x = ∑ x ∈ B 2 xB={x1,…,xm}xi{0,1}nXB1,B2
∑x∈B1x=∑x∈B2x
Preuve : réduction de 0 à 1 SOMME DE VECTEURS: étant donné
et le vecteur de somme cible t ; soit S = ∑ x i , on ajoute à X les vecteurs suivants: b ′ = - t + 2 S et b ″ = t + SX={x1,…,xm}tS=∑xiXb′=−t+2Sb′′=t+S: .B=X∪{b′,b′′}
( ) Supposons qu'il existe A ⊆ X tel que ∑ x ∈ A x = t ; nous posons B 1 = A ∪ { b ′ } et B 2 = B ∖ B 1 = X ∖ { A } ∪ { b ″ } ; on a
∑ 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
( ) Supposons que B 1 et B 2 ont une somme égale. b ' , b " ne peuvent pas tous deux appartenir au même ensemble (sinon leur somme est ≥ 3 S et ne peut pas être" équilibrée "par les éléments de l'autre ensemble). Supposons que b ′ = - t + 2 S ∈ B 1 ; on a:⇐B1B2b′,b′′≥3Sb′=−t+2S∈B1
−t+2S+∑x∈B1∖{b′}x=t+S+∑x∈B2∖{b′′}x
Par conséquent, nous devons avoir et B 1 ∖ { b ′ } est une solution valide pour la SOMME DE VECTEURS 0-1.∑x∈B1∖{b′}x=tB1∖{b′}
Nous autorisons uniquement les vecteurs 0-1 dans l'ensemble , donc les vecteurs b ' , b " doivent être" représentés en unaire "comme indiqué à l'ÉTAPE 2.Bb′,b′′
ÉTAPE 3
x1,...,x2nX1,X2X1x2i−1,x2i1≤i≤nX2
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
2ix′2i−1x′2i
ÉTAPE 4
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
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
1 2 ... ... m m+1 m+2 ... . 2m 2m+1 ... 2m+n
------------------------------------------------------
2 0 ... ... 0 0 0 1 x_{2m}
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
>1
YY1,Y2X