ตัดสินใจว่าเคอร์เนลของเมทริกซ์มีเวกเตอร์ที่ไม่เป็นศูนย์ใด ๆ ซึ่งรายการทั้งหมดเป็น -1, 0 หรือ 1


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 , มีเซตย่อยสองแบบA,BXเช่นนั้นxAx=xBxหรือไม่


ยกเว้นว่าฉันเข้าใจผิดคำถามนี่ไม่เทียบเท่ากับการพิจารณาว่ามีไม่เป็นศูนย์vซึ่งMv=0หรือไม่ และนี่ไม่ได้ถูกแก้ไขโดยการพิจารณาอันดับของMหรือไม่?
mhum

8
@mhum ไม่มีก็เทียบเท่ากับการกำหนดถ้ามีไม่ใช่ศูนย์v{1,0,1}nดังกล่าวว่าMv=0 0
Sasho Nikolov

อา ฉันพลาดviต้องเป็นเลขฐานสอง ความผิดพลาดของฉัน.
mhum

2
ดูเหมือนว่าปัญหาความเป็นไปได้สำหรับการเขียนโปรแกรม 0/1-Integer การดำเนินการกับZหรือมากกว่าZ2หรือไม่
Kaveh

3
reformulation ของปัญหา: ให้nเวกเตอร์X={x1,,xn}มากกว่า{0,1}mเมตร มีเซตย่อยที่ต่างกันA,BXเช่นนั้นxAx=xBxหรือไม่? ฉันคิดว่ามันมีแนวโน้มที่จะเป็น NP-hard มากกว่าถ้าผลรวมไม่ได้รับโมดูโลสองนั่นคือการดำเนินการมากกว่าZ
John D.

คำตอบ:


7

ฉันใช้สูตรเทียบเท่ากับผู้ใช้ 17410:

อินพุต: vector X = { x 1 , , x m }บน{ 0 , 1 } n , nเป็นส่วนหนึ่งของอินพุต คำถาม: มีเซตย่อยสองชุดA , B Xเช่นนั้น x A x = x B xnX={x1,,xm}{0,1}nn
A,BX

xAx=xBx

การพิสูจน์ความกระด้างเกี่ยวข้องกับการลดระดับกลางจำนวนมากซึ่งเป็นไปตาม "โซ่" เดียวกันที่ใช้เพื่อพิสูจน์ความแข็งของปัญหาผลรวมเท่ากับ SUBSET SUBSET SUM:

X3C กลุ่มย่อย SUM PARTITION แม้ ODD PARTITION เท่ากับกลุ่มย่อย SUM

(ฉันยังตรวจสอบอยู่ดังนั้นจึงอาจผิด :)

ขั้นตอนที่ 1

