0-1 การเขียนโปรแกรมเชิงเส้น: การคำนวณสูตรที่เหมาะสมที่สุด


14

พิจารณามิติ{ 0 , 1 } nและให้cเป็นข้อ จำกัด เชิงเส้นของรูปแบบ1 x 1 + 2 x 2 + 3 x 3 + . . + n - 1 x n - 1 + n x nkที่ฉันR , x ฉันn{0,1}nca1x1+a2x2+a3x3+ ... +an1xn1+anxnkaiRและ k Rxi{0,1}kR

เห็นได้ชัดว่ามีผลของการแยก{ 0 , 1 } nในสองส่วนย่อยS CและS ¬ S มีทั้งหมดและมีเพียงจุดเหล่านั้นที่น่าพอใจในขณะที่S ¬ มีทั้งหมดและมีเพียงจุดเหล่านั้นปลอมแปลงคc{0,1}nScS¬cSccS¬cc

สมมติว่า n ตอนนี้ให้Oเป็นเซตย่อยของS cเพื่อให้ประโยคทั้งสามข้อต่อไปนี้ถือ:|Sc|nOSc

  1. มีคะแนน nแน่นอนOn
  2. จุดดังกล่าวเป็นอิสระเชิงเส้นn
  3. ดังกล่าวจุดเหล่านั้นที่ระยะต่ำสุดจากไฮเปอร์เพลนที่แสดงโดยค อีกอย่างแม่นยำให้d ( x , C )เป็นระยะทางของจุดx { 0 , 1 } nจากไฮเปอร์เพลค จากนั้นB S cเช่นนั้นที่B เป็นไปตามข้อ 1 และ 2 เป็นกรณีที่x B d ( x , c ) x O dncd(x,c)x{0,1}ncBScB ) ในคำอื่น ๆ Oคือในทุกส่วนย่อยของ S ความพึงพอใจของทั้งสองเงื่อนไขที่ 1 และ 2 เป็นผู้หนึ่งที่ช่วยลดผลรวมของระยะทางของจุดของมันจากไฮเปอร์เพลคxBd(x,c)xOd(x,c)OScc

คำถาม

  1. ได้รับก็เป็นไปได้ในการคำนวณOได้อย่างมีประสิทธิภาพ? cO
  2. อัลกอริทึมที่รู้จักกันดีที่สุดในการคำนวณมันคืออะไร?

 

ตัวอย่างด้วย n=3

Example with n = 3

, O = { ( 0 , 0 , 1 ) , ( 1 , 1 , 1 ) , ( 1 , 0 , 0 ) }S¬c={(1,0,1)}O={(0,0,1),(1,1,1),(1,0,0)}

 

อัพเดท 05/12/2012

แรงจูงใจ

แรงจูงใจคือการใช้มันควรจะเป็นไปได้ที่จะตรวจสอบข้อ จำกัด ที่ดีที่สุด*ตามที่มันควรจะไฮเปอร์เพลที่กำหนดโดยnคะแนนในO OcnO

ข้อ จำกัด ที่ดีที่สุดเป็นหนึ่งที่นำไปสู่การที่ดีที่สุด polytope P *cP

polytope ที่ดีที่สุดเป็นหนึ่งที่มีจุดที่มีอยู่ทั้งหมดและมีเพียงจุดจำนวนเต็มของเริ่มต้น polytope P (เป็นจุดสุดยอดจำนวนเต็มเป็นจุดสุดยอดที่มีพิกัดเป็นจำนวนเต็มทั้งหมด)PP

Optimal Formulation

กระบวนการสามารถซ้ำสำหรับแต่ละข้อ จำกัดของ 0-1 L Pเช่นฉันทุกครั้งที่ทำหน้าที่แทนสอดคล้องกับข้อ จำกัด ของมันที่ดีที่สุด * ในตอนท้ายนี้จะนำไปสู่การที่ดีที่สุด polytope P *ของฉัน จากนั้นเนื่องจากจุดยอดของP ล้วน แต่มีเพียงจุดยอดจำนวนเต็มของจุดเริ่มต้น polytope PของIอัลกอริธึมใด ๆ สำหรับL Pจึงสามารถนำมาใช้ในการคำนวณหาจำนวนเต็มที่เหมาะสมที่สุด ฉันรู้ว่าความสามารถในการคำนวณP ∗ ได้อย่างมีประสิทธิภาพจะหมายถึงPcLPIccPIPPILPPอย่างไรก็ตามคำถามเพิ่มเติมต่อไปนี้ยังคงมีอยู่:P=NP

