Decidi se il kernel di una matrice contiene un vettore diverso da zero, tutte le cui voci sono -1, 0 o 1


27

Dato un da matrice binaria (le voci sono o ), il problema è determinare se esistono due vettori binari tali che (tutte le operazioni eseguite su ). Questo problema è NP-difficile?n M 0 1 v 1v 2 M v 1 = M v 2 ZmnM01v1v2Mv1=Mv2Z

È chiaramente in NP in quanto è possibile fornire due vettori come testimoni.


Equivalentemente: dato , esiste un vettore diverso da zero tale che ?v { - 1 , 0 , 1 } n M v = 0Mv{1,0,1}nMv=0

Equivalentemente: dati vettori su , ci sono due diversi sottogruppi tali che ?X = { x 1 , , x n }nX={x1,,xn}{0,1}mA,BXxAx=xBx


A meno che non fraintenda la domanda, ciò non equivale a determinare se esiste una diversa da zero tale che ? E questo non è risolto determinando il grado di ? vMv=0M
mum

8
@mhum no, equivale a determinare se esiste un valore diverso da zero tale che . v{1,0,1}nMv=0
Sasho Nikolov,

Ah. Mi mancava che anche dovesse essere binario. Errore mio. vi
mum

2
Sembra il problema di fattibilità per la programmazione di 0/1-intero. Le operazioni su o su ? ZZ2
Kaveh,

3
Riformulazione del problema: dati n vettori X={x1,,xn} oltre {0,1}m . Esistono due diversi sottoinsiemi A,BX tali che xAx=xBx ? Penserei che è più probabile che sia NP-difficile se le somme non sono prese modulo due, cioè le operazioni sono finite Z
John D.

Risposte:


7

Uso la formulazione equivalente user17410:

Input: vettori over , fa parte dell'input Domanda: Esistono due diversi sottoinsiemi tali che nX={x1,,xm}{0,1}nn
UN,BX

ΣXUNX=ΣXBX

La prova di durezza comporta molte riduzioni intermedie che seguono la stessa "catena" utilizzata per dimostrare la durezza del problema SUM SUBSET standard:

X3C SOMMA SUBSET PARTITION EVEN-ODD PARTITION EQUAL SUBSET SUM

(Lo sto ancora verificando, quindi potrebbe essere sbagliato :)

PASSO 1

Il seguente problema ( 0-1 SOMMA SUBSET VETTORE ) è NP-completo: dato , vettori su e un vettore di somma target , decidi se esiste tale che Prova : riduzione diretta da EXACT COVER DI 3-SETS (X3C): dato un insieme di elementi e una raccolta di tre elementi sottoinsiemi costruiamo la corrispondente impostazione dell'istanza VECTOR SUM 0-1 se e solo se l'elementox i { 0 , 1 } n t A X x A x = tX={x1,,xm}xi{0,1}ntAX

xAx=t
Y = { y 1 , . . . , Y n } C m C = { C 1 , . . . , C m } x i [ j ] = 1 jnY={y1,...,yn}CmC={C1,...,Cm}xi[j]=1jè incluso in ; . t = [ 1 , 1 , . . .1 ]Cit=[1,1,...1]

PASSAGGIO 2 Trovare due sottoinsiemi di somma uguale tra 0-1 vettori oltre , equivale a trovare due sottoinsiemi di somma uguale di vettori con elemento di dimensione limitata dove per fisso .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

Ad esempio il set di vettori:

x1 2 1 0 1
x2 1 2 3 1

