คำนวณช่องว่างการเพิ่มประสิทธิภาพสัมพัทธ์ใน MIP Problem GAMS
ฉันต้องการคำนวณช่องว่างการเพิ่มประสิทธิภาพสัมพัทธ์ของปัญหา MIP และฉันต้องการยกเลิกการทำงานในช่วงเวลาหนึ่ง วิธีนี้:
F(1)
abs(mymodel.objest - mymodel.objval)/max(abs(mymodel.objest),abs(mymodel.objval))
ไม่สอดคล้องกับช่องว่างที่ GAMS คำนวณในบันทึก GAMS ใช้ "จำนวนเต็มที่ดีที่สุด" เพื่อค้นหาช่องว่างที่ไม่ใช่ค่าวัตถุประสงค์ปัจจุบัน อันไหนที่ถูก? และฉันจะบันทึก "จำนวนเต็มที่ดีที่สุด" ปัจจุบันลงในพารามิเตอร์ได้อย่างไร (เช่น. objval)
และในที่สุดการคำนวณช่องว่างการเพิ่มประสิทธิภาพสัมพัทธ์ในอัลกอริธึมตัวโค้งงอถูกต้องหรือไม่
rgap = (upperBound - lowerBound)/(1 + abs(upperBound));
GAMS คำนวณอะไรโดยใช้ "MIP Solution"
MIP Solution: 3334501534.000555 (1625 iterations, 0 nodes)
Final Solve: 56330158.829040 (2561 iterations)
Best possible: 48915652.476336
Absolute gap: 3285585881.524219
Relative gap: 0.985330
ช่องว่างที่คำนวณได้ F (1) โดยใช้ mymodel.objval (mymodel.objval ส่งคืน "Final Solve") ดังนั้นช่องว่างที่คำนวณได้คือ% 13 และค่า mymodel.objval คือ 5.633016E + 7 (GAMS ช่องว่างที่คำนวณได้คือ% 98) ดังนั้นฉันต้องบันทึก "MIP Solution" เป็นพารามิเตอร์เพื่อส่งออกไปยังไฟล์ excel
คำตอบ
มีสูตรที่แตกต่างกันในการคำนวณช่องว่างการเพิ่มประสิทธิภาพสัมพัทธ์ ขึ้นอยู่กับตัวแก้ที่คุณใช้ว่าใช้ตัวไหน ข้อมูลบางอย่างเกี่ยวกับนี้สามารถพบได้ในรายละเอียดของตัวเลือก GAMS optCR คู่มือการแก้ปัญหาของ Solver ที่คุณใช้อาจมีรายละเอียดเพิ่มเติมเกี่ยวกับสูตรที่ใช้จริง
แก้ไขหลังจากอัปเดตคำถาม:
ตามที่คุณเขียนmymodel.objval
ส่งคืนFinal Solve
ค่า หากคุณต้องการดูMIP Solution
ค่าแทน (เนื่องจากลิงก์ Cplex ทำภายใน) คุณสามารถปิดใช้งานการแก้ปัญหาขั้นสุดท้ายได้ อย่างไรก็ตามหากFinal Solve
และMIP Solution
แตกต่างกันมากดังในตัวอย่างของคุณสิ่งนี้มักเป็นข้อบ่งชี้สำหรับปัญหาบางอย่าง (โดยปกติแล้วปัญหาเหล่านี้ (เกือบ) เหมือนกัน) บ่อยครั้งสิ่งนี้บ่งชี้ถึงโมเดลที่มีการปรับขนาดไม่ดี บางทีคุณอาจจะปรับปรุงสถานการณ์โดยกระชับความคลาดเคลื่อน Cplex (ดูตัวเลือก Cplex epopt
, eprhs
, epint
) และเปิดใช้งานการปรับก้าวร้าว (Cplex ตัวเลือกscaind 2
) กำลังเปิดใช้งานmipkappastats
(https://www.gams.com/latest/docs/S_CPLEX.html#CPLEXmipkappastats) และquality
(https://www.gams.com/latest/docs/S_CPLEX.html#CPLEXquality) สามารถให้ข้อมูลเพิ่มเติมแก่คุณ DataCheck=2
(https://www.gams.com/latest/docs/S_CPLEX.html#CPLEXdatacheck) อาจแสดงปัญหาบางอย่าง