หนังสือที่ดีที่สุดเกี่ยวกับวิธีการใช้งาน Simplex?


14

ฉันสนใจที่จะใช้งาน SM สำหรับงาน LP แต่ฉันเคยได้ยินเกี่ยวกับข้อผิดพลาดที่เป็นไปได้: หนังสือของ Cormen บอกว่าเป็นไปได้ที่จะมีข้อมูลป้อนเข้า ฉันเคยได้ยินด้วยว่าการใช้งานแบบไร้เดียงสาสามารถวนซ้ำสำหรับข้อมูลบางประเภท

มีหนังสือ / กระดาษ / แหล่งซึ่งอธิบายความแตกต่างของการนำ SM มาใช้ในทางปฏิบัติหรือไม่?

ขอบคุณล่วงหน้า.


คำตอบ:


13

ผมขอแนะนำกระดาษโดยบิกซ์บีที่ "พ่อ" ของ CPLEX ที่สำรวจไม่เพียง แต่ในการดำเนินการด้านของ (แก้ไข) ขั้นตอนวิธีการเริม: โรเบิร์ตอีบิกซ์บี , แก้โลกจริงเป็น Linear โปรแกรม: ทศวรรษและเพิ่มเติมความคืบหน้า , การดำเนินงาน งานวิจัย (50) ปี 2002 3-15


12

อัลกอริทึมแบบซิมเพล็กซ์ไม่ได้อยู่ใน P. CLRS ดังนั้นระบุว่าแม้ว่าในทางปฏิบัติมันจะทำงานได้ "ดี" มีอินพุตบางส่วนที่ทำให้อัลกอริทึมทำงานในเวลาแบบเอ็กซ์โพเนนเชียล สิ่งนี้เกี่ยวข้องกับอัลกอริทึมอย่างเคร่งครัดไม่ใช่เพื่อการนำไปใช้งาน: คุณจะเผชิญกับสิ่งนี้อย่างเป็นอิสระว่าคุณใช้อัลกอริทึมอย่างไร อย่างไรก็ตาม LP อยู่ใน P. สิ่งนี้ได้รับการพิสูจน์โดย Khachian ในปี 1979 อย่างไรก็ตามอัลกอริทึมทรงรีของเขานั้นไม่สามารถใช้งานได้จริง วันนี้วิธีการจุดภายในมีการใช้กันอย่างแพร่หลาย คนแรกถูกค้นพบโดย Karmarkar ในปี 1984

หากคุณสนใจในการใช้งานจริงให้ดูที่:

GUROBI ฟรีสำหรับการใช้งานด้านการศึกษาในขณะนี้เป็นเครื่องมือเพิ่มประสิทธิภาพที่ดีที่สุด (ทั้งรุ่นต่อเนื่องและหน่วยความจำแบบขนาน):

http://www.gurobi.com

ไลบรารี GLPK:

http://www.gnu.org/software/glpk/

นี่เป็นโครงการโอเพนซอร์ซโดยมีการใช้งานสำหรับ:

  • วิธีแรกและคู่เริม
  • วิธีการตกแต่งภายในจุดแรกคู่
  • วิธีการสาขาและตัด
  • ตัวแปลสำหรับ GNU MathProg
  • แอ็พพลิเคชันโปรแกรมอินเตอร์เฟส (API)
  • ตัวแก้ไข LP / MIP แบบสแตนด์อะโลน

12
จริง ฉันขอแนะนำอย่างยิ่งว่าอย่าพยายามใช้ซิมเพล็กซ์ด้วยตัวเองเว้นแต่ว่าเป็นจุดรวมของการฝึก หากคุณเพียงต้องการใช้วิธีปิดชั้นวางจะดีกว่ามาก นอกจากนี้ CPLEX ยังให้บริการฟรีสำหรับการใช้งานด้านการศึกษาหากเหมาะสมกับคุณ
Suresh Venkat

1
มีการใช้งานโอเพ่นซอร์สแบบกระจาย (เช่น MPI) ของ LP หรือไม่
Tomek Tarczynski

3
@Tomek LP เป็น P-complete และไม่น่าจะมีการขนานที่มีประสิทธิภาพ
Marcus Ritt

