Quyết định xem hạt nhân của ma trận có chứa bất kỳ vectơ khác không nào không, tất cả các mục có -1, 0 hoặc 1


27

Cho một bởi ma trận nhị phân (các mục nhập là hoặc ), vấn đề là xác định xem có tồn tại hai vectơ nhị phân sao cho (tất cả các hoạt động được thực hiện qua ). Vấn đề này có khó NP không?mnM01v1v2Mv1=Mv2Z

Rõ ràng là trong NP khi bạn có thể đưa ra hai vectơ làm nhân chứng.


Tương đương: Cho , có vectơ khác không sao cho ?Mv{1,0,1}nMv=0

Tương đương: Cho vectơ trên , có hai tập con khác nhau sao cho ?nX={x1,,xn}{0,1}mA,BXxAx=xBx


Trừ khi tôi hiểu sai câu hỏi, điều này không tương đương với việc xác định nếu có một khác không sao cho ? Và điều này không được giải quyết bằng cách xác định thứ hạng của ? M v = 0 MvMv=0M
mhum

8
@mhum không, nó tương đương với việc xác định xem có một số khác không sao cho . M v = 0v{1,0,1}nMv=0
Sasho Nikolov

À. Tôi đã bỏ lỡ rằng cũng phải là nhị phân. Lỗi của tôi. vi
mhum

2
Có vẻ như vấn đề khả thi cho lập trình 0/1-Integer. Các hoạt động trên hay hơn ? Z 2ZZ2
Kaveh

3
Xây dựng lại các vấn đề: Với n vectơ X={x1,,xn} trên {0,1}m . Có hai tập con khác nhau A,BXxAx=xBx ? Tôi nghĩ rằng nhiều khả năng là NP-hard nếu các khoản tiền không được lấy modulo hai, đó là các hoạt động đã qua Z
John D.

Câu trả lời:


7

Tôi sử dụng công thức tương đương user17410:

Input: vectơ X = { x 1 , ... , x m } trên { 0 , 1 } n , n là một phần của đầu vào Câu hỏi: Có hai tập con khác nhau Một , B XΣ x A x = Σ x B xnX={x1,,xm}{0,1}nn
A,BX

xAx=xBx

Bằng chứng độ cứng liên quan đến nhiều mức giảm trung gian tuân theo cùng một "chuỗi" được sử dụng để chứng minh độ cứng của bài toán SUMS SUBSET SUM tiêu chuẩn:

X3C SUBSET SUM PARTITION NGAY CẢ-ODD PARTITION EQUAL SUBSET SUM

(Tôi vẫn đang kiểm tra nó nên có thể sai :)

BƯỚC 1