ปัญหาต่อไปนี้ ( 0-1 VECTOR SUBSET SUM ) คือ NP-complete: กำหนด , x iเวกเตอร์มากกว่า{ 0 , 1 } nและเวกเตอร์รวมเป้าหมายtตัดสินใจว่ามีA Xเช่นนั้น x A x = tพิสูจน์ : การลดโดยตรงจากปกที่แน่นอนโดย 3-SETS (X3C): กำหนดชุดขององค์ประกอบn Y = { yX={x1,,xm}xi{0,1}ntAX

xAx=t
nและชุด Cของม.สามองค์ประกอบย่อย C = { C 1 , . . , C m }เราสร้างการตั้งค่าอินสแตนซ์ 0-1 VECTOR SUM ที่สอดคล้องกัน x i [ j ] = 1ถ้าหากองค์ประกอบ jรวมอยู่ใน C i ; T = [ 1 , 1 , . 0.1Y={y1,...,yn}CmC={C1,...,Cm}xi[j]=1jCi .t=[1,1,...1]

ขั้นตอนที่ 2 การหาผลรวมสองส่วนย่อยเท่ากับ, Bหมู่ม. 0-1 เวกเตอร์บน{ 0 , 1 } nเทียบเท่ากับการหาผลรวมสองส่วนย่อยเท่ากับ, Bของเวกเตอร์ที่มีองค์ประกอบของขนาด bounded x 1 . . x เมตรที่m x { x ฉัน } = O ( ( n ) k )สำหรับการแก้ไขkA,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

เวกเตอร์ 0-1 ถูกจัดกลุ่มอย่างไม่เป็นทางการ (ถ้าคุณเลือกหนึ่งเวกเตอร์ของกลุ่ม x2 และเพิ่มลงในเซตย่อยคุณจะถูกบังคับให้รวมในAอีกสองคนและใส่สุดท้ายในเซตย่อยB ) และผลรวมจะเสร็จสิ้น เอกภาพ (นี่คือเหตุผลที่เวกเตอร์ไบนารีที่ไม่ใช่ที่สอดคล้องกันนั้นต้องมีองค์ประกอบที่ล้อมรอบพหุนามด้วยความเคารพต่อm n )AABmn

ดังนั้นปัญหาต่อไปนี้คือ NP-complete

ขั้นตอนที่ 3

ปัญหาต่อไปนี้ ( 0-1 VECTOR PARTITION ) คือปัญหา NP-complete: กำหนด , x iเวกเตอร์มากกว่า{ 0 , 1 } nตัดสินใจว่าXสามารถแบ่งพาร์ติชันได้ในเซตย่อยสองชุดB 1 , B 2เช่นนั้น x B 1 x = x B 2 xB={x1,,xm}xi{0,1}nXB1,B2

xB1x=xB2x

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

( ) สมมติว่ามีเช่นนั้น ; เราตั้งและ ; เรามี A XAXxAx=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 SUMxB1{b}x=tB1{b}

เราอนุญาตให้มีเวกเตอร์ 0-1 ในเซตเท่านั้นดังนั้นเวกเตอร์จะต้อง "แสดงเป็นเอกนารี" ดังแสดงในขั้นตอนที่ 2Bb,b

ขั้นตอนที่ 3

ปัญหายังคงเป็นปัญหาที่สมบูรณ์ถ้าเวกเตอร์มีหมายเลขจากและเซตย่อยสองชุดต้องมีขนาดเท่ากันและเราต้องการให้มีหนึ่งในสำหรับ (ดังนั้นโดยข้อ จำกัด ขนาดเท่ากันองค์ประกอบอื่น ๆ ของคู่จะต้องรวมอยู่ใน ) ( 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 สอดคล้องกับวิธีแก้ปัญหาที่ถูกต้องของ Part1 0-1 VECTOR ดั้งเดิม (เพียงแค่เลือกองค์ประกอบ 2m + 1..2m + n ของแต่ละเวกเตอร์ของการแก้ปัญหาทิ้งเวกเตอร์ที่มีทั้งหมด ศูนย์ในตำแหน่งเหล่านั้น)2ix2i1x2i

ขั้นตอนที่ 4

0-1 VECTOR Equal SUBSET SUM (ปัญหาในคำถาม) คือ NP-complete: ลดลงจาก 0-1 VECTOR EVEN-ODD PARTITION คล้ายกับการลดลงจาก EVEN-ODD PARTITION ไปเป็น SUBSET ส่วนแบ่งเท่าที่พิสูจน์แล้วในGerhard J. Woeginger , Zhongliang Yu, ในปัญหาเท่ากับส่วนย่อย : ได้รับชุดคำสั่งของเวกเตอร์มากกว่าเราสร้าง ชุดของเวกเตอร์บนn}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

โปรดทราบอีกครั้งว่าเวกเตอร์ที่มีค่าสามารถแสดงใน "unary" โดยใช้กลุ่มของเวกเตอร์ 0-1 เช่นที่แสดงในขั้นตอนที่ 2>1

Y 1 ,Yมีสอง disjointเซ็ตย่อยมีผลรวมเท่ากันถ้ามีพาร์ติชั่นคี่คู่ Y1,Y2X


สิ่งที่คุณเรียก 0-1 เวกเตอร์พาร์ทิชันเทียบเท่ากับปัญหาในการพิจารณาว่าระบบชุดมีความคลาดเคลื่อน 0 นี่คือ NP hard เนื่องจากมันจับเช่นปัญหา 2-2-set-splitting แยกดู thm 9 ในบทความนี้โดย guruswami 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

แก้ไข: หลักฐานดั้งเดิมของฉันมีข้อบกพร่อง ตอนนี้ฉันเชื่อว่ามันได้รับการแก้ไขแล้ว

เราลดปัญหาของจำนวนสมาชิกเท่ากับปัญหานี้ เท่ากับผลรวมย่อยเป็นปัญหาของ: กำหนดชุดของจำนวนเต็มหาสองส่วนย่อยที่แยกจากกันซึ่งมีผลรวมเดียวกัน SUALSET เท่ากับผลรวมเป็นที่รู้จักกันว่าNP- สมบูรณ์m

สมมติว่าสตริงบิตเหล่านี้ไม่ใช่เวกเตอร์ แต่เป็นตัวแทนของตัวเลข bit ในไบนารี จากนั้นปัญหาจะเป็นปัญหาที่สมบูรณ์โดยการลดลงจากจำนวนสมาชิกเท่ากับ ฉันจะแสดงวิธีทำให้เวกเตอร์เหล่านี้ทำงานเหมือนพวกมันเป็นเลขฐานสอง สิ่งที่เราต้องการคือสามารถแบก; นั่นคือสำหรับทุกคู่ของพิกัดที่อยู่ติดกันเราจำเป็นต้องสามารถแทนที่เวกเตอร์ .. 02 .. โดย .. 10 ..n

เราจะทำสิ่งนั้นได้อย่างไร เราต้องการอุปกรณ์ที่ช่วยให้เราทำเช่นนั้นได้ โดยเฉพาะอย่างยิ่งเราต้องการชุดย่อยสองชุดที่มีผลรวมเป็น .. 02 .. x และ .. 10 .. x โดยที่ x เป็นสตริงบิตโดยใช้พิกัดใหม่ (เช่นพิกัดที่ไม่ใช่พิกัดใด ๆ ที่ประกอบเป็นไบนารี การเป็นตัวแทน) และตำแหน่งที่มีเพียงวิธีเดียวในการสร้างสองชุดย่อยที่มีผลรวมเดียวกันในตำแหน่งบิตใหม่ที่สอดคล้องกับ xn

มันค่อนข้างง่ายที่จะทำ สำหรับตำแหน่งบิตที่อยู่ติดกันทุกคู่ให้เพิ่มสามเวกเตอร์ของแบบฟอร์มต่อไปนี้ ที่นี่สองบิตสุดท้ายเป็นพิกัดที่ไม่เป็นศูนย์เฉพาะในสามเวกเตอร์เหล่านี้และทุกบิตที่ไม่ได้รับอย่างชัดเจนด้านล่างเป็น 0

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

ขอยกตัวอย่าง เราต้องการแสดงให้เห็นว่า 5 + 3 = 8 ทำงานอย่างไร

นี่คือ 8 = 5 + 3 ในไบนารี:

1000

=

0101
0011

สตริงบิตเหล่านี้ให้ผลรวมเท่ากันในไบนารี่ แต่ไม่ใช่ในการบวกเวกเตอร์

ทีนี้, เรามีอุ้มใน 1, 2, 4 แห่ง, ดังนั้นเราต้องเพิ่มเวกเตอร์สามชุดลงในสมการเพื่อทำการอุ้มเหล่านี้

1,000 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
0010 00 00 11
0100 00 11 00
1000 11 00 00

ชุดเหล่านี้มีผลรวมเท่ากันในการเพิ่มเวกเตอร์ ผลรวมคือ:

1222 11 11 11 11

ในทั้งสองกรณี.

การก่อสร้างนี้ใช้งานได้ดีหากมีการพกเพียงครั้งเดียวต่อตำแหน่ง แต่อาจมีได้ถึงบรรทุกต่อตำแหน่งและคุณต้องตรวจสอบให้แน่ใจว่าการก่อสร้างของคุณสามารถจัดการได้สูงสุดถึงบรรทุกและการดำเนินการที่แตกต่างกัน กับแต่ละอื่น ๆ ตัวอย่างเช่นหากคุณเพิ่มเวกเตอร์สามชุดที่แตกต่างกันสองชุดสำหรับคู่ตำแหน่งเดียวกันที่อยู่ติดกัน (ซึ่งเป็นสิ่งที่ฉันเสนอในหลักฐานดั้งเดิมของฉัน):nn

..01 .. 01 00
..01 .. 10 00
..10 .. 11 00
..01 .. 00 01
.. 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 ชุดหนึ่งซึ่งจะช่วยให้คุณพก 2 และหนึ่งชุด 4, 8, 2rfloor} ฉันจะไม่ไปดูรายละเอียดของการก่อสร้างในตอนนี้ แต่มันควรจะตรงไปตรงมา เนื่องจากจำนวนแต่ละคนมีแทน binary ที่ไม่ซ้ำกันนี้จะช่วยให้คุณสามารถดำเนินการใด ๆ จำนวนถึงnตัวอย่างเช่นสำหรับการถือ 4 คุณต้องหาสี่เวกเตอร์ที่มีผลรวมเท่ากับสองเวกเตอร์และนี่เป็นความสัมพันธ์เชิงเส้นเดียวระหว่างสองชุด ตัวอย่างเช่นชุดบันทึกn nlognn

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

โรงงาน คุณสามารถตรวจสอบได้อย่างง่ายดายว่าความสัมพันธ์

11000
00100
00010
00001

=

10001
01110

เป็นความสัมพันธ์ที่เป็นไปได้เพียงอย่างเดียวในหกเวกเตอร์เหล่านี้เพราะเมทริกซ์ที่เกิดขึ้นจากแถวทั้งหกนี้มีอันดับ 5


คำอธิบายคุณพูดว่า "ตอนนี้เราได้ดำเนินการใน 1, 2, 4 แห่ง"; แต่ในปัญหาเราไม่ทราบว่าเวกเตอร์ใดถูกเลือกดังนั้นเราต้องเพิ่มอุปกรณ์พกพาไปยังตำแหน่งบิตที่อยู่ติดกันทุกครั้งหรือไม่ และในรายการแรกของตัวอย่างมี 7 เวกเตอร์ถูกต้องหรือไม่?
Marzio De Biasi

สมมติว่ามีทางออกสำหรับปัญหาผลรวมย่อย นั่นคือ: เรามี 3 + 5 = 8 ตอนนี้เราสามารถดูการเพิ่มขึ้นของพยานนี้และค้นหาว่าการพกพานั้นอยู่ที่ไหน นี่ทำให้เราได้คำตอบสำหรับปัญหาการบวกเวกเตอร์ ปัญหาหนึ่งมีวิธีแก้ไขหากมีหากปัญหาอื่นเกิดขึ้น
Peter Shor

แต่การลดลงทำงานอย่างไรถ้าอินสแตนซ์ของผลรวมย่อยคือและผลรวมเป้าหมาย (อินสแตนซ์เวกเตอร์ที่สอดคล้องกันคืออะไร) 82,3,5,78
Marzio De Biasi

ป.ล. ฉันพบหลักฐานที่แสดงว่าปัญหานี้เกิดจากปัญหา NP-complete แต่มันยาวกว่าของคุณมากดังนั้นฉันจึงพยายามเข้าใจ ... ง่ายกว่าดีกว่า :-)
Marzio De Biasi

