行列のカーネルに、すべてが-1、0、または1である非ゼロベクトルが含まれるかどうかを決定します


27

所与によってバイナリ行列(エントリがまたは)、問題は、2つのバイナリベクトルが存在するかどうかを決定することであるよう(すべての操作を介して実行)。この問題はNP困難ですか?mnM01v1v2Mv1=Mv2Z

証人として2つのベクトルを与えることができるので、明らかにNPにあります。


同等:が与えられた場合、ようなゼロ以外のベクトルがありますか?Mv{1,0,1}nMv=0

同等:上のベクトル与えられた、ような2つの異なるサブセットがあります?nX={x1,,xn}{0,1}mA,BXxAx=xBx


質問を誤解しない限り、これはような非ゼロがあるかどうかを判断することと同等ではありませんか?そして、これはのランクを決定することで解決されませんか?vMv=0M
mhum

8
@mhum no、これはようなゼロ以外の -1、0、1があるかどうかを判断することと同じです。v{1,0,1}nMv=0
サショニコロフ2013

あ。私は逃したまた、バイナリでなければなりませんでした。私の間違い。vi
mhum

2
0 / 1-整数プログラミングの実行可能性問題のようです。操作はまたはか?ZZ2
カヴェー

3
問題の再定式化:与えられたベクトルオーバー。ような2つの異なるサブセットがありますか?私はそれが可能性が高いNP-ハード和がモジュロ2を取られていない場合は、あるべきであることを考えると思い操作している以上nX={x1,,xn}{0,1}mA,BXxAx=xBxZ
ジョンD.

回答:


7

私はuser17410と同等の定式化を使用します。

入力:ベクトル over、は入力の一部です 質問:2つの異なるサブセットがあり、 n{ 0 1 } N N A B X Σ X A X = Σ X B XX={x1,,xm}{0,1}nn
A,BX

xAx=xBx

硬度の証明には、標準の等式部分集合の問題の硬度を証明するために使用されるのと同じ「チェーン」に従う多くの中間的な減少が含まれます。

X3CサブセットSUMパーティション EVEN-ODDパーティション EQUAL SUBSET SUM

(私はまだチェックしていますので、間違っているかもしれません:)

ステップ1

次の問題(0-1 VECTOR SUBSET SUM)はNP完全です:与えられ 、上のベクトルとターゲット和ベクトルが決定しますような がある場合:証明:3-SETSによるEXACT COVER BYからの直接還元(X3C):要素のセットと収集の三つの要素の部分集合我々構築0-1 VECTOR SUMインスタンス設定対応の場合に限りの要素X I { 0 1 } N T A X ΣX={x1,,xm}xi{0,1}ntAXNY={Y1YN}C、MC={C1Cm}xi

xAx=t
nY={y1,...,yn}CmC={C1,...,Cm}J C 、I T = [ 1 1 .1 ]xi[j]=1j含まれてます。。Cit=[1,1,...1]

