행렬의 커널에 항목이 -1, 0 또는 1 인 0이 아닌 벡터가 포함되어 있는지 확인


27

주어 m 하여 n 이진 행렬 M (항목이 0 또는 1 개의 이진 벡터가 존재하면), 문제가 결정하는 v1v2 되도록 Mv1=Mv2 (모든 작업에 걸쳐 수행 Z ). 이 문제가 NP-hard입니까?

두 벡터를 증인으로 줄 수 있으므로 NP에 분명히 있습니다.


등가 : 주어 M , 비 - 제로 벡터가 v{1,0,1}n 되도록는 Mv=0 ?

등가 : 주어 n 벡터 X={x1,,xn} 위에 {0,1}m 있다 개의 상이한 서브 세트 , B X 되도록 Σ X X = Σ (X) B X ?A,BXxAx=xBx


내가 질문을 오해하지 않는 한, 이것은 M v = 0 과 같은 0이 아닌 가 있는지 확인하는 것과 같지 않습니까? 그리고 이것은 M 의 순위를 결정함으로써 해결되지 않습니까? vMv=0M
mhum

8
비제가없는 경우 @mhum, 그 판정에있어 동등한 v{1,0,1}n 되도록 Mv=0 .
사쇼 니콜 로프

아 나는 그 놓친 vi 이진해야했다합니다. 내 실수.
mhum

2
0 / 1-Integer Programming의 타당성 문제인 것 같습니다. Z 또는 이상의 작업 Z2입니까?
Kaveh

3
문제의 재구성 : { 0 , 1 } m에 대해 n 벡터 X={x1,,xn} 이 주어 집니다. 두 개의 서로 다른 서브 세트가있다 , B X 되도록 Σ X X = Σ (X) B X ? 합이 모듈로 2를 취하지 않으면 즉, 연산이 Z{0,1}mA,BXxAx=xBxZ
John D

답변:


7

나는 user17410에 해당하는 공식을 사용합니다.

입력 : 벡터 X = { X 1 , ... , X의 m } 위에 { 0 , 1 } N , N 개의 입력의 일부 질의 :가 두 개의 다른 서브 세트 , B X 되도록 Σ X X = Σ x B xnX={x1,,xm}{0,1}nn
A,BX

xAx=xBx

경도 증명에는 표준 EQUAL SUBSET SUM 문제의 경도를 증명하는 데 사용 된 동일한 "체인"을 따르는 많은 중간 감소가 포함됩니다.

X3C SUBSET SUM PARTITION EVEN-ODD PARTITION EQUAL SUBSET SUM

(아직도 확인 중이므로 잘못되었을 수 있습니다.)

1 단계