ซึ่งหมายความว่าสำหรับปัญหาที่สองเราต้องเพิ่มอุปกรณ์พกพาไปยังตำแหน่งบิตที่อยู่ติดกันทุกตำแหน่ง ในความเป็นจริงเนื่องจากเราอาจมีบรรทุกในตำแหน่งนั้นเราจึงต้องเพิ่มสำเนาของอุปกรณ์พกพาไปยังตำแหน่งบิตนั้น และฉันเพิ่งรู้ว่ามันไม่ได้ผล - เราต้องฉลาดกว่านี้ ฉันรู้วิธีที่จะทำ แต่ฉันจะต้องแก้ไขคำตอบ n1n1
Peter Shor

3

สิ่งนี้ไม่ตอบคำถาม แต่อาจมีข้อสังเกตที่เป็นประโยชน์ ฉันไม่ต้องการที่จะใส่มันเป็นความคิดเห็นเพราะฉันพบว่านานความคิดเห็นที่กระจัดกระจายน่ารำคาญที่จะอ่าน

การปฏิรูปของปัญหาตามที่ระบุไว้ในความคิดเห็นของฉันกับคำถาม:

อินพุต: vectorsมากกว่า ,เป็นส่วนหนึ่งของอินพุตnX={x1,,xn}{0,1}mm