STEP 2 検索二つの等しい和サブセット間の 0-1ベクター上、二つの等しい和サブセット発見に相当する有界サイズの要素を有するベクトルをここで、固定するための。m {A,Bm A Bは、xは1x m m a x { x i } = O m n kk{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

非公式には0〜1のベクトルがグループ化され(x2グループの1つのベクトルを選択してサブセット追加すると、他の2つをに含め、最後をサブセット入れます)、合計が行われます単項(これが、対応する非バイナリベクトルがに関して多項式で区切られた要素を含まなければならない理由です)。A B m nAABmn

したがって、次の問題はNP完全です。

ステップ3

次のような問題(0-1 VECTORパーティション所与:)NP完全である 、上ベクトルかどうかを判断 2つのサブセットに分割することができますよう xはI { 0 1 } nは X B 1B 2 Σ のx B 1、X = Σ X B 2 XをB={x1,,xm}xi{0,1}nXB1,B2

xB1x=xB2x

証明:0-1 ベクトル合計からの削減:とターゲット合計ベクトル与えられた 場合; 聞かせて、我々はに追加する以下のベクター:と : 。t S = x i X b = t + 2 S b = t + SX={x1,,xm}tS=xiXb=t+2Sb=t+SB=X{b,b}

()ようなが存在すると仮定します。我々が設定とを。我々は A X Σ X A、X = T B 1 = A { B ' } B 2 = B AXxAx=tB1=A{b}Σ X B 1 = B ' + Σ X A x = t t + S = 2 SB2=BB1=X{A}{b}

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

()と合計が等しいと仮定します。両方が同じセットに属することはできません(そうでなければ、それらの合計はあり、他のセットの要素によって「バランス」を取ることはできません)。その仮定。我々は持っています: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

したがって、でなければならず、は0-1 VECTOR SUMの有効なソリューションです。B 1{ B ' }xB1{b}x=tB1{b}

セットには0〜1のベクトルのみが許可されるため、ステップ2に示すようにベクトルは「単項で表現」する必要があります。B "B "Bb,b

ステップ3

ベクトルがから番号付けされ、2つのサブセットサイズが等しくなければならず、にのための(SO、等しいサイズの制約により、対の他方の要素が中に含まれていなければならない)(0-1 VECTOR偶奇PARTITION)。x1,...,x2nX 1 X 2 I - 1X 2 、I 1 I N X 2X1,X2X1x2i1,x2i1inX2

証明::削減は0-1 VECTOR PARTITIONからであり、PARTITIONからEVEN-ODD PARTITIONへの削減に類似しています。もしであるベクター上上の2つのベクターを用いて、各ベクトルを置き換える。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 

起因する要素、ベクトル及び同じサブセットに含まれることができません。0-1 VECTOR EVEN-ODD PARTITIONの有効なソリューションは、元の0-1 VECTOR PARTITIONの有効なソリューションに対応します(すべてのベクトルを含むソリューションの各ベクトルの要素2m + 1..2m + nを選択するだけです)それらの位置にゼロ)。2ix2i1x2i

ステップ4

0-1 VECTOR EQUAL SUBSET SUM(問題の問題)はNP完全です:0-1 VECTOR EVEN-ODD PARTITIONからの減少は、ゲルハルトJ. 、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 1Y 2 XYに偶奇パーティションがある場合にのみは等しい合計を持つ2つの互いに素なサブセットがあります。 Y1,Y2X


0-1ベクトルパーティションと呼ばれるものは、セットシステムに不一致0があるかどうかを判断する問題と同等です。これは、たとえば2-2-セット分割問題をキャプチャするため、NPハードです。cs.cmu.edu/~venkatg/pubs/papers/ss-jl.ps ; 私の論文は、不一致の硬さについてもう少し説明していますpaul.rutgers.edu/~anikolov/Files/charikarM.pdf
Sasho Nikolov

また、偶奇パーティションの問題を誤って述べていると思います。同じセットに2つの連続したベクトルが存在できない場合、問題は簡単です。私はあなたがそれを意味すると考えているのすべてのために必要とされると|Xi{x2j1,x2j}|=1i{1,2}1jm
Sashoニコロフ

@SashoNikolov:はい、すべてのペア(および証明)に対して正確に1つであることを意味します含まれています。答えを編集します(x2i1,x2i)(x2i1,x2i)X1
マルツィオデビアージ

8

編集:私の元の証明にはバグがありました。私は今それが修正されたと信じています。

EQUAL SUMサブセットの問題をこの問題に軽減します。EQUAL SUMサブセットは、次の問題です整数のセットが与えられた場合、同じ合計を持つ2つの互いに素なサブセットを見つけます。EQUAL SUMサブセットはNP完全であることが知られていますm

これらのビット文字列がベクトルではなく、バイナリのビット数の表現であるとします。その場合、問題はEQUAL SUMサブセットからの削減によりNP完全になります。これらのベクトルを2進数のように動作させる方法を示します。必要なのは、キャリーを実行できるようにすることです。つまり、隣接する座標のペアごとに、ベクトル..02 ..を..10 ..に置き換えることができる必要があります。n

どうすればそれができますか?それを可能にするガジェットが必要です。特に、合計が..02 .. xと..10 .. xである2つのサブセットが必要です。ここで、xは新しい座標(つまり、バイナリを構成する座標のいずれでもない座標)を使用するビット文字列です表現)、およびxに対応する新しいビット位置に同じ合計を持つ2つのサブセットを作成する方法は1つしかありません。n

これは非常に簡単です。隣接するビット位置のペアごとに、次の形式の3つのベクトルを追加します。ここで、最後の2ビットはこれらの3つのベクトルでのみ非ゼロの座標であり、以下で明示的に指定されていないビットはすべて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
0010 00 00 11
0100 00 11 00
1000 11 00 00

これらのセットのベクトル加算の合計は同じになりました。合計は次のとおりです。

1222 11 11 11

両方の場合において。

この構造は、位置ごとに1つのだけのキャリーがあれば素晴らしい作品、それだけには潜在的にそこに可能性があり位置ごとに運び、あなたの建設は、最大処理できることを確認する必要があり運び、そして異なるが干渉しない運ぶことお互いに。たとえば、隣接する位置の同じペアに対して3つのベクトルの2つの異なるセットを追加した場合(これは元の証明で提案したものです):nn

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

同じ合計を与えるベクトルの2つの異なるセットを取得するという問題があります。

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

=

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

これを修正する方法は?1を運ぶことができるベクトルのセットを1つ、2を運ぶことができるセットを1つ、、、2セットし。今はこの構造の詳細を説明するつもりはありませんが、かなり簡単なはずです。各数値には一意のバイナリ表現があるため、これによりまでの任意の数値を保持できます。たとえば、4を運ぶには、2つのベクトルと同じ合計を持ち、これが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つのベクトルがありますが、正しいですか?
マルツィオ・デ・Biasi

サブセット合計問題の解決策があるとします。つまり、3 + 5 = 8です。今、私たちはこの証人の追加を見て、キャリーがどこにあるかを知ることができます。これにより、ベクトル加算問題の解決策が得られます。1つの問題には、他の問題がある場合にのみ解決策があります。
ピーターショー

しかし、たとえばサブセットの合計のインスタンスがでターゲットの合計が(対応するベクトルインスタンスは何ですか)、削減はどのように機能しますか?2,3,5,78
マルツィオ

PS私はまた、この問題はNP完全であるが、私はそれを理解しようとしているので、それは、はるかに長いあなたよりです...単純に:-)優れていることの証拠を発見した
マルツィオ・デ・BIASI

つまり、2番目の問題では、隣接するすべてのビット位置にキャリーガジェットを追加する必要があります。実際、その位置にキャリーがある可能性があるため、キャリーガジェットのコピーをそのビット位置に追加する必要があります。そして、私はそれがうまくいかないことに気付きました-私たちは賢くなければなりません。方法はわかっていますが、答えを修正する必要があります。n1n1
ピーターショー

3

これは質問に答えませんが、いくつかの有用な観察が含まれる場合があります。コメントとして読みたくなかった

質問に対する私のコメントで述べられている問題の再定式化:

入力:ベクトル over、は入力の一部nX={x1,,xn}{0,1}mm

質問:ような2つの異なるサブセットがありますか A,BX

xAx=xBx

たぶんをマルチセット(ベクトルは一意であってはなりません)と見なし、合計が超えていることに注意する必要があります。X,A,BN

バイナリベクトルの2つのサブセットを探しているため、この問題を2SUBSET-BINARY-VECTOR-SUMと呼ぶことを提案します。

いくつかの観察:

  • に1つのベクトルが複数回含まれている場合、答えは簡単になります。ましょうと。次に、が証人として機能します。Xxi,xjXxi=xjA={xi},B={xj}

  • のベクトルの1つが0のみを含む場合、それは簡単です。ましょそのベクトルとします。次に、すべてのが続きますは証人です。X0XAX{0}B=A{0}

  • ような目撃者が存在すると仮定します。これは、ではなくあるすべてのベクトルがゼロのみで構成されて必要があることを意味します。ABBA

  • 上記の2つの点を包含するには、のベクトルの少なくとも1つにゼロのみが含まれている場合に、持つ監視が存在します。A,BABX

  • などの目撃者が存在すると仮定します。両方のセットの共通要素を削除しても、正しい目撃者を保持できます。A,BAB

これらの点は本質的に、 2つのセット()または3つのセットへのパーティションを探していることを意味します。3番目のセットは、またはいずれにも選択されなかったベクトルを表します。LET一連の分割するいくつかの方法-第二種のスターリング数であるにオブジェクトを、非空のパーティション。次に、可能な解決策があるため、ブルートフォースはここでは実行できません。A B = X A B S N K N K S N 3 + S N 2 XAB=XABS(n,k)nkS(n,3)+S(n,2)

ベクトルが(2SUBSET-VECTOR-SUM)を超えることを許可する場合、UNIQUE-PARTITIONをこの問題に減らすことができます。ましょうと単にUNIQUEパーティション(それが0を含む場合、自明な解を避けるために、最初にそれを削除する)のインスタンスを渡します。ただし、可能な解決策は必ずしもすべての入力要素が含まれているわけではないため、これは機能しません。 m=1ABNmm=1A,B

検討してください。これはUNIQUE-PARTITIONではなく、2SUBSET-VECTOR-SUMでです。多分用い我々が強制的に追加のベクトル・エントリを使用することができる入力を分割します。{1,2,3,5}M > 1 A BA={1,2},B={3}m>1A,B

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.