다음 문제 ( 0-1 VECTOR SUBSET SUM )는 NP-complete입니다. 주어진 , { 0 , 1 } n을 초과하는 x i 벡터 및 목표 합계 벡터 t 가 있는지 확인하십시오. x A x = t 증명 과 같은 A X : 3 세트 (X3C)에 의한 정확한 표지에서 직접 축소 : n 개의 요소 세트가 주어짐 Y = { yX={x1,,xm}xi{0,1}ntAX

xAx=t
n 및 수집 C m 세 요소 집합 C = { C (1) , . . . , C m } 요소 j C i에 포함되는경우에만해당하는 0-1 VECTOR SUM 인스턴스 설정 x i [ j ] = 1을 구성 합니다. t = [ 1 , 1 , . .1Y={y1,...,yn}CmC={C1,...,Cm}xi[j]=1jCi .t=[1,1,...1]

A,Bm{0,1}nA,Bx1...xmmax{xi}=O((mn)k)k

예를 들어 벡터 집합 :

x1 2 1 0 1
x2 1 2 3 1

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

AABmn

따라서 다음 문제는 NP-complete입니다.

3 단계

B={x1,,xm}xi{0,1}nXB1,B2

xB1x=xB2x

X={x1,,xm}tS=xiXb=t+2Sb=t+SB=X{b,b}

( ) 와 같은 가 있다고 가정하자 . 우리가 설정 및 ; 우리는 AXxAx=tB1=A{b}B2=BB1=X{A}{b}

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

( ) 과 합이 같다고 가정합니다 . 는 모두 같은 집합에 속할 수 없습니다 (그렇지 않으면 그 합은 이며 다른 집합의 요소에 의해 "균형을 수 없습니다"). 한다고 가정 ; 우리는 :B1B2b,b3Sb=t+2SB1

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

따라서 우리는 가 있어야 하고 는 0-1 VECTOR SUM에 유효한 솔루션입니다.xB1{b}x=tB1{b}

세트 에 0-1 개의 벡터 만 허용 하므로 벡터 2 는 STEP 2에 표시된대로 "단항으로 표시"되어야합니다.Bb,b

3 단계

벡터가 으로 번호가 매겨 지고 두 하위 집합 크기가 같아야하고 에 중 하나가 정확히 포함되어 있으면 문제는 여전히 NP- 완료 입니다. 대 (따라서, 동일한 크기의 제약에 의해, 한 쌍의 다른 요소가 포함되어 있어야 ) ( 0-1 VECTOR EVEN-ODD PARTITION ).x1,...,x2nX1,X2X1x2i1,x2i1inX2

증명 : : 축소는 0-1 VECTOR PARTITION이며 PARTITION에서 EVEN-ODD PARTITION으로 감소하는 것과 유사합니다. 만약 이다 벡터 위에 위에 두 벡터의 각 벡터를 대체 :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 

요소 로 인해 벡터 및 는 동일한 부분 집합에 포함될 수 없습니다. 0-1 VECTOR EVEN-ODD PARTITION에 대한 유효한 솔루션은 원래 0-1 VECTOR PARTITION의 유효한 솔루션에 해당합니다. 해당 위치의 0).2ix2i1x2i

4 단계

0-1 VECTOR EQUAL SUBSET SUM (문제의 문제)은 NP-complete입니다. Gerard J. Woeginger 에서 입증 된 것처럼 EVEN-ODD PARTITION에서 EQUAL SUM SUBSET로 축소 한 것과 유사한 0-1 VECTOR EVEN-ODD PARTITION 감소 , Zhongliang Yu, 동일 부분 집합 문제에서 : 에 대해 벡터 의 순서 집합 가 주어지면 에 대해 벡터의 를 설정 합니다.A={x1,...,x2m}2m{0,1}nY3m{0,1}2m+n

모든 벡터 대해 다음 과 같이 위에 벡터 을 만듭니다 .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}

모든 벡터 대해 다음 과 같이 위에 벡터 를 만듭니다 .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}

요소 를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

값을 포함하는 벡터 는 STEP 2에 표시된 것과 같은 0-1 개의 벡터 그룹을 사용하여 "단항"으로 표현 될 수 있습니다.>1

Y 에 짝수 홀수 파티션이있는 경우에만 에 두 개의 분리 된 서브 세트의 합계가 동일 합니다. Y1,Y2X


0-1 벡터 파티션이라고 부르는 것은 세트 시스템에 불일치 0이 있는지 확인하는 문제와 같습니다. 이것은 2-2- 세트 분할 문제를 캡처하기 때문에 NP 하드입니다. guruswami의이 문서의 thm 9 참조 cs.cmu.edu/~venkatg/pubs/papers/ss-jl.ps ; 내 논문은 불일치의 경도에 대해 좀 더 많은 내용을 가지고있다. paul.rutgers.edu/~anikolov/Files/charikarM.pdf
Sasho Nikolov

또한 짝수 홀수 파티션 문제를 잘못 진술했다고 생각합니다. 두 세트의 연속 된 벡터가 같은 세트에있을 수 없다면 문제는 사소한 것입니다. 나는 당신이 은 모든 및|Xi{x2j1,x2j}|=1i{1,2}1jm
Sasho Nikolov

@SashoNikolov : 예, 모든 쌍 (그리고 증명 )에 대해 정확히 하나는 포함 ; 답을 편집하겠습니다(x2i1,x2i)(x2i1,x2i)X1
Marzio De Biasi

8

편집 : 내 원래 증거는 버그가 있었다. 나는 그것이 고정되어 있다고 생각합니다.

이 문제로 EQUAL SUM SUBSETS 문제를 줄입니다. EQUM SUM SUBSETS는 다음과 같은 문제입니다. 개의 정수 세트가 주어지면 같은 합을 갖는 두 개의 분리 된 서브 세트를 찾으십시오. EQUAL SUM SUBSETS는 NP-complete 인 것으로 알려져 있습니다 .m

