Decidir si el núcleo de una matriz contiene algún vector distinto de cero, cuyas entradas son -1, 0 o 1


27

Dada una matriz binaria por (las entradas son o ), el problema es determinar si existen dos vectores binarios modo que (todas las operaciones se realizan sobre ). ¿Es este problema NP-hard?mnM01v1v2Mv1=Mv2Z

Está claramente en NP, ya que puede dar dos vectores como testigos.


Equivalente: dado , ¿hay un vector distinto de cero tal que ?Mv{1,0,1}nMv=0

Equivalente: dados vectores sobre , ¿hay dos subconjuntos diferentes tales que ?nX={x1,,xn}{0,1}mA,BXxAx=xBx


A menos que malinterprete la pregunta, ¿no es esto equivalente a determinar si hay una distinta de cero tal que ? ¿Y no se resuelve esto determinando el rango de ? vMv=0M
mhum

8
@mhum no, es equivalente a determinar si hay un distinto de cero tal que . v{1,0,1}nMv=0
Sasho Nikolov

Ah Extrañé que v_ivi también tuviera que ser binario. Mi error.
mhum

2
Parece ser el problema de viabilidad para la programación de 0/1 enteros. ¿Las operaciones están sobre o sobre ? ZZ2
Kaveh

3
Reformulación del problema: dados vectores sobre . ¿Hay dos subconjuntos diferentes modo que ? Creo que es más probable que sea NP-hard si las sumas no se toman en el módulo dos, es decir, las operaciones han terminadonX={x1,,xn}{0,1}mA,BXxAx=xBxZ
John D.

Respuestas:


7

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,BX

xAx=xBx

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}ntAX

xAx=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

xB1x=xB2x

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 AAXxAx=tB1=A{b}B2=BB1=X{A}{b}x B 2 = b + x X A x = b + S - x A x = 2 S

xB1=b+xAx=tt+S=2S
xB2=b+xXAx=b+SxAx=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,b3Sb=t+2SB1

t+2S+xB1{b}x=t+S+xB2{b}x