คำถาม: มีเซตย่อยสองชุดเช่นนั้น A,BX

xAx=xBx

บางทีฉันควรทราบว่าใครควรจะถือว่าเป็นมัลติ (เวกเตอร์จะต้องไม่ซ้ำกัน) และผลรวมมีมากกว่า{N}X,A,BN

ฉันเสนอให้เรียกปัญหานี้ 2SUBSET-BINARY-VECTOR-SUM เนื่องจากความจริงที่ว่าเรากำลังมองหาเซตย่อยของเวกเตอร์ไบนารี 2 ชุด

ข้อสังเกตบางอย่าง:

  • ถ้ามีหนึ่งเวคเตอร์เวกเตอร์หลายครั้งคำตอบจะกลายเป็นเรื่องเล็กน้อย ให้และx_j จากนั้นทำงานเป็นพยานXxi,xjXxi=xjA={xi},B={xj}

  • หากหนึ่งในเวกเตอร์ในมีเพียง 0 มันเป็นเรื่องเล็กน้อย ให้เป็นเวกเตอร์นั้น จากนั้นสำหรับทุกมันจะตามหลังเป็นพยานX0XAX{0}B=A{0}

  • สมมติว่ามีอยู่เป็นพยานดังกล่าวว่าB นี่หมายความว่าเวกเตอร์ทุกตัวที่อยู่ในแต่ไม่ได้อยู่ในต้องประกอบด้วยเลขศูนย์เท่านั้นABBA

  • ในการเพิ่มคะแนนทั้งสองข้างต้น: พยานกับมีอยู่หากมีอย่างน้อยหนึ่งเวกเตอร์ในมีเลขศูนย์เท่านั้นA,BABX

  • สมมติว่ามีอยู่เป็นพยานดังกล่าวว่า\ คุณสามารถลบองค์ประกอบทั่วไปในทั้งสองชุดและยังมีพยานที่ถูกต้องA,BAB

