Étant donné une matrice binaire par (les entrées sont ou 1 ), le problème est de déterminer s'il existe deux vecteurs binaires v 1 ≠ v 2 tels que M v 1 = M v 2 (toutes les opérations effectuées sur Z ). Ce problème est-il difficile à NP?n M 0
C'est clairement dans NP car vous pouvez donner deux vecteurs comme témoins.
De manière équivalente: étant donné , existe-t-il un vecteur non nul tel que ?
De manière équivalente: étant donné vecteurs sur , existe-t-il deux sous-ensembles différents tels que ?
cc.complexity-theory
np-hardness
linear-algebra
Mohammad Al-Turkistany
la source
la source
Réponses:
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 xn X={x1,…,xm} {0,1}n n
A,B⊆X
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}n t A⊆X
É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,B m {0,1}n A,B x1...xm max{xi}=O((mn)k) k
Par exemple l'ensemble des vecteurs:
Est équivalent aux vecteurs 0-1:
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 ).A A B mn
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}n X B1,B2
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} t S=∑xi X b′=−t+2S b′′=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=t B1=A∪{b′} B2=B∖B1=X∖{A}∪{b′′} ∑ x ∈ B 2 = b ″ + ∑ x ∈ X ∖ A x = b ″ + S - ∑ x ∈ A x = 2 S
( ) 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:⇐ B1 B2 b′,b′′ ≥3S b′=−t+2S∈B1
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=t B1∖{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.B b′,b′′
ÉTAPE 3
ÉTAPE 4
la source
EDIT: Ma preuve d'origine avait un bug. Je crois maintenant que c'est corrigé.
C'est assez facile à faire. Pour chaque paire de positions de bits adjacentes, ajoutez trois vecteurs de la forme suivante. Ici, les deux derniers bits sont des coordonnées qui ne sont pas nulles uniquement dans ces trois vecteurs, et chaque bit non explicitement donné ci-dessous est 0.
Permettez-moi de faire un exemple. Nous voulons montrer comment fonctionne 5 + 3 = 8.
Voici 8 = 5 + 3 en binaire:
=
Ces chaînes de bits donnent la même somme en binaire, mais pas en addition vectorielle.
Maintenant, nous avons des portées aux 1, 2, 4 endroits, nous devons donc ajouter trois ensembles de trois vecteurs à l'équation afin d'effectuer ces portées.
=
Ces ensembles ont désormais la même somme en addition vectorielle. Les sommes sont:
dans les deux cas.
vous avez le problème d'obtenir deux ensembles de vecteurs différents donnant la même somme:
=
travaux. Vous pouvez facilement vérifier que la relation
=
est la seule relation possible entre ces six vecteurs car la matrice formée par ces six rangées a le rang 5.
la source
Cela ne répond pas à la question mais peut contenir des observations utiles. Je ne voulais pas le mettre en commentaire car je trouve des commentaires longs et fragmentés gênants à lire
La reformulation du problème comme indiqué dans mon commentaire à la question:
Je propose d'appeler ce problème 2SUBSET-BINARY-VECTOR-SUM car nous recherchons 2 sous-ensembles de vecteurs binaires.
Quelques observations:
Si contient un vecteur plusieurs fois, la réponse devient triviale. Soit x i , xX xi,xj∈X xi=xj A={xi},B={xj}
Ces points signifient essentiellement que vous recherchez une partition de en deux ensembles ( A ∪ B = X ) ou trois ensembles. Le troisième ensemble représente les vecteurs qui ont été non sélectionnée soit pour A ou B . Soit S (X A∪B=X A B S(n,k) n k S(n,3)+S(n,2) solutions possibles, donc la force brute n'est pas possible ici.
Considérez . Ce n'est pas dans UNIQUE-PARTITION mais A = { 1{1,2,3,5} A={1,2},B={3} m>1 A,B
la source