คำถามเพิ่มเติม

มีงานก่อนหน้าตามสายเหล่านี้หรือไม่? ทุกคนได้รับการตรวจสอบแล้วงานของการคำนวณที่กำหนด polytope มันสอดคล้องกันที่ดีที่สุด polytope P * ? อัลกอริทึมที่รู้จักกันดีที่สุดคืออะไรPP


ดูเหมือนว่าจะเป็นเรื่องยากที่จะทำโดยลดจากผลรวมย่อย รับจำนวนเต็มไบนารี , เพื่อทดสอบว่ามีเซตย่อยที่รวมกับs หรือไม่ , เราสามารถทดสอบว่ามีจุดบนไฮเปอร์เพลนv 1 x 1 + + v 1 x n = sหรือไม่ คุณมีความสนใจในการประมาณหรือไม่? v1,,vnsv1x1++v1xn=s
โคลินแม

@ColinMcQuillan: คำถามนี้มีความหมายสำหรับการแก้ปัญหาที่แน่นอน แต่ฉันก็สนใจในการประมาณเช่นกัน ทำไมคุณไม่เปลี่ยนความคิดเห็นของคุณเป็นคำตอบ?
Giorgio Camerani

@ColinMcQuillan: นอกจากนี้ไฮเปอร์เพลนของคุณจะถูกกำหนดโดยใช้ความเท่าเทียมกันในขณะที่ของฉันถูกกำหนดโดยใช้ความไม่เท่าเทียมกัน คุณแน่ใจหรือไม่ว่าสิ่งนี้ไม่สร้างความแตกต่างในด้านความแข็ง? ฉันยังไม่ได้ตรวจสอบดังนั้นฉันแค่ถาม
Giorgio Camerani

OSc

คำตอบ:


6

ดูเหมือนว่าจะเป็นเรื่องยากที่จะทำโดยลดจากผลรวมย่อย สมมติว่าเรามีขั้นตอนการคำนวณที่มีประสิทธิภาพO. รับจำนวนเต็มบวกโวลต์1,...,โวลต์n เข้ารหัสเป็นเลขฐานสองเราต้องการทดสอบว่ามีข้อสรุปย่อยหรือไม่ s. ประมวลผลล่วงหน้าโดยการปล่อยจำนวนเต็มใด ๆ ที่ใหญ่กว่าs.

เรียกขั้นตอนเพื่อรับชุดเล็ก O จุดที่น่าพอใจ v1x1++โวลต์1xnsให้เป็นไปตามเงื่อนไขขั้นต่ำของคุณ |Sc|n). This set will certainly contain a point on the hyperplane v1x1++v1xn=s if there is one.


Maybe I'm overlooking something macroscopic here, but I have 2 questions: 1) When you say "Given binary integers" what do you mean by binary? v1,...,vn belong to R. Maybe you mean encoded in binary? Or maybe you wanted to say positive? 2) Why throwing out all the integers larger than s? They may contribute to the solution. For example: v1=3,v2=7,v3=5,s=2 if you throw away v2 you lose the only solution {v2,v3}.
Giorgio Camerani

2
I think what Colin means is that if the constraint coefficients ai are rational numbers, in their usual binary representation, then your problem appears to NP-hard. (Mixing real numbers and NP-hardness is always tricky.)
Jeffε

1
@GiorgioCamerani: I did need to say positive - I've updated my answer.
Colin McQuillan

1

It seems to me you are trying to get to the convex hull of the IP - in essence this is what cut algorithms try to achieve. Although thereotically appealing these methods fare poorly in practice.

There is all theory on the generation of valid inequalities. A good starting point would be shrijver's book theory of integer programming.

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