이 비트 문자열이 벡터가 아니라 이진수 로 비트 숫자의 표현이라고 가정합니다 . 그런 다음 EQUAL SUM SUBSETS를 줄이면 문제가 NP 완료됩니다. 이 벡터를 이진수처럼 동작하게 만드는 방법을 보여 드리겠습니다. 우리가 필요로하는 것은 운반을 할 수있는 것입니다. 즉, 모든 인접 좌표 쌍마다 벡터 ..02 ..를 ..10 ..으로 대체 할 수 있어야합니다.n

우리는 어떻게 할 수 있습니까? 그렇게 할 수 있는 가젯 이 필요합니다. 특히, 합이 ..02 .. x 및 ..10 .. x 인 두 개의 하위 집합이 필요합니다. 여기서 x는 새로운 좌표 (즉, 이진을 구성하는 좌표 가 아닌 좌표)를 사용하는 비트 열입니다. x에 해당하는 새로운 비트 위치에서 같은 합으로 두 개의 부분 집합을 생성 할 수있는 방법이 하나 뿐인 경우.n

이것은 매우 쉽습니다. 인접한 비트 위치 쌍마다 다음 형식의 벡터 3 개를 추가하십시오. 여기서 마지막 두 비트는이 세 벡터에서만 0이 아닌 좌표이며 아래에 명시 적으로 지정되지 않은 모든 비트는 0입니다.

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

예를 들어 보겠습니다. 5 + 3 = 8의 작동 방식을 보여 드리고자합니다.

다음은 이진수 8 = 5 + 3입니다.

1000

=

0101
0011

이 비트 문자열은 이진수로 같은 합을 주지만 벡터 추가에서는 아닙니다.

이제 1, 2, 4 자리에 캐리가 있으므로이 캐리를 수행하기 위해 3 개의 벡터 세트 3 개를 방정식에 추가해야합니다.

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
000010 00 00 11
0100 00 11 00
1000 11 00 00

이 세트는 이제 벡터 합의 합계가 동일합니다. 합계는 다음과 같습니다.

1222 11 11 11

두 경우 모두.

이 구조는 위치 당 하나의 캐리가있는 경우 잘 작동하지만, 잠재적 거기 수 위치에 따라 전달, 당신은 당신의 건설에 처리 할 수 있는지 확인해야합니다 전달하고, 다른 방해하지 않는 나른다 것을 서로 서로 함께. 예를 들어, 동일한 한 쌍의 인접한 위치에 대해 두 개의 서로 다른 세 벡터 세트를 추가 한 경우 (원래 증명에서 제안한 것) :nn

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

같은 합을주는 두 개의 다른 벡터 집합을 얻는다는 문제가 있습니다.

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

=

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

이 문제를 해결하는 방법? 1을 운반 할 수있는 벡터 세트 1 개, 2를 운반 할 수있는 세트 1 개, 4, 8, , 2 대해 한 세트를 추가하십시오 . 나는 지금이 구성의 세부 사항을 해결하지는 않겠지 만, 그것은 매우 간단해야합니다. 각 숫자에는 고유 한 이진 표현이 있으므로 최대 까지의 숫자를 사용할 수 있습니다. 예를 들어, 4를 운반하려면 두 벡터와 같은 합을 가지며 두 세트 간의 유일한 선형 관계인 네 개의 벡터를 찾아야합니다. 예를 들어lognn

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

공장. 관계를 쉽게 확인할 수 있습니다

11000
00100
00010
00001

=

10001
01110

이 6 개의 행으로 형성된 행렬의 순위가 5이므로이 6 개의 벡터 중 유일한 가능한 관계입니다.


설명은 "이제 우리는 1, 2, 4 개소에 운반했습니다"라고 말합니다. 그러나 문제에서 우리는 어떤 벡터가 선택되었는지 알지 못하므로 캐리 비트를 모든 인접한 비트 위치에 추가해야합니까? 그리고 예제의 첫 번째 목록에는 7 개의 벡터가 있습니다. 맞습니까?
Marzio De Biasi

부분 집합 합계 문제에 대한 해결책이 있다고 가정합니다. 즉, 우리는 3 + 5 = 8입니다. 이제이 증인의 추가 내용을보고 캐리가 어디에 있는지 확인할 수 있습니다. 이것은 벡터 덧셈 문제에 대한 해결책을 제공합니다. 한 가지 문제는 다른 문제가있는 경우에만 해결책이 있습니다.
피터 쇼어