Vấn đề sau ( 0-1 YAMOR SUBSET SUM ) là NP-đầy đủ: đã cho các vectơ , x i trên { 0 , 1 } n và một vectơ tổng mục tiêu t , quyết định xem có A X sao cho x A x = t Chứng minh : Giảm trực tiếp từ EXACT COVER BY 3-SETS (X3C): cho một tập hợp n phần tử Y = { yX={x1,,xm}xi{0,1}ntAX

xAx=t
n và tập hợp C gồm m ba phần tử con C = { C 1 , . . . , C m } chúng tôi xây dựng cài đặt phiên bản 0-1 YAMOR SUM tương ứng x i [ j ] = 1 khi và chỉ khi phần tử j được bao gồm trong C i ; t = [ 1 , 1 , . . .1Y={y1,...,yn}CmC={C1,...,Cm}xi[j]=1jCi .t=[1,1,...1]

BƯỚC 2 Tìm hai tập con tổng bằng nhau trong số các vectơ m 0-1 trên { 0 , 1 } n , tương đương với việc tìm hai tập con tổng bằng nhau A , B của vectơ có phần tử có kích thước giới hạn x 1 . . . x m trong đó m a x { x i } = O ( ( m n ) k ) cho k cố định .A,Bm{0,1}nA,Bx1...xmmax{xi}=O((mn)k)k

Ví dụ: tập hợp các vectơ:

x1 2 1 0 1
x2 1 2 3 1

Tương đương với các vectơ 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

Một cách không chính thức các vectơ 0-1 được nhóm lại (nếu bạn chọn một vectơ của nhóm x2 và thêm nó vào tập con , thì bạn buộc phải đưa vào A hai phần còn lại và đặt phần cuối vào tập con B ) và các tổng được thực hiện trong unary (đây là lý do tại sao các vectơ không nhị phân tương ứng phải chứa các phần tử bị ràng buộc đa thức đối với m n ).AABmn

Vì vậy, vấn đề sau đây là NP-đầy đủ.

BƯỚC 3

Vấn đề sau ( 0-1 PHẦN MỀM SỐ 0 ) là NP-đầy đủ: được đưa ra , x i vectơ trên { 0 , 1 } n quyết định xem X có thể được phân vùng trong hai tập con B 1 không , B 2 sao cho x B 1 x = x B 2 xB={x1,,xm}xi{0,1}nXB1,B2

xB1x=xB2x

Bằng chứng : Giảm 0-1 VECTOR SUM: cho và mục tiêu vector tổng t ; Đặt S = x i , ta thêm vào X các vectơ sau: b = - t + 2 Sb = t + SX={x1,,xm}tS=xiXb=t+2Sb=t+S: .B=X{b,b}

( ) Giả sử tồn tại A X sao cho x A x = t ; chúng tôi đặt B 1 = A { b ' }B 2 = B B 1 = X { Một } { b " } ; chúng ta có Σ 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

( ) Giả sử B 1B 2 có tổng bằng nhau. b ' , b " có thể không phải cả hai thuộc về cùng một tập (nếu không số tiền của họ là 3 S và không thể "cân" bởi các yếu tố trong các thiết lập khác). Giả sử rằng b ' = - t + 2 S B 1 ; chúng ta có:B1B2b,b3Sb=t+2SB1

-t+2S+ΣxB1{b'}x= =t+S+ΣxB2{b"}x

Do đó chúng ta phải có B 1{ b ' } là một giải pháp hợp lệ cho 0-1 VECTOR SUM.ΣxB1{b'}x= =tB1{b'}

Chúng tôi chỉ cho phép 0-1 vectơ trong tập , vì vậy vectơ b ' , b " phải được "đại diện trong unary" như trong Bước 2.Bb',b"

BƯỚC 3

Vấn đề vẫn là NP-đầy đủ nếu các vectơ được đánh số từ và hai tập con X 1 , X 2 phải có kích thước bằng nhau và chúng tôi yêu cầu X 1 chứa chính xác một trong x 2 i - 1 , x 2 i cho 1 i n (do đó, bằng ràng buộc kích thước bằng nhau , phần tử khác của cặp phải được bao gồm trong X 2 ) ( 0-1 PHẦN MỀM NGAY LẬP TỨC ).x1,...,x2nX1,X2X1x2tôi-1,x2tôi1tôinX2

Bằng chứng :: Mức giảm là từ 0-1 PHẦN THAM GIA VÀ tương tự như việc giảm từ PHẦN THAM GIA sang PHẦN THAM GIA NGAY LẬP TỨC. Nếu là các vectơ m trên { 0 , 1 } n thay thế mỗi vectơ bằng hai vectơ trên { 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 

Do phần tử , các vectơ x 2 i - 1x 2 i không thể được chứa trong cùng một tập hợp con; và một giải pháp hợp lệ cho PHẦN MỀM 0-1 YAMOR EVEN-ODD tương ứng với một giải pháp hợp lệ của PHẦN MỀM 0-1 gốc (chỉ chọn các phần tử 2m + 1..2m + n của mỗi vectơ của vectơ loại bỏ giải pháp có chứa tất cả số không ở những vị trí đó).2tôix2tôi-1'x2tôi'

BƯỚC 4

0-1 SUMS SUBALET SUBSET SUM (vấn đề trong câu hỏi) là NP-đầy đủ: giảm từ 0-1 PHẦN MỀM EVOR -ODD tương tự như việc giảm từ PHẦN MỀM EVEN-ODD sang SUBSET SUMAL, như đã được chứng minh trong Gerhard J. Woeginger , Zhongliang Yu, Về bài toán tổng hợp con bằng nhau : được đặt một tập hợp có thứ tự của 2 m vectơ trên { 0 , 1 } n , chúng ta xây dựng một bộ Y của 3 m vectơ trên { 0 ,Một= ={x1,...,x2m}2m{0,1}nY3m .{0,1}2m+n

Với mọi vectơ chúng ta xây dựng một vectơ y 2 i - 1 trên { 0 , 1 } 2 m + n theo cách này:x2tôi-1,1tôimy2tôi-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}

Với mọi vectơ ta xây dựng một vectơ y 2 i trên { 0 , 1 } 2 m + n theo cách này:x2tôi,1tôim-1y2tôi{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}

Chúng tôi ánh xạ phần tử đếnx2m

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

Cuối cùng chúng ta thêm giả yếu tố: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

Một lần nữa lưu ý rằng các vectơ chứa giá trị có thể được biểu diễn trong "unary" bằng cách sử dụng một nhóm các vectơ 0-1 như được hiển thị trong BƯỚC 2.>1

có hai tập con Y 1 , Y 2 khác nhau có tổng bằng nhau khi và chỉ khi X có phân vùng chẵn. YY1,Y2X


những gì bạn gọi là phân vùng vectơ 0-1 tương đương với vấn đề xác định xem một hệ thống tập hợp có sai lệch 0. đây là NP khó, vì nó nắm bắt được, ví dụ như vấn đề chia tách 2-2, hãy xem thm 9 trong bài viết này của guruswami cs.cmu.edu/~venkatg/pub/ con / ss-jl.ps ; bài viết của tôi có thêm một chút về độ cứng của sự khác biệt paul.rutgers.edu/~anikolov/Files/charikarM.pdf
Sasho Nikolov

Ngoài ra tôi tin rằng bạn nêu sai vấn đề phân vùng chẵn nếu không có hai vectơ liên tiếp có thể nằm trong cùng một tập hợp thì vấn đề là không đáng kể. tôi tin bạn có nghĩa là là cần thiết cho tất cả i { 1 , 2 }1 j m|Xtôi{x2j-1,x2j}|= =1tôi{1,2}1jm
Sasho Nikolov

@SashoNikolov: có, ý tôi là với mọi cặp (và trong chứng minh ( x 2 i - 1 , x 2 i ) ) chính xác một cặp được bao gồm trong X 1 ; Tôi sẽ chỉnh sửa câu trả lời(x2tôi-1,x2tôi)(x2tôi-1',x2tôi')X1
Marzio De Biasi

8

EDIT: Bằng chứng ban đầu của tôi có một lỗi. Bây giờ tôi tin rằng nó đã được sửa.

m

n

n

Điều này là khá dễ dàng để làm. Đối với mỗi cặp vị trí bit liền kề, thêm ba vectơ có dạng sau. Ở đây, hai bit cuối cùng là tọa độ khác không chỉ trong ba vectơ này và mỗi bit không được đưa ra rõ ràng dưới đây là 0.

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

Hãy để tôi làm một ví dụ. Chúng tôi muốn chỉ ra cách 5 + 3 = 8 hoạt động.

Đây là 8 = 5 + 3 ở dạng nhị phân:

1000

= =

0101
0011

Các chuỗi bit này cho cùng một tổng trong nhị phân, nhưng không phải trong phép cộng vector.

Bây giờ, chúng ta đã mang theo 1, 2, 4 vị trí, vì vậy chúng ta cần thêm ba bộ ba vectơ vào phương trình để thực hiện các giá trị này.

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

Các bộ này hiện có cùng một tổng trong phép cộng vector. Các khoản tiền là:

1222 11 11 11

trong cả hai trường hợp.

nn

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

bạn có một vấn đề là bạn nhận được hai bộ vectơ khác nhau cho cùng một tổng:

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

= =

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

Giáo dụcđăng nhậpnn

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

công trinh. Bạn có thể dễ dàng kiểm tra mối quan hệ

11000
00100
00010
00001

= =

10001
01110

là mối quan hệ duy nhất có thể có giữa sáu vectơ này vì ma trận được hình thành bởi sáu hàng này có thứ hạng 5.


Một sự làm rõ, bạn nói "Bây giờ, chúng tôi đã thực hiện ở 1, 2, 4 địa điểm"; nhưng trong bài toán chúng ta không biết vectơ nào được chọn vì vậy chúng ta phải thêm tiện ích mang theo vào mọi vị trí bit liền kề? Và trong danh sách đầu tiên của ví dụ có 7 vectơ, có đúng không?
Marzio De Biasi

Giả sử có một giải pháp cho bài toán tổng con. Đó là: chúng ta có 3 + 5 = 8. Bây giờ, chúng ta có thể nhìn vào sự bổ sung trong nhân chứng này và tìm ra nơi mang theo. Điều này cho chúng ta giải pháp cho bài toán cộng vector. Một vấn đề có một giải pháp khi và chỉ khi khác có.
Peter Shor

2,3,5,7số 8

PS Tôi cũng tìm thấy một bằng chứng cho thấy vấn đề là NP-đầy đủ, nhưng nó dài hơn của bạn rất nhiều, vì vậy tôi đang cố gắng hiểu nó ... đơn giản hơn là tốt hơn :-)
Marzio De Biasi

n-1n-1

3

Điều này không trả lời câu hỏi nhưng có thể chứa một số quan sát hữu ích. Tôi không muốn đặt nó như một bình luận vì tôi thấy những bình luận dài, rời rạc gây khó chịu khi đọc

Việc cải cách vấn đề như đã nêu trong bình luận của tôi cho câu hỏi:

nX= ={x1,Giáo dục,xn}{0,1}mm

Một,BX

ΣxMộtx= =ΣxBx

X,Một,BN

Tôi đề nghị gọi vấn đề này là 2SUBSET-BINary-YAMOR-SUM do thực tế là chúng tôi đang tìm kiếm 2 tập con của vectơ nhị phân.

Một số quan sát:

  • Xxtôi,xjXxtôi= =xjMột= ={xtôi},B= ={xj}

  • X0XMộtX{0}B= =Một{0}

  • MộtBBMột

  • Một,BMộtBX

  • Một,BMộtB

XMộtB= =XMộtBS(n,k)nkS(n,3)+S(n,2) giải pháp khả thi, vì vậy lực lượng vũ phu không khả thi ở đây.

Nmm= =1Một,B

{1,2,3,5}Một= ={1,2},B= ={3}m>1Một,B

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.