โซลูชันการเขียนโปรแกรมเชิงเส้นในหนึ่งผ่านด้วยตัวแปรสั่ง


9

ฉันมีครอบครัวที่มีปัญหาการเขียนโปรแกรมเชิงเส้น: เพิ่ม cx ภายใต้ Axb, x0. องค์ประกอบของA, bและ c เป็นจำนวนเต็มไม่ใช่ค่าลบ cบวกอย่างเคร่งครัด (x ควรเป็นส่วนประกอบ แต่ฉันจะกังวลในภายหลัง)

มันมักจะเกิดขึ้นในใบสมัครของฉันว่าค่าสัมประสิทธิ์ A และ c เป็นวิธีที่อัลกอริธึมแบบ one-pass ที่เรียบง่ายทำให้เป็นทางออกที่ดีที่สุดสำหรับทุกทางเลือก b: อัลกอริทึม One-Pass กำหนดองค์ประกอบ x1,,xn ในลำดับเลือกแต่ละ xj เป็นค่าที่ใหญ่ที่สุดที่เป็นไปได้ซึ่งสอดคล้องกับค่าที่กำหนดไว้แล้ว x1,,xj1. ในภาษา simplex ลำดับของการป้อนตัวแปรเป็นเพียงx1 ถึง xnและจะยุติลงหลังจาก nขั้นตอน ซึ่งช่วยประหยัดเวลาได้มากเมื่อเทียบกับ full-on simplex

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

คำถามของฉันคือทรัพย์สินของ A และ c จะช่วยให้เรามั่นใจว่าอัลกอริทึมที่ง่ายนี้เหมาะสำหรับทุกคน b? การคาดเดาครั้งแรกของฉันคือองค์ประกอบที่ไม่ใช่ศูนย์A ควรเพิ่มในแต่ละแถว แต่ไม่ถูกต้อง

นี่คือตัวอย่างบางส่วนทั้งหมดด้วย c=(1,1,1): A1=(111123320), A2=(001302032), A3=(111100101), A4=(101010011). สำหรับสิ่งเหล่านี้อัลกอริธึมแบบซีเควนเชียลให้ทางออกที่ดีที่สุดสำหรับค่าทั้งหมดของb (โดยการทดลองเชิงตัวเลข) A3 เป็นเพียงหนึ่งเดียวที่พีชคณิตของคอลัมน์ทั้งหมดทำงานเช่นกัน A1 และ A3 โดยเฉพาะอย่างยิ่งทำให้งงงันตั้งแต่ (1,1,3) ดูแพงกว่า (1,3,0) และ (1,1,1) แพงกว่า (1,0,0).

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

คำตอบ:


4

อาจเป็นตัวอย่างที่โด่งดังที่สุดที่อัลกอริทึมโลภเป็นที่รู้จักในการแก้ LP สำหรับกรณีพิเศษของปัญหาการขนส่ง ฮอฟแมน ( "ในโปรแกรมเชิงเส้นอย่างง่าย" ในนูนฉบับ. 7 จากการดำเนินการของ Symposia ในคณิตศาสตร์บริสุทธิ์ , หน้า 317-327, 1963) ได้รับการพิสูจน์ว่าถ้าเมทริกซ์ค่าใช้จ่ายสำหรับ (สูงสุด) ปัญหาการขนส่งพึงพอใจMonge คุณสมบัติ (cij+cklcil+ckj เมื่อไหร่ 1i<kn, 1j<ln) จากนั้นคำตอบที่ดีที่สุดสามารถพบได้ในลักษณะโลภเช่นเดียวกับที่คุณอธิบาย

ฮอฟฟ์แมนยังมีกระดาษสำรวจ (" บนอัลกอริทึมโลภที่ประสบความสำเร็จ ") จากปี 1985 ซึ่งเขากล่าวถึงกรณีที่รู้จักกันซึ่งอัลกอริทึมโลภให้ทางออกที่ดีที่สุดสำหรับ LP นอกจากงานของเขาเองที่อ้างถึงข้างต้น (ซึ่งเขาบอกว่า "ปัญหาเชิงเส้นส่วนใหญ่ที่รู้จักกันดี [โดย 1963] จะอ่อนไหวต่ออัลกอริทึมโลภเป็นกรณีพิเศษของแนวคิด Monge") เขากล่าวถึงการตีความการเขียนโปรแกรมเชิงเส้นของ Edmonds ลักษณะทั่วไปของ matroids และการอภิปรายของกรณีเมื่อA ไม่ติดลบเหนือสิ่งอื่นใด