È equivalente ai vettori 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 i vettori 0-1 sono raggruppati (se si seleziona un vettore del gruppo x2 e lo si aggiunge al sottoinsieme , quindi si è costretti a includere in gli altri due e si inserisce l'ultimo nel sottoinsieme ) e le somme sono fatte in unario (questo è il motivo per cui i corrispondenti vettori non binari devono contenere elementi che sono polinomialmente limitati rispetto a ).A B m nAABmn

Quindi il seguente problema è NP-completo.

PASSAGGIO 3

Il seguente problema ( 0-1 VECTOR PARTITION ) è NP-completo: dato , vettori sopra decide se può essere partizionato in due sottoinsiemi tale che x i { 0 , 1 } n X B 1 , B 2 x B 1 x = x B 2 xB={x1,,xm}xio{0,1}nXB1,B2

xB1x=xB2x

Prova : riduzione da 0-1 SOMMA VETTORIALE: dato e il vettore della somma target ; lascia , aggiungiamo a i seguenti vettori: e : .t S = x i X b = - t + 2 S b = t + SX={x1,,xm}tS=xiXb=t+2Sb=t+SB=X{b,b}

( ) Supponiamo che esista tale che ; impostiamo e ; abbiamo A X x A x = t B 1 = A { b } B 2 = B B 1 = X { A } { b } x B 1 = b + x A x = t - t + S = 2 SAXxAx=tB1=A{b}B2=BB1=X{A}{b}

xB1=b+xAx=tt+S=2S
xB2=b+xXAx=b+SxAx=2S

( ) Supponi che e abbiano la stessa somma. non possono entrambi appartenere allo stesso set (altrimenti la loro somma è e non può essere "bilanciata" dagli elementi nell'altro set). Supponiamo che ; noi abbiamo:B 1 B 2 b , b 3 S b = - t + 2 S B 1B1B2b,b3Sb=t+2SB1

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

Quindi dobbiamo avere e è una soluzione valida per il 0-1 somma vettoriale.B 1{ b }xB1{b}x=tB1{b}

Consentiamo solo 0-1 vettori nell'insieme , quindi i vettori devono essere "rappresentati in unario" come mostrato nel PASSAGGIO 2.b , b Bb,b

PASSAGGIO 3

Il problema è ancora NP-completo se i vettori sono numerati da e i due sottoinsiemi devono avere le stesse dimensioni e richiediamo che contenga esattamente uno di per (quindi, in base al vincolo di uguale dimensione, l'altro elemento della coppia deve essere incluso in ) ( 0-1 VECTOR EVEN-ODD PARTITION ).X 1 , X 2 X 1 x 2 i - 1 , x 2 i 1 i n X 2x1,...,x2nX1,X2X1x2i1,x2i1inX2

Prova:: la riduzione è compresa tra 0-1 VECTOR PARTITION ed è simile alla riduzione da PARTITION a EVEN-ODD PARTITION. Se sono vettori su sostituisci ogni vettore con due vettori su :m { 0 , 1 } n { 0 , 1 } 2 n + 2 mX={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 

A causa dell'elemento , i vettori e non possono essere contenuti nello stesso sottoinsieme; e una soluzione valida per 0-1 VECTOR EVEN-ODD PARTITION corrisponde a una soluzione valida per l'originale 0-1 VECTOR PARTITION (basta selezionare gli elementi 2m + 1..2m + n di ciascun vettore della soluzione scartando i vettori che contengono tutti zeri in quelle posizioni).x 2 i - 1 x 2 i2ix2i1x2i

PASSAGGIO 4

0-1 VECTOR EQUAL SUBSET SUM (il problema nella domanda) è NP-completo: riduzione da 0-1 VECTOR EVEN-ODD PARTITION simile alla riduzione da EVEN-ODD PARTITION a EQUAL SUM SUBSET, come dimostrato in Gerhard J. Woeginger , Zhongliang Yu, Sul problema della somma parziale parziale : dato un set ordinato di vettori sopra , costruiamo un imposta di vettori su .2 m { 0 , 1 } n Y 3 m { 0 , 1 } 2 m + nA={x1,...,x2m}2m{0,1}nY3m{0,1}2m+n

Per ogni vettore costruiamo un vettore sopra in questo modo: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}

Per ogni vettore costruiamo un vettore sopra in questo modo: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}

elemento ax2m

  1 2 ...       ... m  m+1 m+2 ...  . 2m  2m+1 ... 2m+n
  ------------------------------------------------------
  2 0 ...       ... 0   0   0          1  x_{2m}

Infine aggiungiamo elementi fittizi: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

Notare ancora che i vettori contenenti valori possono essere rappresentati in "unario" usando un gruppo di 0-1 vettori come mostrato nel PASSAGGIO 2.>1

Y ha due sottoinsiemi disgiunti con somma uguale se e solo se ha una partizione pari-dispari. Y1,Y2X


quello che chiami partizione vettoriale 0-1 equivale al problema di determinare se un sistema impostato presenta discrepanza 0. questo è NP difficile, dal momento che cattura ad esempio il problema della divisione del set 2-2, vedi thm 9 in questo documento di guruswami cs.cmu.edu/~venkatg/pubs/papers/ss-jl.ps ; il mio articolo ha un po 'di più sulla durezza della discrepanza paul.rutgers.edu/~anikolov/Files/charikarM.pdf
Nikolov

anche io credo che tu dichiari erroneamente il dispari-dispari problema di partizione. se non ci sono due vettori consecutivi nello stesso set, il problema è banale. Credo che dire che è richiesto per tutti i { 1 , 2 } e 1 j m|Xi{x2j1,x2j}|=1i{1,2}1jm
Sasho Nikolov il

@SashoNikolov: sì, intendo che per ogni coppia (e nella dimostrazione ( x 2 i - 1 , x 2 i ) ) esattamente uno è incluso in X 1 ; Modificherò la risposta(x2i1,x2i)(x2i1,x2i)X1
Marzio De Biasi il

8

EDIT: la mia prova originale aveva un bug. Ora credo che sia stato risolto.

Riduciamo a questo problema il problema dei SOTTOTETTI EQUAL SUM. PUNTI SOMMERSI DI SOMMA è il problema di: dato un insieme di numeri interi, trova due sottoinsiemi disgiunti che hanno la stessa somma. I SOTTOMETRI EQUAL SUM sono noti per essere NP-completi.m

Supponiamo che queste stringhe di bit non fossero vettori ma rappresentazioni di numeri -bit in binario. Quindi il problema sarebbe NP-completo con una riduzione da EQUAL SUM SUBSETS. Mostrerò come far sì che questi vettori si comportino come se fossero numeri binari. Ciò di cui abbiamo bisogno è essere in grado di fare porta; cioè, per ogni coppia di coordinate adiacenti, dobbiamo essere in grado di sostituire il vettore ..02 .. con ..10 ...n

Come possiamo farlo? Abbiamo bisogno di un gadget che ci consenta di farlo. In particolare, abbiamo bisogno di due sottoinsiemi le cui somme sono ..02 .. xe ..10 .. x, dove x è una stringa di bit che utilizza nuove coordinate (ovvero, coordinate che non sono nessuna delle coordinate che compongono il binario rappresentazioni) e dove esiste un solo modo per creare due sottoinsiemi con la stessa somma nelle nuove posizioni di bit corrispondenti a x.n

Questo è abbastanza facile da fare. Per ogni coppia di posizioni di bit adiacenti, aggiungere tre vettori del seguente modulo. Qui gli ultimi due bit sono coordinate che sono diverse da zero solo in questi tre vettori e ogni bit non indicato esplicitamente di seguito è 0.

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

Lasciami fare un esempio. Vogliamo mostrare come funziona 5 + 3 = 8.

Ecco 8 = 5 + 3 in binario:

1000

=

0101
0011

Queste stringhe di bit forniscono la stessa somma in binario, ma non in aggiunta vettoriale.

Ora, abbiamo dei punti 1, 2, 4, quindi dobbiamo aggiungere tre serie di tre vettori all'equazione in modo da eseguire questi valori.

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

Questi set ora hanno la stessa somma in aggiunta vettoriale. Le somme sono:

1222 11 11 11

in entrambi i casi.

nn

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

hai il problema di ottenere due diversi set di vettori che danno la stessa somma:

..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

lavori. Puoi facilmente verificare che la relazione

11000
00100
00010
00001

=

10001
01110

è l'unica relazione possibile tra questi sei vettori perché la matrice formata da queste sei file ha il grado 5.


Un chiarimento, dici "Ora, abbiamo i posti 1, 2, 4"; ma nel problema non sappiamo quali vettori sono stati selezionati, quindi dobbiamo aggiungere il gadget carry ad ogni posizione di bit adiacente? E nel primo elenco dell'esempio ci sono 7 vettori, è corretto?
Marzio De Biasi,

Supponiamo di avere una soluzione per il problema della somma dei sottoinsiemi. Cioè: abbiamo 3 + 5 = 8. Ora, possiamo guardare l'aggiunta in questo testimone e scoprire dove sono i carry. Questo ci dà la soluzione per il problema dell'aggiunta di vettori. Un problema ha una soluzione se e solo se l'altro lo fa.
Peter Shor,

2,3,5,78

PS Ho anche trovato una prova del fatto che il problema è NP-completo, ma è molto più lungo del tuo, quindi sto cercando di capirlo ... più semplice è meglio :-)
Marzio De Biasi

n1n1

3

Questo non risponde alla domanda ma potrebbe contenere alcune osservazioni utili. Non volevo metterlo come commento perché trovo fastidiosi i commenti lunghi e frammentati da leggere

La riformulazione del problema come indicato nel mio commento alla domanda:

nX={X1,...,Xn}{0,1}mm

UN,BX

ΣXUNX=ΣXBX

X,UN,BN

Propongo di chiamare questo problema 2SUBSET-BINARY-VECTOR-SUM a causa del fatto che stiamo cercando 2 sottoinsiemi di vettori binari.

Alcune osservazioni:

  • XXio,XjXXio=XjUN={Xio},B={Xj}

  • X0XUNX{0}B=UN{0}

  • UNBBUN

  • UN,BUNBX

  • UN,BUNB

XAB=XABS(n,k)nkS(n,3)+S(n,2) possibili soluzioni, quindi la forza bruta non è fattibile qui.

Nmm=1A,B

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.