Por lo tanto tenemos que tener y B 1{ b ' } es una solución válida para el 0-1 VECTOR SUM.xB1{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,X2X1x2i1,x2i1inX2

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).2ix2i1x2i

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:x2i1,1imy2i1{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,1im1y2i{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


lo que llama partición vectorial 0-1 es equivalente al problema de determinar si un sistema establecido tiene una discrepancia 0. esto es NP difícil, ya que captura, por ejemplo, el problema de división de conjuntos 2-2, vea el 9 en este documento de guruswami cs.cmu.edu/~venkatg/pubs/papers/ss-jl.ps ; mi artículo tiene un poco más sobre la dureza de la discrepancia paul.rutgers.edu/~anikolov/Files/charikarM.pdf
Sasho Nikolov

También creo que usted expresa mal el problema de partición par-impar. Si no hay dos vectores consecutivos en el mismo conjunto, el problema es trivial. creo que quieres decir eso es obligatorio para todo i { 1 , 2 } y 1 j m|Xi{x2j1,x2j}|=1i{1,2}1jm
Sasho Nikolov

@SashoNikolov: sí, quiero decir que por cada par (y en la prueba ( x 2 i - 1 , x 2 i ) ) exactamente uno está incluido en X 1 ; Editaré la respuesta(x2i1,x2i)(x2i1,x2i)X1
Marzio De Biasi

8

EDITAR: Mi prueba original tenía un error. Ahora creo que está arreglado.

Reducimos el problema de los EQUIPOS DE SUMA IGUAL a este problema. El problema de: SUBSETOS DE SUMA IGUAL es: dado un conjunto de enteros, encontrar dos subconjuntos disjuntos que tengan la misma suma. Se sabe que los SUBSETOS DE IGUAL SUMA son NP completos.m

Supongamos que estas cadenas de bits no son vectores, sino representaciones de números de bits en binario. Entonces el problema sería NP-completo mediante una reducción de SUBSETES DE SUMA IGUAL. Mostraré cómo hacer que estos vectores se comporten como si fueran números binarios. Lo que necesitamos es poder hacer acarreos; es decir, para cada par de coordenadas adyacentes, necesitamos poder reemplazar el vector ..02 .. por ..10 ...n

¿Cómo podemos hacer eso? Necesitamos un gadget que nos permita hacer eso. En particular, necesitamos dos subconjuntos cuyas sumas son ..02 .. x y ..10 .. x, donde x es una cadena de bits que utiliza nuevas coordenadas (es decir, coordenadas que no son ninguna de las coordenadas que forman el binario representaciones), y donde solo hay una forma de crear dos subconjuntos con la misma suma en las nuevas posiciones de bit correspondientes a x.n

Esto es bastante fácil de hacer. Para cada par de posiciones de bits adyacentes, agregue tres vectores de la siguiente forma. Aquí los dos últimos bits son coordenadas que no son cero solo en estos tres vectores, y cada bit que no se proporciona explícitamente a continuación es 0.

..10 .. 11
..01 .. 10
..01 .. 01

Déjame hacer un ejemplo. Queremos mostrar cómo funciona 5 + 3 = 8.

Aquí hay 8 = 5 + 3 en binario:

1000

=

0101
0011

Estas cadenas de bits dan la misma suma en binario, pero no en la suma de vectores.

Ahora, tenemos acarreos en los lugares 1, 2, 4, por lo que necesitamos agregar tres conjuntos de tres vectores a la ecuación para realizar estos acarreos.

1000 00 00 00
0001 00 00 01
0001 00 00 10
0010 00 01 00
0010 00 10 00
0100 01 00 00
0100 10 00 00

=

0101 00 00 00
0011 00 00 00
0010 00 00 11
0100 00 11 00
1000 11 00 00

Estos conjuntos ahora tienen la misma suma en la suma de vectores. Las sumas son:

1222 11 11 11

en ambos casos.

nn

..01 .. 01 00
..01 .. 10 00
..10 .. 11 00
..01 .. 00 01
..01 .. 00 10
..10 .. 00 11

tienes el problema de que obtienes dos conjuntos diferentes de vectores que dan la misma suma:

..01 .. 01 00
..01 .. 10 00
..10 .. 00 11

=

..01 .. 00 01
..01 .. 00 10
..10 .. 11 00

lognn

..01 .. 11000
..01 .. 00100
..01 .. 00010
..01 .. 00001
..10 .. 10001
..10 .. 01110

trabajos. Puede verificar fácilmente que la relación

11000
00100
00010
00001

=

10001
01110

es la única relación posible entre estos seis vectores porque la matriz formada por estas seis filas tiene rango 5.


Una aclaración, usted dice "Ahora, tenemos acarreos en los lugares 1, 2, 4"; pero en el problema no sabemos qué vectores están seleccionados, por lo que debemos agregar el gadget de transporte a cada posición de bit adyacente. Y en la primera lista del ejemplo hay 7 vectores, ¿es correcto?
Marzio De Biasi

Suponga que tiene una solución para el problema de suma de subconjuntos. Es decir: tenemos 3 + 5 = 8. Ahora, podemos ver la adición en este testigo y descubrir dónde están los transportistas. Esto nos da la solución para el problema de la suma de vectores. Un problema tiene una solución si y solo si el otro lo tiene.
Peter Shor

2,3,5,78

PD: También encontré una prueba de que el problema es NP completo, pero es mucho más largo que el tuyo, así que estoy tratando de entenderlo ... más simple es mejor :-)
Marzio De Biasi

n1n1

3

Esto no responde la pregunta, pero puede contener algunas observaciones útiles. No quería ponerlo como un comentario porque los comentarios largos y fragmentados son molestos de leer

La reformulación del problema como se indica en mi comentario a la pregunta:

nX={x1,,xn}{0,1}mm

A,BX

xAx=xBx

X,A,BN

Propongo llamar a este problema 2SUBSET-BINARY-VECTOR-SUM debido al hecho de que estamos buscando 2 subconjuntos de vectores binarios.

Algunas observaciones

  • Xxi,xjXxi=xjA={xi},B={xj}

  • X0XAX{0}B=A{0}

  • ABBA

  • A,BABX

  • A,BAB

XAB=XABS(n,k)nkS(n,3)+S(n,2) posibles soluciones, por lo que la fuerza bruta no es factible aquí.

Nmm=1A,B

{1,2,3,5}A={1,2},B={3}m>1A,B

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.