ฉันคิดว่าจะมีผลลัพธ์ล่าสุดมากกว่านี้ แต่หวังว่าอย่างน้อยก็ตอบคำถามของคุณได้บางส่วนและให้แนวคิดบางอย่างเกี่ยวกับตำแหน่งที่จะมองหา


2
ฉันต้องการขอบคุณ Prof Spivey สำหรับคำแนะนำของเขา ฉันใช้เวลาสักครู่ในการไล่ล่าการอ้างอิง แต่ฉันจะให้คำอธิบายแบบเต็มเพื่อเป็นคำตอบ
Robert Almgren

3

ขอบคุณคำแนะนำของ Prof Spivey ในที่สุดฉันก็พบว่าสิ่งที่ฉันคิดว่าเป็นสถานะของศิลปะ: Ulrich Faigle, Alan J. Hoffman และ Walter Kern "การศึกษาลักษณะของ Matris โลภ Nonnegative Box - Greedy" SIAM J. Disc คณิตศาสตร์. 9 (1996) หน้า 1-6 เมทริกซ์คือ "โลภ" หากอัลกอริทึมที่ฉันอธิบายไว้ข้างต้นให้ทางออกที่ดีที่สุดสำหรับทุกคนb. เมทริกซ์คือ "กล่องโลภ" หากอัลกอริทึมโลภให้ทางออกที่ดีที่สุดโดยมีเงื่อนไขเพิ่มเติมxd เพื่อทุกสิ่ง b และทั้งหมด d0. เห็นได้ชัดว่ากล่องโลภเป็นเงื่อนไขที่แข็งแกร่งกว่าโลภ

คิดเสมอว่า c1cn>0. Faigle, Hoffman และ Kern พิสูจน์ว่าA กล่องโลภถ้าหากไม่มี k×(k+1) (สำหรับใด ๆ k) submatrix ของแบบฟอร์ม (r1s1r2s2rksk) กับแต่ละ rj>0 และ i:si>0risi>1. ในการแยกเมทริกซ์ย่อยอนุญาตให้มีการเปลี่ยนแถวโดยพลการ แต่ไม่อนุญาตให้มีคอลัมน์และอนุญาตให้มีการแบ่งแถวและคอลัมน์โดยอำเภอใจได้ ดังนั้นโดยเฉพาะกับk=1องค์ประกอบที่ไม่ใช่ศูนย์ในแต่ละแถวของ A จะต้องไม่ลดลง

มันกลับกลายเป็นว่าโชคไม่ดีที่ในปัญหาของฉันเมทริกซ์นั้นไม่มีความโลภ แต่ฉันก็ยังเชื่อว่ามันเป็นโลภ ตัวอย่างเช่นในของฉันA1เหนือเงื่อนไขที่มีการละเมิดและเมทริกซ์นี้ไม่ได้เป็นกล่องโลภแม้ว่ามันจะเป็นโลภ เท่าที่ฉันรู้ไม่มีผลลัพธ์ในการระบุเมทริกซ์โลภ


ฉันดีใจที่คำตอบของฉันช่วยคุณหาสิ่งนี้!
Mike Spivey

3

ตัวอย่างที่ง่ายที่สุดสำหรับบางสิ่งเช่นนี้อาจเป็นปัญหาเครื่องหลังแบบเศษส่วนที่สินค้าได้รับอนุญาตให้แยกส่วน ปัญหานี้ (และ lp คู่) สามารถแก้ไขได้โดยการเรียงลำดับรายการเพื่อหากำไรต่อน้ำหนักเลือกลำดับที่ยาวที่สุดในลำดับนี้ซึ่งเป็นไปได้และแยกส่วนรายการสุดท้าย

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