@Tomek: Simphony จัดให้มีรุ่นที่เผยแพร่ซึ่งทำงานอยู่ในสภาพแวดล้อมใด ๆ ที่สนับสนุนโดยโปรโตคอลส่งผ่านข้อความ PVM (ยังไม่สนับสนุน MPI) ซอร์สโค้ดเดียวกันสามารถคอมไพล์สำหรับสถาปัตยกรรมหน่วยความจำที่ใช้ร่วมกันโดยใช้คอมไพเลอร์ที่รองรับ OpenMP .. ดูbranchandcut.orgและเว็บไซต์ COIN-OR ที่เกี่ยวข้องอย่างยิ่ง: coin-or.org
Massimo Cafaro

9
CPLEX น่าจะเป็นการใช้งาน LP ที่ดีที่สุดในปัจจุบัน (นั่นคือสาเหตุที่ผู้คนจ่ายเงินมากสำหรับมัน) แต่การใช้งานที่ใช้กันอย่างแพร่หลายทั้งหมดจะดีกว่าสิ่งที่คุณตั้งโปรแกรมด้วยตัวเอง ซึ่งรวมถึงแพ็คเกจ Mathematical, Maple และ MATLAB มีการนำไปใช้งานมากมายรวมถึงของฟรีที่ค่อนข้างดี (QSopt สำหรับหนึ่งซึ่งฟรีถ้าคุณไม่ได้วางแผนที่จะใช้เพื่อวัตถุประสงค์ทางการค้า) ดังนั้นการเขียนโปรแกรมด้วยตัวเองจึงคุ้มค่าสำหรับประสบการณ์การเรียนรู้เท่านั้น
Peter Shor

9

หนังสือ Linear Programming ของ Vanderbei ผ่านรายละเอียดระดับต่ำมากมาย ... แต่ตามคำตอบ / ความคิดเห็นอื่น ๆ ที่แนะนำการใช้ตัวแก้ปัญหา LP เป็นงานที่ยากและไม่เห็นคุณค่า ปิดตัวแก้ไขชั้นวางอาจเป็นวิธีที่จะไป ... (นอกจากนี้ยังมีตัวแก้ไข LP โอเพนซอร์สบางตัว ... )


6

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

โครงสร้างของอินสแตนซ์ทางพยาธิวิทยาสำหรับอัลกอริธึมเริม

อย่างไรก็ตามในทางปฏิบัติ SM ทำงานได้ดี สิ่งนี้ได้รับการทำเป็นทางการโดยการแนะนำการวิเคราะห์ที่ราบรื่นซึ่งโดยทั่วไปแล้วการวิเคราะห์กรณีที่เลวร้ายที่สุดกับอินพุตที่ได้รับการรบกวนเล็กน้อย ภายใต้การวิเคราะห์นี้ SM คือ polytime กล่าวอีกนัยหนึ่งสำหรับทุกอินพุต (แม้แต่พยาธิสภาพ) มีการรบกวนเล็กน้อยที่ช่วยให้อัลกอริทึมทำงานได้ดี ข้อมูลเชิงลึกนี้ได้รับการแปรสภาพเป็นอัลกอริทึมแบบสุ่มที่ทำงานในรูปแบบโพลีไทม์ อย่างไรก็ตามเท่าที่ฉันเข้าใจยังคงมีการถกเถียงกันอยู่ว่าอัลกอริทึมนี้มีคุณสมบัติเป็นอัลกอริทึมแบบซิมเพล็กซ์ 'จริง' หรือไม่ ฉันไม่ทราบด้วยว่าแพคเกจมาตรฐานใช้บางสิ่งบางอย่างตามสายของสิ่งนี้หรือไม่ แต่คุณควรจะสามารถหาการใช้งานบางอย่างได้หากคุณค้นหาเพราะผลลัพธ์มีอายุ 5 ปีขึ้นไป


1

คุณอาจตรวจสอบการเขียนโปรแกรม Luenberger, Ye, Linear และ Nonlinear, 3rd ed ดูเหมือนว่าจะค่อนข้างครอบคลุม แต่ฉันยังไม่ได้ทำให้ไกลพอที่จะบอกได้ว่าตอบคำถามของคุณได้อย่างสมบูรณ์หรือไม่

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