그러나 부분 집합 합계의 인스턴스가 이고 목표 합계 (해당 벡터 인스턴스는 무엇입니까) 인 경우 축소가 어떻게 작동 합니까? 2,3,5,78
Marzio De Biasi

PS 나는 또한 문제가 NP-완료,하지만 난 그것을 이해하려고 노력 중이 야 그래서, 더 이상 당신보다 ... 단순이 :-) 낫다는 것을 증명을 발견
MARZIO 드 BIASI

즉, 두 번째 문제의 경우 모든 인접한 비트 위치에 캐리 가젯을 추가해야합니다. 실제로 해당 위치에 캐리가있을 수 있으므로 캐리 비트의 복사본을 해당 비트 위치에 추가해야합니다. 그리고 나는 그것이 효과가 없다는 것을 깨달았습니다. 우리는 더 영리해야합니다. 나는 그것을하는 방법을 알고 있지만 대답을 수정해야합니다. n1n1
피터 쇼어

3

이것은 질문에 대한 답은 아니지만 유용한 관찰 결과를 포함 할 수 있습니다. 길고 조각난 주석을 읽는 것이 귀찮기 때문에 주석으로 쓰고 싶지 않았습니다.

질문에 대한 나의 의견에 명시된 문제의 재구성 :

입력 : 벡터 , , 은 입력의 일부입니다nX={x1,,xn}{0,1}mm

질문 : 와 같이 두 개의 다른 하위 집합 가 있습니까?A,BX

xAx=xBx

어쩌면 나는 를 다중 집합으로 간주 해야하며 (벡터는 고유하지 않아야 함) 합은 입니다.X,A,BN

이진 벡터의 두 가지 하위 집합을 찾고 있기 때문에이 문제를 2SUBSET-BINARY-VECTOR-SUM이라고 제안합니다.

일부 관찰 :

  • 에 하나의 벡터가 여러 번 포함되어 있으면 답이 간단 해집니다. 및 이라고합시다 . 그런 다음 는 증인으로 작동합니다.Xxi,xjXxi=xjA={xi},B={xj}

  • 의 벡터 중 하나가 0 만 포함하면 사소합니다. 하자 . 그런 다음 모든 대해 따릅니다 .X0XAX{0}B=A{0}

  • 와 같은 감시가 있다고 가정합니다 . 이것은 있지만 있지 않은 모든 벡터 는 0으로 만 구성되어야 함을 의미합니다 .ABBA

  • 위의 두 점을 가정하기 위해 : 가진 감시 는 의 벡터 중 적어도 하나가 0 만 포함 하는 경우 존재합니다A,BABX

  • 와 같은 감시 가 있다고 가정하십시오 . 두 세트에서 공통 요소를 제거하고 여전히 올바른 감시를 할 수 있습니다.A,BAB

이 점은 본질적으로 를 두 세트 ( ) 또는 세 세트 로 파티션을 찾고 있음을 의미 합니다. 세 번째 세트는 또는 대해 선택되지 않은 벡터를 나타냅니다 . 하자 제 2 종의 스털링 번호 일 - 방식의 수의 집합으로 분할하는 물체를 비어 파티션. 그런 다음 가능한 솔루션이 있으므로 무차별 대입은 불가능합니다.XAB=XABS(n,k)nkS(n,3)+S(n,2)

벡터가 (2SUBSET-VECTOR-SUM) 이상이되도록 허용 하면이 문제 에 대한 고유 한 PAQUETION을 줄일 수 있습니다 . 하자 (은 0을 포함하는 경우, 사소한 해결책을 피하기 위해 먼저 제거) 단순히 UNIQUE 파티션의 인스턴스를 전달한다. 그러나 가능한 솔루션 가 반드시 모든 입력 요소를 포함 하지는 않으므로 작동하지 않습니다 .Nmm=1A,B

고려하십시오 . 이것은 UNIQUE-PARTITION에 있지 않지만 2SUBSET-VECTOR-SUM에서 입니다. 아마 사용 우리가 강제로 추가 벡터 엔트리를 사용할 수 입력을 분할.{1,2,3,5}A={1,2},B={3}m>1A,B

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.