MathOpt คืออะไร
MathOpt เป็นไลบรารีสำหรับการสร้างแบบจำลองและการแก้ปัญหาการเพิ่มประสิทธิภาพทางคณิตศาสตร์ เช่น โจทย์การเขียนโปรแกรมเชิงเส้น (LP) หรือโจทย์การเขียนโปรแกรมจำนวนเต็ม (MIP) แบบผสม MathOpt แยกการสร้างแบบจำลองออกจากการแก้โจทย์ ช่วยให้ผู้ใช้สลับไปมาระหว่างวิธีการแก้โจทย์ด้วยการเปลี่ยน enum (และการขึ้นต่อกันของบิลด์) เพื่อเลือกเครื่องมือแก้โจทย์ของตน
ดูวิดีโอนี้เพื่อข้อมูลเบื้องต้นเกี่ยวกับ MathOpt จากงานนำเสนอ JuMP Conference Conference ประจำปี 2023
ฟีเจอร์ MathOpt
โมเดล MathOpt มีองค์ประกอบดังนี้
- จำนวนเต็มหรือตัวแปรต่อเนื่อง
- ข้อจำกัดเชิงเส้นหรือกำลังสอง
- วัตถุประสงค์เชิงเส้นหรือกำลังสอง
- วัตถุประสงค์แบบลำดับชั้นหลายรายการ
- ข้อจำกัด MIP เฉพาะทาง (SOS, ตัวบ่งชี้ และอื่นๆ อีกมากมาย)
- ข้อจำกัดแบบกรวยบางอย่าง (ลำดับที่ 2 จะมีเงื่อนไขเพิ่มเติมตามมา)
โมเดลจะได้รับการกำหนดโดยไม่ขึ้นอยู่กับเครื่องมือแก้โจทย์คณิตใดๆ และตัวแก้โจทย์หนึ่งๆ จะสลับสับเปลี่ยนกันได้ MathOpt รองรับเครื่องมือแก้โจทย์ต่อไปนี้
MathOpt มีไลบรารีไคลเอ็นต์ใน C++ และ Python เพื่อสร้างโมเดลการเพิ่มประสิทธิภาพ
MathOpt รองรับฟีเจอร์ขั้นสูงมากมาย ได้แก่
- การวิเคราะห์ความไม่สามารถทำได้ (Irreducible Infeasible Set หรือ IIS), Gurobi เท่านั้น
- การแก้โจทย์ที่เพิ่มขึ้น
- โค้ดเรียกกลับ
- คู่สนทนา
- รังสีปฐมภูมิและแสงคู่
- โซลูชันแบบพื้นฐานและโซลูชันแบบคู่ที่ต่ำกว่ามาตรฐาน
- การลบตัวแปรและข้อจำกัด
- Warm Start (ตามโซลูชันหรือพื้นฐาน)
- เหตุผลของการสิ้นสุดโดยละเอียด
- ลำดับความสำคัญของ Branch
- เสียงแทรก
- พารามิเตอร์อิสระในการแก้โจทย์หลายรายการ