จุดสำคัญเหล่านี้หมายความว่าคุณกำลังมองหาพาร์ติชันของเป็นสองชุด ( ) หรือสามชุด ชุดที่สามเป็นตัวแทนของเวกเตอร์ที่ไม่ได้เลือกได้อย่างใดอย่างหนึ่งหรือBให้เป็นตัวเลข Stirling ของชนิดที่สอง - จำนวนวิธีในการแบ่งพาร์ติชันของวัตถุให้เป็นพาร์ติชันที่ไม่ว่างจากนั้นมีวิธีแก้ปัญหาที่เป็นไปได้ดังนั้นกำลังดุร้ายจึงไม่สามารถทำได้ที่นี่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-PARTITION (ถ้ามี 0 ให้ลบออกก่อนเพื่อหลีกเลี่ยงวิธีแก้ปัญหาเล็กน้อย) อย่างไรก็ตามวิธีนี้ใช้ไม่ได้เนื่องจากโซลูชันที่เป็นไปได้ไม่จำเป็นต้องมีองค์ประกอบอินพุตทั้งหมด: m=1A,BNmm=1A,B

พิจารณา\} สิ่งนี้ไม่ได้อยู่ใน UNIQUE-PARTITION แต่ใน 2SUBSET-VECTOR-SUM อาจจะใช้เราสามารถใช้รายการเวคเตอร์เพิ่มเติมเพื่อบังคับให้เพื่อแบ่งพาร์ติชันอินพุตA = { 1 , 2 } , B = { 3 } m > 1 A , B{1,2,3,5}A={1,2},B={3}m>1A,B

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.